<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:04:59] ⇨ Joins: Poppy (~Poppy@chello085216146055.chello.sk)
L2[00:07:11] *** Darkhax is now known as Darkhax_AFK
L3[00:14:56] *** fry|sleep is now known as fry
L4[00:15:42] ⇦ Quits: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net) (Ping timeout: 190 seconds)
L5[00:16:42] ⇦ Quits: Abrar|gone (~AbrarSyed@ipv6.abrarsyed.com) (Ping timeout: 190 seconds)
L6[00:18:14] ⇨ Joins: Abrar|gone (~AbrarSyed@ipv6.abrarsyed.com)
L7[00:18:14] MineBot sets mode: +o on Abrar|gone
L8[00:18:42] *** Abrar|gone is now known as AbrarSyed
L9[00:18:52] ⇨ Joins: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net)
L10[00:18:52] *** Darkhax_AFK is now known as Darkhax
L11[00:18:57] *** mrkirby153 is now known as kirby|gone
L12[00:20:40] ⇨ Joins: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L13[00:20:46] ⇦ Quits: SatanicSanta (~SatanicSa@c-76-115-175-15.hsd1.or.comcast.net) (Quit: sleep)
L14[00:25:54] ⇦ Quits: Upthorn (~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net) (Ping timeout: 384 seconds)
L15[00:26:00] *** minecreatr is now known as Mine|dreamland
L16[00:30:32] ⇦ Quits: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com) (Read error: Connection reset by peer)
L17[00:30:52] ⇨ Joins: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com)
L18[00:34:12] ⇨ Joins: PrinceCat (~PrinceCat@124-170-91-29.dyn.iinet.net.au)
L19[00:43:36] ⇦ Quits: Brokkoli (~Brokkoli@p5b23c284.dip0.t-ipconnect.de) (Quit: Die Sprache der Politik ist daf�r gemacht, dass L�gen wahr klingen und das T�ten angemessen wirkt. (George Orwell))
L20[00:45:42] ⇦ Quits: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net) (Ping timeout: 190 seconds)
L21[00:46:25] ⇦ Quits: PrinceCat (~PrinceCat@124-170-91-29.dyn.iinet.net.au) (Quit: My Mac has gone to sleep. ZZZzzz…)
L22[00:48:28] ⇨ Joins: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net)
L23[00:48:56] ⇦ Quits: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net) (Quit: またね)
L24[00:49:08] ⇦ Quits: Poppy (~Poppy@chello085216146055.chello.sk) (Ping timeout: 384 seconds)
L25[00:54:17] ⇨ Joins: Ipsis418 (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L26[00:59:02] *** big_Xplo|AFK is now known as big_Xplosion
L27[01:02:10] ⇦ Quits: Ipsis418 (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 384 seconds)
L28[01:05:46] ⇦ Parts: baegmon (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au) ())
L29[01:05:48] ⇨ Joins: baegmon (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au)
L30[01:11:48] ⇦ Quits: gravityfox (~gravityfo@cpe-23-242-168-28.socal.res.rr.com) (Quit: Leaving)
L31[01:12:05] ⇨ Joins: gravityfox (~gravityfo@cpe-23-242-168-28.socal.res.rr.com)
L32[01:14:51] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:892f:64f5:53ec:a774) (Read error: Connection reset by peer)
L33[01:18:03] ⇨ Joins: Upthorn (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L34[01:19:11] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00) (Remote host closed the connection)
L35[01:20:09] ⇨ Joins: alex_6611 (~alex_6611@p5DE7A0C9.dip0.t-ipconnect.de)
L36[01:32:31] ⇦ Quits: Gil (uid147942@id-147942.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
L37[01:46:42] ⇨ Joins: founderio (~Thunderbi@p200300C4E3C5BE005C244EDCBD25394B.dip0.t-ipconnect.de)
L38[01:47:06] ⇨ Joins: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi)
L39[01:47:30] ⇦ Quits: Kodos (~Kodos@2602:306:ce20:6c30:4f4:2be9:ece7:a10b) (Read error: Connection reset by peer)
L40[01:47:49] ⇨ Joins: Kodos (~Kodos@2602:306:ce20:6c30:4f4:2be9:ece7:a10b)
L41[01:50:42] ⇦ Quits: baegmon (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au) (Ping timeout: 190 seconds)
L42[01:56:27] ⇦ Quits: blood|wrk (~owned@STATIC228.iona.edu) (Read error: Connection reset by peer)
L43[01:57:01] ⇨ Joins: mr208 (~mallrat20@184-88-190-37.res.bhn.net)
L44[01:57:08] ⇨ Joins: Noppes (~Noppes@82-168-99-26.ip.telfort.nl)
L45[01:58:25] <Nitrodev> hi
L46[01:59:57] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20160506 mappings to Forge Maven.
L47[02:00:00] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20160506-1.9.zip (mappings = "snapshot_20160506" in build.gradle).
L48[02:00:05] ⇦ Quits: mallrat208 (~mallrat20@184-88-190-37.res.bhn.net) (Ping timeout: 201 seconds)
L49[02:00:11] <MCPBot_Reborn> Semi-live (every 10 min), Snapshot (daily ~3:00 EST), and Stable (committed) MCPBot mapping exports can be found here: http://export.mcpbot.bspk.rs/
L50[02:01:45] ⇦ Quits: otho (~otho@191.189.110.191) (Quit: Leaving)
L51[02:02:53] ⇨ Joins: Flaplim (~Flaplim@14.33.50.140)
L52[02:15:04] ⇨ Joins: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl)
L53[02:18:33] ⇨ Joins: Ordinastie_ (~Ordinasti@87-231-58-94.rev.numericable.fr)
L54[02:18:42] *** PaleOff is now known as PaleoCrafter
L55[02:26:00] ⇨ Joins: ghz|lappy (~gigaherz@84.89.63.25)
L56[02:26:18] ⇦ Quits: tali713 (~user@2601:444:8200:c7d:5d6:6e26:2a24:5ba8) (Read error: Connection reset by peer)
L57[02:32:50] ⇦ Quits: codahq (~codahq@c-174-52-130-121.hsd1.ut.comcast.net) (Ping timeout: 384 seconds)
L58[02:35:54] ⇨ Joins: VikeStep (~VikeStep@101.184.243.180)
L59[02:36:14] ⇦ Quits: alex_6611 (~alex_6611@p5DE7A0C9.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L60[02:43:02] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 190 seconds)
L61[02:43:46] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L62[03:00:12] *** kroeser|away is now known as kroeser
L63[03:09:20] ⇦ Quits: PBlock96 (PBlock96@res404s-128-61-104-241.res.gatech.edu) (Quit: Beware of programmers who carry screwdrivers.)
L64[03:10:42] <big_Xplosion> I'm pretty new to the new json texture/model format and I was wondering if and how I can translate this blockstate.json to the nicer forge format. https://github.com/BigXplosion/ObsidianPlates/blob/master/src/main/resources/assets/obsidianplates/blockstates/obsidianPressurePlate.json
L65[03:13:11] <ghz|lappy> big_Xplosion: http://mcforge.readthedocs.io/en/latest/blockstates/forgeBlockstates/
L66[03:14:40] <big_Xplosion> oh thanks
L67[03:17:23] <ghz|lappy> for reference, it could look like this: https://gist.github.com/gigaherz/b2809ed45f5a88128d4ca722ca9831d4
L68[03:17:32] <ghz|lappy> and you would only need one set of json models
L69[03:17:45] <ghz|lappy> since you can replace the textures from the forge blockstates
L70[03:21:47] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L71[03:23:16] ⇦ Quits: killjoy1 (~killjoy@71.65.255.183) (Ping timeout: 384 seconds)
L72[03:25:40] *** kroeser is now known as kroeser|away
L73[03:27:30] *** AEnterpriseAFK is now known as AEnterprise
L74[03:30:26] <ghz|lappy> https://twitter.com/jeb_/status/728499561065529344
L75[03:31:29] <ghz|lappy> both blocks look like they'd make awesome floor materials
L76[03:31:53] <Ordinastie_> both block look like really poor quality textures
L77[03:32:10] <ghz|lappy> well ofc, programmer art ;P
L78[03:32:33] <ghz|lappy> but those uneven bricks look a lot like what the floor at my grandma's used to look like
L79[03:36:27] <big_Xplosion> thanks a lot ghz|lappy! (sorry for the late answe)
L80[03:40:13] <ghz|lappy> np
L81[03:43:37] <ghz|lappy> hmmm what was the JEI irc channel? ;P
L82[03:44:12] <ghz|lappy> ah.
L83[03:44:24] <ghz|lappy> the obvious one (#JEI ;P)
L84[03:47:01] <Nitrodev> tbh that art doesn't seem that bad
L85[03:47:05] <Wuppy> morning
L86[03:53:27] <Nitrodev> mornign wuppy
L87[03:54:03] <Wuppy> how're you
L88[03:54:38] <Tazz> o/ Wuppy
L89[03:56:27] <Wuppy> \o Tazz :)
L90[03:56:32] *** DonAway is now known as DRedhorse
L91[03:56:38] <Tazz> morning
L92[03:57:02] *** DRedhorse is now known as DonAway
L93[03:57:09] <Wuppy> how're ya
L94[03:57:27] <Tazz> Wuppy, I did a thing: http://i.imgur.com/XyizncH.png
L95[03:57:31] <Tazz> okay you?
L96[03:58:08] <Wuppy> wow that looks cool
L97[03:58:23] <Wuppy> shit, my fridge broke :C
L98[03:58:29] <Tazz> Wuppy, all Yulife's texturing honestly
L99[03:58:32] <Tazz> I just coded it haha
L100[03:58:39] <Wuppy> had to buy a new one and once I get it all the new stuff in it, fucking 200 euros down
L101[03:58:41] <Tazz> although the cool part is the code
L102[03:58:47] <Tazz> its all rendered with markdown
L103[03:58:49] <Tazz> also awww
L104[04:00:02] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 190 seconds)
L105[04:00:50] <Wuppy> it was the first day with great weather of the year though
L106[04:00:58] <Tazz> nice :D
L107[04:01:10] <Wuppy> so storing crap outside is impossible aswell
L108[04:01:23] <Tazz> XD
L109[04:01:40] <Wuppy> and worst of all, I have no place to cool beer to drink in the sun
L110[04:01:47] <Tazz> aww
L111[04:02:09] <Wuppy> because cold beer is more important than a working fridge :P
L112[04:02:31] <Tazz> yes most definitely
L113[04:02:34] <Tazz> <--- cant drink
L114[04:02:39] <Wuppy> y no
L115[04:02:47] <Tazz> well legally
L116[04:03:03] <Tazz> but for the sakes of a channel possibly containing minors...I cant drink
L117[04:03:16] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L118[04:03:49] *** DonAway is now known as DRedhorse
L119[04:05:46] *** kroeser|away is now known as kroeser
L120[04:08:17] <Wuppy> in NL, you can legally drink at 18 :D
L121[04:10:16] ⇦ Quits: Wastl2 (~Wastl2@x4e34f38c.dyn.telefonica.de) (Quit: Hi, I'm a quit message virus. Please replace your old line with this one and help me take over the world of IRC.)
L122[04:12:19] <founderio> Tazz: http://i.imgur.com/CBq07v0.png Did something similar a while ago. How did you do it? Mine still renders the Map behind it... (ModJam code ;) )
L123[04:13:27] ⇦ Quits: Flaplim (~Flaplim@14.33.50.140) (Quit: Leaving)
L124[04:17:48] <Tazz> founderio, https://github.com/s0cks/Herbarium/blob/master/src/main/java/herbarium/client/render/RenderItemPageFP.java
L125[04:18:56] <founderio> Ah, so completely custom. I see. Cool stuff!
L126[04:19:16] <founderio> I think i did something with the "original" Map rendering code..
L127[04:19:26] <founderio> it was e MESS
L128[04:19:28] <founderio> *a
L129[04:21:14] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 198 seconds)
L130[04:33:02] ⇨ Joins: Naiten (Naiten@82.162.50.146)
L131[04:34:00] ⇨ Joins: baegmon (~baegmon@cpe-60-225-55-120.nsw.bigpond.net.au)
L132[04:42:21] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L133[05:01:33] *** big_Xplosion is now known as big_Xplo|AFK
L134[05:02:46] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L135[05:11:39] <Nitrodev> so what are you guys working on?
L136[05:11:53] <ghz|lappy> JEI integration for my magic mod
L137[05:12:13] <Nitrodev> ncie
L138[05:12:16] <Nitrodev> nice*
L139[05:12:49] <Nitrodev> i think i'm going to start the other mod i was talking about yesterday
L140[05:14:44] <PaleoCrafter> so, Kotlin says that Scala does too many things implicitly, but can't you expect from a language that passing '0' as a literal to a function that expects a double will not complain about the literal being an int? xD
L141[05:15:56] *** DRedhorse is now known as DonAway
L142[05:16:54] <ghz|lappy> nope
L143[05:16:57] <ghz|lappy> ;P
L144[05:17:07] <ghz|lappy> '0' is either a string, or a char, not a number ;P
L145[05:17:18] <PaleoCrafter> lol
L146[05:17:37] <fry> no, that's "'0'" :D
L147[05:18:24] <ghz|lappy> but yeah
L148[05:18:36] <ghz|lappy> any decent language does implicit literal inference
L149[05:18:57] <PaleoCrafter> guess what: Kotlin doesn't ._.
L150[05:18:57] <ghz|lappy> "integer literal" can be compiled as double, if the function takes a double
L151[05:19:26] <fry> scala's implicits aren't hardcoded though, like every other language ever :P
L152[05:20:00] <PaleoCrafter> yeah, but I just wanted to stress the absurdity of Kotlin :P
L153[05:20:29] <fry> so, 0 + 0f doesn't work in kotlin? :P
L154[05:21:08] <PaleoCrafter> dafuq, it seems to work with arithmetics ._.
L155[05:21:28] <fry> so those are special cases \o/
L156[05:21:32] <fry> as is tradition
L157[05:21:34] <Nitrodev> what's the 1.9 mdk i should download?
L158[05:21:41] <fry> latest?
L159[05:21:46] <Nitrodev> latest or recommended
L160[05:21:49] <Nitrodev> k
L161[05:22:49] <PaleoCrafter> yeah, Kotlin treats operators specially and converts it to something like (0).add(0f), and add is just overloaded
L162[05:22:55] <Nitrodev> now i need to remind myself how i set this up
L163[05:23:09] <Tazz> PaleoCrafter, yeah operator overloading
L164[05:23:26] <PaleoCrafter> operator overloading shouldn't be a thing, you know :P
L165[05:23:33] <Tazz> yeah it should haha
L166[05:23:39] <ghz|lappy> yes it should
L167[05:23:42] <Tazz> its the best thing ever
L168[05:23:47] <fry> not like that :P
L169[05:23:49] <PaleoCrafter> just don't treat the symbols specially :P
L170[05:23:55] <ghz|lappy> not because it's nice or because it's abused
L171[05:24:07] <ghz|lappy> just simply, the ability to define objects that behave like numbers and such
L172[05:24:12] <ghz|lappy> vec1 + vec2
L173[05:24:16] <Tazz> PaleoCrafter, thats the definition of operator overloading
L174[05:24:36] <ghz|lappy> and a simple way for a compiler to implement that
L175[05:24:39] <Nitrodev> after i unzip the folder i downloaded is it okay if i move it to the workspace now?
L176[05:24:50] <Tazz> ghz|lappy, in a way yeah
L177[05:25:02] <ghz|lappy> is to translate "vec1 + vec2" into either "vec1.add(vec2)" ore "Vector.add(vec1,vec2)"
L178[05:25:04] <Tazz> however operator overloading for base types is a bitch to do XD
L179[05:25:33] <PaleoCrafter> no, operator overloading is "you can define a function that gets called when you use this operator", what I want is "just call the function + and don't treat it any differently from something called add" :P
L180[05:25:39] <ghz|lappy> now c++, c++ goes too far.
L181[05:26:03] <ghz|lappy> PaleoCrafter: but it isn't
L182[05:26:04] <Tazz> PaleoCrafter, it doesnt treat it any different
L183[05:26:08] <PaleoCrafter> yes it does
L184[05:26:10] <ghz|lappy> unless you also accept infix notation for random functions
L185[05:26:24] <fry> it works :P
L186[05:26:26] <ghz|lappy> you need at LEASt a way to notify the compiler that a certain symbol is valid infix
L187[05:26:35] <ghz|lappy> else it's an horrible mess
L188[05:26:40] <Tazz> PaleoCrafter, let me give you an exxample of operator overloading in my language Eschelle
L189[05:26:41] <fry> no it isn't :P
L190[05:27:11] <Tazz> def +(x: Type, y: Type): Type{ return x.value + y.value; }
L191[05:27:21] <Tazz> assuming value is a base type like long or double
L192[05:27:32] <Tazz> and type is the class referred to
L193[05:27:38] <PaleoCrafter> does that work with all symbols or just a predefined set? :P
L194[05:27:42] <Tazz> when you do: Type + Type
L195[05:28:03] <Tazz> it just converts the + call to the function call for that specific overloaded operator
L196[05:28:27] <Tazz> PaleoCrafter, in Eschelle it works with all operators
L197[05:28:37] <Tazz> however in scala I believe it doesnt work with every operator
L198[05:28:44] <PaleoCrafter> in Scala it works with literally everything
L199[05:28:54] <Tazz> fair enough
L200[05:28:56] <PaleoCrafter> scala doesn't have a concept of 'operators' per se :P
L201[05:29:00] <Tazz> I know C++ goes crazy with it
L202[05:29:01] <PaleoCrafter> and that's what I mean
L203[05:29:06] <ghz|lappy> how does it distinguish multiple symbols?
L204[05:29:10] <ghz|lappy> a+++b
L205[05:29:24] <ghz|lappy> can be "a++ + b", "a + ++b", or "a +++ b"
L206[05:29:44] <Tazz> ghz|lappy, referring to?
L207[05:29:46] <PaleoCrafter> not really, no, it's the last one :P
L208[05:29:52] <ghz|lappy> yeah then it's broken ;P
L209[05:29:56] <ghz|lappy> and if not
L210[05:29:59] <ghz|lappy> unmaintainable
L211[05:30:01] <PaleoCrafter> ++ is evil, you know :P
L212[05:30:20] <ghz|lappy> anyhow: I'm against "freeform" operators
L213[05:30:25] <Tazz> ghz|lappy, in Eschelle a+++b would be a++ + b
L214[05:30:34] <ghz|lappy> simply because it hurts the part of me that knows how parsing works
L215[05:30:42] <Tazz> since operators take precidence
L216[05:30:45] <ghz|lappy> makes the syntax way too ambiguous
L217[05:30:49] <fry> your parser is weak, upgrade it :P
L218[05:30:53] <ghz|lappy> oh eyeah, precedence.
L219[05:31:01] <ghz|lappy> hwo the F do you declare the precedence for custom operators?
L220[05:31:07] <ghz|lappy> -e
L221[05:31:19] <Tazz> by their inherent nature
L222[05:31:24] <ghz|lappy> wat?
L223[05:31:39] <PaleoCrafter> the math-operator-like functions get the according precedence, everything else gets normal function precedence
L224[05:31:40] <Tazz> if normally ++ would be a precidence of say 2, then it will always be 2
L225[05:31:47] <ghz|lappy> I mean custom symbols
L226[05:31:54] <ghz|lappy> PaleoCrafter: so it's useless, then
L227[05:32:00] <PaleoCrafter> no?
L228[05:32:07] <Tazz> in Eschelle there are no custom symbols
L229[05:32:09] <ghz|lappy> as a way to add new mathematical operations? yes
L230[05:32:13] <Tazz> your allowed to overload all operators
L231[05:32:18] <Tazz> but no custom symbols
L232[05:32:54] <Nitrodev> okay build succesful
L233[05:33:00] <ghz|lappy> suppose I want to implement higher order operators,
L234[05:33:15] <Tazz> like?
L235[05:33:17] <fry> in scala precedence is determined by the first character of the operator
L236[05:33:20] <PaleoCrafter> ^
L237[05:33:21] <ghz|lappy> like, in maths, multiplication is like repeated summation
L238[05:33:32] <ghz|lappy> exponentiation is like rpeated multiplication
L239[05:33:33] <fry> in haskell you can set the precedence explicitly iirc
L240[05:33:38] <PaleoCrafter> so in 'a + b *<something_else> c' the stuff after the '+' gets executed first
L241[05:33:40] <ghz|lappy> there's higher order operators that follow that same pattern
L242[05:33:58] <ghz|lappy> it's usually seen as an "up arrow"
L243[05:34:09] <ghz|lappy> for the first one, two up arrows for the second one, etc
L244[05:34:30] ⇦ Quits: Naiten (Naiten@82.162.50.146) (Read error: Connection reset by peer)
L245[05:35:33] <Tazz> well as it stands in Eschelle you can only overload basic math operations since thats all its got besides some other nifty stuff
L246[05:35:47] <Tazz> however
L247[05:35:57] <fry> there's a whole spectrum between "useless" and "completely unrestricted"
L248[05:36:11] <fry> and Scala is way closer to the right side than most other languages :P
L249[05:36:27] <Tazz> there will be the ability to overload the exponentiation operator (**)
L250[05:36:33] <Tazz> and many others
L251[05:36:51] <ghz|lappy> well ,as I said
L252[05:36:57] <ghz|lappy> IMO, operator overloading is nice
L253[05:37:11] <ghz|lappy> but allowing "any symbol" to become a function, and any function to become an operator, is overengineering
L254[05:37:19] <Tazz> also interesting tidbit, the majority of the math done in eschelle is optimized due to canonicalization and constant folding
L255[05:37:31] <Tazz> optimized out*
L256[05:40:51] <Tazz> also true != true haha
L257[05:40:55] <Tazz> btu thats a bug rofl
L258[05:41:50] <ghz|lappy> lol
L259[05:43:08] <Tazz> just because I didnt unbox the values before cmpq'ing them
L260[05:43:46] ⇨ Joins: Cast0077 (~Work@24-181-178-44.dhcp.nwtn.ct.charter.com)
L261[05:45:35] <Tazz> if anyone is interested in checking out the language when its relatively near release, its on github: https://github.com/Eschelle/Eschelle
L262[05:46:29] <ghz|lappy> you need a proper readme, with actual info and syntax examples ;P
L263[05:46:42] <Tazz> ghz|lappy, Im more concerned with getting a working language rofl
L264[05:46:50] <ghz|lappy> althoguh from the little snipped you wrote earlier, I think it's not the language for me
L265[05:46:51] <ghz|lappy> ;P
L266[05:46:52] <Tazz> Im close to fully implmeneting the majority of stuff that is needed
L267[05:46:55] <ghz|lappy> snippet*
L268[05:47:13] <Tazz> haha
L269[05:47:17] <Tazz> its very much scala based
L270[05:47:40] <ghz|lappy> I like the "name: Type" on paper, but whenever I see it in actual code I go "ewh."
L271[05:48:36] <Tazz> haha
L272[05:48:49] <ghz|lappy> at least you said "def"
L273[05:48:51] <ghz|lappy> and not "fun"
L274[05:49:01] <Tazz> I hate fun
L275[05:49:01] <Tazz> haha
L276[05:49:35] <Tazz> Gala (a JVM langauge Im writing to study compilers in other environments compared to self contained environments) does func
L277[05:50:41] <ghz|lappy> func is ok
L278[05:50:53] <ghz|lappy> javascript's function is ok too, althouhg a bit verbose
L279[05:51:13] <ghz|lappy> "fun" is just stupid
L280[05:51:34] <ghz|lappy> if you want short, at least call it "fn"
L281[05:51:45] <ghz|lappy> sounds less stupid, and has one lessl etter ;P
L282[05:51:53] <Tazz> haha
L283[05:52:00] <Tazz> idk if I like fn for a function declarator
L284[05:52:36] <ghz|lappy> fn (x,y) -> int = x + y
L285[05:52:49] <ghz|lappy> or named: fn a(x,y) -> int = x + y
L286[05:52:55] <Tazz> gah that closure syntax is just bad
L287[05:52:59] <Tazz> its not C++ bad
L288[05:53:01] <Tazz> but eww
L289[05:53:04] <ghz|lappy> I know, just made it up on the spot
L290[05:53:04] <ghz|lappy> ;P
L291[05:53:14] <Tazz> C++'s closure syntax is disgusting
L292[05:53:32] <ghz|lappy> it sortof makes sense when you think of the full syntax
L293[05:53:34] <ghz|lappy> butyeah
L294[05:53:35] <Tazz> [&](const std::string& str){ return str; }
L295[05:53:45] <Tazz> gah
L296[05:53:48] <ghz|lappy> the [] can also contain captured variables
L297[05:53:52] <Tazz> yes
L298[05:53:58] <Tazz> but & captures references to them
L299[05:54:07] <Tazz> however
L300[05:54:09] <Tazz> no need for it
L301[05:54:15] <Tazz> but I just put it there to explain my point
L302[05:54:26] <ghz|lappy> yeah
L303[05:54:39] <ghz|lappy> for lambdas, I just like the way C#/Java do it
L304[05:54:43] <ghz|lappy> (a,b) => x
L305[05:54:45] <ghz|lappy> (a,b) -> x
L306[05:54:51] <Tazz> its fine that way
L307[05:55:08] <ghz|lappy> or actual lambda calculus style
L308[05:55:08] <Tazz> but Im still against lambdas in Java
L309[05:55:15] <ghz|lappy> \x. y
L310[05:55:23] <Tazz> ohohoh scheme style:
L311[05:55:25] <ghz|lappy> \x,y. yx
L312[05:55:34] <Tazz> (lambda (x, y) + x y)
L313[05:56:01] <Nitrodev> so what exactly has changed between 1.8 and 1.9 as far as modding goes?
L314[05:56:08] <ghz|lappy> Nitrodev: names of things
L315[05:56:16] <Tazz> yeah not much
L316[05:56:20] <ghz|lappy> the way you register blocks, items, potions, enchants, sounds,
L317[05:56:54] <Nitrodev> what?
L318[05:57:02] ⇨ Joins: alex_6611 (~alex_6611@p5DE7A0C9.dip0.t-ipconnect.de)
L319[05:57:04] <Nitrodev> i really need to learn those again?
L320[05:57:10] <ghz|lappy> before 1.9, you'd do
L321[05:57:19] <ghz|lappy> GameRegistry.registerBlock(theBlock, "name here")
L322[05:57:26] <ghz|lappy> in 1.9 you do
L323[05:57:33] <ghz|lappy> theBlock.setRegsitryName("name here")
L324[05:57:39] <ghz|lappy> GameRegistry.register(theBlock)
L325[05:57:45] <Tazz> or:
L326[05:57:45] <ghz|lappy> and if you want this block to also have an item form
L327[05:57:52] <ghz|lappy> then you have to also call
L328[05:57:57] <Tazz> GameRegistry.register(theBlock.setRegistryName("name_here"));
L329[05:58:07] <ghz|lappy> GameRegistry.register(new ItemBlock(theBlock).setRegistryName(theBlock.getRegistryName()))
L330[05:58:11] <Nitrodev> yeah i figured Tazz
L331[05:58:17] <ghz|lappy> because itemblocks are optional
L332[05:58:21] <ghz|lappy> but no one ever realized that
L333[05:58:28] <ghz|lappy> so now it's opt-in instead of opt-out
L334[05:58:55] <ghz|lappy> I just do the registration in a special base class
L335[05:59:14] <ghz|lappy> https://github.com/gigaherz/Enderthing/blob/master/src/main/java/gigaherz/enderthing/blocks/BlockRegistered.java
L336[05:59:21] <ghz|lappy> sets up the registry name AND unlocalized name, for me
L337[05:59:32] <ghz|lappy> and has a method for setting up the itemblock
L338[05:59:38] <ghz|lappy> so what I do is basically:
L339[05:59:44] <ghz|lappy> theBlock = new TheBlock("name");
L340[05:59:49] <ghz|lappy> GameRegistry.register(theBlock)
L341[05:59:56] <ghz|lappy> GameRegistry.register(theBlock.createItemBlock()) -- if it needs one
L342[05:59:59] <Nitrodev> enderthing?
L343[06:00:04] <Tazz> hey ghz|lappy you wouldnt know of a good way to populate a biome with flowers eh?
L344[06:00:08] <Nitrodev> started a new mod?
L345[06:00:16] <ghz|lappy> a mod I started last week at the request of Jiraiyah
L346[06:00:31] <ghz|lappy> replaces Ender Storage chests for 1.8.9+1.9
L347[06:00:43] <ghz|lappy> didn't do fluids since there's already Ender Tanks
L348[06:00:45] ⇨ Joins: DebugsPeople (~DebugsPeo@2a02:810d:95c0:880:61a4:4533:e6ba:fba3)
L349[06:00:54] <ghz|lappy> EnderTanks* they don't have a space in it
L350[06:01:00] ⇦ Parts: Vorquel (~Vorquel@174-18-37-37.tcso.qwest.net) ())
L351[06:01:35] <Nitrodev> okay neat
L352[06:01:58] <Nitrodev> is there page i can see the initials for starting
L353[06:02:04] <Nitrodev> or have they not changed
L354[06:02:21] <ghz|lappy> it's really all the same
L355[06:02:25] <ghz|lappy> just the names of things change
L356[06:02:29] <ghz|lappy> and then you have to tweak a few things
L357[06:02:35] <Nitrodev> so all the preinit etc. are the same?
L358[06:02:43] <ghz|lappy> https://github.com/kashike/migration/wiki/1.8.9-to-1.9
L359[06:02:45] <ghz|lappy> yes
L360[06:02:48] <ghz|lappy> read through that
L361[06:04:08] <ghz|lappy> the most painful part of migrating, atm, is that many constants were capitalized
L362[06:04:14] <ghz|lappy> Items.something is now Items.SOMETHING
L363[06:04:20] <ghz|lappy> and same for Blocks, sound types and such
L364[06:04:47] <Nitrodev> well this mod will mostly focus on effects more than anythign else
L365[06:04:52] <Nitrodev> like potion effects
L366[06:05:55] <ghz|lappy> heh
L367[06:06:07] <ghz|lappy> well if it's a whole new mod, then strting from scratch should be easy enough
L368[06:09:05] <Nitrodev> yeah i'll just copy the structure from my 1.8.9 mod
L369[06:10:26] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L370[06:12:44] <Nitrodev> okay proxies are copied
L371[06:15:53] <Nitrodev> i'm thinking there aren't any tutorials on 1.9 modding yet
L372[06:16:09] <ghz|lappy> tutorials are overrated
L373[06:16:34] <Nitrodev> but helpful
L374[06:17:29] <PaleoCrafter> they're incorrect or flawed 99% of the time, I wouldn't call that particularly helpful :P
L375[06:20:06] <Nitrodev> but considering i have no idea how to make something
L376[06:20:11] <Nitrodev> like NO idea
L377[06:20:16] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00)
L378[06:20:21] <Nitrodev> i never have even touched something like it
L379[06:20:33] <Nitrodev> and i'm talking about potion effects
L380[06:20:45] <Nitrodev> but not inflicted by a potion
L381[06:22:12] <Nitrodev> in that case tutorials are a good way to see the basics of something
L382[06:24:14] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00) (Ping timeout: 198 seconds)
L383[06:25:42] <Nitrodev> not related: How do i fix the param names of vanilla methods again?
L384[06:25:55] <Nitrodev> so they are not like p_982356894756 348756348756
L385[06:27:41] ⇦ Quits: Biochemic (~quassel@p5b00aff6.dip0.t-ipconnect.de) (Remote host closed the connection)
L386[06:32:23] ⇨ Joins: Jezza (~Jezza@92.206.5.6)
L387[06:33:11] *** MrKick|Away is now known as MrKickkiller
L388[06:37:34] ⇨ Joins: foxy (~gravityfo@cpe-23-242-168-28.socal.res.rr.com)
L389[06:38:38] ⇦ Quits: jflory7 (~jflory7@irc.jwf.io) (Ping timeout: 198 seconds)
L390[06:39:14] ⇦ Quits: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi) (Ping timeout: 198 seconds)
L391[06:39:14] ⇦ Quits: gravityfox (~gravityfo@cpe-23-242-168-28.socal.res.rr.com) (Ping timeout: 198 seconds)
L392[06:45:15] ⇨ Joins: jflory7 (~jflory7@irc.jwf.io)
L393[06:49:14] ⇦ Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a) (Quit: Leaving.)
L394[06:58:20] ⇨ Joins: theFlaxbeard (~theFlaxbe@184.97.134.35)
L395[07:04:26] ⇦ Quits: ghz|lappy (~gigaherz@84.89.63.25) (Ping timeout: 198 seconds)
L396[07:14:45] ⇨ Joins: Seppon (~Noppes@82-168-99-26.ip.telfort.nl)
L397[07:20:08] *** AEnterprise is now known as AEnterpriseAFK
L398[07:20:08] ⇦ Quits: Noppes (~Noppes@82-168-99-26.ip.telfort.nl) (Ping timeout: 384 seconds)
L399[07:27:56] ⇨ Joins: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi)
L400[07:30:55] ⇦ Quits: Dark (~MrDark@cpe-76-181-157-113.columbus.res.rr.com) (Read error: Connection reset by peer)
L401[07:33:05] ⇨ Joins: Dark (~MrDark@cpe-76-181-157-113.columbus.res.rr.com)
L402[07:34:12] *** DonAway is now known as DRedhorse
L403[07:41:33] *** V is now known as Vigaro
L404[07:46:03] ⇨ Joins: Searge|office (~Searge@h-85-24-130-18.na.cust.bahnhof.se)
L405[07:47:53] ⇦ Quits: Searge|mojang (~Searge@h-85-24-130-18.na.cust.bahnhof.se) (Ping timeout: 201 seconds)
L406[08:11:59] *** Vigaro is now known as V
L407[08:18:10] ⇨ Joins: kimfy_ (~kimfy___@236.5.200.37.customer.cdi.no)
L408[08:21:12] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00)
L409[08:24:50] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00) (Ping timeout: 198 seconds)
L410[08:25:35] ⇨ Joins: turmfalke (~turmfalke@p20030056CF06BA7CA7B969B70350CA48.dip0.t-ipconnect.de)
L411[08:31:32] ⇦ Quits: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl) (Ping timeout: 384 seconds)
L412[08:32:02] ⇦ Quits: VikeStep (~VikeStep@101.184.243.180) (Read error: Connection reset by peer)
L413[08:33:03] ⇨ Joins: raoulvdberge (uid95673@id-95673.richmond.irccloud.com)
L414[08:38:02] ⇦ Quits: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net) (Ping timeout: 198 seconds)
L415[08:39:28] ⇦ Quits: alex_6611 (~alex_6611@p5DE7A0C9.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L416[08:52:24] ⇨ Joins: DebugsPeople- (~DebugsPeo@2a02:810d:95c0:880:61a4:4533:e6ba:fba3)
L417[08:53:04] ⇦ Quits: DebugsPeople- (~DebugsPeo@2a02:810d:95c0:880:61a4:4533:e6ba:fba3) (Client Quit)
L418[08:55:17] <Forecaster> what is item rarity used for?
L419[08:56:08] <Cypher121> for name color?
L420[08:58:17] <Forecaster> really?
L421[09:08:02] ⇦ Quits: IoP (jikuja@kapsi.fi) (Ping timeout: 190 seconds)
L422[09:11:13] *** cpw|out is now known as cpw
L423[09:16:07] ⇨ Joins: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net)
L424[09:17:40] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L425[09:17:44] ⇦ Quits: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net) (Read error: Connection reset by peer)
L426[09:17:54] ⇨ Joins: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net)
L427[09:20:20] *** willieaway is now known as williewillus
L428[09:22:26] ⇦ Quits: kimfy_ (~kimfy___@236.5.200.37.customer.cdi.no) (Ping timeout: 198 seconds)
L429[09:31:13] ⇦ Quits: brandon3055 (~Brandon@122.129.140.1) (Read error: Connection reset by peer)
L430[09:31:57] ⇨ Joins: brandon3055 (~Brandon@122.129.140.1)
L431[09:32:47] ⇨ Joins: IoP (jikuja@irc.ioppi.info)
L432[09:38:30] <Forecaster> hm, rightclicking a block triggers both onItemUse and onItemRightClick
L433[09:38:49] <williewillus> yes, if the block has no right click action of its own
L434[09:39:07] <williewillus> if the block has a gui then only the first would get triggered
L435[09:39:17] <williewillus> and even then if the block fails ( i think )
L436[09:39:28] <williewillus> what are you wanting to accomplish again?
L437[09:39:52] <Forecaster> well, I want to create a linking item for debugging
L438[09:40:06] <williewillus> this links blocks?
L439[09:40:19] <Forecaster> and I want it to switch link target when right-clicked in the air, and link when I click my block with it
L440[09:40:33] <Forecaster> but clicking the block with it would make it switch the address as well...
L441[09:40:48] <williewillus> what are you returning from onItemUse
L442[09:40:54] <williewillus> (show code)
L443[09:41:11] <Forecaster> right now they run the same method on super
L444[09:41:13] <Forecaster> (Item)
L445[09:41:22] <williewillus> then yeah that's why
L446[09:41:36] <Forecaster> they return ItemStack it seems
L447[09:41:43] <williewillus> uhh what version of MC are you on?
L448[09:41:48] <Forecaster> 1.7
L449[09:41:53] <williewillus> .-.
L450[09:41:54] <williewillus> nvm
L451[09:41:59] <williewillus> I have no idea how it works there
L452[09:42:13] <williewillus> also update :P
L453[09:42:18] <Forecaster> no
L454[09:42:36] <williewillus> that's fine, I tell everyone that
L455[09:42:40] <Forecaster> the mod I'm making is meant to be played with railcraft, which hasn't updated yet
L456[09:42:41] <williewillus> but don't expect much support :P
L457[09:43:11] <Forecaster> so I'm making it for 1.7 now
L458[09:43:13] <williewillus> also, https://github.com/CovertJaguar/Railcraft/tree/update-1.8.9
L459[09:43:16] <Forecaster> I'll update it later
L460[09:43:27] <williewillus> it is pretty ported to 1.8
L461[09:43:42] <Forecaster> I know, I'm an op in #Railcraft ;)
L462[09:44:08] ⇨ Joins: Stiforr (~Stiforr@ip72-216-8-185.pn.at.cox.net)
L463[09:44:44] <williewillus> but yeah I know how the interaction model works in 1.9, but not in 1.8/7, so I can't help sorry xP
L464[09:44:57] <Forecaster> that's allright
L465[09:45:02] <Forecaster> I'll figure it out
L466[09:45:18] <Forecaster> there has to be some way to keep it from triggering both
L467[09:45:52] <Forecaster> oh, onItemRightClick returns ItemStack, but onItemUse returns false
L468[09:45:59] ⇨ Joins: Brokkoli (~Brokkoli@p5b23c284.dip0.t-ipconnect.de)
L469[09:46:01] <Forecaster> I'll have to play around with those
L470[09:46:10] <Forecaster> maybe not call super to start with
L471[09:46:12] <williewillus> oh
L472[09:46:32] <williewillus> returning true from onItemUse means "I did something when clicked on a block, don't call onItemRightClick"
L473[09:46:36] <williewillus> so you want to do that
L474[09:46:53] <Forecaster> ah!
L475[09:46:59] <Forecaster> see, you did help :P
L476[09:49:02] ⇦ Quits: Lunatrius (~Lunatrius@cpe-77.38.77.164.cable.t-1.si) (Ping timeout: 190 seconds)
L477[09:49:05] <Forecaster> yes, perfect
L478[09:50:47] ⇨ Joins: moog (~moog@24-176-156-144.dhcp.jcsn.tn.charter.com)
L479[09:53:56] ⇨ Joins: Temportalist (uid37180@2604:8300:100:200b:6667:3:0:913c)
L480[10:06:44] ⇨ Joins: vox (~voxmods@pool-71-178-241-173.washdc.fios.verizon.net)
L481[10:07:20] <vox> Prospector: Loot table functionality I don't think works yet
L482[10:07:35] ⇨ Joins: Fye (~Fye@dynamic-adsl-84-220-169-44.clienti.tiscali.it)
L483[10:08:41] ⇨ Joins: Naiten (~Naiten@77.34.113.60)
L484[10:08:56] <williewillus> ?
L485[10:09:05] <vox> Or does it?
L486[10:09:23] <vox> Unless I missed something you still have to modify directly the vanilla files
L487[10:09:23] <williewillus> you can use your own loot tables fine, it's chagning vanilla's that isn't implemented yet
L488[10:09:27] <williewillus> yeah
L489[10:09:30] <vox> Aaah okay
L490[10:10:42] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L491[10:11:47] <barteks2x> Does anyone follow this: http://mcforge.readthedocs.io/en/latest/conventions/versioning/ or is it just something that is there but nobody uses?
L492[10:12:36] <vox> I haven't before but I like it so I will now :P
L493[10:13:32] <barteks2x> I'm trying to implement it in my build.gradle (by using git describe and git tags), I tried before but my attempt failed when new mc version came out
L494[10:13:39] <thor12022> that's pretty much what I try to use
L495[10:13:56] <vox> TiCon does it well if you want to check out their build.gradle file
L496[10:14:08] <vox> they store their mc version and stuff in a build.properties file
L497[10:14:58] <thor12022> yeah, that's a pretty common place to put your version info
L498[10:15:01] <barteks2x> I currently have MC version and majormod.majorapi in git tags. I'm going to make it so that only majormod.majorapi is in git tag, and mc version is in build.properties.
L499[10:15:16] <barteks2x> and then minor version would be from git describe command
L500[10:16:00] <thor12022> Fancy.
L501[10:16:59] <barteks2x> And my current way broke only because my version should still be 0.0.something.0 but mc version changed
L502[10:18:57] *** V is now known as Vigaro
L503[10:19:38] *** amadornes is now known as amadornes[OFF]
L504[10:20:25] *** amadornes[OFF] is now known as amadornes
L505[10:25:59] ⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L506[10:26:04] <PaleoCrafter> hm... williewillus, with PIE.LeftClickBlock, is there any way to prevent the block from temporarily breaking in creative?
L507[10:28:47] <williewillus> oh huh
L508[10:28:51] <williewillus> it doesnt even catch creative clientside
L509[10:29:02] <williewillus> since it takes a compeltely separate code path (I think?)
L510[10:29:31] <PaleoCrafter> aha, and what does that mean for me? :P
L511[10:29:57] <Forecaster> it means "no, you've got to find another way" :P
L512[10:30:01] <williewillus> yeah https://gyazo.com/f7ca85a1386681d11a707ac47f88116b
L513[10:30:06] <williewillus> or "wait until I get tiime to pr fix"
L514[10:30:10] <williewillus> or "pr fix"
L515[10:30:14] <williewillus> :P
L516[10:30:36] <PaleoCrafter> well then :D
L517[10:31:09] <PaleoCrafter> I guess I could temporarily just listen to the mouse click and cancel it :P
L518[10:31:13] ⇨ Joins: RainyMesa (~RainyMesa@c-73-240-77-154.hsd1.or.comcast.net)
L519[10:31:34] *** williewillus is now known as willieaway
L520[10:37:00] <barteks2x> now to fix my version numbers I can eighter start from 0.0.0.0 again, or break old commits, so compiling them will reult in version "X.Y-0.0.0.0"
L521[10:37:19] <PaleoCrafter> hm?
L522[10:38:33] ⇨ Joins: codahq (~codahq@c-174-52-130-121.hsd1.ut.comcast.net)
L523[10:38:36] <barteks2x> I had some code in my build.gradle that generated version numbers according to this: http://mcforge.readthedocs.io/en/latest/conventions/versioning/ but because of the way it worked I had to break it after MC 1.9 release. And I want to fix it. But now I can eighter start from 0.0.0.0 again or break version numbers when compiling old commits
L524[10:39:26] <baegmon> Hi fam, in playerinteractevent, is a door counted as a block? I've tried to check instance of a door but its not reaching my printline. (code: http://puu.sh/oIqUQ/7768ce0886.png)
L525[10:39:54] <PaleoCrafter> baegmon, block state != block
L526[10:40:41] <baegmon> oh I've been using this method lol what other ways are there to check? I know in 1.8 it was something like ACTION.getTarget or something for blocks
L527[10:42:25] <PaleoCrafter> get the block from the state :P
L528[10:42:54] ⇨ Joins: Lunatrius (~Lunatrius@cpe-77.38.77.164.cable.t-1.si)
L529[10:44:11] ⇨ Joins: OscarXcore (~Oscar@node-1w7jr9yc9viurrxo4vpiomidi.ipv6.telus.net)
L530[10:44:12] *** Vigaro is now known as V
L531[10:44:18] ⇦ Quits: OscarXcore (~Oscar@node-1w7jr9yc9viurrxo4vpiomidi.ipv6.telus.net) (Client Quit)
L532[10:44:26] <baegmon> oh actually that makes sense haha ty
L533[10:44:57] ⇨ Joins: OscarXcore (~Oscar@node-1w7jr9yc9viurrxo4vpiomidi.ipv6.telus.net)
L534[10:45:14] ⇨ Joins: keybounce (~keybounce@adsl-108-192-94-196.dsl.bkfd14.sbcglobal.net)
L535[10:45:22] <OscarXcore> Hello
L536[10:45:48] <baegmon> hi
L537[10:46:01] ⇨ Joins: Poppy (~Poppy@chello085216146055.chello.sk)
L538[10:46:40] ⇨ Joins: OscarXcorePhone (uid157529@id-157529.tooting.irccloud.com)
L539[10:47:02] ⇦ Quits: OscarXcorePhone (uid157529@id-157529.tooting.irccloud.com) (Client Quit)
L540[10:47:19] <barteks2x> I'm probably going to break version numbers in older commits and hope nobody ever tries co compile them again
L541[10:55:58] ⇦ Quits: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net) (Ping timeout: 201 seconds)
L542[11:01:26] ⇦ Quits: Fye (~Fye@dynamic-adsl-84-220-169-44.clienti.tiscali.it) (Ping timeout: 198 seconds)
L543[11:03:57] <Wuppy> jesus this weather <3
L544[11:06:02] ⇦ Quits: auenf (David@DC-53-50.bpb.bigpond.com) (Remote host closed the connection)
L545[11:06:24] <RainyMesa> Wuppy: Same wuppy as from the #ludumdare channel?
L546[11:06:44] <Wuppy> yep
L547[11:06:50] <RainyMesa> Neat :)
L548[11:07:01] ⇦ Quits: Techokami (Techokami@2001:19f0:6800:8161:1:be:a:7001) (Ping timeout: 195 seconds)
L549[11:07:01] ⇨ Joins: auenf (David@DC-53-50.bpb.bigpond.com)
L550[11:07:11] ⇨ Joins: Techokami (Techokami@2001:19f0:6800:8161:1:be:a:7001)
L551[11:07:14] <Forecaster> comments on weather, then gets talked to by someone whose name contains "rainy" :P
L552[11:07:23] <RainyMesa> You called me
L553[11:07:51] <Wuppy> I prefer 16-25C with sun, no clouds no rain :)
L554[11:08:21] <Forecaster> that's today in a nutshell
L555[11:09:28] <thor12022> and then the weather gets commented upon by a Forcaster. . .
L556[11:09:45] *** amadornes is now known as amadornes[OFF]
L557[11:09:51] ⇨ Joins: agowa338 (~Thunderbi@p54918C24.dip0.t-ipconnect.de)
L558[11:09:55] <Wuppy> Forecaster, depends on wher eyou live
L559[11:09:56] <Forecaster> then someone spells my name wrong :P
L560[11:10:18] <barteks2x> I really hope I won't break my git repository when trying to fix version numbers
L561[11:10:18] <Forecaster> well, I'm obviously talking about where I live
L562[11:10:26] <Forecaster> I dunno about elsewhere
L563[11:10:34] <Wuppy> where's that?
L564[11:10:38] <Forecaster> sweden
L565[11:11:00] <Wuppy> same in tha netherlands
L566[11:11:56] <thor12022> Same in the Mid-West US too
L567[11:12:01] <Wuppy> it's lovely in the park with a beer :)
L568[11:14:41] *** amadornes[OFF] is now known as amadornes
L569[11:16:05] ⇨ Joins: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net)
L570[11:17:37] <Forecaster> if you like parks, and beer :P
L571[11:17:41] <vox> It's raining here in DC :/
L572[11:17:58] <vox> (East coast, US)
L573[11:18:00] <Wuppy> I dont have my own place outside (no yard) so I have to go for the park
L574[11:18:04] <Wuppy> and beer is awesome :D
L575[11:18:16] * Forecaster lives in a forest
L576[11:18:22] <Forecaster> and does not like beer :P
L577[11:18:28] <Wuppy> you should be called Forestcaster
L578[11:18:50] <Forecaster> I don't cast forests though
L579[11:18:58] <Wuppy> haha
L580[11:19:45] <Forecaster> hm
L581[11:20:24] <thor12022> you cast Fores?
L582[11:20:26] ⇦ Quits: IoP (jikuja@irc.ioppi.info) (Ping timeout: 195 seconds)
L583[11:20:31] ⇨ Joins: IoP (jikuja@irc.ioppi.info)
L584[11:20:44] <Forecaster> if I want to create a new item stack for one of my items what do I do?
L585[11:20:53] <Wuppy> new ItemStack
L586[11:20:55] <Wuppy> :D
L587[11:21:07] <Forecaster> yeah, but I pass it a new instance of my item
L588[11:21:11] <Forecaster> but the texture is broken
L589[11:21:34] <thor12022> you'll want to use the instance you registered
L590[11:21:48] <Forecaster> how do I get that?
L591[11:21:55] <Wuppy> it's public static
L592[11:21:58] <Forecaster> do I have to store that in a gettable way myself?
L593[11:22:04] <Wuppy> so Classname.itemName
L594[11:22:06] <vox> So, if you guys didn't know (I've said it a lot :P), I'm adding more shields to vanilla. Should I add one for tin? It seems like that metal isn't really used anywhere in mods
L595[11:22:18] <vox> For tools, at least
L596[11:22:25] <Wuppy> tin ins't a tough material though, is it?
L597[11:22:27] <Forecaster> isn't tin too soft?
L598[11:22:29] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Read error: Connection reset by peer)
L599[11:22:39] <thor12022> not according to iguana tweaks. . .
L600[11:22:39] <vox> Probably? In reality it's about as hard as copper
L601[11:22:40] <Forecaster> can't imagine it making for good shields or tools
L602[11:22:40] ⇦ Quits: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net) (Ping timeout: 384 seconds)
L603[11:22:52] <Wuppy> ^
L604[11:23:12] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L605[11:23:13] <vox> So the current list is wood (aka the vanilla shield), bone, iron
L606[11:23:27] <Forecaster> no steel?
L607[11:23:29] <vox> Wood and bone are historically things that do work, as is iron
L608[11:23:29] <Wuppy> steel :D
L609[11:23:33] <vox> Uh yeah sure, that works too
L610[11:23:35] <vox> Thanks
L611[11:23:43] ⇦ Quits: Stiforr (~Stiforr@ip72-216-8-185.pn.at.cox.net) (Ping timeout: 201 seconds)
L612[11:24:02] ⇦ Quits: GildedGames (~GildedGam@ec2-54-196-56-152.compute-1.amazonaws.com) (Remote host closed the connection)
L613[11:24:12] ⇨ Joins: GildedGames (~GildedGam@ec2-54-147-9-132.compute-1.amazonaws.com)
L614[11:24:38] <vox> I think the strategy for me is to add these shields regardless of whether or not the required materials are part of the pack, and if they are then add recipes
L615[11:24:39] <Dark> Historically tin was used as a bracer for shields, but it was not pure tin
L616[11:24:42] <vox> sound reasonable?
L617[11:24:49] <Dark> more like iron-tin alloy
L618[11:24:53] ⇨ Joins: Ipsis418 (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L619[11:24:54] <vox> Good to know
L620[11:25:07] <Forecaster> yep, add items regardless
L621[11:25:09] <Dark> most of the metals used in acient times were never pure
L622[11:25:18] <Dark> and sometimes when calling it iron it was actually something else
L623[11:25:20] <vox> I plan to eventually add Tinker's Construct integration, so I'll keep valid parts in mind
L624[11:25:22] <Dark> like silver-tin-zinc
L625[11:25:25] <vox> huh
L626[11:25:41] ⇦ Quits: manmaed (~Ender@bcdf031c.skybroadband.com) (Ping timeout: 195 seconds)
L627[11:26:03] <Dark> If you want to make it easy, write some generic code and use a registry to auto generate the shields
L628[11:26:10] <Dark> this way a mod can do Shields.reg(material)
L629[11:26:43] <vox> That's not a bad idea... and then I can require them to add their own textures as well >:D
L630[11:26:56] <Dark> yep, or do a grey scale texture and use an rgb color
L631[11:26:56] <vox> I'm already tired of making these and I'm literally modifing the vanilla one
L632[11:27:03] <Forecaster> allright, so I set my ModItems.itemCrate to public static
L633[11:27:09] <RainyMesa> Could use tin as the iron part in shields
L634[11:27:10] <Forecaster> that should do it I suppose
L635[11:27:39] <vox> So I've got wood, bone, iron, stell
L636[11:27:41] <vox> *steel
L637[11:27:51] <Forecaster> bronze?
L638[11:27:51] <vox> Anything else I should add at least in this base part of the mod?
L639[11:27:59] <vox> Okay
L640[11:28:01] <Dark> configs
L641[11:28:09] <Dark> allow server owners to adjust and blasklist values
L642[11:28:24] <vox> Fair enough
L643[11:28:33] <Dark> maybe even a config for a list of ingots to support
L644[11:28:33] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00)
L645[11:28:44] <vox> Bronze > Iron?
L646[11:28:45] <Forecaster> woop, thanks thor12022
L647[11:29:14] <Dark> depends on application
L648[11:29:41] <Dark> iron can be better than bronze but is also heavier, in theory as I don't know the numbers off hand
L649[11:30:07] <vox> For now the only thing I'm taking into account is "durability"
L650[11:30:20] <vox> At some point these shields need to have some more in-depth mechanics
L651[11:30:36] <Dark> In that case stick with what mod most consider standard
L652[11:30:40] <Dark> where iron is better than bronze
L653[11:30:45] *** tterrag|away is now known as tterrag
L654[11:30:50] <vox> Okay
L655[11:30:53] <Dark> its easier on the players
L656[11:31:10] <vox> In TiCon bronze has higher durability and the same mining level, apparently
L657[11:31:12] <vox> Huh
L658[11:31:17] <vox> http://tinkers-construct.wikia.com/wiki/Material_Stats
L659[11:31:41] <vox> Okay, I'll stick with that
L660[11:32:02] ⇦ Quits: Lathanael|Away (~Lathanael@p54961664.dip0.t-ipconnect.de) (Ping timeout: 190 seconds)
L661[11:32:23] ⇨ Joins: Fye (~Fye@dynamic-adsl-84-220-169-44.clienti.tiscali.it)
L662[11:32:27] <vox> That gives a point to actually having bronze shields too, since why would you ever do that if you could straight away make iron ones
L663[11:32:48] ⇨ Joins: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net)
L664[11:32:56] <vox> Also, for the list of supported ingots I plan to do it by ore dictionary
L665[11:33:13] <vox> Hopefully there's a way to list through all of the oredict'ed ingots
L666[11:33:43] *** V is now known as Vigaro
L667[11:33:43] <Dark> normally what I do is get all ore values with the name "ore" in them then match against values with "ingot"
L668[11:33:52] <Dark> as well check furnace recipes to ensure they are ingots
L669[11:34:54] ⇨ Joins: Lathanael|Away (~Lathanael@p54960050.dip0.t-ipconnect.de)
L670[11:35:02] <Dark> also if you want bonus points, take time to make decor shields
L671[11:35:11] <Dark> eg paint, different textures, different wood types, etc
L672[11:36:59] <vox> I was planning to support the vanilla banner system instead
L673[11:37:17] <vox> but different wood types could be a thing
L674[11:47:21] ⇦ Quits: Naiten (~Naiten@77.34.113.60) (Read error: Connection reset by peer)
L675[11:53:02] ⇦ Quits: theFlaxbeard (~theFlaxbe@184.97.134.35) (Ping timeout: 198 seconds)
L676[11:53:12] <vox> willieaway: is there a way to override vanilla textures?
L677[11:54:07] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L678[11:54:22] ⇨ Joins: theFlaxbeard (~theFlaxbe@184.97.134.35)
L679[11:54:25] *** amadornes is now known as amadornes[AFK]
L680[11:55:13] ⇨ Joins: thecodewarrior (~thecodewa@75-128-36-21.static.mtpk.ca.charter.com)
L681[11:57:10] ⇨ Joins: manmaed|AFK (~Ender@bcdf031c.skybroadband.com)
L682[11:57:56] *** manmaed|AFK is now known as manmaed
L683[11:59:36] *** willieaway is now known as williewillus
L684[11:59:59] <williewillus> vox: yes, but essentially no
L685[12:00:11] <Dark> resource packs would be the correct way
L686[12:00:17] <williewillus> you just put it in assets/minecraft/. But any resource pack is going to take precedence over mod assets
L687[12:01:30] ⇨ Joins: OscarXcorePhone (uid157529@2604:8300:100:200b:6667:4:2:6759)
L688[12:01:35] *** Vigaro is now known as V
L689[12:01:58] <PaleoCrafter> hmpf, not quite satisfied with entering the name xD http://s.mineformers.de/2016-05-06_19-01-05.mp4
L690[12:02:39] <ghz|afk> PaleoCrafter: lol, nice
L691[12:02:54] <williewillus> I say render the result semi-transparent or with some effect
L692[12:02:56] <PaleoCrafter> guess why I opened the substitution issue ;)
L693[12:03:05] <williewillus> it just lookewd like another ingredient
L694[12:03:27] <PaleoCrafter> yeah, not quite sure what to do, but semi-transparent works, I guess
L695[12:05:30] ⇨ Joins: alex_6611 (~alex_6611@p5DE7A0C9.dip0.t-ipconnect.de)
L696[12:05:47] <vox> williewillus: thanks, that works well enough I think
L697[12:06:00] <williewillus> yeah but any RP touches that and your changes are gone
L698[12:06:25] <vox> That's definitely true
L699[12:06:27] <williewillus> caveat emptor :P
L700[12:06:33] <vox> :P
L701[12:07:04] <vox> Since it's a resource pack they could also override my other textures. I'm not sure it's a huge issue
L702[12:08:35] <vox> PaleoCrafter: oh man, link to your mod? That looks awesome
L703[12:08:48] <PaleoCrafter> not released in any form yet :P
L704[12:09:04] <vox> Be sure to ping me with a link when you do :D
L705[12:09:06] <Forecaster> I can't store a player when writing a block to disk can I?
L706[12:09:21] <Forecaster> (still 1.7)
L707[12:09:25] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L708[12:09:36] ⇨ Joins: Delenas (~Delenas@2600:1016:b012:fc35:d10:773f:52bb:fcfe)
L709[12:09:44] <PaleoCrafter> oh, the enchanted item glint is a shader? Oo
L710[12:10:41] <Ordinastie_> is it now ?
L711[12:10:49] <PaleoCrafter> actually, doesn't look like it
L712[12:10:54] <Ordinastie_> it definitely wasn't before
L713[12:10:55] <PaleoCrafter> but my shader appears to interfere with it :D
L714[12:11:06] <ghz|afk> Forecaster: not a "block", but if you have a TileEntity, you can save the player's UUID
L715[12:11:15] <Forecaster> well yeah, a tile entity
L716[12:11:47] <vox> o/ gigaherz
L717[12:12:11] <Forecaster> I'm guessing player.getGameProfile().getId() returns the UUID?
L718[12:13:04] <ghz|afk> hmm dunno in 1.7
L719[12:13:11] <ghz|afk> in 1.8+ there's player.getUniqueID
L720[12:13:51] <Forecaster> getId returns a UUID, so that's probably correct
L721[12:13:54] <Forecaster> maybe
L722[12:14:12] <thor12022> EntityPlayer#getUniqueID() exists in 1.7.10
L723[12:14:20] <williewillus> it's not a shader :P
L724[12:14:36] <williewillus> it should be :P
L725[12:14:38] <Forecaster> so it does
L726[12:15:00] <Forecaster> probably better to use that then
L727[12:15:08] <thor12022> I think it's actually a method from Enity
L728[12:15:49] <Forecaster> it is
L729[12:15:49] <PaleoCrafter> yeah, williewillus, but that alpha shader I gave you some time back appears to override it in some weird way
L730[12:15:59] <williewillus> what does it look like?
L731[12:16:31] <PaleoCrafter> http://s.mineformers.de/java_2016-05-06_19-16-26.png
L732[12:16:39] <williewillus> RenderItem.renderEffect is what does the enchant glint for everything
L733[12:17:05] <PaleoCrafter> left is with glint, right one with shader (should have glint) and in my hand is reference that shows that it doesn't just not apply the glint
L734[12:18:12] <heldplayer> Right one looks like it has glint
L735[12:18:25] <williewillus> probably something in renderEffect
L736[12:18:31] <williewillus> idk what though since I don't know gl xP
L737[12:18:40] <PaleoCrafter> yeah, it sort of has the color applied partially, but it doesn't animate xD
L738[12:18:52] <williewillus> it changes the blend function and matrix mode
L739[12:18:56] <williewillus> is all I can get out of it :P
L740[12:18:57] <heldplayer> Can you clarify what your hand is a reference for?
L741[12:19:02] <Forecaster> how do I turn the id back into a player? :P
L742[12:19:05] <PaleoCrafter> for the item without glint
L743[12:19:17] <heldplayer> Ah, alright
L744[12:19:20] <heldplayer> Weird
L745[12:19:51] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00) (Quit: brb for a few hours)
L746[12:19:53] ⇨ Joins: sciguyryan (~sciguyrya@5.79.74.233)
L747[12:20:05] <PaleoCrafter> these are the fragment and vertex shaders, for reference: http://pastebin.com/bHXYS9ND
L748[12:21:42] <PaleoCrafter> oh, I'm stupid ._.
L749[12:21:47] <williewillus> what :P
L750[12:21:55] <Wuppy> we already know that, but what did you do wrong?
L751[12:21:55] <PaleoCrafter> I don't even need a vertex shader anyway and that seems to have caused the problem
L752[12:21:58] <Wuppy> sorry :P
L753[12:22:02] <williewillus> lol
L754[12:22:17] <williewillus> why don't you need a vert?
L755[12:22:46] <PaleoCrafter> dunno, but I don't xD
L756[12:23:02] *** DRedhorse is now known as DonAway
L757[12:23:22] <ghz|afk> opengl may let you use fixed-function vertex pipeline while still using pixel (fragment) shaders
L758[12:23:23] <Forecaster> is there a registry for players? :I
L759[12:23:30] <williewillus> Forecaster: wat
L760[12:23:35] <williewillus> what do you want to do again?
L761[12:23:41] <PaleoCrafter> I guess so, gigaherz
L762[12:23:47] <Forecaster> I need to turn the stored uuid back into a player object
L763[12:23:55] <williewillus> getEntityByUUID
L764[12:23:58] <Forecaster> when loading the tile entity
L765[12:23:59] <williewillus> or something like that
L766[12:24:03] <williewillus> uhhh
L767[12:24:10] <williewillus> the player's not guaranteed to be online
L768[12:25:05] <Forecaster> what object is that from though?
L769[12:25:08] <Forecaster> EntityPlayer?
L770[12:25:43] <DebugsPeople> world?
L771[12:26:02] <Forecaster> writeToNBT doesn't have a world
L772[12:26:16] <williewillus> what are you talking about lol
L773[12:26:37] <williewillus> I'm saying you can't go UUID->EntityPlayer unless that player is online at that very instant
L774[12:26:54] <PaleoCrafter> better, williewillus? http://s.mineformers.de/java_2016-05-06_19-26-51.png
L775[12:26:58] <ghz|afk> Forecaster: you can't get the player on load
L776[12:27:06] <ghz|afk> try to get it only when you need it
L777[12:27:11] <Forecaster> maybe I should store a name instead
L778[12:27:13] <williewillus> mmm looks better
L779[12:27:20] <ghz|afk> but remember to handle the case where the player just simply isn't online
L780[12:27:29] <ghz|afk> so yes, caching the last known player name is good
L781[12:27:30] <ghz|afk> ;p
L782[12:27:49] <Forecaster> this tile entity is basically claimable
L783[12:27:58] <PaleoCrafter> well, that's the anvil done then
L784[12:28:02] <Forecaster> so I need to store the player who claimed it
L785[12:28:06] <ghz|afk> Forecaster: sure
L786[12:28:07] <williewillus> store by UUID
L787[12:28:08] <ghz|afk> use the UUID
L788[12:28:12] <williewillus> display names
L789[12:28:13] <ghz|afk> and when someone tries to use it
L790[12:28:21] <williewillus> do all logic by UUID
L791[12:28:22] <ghz|afk> use player.getUniqueID().equals(storedUUID)
L792[12:28:27] <ghz|afk> to compare
L793[12:28:27] <PaleoCrafter> guess I'll do dragging on my crafting table then, ugh
L794[12:28:41] <williewillus> PaleoCrafter: what is this mod? :P
L795[12:28:47] <Forecaster> the claiming is to know who to reward when goods are delivered
L796[12:28:48] <williewillus> botania-fying vanilla interfaces?
L797[12:28:50] <williewillus> ;p
L798[12:28:55] <Forecaster> which can happen when the claimer is offline
L799[12:28:56] <PaleoCrafter> hehe
L800[12:29:02] <ghz|afk> which just made me realize I derped my own test for UUIDs
L801[12:29:03] <PaleoCrafter> yeah, I wanna get rid of most GUIs
L802[12:29:04] <Forecaster> (assuming a server of course)
L803[12:29:08] <ghz|afk> && (chest.getPlayerBound() == null || chest.getPlayerBound() == playerIn.getUniqueID()
L804[12:29:13] <ghz|afk> I'm way too used to C#
L805[12:29:53] <Delenas> You too, giga?
L806[12:30:00] <ghz|afk> I AM a C# developer
L807[12:30:06] <ghz|afk> who happens to tolerate java enough to write mods
L808[12:30:08] <ghz|afk> ;P
L809[12:30:13] <Forecaster> I was planning to use the scoreboard system to hand out rewards
L810[12:30:19] <vox> Same here <3 C#
L811[12:30:21] <PaleoCrafter> everything except chests, hoppers, droppers and dispensers will probably be directly interacted with
L812[12:30:22] <Forecaster> which I'm supposing is name based
L813[12:30:44] <Forecaster> so storing the name might be the best option
L814[12:30:55] <Forecaster> though I need to find some scoreboard code to know for sure
L815[12:31:05] ⇦ Quits: RainyMesa (~RainyMesa@c-73-240-77-154.hsd1.or.comcast.net) (Quit: Quit)
L816[12:31:55] <Forecaster> the alternative would be to have the block dispense the reward as items through the gui, and making it so only the claimant can open it
L817[12:32:06] <Forecaster> but then the player would have to visit each building which I'd like to avoid
L818[12:32:44] <ghz|afk> Forecaster: store the data separately
L819[12:32:45] <ghz|afk> hmm
L820[12:32:50] <ghz|afk> did 1.7.10 have the WorldSavedData system?
L821[12:33:41] <PaleoCrafter> http://s.mineformers.de/2016-05-06_19-32-49.mp4 that's how far I've gotten with the crafting table so far, still quite unpolished
L822[12:33:44] <Forecaster> actually, scoreboard data is stored in the player isn't it...
L823[12:33:48] <Forecaster> it's not global
L824[12:33:50] <Forecaster> dangit...
L825[12:33:53] <PaleoCrafter> not sure how i want to trigger the actual crafting process
L826[12:34:12] <PaleoCrafter> but I guess I'll have to modify the grid to accomodate for another slot on the right
L827[12:34:39] <williewillus> why are the blocks briefly appearing clientside? that sohuldn't happen if you deny useItem clientside
L828[12:34:45] <ghz|afk> Forecaster: does WorldSavedData exist in 1.7.10?
L829[12:34:46] <ghz|afk> ;P
L830[12:34:53] <PaleoCrafter> lemme see
L831[12:34:55] <Forecaster> maybe
L832[12:34:56] <tterrag> answer: yes
L833[12:34:59] <PaleoCrafter> maybe I'm not even doing it client-side?
L834[12:35:10] <williewillus> :P
L835[12:35:12] <Forecaster> it does
L836[12:35:33] <Forecaster> maybe the best solution would be to have an "ATM" type block
L837[12:35:37] <ghz|afk> Forecaster: https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/storage/RiftStorageWorldData.java
L838[12:35:38] <tterrag> PaleoCrafter: that seems likely
L839[12:35:48] <tterrag> it looks like the client is placing the block then getting the packet from the server saying "nope"
L840[12:35:52] <ghz|afk> check, as an example of WorldSavedData being used
L841[12:35:59] <Forecaster> that lets you get accumulated rewards from one location
L842[12:36:01] <ghz|afk> this will let you keep track of the player's rewards
L843[12:36:15] <ghz|afk> and make them accessible from *anywhere*
L844[12:36:27] <barteks2x> Why it always takes me forever to find so simple mistakes... I was trying to figure out why setting new default value for max-build-height doesn't work. I just realized I didn't delete old server.properties file
L845[12:36:28] <ghz|afk> even if the player isn't online
L846[12:36:42] <Forecaster> that wasn't the hard part :P
L847[12:36:47] <ghz|afk> barteks2x: because the issues are simple, so we forget about them
L848[12:36:55] <Forecaster> actually giving it to the player was
L849[12:36:59] <PaleoCrafter> yep, I wasn't doing it client-side because I'd spawn stuff on the client then (couldn't be arsed to do separate checks for that when I first wrote it xD)
L850[12:36:59] <masa> Forecaster: scoreboard should be global, it is stored in world/data/scoreboard.dat
L851[12:37:06] ⇨ Joins: RainyMesa (~RainyMesa@c-73-240-77-154.hsd1.or.comcast.net)
L852[12:37:16] <PaleoCrafter> no I do it on the client and it works all nicely :P
L853[12:37:41] <Forecaster> masa: some of it is, but I think the specific values for a player is stored in the player object?
L854[12:37:56] <Forecaster> maybe I'm thinking of something else
L855[12:38:30] <ghz|afk> there we go, best release ever: https://github.com/gigaherz/Enderthing/releases
L856[12:39:02] <williewillus> what did you derp?
L857[12:39:05] <ghz|afk> Forecaster: and that's why I mentioned the WorldSavedData -- why worry at all about the scoreboard, when you can just simply store things in a WorldSavedData instance? ;P
L858[12:39:11] <ghz|afk> williewillus: == vs equal
L859[12:39:26] <sham1> Yes
L860[12:39:31] <Forecaster> ghz|afk: because I still need a way for the player to get the reward? :P
L861[12:39:48] <ghz|afk> Forecaster: what kind of reward is it?
L862[12:40:15] <Forecaster> but like I said, just storing the rewards in a list in my mod and providing an item to use it should work
L863[12:40:15] <williewillus> how do you compare reference equality if you can overload ==
L864[12:40:18] <williewillus> jc
L865[12:40:35] <ghz|afk> nononono "just storing the rewards in a list" is the wrong way to think about that
L866[12:40:59] <ghz|afk> willies952002: Object.ReferenceEquals
L867[12:41:00] <Forecaster> ghz|afk: some arbitrary number for delivering goods that can be exchanged for currency to buy things
L868[12:41:03] <ghz|afk> williewillus*^
L869[12:41:19] <Forecaster> currency being something like emeralds or IC2 coins or something
L870[12:41:32] <ghz|afk> Forecaster: so it's actual ingame items, or just a counter somewhere?
L871[12:41:46] <masa> why does C# do it backwards?
L872[12:41:56] <ghz|afk> masa: so far as I'm concerned, Java does it backward
L873[12:42:04] <ghz|afk> a==b means "does a equal b?"
L874[12:42:05] <ghz|afk> not
L875[12:42:07] <Tazz> Does anyone know a good writer?
L876[12:42:10] <ghz|afk> "is a exactly the same instance as b?"
L877[12:42:18] <ghz|afk> Tazz: what kind of writing?
L878[12:42:19] <Forecaster> I was just going to store a number so that the player/server owner can determine the exchange rate
L879[12:42:22] <ghz|afk> I dabbled in fiction
L880[12:42:25] <williewillus> it makes sense they did it that way though
L881[12:42:34] <Forecaster> Tazz: what kind of writer?
L882[12:42:35] <masa> well to me .equals() being a method makes more sense so that it actually checks the data, and == just compares the reference or "pointer"
L883[12:42:50] <williewillus> in java == always means you're comparing two numbers, whether that be primitives or two references (pointers)
L884[12:42:53] <Tazz> Like story eriting
L885[12:42:56] <ghz|afk> https://gigaherz.wordpress.com/
L886[12:43:24] <Tazz> Actually == is a reference comparison
L887[12:43:30] <williewillus> i know
L888[12:43:38] <ghz|afk> in C#, == is reference, unless you override it
L889[12:43:45] <Tazz> Not comparing 2 numbers
L890[12:43:46] <williewillus> but "comparing by reference" is just comparing two numbers
L891[12:43:49] <williewillus> yes it is..
L892[12:43:49] <ghz|afk> yeah
L893[12:43:57] <williewillus> it's the pointers in the implementation
L894[12:43:57] <ghz|afk> it's basically comparing the "instance IDs" of the two classes
L895[12:43:58] <Forecaster> ghz|afk: no images >: -5/10
L896[12:43:59] <Tazz> Well it is lower
L897[12:44:04] <masa> oh so by default it is reference
L898[12:44:08] <ghz|afk> Forecaster: it's writing, not illustrating ;P
L899[12:44:13] <williewillus> but you are basically still comparing some sort of unique identifying number
L900[12:44:22] <Forecaster> ghz|afk: I was refering to your mod
L901[12:44:26] <ghz|afk> masa: yes, C# won't do field-by-field comparisons for you
L902[12:44:37] <Forecaster> probably should have specified that :P
L903[12:44:43] <ghz|afk> Forecaster: Oh, the logo should be enough
L904[12:44:46] <ghz|afk> use JEI for recipes
L905[12:44:46] <ghz|afk> ;P
L906[12:45:06] <Tazz> Actually your comparing the unboxed values of it or the pointed value
L907[12:45:25] <williewillus> wat
L908[12:45:28] <ghz|afk> wat?
L909[12:45:30] <williewillus> what is "it"
L910[12:45:31] ⇨ Joins: Gil (uid147942@id-147942.brockwell.irccloud.com)
L911[12:45:34] <Forecaster> ghz|afk: you should put a larger version of the logo in the body
L912[12:45:47] <Tazz> Any object your comparing
L913[12:45:55] <Forecaster> it's not obvious that you can enlarge it
L914[12:45:57] <williewillus> when you do reference comparison a == b you are *literally* saying "do you two occupy the exact same memory location*
L915[12:45:59] ⇦ Quits: RainyMesa (~RainyMesa@c-73-240-77-154.hsd1.or.comcast.net) (Quit: Quit)
L916[12:46:06] <ghz|afk> Forecaster: meh. :P
L917[12:46:44] <Tazz> Or the unboxed value if it's a primitive
L918[12:46:51] <williewillus> if it's a primitive
L919[12:46:55] <Forecaster> images sells
L920[12:46:58] <williewillus> ?
L921[12:47:05] <williewillus> then it's not a reference comparison
L922[12:47:06] <williewillus> :P
L923[12:47:15] <Tazz> That is in dart
L924[12:47:22] <sham1> For primitives == could just be generalized as "is the difference between these two values 0"
L925[12:47:24] <williewillus> we were talking about java
L926[12:47:32] <Tazz> And my language
L927[12:47:34] <ghz|afk> Forecaster: better? ;P
L928[12:48:00] <williewillus> this mailing list is interesting reading for value types
L929[12:48:00] <williewillus> http://mail.openjdk.java.net/pipermail/valhalla-spec-experts/
L930[12:48:20] <Forecaster> ghz|afk: looks great :D
L931[12:48:26] <Tazz> Honestly though most smaller numbers are the same object anyways
L932[12:48:32] <Tazz> In java that is
L933[12:48:53] *** brandon3055 is now known as brandon|zzz
L934[12:49:44] <tterrag> are boxed values pooled?
L935[12:49:46] <tterrag> I wasn't aware of that
L936[12:49:50] <williewillus> only in a range
L937[12:49:51] <tterrag> I knew strings were
L938[12:49:57] <tterrag> interesting
L939[12:49:58] <Tazz> Yeah in a small range
L940[12:50:00] <tterrag> I guess it makes sense
L941[12:50:05] <williewillus> and you can hack the pool :P
L942[12:50:11] <sham1> it does yeah
L943[12:50:12] <Tazz> Optimization technique
L944[12:50:29] <williewillus> Integer i = 4; i == 5 can be true, if you hack the pool :P
L945[12:50:43] ⇨ Joins: Hgrebnednav (~Hgrebnedn@d8D872D48.access.telenet.be)
L946[12:50:50] <Tazz> I can crew
L947[12:51:03] <Tazz> Create an instance of a class without a constructor call
L948[12:51:16] <Tazz> Sorry phone client sucks
L949[12:51:16] <williewillus> of course
L950[12:51:18] <williewillus> unsafe :P
L951[12:51:21] <williewillus> or jni
L952[12:51:26] <ghz|afk> [19:50] (williewillus): Integer i = 4; i == 5 can be true, if you hack the pool :P
L953[12:51:30] <ghz|afk> that couldn't happen with operator overloading
L954[12:51:42] <williewillus> that has nothing to do with op overloading
L955[12:51:44] <ghz|afk> the base class for all boxed values would simply override the == operator to call the base type's
L956[12:51:50] <Tazz> Google's gson wouldn't work real well without unsafe
L957[12:51:54] <williewillus> the pooling is just stupid
L958[12:52:03] <williewillus> and boxing/unboxing, and java generics in general :P
L959[12:52:15] <Tazz> Java autboxes
L960[12:52:17] <williewillus> which is why I'm intently watching the valhalla mailing lists :P
L961[12:52:31] ⇦ Quits: theFlaxbeard (~theFlaxbe@184.97.134.35) (Ping timeout: 201 seconds)
L962[12:52:33] *** fry is now known as fry|sleep
L963[12:52:35] ⇨ Joins: RainyMesa (~RainyMesa@128-223-223-204-wireless.uoregon.edu)
L964[12:53:07] <thecodewarrior> With the JEI API can you specify a special list of items to cycle through?
L965[12:53:14] <williewillus> yes
L966[12:53:14] <ghz|afk> nope
L967[12:53:24] <williewillus> wat
L968[12:53:25] <ghz|afk> williewillus: wat?
L969[12:53:35] <williewillus> wherever you see an Object param
L970[12:53:38] <Tazz> Haha
L971[12:53:41] <williewillus> it can be a ItemStack or Collection<ItemStack>
L972[12:53:46] ⇨ Joins: theFlaxbeard (~theFlaxbe@184.97.134.35)
L973[12:54:09] <ghz|afk> also, ask in #JEI ;P
L974[12:54:22] <thecodewarrior> Thanks, and whoops.
L975[12:55:18] <Tazz> To those familiar should I use a gc or arc or manual memory management for Eschelle
L976[12:55:30] <williewillus> what is this?
L977[12:55:39] ⇦ Quits: Cast0077 (~Work@24-181-178-44.dhcp.nwtn.ct.charter.com) (Read error: Connection reset by peer)
L978[12:55:55] <Tazz> What is what
L979[12:56:04] <williewillus> Eschelle
L980[12:56:14] <Tazz> My prog language
L981[12:56:14] <S3> What could possibly be causng a disconenct generic error?
L982[12:56:21] <williewillus> anything
L983[12:56:26] <williewillus> as the error message says :P
L984[12:56:36] <williewillus> Tazz: go hard or go home GC ;)
L985[12:57:07] <Tazz> Williewillus: it's not that hars
L986[12:57:23] ⇨ Joins: Hgreb (~Hgrebnedn@d8D872D48.access.telenet.be)
L987[12:57:25] <williewillus> if you want a good one yeah
L988[12:57:28] <Tazz> I already have a generational and marksweep collector for a previous project
L989[12:57:38] ⇨ Joins: stiforr_ (~stiforr@wsip-68-225-123-207.pn.at.cox.net)
L990[12:57:40] <williewillus> do whatever you want then :P
L991[12:57:42] <Tazz> The generational is my favourite it works perfecfly
L992[12:57:50] ⇦ Quits: Hgrebnednav (~Hgrebnedn@d8D872D48.access.telenet.be) (Ping timeout: 198 seconds)
L993[12:58:44] <sham1> I have heard that the GC is quite decent nowadays
L994[12:59:13] <Tazz> Javas GC is nice
L995[12:59:52] <ghz|afk> .NET's still feels smoother
L996[12:59:55] <Tazz> Mine is relatively good
L997[13:00:30] <Tazz> It's not a concurrent one though
L998[13:00:30] *** DonAway is now known as DRedhorse
L999[13:00:40] <Tazz> Only stoptheworld
L1000[13:00:51] <ghz|afk> well you have to start somewhere
L1001[13:00:51] <ghz|afk> ;P
L1002[13:00:59] <Tazz> Haha
L1003[13:01:02] <Tazz> Yeah
L1004[13:01:13] <ghz|afk> I wanted to try writing a langauge VM at some point
L1005[13:01:18] <ghz|afk> the GC kept me away
L1006[13:01:22] <Tazz> Haha
L1007[13:01:43] <Tazz> Http://github.com/s0cks/solr
L1008[13:02:07] <Tazz> That contains the generational gc
L1009[13:02:22] <ghz|afk> I had a design idea, that would encode complex instructions
L1010[13:02:27] <ghz|afk> including expressions and such
L1011[13:02:37] <ghz|afk> like, there were only a handful of root opcodes
L1012[13:02:38] ⇦ Quits: stiforr_ (~stiforr@wsip-68-225-123-207.pn.at.cox.net) (Ping timeout: 198 seconds)
L1013[13:02:50] <ghz|afk> set, compare, branch, ...
L1014[13:03:19] <Tazz> Like a hot?
L1015[13:03:21] <ghz|afk> and then successive bytes would indicate how to obtain the source operand, the destination operand
L1016[13:03:25] <Tazz> Not*
L1017[13:03:29] ⇨ Joins: SatanicSanta (~SatanicSa@c-76-115-175-15.hsd1.or.comcast.net)
L1018[13:03:30] <Tazz> Jit*
L1019[13:04:22] ⇦ Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) (Ping timeout: 190 seconds)
L1020[13:04:57] <ghz|afk> so like, an opcode sequence could have been, "SET(R1, ADD(R2, R3))" encoded as [set][register,R1][add][register,R2][register,R3]
L1021[13:05:28] <ghz|afk> each [] being one or more bytes
L1022[13:05:34] <williewillus> variable legnth instructions are meh :P
L1023[13:05:43] *** cpw is now known as cpw|out
L1024[13:05:57] <ghz|afk> this was for a binary intermediate representation, though
L1025[13:06:09] <williewillus> oh
L1026[13:06:22] <SatanicSanta> Question regarding the capabilities docs: It says that IEEP and Capabilities do not "match" 1:1, but it never really explains how their use cases differ. For example, are capabilities used to store basic data for entities, or are they used for complicated things, with those simple things being replaced by something else?
L1027[13:06:37] <ghz|afk> not meant to be interpreted as-is, but JITted
L1028[13:06:43] <ghz|afk> (or AOTed)
L1029[13:07:08] <Tazz> Eschelle converts the ast to an ir then optimizes it using flow graph optimization techniques like ssa and canonicalization constant propagation cse and what not
L1030[13:07:18] <williewillus> SatanicSanta: capabilities have a broader use case
L1031[13:07:25] <Tazz> Then emits machine code
L1032[13:07:25] <williewillus> is really all it means
L1033[13:07:40] <ghz|afk> SatanicSanta: one of the possible use cases for a capability, is to replace an IEEP
L1034[13:08:01] <ghz|afk> the concept is still the same, when you apply it to an IEEP-like capability
L1035[13:08:12] <ghz|afk> just the way you attach it and such, change
L1036[13:08:31] ⇨ Joins: stiforr_ (~stiforr@wsip-68-225-123-207.pn.at.cox.net)
L1037[13:08:53] <SatanicSanta> It just seems like, from the docs, capabilities are used for more complicated things. It leads me to believe something was implemented to handle more simple things like, for example, storing whether youve extended the players reach range
L1038[13:09:49] <ghz|afk> capabilities are a general-purpose thing
L1039[13:09:56] <ghz|afk> they simply let you attach "features" into objects
L1040[13:10:25] <ghz|afk> objects being TileEntities, Entities, ItemStacks
L1041[13:10:40] <SatanicSanta> Right. I get that much.
L1042[13:10:41] <ghz|afk> forge provides one capability: IItemHandler
L1043[13:10:49] <ghz|afk> which replaces IInventory and ISidedInventory
L1044[13:10:51] <williewillus> tehy can be as "simple" or "complicated" as you make it..
L1045[13:11:10] <williewillus> one of my caps for projecte has 2 methods in the Capability Interface
L1046[13:11:13] <ghz|afk> I wrote a little library that has a capability that replaces RF
L1047[13:11:34] <ghz|afk> and most of my mods used to have at least one IEEP
L1048[13:11:40] <ghz|afk> which I converted to capability
L1049[13:11:47] <SatanicSanta> Mkay. Slightly different question: Are capabilities the only replacement for IEEPs?
L1050[13:11:53] <ghz|afk> and yes, the capability system is overkill if all you want is to store a single number
L1051[13:11:53] <williewillus> yes
L1052[13:12:05] <ghz|afk> yes, if you used an IEEP, you use a capability now
L1053[13:12:16] <ghz|afk> more boilerplace, but /shrug
L1054[13:12:20] <ghz|afk> plate*
L1055[13:13:36] <Delenas> So.. dynamic coloring with IItemColor. Is there a specific shade of color I need to match an rbg color closely? My colors are super off..
L1056[13:14:16] <williewillus> 0xRRGGBB
L1057[13:14:27] <SatanicSanta> ghz|afk: That's what was confusing me I suppose. It seems like way more effort to achieve something that should be so simple. And there doesn't seem to be any other replacement, in the docs, that isn't this system.
L1058[13:14:36] <SatanicSanta> (looking at https://github.com/MinecraftForge/MinecraftForge/blob/1.9/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java)
L1059[13:14:39] <williewillus> it's not really that much boilerplate
L1060[13:14:48] <williewillus> imo
L1061[13:15:23] <SatanicSanta> It's like 100+ extra lines of code. That's quite a bit of boilerplate if you ask me. And that doesn't factor in the extra number of classes and interfaces needed.
L1062[13:15:30] <williewillus> uhh wat
L1063[13:15:59] <ghz|afk> nah not 100+
L1064[13:16:03] <williewillus> registering the cap + the cap provider + attaching the cap
L1065[13:16:13] <ghz|afk> it's like 20 lines boilerplate, tops
L1066[13:16:14] <SatanicSanta> multiplied by how many you need
L1067[13:16:31] <ghz|afk> vs like 15 from an IEEP?
L1068[13:16:34] <ghz|afk> it's not that much worse ;P
L1069[13:16:38] <williewillus> it really isn't
L1070[13:16:49] <SatanicSanta> Well, 1 capability is 1 value, yes?
L1071[13:16:57] <williewillus> that's up to your design
L1072[13:17:09] <williewillus> if this is for internal usage
L1073[13:17:12] * SatanicSanta grumbles about these docs
L1074[13:17:17] <williewillus> you can put it all into the same one
L1075[13:17:21] <williewillus> what docs
L1076[13:17:26] <SatanicSanta> http://mcforge.readthedocs.io/en/latest/datastorage/capabilities
L1077[13:17:30] <ghz|afk> probably the mcforge ones that I wrote
L1078[13:17:31] <ghz|afk> ;P
L1079[13:17:35] <williewillus> no one ever said you only could have one method on a Capability Interface
L1080[13:18:41] <williewillus> the Capability Interface doesn't even need to be an interface I think
L1081[13:18:42] <williewillus> lemme try
L1082[13:18:48] <ghz|afk> it doesn't
L1083[13:18:51] <ghz|afk> but lex said it's meant to be
L1084[13:18:51] <williewillus> also read these docs https://gist.github.com/williewillus/c8dc2a1e7963b57ef436c699f25a710d
L1085[13:19:04] <ghz|afk> so the doc speaks only about interfaces
L1086[13:19:21] <ghz|afk> but it works just fine if you use a class
L1087[13:19:24] <SatanicSanta> >.>
L1088[13:19:36] <ghz|afk> https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/entitydata/SpellcastEntityData.java
L1089[13:19:44] <ghz|afk> this was an IEEP that I converted to capability
L1090[13:19:49] <ghz|afk> in the laziest way possible
L1091[13:20:19] <williewillus> idk why you think it's so much boilerpalte
L1092[13:20:22] <ghz|afk> check the handler at the bottom
L1093[13:20:25] <williewillus> whipping up an example rn...
L1094[13:20:32] ⇦ Quits: stiforr_ (~stiforr@wsip-68-225-123-207.pn.at.cox.net) (Ping timeout: 384 seconds)
L1095[13:22:54] ⇦ Quits: baegmon (~baegmon@cpe-60-225-55-120.nsw.bigpond.net.au) (Read error: Connection reset by peer)
L1096[13:23:23] <williewillus> 64 lines for me https://gist.github.com/anonymous/7d9c9cb0ea44db82f1a818e3b740c013
L1097[13:23:40] <williewillus> that's doing it the messiest way possible :P
L1098[13:24:05] <ghz|afk> yeah lazy for me often means more code
L1099[13:24:10] <ghz|afk> because I want to use my brain less
L1100[13:24:10] <ghz|afk> ;P
L1101[13:24:18] ⇨ Joins: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net)
L1102[13:24:19] <ghz|afk> also I'd never use a "struct" with just fields
L1103[13:24:23] <capitalthree> so lazy today means more work tomorrow
L1104[13:24:35] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping timeout: 201 seconds)
L1105[13:24:40] <williewillus> yeah my point was you don't need a separate one for every "value"
L1106[13:24:51] <ghz|afk> capitalthree: yes
L1107[13:24:53] <williewillus> just have ONE cap called "InternalProperties" or whatever
L1108[13:24:56] <capitalthree> williewillus: o_o why doesn't MyInternalCap have an array
L1109[13:25:04] <ghz|afk> capitalthree: it's an example
L1110[13:25:07] <ghz|afk> it's not meant to be good code
L1111[13:25:10] <capitalthree> ahh ok
L1112[13:25:17] <capitalthree> I need to stop clicking random links in here xD
L1113[13:25:19] <williewillus> am I being told how my code sucks etc. etc.?
L1114[13:25:32] <ghz|afk> yes, your code sucks.
L1115[13:25:35] <capitalthree> :D
L1116[13:30:28] <SatanicSanta> Is there anyone actually using it either A) in a not messy/lazy way, or B) the way it was intended to be used. I have so far failed to find anyone NOT using it like that.
L1117[13:32:56] <williewillus> capabilities?
L1118[13:33:08] <williewillus> ProjectE has a clean proper implementation of a capability in a way it was meant to be used
L1119[13:33:09] <williewillus> as does forge
L1120[13:33:09] <SatanicSanta> sí
L1121[13:33:21] <SatanicSanta> k, ill look at projecte
L1122[13:33:25] <williewillus> read the gist I linked
L1123[13:33:47] <williewillus> (https://gist.github.com/williewillus/c8dc2a1e7963b57ef436c699f25a710d)
L1124[13:34:11] <SatanicSanta> yeah im reading that. Just not sure if Projecte was a good example, or if you were linking that specific interface because that specific interface was a good example.
L1125[13:34:27] <williewillus> uh that specific Capability Interface + usage of it
L1126[13:34:35] <williewillus> other parts of PE are not good example code :P
L1127[13:34:56] <SatanicSanta> alright
L1128[13:36:47] ⇨ Joins: Lordmau5 (~Lordmau5@2a01:4f8:162:50e3::2)
L1129[13:37:17] <Lordmau5> !pokes unascribed again :<
L1130[13:37:29] <Lordmau5> (perhaps he's there now)
L1131[13:39:14] <PaleoCrafter> he responded a couple hours after you poked him yesterday, Lordmau5 :P
L1132[13:39:25] <Lordmau5> yea, I think PMs are better in this case
L1133[13:39:32] <Lordmau5> I'm barely on IRC anymore due to Discord just being better :/
L1134[13:39:41] <williewillus> is there a modding discord?
L1135[13:39:46] <Lordmau5> I wish
L1136[13:39:51] <Lordmau5> or at least, I don't know of one
L1137[13:39:56] <SatanicSanta> There is
L1138[13:40:01] <Lordmau5> an *official* one?
L1139[13:40:03] <SatanicSanta> no
L1140[13:40:04] <williewillus> where?
L1141[13:40:04] <Lordmau5> or one of the 500 ones
L1142[13:40:07] <Lordmau5> yea...
L1143[13:40:20] <williewillus> the ones the big(ger) name modders are on :P
L1144[13:40:21] <SatanicSanta> http://forum.feed-the-beast.com/threads/coding-group.152003/
L1145[13:40:33] <Lordmau5> Also, with "official" I meant "recognized as official by the community"
L1146[13:40:42] <SatanicSanta> It's more of a watercooler kinda thing :P
L1147[13:40:49] ⇨ Joins: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net)
L1148[13:41:31] *** williewillus is now known as willieaway
L1149[13:41:54] <Lordmau5> yea, figured, not that many people on
L1150[13:41:59] <Lordmau5> compared to 291 on this IRC
L1151[13:42:49] <SatanicSanta> Discord is kinda blegh anyway.
L1152[13:42:57] <Lordmau5> not if you use it properly
L1153[13:43:03] <Lordmau5> I'm in like 20 servers
L1154[13:43:04] <Lordmau5> actively
L1155[13:43:12] <SatanicSanta> Nah, it's just another communication software using electron.
L1156[13:43:26] <Lordmau5> you just have to use it properly and engage in communities, lol
L1157[13:43:27] <SatanicSanta> I don't need A) more communication software, or B) more things using chrome
L1158[13:43:33] <Lordmau5> well, up to you
L1159[13:43:36] <Lordmau5> I'm gonna head out of htis again
L1160[13:43:37] <Jdembo> why not use IRC > electron?
L1161[13:43:39] <Lordmau5> o/
L1162[13:43:41] ⇨ Joins: Stiforr (~Stiforr@ip72-216-8-185.pn.at.cox.net)
L1163[13:43:49] <SatanicSanta> Jdembo: what?
L1164[13:43:58] <unascribed> Lordmau5, I'm here again
L1165[13:43:58] <Jdembo> why use discord
L1166[13:44:00] <Jdembo> if IRC is fine
L1167[13:44:16] <SatanicSanta> discord has voice and game integration
L1168[13:44:41] *** amadornes[AFK] is now known as amadornes
L1169[13:44:57] <Jdembo> but not FOSS
L1170[13:45:05] <SatanicSanta> nope
L1171[13:45:08] <SatanicSanta> but neither is curse
L1172[13:45:13] <SatanicSanta> or slack iirc
L1173[13:45:15] <SatanicSanta> or teamspeak
L1174[13:45:28] <Jdembo> thats why slack is terrible for FOSS projects
L1175[13:45:39] <SatanicSanta> I enjoy slack
L1176[13:45:45] <Jdembo> and curse-forge is terrible lol, someone should port KerbalStuff to MC
L1177[13:46:00] <SatanicSanta> Jdembo: I'm talking about CurseVoice.
L1178[13:46:26] <Jdembo> never even heard of it
L1179[13:46:44] <Jdembo> why not just use mumble?
L1180[13:47:31] <SatanicSanta> I don't think you can have 1000+ people on a single mumble room
L1181[13:47:43] <SatanicSanta> and if you can i imagine it'd be expensive.
L1182[13:47:59] <Jdembo> i cant even imagine having 1000 people in a single voicechat
L1183[13:48:03] <Jdembo> that'd be unusable lol
L1184[13:49:05] <SatanicSanta> actually, im pretty sure in the ftb curse channel, there were over a hundred people in a voice room and nobody was saying a word :P
L1185[13:49:10] <Jdembo> but seriously, a kerbalstuff MC port would be really awesome
L1186[13:49:29] <Jdembo> https://github.com/KerbalStuff/KerbalStuff sites down, but you can find archives of it
L1187[14:02:00] <tterrag> It shut down because It was prohibitively expensive to run
L1188[14:02:12] ⇦ Quits: vox (~voxmods@pool-71-178-241-173.washdc.fios.verizon.net) (Ping timeout: 201 seconds)
L1189[14:02:20] <tterrag> curseforge is the best mc mod distribution platform so far
L1190[14:02:33] <tterrag> idk how it's "bad"
L1191[14:03:46] <SatanicSanta> ^
L1192[14:04:02] <ghz|afk> works really well for me
L1193[14:04:05] <SatanicSanta> certainly better than adfly links on the minecraft forums :P
L1194[14:04:13] <ghz|afk> the site is clean and straightforward
L1195[14:04:16] <SatanicSanta> mhm
L1196[14:04:18] <IoP> SatanicSanta: do you mean that people should actually talk o_O
L1197[14:04:20] <SatanicSanta> all i need is some api docs
L1198[14:04:27] <SatanicSanta> IoP: huh?
L1199[14:04:32] ⇨ Joins: CoolSquid (~CoolSquid@ti0011a400-2417.bb.online.no)
L1200[14:08:04] <IoP> SatanicSanta: actually biggest amount of users in CV voice chanbel with voice actived has been 4 or 5.
L1201[14:08:08] ⇨ Joins: vox (~voxmods@pool-71-178-241-173.washdc.fios.verizon.net)
L1202[14:08:13] <LexDesktop> !gc LootPool
L1203[14:08:41] <vox> In response to Satanic and Jdembo: IRC ftw just because other people are here who know what the heck they're doing
L1204[14:08:42] <LexDesktop> !gm LootPool.<init>
L1205[14:08:46] <LexDesktop> :/
L1206[14:08:57] <vox> Also the interface is simple and I can use it from command line
L1207[14:09:01] <vox> Which is nice
L1208[14:09:01] <LexDesktop> !gm LootPool
L1209[14:09:15] <LexDesktop> Ah okay thats how it's in the bot.
L1210[14:16:07] <Nosirrom> upgraded my eclipse to use java8 now. thought my workspace was broken, but no it just imported the scala list.
L1211[14:17:19] <heldplayer> God damn Scala
L1212[14:23:49] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Read error: Connection reset by peer)
L1213[14:24:02] ⇦ Quits: Firedingo (~Firedingo@CPE-121-217-142-167.lnse2.cht.bigpond.net.au) (Ping timeout: 190 seconds)
L1214[14:24:06] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L1215[14:27:26] <Jdembo> vox: irssi?
L1216[14:27:42] <vox> ?
L1217[14:33:52] <capitalthree> scala ruined everything
L1218[14:38:02] ⇦ Quits: OscarXcorePhone (uid157529@2604:8300:100:200b:6667:4:2:6759) (Quit: Connection closed for inactivity)
L1219[14:39:54] ⇦ Quits: Delenas (~Delenas@2600:1016:b012:fc35:d10:773f:52bb:fcfe) (Quit: Console.Write("Goodbye, world!");)
L1220[14:40:02] ⇦ Quits: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi) (Read error: Connection reset by peer)
L1221[14:41:40] ⇨ Joins: aidancbrady (~aidancbra@c-24-125-34-75.hsd1.ga.comcast.net)
L1222[14:42:06] ⇦ Quits: RainyMesa (~RainyMesa@128-223-223-204-wireless.uoregon.edu) (Quit: Quit)
L1223[14:42:42] ⇦ Quits: Ipsis418 (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 384 seconds)
L1224[14:45:01] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L1225[14:45:02] *** synth|sleep is now known as synthetica
L1226[14:48:21] ⇦ Quits: CoolSquid (~CoolSquid@ti0011a400-2417.bb.online.no) (Quit: Leaving)
L1227[14:48:45] <LexDesktop> !gm LootEntry
L1228[14:49:03] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L1229[14:50:16] ⇦ Quits: raoulvdberge (uid95673@id-95673.richmond.irccloud.com) (Quit: Connection closed for inactivity)
L1230[14:52:41] ⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Quit: Leaving.)
L1231[14:52:50] <LexDesktop> !gm LootEntryItem
L1232[14:54:14] ⇦ Quits: vox (~voxmods@pool-71-178-241-173.washdc.fios.verizon.net) (Quit: Leaving)
L1233[14:58:04] <Cypher121> !gm Vec3i.vectorLength
L1234[14:58:14] *** Keridos is now known as Keridos|away
L1235[14:58:24] <Cypher121> does this thing support wildcards?
L1236[15:02:01] <Cypher121> ah, so Vec3d has length but not Vec3i. neat
L1237[15:11:14] ⇦ Quits: thecodewarrior (~thecodewa@75-128-36-21.static.mtpk.ca.charter.com) (Remote host closed the connection)
L1238[15:16:27] ⇨ Joins: killjoy1 (~killjoy@71.65.255.183)
L1239[15:17:46] <LexDesktop> !gm LootEntryTable
L1240[15:25:09] ⇦ Quits: S3 (~S3@coreos2.lobsternetworks.com) (Quit: ZNC - http://znc.in)
L1241[15:25:27] <SatanicSanta> Hm, looks like FluidContainerRegistry is deprecated. What should we be using instead? (I am not registering containers)
L1242[15:27:18] *** willieaway is now known as williewillus
L1243[15:28:39] ⇦ Quits: sciguyryan (~sciguyrya@5.79.74.233) (Remote host closed the connection)
L1244[15:28:46] <williewillus> $ close 2832
L1245[15:28:49] <Actuarius> Issue 2832 closed.
L1246[15:29:41] <diesieben07> SatanicSanta, IFluidContainerItem
L1247[15:30:23] <SatanicSanta> Mm, not for what I'm using. I'm using primarily getFluidForFilledItem and drainFluidContainer from that registry class.
L1248[15:30:36] <SatanicSanta> and similar methods. I don't add my own container items or anything like that.
L1249[15:30:59] <diesieben07> check instanceof IFLuidContainerItem and then fall back to FluidContainerRegistry
L1250[15:31:16] <SatanicSanta> So there's no replacement then? I just hate using deprecated things.
L1251[15:31:27] <diesieben07> you have to at the moment, for vanilla buckets
L1252[15:31:50] <SatanicSanta> Well, the point of the code in question was to support non-vanilla buckets :|
L1253[15:32:05] <PaleoCrafter> http://s.mineformers.de/2016-05-06_22-31-17.mp4 :3
L1254[15:32:10] <SatanicSanta> (https://github.com/Esteemed-Innovation/Flaxbeards-Steam-Power/blob/master/src/main/java/flaxbeard/steamcraft/misc/FluidHelper.java)
L1255[15:32:13] <diesieben07> IFluidContainerItem then.
L1256[15:32:21] <PaleoCrafter> oh, lol, forgot to turn off my music
L1257[15:32:32] <SatanicSanta> PaleoCrafter: The music fits quite well
L1258[15:32:38] <PaleoCrafter> bonus points to whoever knows who's singing :P
L1259[15:33:06] ⇨ Joins: NPException (~NPExcepti@cable-86-56-91-245.cust.telecolumbus.net)
L1260[15:33:52] <SatanicSanta> diesieben07: Hm. We do use IFluidContainerItem for the things that implement it, and then fall back to the registry. I guess i'll just slap a @SuppressWarnings on there.
L1261[15:34:20] <LexDesktop> !gm LootEntryEmpty
L1262[15:34:29] <diesieben07> yep thats how to do it atm.
L1263[15:35:34] <PaleoCrafter> diesieben07, can you tell? :P
L1264[15:35:43] * SatanicSanta checks if theres an issue i can subscribe to about this
L1265[15:36:21] <diesieben07> cant listen to stuff rn paleo
L1266[15:36:30] <PaleoCrafter> ah, too bad
L1267[15:39:36] <barteks2x> I started profiler to see why I have so absurdally high tick times, over 50% of tick time (not including sleep time) is spent in CubeMap.get(), which only calls TreeMap.get()
L1268[15:39:52] ⇨ Joins: Unh0ly_Tigg (~Robert@c-76-115-95-185.hsd1.or.comcast.net)
L1269[15:42:15] <williewillus> trees are log time so i wouldn't be *too* surprised
L1270[15:42:23] <williewillus> assuming youre storing a lot of stuff
L1271[15:42:38] <PaleoCrafter> trees
L1272[15:42:39] <PaleoCrafter> log
L1273[15:42:39] <Zaggy1024> anyone know why this code http://i.imgur.com/u0UJ3x3.png would return an IBlockState[] for me and an Object[] for others in the same IDE?
L1274[15:42:41] <PaleoCrafter> hehe
L1275[15:43:06] <sham1> Hah
L1276[15:43:18] <diesieben07> Zaggy1024, you know that last thing can be IBlockState[]::new
L1277[15:43:30] <Zaggy1024> mmh
L1278[15:43:32] <sham1> The exponential growth of my natural log (if you know what I mean)
L1279[15:43:33] <Zaggy1024> didn't
L1280[15:43:42] <Zaggy1024> but that won't solve it will it?
L1281[15:43:47] <diesieben07> and that 2nd one can be GenesisBlocks.debris::getBlockState
L1282[15:43:48] <Zaggy1024> it's still the same lambda
L1283[15:43:52] <PaleoCrafter> cheeky, sham1
L1284[15:43:56] <williewillus> sham1: but can it rotate
L1285[15:44:05] <sham1> I would not test it
L1286[15:44:12] <diesieben07> and that should never be an object array
L1287[15:44:13] <sham1> It would probably hurt me
L1288[15:44:20] <barteks2x> williewillus, it's just 10-30 entries in each treemap
L1289[15:44:53] <barteks2x> but they are called hundreds of thousands if not millions of times
L1290[15:45:18] <sham1> But yeah, after posting this gem to the wrong channel (god damn it why does my irc client default to #ForgeGradel")
L1291[15:45:26] <Zaggy1024> huh..
L1292[15:45:27] <PaleoCrafter> sham1, williewillus, rotation can become quite... complex
L1293[15:45:44] <Zaggy1024> why doesn't (i) -> new IBlockState[i] not work though?
L1294[15:46:01] <Zaggy1024> doesn't it detect the most specific class the lambda can return when compiling?
L1295[15:46:17] <sham1> This is not how my double entendre would have been interpited by other people but whatever
L1296[15:47:14] <PaleoCrafter> what? you didn't actually mean maths? :P
L1297[15:47:15] <sham1> Anyway, I can apparently floor a number in JavaScript by using a binary OR
L1298[15:47:17] <sham1> Well, truncate
L1299[15:47:19] *** big_Xplo|AFK is now known as big_Xplosion
L1300[15:47:19] <Zaggy1024> well, IBlockState[]::new works
L1301[15:47:44] <Zaggy1024> still, I'm very confused as to why (i) -> new IBlockState[i] is any different 0.o
L1302[15:47:53] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Read error: Connection reset by peer)
L1303[15:48:08] <PaleoCrafter> look at the compiled code :P
L1304[15:48:17] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L1305[15:48:30] <Zaggy1024> on my version of the compiled code the lambda method returns [LIBlockState;
L1306[15:49:01] <Zaggy1024> it's kind of difficult to check on someone else's machine what it's compiling too :P
L1307[15:49:16] <Zaggy1024> what's weird is we have the same IDE, same compile target and same JDK
L1308[15:49:25] <Zaggy1024> compiles on my end, not on theirs 0.o
L1309[15:50:15] <williewillus> eclipse foolery?
L1310[15:50:26] <Zaggy1024> probably
L1311[15:50:37] <Zaggy1024> I just realized they have Eclipse, but probably a bit of an older version
L1312[15:50:43] <Zaggy1024> maybe Java 8 support was crap in their version
L1313[15:51:01] <PaleoCrafter> what would eclipse have to do with the actual compiled bytecode?
L1314[15:51:19] <diesieben07> they have their own compiler
L1315[15:51:23] <williewillus> ^
L1316[15:51:30] <barteks2x> and now I need to figure out how to optimize CubeMap.get() without breaking it and still allow to use subMap
L1317[15:51:32] <williewillus> and it didn't work with java 8 for a while iirc
L1318[15:51:44] <williewillus> barteks2x: post it maybe and we can pick at it? :P
L1319[15:51:55] <Zaggy1024> is there any info on why they needed to use their own compiler?
L1320[15:52:02] <PaleoCrafter> presentation
L1321[15:52:03] <Zaggy1024> and how does its performance compare to javac?
L1322[15:52:11] <diesieben07> because they use it to make their IDE work
L1323[15:52:17] <diesieben07> autocomplete? ask the compiler.
L1324[15:52:23] <Zaggy1024> ah indeed
L1325[15:52:40] <barteks2x> http://pastebin.com/FK8v8VQS here is the CubeMap code. I specifically made this class to allow to eventually optimize it because I knew it may cause performance issues
L1326[15:52:49] <PaleoCrafter> I'd have thought they used the actual compiler for everything relevant, meh
L1327[15:53:05] <diesieben07> javac does not have enough of an API for tht
L1328[15:53:19] <PaleoCrafter> well, I mean, for everything that isn't IDE-related :P
L1329[15:53:24] <PaleoCrafter> i.e. the actual building
L1330[15:53:25] <williewillus> barteks2x: wait first, what does the class aim to do?
L1331[15:53:51] <PaleoCrafter> they can use their presentation compiler for whatever they want, but I'd prefer my classes to be done properly xD
L1332[15:53:55] <diesieben07> well that means you cannot for example run with non-compiling code.
L1333[15:54:08] <williewillus> it just looks like a treemap wrapper rn
L1334[15:54:08] <barteks2x> williewillus, previously I used TreeMap direectly in Column class. It stores mapping y-->cube in column (Chunk) class.
L1335[15:54:21] ⇨ Joins: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net)
L1336[15:54:26] <barteks2x> Currenntly it is treemap wrapper, but I can easly change it to use arrays or whatever
L1337[15:54:34] <diesieben07> but yes what you are describing is called IntelliJ :D
L1338[15:54:57] <PaleoCrafter> nah, IntelliJ doesn't have a presentation compiler :P
L1339[15:55:03] <PaleoCrafter> it analyses the AST :P
L1340[15:55:05] <williewillus> any reason it's a treemap in particular?
L1341[15:55:05] <diesieben07> well, yes
L1342[15:55:12] <williewillus> and maybe use the primitive maps in Trove
L1343[15:55:20] <williewillus> TIntObjHashmap or whatever
L1344[15:55:24] <barteks2x> williewillus, because it has subMap method and it's used in a few places...
L1345[15:55:25] <williewillus> not sure if tjeres a tree version
L1346[15:55:36] <williewillus> oh
L1347[15:55:53] <barteks2x> And I don't feel like touching the code that uses submap
L1348[15:56:38] ⇦ Quits: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net) (Ping timeout: 198 seconds)
L1349[15:56:40] ⇦ Quits: synthetica (~synthetic@cpe-98-27-161-235.neo.res.rr.com) (Quit: Leaving)
L1350[15:56:40] <williewillus> wait so vanilla code uses a treemap?
L1351[15:56:44] ⇦ Quits: NPException (~NPExcepti@cable-86-56-91-245.cust.telecolumbus.net) (Quit: Leaving)
L1352[15:56:49] <barteks2x> no, vanilla uses array orf length 16
L1353[15:56:59] <williewillus> yeah thats definitely some overhead ;p
L1354[15:57:05] <williewillus> boxing + tree lookup
L1355[15:57:54] <barteks2x> but since I need to have keys like 2435473 and -7284234 I need to use something more than an array
L1356[15:58:15] <diesieben07> yes, a hashtable, i.e. HashMap
L1357[15:58:22] <diesieben07> questino is why you need ordering (=TreeMap)
L1358[15:58:32] <PaleoCrafter> barteks2x, best advice ever: just put your mod on hiatus until Valhalla is here :P
L1359[15:58:38] <diesieben07> haha
L1360[15:59:07] <williewillus> he wants to use subMap
L1361[15:59:11] <sham1> Håh
L1362[15:59:23] <PaleoCrafter> or Ragnarök, alternatively :P
L1363[15:59:23] <barteks2x> I tried to add some caching of frequently used values but apparently I can't really code and it broke everything
L1364[16:00:01] <williewillus> what are you using submap for? 0.o
L1365[16:00:18] <williewillus> i'd say switching to hashing maps and then using the trove primitive ones would give a nice boost
L1366[16:00:58] <barteks2x> for skylight somewhere (iirc) and to get cube range for getEntitiesWithinAABB and methods like these
L1367[16:01:34] <williewillus> i mean what benefit does that provide beyond just querying the whole map?
L1368[16:01:57] <williewillus> oh nvm i forgot what submap did
L1369[16:02:11] <diesieben07> submap = subtree :D
L1370[16:02:27] <barteks2x> sometimes in skylight code I can have height range like -5000 to +5000 or even -infinity to +100, and then iterating over that range one by one isn't a good idea
L1371[16:02:43] <williewillus> ?shrug
L1372[16:02:50] <williewillus> see if theres a trove primitive treemap :P
L1373[16:02:59] <PaleoCrafter> there doesn't appear to be
L1374[16:03:40] <barteks2x> wait, apparently I already got rid of using submap in lighting code, and instead I iterate over the whole contents of CubeMap and only select cubes I'm interested in
L1375[16:03:48] <williewillus> :P
L1376[16:03:55] <barteks2x> wait, no
L1377[16:04:00] <barteks2x> I was looking in wrong place
L1378[16:04:14] <barteks2x> I still use it, but I probably could do that
L1379[16:04:43] <barteks2x> technically it would make FirstLightProcessor O(n^2) instead of O(nlogn) but that may not be a big issue
L1380[16:05:43] <barteks2x> still, I benchmarked HashMap vs TreeMap get and there isn't that big performance difference
L1381[16:05:59] <williewillus> is your mod open source somewhere?
L1382[16:06:02] <barteks2x> yes
L1383[16:06:13] <williewillus> try a primitive map instead of hashmap and see
L1384[16:06:17] <williewillus> link?
L1385[16:06:25] <barteks2x> https://github.com/Barteks2x/CubicChunks
L1386[16:07:19] <barteks2x> I compared HashMap vs TreeMap vs TIntObjectMap vs LongHashMap, TreeMap was the slowest, but other 3 are comparable.
L1387[16:09:40] <williewillus> yeah i feel like forcing all your columns to store their cubes in order is huge overhead
L1388[16:09:47] <williewillus> but idk what the exact cause of it is
L1389[16:10:21] *** V is now known as Vigaro
L1390[16:11:25] <barteks2x> I still need to access it quickly, I will do the benchmark again because I don't remember the numbers
L1391[16:11:39] *** Mine|dreamland is now known as minecreatr
L1392[16:12:11] <williewillus> I mean, do you absolutely need to do in-order iteration?
L1393[16:14:26] <barteks2x> right now - I think it may not be absolutely necessary, but it will require making a few other parts of code potentially slower.
L1394[16:14:51] <barteks2x> since I need to be able to get cubes within specified Y range somehow
L1395[16:15:09] <barteks2x> even if not necessarily sorted
L1396[16:15:30] ⇨ Joins: raoulvdberge (uid95673@id-95673.richmond.irccloud.com)
L1397[16:17:20] ⇦ Quits: theFlaxbeard (~theFlaxbe@184.97.134.35) (Ping timeout: 384 seconds)
L1398[16:18:02] ⇦ Quits: alex_6611 (~alex_6611@p5DE7A0C9.dip0.t-ipconnect.de) (Ping timeout: 190 seconds)
L1399[16:18:29] ⇨ Joins: theFlaxbeard (~theFlaxbe@184.97.134.35)
L1400[16:18:53] <LexDesktop> !gf LootTable.pools
L1401[16:19:00] <williewillus> iterate through the range and query a hashmap?
L1402[16:19:14] <PaleoCrafter> I wonder what Lex is working on xD
L1403[16:19:18] <williewillus> still not the fastest but shouldn't be terrible
L1404[16:19:22] <williewillus> loot hooks probably :p
L1405[16:19:35] <barteks2x> ok, I did the test again. Different results. 20000 get() calls: TreeMap=7.38ms, HashMap=0.57ms, LongHashMap=6.81ms, TIntObjectHashMap=2.48ms
L1406[16:19:37] <williewillus> that i dropped bc time poofed
L1407[16:19:39] <PaleoCrafter> should have put \s :P
L1408[16:20:19] *** Darkhax is now known as Darkhax_AFK
L1409[16:20:35] <barteks2x> So java HashMap is faster than TIntObjectHashMap
L1410[16:20:49] <williewillus> thats probably not true
L1411[16:20:52] <barteks2x> at least in this case
L1412[16:20:56] <williewillus> java benchmarking is hard to do right
L1413[16:20:57] <williewillus> :P
L1414[16:21:10] <barteks2x> I probably did it wrong, I will post the code
L1415[16:21:30] <williewillus> i mean even I don't know all the things you have to do
L1416[16:21:31] <PaleoCrafter> you need to heat the JVM up before doing anything relevant :P
L1417[16:21:41] <williewillus> but you have to warm up the JIT, make sure the classes are pre-loaded, etc. etc.
L1418[16:21:52] ⇦ Quits: killjoy1 (~killjoy@71.65.255.183) (Ping timeout: 384 seconds)
L1419[16:22:18] <williewillus> make sure to minimize impact of gc, etc. :P
L1420[16:22:46] <PaleoCrafter> there basically is no way to get it right :P
L1421[16:22:51] <barteks2x> http://pastebin.com/uNRnDbaa
L1422[16:23:00] *** Darkhax_AFK is now known as Darkhax
L1423[16:23:29] <barteks2x> this is how I tested it, probably not right, but should be close enough to the actual use case
L1424[16:23:32] <williewillus> yeah you're supposed to test them separately
L1425[16:23:53] <williewillus> well not supposed to, but better strategy i guess
L1426[16:23:57] <diesieben07> also
L1427[16:24:02] <barteks2x> ok, so I will repeat the test with all of them but one commented out
L1428[16:24:04] <diesieben07> it will most likely optimize away that get
L1429[16:24:09] <diesieben07> that why your HashMap is so fast
L1430[16:24:22] <diesieben07> since get is probably inlined and then it discovers "oh he just throws it away again"
L1431[16:24:26] <PaleoCrafter> darn JVM, y u so smart
L1432[16:24:26] <diesieben07> so it just doesnt do anything.
L1433[16:24:39] <barteks2x> so I will sum all hashCode values
L1434[16:24:39] ⇦ Quits: Stiforr (~Stiforr@ip72-216-8-185.pn.at.cox.net) (Ping timeout: 201 seconds)
L1435[16:24:43] <diesieben07> use JMH
L1436[16:24:47] <williewillus> ^
L1437[16:24:51] <diesieben07> or don't microbenchmark.
L1438[16:24:51] <barteks2x> JMH?
L1439[16:24:55] <diesieben07> JMH
L1440[16:24:56] <williewillus> java microbenchmark harness
L1441[16:25:02] <williewillus> what the java team uses to benchmark :P
L1442[16:25:30] <barteks2x> I will just replace it with HashMap in the real code and see what happens (I will have both hashmap and treemap there)
L1443[16:25:40] <barteks2x> TreeMap for subMap and hashMap for get()
L1444[16:26:13] <williewillus> and double your mem usage :D
L1445[16:26:32] <barteks2x> most of the memory is in other places anyway
L1446[16:26:34] <williewillus> try just using hashmap and iterate over a range
L1447[16:26:37] *** amadornes is now known as amadornes[OFF]
L1448[16:26:43] <barteks2x> for testing I will use both
L1449[16:26:53] <barteks2x> to see how it improves performance
L1450[16:27:26] <diesieben07> depending on what those ranges are you might be able to optimize that even futher
L1451[16:29:46] <barteks2x> they are usually 10-60 consecutive integers
L1452[16:30:07] ⇨ Joins: OscarXcorePhone (uid157529@2604:8300:100:200b:6667:4:2:6759)
L1453[16:30:07] <barteks2x> wait, which ranges?
L1454[16:30:10] <barteks2x> I got confused
L1455[16:30:18] <williewillus> the ones you use in submap
L1456[16:31:04] <diesieben07> question is...
L1457[16:31:09] <diesieben07> subMap just returns a *subset*
L1458[16:31:10] <barteks2x> for getEntitiesInAABBthey are probably not bigger than 3 cubes, so simple iteration would be ok. But for skylight they may be potentially Integer.MIN_VALUE to someValueLike100
L1459[16:31:12] <diesieben07> why is that subset requirement there?!
L1460[16:31:19] <diesieben07> you can just use the main map
L1461[16:31:23] <diesieben07> and all get() will still work the same
L1462[16:31:27] <williewillus> yeah
L1463[16:31:45] ⇨ Joins: stiforr_ (~stiforr@63.173.125.145)
L1464[16:31:51] <diesieben07> and if it's to iterate just that subset... just iterate your keys.
L1465[16:31:55] <barteks2x> So i can end up calling subMap(Integer.MIN_VALUE, true, 20, true)
L1466[16:32:28] <diesieben07> what do you do with that result?
L1467[16:32:35] <barteks2x> but it's extreme case, usually it's subMap(x, true, x, true)
L1468[16:32:49] <williewillus> wat
L1469[16:32:51] <barteks2x> It's for skylight calculation, I will send link when I find it
L1470[16:33:01] <williewillus> yah just iterate
L1471[16:33:04] <diesieben07> No, don't send a link.
L1472[16:33:05] <diesieben07> Explain. :D
L1473[16:34:05] <barteks2x> uh... I have ForctLightProcessor class that updates skylight for a newly generated Cube
L1474[16:34:10] <barteks2x> *FirstLightProcessor
L1475[16:36:21] <barteks2x> and to do that I first the new height value, if it's the the current cube (the most interesting case) I find the height value below that cube, and iterate over all cubes in that range and set skylight to unlit there, then I do the most interesting part which is actually using world.checkLightFor
L1476[16:36:58] <barteks2x> currently It's a dumb implementation that doesn't take transparency into account,so order doesn't matter
L1477[16:36:58] <diesieben07> and... why do you need a submap? :D
L1478[16:38:20] <barteks2x> so submap may not be fully needed there, but very frequently the I'm iterating over range (Y to Y) or (Y-1 to Y), so iterating over all cubes 256 times seems waste of time
L1479[16:38:40] <diesieben07> uhh
L1480[16:38:40] <barteks2x> and it's 256 times for each generated cube
L1481[16:38:45] <diesieben07> just iterate over y to y then!?
L1482[16:38:47] <diesieben07> i dont see the submap
L1483[16:39:05] <barteks2x> but then there is extreme case where I can get range like Integer.MIN_VALUE to 10
L1484[16:39:27] <barteks2x> technically, I get null to 10
L1485[16:39:53] <diesieben07> so? for (int i = Integer.MIN_VALUE; i < 10; i++) { }
L1486[16:39:55] <diesieben07> where is the submap?
L1487[16:40:02] <LexDesktop> !gf LootPool.rolls
L1488[16:40:18] <barteks2x> and good luck with THAT 256 times per cube
L1489[16:40:25] <williewillus> diesieben07: the tree already enforced the ordering so he's thinking he won't spend ages in there missing in a hashmap
L1490[16:40:36] <LexDesktop> !gf LootPool.bonusRolls
L1491[16:40:41] <diesieben07> barteks2x, less than a subMap call :p
L1492[16:40:42] <williewillus> but this really isn't that much better
L1493[16:40:55] <diesieben07> no idea what you are talking about willie :D
L1494[16:41:18] <PaleoCrafter> also, barteks2x, just *how* likely is it that you need that big of a range? :P
L1495[16:41:36] <diesieben07> also wait what...? 256x per cube? what?
L1496[16:41:43] <barteks2x> 100% that it will be et least once for each generated Column
L1497[16:41:54] <barteks2x> 256 because it's for each x/z coordinate in a cube
L1498[16:42:16] <PaleoCrafter> wouldn't that be 16³ per cube? :P
L1499[16:42:21] <williewillus> x/z
L1500[16:42:23] <williewillus> not xyz
L1501[16:42:27] <barteks2x> well, actually 0 it may be close to 0% with vanilla worldgen
L1502[16:42:29] <diesieben07> ok listen man, i dont think this is an issue of treeMap vs hashmap
L1503[16:42:31] <PaleoCrafter> oh, nvm
L1504[16:42:32] <diesieben07> your shit is just slow
L1505[16:42:33] <diesieben07> :D
L1506[16:42:52] <williewillus> what does vanilla do for this? 0.o
L1507[16:43:07] <barteks2x> vanilla doesn't need to do a few of the things that I need to do
L1508[16:43:18] <barteks2x> and Cuchaz decided to do a few things "differently"
L1509[16:43:27] <barteks2x> And I still have that code
L1510[16:43:33] <barteks2x> because it's too much effort to change it
L1511[16:44:04] <barteks2x> Example: GenerationPipeline (which is what takes most of the tick time even when idle)
L1512[16:44:23] <barteks2x> And I see no reasonable way to replace this
L1513[16:44:46] ⇦ Quits: Fye (~Fye@dynamic-adsl-84-220-169-44.clienti.tiscali.it) (Quit: KVIrc 4.9.1 Aria http://www.kvirc.net/)
L1514[16:44:46] <barteks2x> +vanilla uses just plain array for storing cubes
L1515[16:44:49] <PaleoCrafter> so instead of tackling the stuff that's really important, you get to (possibly prematurely) optimise some map lookups? :P
L1516[16:45:12] <barteks2x> Because it also hurts worldgen performance
L1517[16:45:37] <williewillus> a pipeline for worldgen?
L1518[16:45:38] <williewillus> interesting
L1519[16:45:42] <williewillus> :P
L1520[16:45:48] <barteks2x> 5 worldgen stages...
L1521[16:46:13] <barteks2x> terrain, surface, features, lighting, population
L1522[16:47:03] <barteks2x> I have some idea about merging the first 3 stages into one but completely reimplementing the way dirt/grass placement works
L1523[16:48:02] <barteks2x> uh... I can't type again
L1524[16:48:12] <barteks2x> I'm making so weird mistakes
L1525[16:50:02] ⇦ Quits: stiforr_ (~stiforr@63.173.125.145) (Ping timeout: 198 seconds)
L1526[16:50:09] <barteks2x> back to why I need to optimize this lookup for worlgen: because for each getBlockState/setBlockState there is one cube lookup
L1527[16:50:34] <barteks2x> or more
L1528[16:50:34] ⇨ Joins: ghz|lappy (~gigaherz@190.red-79-144-13.dynamicip.rima-tde.net)
L1529[16:54:11] <barteks2x> hm.... why did I need my Queue to be a Set?
L1530[16:54:34] ⇨ Joins: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net)
L1531[16:54:35] <ghz|lappy> lol "Ben Affleck now an executive producer on Justice League"
L1532[16:55:26] <ghz|lappy> he must have gone to the WB people and said "Because I'm BATMAN!"
L1533[16:55:31] ⇦ Quits: founderio (~Thunderbi@p200300C4E3C5BE005C244EDCBD25394B.dip0.t-ipconnect.de) (Quit: founderio)
L1534[16:56:06] ⇦ Quits: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net) (Ping timeout: 201 seconds)
L1535[16:56:18] ⇨ Joins: KnightMiner (~KnightMin@68.255.6.227)
L1536[16:57:04] ⇨ Joins: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net)
L1537[16:57:20] <williewillus> hmm something Ive thought about before
L1538[16:57:41] <williewillus> is it possible to have some sort of testing framework for MC (server-side at least)
L1539[16:57:57] <williewillus> that creates some sort of controlled environment you specify and runs tests
L1540[16:58:01] <williewillus> in-world
L1541[16:58:08] <PaleoCrafter> you can mock stuff etc. I guess
L1542[16:58:15] <PaleoCrafter> but it'd be a lot of work :P
L1543[16:58:27] <barteks2x> I think Cuchaz worked on something like that for M3L
L1544[16:59:04] <barteks2x> but I don't think there was anything he didn't reinvent
L1545[16:59:04] <williewillus> M3L?
L1546[16:59:35] <williewillus> i mean, mocking might be overkill, but something that just sets up a predefined environment
L1547[16:59:37] <barteks2x> his totally custom modding environment that he stopped working on because he didnt get any money for it
L1548[16:59:43] <williewillus> lol
L1549[16:59:53] <williewillus> or it never took off
L1550[17:00:08] <williewillus> is there a link still or is website dead :P
L1551[17:00:21] <PaleoCrafter> https://www.cuchazinteractive.com/m3l/
L1552[17:00:40] <barteks2x> he made completely new deobf mappings, new tool for making these mappings that was aaalso used for runtime deobfiscation, new mod loader, new "API", new automated built tool
L1553[17:01:37] <williewillus> wat
L1554[17:01:51] <williewillus> the "WHY ANOTHER MOD LOADER? WHY NOT JUST USE FORGE?" paragraph
L1555[17:01:58] <williewillus> is literally that one xkcd about standards
L1556[17:02:05] <williewillus> 997?
L1557[17:02:11] <williewillus> crap
L1558[17:02:12] <williewillus> 927
L1559[17:02:18] <barteks2x> ^exactly
L1560[17:02:58] ⇨ Joins: Stiforr (~Stiforr@ip72-216-8-185.pn.at.cox.net)
L1561[17:02:58] <barteks2x> you don't want to know how absurdally hard it was to set up dev workspace fot it
L1562[17:03:09] <williewillus> also his name sounds so familiar
L1563[17:03:12] <williewillus> but idk where I've heard it from
L1564[17:03:18] <williewillus> besides this
L1565[17:04:51] <barteks2x> after using HashMap instead of TreeMap idle tick time dropped from 40-60ms to 14-18ms
L1566[17:05:12] <williewillus> :P
L1567[17:05:22] <williewillus> now use a primitive hashmap
L1568[17:06:22] ⇦ Quits: theFlaxbeard (~theFlaxbe@184.97.134.35) (Ping timeout: 190 seconds)
L1569[17:06:58] <barteks2x> profiler doesn't even see the CubeMap.get() now
L1570[17:07:01] <ghz|lappy> barteks2x: why did you use a treemap?
L1571[17:07:10] <williewillus> premature opt ;)
L1572[17:07:18] <williewillus> jk, he wanted submap behaviour
L1573[17:07:22] <ghz|lappy> well
L1574[17:07:37] <ghz|lappy> when you think of 3d space, you'd think of a kd tree
L1575[17:07:39] ⇨ Joins: theFlaxbeard (~theFlaxbe@184.97.134.35)
L1576[17:07:40] <ghz|lappy> or an octree
L1577[17:07:41] <barteks2x> well, that was Cuchaz's idea and until now I didnn't change it
L1578[17:07:44] <ghz|lappy> not really a treemap
L1579[17:08:05] <ghz|lappy> a treemap is quite suboptimal in terms of locality
L1580[17:08:19] <barteks2x> what do you mean?
L1581[17:08:35] <williewillus> aka submap is slow
L1582[17:08:38] <ghz|lappy> when dealing with spatial navigation
L1583[17:08:40] <barteks2x> There isn't just one treemap, there is one for each Chunk/Column
L1584[17:08:55] <ghz|lappy> there's a very high chance you'll move within a close group of elements
L1585[17:09:06] <PaleoCrafter> ghz, seen this? http://s.mineformers.de/2016-05-06_22-31-17.mp4 :P (ignore the music)
L1586[17:09:20] <ghz|lappy> so a data structure for spatial data is best if it keeps the nearby data closer together
L1587[17:09:32] <ghz|lappy> hence octrees and k-d trees
L1588[17:09:50] <ghz|lappy> k-d trees are trees where each level works on a different dimension
L1589[17:09:52] <ghz|lappy> like
L1590[17:09:57] <ghz|lappy> top level splits left/right
L1591[17:10:01] <ghz|lappy> second up/down
L1592[17:10:04] <ghz|lappy> third north/south
L1593[17:10:15] <ghz|lappy> left/right->west/east*^
L1594[17:10:26] ⇦ Quits: Hgreb (~Hgrebnedn@d8D872D48.access.telenet.be) (Ping timeout: 198 seconds)
L1595[17:10:26] <ghz|lappy> thne back to left/right for the next subdivision
L1596[17:10:35] <barteks2x> except that I can't really use that because of compatiblity with... everything
L1597[17:10:43] <ghz|lappy> yeah
L1598[17:10:54] <williewillus> so just use TIntObjHashmap :P
L1599[17:11:15] <ghz|lappy> PaleoCrafter: fancy ;P
L1600[17:11:39] <barteks2x> For now the bottleneck turns out to be somewhere else. blocksExists method that checks if given block range exists
L1601[17:11:45] <ghz|lappy> barteks2x: "one map per column" sounds horribly inefficient
L1602[17:11:57] <ghz|lappy> but yeah
L1603[17:12:01] <ghz|lappy> much better a hashmap
L1604[17:12:11] <barteks2x> except that to do it differently I would need to @Overwrite almost every single method in World class
L1605[17:12:40] <Ordinastie_> tbh, you should just have a extension of chunk with a height offset
L1606[17:12:52] <Ordinastie_> and only temper with the chunk loading/unloading
L1607[17:13:20] <kashike> latest snapshots don't use LongHashMap/etc anymore
L1608[17:13:30] <barteks2x> that's what Robinton did in his original CubicChunks mod. Now I have max height/depth 8 million blocks
L1609[17:13:54] <barteks2x> which means that using an array will limit the height. Which may be actually ok.
L1610[17:13:57] *** Darkhax is now known as Darkhax_AFK
L1611[17:13:58] <Ordinastie_> with separate chunks, you wouldn't have a limit
L1612[17:14:37] <barteks2x> but I would need to replace almost every method in World class
L1613[17:14:48] <williewillus> kashike: oh?
L1614[17:14:51] <Ordinastie_> I don't think so
L1615[17:15:06] <kashike> williewillus: replaced with a minimised version of fastutil
L1616[17:15:08] <kashike> http://fastutil.di.unimi.it/
L1617[17:15:17] <Ordinastie_> world don't do much by itself, it delegates to the chunk
L1618[17:15:23] <kashike> it.unimi.dsi:fastutil:7.0.12_mojang
L1619[17:15:28] <barteks2x> Ordinastie_, how I wouldn't need to? getBlockState, setBlockState are just 2 examples of what I would need to replace
L1620[17:15:55] <Ordinastie_> why would you need to replace that ?
L1621[17:16:00] <williewillus> damn
L1622[17:16:02] <ghz|lappy> desn't getBlockState have a getChunkFromX?
L1623[17:16:05] <williewillus> all the specializations
L1624[17:16:11] <masa> haha watching etho's world tour episode... so apparently there is even more stuff that is badly broken in 1.8 than I previously realized :D
L1625[17:16:13] <ghz|lappy> I don't have the code in front of me right now
L1626[17:16:19] <masa> *1.9
L1627[17:16:29] <williewillus> like what?
L1628[17:16:38] <barteks2x> Ordinastie_, because instead of getting Chunk I would need to get Cube
L1629[17:16:43] <Ordinastie_> no
L1630[17:16:45] <williewillus> I know of the portal teleport glitch, ice boats, eltra transparency
L1631[17:16:48] <williewillus> memory leaks
L1632[17:16:52] <Ordinastie_> you would get a chunk
L1633[17:16:52] <masa> hopper minecarts don't pick up anything, isnane lag with nether portals at least when teleporting mobs
L1634[17:16:52] <williewillus> pathfinding lag
L1635[17:17:03] <ghz|lappy> woah, Enderthing is picking up speed
L1636[17:17:13] <williewillus> what version is he playing in?
L1637[17:17:16] <masa> 1.9.2
L1638[17:17:17] <ghz|lappy> one specific version has has 450 downloads in 1 day
L1639[17:17:19] <barteks2x> Ordinastie_, so how would it work? I don't understand your idea
L1640[17:17:24] <Ordinastie_> just it would be yours, a nearly identical to the vanilla one, except for it holds a height offset that shouldn't affect anything in the chunk itself
L1641[17:17:27] <williewillus> oh the 1.9.3 pres fixed performance quite a bit
L1642[17:17:29] <williewillus> at least for me
L1643[17:17:40] <williewillus> it's about back to 1.8 levels
L1644[17:17:45] <williewillus> *1.8.9
L1645[17:17:48] <masa> oh nice
L1646[17:18:09] *** big_Xplosion is now known as big_Xplo|AFK
L1647[17:18:20] * ghz|lappy hopes they release 1.9.3 soon
L1648[17:18:23] <masa> but even so, my vanilla world won't ever be updated to 1.9, maybe 1.10 if they fix stuff by then...
L1649[17:18:25] <Ordinastie_> ideally, the only thing you would need to change is getChunkFromBlockCoords() to return yours if y > 255 or < 0
L1650[17:18:33] <ghz|lappy> but at the same time I don't want them to rush it, and have to make a 1.9.4 the next day
L1651[17:18:46] <ghz|lappy> although it's going to happen either way
L1652[17:18:49] <Ordinastie_> and the hardcoded heigh limitations everywhere obviously
L1653[17:18:50] <masa> yep :p
L1654[17:18:51] <barteks2x> Ordinastie_, I still need to reimplement half of Chunk class because of skylight etc. And 0-256 it hardcoded in many other places
L1655[17:18:51] <ghz|lappy> there WILL be one bug or another...
L1656[17:18:53] <williewillus> my "vanilla world" went modded a couple weeks ago
L1657[17:18:54] <williewillus> lol
L1658[17:19:02] <masa> ? :o
L1659[17:19:12] <williewillus> I hate early game mc, and haven't been able to maintian a modded world long since 1.4 because of that
L1660[17:19:27] <williewillus> so I just added Botania, Psi, Quark, TiCo, JEI, and BM into my main world :P
L1661[17:19:31] <barteks2x> So you are essentiially suggesting to use array with height offset right?
L1662[17:19:39] <ghz|lappy> earlygame prevents you from having a long-lasting modded world?
L1663[17:19:51] <williewillus> i never get beyond the starting stages of mods
L1664[17:19:54] <Ordinastie_> I don't really know how skylight should be handled, but I'm confident that would require way less changes than what you're doing
L1665[17:19:54] <williewillus> because I hate resource gathering
L1666[17:20:00] <williewillus> / don't have time
L1667[17:20:04] <ghz|lappy> oh
L1668[17:20:07] <Ordinastie_> and wouldn't really impact performances
L1669[17:20:08] <williewillus> I already have stuff built up in my main world
L1670[17:20:42] <Ordinastie_> what I suggest is that the way chunks are handled in vanilla horizontally, you use the same system vertically too
L1671[17:20:43] <ghz|lappy> skylight means keeping track of a per-column heightmap on the server
L1672[17:20:47] <ghz|lappy> does it not?
L1673[17:20:59] <Ordinastie_> ghz|lappy, except you can't really do that
L1674[17:21:06] <ghz|lappy> which is the whole issue
L1675[17:21:16] <barteks2x> serverside lighting is mostly solved now
L1676[17:21:24] <masa> I'm waiting for 1.9 forestry, then I'll start a 1.9 modded server with more or less forestry, c & b, BoP, tico, probably enderthing and ender utilities
L1677[17:21:24] ⇦ Quits: Seppon (~Noppes@82-168-99-26.ip.telfort.nl) (Read error: Connection reset by peer)
L1678[17:21:25] <barteks2x> client-server synchronization is a major issue
L1679[17:21:37] <Ordinastie_> whatever approach you do, you can't know if there is a block over unless it's generated
L1680[17:21:40] <ghz|lappy> so you need one heightmap per vertical chunk
L1681[17:21:58] <ghz|lappy> and and on updates, scan down
L1682[17:22:05] <ghz|lappy> which woudl be rather slow :/
L1683[17:22:17] <barteks2x> Ordinastie_, I don't care about blocks that are not generated. It's up to world generator to force generating these chunks with suprises in them
L1684[17:22:19] <Ordinastie_> my approach would be, consider the sky is clear if no block is present in the chunk above
L1685[17:22:23] <masa> oh right and quark and maybe btoania, I never got far in btoania in my 1.7.10 world because I stopped playing altogether
L1686[17:22:25] <Ordinastie_> or 2 chunks depending on performance
L1687[17:22:44] <ghz|lappy> yeah that'd be a solution
L1688[17:22:46] <barteks2x> Ordinastie_, and the you could make fully enclosed room that it lit inside
L1689[17:23:02] <Ordinastie_> yes, no way around that
L1690[17:23:04] <ghz|lappy> barteks2x: anything that's > 256 blocks above you, doesn't matter ;P
L1691[17:23:21] <ghz|lappy> in fact
L1692[17:23:24] <ghz|lappy> it would be necessary
L1693[17:23:29] <Ordinastie_> and tbh, that's a concern to adress only when you're done with the mod
L1694[17:23:34] <ghz|lappy> ifyou want to generate "the aether" at +1000
L1695[17:23:39] <ghz|lappy> yo ucan't have it produce shadows
L1696[17:24:00] <barteks2x> I can add some height above which skylight doesn't work anymore
L1697[17:24:12] <ghz|lappy> assume any block that's more than one vertical "span" away, doesn't exist
L1698[17:24:28] <ghz|lappy> where one span == a 256 block tall column
L1699[17:24:52] <ghz|lappy> for lighting purposes, that is
L1700[17:24:54] <williewillus> i haven't following have yall been suggesting we just "stack" the existing kind of vanilla chunks one on top of another?
L1701[17:24:54] <Ordinastie_> ultimately, you could store separately the 16x16 skymlight map in the world or something
L1702[17:25:00] *** LordFokas|out is now known as LordFokas
L1703[17:25:08] <barteks2x> Let me explain how current skylight code works
L1704[17:25:14] <Ordinastie_> but that would still not work for not yet generated chunks
L1705[17:25:19] <barteks2x> The one I use now
L1706[17:25:33] <Ordinastie_> no need
L1707[17:25:44] <Ordinastie_> I think your global approach is wrong
L1708[17:26:49] <barteks2x> Any other approach is also wrong because it produces results that are not even close to something reasonable
L1709[17:27:07] <Ordinastie_> what I describe is perfectly reasonable
L1710[17:27:20] <ghz|lappy> yeh
L1711[17:27:21] <ghz|lappy> IMO
L1712[17:27:29] <ghz|lappy> that should be part of the world description
L1713[17:27:30] <PaleoCrafter> I wonder, how are you going to cope with BlockPos.toLong? :P
L1714[17:27:31] <barteks2x> that you can have room that is fully enclosed with full skylight inside?
L1715[17:27:35] <ghz|lappy> ming height, max height
L1716[17:27:38] <ghz|lappy> open top, open bottom
L1717[17:27:41] <Ordinastie_> land high enough shouldn't cast shadow anyway
L1718[17:28:09] <ghz|lappy> if open top, assume anything without a block above itself in this span or the one above, is full sky
L1719[17:28:18] <ghz|lappy> if closed top
L1720[17:28:22] <ghz|lappy> assume dark
L1721[17:28:31] <ghz|lappy> nether is closed top, for example
L1722[17:28:42] <barteks2x> I would say closed bottom, open top is a reasobable idea
L1723[17:28:43] <ghz|lappy> aether is open top AND open bottom
L1724[17:28:49] <ghz|lappy> while overworld is closed bottom
L1725[17:28:54] <williewillus> PaleoCrafter: does that assume 255 :P
L1726[17:29:13] <PaleoCrafter> not really, but you only have so many bits left for the y value :P
L1727[17:29:14] <Ordinastie_> what does open/close even mean here ?
L1728[17:29:19] <Ordinastie_> it means nothing
L1729[17:29:23] <ghz|lappy> means "assume dark"
L1730[17:29:29] <ghz|lappy> means if you go under, it shows black fog
L1731[17:29:33] <ghz|lappy> etc
L1732[17:29:55] <ghz|lappy> if you were to declare a dimension that is closed top
L1733[17:29:59] <ghz|lappy> but 1000 blcoks tall
L1734[17:30:07] <ghz|lappy> you don't WANT the skylight to be max, at any point
L1735[17:30:09] <PaleoCrafter> 14 bits, to be precise, and that is not much, I'd say
L1736[17:30:15] <Ordinastie_> ah
L1737[17:30:45] <barteks2x> It's used in exactly 2 places
L1738[17:31:16] <ghz|lappy> so "open top" means "assume sky if nothing is within the span or the one above", while "closed top" means "don't search, assume no sky"
L1739[17:31:18] <barteks2x> I can write 3 ints instead in packet stuff, and for end portal - let it break
L1740[17:31:32] <ghz|lappy> that's the approach I'd use, right now
L1741[17:31:52] <ghz|lappy> (but it's late and I'm tired, so there may be even better options)
L1742[17:31:56] <Ordinastie_> ghz|lappy, yes, but that wasn't the question
L1743[17:31:59] <barteks2x> I still need something to keep track of skylight in the area between
L1744[17:32:09] <ghz|lappy> I'd have a heightmap per span
L1745[17:32:17] <Ordinastie_> the question was if you manually put a ceiling at 10000
L1746[17:32:22] <ghz|lappy> keep one for each 256 block range
L1747[17:32:24] <Ordinastie_> or an island generates here
L1748[17:32:31] <ghz|lappy> yeahthat'd be invisible
L1749[17:32:52] <ghz|lappy> as I said: if I declare a dimension that has overworld at 0, and the aether at 1000, I don't wnat the aether to cast shadows
L1750[17:33:13] <barteks2x> that can be done with slight changes to current lighting code
L1751[17:33:25] <Ordinastie_> but if you build a big box, you'd expect to be in the dark
L1752[17:33:33] <Ordinastie_> there is real solution for that
L1753[17:33:34] <barteks2x> by simply ignoring everything above certain height
L1754[17:33:43] <ghz|lappy> so I'd keep "heightmap" and "depth map" per vertical span
L1755[17:33:44] <Ordinastie_> that a bad solution
L1756[17:33:59] <ghz|lappy> allowing something 1000 blocks away to cast shadows
L1757[17:34:07] <ghz|lappy> implies that if you break one block at 10000
L1758[17:34:15] <ghz|lappy> you have to SCAN DOWN until you find another block
L1759[17:34:23] <barteks2x> you don't if you are clever
L1760[17:34:26] <ghz|lappy> without a multi-level data structure such as a sparse octree
L1761[17:34:31] <ghz|lappy> that's hellish
L1762[17:34:40] <barteks2x> That's close to what I have now
L1763[17:35:06] <barteks2x> I explained that OpacityIndex before, that's what keeps track of heightmap
L1764[17:35:31] <barteks2x> getting heightmap is essentially O(1)
L1765[17:35:48] <barteks2x> with O(logn) average case overhead when setting blocks
L1766[17:35:49] <ghz|lappy> how does the heightmap get updated when you remove a block?
L1767[17:36:06] <ghz|lappy> adding ablock is easy just set the cell to the height, the costly part is removal
L1768[17:36:12] <Ordinastie_> anyway, skylighting is an issue to handle when everything else already works imo
L1769[17:36:16] <barteks2x> let me explain how OpacityIndex works...
L1770[17:37:40] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Quit: See ya.)
L1771[17:38:01] <barteks2x> It has array of 256 arrays of ints, each array for one x/z coord in a Chunk. And each of thise arrays stores "compressed" opacity values. It basically stores Y positions at which opacity changes between opaque and transparent. And it technically can be offloaded to disk while storing only a few top entries in memory
L1772[17:38:41] <barteks2x> Updating this thing is hell, but it works
L1773[17:39:09] ⇦ Quits: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net) (Quit: Leaving)
L1774[17:41:08] <barteks2x> Maybe I'm just trying to make everything too perfect, but I just can't force myself to write something that I know from the beginning is broken
L1775[17:42:50] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L1776[17:42:53] *** MrKickkiller is now known as MrKick|Away
L1777[17:48:03] *** kroeser is now known as kroeser|away
L1778[17:48:04] *** williewillus is now known as willieaway
L1779[17:52:26] ⇦ Quits: KnightMiner (~KnightMin@68.255.6.227) (Ping timeout: 198 seconds)
L1780[17:53:20] ⇨ Joins: CoolSquid (~CoolSquid@ti0011a400-2417.bb.online.no)
L1781[17:55:02] ⇦ Quits: Poppy (~Poppy@chello085216146055.chello.sk) (Ping timeout: 190 seconds)
L1782[17:57:11] ⇨ Joins: KnightMiner (~KnightMin@adsl-68-255-6-227.dsl.emhril.sbcglobal.net)
L1783[17:58:01] ⇨ Joins: Poppy (~Poppy@chello085216146055.chello.sk)
L1784[17:59:56] <barteks2x> JVM optimizes my code in such way that it completely confuses sampler
L1785[17:59:57] *** Darkhax_AFK is now known as Darkhax
L1786[18:05:36] ⇨ Joins: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net)
L1787[18:10:28] *** PaleoCrafter is now known as PaleOff
L1788[18:10:32] ⇨ Joins: VikeStep (~VikeStep@101.184.243.180)
L1789[18:15:42] ⇦ Quits: DebugsPeople (~DebugsPeo@2a02:810d:95c0:880:61a4:4533:e6ba:fba3) (Ping timeout: 190 seconds)
L1790[18:20:28] *** LordFokas is now known as LordFokas|out
L1791[18:22:26] ⇦ Quits: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net) (Ping timeout: 201 seconds)
L1792[18:22:54] ⇨ Joins: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net)
L1793[18:26:19] ⇦ Quits: ghz|lappy (~gigaherz@190.red-79-144-13.dynamicip.rima-tde.net) (Remote host closed the connection)
L1794[18:30:04] <PitchBright> I'm watchin' a tutorial on minecraft modding… it's a tutorial for setting up (for Mac)… in the vid the guy says to download Java 7, not 8, because forge doesn't work witih Java 8… (video is dated Jan/16)...
L1795[18:30:33] <Ordinastie_> that's BS
L1796[18:30:57] <PitchBright> I'm resetting my stuff up because it's been years… and when he said that… it through me off, because the impetus for the update and resetting up was to go to Java 8
L1797[18:31:03] <PitchBright> oh okay… thanks Ordinastie_
L1798[18:31:08] <PitchBright> it sounded weird to me
L1799[18:32:02] <PitchBright> the reason I'm trying to go to Java 8 is because I'm trying to use ForgeEssentials API… and it uses Mixins which I know nothing about… and for some reason… i'm under the impressing Sponge Mixin needs Java 8…
L1800[18:32:27] <Ordinastie_> you should use Java 8 either way
L1801[18:32:27] <PitchBright> just based on googling the errors i was getting in eclipse
L1802[18:32:47] <PitchBright> okay cool… I'll see if I can get my head around all this stuff
L1803[18:32:55] <PitchBright> thanks!
L1804[18:39:29] ⇦ Quits: Stiforr (~Stiforr@ip72-216-8-185.pn.at.cox.net) (Quit: Leaving)
L1805[18:41:23] *** willieaway is now known as williewillus
L1806[18:43:42] ⇦ Quits: KnightMiner (~KnightMin@adsl-68-255-6-227.dsl.emhril.sbcglobal.net) (Ping timeout: 190 seconds)
L1807[18:52:02] ⇦ Quits: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net) (Ping timeout: 201 seconds)
L1808[18:53:43] *** cpw|out is now known as cpw
L1809[18:54:08] ⇦ Quits: Temportalist (uid37180@2604:8300:100:200b:6667:3:0:913c) (Quit: Connection closed for inactivity)
L1810[18:54:46] ⇦ Quits: Ordinastie_ (~Ordinasti@87-231-58-94.rev.numericable.fr) (Quit: Leaving)
L1811[19:00:16] ⇦ Quits: raoulvdberge (uid95673@id-95673.richmond.irccloud.com) (Quit: Connection closed for inactivity)
L1812[19:00:45] <Zaggy1024> is there a doc on the updated PlayerInteractEvent?
L1813[19:01:34] <williewillus> yes
L1814[19:01:35] <williewillus> me
L1815[19:01:35] <Zaggy1024> trying to figure out why the server is receiving a use packet for the off hand
L1816[19:01:37] <williewillus> for now :P
L1817[19:01:40] <Zaggy1024> heh
L1818[19:01:57] <williewillus> what are you trying to do / whats happening / code :P
L1819[19:02:09] ⇦ Quits: Jezza (~Jezza@92.206.5.6) (Read error: Connection reset by peer)
L1820[19:02:20] <Zaggy1024> trying to replace flower pots with my mod's version of a flower pot
L1821[19:02:27] <Zaggy1024> when they're empty
L1822[19:02:33] <HassanS6000> When using NBT in 1.9 for Items, what method should I use to set the default values for all of my nbt tags?
L1823[19:02:39] <HassanS6000> onCreated isn't called
L1824[19:03:02] <Zaggy1024> when I right click with a flower it does the event properly on the client, places my flower pot with the flower in it
L1825[19:03:35] <Zaggy1024> but then the server sends a block update to tell the client that the flower isn't actually in it
L1826[19:03:42] <Zaggy1024> (sorry, was a bit distracted :P)
L1827[19:03:47] *** DRedhorse is now known as DonAway
L1828[19:04:06] <Zaggy1024> the server side is sending RightClickBlock with the off hand so the flower is null
L1829[19:04:11] <Zaggy1024> not sure why
L1830[19:05:06] <williewillus> can you send me code
L1831[19:05:15] <Zaggy1024> sure
L1832[19:05:17] <williewillus> just so I can try to repro
L1833[19:05:51] <Zaggy1024> http://pastebin.com/2XUwtvJG
L1834[19:05:55] ⇨ Joins: Amaxter (~Mutter@c-73-180-131-17.hsd1.dc.comcast.net)
L1835[19:06:06] <Zaggy1024> server side fails at if (stack == null)
L1836[19:06:08] ⇨ Joins: KnightMiner (~KnightMin@adsl-68-255-6-227.dsl.emhril.sbcglobal.net)
L1837[19:06:22] <Zaggy1024> ignore the comments, they're from when PIE was crap :P
L1838[19:06:44] <williewillus> you should probably cancel the event ;P
L1839[19:06:51] <williewillus> (its commented out rn)
L1840[19:07:03] <Zaggy1024> I tried it with those uncommented and it did the same thing
L1841[19:07:19] <Zaggy1024> at least I think it did the same thing, don't think I debugged it with that enabled
L1842[19:07:56] <Zaggy1024> yeah, it's using OFF_HAND that way too
L1843[19:08:08] <Zaggy1024> wait, do you mean setUseBlock and setUseItem?
L1844[19:08:26] <Zaggy1024> ah crap
L1845[19:08:29] <williewillus> canceling sets those two to deny automatically so thats not it
L1846[19:08:36] <Zaggy1024> setCanceled works
L1847[19:08:50] <Zaggy1024> I had assumed setCanceled would cancel sending the use packet
L1848[19:09:08] <williewillus> that was a complaint with the old pie, so I changed it in making the new one
L1849[19:09:28] <williewillus> client and server don't interfere with each other anymore, which is a tradeoff
L1850[19:09:39] <williewillus> but given how confused multiple people have gotten over that
L1851[19:09:48] <williewillus> i decided it was a better choice to have them act independently
L1852[19:10:10] <Zaggy1024> wait but if it's canceled it returns PASS...
L1853[19:10:18] <Zaggy1024> won't that make the off hand use as well?
L1854[19:10:58] <williewillus> oh yeah, I actually don't remember this specific case, it doesn't return immediately for some cases
L1855[19:11:24] <Zaggy1024> yeah if I equip a log in my off hand and a plant in my main, it places the flower in the flower pot and then places a log off the sideof it
L1856[19:11:29] <Zaggy1024> so that doesn't really work...
L1857[19:12:12] <Zaggy1024> is there any solution to that?
L1858[19:13:00] <Zaggy1024> it looks like because the flowers are ItemBlock it'll never reach CPacketPlayerTryUseItem
L1859[19:13:10] <Zaggy1024> so this doesn't work :[
L1860[19:14:06] <SatanicSanta> were the PlayerUseItemEvent.Tick/Finish/Stop events completely removed, or replaced by s/t?
L1861[19:14:17] <SatanicSanta> (post 1.7)
L1862[19:14:41] <williewillus> all the edge cases =.=
L1863[19:15:20] <Zaggy1024> I think what needs to be done is have the event have a field actionResult or something
L1864[19:15:30] <Zaggy1024> if that != PASS return that
L1865[19:15:53] <williewillus> where?
L1866[19:16:06] <Zaggy1024> PlayerControllerMP.processRightClickBlock
L1867[19:16:23] <Zaggy1024> (after sending the TryUse)
L1868[19:16:29] ⇨ Joins: Girafi (~Girafi@0x555178eb.adsl.cybercity.dk)
L1869[19:17:15] ⇨ Joins: stiforr_ (~stiforr@184.sub-97-35-128.myvzw.com)
L1870[19:17:28] <williewillus> lol I think I got something like it to work
L1871[19:17:33] <Zaggy1024> oh?
L1872[19:17:43] <Zaggy1024> what do you mean? no changes to the event handling?
L1873[19:18:25] <williewillus> https://i.gyazo.com/a0ec913f30be30dd2a4e7a2a46b4ca22.png
L1874[19:20:10] <Zaggy1024> how is that any different than my handler that didn't cancel anything?
L1875[19:20:18] <Zaggy1024> I'm not sure what I should change >.>
L1876[19:20:46] <williewillus> idk :P
L1877[19:21:23] <williewillus> just tried with a block in offhand too and it seemed to not glitch out
L1878[19:21:45] <Zaggy1024> are you standing in the way of the block that would be placed?
L1879[19:22:01] <williewillus> no
L1880[19:23:13] <Zaggy1024> oh
L1881[19:23:20] <Zaggy1024> that's because onBlockActivated is being called
L1882[19:23:43] <Zaggy1024> you need the handler to look for a held stack that isn't going to be handled by the flower pot
L1883[19:24:46] <williewillus> same result with ender pearl
L1884[19:25:41] <williewillus> same with block in off
L1885[19:26:23] <Zaggy1024> ender pearl isn't an ItemBlock
L1886[19:26:46] ⇦ Quits: auenf (David@DC-53-50.bpb.bigpond.com) (Remote host closed the connection)
L1887[19:26:54] <Zaggy1024> PlayerControllerMP does "instanceof ItemBlock"
L1888[19:27:11] <williewillus> okay just did it with grass
L1889[19:27:15] <williewillus> w same results
L1890[19:27:24] <Zaggy1024> ugh
L1891[19:27:29] <Zaggy1024> okay let me debug it a bit more
L1892[19:27:45] ⇨ Joins: auenf (David@DC-53-50.bpb.bigpond.com)
L1893[19:30:01] ⇦ Quits: Gigabit101 (~Gigabit10@cpc76302-cosh16-2-0-cust475.6-1.cable.virginm.net) (Quit: Leaving)
L1894[19:30:13] ⇨ Joins: Gigabit101 (~Gigabit10@cpc76302-cosh16-2-0-cust475.6-1.cable.virginm.net)
L1895[19:31:22] <Zaggy1024> if I don't cancel the event it places the flower off the side of the flower pot
L1896[19:31:55] <Zaggy1024> with grass make sure you're right clicking the side of the flower pot, not the top
L1897[19:32:27] <Zaggy1024> although if the item use fails then it just places a log on top
L1898[19:34:20] <Zaggy1024> I'm almost absolutely sure the only way this will work without being dependent on things outside the event itself is to allow the event to return its own EnumActionResult
L1899[19:35:25] <Zaggy1024> currently AFAIK there's no way to indicate in the event that I've done something and all other interactions should immediately stop, but the server should be told about it
L1900[19:36:39] <williewillus> i still can't repro what youre talking about :/
L1901[19:36:47] <williewillus> same eventhandler i just pasted, except replace flower with grass
L1902[19:36:51] <williewillus> right clicking on flower pot
L1903[19:37:06] <williewillus> replaces with runic altar, then adds he grass to the runic altar
L1904[19:37:16] <Zaggy1024> wtf?
L1905[19:37:21] <Zaggy1024> adds the grass to the runic altar?
L1906[19:37:30] <Zaggy1024> it shouldn't be doing anything after it replaces with the runic altar...
L1907[19:37:31] <williewillus> that's the altar's onBlokcActivated
L1908[19:37:38] <williewillus> because i didn't tell it to not do it
L1909[19:37:52] <Zaggy1024> that's the reason why it's working for you
L1910[19:37:59] <Zaggy1024> because your onBlockActivated is what's returning SUCCESS
L1911[19:38:01] <Zaggy1024> not the event
L1912[19:38:02] ⇦ Quits: OscarXcorePhone (uid157529@2604:8300:100:200b:6667:4:2:6759) (Quit: Connection closed for inactivity)
L1913[19:38:20] <williewillus> letting the event define its own enumactionresult complicates things but I'll look at it when i have time
L1914[19:38:24] <williewillus> it's really a mess
L1915[19:39:03] <Zaggy1024> I think it's just as simple as copying the code involving isCanceled and making it return the event's result
L1916[19:39:09] <Zaggy1024> if it's not PASS
L1917[19:39:42] <Zaggy1024> but for now I suppose I can make onBlockActivated return PASS to make this work
L1918[19:39:59] <williewillus> yeah I see it
L1919[19:40:12] <williewillus> shouldnt be too hard
L1920[19:40:34] <Zaggy1024> oog gonna have to copy paste some code, that makes me sad
L1921[19:40:42] ⇦ Quits: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com) (Quit: brb)
L1922[19:43:24] ⇨ Joins: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com)
L1923[19:43:39] ⇦ Quits: KnightMiner (~KnightMin@adsl-68-255-6-227.dsl.emhril.sbcglobal.net) (Ping timeout: 186 seconds)
L1924[19:43:58] <Zaggy1024> heh, actually it's not so bad
L1925[19:44:06] <Zaggy1024> hopefully nothing breaks though
L1926[19:44:42] ⇦ Quits: Amaxter (~Mutter@c-73-180-131-17.hsd1.dc.comcast.net) (Remote host closed the connection)
L1927[19:44:52] <williewillus> well actually it's a more general problem
L1928[19:45:12] <williewillus> if you cancel an event clientside it continues to all the other interactions because its all just in a giant series
L1929[19:45:30] <barteks2x> I'm going to rewrite the whole GeneratorPipeline in cubic chunks to use events instead of rechecking everything each tick. That should fix some of the performance issues caused by it.
L1930[19:45:35] <williewillus> i couldn't decide on whether to quit entirely or continue to other interactions, so I probably picked wrong :P
L1931[19:46:43] ⇦ Quits: OscarXcore (~Oscar@node-1w7jr9yc9viurrxo4vpiomidi.ipv6.telus.net) (Quit: I am leaving.)
L1932[19:47:33] <Zaggy1024> I think canceling is proper, and pass may be proper as well
L1933[19:47:49] <williewillus> what do you mean proper
L1934[19:48:02] <Zaggy1024> I mean canceling the interactions
L1935[19:48:03] <williewillus> I'm talking in the general case of all the PIE subevents
L1936[19:48:16] *** kroeser|away is now known as kroeser
L1937[19:48:20] <Zaggy1024> hm
L1938[19:48:24] <Zaggy1024> not sure what you mean then
L1939[19:48:38] <Zaggy1024> what I see in processRightClickBlock looks fine for canceling
L1940[19:48:59] <Zaggy1024> stops the one hand from interacting, seems like what canceling should do
L1941[19:49:04] <williewillus> the game does this: try specific entity interacting. no? try entity interacting. no? try rcb interacting. no? try rci interacting. no? try other hands
L1942[19:49:17] <williewillus> I made the event simply answer "no" when canceling
L1943[19:49:21] <williewillus> vs stopping the entire chain
L1944[19:49:31] <Zaggy1024> yeah, I think that's fine
L1945[19:49:42] <williewillus> that's what causes your problem :P
L1946[19:49:47] <Zaggy1024> if you want to cancel a whole hand then catch PlayerInteractEvent and check hand and held item
L1947[19:49:50] <Zaggy1024> then it cancels all that crap
L1948[19:49:51] <williewillus> is that it doesn't terminate the chain it keeps going
L1949[19:49:59] <Zaggy1024> yeah, that's fine IMO
L1950[19:50:08] <Zaggy1024> the event is only for the specific type of interaction
L1951[19:51:07] <Zaggy1024> but if you have interact(PlayerInteractEvent event) { if (event.getStack().getItem() == Items.prohibited_main && event.getHand() == EnumHand.MAIN_HAND) event.setCanceled(true); }
L1952[19:51:14] <Zaggy1024> then it just cancels all the interacts for that hand
L1953[19:51:22] <Zaggy1024> so that would be the way to "stop the chain"
L1954[19:51:45] <williewillus> i mean there's no clean solution to your situation due to how i designed it that way haha
L1955[19:51:53] <williewillus> i just wish mc had a sane interaction system -.-
L1956[19:52:49] <Zaggy1024> seems sane to me
L1957[19:52:54] <Zaggy1024> well, sane enough
L1958[19:52:58] <williewillus> :P
L1959[19:53:20] <Zaggy1024> and the clean solution is just what I said, having a way to make the event return a result from the rcl function
L1960[19:53:37] <Zaggy1024> that way you can tell the game "hey, I did something, so stop!"
L1961[19:54:28] <williewillus> i mean that's basically a way to stop the chain, and I would feel like having to add "stop the chain" solutions to every other event for consistency ;p
L1962[19:54:50] <williewillus> i'll see what I can come up with
L1963[19:56:04] <Zaggy1024> hmm
L1964[19:57:35] <Zaggy1024> yeah entity interaction should probably be the same
L1965[19:57:43] <Zaggy1024> but that means the patch will be bigger so that's lame
L1966[19:57:54] *** kroeser is now known as kroeser|away
L1967[19:59:04] <barteks2x> uh... why I can't think of any short names for my classes. ICubeGenerationStateProcessor, ICubeGenerationState, ICubeGenerationStateProperty...
L1968[20:00:09] <williewillus> well theres a common prefix in all of them
L1969[20:00:23] <williewillus> so throw it in a package and drop the prefix maybe? :D
L1970[20:00:56] <barteks2x> and I just realized that my GenerationStates are going to be very similar to IBlockStates...
L1971[20:01:23] <Zaggy1024> if they could be nested classes the prefix could be shared but IMO a package doesn't really work for that
L1972[20:01:36] <Zaggy1024> wait what?
L1973[20:01:40] <Zaggy1024> what are they?
L1974[20:02:34] <barteks2x> I want to rewrite cubic chunks generation pipeline to make it work properly, and I need some more advanced way to keep track of cube generation state, especially when it can be sent to client
L1975[20:03:19] <barteks2x> for example there are 256 possible combinations of population states
L1976[20:03:39] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:59d0:34db:bc4f:31c6)
L1977[20:04:53] *** williewillus is now known as willieaway
L1978[20:06:07] ⇨ Joins: cppchriscpp (~cppchrisc@c-76-24-45-127.hsd1.nh.comcast.net)
L1979[20:06:22] <barteks2x> and before someone tells me to do it the same way vanilla does it, vanilla way is broken, and is even more broken when used with cubic chunks
L1980[20:11:10] <SatanicSanta> !gp BlockPistonBase.canPush.p_185646_4_
L1981[20:21:35] <ven000m> You're going to MINECON 2016!
L1982[20:25:26] <Zaggy1024> I am?
L1983[20:26:06] ⇦ Quits: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net) (Remote host closed the connection)
L1984[20:28:06] ⇨ Joins: Naiten (Naiten@77.35.29.220)
L1985[20:30:02] <Zaggy1024> willie, lemme know when you have something to test, I can test it on my mod
L1986[20:30:03] ⇨ Joins: KnightMiner (~KnightMin@adsl-68-255-6-227.dsl.emhril.sbcglobal.net)
L1987[20:36:00] ⇨ Joins: SinbadEV (~SinbadEV@CPEbc4dfb6d3393-CMbc4dfb6d3390.cpe.net.cable.rogers.com)
L1988[20:36:03] <SatanicSanta> !sp p_185646_4_ destroyBlocks Whether the piston will be able to break blocks
L1989[20:36:18] * SinbadEV arrives!
L1990[20:38:00] ⇦ Quits: Hea3veN (~Hea3veN@190.247.149.195) (Ping timeout: 384 seconds)
L1991[20:41:06] <barteks2x> Is it possible that the way jenkins clones git repository somehow resotres tags I have deleted?
L1992[20:41:30] <SinbadEV> Hey! Trying to mod Minecraft for the first time... figured I start with the most recent advances so forge-1.9-12.16.1.1891... running into the problem that tutorials seem to assume older versions... so lot
L1993[20:42:29] <SinbadEV> 's of collecting info from different places... is there a good forge-1.9-12.16.1.1891 aware basic tutorial (I've gotten as far as successfully adding a recipe)
L1994[20:43:03] <SatanicSanta> I mean it's only had a recommended build for like 2 days
L1995[20:43:10] <SatanicSanta> a lot of the 1.8 stuff applies to 1.9
L1996[20:43:40] *** Flenix is now known as SleepyFlenix
L1997[20:43:43] <SinbadEV> My current strategy is to play punk music really loud to drown out my swearing...
L1998[20:44:33] <unascribed> here's a summary of the changes in recent versions, so you have an idea of what's still applicable from old tutorials
L1999[20:44:48] <unascribed> 1.7 -> 1.8: Direct GL access removed, IIcon removed. Everything is now done with models
L2000[20:45:03] <unascribed> 1.8 -> 1.9: Item cooldowns and minor changes to models to support off-hand
L2001[20:45:58] <unascribed> there are a *lot* of tutorials available for 1.7, so you may want to start there and work your way up to 1.9 with primers and such that are designed for people who already know how to mod
L2002[20:47:07] <unascribed> alternatively, you can try to learn modding directly by looking at other mods and vanilla code
L2003[20:47:11] ⇦ Quits: brandon|zzz (~Brandon@122.129.140.1) (Read error: Connection reset by peer)
L2004[20:47:15] <unascribed> and asking questions here when you hit a wall
L2005[20:48:09] ⇨ Joins: brandon3055 (~Brandon@122.129.140.1)
L2006[20:48:13] <unascribed> if simply trying to find 1.9 docs is making you swear a lot though, that's probably even worse :P
L2007[20:50:19] <SinbadEV> I don't know... the most progress I made was by looking at the MDKExample examplemod and figuring out what was different from the tutorial I was trying to follow... working code might help.
L2008[20:50:31] <unascribed> there's a lot of open source mods
L2009[20:51:00] <unascribed> williewillus' Botania port has sort of become the de-facto reference material for being the "first" complex mod to get ported to 1.8
L2010[20:51:06] <unascribed> there's examples of almost everything in there
L2011[20:51:34] <SinbadEV> Sound promising...
L2012[20:51:53] <unascribed> for 1.8: https://github.com/williewillus/Botania/tree/MC18/
L2013[20:51:56] <unascribed> for 1.9: https://github.com/williewillus/Botania/tree/MC19/
L2014[20:52:21] <barteks2x> WTF? When my jenkins server clones my repository it ends up with tags that I have deleted, when I execute exactly the same commands locally - it works normally
L2015[20:52:38] <unascribed> iirc pull doesn't update tags by default
L2016[20:52:42] <unascribed> you'll need to use --tags
L2017[20:53:03] <unascribed> you could also just nuke the workspace and let it recreate everything
L2018[20:53:08] <barteks2x> I deleted the whole git repository on jenkins server to make sure no files are left from prefious versions
L2019[20:53:22] <barteks2x> So yes, I already nuked the workspace
L2020[20:53:27] <unascribed> are you sure you updated the remote with your tags?
L2021[20:53:34] <barteks2x> yes, I cloned it again locally
L2022[20:53:37] <unascribed> Git doesn't accept deletions without a --force
L2023[20:53:45] <SinbadEV> Oooh... eclipse knows how to get stuff from git... nice
L2024[20:53:49] <barteks2x> I deleted them from github
L2025[20:53:54] <Matthew> 2.1 GHz gpu. damn
L2026[20:53:58] <barteks2x> using the web interface
L2027[20:54:09] <unascribed> fair warning SinbadEV, Eclipse's Git integration is semi-awful in places
L2028[20:54:14] <unascribed> I strongly recommend learning how to use Git directly
L2029[20:54:58] <unascribed> plus, direct git is the only way to use GPG and Ed25519 keys
L2030[20:55:00] <barteks2x> And I need these tags to not exist for version numbers to work
L2031[20:56:38] <barteks2x> oh, wait. rm -rf * doesn't delete hidden files
L2032[20:56:56] <barteks2x> WHY
L2033[20:57:45] <unascribed> .* will delete hidden files
L2034[20:58:01] <unascribed> you could also use the Jenkins "Wipe Out Workspace" button :L
L2035[20:58:43] <barteks2x> I can't find anything in the jenkind web interface
L2036[20:59:31] <barteks2x> the fact that it's half-english and half whatever language I use doesn't help
L2037[21:00:06] ⇦ Quits: stiforr_ (~stiforr@184.sub-97-35-128.myvzw.com) (Ping timeout: 384 seconds)
L2038[21:00:12] ⇦ Quits: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net) (Quit: またね)
L2039[21:02:52] <barteks2x> finally correct version number, 1.9-0.0.97.0
L2040[21:04:38] ⇦ Quits: Sprocks (~Sprocks@BMTNON3746W-LP130-05-1176475207.dsl.bell.ca) (Ping timeout: 384 seconds)
L2041[21:05:54] ⇨ Joins: Sprocks (~Sprocks@BMTNON3746W-LP130-05-1176475167.dsl.bell.ca)
L2042[21:07:46] ⇦ Quits: Naiten (Naiten@77.35.29.220) (Read error: Connection reset by peer)
L2043[21:19:27] ⇨ Joins: stiforr_ (~stiforr@124.sub-97-35-129.myvzw.com)
L2044[21:26:33] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00)
L2045[21:31:26] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00) (Ping timeout: 198 seconds)
L2046[21:36:34] *** kirby|gone is now known as mrkirby153
L2047[21:37:53] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:59d0:34db:bc4f:31c6) (Read error: Connection reset by peer)
L2048[21:39:06] *** willieaway is now known as williewillus
L2049[21:44:22] ⇦ Quits: CoolSquid (~CoolSquid@ti0011a400-2417.bb.online.no) (Ping timeout: 190 seconds)
L2050[21:50:44] ⇨ Joins: OscarXcore (~Oscar@node-1w7jr9yc9viurrxo4vpiomidi.ipv6.telus.net)
L2051[22:01:34] ⇨ Joins: OscarXcorePhone (uid157529@2604:8300:100:200b:6667:4:2:6759)
L2052[22:05:38] ⇦ Quits: Poppy (~Poppy@chello085216146055.chello.sk) (Ping timeout: 198 seconds)
L2053[22:06:34] ⇨ Joins: Zorn_Taov (~Greenfox@c-71-198-205-107.hsd1.ca.comcast.net)
L2054[22:06:54] <Zorn_Taov> anyone know of a tutorial for adding sounds to 1.9 for mods?
L2055[22:09:52] ⇨ Joins: killjoy1 (~killjoy@71.65.255.183)
L2056[22:10:13] ⇨ Joins: Firedingo|AFK (~Firedingo@CPE-121-217-142-167.lnse2.cht.bigpond.net.au)
L2057[22:10:34] <Nosirrom> wouldn't you just override all the methods which return a SoundEvent?
L2058[22:10:56] ⇨ Joins: Wastl2 (~Wastl2@x4e350de5.dyn.telefonica.de)
L2059[22:12:48] <Zorn_Taov> I mean adding in new sounds
L2060[22:13:41] <tterrag> sounds.json
L2061[22:13:43] <tterrag> I don't think it's changed
L2062[22:13:57] <Zorn_Taov> but what about accessing the sounds
L2063[22:14:07] <Zorn_Taov> resource location?
L2064[22:14:19] <tterrag> probably
L2065[22:14:56] <killjoy1> ISound thing
L2066[22:15:01] <killjoy1> use the soundmanager
L2067[22:15:41] <killjoy1> I haven't done 1.9 sound, but in 1.8, it's using that
L2068[22:17:07] <SatanicSanta> killjoy1: IIRC ISound is just for clientside sounds
L2069[22:17:17] <SatanicSanta> otherwise you need to use SoundEvents
L2070[22:17:37] <Zorn_Taov> looks like I need SoundEvents.registerSound
L2071[22:18:14] ⇦ Quits: Lathanael|Away (~Lathanael@p54960050.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L2072[22:18:22] <Zorn_Taov> or something
L2073[22:18:32] <williewillus> Zorn_Taov: https://gist.github.com/williewillus/3c5e449c4ffcac77330d
L2074[22:18:58] <Zorn_Taov> \o/
L2075[22:19:03] ⇨ Joins: baegmon (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au)
L2076[22:19:06] <Zorn_Taov> thank you
L2077[22:19:19] ⇨ Joins: tali713 (~user@2601:444:8200:c7d:5d6:6e26:2a24:5ba8)
L2078[22:19:58] *** Alex_hawks is now known as Alex_hawks|Away
L2079[22:24:27] <killjoy1> does anyone know if 1.9.2 -> 1.9.3 is protocol stable?
L2080[22:24:46] ⇨ Joins: Lathanael|Away (~Lathanael@p54961CF5.dip0.t-ipconnect.de)
L2081[22:25:18] <killjoy1> nope. looks like it was increased by 1
L2082[22:26:41] <williewillus> what changes?
L2083[22:26:58] <killjoy1> There's no page on it.
L2084[22:27:05] <killjoy1> http://wiki.vg/Protocol_version_numbers
L2085[22:27:33] <killjoy1> It's a shame there's no change log
L2086[22:27:53] <killjoy1> Nevermind. http://wiki.vg/Protocol_History#1.9.3-pre2
L2087[22:28:24] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00)
L2088[22:29:48] ⇦ Quits: brandon3055 (~Brandon@122.129.140.1) (Read error: Connection reset by peer)
L2089[22:30:31] ⇨ Joins: brandon3055 (~Brandon@122.129.140.1)
L2090[22:31:41] ⇦ Quits: KnightMiner (~KnightMin@adsl-68-255-6-227.dsl.emhril.sbcglobal.net) (Read error: Connection reset by peer)
L2091[22:32:02] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00) (Ping timeout: 198 seconds)
L2092[22:32:54] <williewillus> yeah haha
L2093[22:32:59] <williewillus> those guys are usually on it really fast
L2094[22:33:32] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:8827:d00:6511:e9fb)
L2095[22:38:54] <killjoy1> Sadly, more detailed changes aren't there
L2096[22:38:58] <killjoy1> such as nbt changes
L2097[22:39:07] ⇦ Quits: brandon3055 (~Brandon@122.129.140.1) (Read error: Connection reset by peer)
L2098[22:39:23] <killjoy1> if nbt changes, we wouldn't know without investigating it
L2099[22:39:29] ⇨ Joins: brandon3055 (~Brandon@122.129.140.1)
L2100[22:40:36] <williewillus> what do you mean nbt changes
L2101[22:44:01] <killjoy1> in 1.7.6+, skull nbt changed
L2102[22:44:04] <killjoy1> At least It hink
L2103[22:44:28] <killjoy1> changed from Name (or something) to SkullOwner
L2104[22:44:42] <killjoy1> I don't recall. Just a sec
L2105[22:45:02] ⇦ Quits: agowa338 (~Thunderbi@p54918C24.dip0.t-ipconnect.de) (Ping timeout: 190 seconds)
L2106[22:45:44] <killjoy1> It doesn't document this change. https://git.io/vwpNH
L2107[22:49:20] ⇨ Joins: Mraof (~mraof@50.153.181.37)
L2108[22:52:19] ⇦ Parts: Mraof (~mraof@50.153.181.37) ())
L2109[22:52:20] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L2110[23:07:08] ⇨ Joins: Hea3veN (~Hea3veN@190.247.149.195)
L2111[23:10:07] <Zorn_Taov> there used to be a really detailed website that showed the diff between any two version you chose
L2112[23:10:13] <Zorn_Taov> had a hamburger theme for some reason
L2113[23:10:20] <Zorn_Taov> forgot what it's called, though
L2114[23:12:47] <unascribed> Burger Vitrine, http://b.wiki.vg/
L2115[23:12:50] <unascribed> hasn't been updated in a while
L2116[23:13:37] ⇦ Quits: Brokkoli (~Brokkoli@p5b23c284.dip0.t-ipconnect.de) (Quit: Die Sprache der Politik ist daf�r gemacht, dass L�gen wahr klingen und das T�ten angemessen wirkt. (George Orwell))
L2117[23:13:57] <Zorn_Taov> !
L2118[23:14:06] <Zorn_Taov> I've been looking for this for ages! xD
L2119[23:14:17] <Zorn_Taov> awww, stops at 1.6.2
L2120[23:14:28] <unascribed> yeah, as said, it hasn't been updated in a while
L2121[23:14:33] <unascribed> something replaced it, I forget what
L2122[23:14:56] <unascribed> what kind of information are you looking for?
L2123[23:14:59] <unascribed> there may be a better source
L2124[23:15:35] <Zorn_Taov> friend just wanted to see a detailed diff for between versions
L2125[23:15:42] <killjoy1> How hard is it really to find Packet and all of the subclasses?
L2126[23:15:48] <Zorn_Taov> mainly 1.7 onwards :P
L2127[23:16:20] <killjoy1> some protocol data don't actually change between versions
L2128[23:16:33] <killjoy1> like addition of blocks, items, entities, nbt, etc
L2129[23:16:55] <unascribed> you could run Burger directly, it has been updated to 1.8 it looks like: https://github.com/Pokechu22/Burger
L2130[23:17:27] <Zorn_Taov> xD nice
L2131[23:17:40] <unascribed> there's data dumps for 1.9 and 1.8: https://pokechu22.github.io/Burger/1.9.html / https://pokechu22.github.io/Burger/1.8.html
L2132[23:18:16] <unascribed> and a 1.9.2->1.9.3-pre2 diff: https://pokechu22.github.io/Burger/diff_1.9.2_and_1.9.3-pre2.html
L2133[23:18:51] ⇦ Quits: Yatogami (~ya.to@2604:a880:800:a1::26:6001) (Quit: I'm going to a better place.)
L2134[23:18:55] <Zorn_Taov> :D
L2135[23:19:14] *** Firedingo|AFK is now known as Firedingo
L2136[23:23:13] ⇨ Joins: Yatogami (~ya.to@2604:a880:800:a1::26:6001)
L2137[23:24:31] *** Kolatra is now known as Kolatra|away
L2138[23:28:00] ⇦ Quits: baegmon (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au) (Ping timeout: 384 seconds)
L2139[23:30:55] <Zorn_Taov> can you do // comments in json?
L2140[23:32:09] <Cypher121> not really
L2141[23:32:20] <unascribed> s/t really//
L2142[23:32:58] <Zorn_Taov> ok
L2143[23:33:14] <Cypher121> they are not standard, so not every json reader supports them
L2144[23:33:19] <Cypher121> gson doesn't
L2145[23:33:25] <Cypher121> jackson does, iirc
L2146[23:33:39] <unascribed> gson does if you enable lenient mode
L2147[23:33:52] <Cypher121> well, for reading
L2148[23:34:00] <Cypher121> for writing, not at all
L2149[23:34:07] <TehNut> Just make a field that won't be used
L2150[23:34:15] <TehNut> Something like "__comment": ""
L2151[23:34:52] <Matthew> or use hocon :D
L2152[23:40:11] <Cypher121> !findm I18n\..+
L2153[23:42:58] <TehNut> So in PersistentRegistryManager#createRegistry, there is a param called "optionalDefaultKey" (ResourceLocation). What does that mean by optional?
L2154[23:45:50] <SinbadEV> Alright... I started the tutorials all over, making sure I understood each step before moving on, and was doing much better this time around... but I ran into the same wall... (http://www.minecraftforge.net/wiki/Basic_Blocks), I get to .setStepSound(Block.soundGravelFootstep) and it says "soundGravelFootstep cannot be resolved or is not a field"
L2155[23:46:03] <TehNut> 1.9?
L2156[23:46:12] <SinbadEV> Yes
L2157[23:46:35] <TehNut> SoundType.THING
L2158[23:46:53] <Cypher121> TehNut: apparently it goes all the way up to RegistryNamespacedDefaultedByKey, where it is returned if no key for arg of getNameForObject exists, as well as for some other magic with setting default value
L2159[23:47:13] <TehNut> Ah
L2160[23:47:22] <TehNut> Okay that makes sense
L2161[23:47:40] <Cypher121> may have some other uses too, but that's one I see
L2162[23:50:54] <SinbadEV> Error moved over one... now "The method setStepSound(SoundType) from the type Block is not visible"
L2163[23:54:22] ⇦ Quits: Yatogami (~ya.to@2604:a880:800:a1::26:6001) (Quit: I'm going to a better place.)
L2164[23:56:21] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:8947:305b:1df:f546:3c00)
L2165[23:56:54] ⇦ Quits: stiforr_ (~stiforr@124.sub-97-35-129.myvzw.com) (Ping timeout: 384 seconds)
L2166[23:57:49] ⇨ Joins: Yatogami (~ya.to@2604:a880:800:a1::26:6001)
<<Prev Next>> Scroll to Top