<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:07:10] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 384 seconds)
L2[00:07:26] ⇨ Joins: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L3[00:12:20] <LexManos> !gm registerWalkerAdd
L4[00:12:51] <LexManos> !fsm 188255 registerWalker
L5[00:12:59] <LexManos> !gm registerWalker
L6[00:13:52] <LexManos> !fsm 188255 registerVanillaWalker Do not invoke this method, use registerWalker instead. It is expected to be removed in future versions.
L7[00:20:33] ⇨ Joins: Davnit (~Davnit@72-189-115-20.res.bhn.net)
L8[00:21:39] ⇦ Quits: Davnit (~Davnit@72-189-115-20.res.bhn.net) (Client Quit)
L9[00:21:50] ⇨ Joins: AshIndigo_ (~AshIndigo@79-67-168-211.dynamic.dsl.as9105.com)
L10[00:21:58] ⇦ Quits: AshIndigo (~AshIndigo@188.29.165.75.threembb.co.uk) (Quit: Bye)
L11[00:24:01] ⇨ Joins: Grover_c13 (~Courtney@203-59-199-82.dyn.iinet.net.au)
L12[00:32:52] ⇨ Joins: AshIndigo (~AshIndigo@188.29.165.75.threembb.co.uk)
L13[00:34:49] ⇦ Quits: AshIndigo_ (~AshIndigo@79-67-168-211.dynamic.dsl.as9105.com) (Ping timeout: 206 seconds)
L14[00:35:08] ⇦ Quits: barteks2x (barteks2x@it.is.your.corrupt.we.claim.panicbnc.org) (Ping timeout: 198 seconds)
L15[00:35:44] ⇦ Quits: MrZoidbergMD (Zoidberg@have.i.gone.mad.panicbnc.org) (Ping timeout: 198 seconds)
L16[00:36:04] ⇦ Quits: Hobbyboy (Hobbyboy@hobbyboy.co.uk) (Ping timeout: 384 seconds)
L17[00:50:25] <pig> tterrag: well, not really, idk. *shrugs*
L18[00:50:30] <pig> Artillect: just once till an update
L19[00:51:51] <killjoy> http://www.minecraftforum.net/forums/support/modded-client-support/2763983-getting-forge-and-liteloader-to-run-together-on-1
L20[00:52:05] <killjoy> Anyone able to aid?
L21[01:00:23] ⇨ Joins: MrIbby (~MrIbby@173.85.192.160)
L22[01:00:27] ⇦ Quits: MrIbby (~MrIbby@173.85.192.160) (Remote host closed the connection)
L23[01:00:33] ⇨ Joins: MrIbby (~MrIbby@173.85.192.160)
L24[01:02:22] ⇨ Joins: Hobbyboy (Hobbyboy@hobbyboy.co.uk)
L25[01:05:16] ⇦ Quits: Upth (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (Ping timeout: 186 seconds)
L26[01:07:12] ⇦ Quits: Zed (~Zed@21.243.7.51.dyn.plus.net) (Remote host closed the connection)
L27[01:07:32] ⇨ Joins: MrZoidbergMD (Zoidberg@have.i.gone.mad.panicbnc.org)
L28[01:07:53] ⇨ Joins: Zed (~Zed@21.243.7.51.dyn.plus.net)
L29[01:08:53] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L30[01:09:55] ⇨ Joins: Upth (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L31[01:15:07] ⇨ Joins: Hgrebnednav_ (~Hgrebnedn@d8D872A6E.access.telenet.be)
L32[01:16:04] ⇨ Joins: barteks2x (barteks2x@it.is.your.corrupt.we.claim.panicbnc.org)
L33[01:16:35] ⇨ Joins: Jezza (~Jezza@bps-gw.hrz.tu-chemnitz.de)
L34[01:17:25] ⇦ Quits: MrIbby (~MrIbby@173.85.192.160) (Remote host closed the connection)
L35[01:20:41] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L36[01:29:13] ⇨ Joins: Everseeking (~Everseeki@pool-100-6-95-214.pitbpa.fios.verizon.net)
L37[01:30:10] ⇨ Joins: MrIbby (~MrIbby@173.85.192.160)
L38[01:34:45] ⇦ Quits: AshIndigo (~AshIndigo@188.29.165.75.threembb.co.uk) (Ping timeout: 206 seconds)
L39[01:35:25] ⇨ Joins: AshIndigo (~AshIndigo@188.29.165.169.threembb.co.uk)
L40[01:38:32] ⇦ Quits: Naiten (Naiten@5.143.58.138) (Read error: Connection reset by peer)
L41[01:39:32] *** minecreatr is now known as Mine|dreamland
L42[01:41:35] *** tterrag is now known as tterrag|ZZZzzz
L43[01:43:19] ⇨ Joins: untamemadman (~untamemad@cpc87177-aztw31-2-0-cust196.18-1.cable.virginm.net)
L44[01:43:31] ⇦ Quits: Brokkoli (~Brokkoli@p2E5B1DD8.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))
L45[01:49:51] ⇦ Quits: Doty1154 (~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
L46[01:50:09] ⇨ Joins: Emris (~Miranda@195.234.58.25)
L47[01:51:05] <Ordinastie> !gm func_180496_d
L48[01:51:23] <Ordinastie> !gm func_180496_d 1.10.2
L49[01:52:29] <Ordinastie> what can cause that again ? java.lang.NoClassDefFoundError: net/minecraft/world/World$2
L50[01:53:22] ⇨ Joins: AstralSorcerer (~AstralSor@128.151.114.215)
L51[01:53:43] ⇨ Joins: Snapples (uid167569@id-167569.highgate.irccloud.com)
L52[01:54:40] <LexManos> Not using a modern version of forge
L53[01:55:04] <illy> would anyone be willing to be a guinea pig for me?
L54[01:55:50] <Ordinastie> nah, he's using the right forge version
L55[01:56:49] ⇨ Joins: VikeStep (~VikeStep@101.184.229.226)
L56[01:56:50] <Ordinastie> I guess $2 is the anonymous crash report, so that probably means the crash report is hiding the real crash
L57[01:57:10] <AshIndigo> $2 would be a sub class right?
L58[01:57:54] <Ordinastie> *inner
L59[01:58:17] <LexManos> Not using a modern version of forge
L60[01:58:28] <LexManos> Modern versions of Forge pre-allocate crash report classes
L61[01:58:33] <LexManos> $2 being one of them
L62[01:59:10] <Ordinastie> FML: MCP 9.32 Powered by Forge 12.18.2.2151 6 mods loaded, 6 mods active
L63[02:00:01] <LexManos> should preload the classes
L64[02:00:03] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20161128 mappings to Forge Maven.
L65[02:00:03] <LexManos> check the log
L66[02:00:07] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20161128-1.11.zip (mappings = "snapshot_20161128" in build.gradle).
L67[02:00:17] <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/
L68[02:01:04] <Ordinastie> I only have a crash log currently, but I expect a full log to show exactly what went wrong
L69[02:01:42] <Ordinastie> I have a feeling about some stackoverflow
L70[02:01:48] <Ordinastie> I'll see
L71[02:04:03] ⇨ Joins: Davnit (~Davnit@72-189-115-20.res.bhn.net)
L72[02:05:36] <illy> note to self do not upload file via VM >.>
L73[02:05:49] <illy> s/file/files/
L74[02:09:00] ⇦ Quits: Chais (~Chais@62-178-210-212.cable.dynamic.surfer.at) (Read error: Connection reset by peer)
L75[02:10:14] ⇦ Quits: jackmcbarn (jackmcbarn@gateway.insomnia247.nl) (Ping timeout: 192 seconds)
L76[02:10:34] ⇨ Joins: Chais (~Chais@62.178.210.212)
L77[02:11:08] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 198 seconds)
L78[02:12:32] ⇨ Joins: jackmcbarn (jackmcbarn@gateway.insomnia247.nl)
L79[02:14:57] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L80[02:19:24] ⇦ Quits: Upthorn (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (Ping timeout: 186 seconds)
L81[02:19:31] ⇦ Quits: Hgrebnednav_ (~Hgrebnedn@d8D872A6E.access.telenet.be) (Read error: Connection reset by peer)
L82[02:19:48] ⇨ Joins: Hgrebnednav_ (~Hgrebnedn@d8D872A6E.access.telenet.be)
L83[02:28:24] ⇦ Quits: Gil (uid147942@id-147942.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
L84[02:33:33] ⇦ Quits: MrIbby (~MrIbby@173.85.192.160) (Remote host closed the connection)
L85[02:33:42] ⇦ Quits: blood_ (unknown@ool-4574115b.dyn.optonline.net) ()
L86[02:40:35] ⇦ Quits: Yato (~ya.to@2604:a880:800:10::11b6:7001) (Quit: I'm going to a better place.)
L87[02:41:11] ⇨ Joins: Yato (~po.yay.to@45.55.141.36)
L88[02:47:44] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 198 seconds)
L89[02:54:14] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L90[02:54:39] *** illy is now known as illy[Zzz]
L91[03:04:32] ⇦ Quits: immibis (~chatzilla@122-59-201-170.jetstream.xtra.co.nz) (Ping timeout: 198 seconds)
L92[03:06:20] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 198 seconds)
L93[03:06:31] <killjoy> I got my old boss for secret santa. He wants "polo, polo, more polo"
L94[03:06:32] ⇦ Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a) (Remote host closed the connection)
L95[03:06:35] <killjoy> I think I'll get him this. https://www.amazon.com/Breyer-Limited-Santiago-Polo-Pony/dp/B00RC05DXK
L96[03:06:57] <killjoy> crap, $100
L97[03:07:11] <AshIndigo> Start a kickstarter
L98[03:07:21] <killjoy> I'll buy the rider
L99[03:07:25] <killjoy> https://www.amazon.com/Breyer-Limited-Nico-Player-Figure/dp/B00RE9R65M/ref=pd_sim_21_2?_encoding=UTF8&psc=1&refRID=BXPV60SHAK0392FB8T30
L100[03:07:28] ⇦ Quits: Meronat (uid190493@id-190493.highgate.irccloud.com) (Quit: Connection closed for inactivity)
L101[03:07:33] <killjoy> It's only $17
L102[03:08:50] <killjoy> I kind of want to do what he got last year.
L103[03:08:55] <Grover_c13> hmmm
L104[03:08:56] * AshIndigo completely forgot how to do multithreading
L105[03:09:08] <Grover_c13> anyone know how to get the texture of a block
L106[03:09:08] <killjoy> He wanted a porche, so someone got him an RC
L107[03:12:39] <Akkarin> Grover_c13: Depends on what you need actually. For rendering block textures are stitched
L108[03:12:49] <Grover_c13> hmmm
L109[03:12:54] <Grover_c13> so ill need the texture coords
L110[03:13:06] <killjoy> Why do you need the texture?
L111[03:13:10] <Akkarin> not necessarily unless you want to roll your own rendering and at that point it gets painful
L112[03:13:21] <Grover_c13> i do want to do that
L113[03:13:36] <Grover_c13> kind of need to
L114[03:13:45] <killjoy> what are you doing?
L115[03:13:54] <Akkarin> generally you should be dealing with BlockRendererDispatcher if you wish to render a block of sorts
L116[03:14:04] <Grover_c13> hmmm
L117[03:14:44] <Ordinastie> Grover_c13, you can't really get the texture for block
L118[03:15:04] <killjoy> use a model
L119[03:15:06] <Ordinastie> the only thing you can access is the the texture for the particles
L120[03:15:22] <Grover_c13> the rendering engine at some point must map the block to a texture?
L121[03:15:40] <Ordinastie> no, you can have multiple textures for one block
L122[03:15:45] <quadraxis> quads are mapped to textures
L123[03:15:50] <Akkarin> Rendering is somewhat more complex at this point
L124[03:15:52] <killjoy> You haven't explained why you want to do this difficult thing.
L125[03:16:00] <Akkarin> different from what MC originally used to do that is
L126[03:16:17] <Grover_c13> @killjoy
L127[03:16:44] <Grover_c13> see this video: https://www.youtube.com/watch?v=Cgc3cShZzfQ
L128[03:16:47] <Grover_c13> the cows in the background
L129[03:16:55] <Grover_c13> i want to replace with a special kind of entity thats made up of blocks
L130[03:16:59] <Grover_c13> like a block structure
L131[03:17:03] <Grover_c13> and render it
L132[03:17:11] <Ordinastie> then render the models directlu
L133[03:17:31] <killjoy> block_falling renders blocks
L134[03:17:33] <Grover_c13> the models are dynamic
L135[03:17:42] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L136[03:17:43] <Grover_c13> true i might look at the code for that
L137[03:17:43] <Akkarin> or use BlockRendererDispatcher as I suggested
L138[03:17:54] <Akkarin> I use something similar for my anti-gravity nonsense
L139[03:17:57] <Grover_c13> ty the dispatcher looks helpful
L140[03:18:03] <Ordinastie> closest thing you can get is the breaking particle texture
L141[03:18:13] <Ordinastie> but there is no guarantee there is one
L142[03:18:17] <killjoy> That's why I love this channel
L143[03:18:28] <killjoy> Someone asks how to do something they shouldn't without telling us why they need to.
L144[03:18:31] <Akkarin> well it suffices for him to just render the object itself (since well blocks aren't just cubes at this point)
L145[03:18:42] <killjoy> They eventually tell us why, then we send them off to do something else to achieve the same result.
L146[03:18:50] <Akkarin> killjoy: The use case isn't really relevant for the implementation in most cases though?
L147[03:19:07] <Grover_c13> yeah i agree with akkarin :P
L148[03:19:08] <killjoy> eh
L149[03:19:09] ⇨ Joins: immibis (~chatzilla@122-61-224-36.jetstream.xtra.co.nz)
L150[03:19:18] <Grover_c13> also this is a better video
L151[03:19:18] <Grover_c13> https://www.youtube.com/watch?v=3OiS218kIXo
L152[03:19:20] <Grover_c13> last one was older
L153[03:19:23] <Akkarin> in this case "I want to render a certain block" suffices to push somebody in the right direction
L154[03:19:24] <killjoy> don't just do an implementation because you can.
L155[03:19:36] <killjoy> there's usually simpler ways to do it.
L156[03:19:54] <Akkarin> ?
L157[03:20:16] <killjoy> he was asking a question about implementation, not use case
L158[03:20:55] ⇦ Quits: Everseeking (~Everseeki@pool-100-6-95-214.pitbpa.fios.verizon.net) (Read error: Connection reset by peer)
L159[03:20:56] <Akkarin> Well you were raging about him lacking information on the use case
L160[03:21:07] <killjoy> raging?
L161[03:21:11] <Akkarin> in order to find the best method of implementation
L162[03:21:13] <killjoy> just a sec, let me read this log
L163[03:21:16] <Akkarin> -.-
L164[03:21:27] <Akkarin> somebody is certainly a fan of nitpicking and semantics
L165[03:21:46] <killjoy> is this before or after we solved his problem?
L166[03:22:52] <killjoy> w/e
L167[03:27:47] <sham1> Of course we are fans of nitpicking and semantics, we are programmers after all
L168[03:28:08] <killjoy> I was only reviewing the log so I wouldn't get caught in a lie
L169[03:28:14] <killjoy> or something like that
L170[03:28:33] <killjoy> s/in a lie/contradicting myself
L171[03:29:13] ⇦ Quits: killjoy (~killjoy@cpe-2606-A000-1118-C091-28B8-AA7D-8345-48AD.dyn6.twc.com) (Read error: Connection reset by peer)
L172[03:30:12] <Grover_c13> BlockRenderDispatcher looks perfect
L173[03:30:47] <Grover_c13> should be able to rotate the block to arbitrary angles easily enough with it too
L174[03:30:51] <Grover_c13> thanks heaps Akkarin
L175[03:31:03] <Akkarin> :)
L176[03:34:34] ⇦ Quits: AstralSorcerer (~AstralSor@128.151.114.215) (Ping timeout: 384 seconds)
L177[03:50:54] *** Keridos|away is now known as Keridos
L178[03:52:31] ⇨ Joins: Noppes (~Noppes@ip56530f2e.direct-adsl.nl)
L179[03:56:40] <Keridos> oh boy the vanilla glass pane jsons are weird
L180[04:21:52] *** MrKick|Away is now known as MrKickkiller
L181[04:22:24] ⇨ Joins: Davnit_ (~Davnit@72-189-115-20.res.bhn.net)
L182[04:23:44] ⇦ Quits: Davnit (~Davnit@72-189-115-20.res.bhn.net) (Ping timeout: 198 seconds)
L183[04:24:01] *** Davnit_ is now known as Davnit
L184[04:28:52] ⇨ Joins: Naiten (Naiten@77.35.173.0)
L185[04:31:08] ⇦ Quits: smbarbour (~smbarbour@c-73-211-171-154.hsd1.il.comcast.net) (Ping timeout: 186 seconds)
L186[04:32:06] ⇨ Joins: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L187[04:33:54] ⇨ Joins: smbarbour (~smbarbour@c-73-211-171-154.hsd1.il.comcast.net)
L188[04:47:08] ⇨ Joins: nallar (~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net)
L189[04:48:07] ⇦ Quits: nallar (~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net) (Quit: ZNC - http://znc.in)
L190[04:50:50] ⇨ Joins: nallar (~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net)
L191[05:04:02] ⇦ Quits: FusionLord (~FusionLor@2600:8800:1:e900:7537:595d:983e:4b3c) (Ping timeout: 206 seconds)
L192[05:06:32] *** AshIndigo is now known as Ash-Afk
L193[05:11:17] ⇨ Joins: Koward (~Koward@2a02:2788:7d4:4dd:c8c6:3def:80d3:46a7)
L194[05:12:45] ⇦ Quits: immibis (~chatzilla@122-61-224-36.jetstream.xtra.co.nz) (Remote host closed the connection)
L195[05:14:54] ⇨ Joins: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de)
L196[05:21:48] ⇦ Quits: Davnit (~Davnit@72-189-115-20.res.bhn.net) (Read error: Connection reset by peer)
L197[05:23:24] ⇨ Joins: Davnit (~Davnit@72-189-115-20.res.bhn.net)
L198[05:40:36] *** Keridos is now known as Keridos|away
L199[05:40:56] ⇦ Quits: Delaxarnyazer (~Delaxarny@2a02:a44e:91ce:0:80dc:7855:5421:3308) (Ping timeout: 384 seconds)
L200[05:50:34] ⇦ Quits: Koward (~Koward@2a02:2788:7d4:4dd:c8c6:3def:80d3:46a7) (Ping timeout: 384 seconds)
L201[05:52:29] ⇨ Joins: Necro (~Necro@p200300700D6416C808F51CF87C5ADC25.dip0.t-ipconnect.de)
L202[05:57:31] ⇨ Joins: MalkContent (~MalkConte@p4fdce45c.dip0.t-ipconnect.de)
L203[06:13:52] ⇦ Quits: MalkContent (~MalkConte@p4fdce45c.dip0.t-ipconnect.de) (Quit: Leaving)
L204[06:19:33] *** Ash-Afk is now known as AshIndigo
L205[06:27:28] ⇨ Joins: Cast0077 (~Cast0077@24-181-179-41.dhcp.nwtn.ct.charter.com)
L206[06:33:28] ⇨ Joins: Inusua1Z (~InusualZ@adsl-72-50-86-114.prtc.net)
L207[06:35:52] ⇦ Quits: Inusua1Z_ (~InusualZ@adsl-64-237-232-251.prtc.net) (Ping timeout: 206 seconds)
L208[06:36:20] ⇦ Quits: Cast0077 (~Cast0077@24-181-179-41.dhcp.nwtn.ct.charter.com) (Ping timeout: 198 seconds)
L209[06:38:14] ⇨ Joins: Cast0077 (~Cast0077@24-181-179-41.dhcp.nwtn.ct.charter.com)
L210[06:42:58] ⇨ Joins: Technicianlp (~Technicia@pD9F607C7.dip0.t-ipconnect.de)
L211[06:44:36] ⇨ Joins: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L212[06:44:55] ⇦ Quits: Technicianlp (~Technicia@pD9F607C7.dip0.t-ipconnect.de) (Client Quit)
L213[06:48:34] *** PaleOff is now known as PaleoCrafter
L214[06:50:49] <masa> do custom dimension need to be registered on the client side? or is there something I need to do for them to work?
L215[06:51:21] <masa> currently I can't connect to my testing server anymore after I teleported to a custom dimension
L216[06:51:40] <masa> the client console get flooded with NPEs from a time update packet handler
L217[06:52:16] <masa> not sure what is null there, I'm suspecting the client world
L218[06:54:42] ⇦ Quits: Gaz (~Gaz492@wolf.ski) (Quit: Fucking Mice and ethernet cables)
L219[06:57:01] ⇨ Joins: Gaz (~Gaz492@217.ip-193-70-0.eu)
L220[06:59:35] ⇨ Joins: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L221[07:05:10] <masa> okay this is strange... I set up a dedi server in my dev environment and tried this there, and that too spams errors like crazy, but there are different kinds of network packet related errors
L222[07:06:03] ⇨ Joins: Inusua1Z_ (~InusualZ@adsl-72-50-85-56.prtc.net)
L223[07:06:10] <barteks2x> It's definitely possible to create custom dimension without client mod (I think sponge plugins can do that), but I don't think it's by default
L224[07:07:09] <masa> hmm, I don't understand what I'm doing wrong, or not doing...
L225[07:07:30] <masa> this mod is supposed to be a simple custom dimensions registration mod on the server side
L226[07:07:37] <Umbraco> is there any way to selectively reload resources only from my own mod using F3+T or other?
L227[07:07:41] <masa> but when I teleport to a custom dimension, all hell breaks loose
L228[07:07:44] <barteks2x> Maybe send crash log?
L229[07:07:52] <masa> and this worked perfectly fine in single player...
L230[07:07:59] <barteks2x> It's hard to see what could be wrong without that
L231[07:08:15] ⇦ Quits: Inusua1Z (~InusualZ@adsl-72-50-86-114.prtc.net) (Ping timeout: 206 seconds)
L232[07:08:17] <masa> well this log makes no sense whatsoever
L233[07:08:26] <barteks2x> it could still be useful
L234[07:08:32] <masa> it spams shit to the console as fast as it can, so it overflows within a second
L235[07:08:43] <barteks2x> so send one of them
L236[07:08:53] <barteks2x> of of the exceptions
L237[07:08:54] <masa> it's multiple types of NPEs in different packet handlers
L238[07:09:05] <barteks2x> so find the first one
L239[07:09:15] <barteks2x> I guess the next one are just caused by the first error
L240[07:10:25] <masa> "find the first one"?
L241[07:11:06] <barteks2x> in fml-(client/server)-latest.log
L242[07:11:25] <barteks2x> something should be the first one that appears
L243[07:14:08] <masa> aha, "Could not get provider type for dimension 11, does not exist" and then all hell breaks loose
L244[07:14:27] <masa> so how can I do this with a server-side-only mod?
L245[07:14:41] ⇨ Joins: MalkContent (~MalkConte@79.220.228.92)
L246[07:14:55] <barteks2x> I don't know how sponge does it
L247[07:15:11] <barteks2x> They probably make sure that only vanilla dimension IDs are sent to client
L248[07:15:15] <masa> are they just spoofing the id in some packets...?
L249[07:15:36] <barteks2x> It's SPacketRespawn
L250[07:15:46] <barteks2x> this one has dimension ID
L251[07:15:59] <barteks2x> It may not be even possible with forge
L252[07:16:06] <barteks2x> (at least not without hacks)
L253[07:17:48] <barteks2x> I only know they do it becuas ethere are plugins that add new worlds/dimensions
L254[07:19:15] <masa> yeah...
L255[07:19:36] <masa> hmm, so how does RFTools or Mystcraft etc do this... to the githubs!
L256[07:19:57] <masa> they probably sync a dimension id to the client at some point
L257[07:20:03] <masa> and register it
L258[07:20:08] ⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L259[07:21:10] <barteks2x> so you want custom dimension at all or custom dimension without client mod?
L260[07:21:16] ⇦ Quits: Grover_c13 (~Courtney@203-59-199-82.dyn.iinet.net.au) (Ping timeout: 186 seconds)
L261[07:21:35] <barteks2x> I thought you are talking about custom dimension without client mod
L262[07:21:54] <barteks2x> " do custom dimension need to be registered on the client side? or is there something I need to do for them to work?" that was the initial question
L263[07:22:20] <masa> well I'd prefer not to need the mod on the client, but it doesn't really matter that much I guess
L264[07:22:46] <barteks2x> this is the kind of stuff sponge does so it's not possible with forge to not have client mod: https://github.com/SpongePowered/SpongeCommon/blob/a6c16aa0b4a8187dae915d209497935950740882/src/main/java/org/spongepowered/common/mixin/core/server/MixinPlayerList.java#L643-L650
L265[07:22:59] <barteks2x> if you don't want client mod, why not just make it a plugin?
L266[07:24:20] <masa> meh
L267[07:24:59] <barteks2x> so not possible with forge, unl;ess someone writes PR to make it possible
L268[07:25:24] <barteks2x> with forge you need client mod
L269[07:26:08] ⇦ Quits: Inusua1Z_ (~InusualZ@adsl-72-50-85-56.prtc.net) (Ping timeout: 206 seconds)
L270[07:28:42] <masa> yeah I'll just have to live with it
L271[07:29:10] <masa> what would be the best event to send the dimension info for registration on the client?
L272[07:30:13] <barteks2x> what... why do you want send information about dimensions to client?
L273[07:30:51] <barteks2x> oh, somethig like what mystcraft does?
L274[07:31:14] <masa> well I mean, how else am I going to register the dimensions on the client when they join the server?
L275[07:31:45] <barteks2x> then client would need a mod. The mod would generally register all dimension it adds when it loads
L276[07:31:52] <masa> the point of this mod is that you can add custom dimensions to the server via a json config and then just throw the DIM directories in place
L277[07:32:03] <barteks2x> Unless you dynamically add dimensions like mystcraft
L278[07:32:17] <masa> this is dynamic from the client's point of view yes
L279[07:33:23] ⇦ Quits: Subaraki (~Artix@mf763-h01-176-150-102-154.dsl.sta.abo.bbox.fr) (Ping timeout: 206 seconds)
L280[07:33:54] <untamemadman> I have an issue with my Forge server, it keeps crashing on boot. My crash log is here: http://paste.ubuntu.com/23546129/
L281[07:34:38] <barteks2x> untamemadman, did it start crashing after adding specific mods?
L282[07:35:12] <barteks2x> about these dimensions, not sure then I don't know how these mods do that
L283[07:35:21] <untamemadman> No, it started crashing after a restart, nothing had been changed
L284[07:35:22] ⇦ Quits: Gaz (~Gaz492@217.ip-193-70-0.eu) (Quit: Fucking Mice and ethernet cables)
L285[07:36:05] <masa> does it crash every time now?
L286[07:36:20] <untamemadman> Yes, it just crashes on boot
L287[07:36:42] <barteks2x> did you stop the server with stop command or differently?
L288[07:36:58] <untamemadman> I use MultiCraft for automatic restartes
L289[07:38:09] <untamemadman> It seems the server loads then seconds later it crashes (not when player joins)
L290[07:40:24] ⇨ Joins: AforAnonymous (bitch2k@dyn-051-159.vix2.mmc.at)
L291[07:40:31] <barteks2x> it seems like it crashes when updating entities
L292[07:41:29] <untamemadman> yeah, but I have no idea how to solve this. I have tried using MCEdit to remove entities but it still has the same crash
L293[07:42:34] <barteks2x> correction, it's time entities
L294[07:42:37] <barteks2x> *tile
L295[07:43:24] <untamemadman> Can you see where the tile entity is?
L296[07:44:12] <barteks2x> no because it doesn't crash directly. Something causes tile entity to be removed while they are bging ticked which crashes when server tries to tick the next one. At leats that's the only explanation I cam e up with
L297[07:44:35] <barteks2x> but if it happens with no players around, it's either spawn area or something that is chunkloaders
L298[07:44:41] <barteks2x> *chunkloaded
L299[07:44:51] ⇦ Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a) (Quit: Leaving.)
L300[07:46:36] <barteks2x> lines of code don't match up with what I have but that's the only place that uses iterator
L301[07:47:30] <barteks2x> does it show some error before the crash?
L302[07:48:07] <untamemadman> I don't think so but I'll upload my full log and paste it incase I missed something
L303[07:49:41] <untamemadman> https://gist.githubusercontent.com/untamemadman/18cb48ed60d02151c32cd4430ef045fe/raw/5e1cb920900d3f0efd7e1758223ba1ac2f71eee2/fml-server-latest.log
L304[07:51:29] ⇦ Quits: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de) (Remote host closed the connection)
L305[07:53:40] <barteks2x> that log doesn't contain the crash at all
L306[07:54:00] <barteks2x> the server just... stops
L307[07:54:28] <untamemadman> Yeah, its really weird
L308[07:57:39] *** PaleoCrafter is now known as PaleOff
L309[07:58:26] <barteks2x> based on that log it looks like normal shutdown, how did you get the crash log then?
L310[07:59:33] <untamemadman> Because the crash log generates cus the server clearly crashes
L311[07:59:39] <untamemadman> idek
L312[07:59:48] <barteks2x> it's server log right? "[13:00:07] [main/INFO] [LaunchWrapper/]: Calling tweak class optifine.OptiFineForgeTweaker"
L313[07:59:59] <barteks2x> I don't think optifine works on server
L314[08:00:56] <untamemadman> Well the server has been fine for over a month before this crash
L315[08:01:36] <barteks2x> no idea how it works with optifine, but I've never even tried to run it on server
L316[08:02:06] <untamemadman> It might not do anything. It might check side and not run any other code. idk
L317[08:02:33] <barteks2x> did you try removing it? (and backup the world obviously)
L318[08:03:36] ⇦ Quits: VikeStep (~VikeStep@101.184.229.226) (Read error: Connection reset by peer)
L319[08:03:55] <untamemadman> I will remove it and see
L320[08:06:07] *** amadornes[OFF] is now known as amadornes
L321[08:08:11] <untamemadman> It still crashed. I don't think optifine makes a difference, unless its some performance stuff
L322[08:13:49] <barteks2x> as I said, the fml-server-latest.log fiel didn't contain the crash
L323[08:14:00] <barteks2x> so no idea how you got the first log
L324[08:20:57] ⇦ Quits: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp) ()
L325[08:23:32] ⇨ Joins: edr (~edr@d-65-175-180-73.cpe.metrocast.net)
L326[08:30:46] <untamemadman> http://paste.ubuntu.com/23548735/ This is what I got in MultiCraft when it just crashed (sorry its formatted weirdly)
L327[08:36:08] ⇦ Parts: Cast0077 (~Cast0077@24-181-179-41.dhcp.nwtn.ct.charter.com) ())
L328[08:36:27] ⇨ Joins: IceDragon (~ThatGuy@184.170.49.114)
L329[08:37:12] <barteks2x> it's all one line...
L330[08:37:19] <barteks2x> how am I supposed to read it?
L331[08:39:18] <AshIndigo> You don't try?
L332[08:45:17] *** Vigaro|AFK is now known as Vigaro
L333[08:47:52] <masa> yay it works now \o/
L334[08:48:01] <untamemadman> Okay i have reformatted ithttp://paste.ubuntu.com/23548807/
L335[08:48:12] <untamemadman> Okay i have reformatted it* http://paste.ubuntu.com/23548807/
L336[08:48:39] <masa> I stole some code from RFToolsDimensions, because apparently it needs to use something more complex than the SimpleNetworkWrapper to send data that early on(?)
L337[08:49:44] <barteks2x> that's essentially the same thing just without the bug verbose crash report
L338[08:50:31] ⇨ Joins: Grover_c13 (~Courtney@203-59-199-82.dyn.iinet.net.au)
L339[08:51:28] <untamemadman> Thats what came up in the MultiCraft log, as it wasn't in the fml-server-latest.log
L340[08:51:35] <Grover_c13> block positions
L341[08:51:42] <Grover_c13> should be based off the corner right
L342[08:51:47] <Grover_c13> not the center
L343[08:52:43] <Grover_c13> so that x y z and ints
L344[08:54:11] <Grover_c13> http://imgur.com/a/eFToe
L345[08:54:19] <Grover_c13> can not work out these gaps
L346[08:54:24] <Grover_c13> all the block pos are increments of 1
L347[08:54:26] <Grover_c13> :|
L348[08:55:57] <tterrag|ZZZzzz> Grover_c13, show code
L349[08:56:06] *** tterrag|ZZZzzz is now known as tterrag|laptop
L350[08:57:08] <Grover_c13> its kind of split over 3 places
L351[08:57:13] <Grover_c13> this is directly rendering blocks
L352[08:57:19] <Grover_c13> ill pastebin
L353[08:57:36] <tterrag|laptop> also, explain your problem a bit clearer
L354[08:58:32] <Grover_c13> im making a sort of space kind of mod
L355[08:58:39] <Grover_c13> and in this mod i have "block" structures
L356[08:58:44] <Grover_c13> that are yeah kind of like chunks
L357[08:58:52] <Grover_c13> that are rendered so they can rotate and stuff
L358[08:59:02] <Grover_c13> kind of like my own entity system while in space
L359[08:59:10] <Grover_c13> so im rendering blocks using http://pastebin.com/rHSr2HKx
L360[08:59:41] <Grover_c13> where currently the hashmap of blocks is a 8 x 8 x 8 stone cube
L361[08:59:45] <tterrag|laptop> what are px and x?
L362[08:59:55] <Grover_c13> player x and "space" x
L363[08:59:58] <Grover_c13> space x is static right now
L364[09:00:00] <Grover_c13> to 10
L365[09:00:53] <tterrag|laptop> I wouldn't bother passing the proper pos into the model renderer
L366[09:01:06] *** Keridos|away is now known as Keridos
L367[09:01:13] <tterrag|laptop> I need a bit more context though
L368[09:01:26] <Grover_c13> actually think i found the issue
L369[09:01:27] <Grover_c13> lx:-15.207579532770254 ly:-3.0lz:-6.737683375145059
L370[09:01:31] <Grover_c13> need the be round numbers right
L371[09:01:43] <Grover_c13> i imagine its either flooring or ceiling them somewhere
L372[09:01:52] <Grover_c13> down the track
L373[09:02:15] <Grover_c13> oh wait no sorry derp
L374[09:02:19] <Grover_c13> thats the translate position
L375[09:02:22] <Grover_c13> not the block pos
L376[09:02:59] <Grover_c13> i tried not passing the proper position
L377[09:03:02] <Grover_c13> but yeah no luck
L378[09:03:10] <Grover_c13> prob because im doing this stuff after world render
L379[09:04:00] <tterrag|laptop> you're doing a lot of unnecessary matrix manipulation
L380[09:04:10] <tterrag|laptop> px and x never change in the loop, so extract that translation outside
L381[09:04:46] <tterrag|laptop> but again, I need more context
L382[09:04:47] <Grover_c13> oh yes youre right
L383[09:04:58] <Grover_c13> i should push before the loop and pop afterwards too right
L384[09:07:00] <Grover_c13> alright so
L385[09:07:17] <Grover_c13> im generating a cube of stones for this space structure thing: http://pastebin.com/ZSPUpBHg
L386[09:07:21] <Grover_c13> which is just yeah 3 loops
L387[09:07:25] <Grover_c13> each going up by 1
L388[09:07:32] <Ordinastie> (you should name your loop var entry, not set)
L389[09:07:42] <Grover_c13> yeah :P
L390[09:07:43] <Grover_c13> shh
L391[09:07:45] <Grover_c13> clean up later
L392[09:07:50] ⇨ Joins: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
L393[09:08:01] <Ordinastie> and if you really want to be smart
L394[09:08:09] <Ordinastie> don't use a map
L395[09:08:21] <Ordinastie> or rather, don't expose a map
L396[09:08:31] <Ordinastie> expose IBlockAccess
L397[09:08:53] <tterrag|laptop> I'd agree there
L398[09:08:58] <tterrag|laptop> you are simulating a chunk, so do it properly
L399[09:09:00] <Ordinastie> so you can render the states directly
L400[09:09:12] <tterrag|laptop> added benefit of states interacting with each other
L401[09:09:18] <Ordinastie> and let vanilla handle everything
L402[09:09:19] <tterrag|laptop> i.e. connected textures, connected models
L403[09:09:23] <Grover_c13> hmm
L404[09:09:30] <Ordinastie> TEs eventually
L405[09:09:44] <Grover_c13> so currently my space structure is implementing the IBlockAccess interface
L406[09:09:51] ⇨ Joins: Subaraki (~Artix@mf763-h01-176-150-102-154.dsl.sta.abo.bbox.fr)
L407[09:09:53] <Grover_c13> and im feeding it back to the Block Model Render
L408[09:10:33] <tterrag|laptop> have a look here https://github.com/Chisel-Team/Chisel/blob/1.10/dev/src/main/java/team/chisel/client/gui/GuiHitechChisel.java#L123-L175
L409[09:10:35] <Ordinastie> ah "this"
L410[09:11:12] <Ordinastie> looks like he already does it
L411[09:12:10] ⇦ Quits: Naiten (Naiten@77.35.173.0) (Read error: Connection reset by peer)
L412[09:12:10] <Grover_c13> yeah needed to since these things can exist in multiple worlds at the same time
L413[09:12:10] <Grover_c13> well they are going to <_<
L414[09:12:10] <Grover_c13> eventually
L415[09:12:10] <tterrag|laptop> Grover_c13, you're going too low-level for rendering. don't do renderModelSmooth just call BRD.renderBlock
L416[09:12:14] ⇨ Joins: Seppon (~Noppes@ip56530f2e.direct-adsl.nl)
L417[09:12:15] <tterrag|laptop> renderModelSmooth ignores world context
L418[09:12:15] <Grover_c13> i was doing that but just could not get it to work
L419[09:12:22] ⇨ Joins: sinkillerj (~sinkiller@nc-67-232-15-221.dhcp.embarqhsd.net)
L420[09:12:24] ⇨ Joins: SeargeDP (~Searge@c83-250-150-134.bredband.comhem.se)
L421[09:12:26] <tterrag|laptop> https://github.com/Chisel-Team/Chisel/blob/1.10/dev/src/main/java/team/chisel/client/gui/GuiHitechChisel.java#L377-L393
L422[09:12:28] <Grover_c13> might have another try at it tomorrow
L423[09:12:35] <tterrag|laptop> that's all I do
L424[09:12:45] <tterrag|laptop> note that doing that method will offset by the world pos
L425[09:12:52] <Grover_c13> hmm
L426[09:13:08] <tterrag|laptop> I never gltranslate by blockpos
L427[09:13:20] <tterrag|laptop> it's all stored into the VB as absolute positions
L428[09:13:44] ⇨ Joins: manmaed (~Ender@176.24.62.116)
L429[09:13:55] ⇨ Joins: Lunatrius` (~Lunatrius@77.38.21.26)
L430[09:16:03] <Grover_c13> ty tterrag
L431[09:16:10] <Grover_c13> have bookmarked and will mess around with tomorrow
L432[09:16:24] <Grover_c13> also just out of curiosity do you know what the getStrongPower is?
L433[09:16:36] <Ordinastie> it's for redstone current
L434[09:16:39] <Grover_c13> ah
L435[09:16:55] ⇨ Joins: Upthorn (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L436[09:17:07] <tterrag|laptop> proof my stuff works :D https://gfycat.com/DownrightAnyDachshund
L437[09:17:13] <tterrag|laptop> yeah, for redstone, I just ignore it
L438[09:17:58] ⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Ping timeout: 384 seconds)
L439[09:17:58] ⇦ Quits: Texelsaur (~jaquadro@c-71-192-29-96.hsd1.ma.comcast.net) (Ping timeout: 384 seconds)
L440[09:17:58] ⇦ Quits: Actuarius (~Actuarius@195.91.246.187) (Ping timeout: 384 seconds)
L441[09:17:58] ⇦ Quits: Lunatrius (~Lunatrius@77.38.21.26) (Ping timeout: 384 seconds)
L442[09:17:58] ⇦ Quits: Searge (~Searge@c83-250-150-134.bredband.comhem.se) (Ping timeout: 384 seconds)
L443[09:17:58] *** Lunatrius` is now known as Lunatrius
L444[09:18:04] <Grover_c13> return 0xF000F0;
L445[09:18:10] <Grover_c13> and thats why my things are so dim
L446[09:18:16] <Grover_c13> just thought it was like 1-15
L447[09:18:23] <Grover_c13> makes much more sense its an RGB colour
L448[09:18:23] ⇨ Joins: Actuarius (~Actuarius@195.91.246.187)
L449[09:18:23] MineBot sets mode: +v on Actuarius
L450[09:18:39] <Grover_c13> anyway ty again
L451[09:18:39] <Grover_c13> night
L452[09:19:42] <tterrag|laptop> yeah no block light is packed
L453[09:19:45] *** TTFT|Away is now known as TTFTCUTS
L454[09:20:08] <tterrag|laptop> night
L455[09:27:04] <AshIndigo> Night
L456[09:28:09] ⇦ Quits: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com) (Quit: Poof)
L457[09:35:52] *** Vigaro is now known as Vigaro|AFK
L458[09:39:36] ⇦ Quits: blood|wrk (~owned@STATIC228.iona.edu) ()
L459[09:46:52] ⇦ Quits: samschaap (~samschaap@5469bf1f.cm-12-2c.dynamic.ziggo.nl) (Ping timeout: 186 seconds)
L460[09:49:56] ⇨ Joins: RichardG_ (~richardg8@201.37.255.130)
L461[09:49:56] MineBot sets mode: +v on RichardG_
L462[09:52:06] ⇦ Quits: RichardG (~richardg8@201.37.255.130) (Ping timeout: 206 seconds)
L463[09:52:29] ⇦ Quits: Jezza (~Jezza@bps-gw.hrz.tu-chemnitz.de) (Remote host closed the connection)
L464[09:53:45] ⇨ Joins: samschaap (~samschaap@5469BF1F.cm-12-2c.dynamic.ziggo.nl)
L465[09:54:35] *** RichardG_ is now known as RichardG
L466[09:55:21] ⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L467[09:56:43] *** PaleOff is now known as PaleoCrafter
L468[09:57:20] ⇨ Joins: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl)
L469[10:06:10] ⇦ Quits: Zed (~Zed@21.243.7.51.dyn.plus.net) (Quit: Textual IRC Client: www.textualapp.com)
L470[10:06:20] ⇦ Quits: AshIndigo (~AshIndigo@188.29.165.169.threembb.co.uk) (Ping timeout: 198 seconds)
L471[10:08:05] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L472[10:09:57] *** PaleoCrafter is now known as PaleOff
L473[10:10:44] ⇨ Joins: Vazkii (~Vazkii@144.134.37.188.rev.vodafone.pt)
L474[10:22:36] ⇦ Quits: Grover_c13 (~Courtney@203-59-199-82.dyn.iinet.net.au) (Ping timeout: 186 seconds)
L475[10:26:35] <Keridos> hm, if i want glass panes rendering with a new texture and a new blockstate, could I extend the vanilla json?
L476[10:33:51] <tterrag|laptop> yep
L477[10:33:56] <tterrag|laptop> wait, new blockstate?
L478[10:33:58] ⇨ Joins: Jezza (~Jezza@92.206.4.86)
L479[10:34:35] <untamemadman> Does anyone know how to find an erroring tile entity? The server crashes on boot.
L480[10:36:06] ⇨ Joins: TechnicianLP (~Technicia@p4FE1C24B.dip0.t-ipconnect.de)
L481[10:45:23] ⇦ Quits: Emris (~Miranda@195.234.58.25) (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org)
L482[10:47:15] <windy> untamemadman: server log?
L483[10:50:16] <untamemadman> All the latest server logs are here: http://prankcraft.ga/Crash/
L484[10:53:05] <windy> untamemadman: that looks like a programming error, not a corrupt entity or something like that
L485[10:53:29] <Keridos> tterrag|laptop: we have a fence in omt, with different tiers, since it is owned is has a (non ticking) TE associated to it
L486[10:53:43] <Keridos> the tier just changes hardness, resistance and the texture
L487[10:53:49] <untamemadman> Does it say what mod is responsible?
L488[10:54:33] <windy> no but it's probably a mod that modifies the function World.func_72939_s which is the obfuscated name of updateEntities
L489[10:56:07] <windy> untamemadman: just start removing mods one by one until the error goes away
L490[10:56:56] <barteks2x> I looked at the error before and the only thing that used iterator was tile entity ticking
L491[10:57:09] <barteks2x> didn't think of mods modifying it
L492[10:58:38] <tterrag|laptop> Keridos, well, blockstates are separate from models for this reason
L493[10:58:43] <tterrag|laptop> you can still extend the vanilla model fine
L494[10:58:54] <tterrag|laptop> your blockstate might be complex though
L495[10:58:55] <untamemadman> Thats not the most ideal solution, I'll have to go through a max of 200 mods
L496[10:59:52] <tterrag|laptop> untamemadman, binary search
L497[10:59:53] <barteks2x> removing by half each time may also work, but not always
L498[10:59:59] <tterrag|laptop> is the crash repeatable, or random?
L499[11:00:18] <untamemadman> It happens every time I start the server
L500[11:00:23] <tterrag|laptop> ok, then that's easy
L501[11:00:39] <tterrag|laptop> remove half of mods, start. if it crashes, repeat. if it doesn't crash, remove other half, repeat.
L502[11:01:20] <tterrag|laptop> done in log(n) steps :D
L503[11:01:33] <barteks2x> in most reasonable cases no more than 10
L504[11:01:42] <untamemadman> I guess walking dead will have to wait then
L505[11:01:52] <windy> barteks2x: it could be a mod modifying the tile entity list in a thread outside the world thread as the world is updating the list
L506[11:02:33] <barteks2x> that would be a very obviously broken mod
L507[11:03:09] <windy> Ideally MC would be more careful about this like keep a concurrent collection or cache the list into a local var but this isn't the case
L508[11:03:33] <Keridos> tterrag|laptop: i might be better off just recreating the vanilla json but with the forge json way?
L509[11:03:49] <tterrag|laptop> *shrug*
L510[11:03:56] <tterrag|laptop> I haven't done much with blockstates
L511[11:03:59] <Keridos> e.g. just make it render the parts when they are present
L512[11:04:11] <barteks2x> but why would mc need to be careful about it? MC doesn't do multithreading even between worlds
L513[11:04:30] <tterrag|laptop> windy, it's easy to mix threads if a mod doesn't realize that packets are handled on a different thread
L514[11:04:36] <tterrag|laptop> I'd guess a mod is doing that
L515[11:04:41] <tterrag|laptop> it's a very common bug
L516[11:04:43] <Keridos> and then change the texture based on the other state
L517[11:04:48] <barteks2x> he said it happens withot any playyer on server
L518[11:04:55] <barteks2x> so it's not packet handling
L519[11:05:01] <windy> barteks2x: well yeah that's true, in an ideal world. tterrag|laptop yeah I'd imagine so
L520[11:05:35] <tterrag|laptop> CMEs can occur without threads
L521[11:05:43] <tterrag|laptop> !gm func_72939_s
L522[11:05:50] <windy> tterrag|laptop: not really in this particular case
L523[11:05:52] <barteks2x> by simply removig tile entity from the list while ticking them
L524[11:06:00] <tterrag|laptop> ^
L525[11:06:00] <barteks2x> without using iterator.remove
L526[11:06:03] <tterrag|laptop> if a TE deletes itself
L527[11:06:05] <windy> it's erroring on Iterator.next()
L528[11:06:24] <windy> which means the collection was modified since the last next() (most likely)
L529[11:06:32] <tterrag|laptop> right
L530[11:06:37] <tterrag|laptop> so...a TE deleted itself
L531[11:06:39] <tterrag|laptop> during onUpdate
L532[11:06:41] <barteks2x> yes, and it could be done by mod removign it's own tile entity
L533[11:07:03] <barteks2x> which was what I originally though was the fault
L534[11:07:09] <Ordinastie> but it has to manually remove itself from the list
L535[11:07:19] <Ordinastie> a TE can destroy its block fine
L536[11:07:40] <untamemadman> Thanks for your help guys, I'll go through removing mod after mod until it works and work from there
L537[11:07:55] <windy> yeah that sounds most likely tterrag|laptop
L538[11:07:59] <Ordinastie> during onUpdate loop, another list takes over for regular insertion deletion
L539[11:08:11] <Ordinastie> iirc
L540[11:08:50] <barteks2x> for TEs it seems to be isInvalid that makes MC remove the TE
L541[11:09:06] *** PaleOff is now known as PaleoCrafter
L542[11:09:08] <windy> Ordinastie: the tile entity list is iterated over and calls the update method for each one. if the TE were to remove itself from the collection within that method the next next() call would fail
L543[11:09:22] <Ordinastie> I know
L544[11:09:25] <barteks2x> it's more likelyy something is adding TE
L545[11:09:27] <barteks2x> than removing it
L546[11:09:48] <barteks2x> if that could aso cause that
L547[11:09:50] <Ordinastie> but simply placing or detroying blocks with TE don't alter the list
L548[11:10:55] <untamemadman> Would it be possible to make a mod that prints a list of all tile entities active on each tick and print it to console/file?
L549[11:16:09] <tterrag|laptop> sure, but that would be a lot of logging
L550[11:16:13] <barteks2x> probably possible, but it would also probably be faster to just remove mods
L551[11:17:36] <barteks2x> I've done things that resulted in more spam than that to find bugs before
L552[11:23:20] ⇨ Joins: karjah (~karjah@h130.220.88.75.dynamic.ip.windstream.net)
L553[11:23:52] *** diesieben|away is now known as diesieben07
L554[11:27:24] <raoulvdberge> !gm func_73863_a
L555[11:27:38] <raoulvdberge> !gm func_73863_a
L556[11:27:49] <raoulvdberge> !gm func_146982_a
L557[11:34:30] <PaleoCrafter> there, mezz, addressed the GIF thing
L558[11:34:30] ⇨ Joins: williewillus (~williewil@nat-128-62-45-181.public.utexas.edu)
L559[11:34:47] <mezz> cool PaleoCrafter
L560[11:35:56] <mezz> PaleoCrafter, I'm confused, forgeLoc and forgeFallbackLoc are both "fml:textures/gui/forge.png"
L561[11:35:58] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L562[11:36:13] ⇨ Joins: AshIndigo_ (~AshIndigo@188.29.165.169.threembb.co.uk)
L563[11:36:16] <PaleoCrafter> the default for forgeLoc is the fallback loc, yes :D
L564[11:36:53] <PaleoCrafter> the image is configurable via splash.properties and the fallback only really is necessary because the animation used to be a gif and that's stuck in old configs that might get carried over
L565[11:37:04] <mezz> ok
L566[11:37:18] <mezz> so when I look at this, with a fresh game, am I looking at a gif or a png?
L567[11:37:22] <PaleoCrafter> PNG
L568[11:37:27] <PaleoCrafter> I completely removed the GIF
L569[11:37:36] <mezz> did it fix the jagged edges?
L570[11:38:23] <mezz> I just want your animation to look nice like it should, we can derp with the render if necessary
L571[11:38:50] <PaleoCrafter> it has nice edges for me, so :D
L572[11:39:26] <mezz> ok I'll try it out
L573[11:39:56] ⇦ Quits: psxlover (psxlover@athedsl-4414923.home.otenet.gr) (Ping timeout: 198 seconds)
L574[11:40:57] ⇨ Joins: hk (~HiddenKn@93.ip-158-69-206.net)
L575[11:40:58] ⇨ Joins: linuxdemon1 (linuxdemon@dev.linuxdemon.xyz)
L576[11:41:03] ⇦ Quits: HiddenKnowledge (~HiddenKn@93.ip-158-69-206.net) (Read error: Connection reset by peer)
L577[11:41:20] ⇨ Joins: McJty (~jorrit@94-225-196-91.access.telenet.be)
L578[11:41:50] ⇦ Quits: chbachman (~chbachman@192.99.145.160) (Network ban)
L579[11:41:51] ⇦ Quits: TehNut (~TehNut@192.99.145.160) (Network ban)
L580[11:42:18] ⇨ Joins: TehNut (~TehNut@2607:5300:100:200::199)
L581[11:43:05] ⇨ Joins: psxlover (psxlover@athedsl-4414923.home.otenet.gr)
L582[11:43:54] ⇦ Quits: linuxdaemon (~linuxdemo@dev.linuxdemon.xyz) (Killed (NickServ (GHOST command used by linuxdemon1!linuxdemon@dev.linuxdemon.xyz)))
L583[11:44:11] *** linuxdemon1 is now known as linuxdaemon
L584[11:44:12] <PaleoCrafter> I'd really like to adjust the animation's placement, not sure where to put it, though
L585[11:44:26] ⇨ Joins: Brokkoli (~Brokkoli@p2E5B1DD8.dip0.t-ipconnect.de)
L586[11:44:46] <mezz> I think it's ok as it is
L587[11:45:28] <mezz> what's a good way for me to test the custom image? are there any example images in the wild?
L588[11:46:46] <PaleoCrafter> not that I know of, you can use any asset in the game though
L589[11:47:02] <mezz> alright
L590[12:04:19] ⇨ Joins: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L591[12:05:05] ⇨ Joins: Gary (~Gary@ns501387.ip-198-27-81.net)
L592[12:05:54] ⇨ Joins: CsokiCraft (~CsokiCraf@87.97.108.206.pool.invitel.hu)
L593[12:06:36] <CsokiCraft> How do I use custom blockstates in my block?
L594[12:06:47] <williewillus> what do you mean by custom blockstates?
L595[12:06:51] <williewillus> you mean add your own properties?
L596[12:07:14] <CsokiCraft> Yes. I need an integer property
L597[12:07:38] <CsokiCraft> I found this: PropertyInteger.create()
L598[12:08:16] <CsokiCraft> And state.withProperty()
L599[12:09:45] <CsokiCraft> But I can't seem to get it working
L600[12:10:20] <williewillus> https://mcforge.readthedocs.io/en/latest/blockstates/states/
L601[12:11:08] <williewillus> and also check out vanilla classes
L602[12:14:02] ⇦ Quits: williewillus (~williewil@nat-128-62-45-181.public.utexas.edu) (Quit: Leaving)
L603[12:14:57] <CsokiCraft> Great read, but I need the property value to be read from a TileEntity
L604[12:15:37] ⇦ Quits: manmaed (~Ender@176.24.62.116) (Ping timeout: 195 seconds)
L605[12:20:03] ⇦ Quits: AshIndigo_ (~AshIndigo@188.29.165.169.threembb.co.uk) (Quit: Bye)
L606[12:21:41] ⇨ Joins: AshIndigo_ (~AshIndigo@79-67-168-211.dynamic.dsl.as9105.com)
L607[12:22:29] <TechnicianLP> my phone right now: The Pin you entered is correct ... but telling you its wrong is way funnier ...
L608[12:23:21] <AshIndigo_> My phone has a corrupted music track on it
L609[12:23:30] <AshIndigo_> I dont know how it came to be
L610[12:23:41] <AshIndigo_> But only my phone plays the corrupted version
L611[12:24:57] <TechnicianLP> i restarted, entered the pin "correctly" now and then it crashed ... gg samsung
L612[12:24:58] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 384 seconds)
L613[12:26:02] <barteks2x> still nothing compared to my text messages from the future. Thew was literally test (after translaing to english): "In the next week" :D
L614[12:26:09] <barteks2x> *text
L615[12:26:18] <Lord_Ralex> i broke the calculator on my phone
L616[12:26:53] ⇨ Joins: Zed (~Zed@21.243.7.51.dyn.plus.net)
L617[12:27:04] <AshIndigo_> All my google apps are also broken
L618[12:28:05] <TechnicianLP> CsokiCraft use GetActualState and query your tileentity there
L619[12:28:49] <CsokiCraft> That's what I'm doing. But when I unload the world and reload again, it all vanishes
L620[12:29:14] <TechnicianLP> naish?
L621[12:29:17] <TechnicianLP> vanish*
L622[12:30:58] <CsokiCraft> Yes. The BlockState doesn't save
L623[12:31:14] <CsokiCraft> Actually, hold on
L624[12:36:42] <CsokiCraft> OK my code is utterly broken :P
L625[12:37:41] <TechnicianLP> does your tileentity save? (and try printing the state you get passed in getactualstate)
L626[12:42:24] ⇨ Joins: Gaz (~Gaz492@wolf.ski)
L627[12:48:20] ⇦ Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) (Ping timeout: 198 seconds)
L628[12:48:21] <CsokiCraft> Can I get the dimension id from an IBlockAccess?
L629[12:48:26] <diesieben07> No.
L630[12:49:12] <diesieben07> you can do some checks (i.e. check for instanceof World and instanceof ChunkCache)
L631[12:49:17] <diesieben07> and go from there
L632[12:49:26] <diesieben07> but that will not cover special cases that other mods might pass in
L633[12:49:40] <CsokiCraft> Great
L634[12:49:49] <diesieben07> why?
L635[12:49:56] <diesieben07> what is your usecase?
L636[12:51:53] <CsokiCraft> I need to construct a Vector4d position in getActualState()
L637[12:52:55] <diesieben07> why? :D
L638[12:53:02] <diesieben07> what uses the dimID in that?
L639[12:53:45] <CsokiCraft> Because it needs to be unique. It needs to know the difference between 0,0,0 in the Nether and Overworld etc.
L640[12:54:03] <McJty> For what do you need that? What problem are you trying to solve exactly?
L641[12:54:13] <diesieben07> where do you access that information?
L642[12:55:11] <barteks2x> would these glitches be acceptable for terrain generation? http://i.imgur.com/2Fuee4o.png (it doesn't happen frequently but it happens)
L643[12:55:31] <diesieben07> as in: where do you call your getActualState and use the DimID property of the resulting state?
L644[12:55:35] <McJty> barteks2x, what is the glitch?
L645[12:55:41] <barteks2x> look at the dirt
L646[12:56:18] <AshIndigo_> barteks2x: thats a feature!
L647[12:56:25] <CsokiCraft> My Block needs to get an integer from a HashMap, and then construct a TileEntity in createTileEntity() using that int.
L648[12:56:30] * McJty doesn't see anything special really
L649[12:56:46] <barteks2x> the repaced dtone with dirt with cutoff at constant Y
L650[12:56:49] <barteks2x> *stone
L651[12:56:55] <diesieben07> CsokiCraft, waaaat that sounds like a terrible terrible idea.
L652[12:57:17] <barteks2x> I redecigned the way dirt generation works and this is a bit hard to fix side effect
L653[12:58:38] <diesieben07> CsokiCraft, i think you should really explain what you are doing, because I think you are going about it entirely the wrong way.
L654[12:58:51] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L655[12:58:54] <barteks2x> it can also potentially do some weird things in mesa biomes but I didn't test it there yet
L656[12:58:59] <CsokiCraft> So I have a Block
L657[12:59:31] <CsokiCraft> And this block is capable of housing several TE classes
L658[12:59:43] <CsokiCraft> (or it should be atleast)
L659[12:59:57] <diesieben07> Ok
L660[13:00:01] <diesieben07> so far so good
L661[13:00:06] <CsokiCraft> All the usable classes are stored in a Collection
L662[13:00:15] <barteks2x> I'm almost sure some of my interpolation code is wrong, but I'm not fixing that unless necessary
L663[13:00:16] <diesieben07> uhhh
L664[13:00:18] <diesieben07> what? why?
L665[13:00:36] ⇨ Joins: Gil (uid147942@id-147942.brockwell.irccloud.com)
L666[13:01:03] <CsokiCraft> Now: I need to somehow be able to choose the appropriate Class to instantiate in createTileEntity()
L667[13:01:13] <diesieben07> what determines that class?
L668[13:01:30] <CsokiCraft> That's my problem
L669[13:01:45] <CsokiCraft> My ItemBlock should mark it somehow
L670[13:01:58] <diesieben07> somehow? don't explain how you intend to code it
L671[13:02:04] <diesieben07> explain how it should behave to the end user
L672[13:02:05] <CsokiCraft> And then this info needs t persist as long as the Block exists
L673[13:02:07] <diesieben07> then i can tell you how to code it
L674[13:03:51] <CsokiCraft> ItemBlock->right click->sets the Block->sets the TileEntity based on the ItemBlock's damage value->after saving and reloading the TE should be the same class
L675[13:03:51] ⇦ Quits: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl) (Quit: Leaving)
L676[13:04:09] <diesieben07> the last step is handled by MC automatically
L677[13:04:17] <diesieben07> provided you registered all your classes
L678[13:04:18] <CsokiCraft> But it isn't
L679[13:04:19] <Ordinastie> did you regsiter your TE ?
L680[13:04:23] <CsokiCraft> Yes
L681[13:04:28] <Ordinastie> with different names ?
L682[13:04:35] <diesieben07> you dont need ANY kind of hashmap or actualstate thingy here
L683[13:04:35] <CsokiCraft> Obviously
L684[13:04:44] <diesieben07> all you do is set the blcok state based on the metadata
L685[13:04:53] <diesieben07> there is some method in Block for this
L686[13:04:55] <CsokiCraft> But metadata can only be 16
L687[13:05:01] <diesieben07> getStateForPlacement or something
L688[13:05:10] <CsokiCraft> I need >30 TE classes
L689[13:05:15] <diesieben07> you can't.
L690[13:05:16] <Ordinastie> wtf ?
L691[13:05:22] <diesieben07> you can have 16 max
L692[13:05:32] <diesieben07> you can have additinoal data in those TEs based on the Imteblock
L693[13:05:48] <diesieben07> but the actual class cannot be based on anthing but the metadata
L694[13:05:49] <Ordinastie> if you think you need 30 different TE classes, then you're doing it wrong
L695[13:05:53] <diesieben07> also that
L696[13:06:19] <McJty> yes, sounds like you just need a single class and then >30 implementations of some kind of custom interface which can differ based on whatever you want
L697[13:06:37] <McJty> And then those 30 implementations can be selected based on a simple integer or whatever in your TE
L698[13:06:46] <CsokiCraft> Hmm. Could work
L699[13:06:50] <McJty> Or better even, use a sensible name/id
L700[13:10:14] *** Mine|dreamland is now known as minecreatr
L701[13:11:30] <Keridos> how can I select a version of a speicifc mod as hard dependency for my mods?
L702[13:12:02] <windy> is it possible to tell the client to open the player inventory? I dont see a guiId for player inventories
L703[13:12:11] <diesieben07> No its not
L704[13:12:22] <diesieben07> the server has no idea if you are looking at the inventory or not
L705[13:12:40] <diesieben07> as far as the server is concenred, you are *always* looking at your inventory (unless you are looking at a chest or something)
L706[13:12:47] <diesieben07> you need a custom packet
L707[13:12:53] ⇦ Quits: CsokiCraft (~CsokiCraf@87.97.108.206.pool.invitel.hu) (Quit: Leaving)
L708[13:13:00] ⇦ Quits: RichardG (~richardg8@201.37.255.130) (Quit: You saw nothing.)
L709[13:13:03] <windy> well no that's not true, there is an inbound packet from the client when a player opens an inventory
L710[13:13:24] <diesieben07> which packet do you mean?
L711[13:13:25] <Ordinastie> he just told you
L712[13:13:46] <windy> no he said that it's impossible to know if a player's inventory is opened which is not true
L713[13:14:03] <diesieben07> > which packet do you mean?
L714[13:14:20] <McJty> windy, but as far as I know there is no packet that says when the player closes that inventory
L715[13:14:28] <McJty> So you have no information with that I think
L716[13:14:53] <windy> diesieben07: 0x03 client status has a flag for if the client has an inventory opened
L717[13:14:53] ⇨ Joins: InusualZ (~InusualZ@adsl-72-50-87-254.prtc.net)
L718[13:15:32] <Ordinastie> the only packet sent is the open inventory achievement
L719[13:15:43] <windy> no that's just not correct I literally just tested it
L720[13:16:20] <diesieben07> well yeah the cleint tells the server that the player pressed the open inventory key
L721[13:16:23] <diesieben07> but that is different
L722[13:16:33] <windy> anyways, it's not even what I was getting at originally. I can open any inventory window from the server except player
L723[13:16:34] <diesieben07> EntityPlayerMP::openContainer will always point to your inventory
L724[13:16:40] <diesieben07> yes
L725[13:16:46] <diesieben07> because of what i just explained.
L726[13:17:31] <windy> I'm pretty sure it can be an instance of any type of container
L727[13:17:40] <diesieben07> yes of course
L728[13:17:45] <diesieben07> but it will never be null
L729[13:17:52] <diesieben07> if you are not looking at some chest, it will point to your inventory
L730[13:18:06] <diesieben07> which to the server means "looking at their inventory"
L731[13:18:10] <windy> yes I know this. did you even read my question? :P
L732[13:18:19] <diesieben07> yes.
L733[13:18:23] <diesieben07> and i told you: you need a custom pacekt.
L734[13:18:37] <windy> so you can open any container gui except player
L735[13:18:58] <diesieben07> yes.
L736[13:20:22] <windy> ok. i think we just misunderstood eachother diesieben07. I know there's no flag on the vanilla server to see if a player is viewing an inventory. I was just saying that it's possible to determine.
L737[13:20:40] <diesieben07> kinda sorta maybe :P
L738[13:20:49] ⇦ Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) (Read error: Connection reset by peer)
L739[13:20:55] <windy> well yeah it is. just client status and then get the openContainer
L740[13:21:41] <TechnicianLP> windy: what do you want: open the inventory or check wheter it is open?
L741[13:23:09] ⇦ Quits: McJty (~jorrit@94-225-196-91.access.telenet.be) (Quit: Leaving)
L742[13:23:14] <windy> TechnicianLP: I'm fixing a Sponge bug with inventory events. They are cancellable, but if you cancel a close event for a player inventory it wont work bc it will try to open the original gui which cant be done on a player inventory from the server apparantly
L743[13:23:29] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L744[13:23:37] <windy> every other gui works fine though
L745[13:23:46] <windy> just gonna have to add a special case
L746[13:31:12] <Gil> I think I'm just going to write a simple Curse package manager
L747[13:34:26] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping timeout: 206 seconds)
L748[13:38:17] *** tterrag|laptop is now known as tterrag
L749[13:45:30] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L750[13:50:29] <mezz> diesieben07, are you around?
L751[13:50:58] * diesieben07 salutes
L752[13:51:30] <mezz> wondering if there is a better name for "register" since the biome registry and biome dictionary both use that convention
L753[13:51:57] <diesieben07> addTypes maybe?
L754[13:52:00] <mezz> hmm
L755[13:52:17] <mezz> yeah actually
L756[13:52:47] <mezz> it would require renaming a bunch of things and updating the docs to use that, are you up for doing that?
L757[13:53:03] <mezz> I think it would be nice in the end
L758[13:53:25] <diesieben07> a rename refactor should be easy
L759[13:53:32] <diesieben07> docs... i'll see what there is
L760[13:54:00] <mezz> the thing that made me consider it is this error message: "Cannot register biome types for unregistered biome"
L761[13:54:03] <mezz> heh
L762[13:54:12] <diesieben07> ah
L763[13:54:20] <diesieben07> So basically you want me to adjust the terminology in the whole class?
L764[13:54:29] <mezz> yeah
L765[13:54:33] <Ordinastie> or just rename registerType :p
L766[13:54:33] <diesieben07> ok
L767[13:54:40] <mezz> so "Cannot add biome types for unregistered biome"
L768[13:54:45] <mezz> is much more clear imo
L769[13:55:04] <diesieben07> yeah
L770[13:55:11] <diesieben07> there is also some inconsistency of type vs. tag
L771[13:55:20] <diesieben07> thinking about it, Tag is clearer.
L772[13:55:50] <mezz> #ocean
L773[13:56:16] <diesieben07> ?
L774[13:56:23] <mezz> hash-tag ocean :)
L775[13:56:25] <mezz> I dunno they seem the same to me and changing it doesn't benefit much in terms of clarity
L776[13:56:31] <diesieben07> yeah ok
L777[13:58:05] <diesieben07> ok so... this raises some problems
L778[13:58:15] <diesieben07> i can't just rename isRegistered to hasTypes
L779[13:58:21] <diesieben07> because that's not what it does...
L780[13:58:37] <diesieben07> because you might have registered your biome to have no types
L781[13:58:41] <diesieben07> that still counts as registered
L782[13:59:02] <mezz> does it?
L783[13:59:07] <diesieben07> yep
L784[13:59:13] <mezz> I figure the whole point of the dictionary is types
L785[13:59:16] <diesieben07> if you just do register(biome)
L786[13:59:23] <diesieben07> that registers the BiomeType for it
L787[13:59:26] <diesieben07> but without any types
L788[13:59:38] <diesieben07> it will then not do the guessing thing
L789[14:00:06] <diesieben07> i mean, it does make sense
L790[14:00:07] <mezz> maybe log an error there if there's no ttypes?
L791[14:00:13] <diesieben07> you might want your biome to not have any types
L792[14:00:19] <mezz> but....
L793[14:00:23] <mezz> why
L794[14:00:24] <mezz> lol
L795[14:00:27] <diesieben07> ikr
L796[14:00:34] <mezz> at the very least give it some unique type that nothign else has
L797[14:00:42] <diesieben07> ok so... i'll change that to also check for empty
L798[14:00:45] <mezz> I think registering with no types is pointless
L799[14:00:48] <mezz> ok
L800[14:00:52] <diesieben07> as in empty == unregistered
L801[14:01:18] ⇦ Quits: mallrat208 (~mallrat20@107-145-175-135.res.bhn.net) (Ping timeout: 384 seconds)
L802[14:01:23] <mezz> ok
L803[14:06:16] ⇦ Quits: ollieread (~ollieread@exia.ollieread.com) (Quit: Shit son)
L804[14:09:07] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L805[14:21:19] <barteks2x> can someone explain why this is not allowed: http://pastebin.com/V0gEt7NZ but this is: http://pastebin.com/m666t0Pm ?
L806[14:23:06] <Ordinastie> what does it say ?
L807[14:23:15] <tterrag> I'd guess compiler magic
L808[14:23:19] <barteks2x> "Annotations not allowed here"
L809[14:23:23] <tterrag> oh
L810[14:23:28] <kenzierocks> you can only annotate fields
L811[14:23:29] <tterrag> you can't annotate something that isn't declared
L812[14:23:30] <kenzierocks> classes
L813[14:23:32] <kenzierocks> and methods
L814[14:23:36] <tterrag> (and variables)
L815[14:23:38] <kenzierocks> and a few other things
L816[14:23:39] <barteks2x> it works in the second case
L817[14:23:43] <tterrag> and types, as of j8 :P
L818[14:23:56] <kenzierocks> yea, but the first one isn't a field/var declaration
L819[14:24:00] <tterrag> i.e. public final List<@Nonnull Foo> bar;
L820[14:24:14] <kenzierocks> the second one is on K[] arr -- a variable declaration
L821[14:24:14] <tterrag> (except javax annots aren't marked for types :C)
L822[14:24:33] <tterrag> barteks2x: put the annot on the method or do it the second way
L823[14:24:40] <tterrag> the problem is there's no target for the annotation
L824[14:24:41] <barteks2x> what is the second way?
L825[14:24:47] <barteks2x> oh, right
L826[14:24:48] <tterrag> even if it's a compile-time only annotation, it has to have something to attach to
L827[14:24:49] <barteks2x> nnvm
L828[14:24:59] *** Vigaro|AFK is now known as Vigaro
L829[14:25:12] <barteks2x> it's a constructor btw
L830[14:25:46] <barteks2x> unless this think I just wrote already exists
L831[14:25:48] <barteks2x> somewhere
L832[14:25:59] <tterrag> you can annotate constructors
L833[14:26:05] <tterrag> they are just syntax sugar methods :P
L834[14:26:07] <barteks2x> then I wouldn't need this code at all
L835[14:26:09] <tterrag> welcome to java
L836[14:26:37] <barteks2x> so this is a kind of cache, that works kind of like hash map but in case of hash collisions it just overwrites the old value
L837[14:26:47] <tterrag> how the hell is that useful :D
L838[14:26:54] <barteks2x> for worldgen
L839[14:27:20] <tterrag> can you guarantee hash uniqueness?
L840[14:27:23] <barteks2x> and if the stored key doesn't match when getting value, it gets new one from provided function
L841[14:27:56] <barteks2x> http://pastebin.com/CiwhA06B
L842[14:28:19] <barteks2x> I guess it's too simpel to even ask for library for that...
L843[14:29:00] <barteks2x> it should at least double my worldgen performance
L844[14:30:40] <barteks2x> so I don't need hashes to be unique
L845[14:31:48] <tterrag> why not just a trove map?
L846[14:32:37] <barteks2x> Then almost all the code I have in that class would be in the code that uses it
L847[14:32:50] <barteks2x> because I would have to manually remove old value
L848[14:33:12] <barteks2x> I don't want these old values that I'm overwriting to be there, I want it to be fixed size
L849[14:33:29] ⇨ Joins: KnightMiner (~KnightMin@68.73.225.172)
L850[14:33:37] <barteks2x> it's so simple that there just has to be library for it, I just don't know it
L851[14:33:40] ⇨ Joins: killjoy (~killjoy@cpe-2606-A000-1118-C091-D882-29D5-D7FB-AE47.dyn6.twc.com)
L852[14:35:03] <tterrag> why store something as a double though? I don't get it...
L853[14:35:23] <barteks2x> cacching perlin noise
L854[14:35:28] <tterrag> what is K then?
L855[14:35:35] <barteks2x> Vec3i
L856[14:35:54] <tterrag> why not just computeIfAbsent ?
L857[14:37:27] <barteks2x> and what would that change? I would have that if() somewhere else
L858[14:37:40] <barteks2x> if the value isn't cached I need to get it anyway
L859[14:37:49] <barteks2x> and if it's there, then fine I want it
L860[14:38:24] <barteks2x> it's going to be used as wrapper on top oof perlin noise generator
L861[14:38:34] *** minecreatr is now known as Mine|away
L862[14:39:06] <barteks2x> or on top of my builder or the biome generator if I make object version of it
L863[14:39:20] <barteks2x> (for biome generator it would be hard)
L864[14:41:01] *** Darkhax is now known as Darkhax_AFK
L865[14:45:16] <barteks2x> so my usage of the cache looks like this now: HashCacheDoubles.<Vec3i>create(cacheSize, v->v.getX()+v.getZ()*4+v.getY()*16, v->builder.get(v.getX(), v.getY(), v.getZ()));
L866[14:46:20] <barteks2x> *replace 4 with 5 and 16 with 25
L867[14:47:19] <barteks2x> and if it turns out to me too bad for gc, I will make x/y/z int version of it
L868[14:50:16] <tterrag> why are you multiplying for the packed coord?
L869[14:50:31] <tterrag> also, a blockpos doesn't fit into a int
L870[14:50:40] <tterrag> just use blockpos's own hashcode?
L871[14:52:31] <barteks2x> I want it to reduce to simple lookup array for a single chunk
L872[14:52:50] <barteks2x> and a 16x16x16 "chunk" here is actually 5x3x5 array
L873[14:53:27] <barteks2x> so if I multiply it this way, I can guarantee that when generating a chunk, all values are optimally cached
L874[14:55:50] <mezz> sorry in advance diesieben07
L875[14:57:34] ⇦ Quits: Brokkoli (~Brokkoli@p2E5B1DD8.dip0.t-ipconnect.de) (Ping timeout: 206 seconds)
L876[14:58:48] <diesieben07> lol no worries. you are right
L877[14:59:34] <diesieben07> one thing though, i disagree with you on the parameter docs
L878[14:59:44] <diesieben07> yes they are useless, but that's the policy of javadocs :D
L879[14:59:49] <mezz> @param biome this is a biome lol
L880[15:00:03] <diesieben07> i know it's stupid
L881[15:00:05] <mezz> dunno, I think that's just noise
L882[15:00:06] <KnightMiner> I have to do that all the time in my programming class
L883[15:00:20] <KnightMiner> @param i integer to run function on
L884[15:00:43] <diesieben07> i mean java.util.List::add has @param element element to be inserted
L885[15:00:45] <mezz> look at JEI's API, I'm a fan of javadocs. I'm not a fan of mindless rules like everything needs a comment though...
L886[15:00:56] <diesieben07> javadocs are full of this everywhere
L887[15:00:57] <barteks2x> that's why I don't enforce javadocs
L888[15:01:18] <KnightMiner> When it comes to modding code, I am a lot lazier with my javadocs, like I entirely skip comments on getters that have a @return parameter
L889[15:01:46] <KnightMiner> "Official ones" I end up with "returns x @return x", which is the oddest policy to enforce
L890[15:01:46] ⇨ Joins: Brokkoli (~Brokkoli@p2E5B1FE0.dip0.t-ipconnect.de)
L891[15:02:17] <barteks2x> and now let's see if my worldgen code is any faster
L892[15:02:35] <mezz> java class javadocs = coding exercise to create good habits in 99% of the people who go through the class no matter how bad their judgment is
L893[15:03:31] <mezz> if you add super super redundant info it's just not helpful
L894[15:04:02] <mezz> I will not enforce that you remove them because whatever, but I'll definitely argue it heh
L895[15:04:10] <barteks2x> that doesn't seem faster...
L896[15:04:15] <barteks2x> I'm wondering why
L897[15:05:11] <KnightMiner> Hopefully after next semister javadocs will be less annoying, I hear my next class is the worst as far as coding style enforcement. Even forces code length to be less than 80 columns
L898[15:05:30] <ghz|afk> I'd quit that class XD
L899[15:05:42] <ghz|afk> 80-column restriction is retarded
L900[15:05:44] <KnightMiner> Its so the code prints better I hear
L901[15:05:51] <KnightMiner> Width of the page
L902[15:05:54] <mezz> jeez
L903[15:06:00] <KnightMiner> But yeah, it will be annoying
L904[15:06:03] <ghz|afk> it was so that code was readable in old 80-column terminals
L905[15:06:07] <diesieben07> well the problem is, if you dont list the @params they dont appear in the javadocs..
L906[15:06:09] <ghz|afk> yo ucan easily print 120 columns on paper
L907[15:06:20] <KnightMiner> On the bright side, I think I get to use Eclipse rather than JGrasp! So I can use a linter again
L908[15:06:30] <ghz|afk> the text won't be big, though
L909[15:06:30] <mezz> the real thing you learn in these classes is how to put up with people above you's bullshit so you can be happy at your job
L910[15:06:30] <ghz|afk> XD
L911[15:06:32] <tterrag> diesieben07: I'm with mezz on the @param this is a param
L912[15:06:39] <tterrag> most IDEs fill that basic info in
L913[15:06:55] <diesieben07> where? how?
L914[15:07:00] <diesieben07> i certainly don't see it in IntelliJ
L915[15:07:37] <ghz|afk> ?
L916[15:07:39] <tterrag> I mean, it shows the signature
L917[15:07:43] <ghz|afk> if you do /** opn intellij
L918[15:07:44] <KnightMiner> IIRC, in eclipse if unlisted it adds a generic @param x for any mssing on the javadoc
L919[15:07:47] <ghz|afk> and press enter or tab or whatever
L920[15:07:50] <ghz|afk> it will generate a template
L921[15:07:55] <ghz|afk> including params and return and all
L922[15:07:58] <tterrag> "@param biome This is a biome" tells me nothing more than "Biome biome" in the signature
L923[15:08:12] <diesieben07> yes ghz
L924[15:08:19] <diesieben07> they want me to remove the @params
L925[15:08:51] <ghz|afk> isn't that how javadoc works? "@param <paramname> Descriptive text here"
L926[15:09:06] *** mumfrey is now known as Mumfrey
L927[15:09:16] <Disconsented> Is it safe to assume modded ores extend the vanilla class?
L928[15:09:18] <KnightMiner> Its how it works, but in this case the descriptive text is not entirely useful, its easily inferred
L929[15:09:29] <diesieben07> indeed it is
L930[15:09:37] <KnightMiner> @Disconsented: I found you can assume nothing with mods
L931[15:09:41] <ghz|afk> oh I see
L932[15:09:58] <tterrag> with ANY javadoc it shows at least the param names http://i.imgur.com/9FzuWzE.png
L933[15:10:07] <ghz|afk> so the issue is just that something like "@param event Provides the event info"
L934[15:10:13] <ghz|afk> doesn't add any value
L935[15:10:15] <KnightMiner> I've seen crops that don't extend BlockCrops, so ores extending some other block is possible as well
L936[15:10:16] <ghz|afk> that I agree with
L937[15:10:38] <KnightMiner> Oredictionary might be a decent way to check though, check if one of the names is prefixed with "ore"
L938[15:11:33] <ghz|afk> Disconsented: no, it's not safe
L939[15:11:44] <ghz|afk> in fact, none of my ores extend a vanilla class besides Block
L940[15:12:23] <ghz|afk> or maybe they do, I don't remember
L941[15:12:40] <ghz|afk> nope
L942[15:12:41] <ghz|afk> public class BlockGemstoneOre extends BlockRegistered
L943[15:12:57] <ghz|afk> my gemstone ores don't extend BlockOre
L944[15:12:57] <ghz|afk> ;p
L945[15:14:12] <diesieben07> Ok so i just test it and in my opinion it looks shit if there are no parameter descriptions in the javadoc, especially when you generate the html docs
L946[15:14:30] <Disconsented> Why not ghz|afk? Seems like the logical thing to do for me..
L947[15:15:22] <tterrag> is it not clear from what he said? He has a different hierarchy
L948[15:15:32] <tterrag> BlockRegistered does things for his mod. you can't extend both
L949[15:18:09] ⇦ Quits: Jezza (~Jezza@92.206.4.86) (Quit: Leaving)
L950[15:18:20] ⇦ Quits: KnightMiner (~KnightMin@68.73.225.172) (Ping timeout: 198 seconds)
L951[15:19:07] <ghz|afk> Disconsented: it doesn't add any value to me
L952[15:19:13] <ghz|afk> I'd have to override most of BlockOre either way
L953[15:19:23] ⇨ Joins: Shambling (~Joseph@24-181-186-74.dhcp.nwtn.ct.charter.com)
L954[15:19:27] <ghz|afk> look at it
L955[15:19:45] <ghz|afk> BlockOre implements getItemDropped with vanilla ore checks
L956[15:19:54] <ghz|afk> implements quantityDropped for vanilla ores
L957[15:20:00] <ghz|afk> implements getExpDrop for vanilla ores
L958[15:20:06] <ghz|afk> and damageDropped for vanilla ores
L959[15:20:13] <ghz|afk> so I'd have to override those for mine either way
L960[15:20:22] <ghz|afk> making BlockOre completely meaningless besides having it as a superclass
L961[15:20:45] <ghz|afk> so I didn't see a point to it
L962[15:23:14] <Shambling> are there any memory improvements from 1.11 over 1.10.2?
L963[15:23:25] <Shambling> because honestly, I see no reason to upgrade over the content it adds
L964[15:23:33] <Shambling> ooo llamas :P
L965[15:24:57] <ghz|afk> observer block
L966[15:25:00] <ghz|afk> and a few random things
L967[15:25:03] <ghz|afk> and so far as coding
L968[15:25:08] <ghz|afk> mostly the ItemStack semantics changes
L969[15:25:14] <diesieben07> so mezz why is "the biome to analyze" ok but "the biome" not? :D
L970[15:25:20] <diesieben07> they have the same value
L971[15:25:30] <ghz|afk> (non-nullability, private field for stackSize, final Item field)
L972[15:25:31] <diesieben07> especially if the method only has one Biome arg
L973[15:25:38] <mezz> they're both pointless
L974[15:25:42] <diesieben07> ok :D
L975[15:25:52] <mezz> I may have given up on params halfway through my review
L976[15:25:54] <mezz> heh
L977[15:26:14] <diesieben07> no you just corrected tag->type in one of those
L978[15:26:19] <barteks2x> so time to generate spawn went down from 42 seconds to 39 seconds after adding the cache... 3 seconds saved
L979[15:26:19] <diesieben07> @param biome the biome to tag
L980[15:26:25] <diesieben07> and you said to change that instead of remove
L981[15:26:26] <barteks2x> that's not what I expected
L982[15:26:34] <Shambling> so basically, if there were no code improvements... just another way to split off dead mods again
L983[15:26:46] <diesieben07> also ensureTagged is package-private because ForgeModContainer needs it
L984[15:26:55] <diesieben07> i am not sure why you hate package-private so much :P
L985[15:28:25] *** PaleoCrafter is now known as PaleOff
L986[15:30:22] <TechnicianLP> barteks2x: btw how so you handle ticking of the entities? still one Thread? (for much more stuff)
L987[15:30:49] <diesieben07> oh and also... this is your fault now guys :P http://i.imgur.com/Jf2jTmM.png
L988[15:30:52] <barteks2x> there really isn't more stuff unless you have view distance > 8
L989[15:31:00] <barteks2x> so I don't touch entity ticking
L990[15:31:32] <barteks2x> well, maybe more mobs because there can be more caves
L991[15:31:55] <Shambling> biome biome, type type?
L992[15:32:05] <Shambling> java has a weird stutter
L993[15:32:09] <barteks2x> if you set vertical view distance to 8, there is goign to be almost no difference
L994[15:32:32] ⇦ Quits: mezz (~mezz@24.6.28.151) (Ping timeout: 384 seconds)
L995[15:32:48] <TechnicianLP> think for server
L996[15:34:18] ⇦ Quits: Hgrebnednav_ (~Hgrebnedn@d8D872A6E.access.telenet.be) (Ping timeout: 206 seconds)
L997[15:34:18] <barteks2x> servers frequently run at lower iew distance
L998[15:34:28] <barteks2x> and with view distance being cube, there is going to be even less stuff
L999[15:35:01] <barteks2x> and chunk loaders, if done right, will load much less stuff
L1000[15:35:15] <TechnicianLP> thats a good point ...
L1001[15:35:22] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 384 seconds)
L1002[15:36:18] <TechnicianLP> just a random question: will get performance improvements to vanilla be merged?
L1003[15:36:33] <barteks2x> currently the worst part is the amount of stuff done to get heightmap working... https://github.com/Barteks2x/CubicChunks/blob/MC_1.11/src/main/java/cubicchunks/world/ServerHeightMap.java
L1004[15:36:44] <barteks2x> what performance improvements?
L1005[15:37:19] <TechnicianLP> ArrayList<TileEntity> could be replaced by a more specific (and way faster implementation)
L1006[15:37:25] <TechnicianLP> for example
L1007[15:37:50] <barteks2x> if vanilla changes something, I change it to do the same/similar thing.
L1008[15:37:57] <ghz|afk> barteks2x: he means
L1009[15:38:02] <ghz|afk> if he can make a PR
L1010[15:38:04] <ghz|afk> where he edits vanilla code
L1011[15:38:05] <diesieben07> if you can proof that it's a performance problem and tht your code fixes it, yes.
L1012[15:38:06] <ghz|afk> to be faster
L1013[15:38:19] <ghz|afk> TechnicianLP: keep in mind
L1014[15:38:21] <ghz|afk> each line of patch
L1015[15:38:23] <barteks2x> Then if I don't edit that, it's changed when I update forge
L1016[15:38:26] <diesieben07> if it's just "oh this is faster because *waves hands*" then no
L1017[15:38:34] <barteks2x> if I do touch it, I will update my code
L1018[15:38:36] <ghz|afk> is extra work for the forge team
L1019[15:38:41] <ghz|afk> when new versions of minecraft update
L1020[15:39:10] <ghz|afk> or for barteks2x if you mean PR to cubicchunks instead of forge
L1021[15:39:18] <TechnicianLP> so some heavy benchmarking needed ...
L1022[15:39:27] <TechnicianLP> forge
L1023[15:39:33] * ghz|afk nods
L1024[15:39:35] <ghz|afk> yeah so
L1025[15:39:47] <ghz|afk> depends on how many lines of new patch it implies
L1026[15:39:51] <ghz|afk> and how big the improvement is
L1027[15:40:07] <ghz|afk> if it's a one-line patch and you get 10% extra speed, maybe
L1028[15:40:08] <TechnicianLP> patch probably is one line (and a new class)
L1029[15:40:13] <ghz|afk> if it's a 1000line patch and it adds 1%
L1030[15:40:15] <ghz|afk> then probably not
L1031[15:40:29] <barteks2x> why would you need new class?
L1032[15:40:34] <barteks2x> what would it be?
L1033[15:41:40] <TechnicianLP> a list implementation sorted by chunks - or something in that manner
L1034[15:41:50] <barteks2x> so in total I'm generating 1024 noise values for each 16x16x16 block region and it still isn't fast enough
L1035[15:42:01] ⇨ Joins: gr8pefish (~gr8pefish@24-121-241-166.flagcmtk01.res.dyn.suddenlink.net)
L1036[15:42:19] <barteks2x> what do you mean by "sorted by chunks"?
L1037[15:42:23] <barteks2x> what would that do?
L1038[15:43:08] <ghz|afk> TechnicianLP: aren't TEs already per-chunk?
L1039[15:43:20] <barteks2x> there is also global list
L1040[15:43:21] <diesieben07> they are
L1041[15:43:22] <barteks2x> I think
L1042[15:43:24] <diesieben07> there is both
L1043[15:43:29] <diesieben07> a Map<Pos, TE> in chunks
L1044[15:43:31] <diesieben07> and a global list
L1045[15:43:56] <TechnicianLP> did they change something there? didnt look at the code in a long time (just thought of it being bad some time ago)
L1046[15:44:05] <diesieben07> i don't think so
L1047[15:44:12] <diesieben07> this has been like this for a wile
L1048[15:44:13] <barteks2x> depends on what is "long timer ago"
L1049[15:44:14] <diesieben07> while
L1050[15:45:08] <TechnicianLP> 1.7.10 had it
L1051[15:45:18] <TechnicianLP> if talking ~10k loaded Tileentities (which is common on bigger servers) loading/unloading of tiles takes a while due to the global list resizing
L1052[15:45:43] <barteks2x> and when they are loaded/unloaded...?
L1053[15:45:58] <barteks2x> when loading and unloading chunks I guess
L1054[15:46:32] ⇦ Quits: Kilobyte (~kilobyte@cucumber.kilobyte22.de) (Ping timeout: 198 seconds)
L1055[15:48:01] * TechnicianLP needs to dive deeper into that code
L1056[15:48:41] <barteks2x> hm... that 1024 noise values per chunk doesn't quite match my calculations
L1057[15:48:59] <barteks2x> I expected 250
L1058[15:49:47] <barteks2x> or less in some cases with my cache
L1059[15:50:16] ⇦ Quits: Shambling (~Joseph@24-181-186-74.dhcp.nwtn.ct.charter.com) (Read error: Connection reset by peer)
L1060[15:50:28] <barteks2x> oh... that would explain it: HASH_3D = (v) -> v.getX() + v.getZ() + v.getY()*25
L1061[15:50:39] <barteks2x> it's a miracle I got any performance improvement with that
L1062[15:50:53] <TechnicianLP> missing brackets?
L1063[15:51:09] <barteks2x> missing *5 for getZ()
L1064[15:51:25] * TechnicianLP has no clue
L1065[15:51:28] <tterrag> I don't get the multiplication you are doing
L1066[15:51:34] <tterrag> that doesn't make for a good hash function
L1067[15:51:40] <barteks2x> in this case it does
L1068[15:51:45] <barteks2x> this is very special case
L1069[15:52:17] <barteks2x> coords for a single chunk are: (x*4, y*2, z*4) to (x*4+5, y*2+3, z*4+5)
L1070[15:52:27] <barteks2x> (single cubic chunk)
L1071[15:53:00] <barteks2x> (both inclusive)
L1072[15:53:21] <tterrag> err
L1073[15:53:27] <tterrag> what
L1074[15:53:31] <tterrag> so a chunk is 6x4x6 ?
L1075[15:53:55] ⇨ Joins: Kilobyte (~kilobyte@cucumber.kilobyte22.de)
L1076[15:54:07] <barteks2x> no
L1077[15:54:30] <barteks2x> I (and MC) generate 5x3x5 array for each 16x16x16 blocks section and then do linear interpolation
L1078[15:55:08] <barteks2x> basically one noise value for each corner of 4x8x4 blocks section
L1079[15:57:28] <barteks2x> now the amount of values generated per chunk went down to ~150-160
L1080[16:00:57] ⇨ Joins: howtonotwin (~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
L1081[16:02:20] <gr8pefish> How do I go about making the DEBUG state in events true (for more verbose output)? e.g. In BlockPlaceEvent there is: private static final boolean DEBUG = Boolean.parseBoolean(System.getProperty("forge.debugBlockEvent", "false"));
L1082[16:02:41] <barteks2x> -Dforge.debugBlockEvent=true
L1083[16:02:43] <Akkarin> set the system property to true? :o
L1084[16:02:44] <barteks2x> in jvm options
L1085[16:03:31] <barteks2x> *jvm arguments
L1086[16:03:37] <gr8pefish> oh, sure, thanks :)
L1087[16:04:57] <barteks2x> so my worldgen time went down from42 to 26 seconds for spawn after adding the cache
L1088[16:05:02] <barteks2x> now THAt is an improvement
L1089[16:05:05] <Disconsented> Since you can't instanceof BlockOre to check if somthing is an Ore. How do you do that within OreDictionary? From what I understand you cant have wildcard's with names (ore* or somthing like that)
L1090[16:05:37] <g> I think you can get a list of oredict names from the oredict
L1091[16:05:53] <g> certainly there's a bunch of mods that can get oredict names for items/blocks
L1092[16:08:28] ⇦ Quits: Seppon (~Noppes@ip56530f2e.direct-adsl.nl) (Read error: Connection reset by peer)
L1093[16:08:35] *** AshIndigo_ is now known as AshIndigo
L1094[16:09:45] <Disconsented> getOreID's -> for each getOreName -> prefix is 'ore' looks like what I want
L1095[16:09:49] <Disconsented> that seems... slow
L1096[16:10:04] <barteks2x> now guava AbstractIterator.computeNext (the inernal one) seems to take quite some time
L1097[16:10:22] <howtonotwin> that's the only way to deal with the ore dict
L1098[16:10:26] <howtonotwin> iterating it
L1099[16:10:49] <TechnicianLP> oredoubling?
L1100[16:11:04] <howtonotwin> if you need it faster you are free to cache the results
L1101[16:11:15] <barteks2x> is there some reason why it's not a multimap or something?
L1102[16:11:29] <howtonotwin> not sure
L1103[16:11:43] <howtonotwin> there's a issue on the repo to make it Set based though
L1104[16:12:12] <howtonotwin> the dict is frozen at init(?) so at that point you should run calculations on it
L1105[16:12:32] <barteks2x> so it's now time to implement my own iterator without any abstract class...
L1106[16:13:57] <tterrag> howtonotwin: oredict is not frozen afaik
L1107[16:14:09] <howtonotwin> it's not?
L1108[16:14:16] * howtonotwin is seeing code ghosts
L1109[16:14:28] <barteks2x> iterator is allowed to do whatever it wants if someone calls next when nothing is left in it?
L1110[16:14:37] * AshIndigo calls the ghost busters
L1111[16:14:48] <howtonotwin> well it's frozen by power of convention :P
L1112[16:15:09] <tterrag> barteks2x: no
L1113[16:15:11] <howtonotwin> if you alter it after a certain point you'll get disapproving looks
L1114[16:15:12] <tterrag> NoSuchElementException is thrown
L1115[16:15:25] <tterrag> howtonotwin: generally the oredict should be full before postinit
L1116[16:15:31] <barteks2x> really? The most useless thing ever
L1117[16:15:42] <howtonotwin> why?
L1118[16:16:25] <barteks2x> I have to add if() check for soemthign that is always going to be checked anyway
L1119[16:16:55] <howtonotwin> well what would you have it do?
L1120[16:17:22] <howtonotwin> from the perspective of the interface it makes sense that trying to get something from an empty iterator should thrown an exception
L1121[16:17:46] <howtonotwin> what you propose ("do whatever") is basically undefined behavior
L1122[16:18:17] <howtonotwin> s/basically //
L1123[16:18:55] <howtonotwin> that's the point of having exceptions
L1124[16:19:18] <barteks2x> it would be infinite loop in my case
L1125[16:19:31] <barteks2x> if you didn't check hasNext and I didn't implement that exception
L1126[16:20:42] <barteks2x> this isn't iterator for a collection, it creates values as they are needed
L1127[16:20:56] <howtonotwin> well then you need not throw the exception...
L1128[16:21:16] <howtonotwin> hasNext is always true and therefore it's never empty
L1129[16:21:22] <howtonotwin> therefore the exception never happens
L1130[16:21:23] <barteks2x> no, hasNext can be false
L1131[16:21:33] <barteks2x> it's just that it would generate new values anyway if you didn't check it
L1132[16:21:48] <howtonotwin> then hasNext is always true
L1133[16:22:02] ⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Quit: Leaving.)
L1134[16:22:10] <howtonotwin> "boolean hasNext()
L1135[16:22:10] <howtonotwin> Returns true if the iteration has more elements. (In other words, returns true if next() would return an element rather than throwing an exception.)"
L1136[16:22:28] <howtonotwin> so if next() would create values (return an element and not throw)
L1137[16:22:35] <barteks2x> I think it's still stupid to have 2 checks for the same thing
L1138[16:22:43] <howtonotwin> then hasNext() is true even if the internal supply is depleted
L1139[16:23:12] <barteks2x> and there is no internal supply here, it's just iterating over coordinate range and generating values for them
L1140[16:23:33] <barteks2x> so if I don't explicitly check if it's the end of the corrds range, it would just go on forever
L1141[16:23:45] <howtonotwin> then don't have the iterator go on forever :P
L1142[16:23:50] <TechnicianLP> make it your own class - you dpnt have to consider semantics
L1143[16:24:07] <barteks2x> then I would have to add my own way to create Spliterator for it
L1144[16:24:16] <barteks2x> or create a stream in the first place
L1145[16:24:29] <barteks2x> the iterator is just a way for me to get a stream
L1146[16:24:37] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1147[16:24:46] <tterrag> "the iterator is just a way for me to get a stream" WUT
L1148[16:24:56] <diesieben07> yeah that is terrible
L1149[16:24:57] <barteks2x> stream interface is... big
L1150[16:25:05] <diesieben07> a plain iterator as a stream source is a bad idea
L1151[16:25:16] <barteks2x> I then create spliterator from it
L1152[16:25:21] <barteks2x> and use that as source
L1153[16:25:21] <diesieben07> that does nt help
L1154[16:25:24] <tterrag> this is why you extend/wrap something else
L1155[16:25:29] <diesieben07> spliterator needs to split (duh)
L1156[16:25:31] <tterrag> I've offered you many alternate solutions, but you refused them *shrug*
L1157[16:25:36] <diesieben07> if you make one from an iterator it can basically not split at all
L1158[16:25:47] <diesieben07> which makes Stream much less efficient when used in parallel
L1159[16:25:59] <barteks2x> I'm not going to use paralel version
L1160[16:26:04] <barteks2x> it would break too many things
L1161[16:26:10] <diesieben07> if you have a continuous source of things, use Stream.iterate for example
L1162[16:26:24] <diesieben07> there are many better ways to get to a stream than iterator
L1163[16:26:30] <diesieben07> if anything extend AbstractSpliterator
L1164[16:26:36] <diesieben07> which is way easier than Iterator anyways
L1165[16:26:39] <howtonotwin> Stream.generate maybe?
L1166[16:27:04] <diesieben07> all you need for AbstractSpliterator is tryAdvance
L1167[16:27:09] <howtonotwin> you said you're iterating over blocks coords and giving them values?
L1168[16:27:22] <diesieben07> which either returns false for no elelements or calls the given lambda with next value and returns true
L1169[16:27:27] <barteks2x> I had AbstractIterator before, and it added 2 seconds overhead
L1170[16:27:35] <barteks2x> which was enough to be the top thing in profiler
L1171[16:27:38] <howtonotwin> `streamOfBlockCoords.map(generator::valueAt)` then?
L1172[16:27:49] <diesieben07> if your code is very performance critical, Stream is most likeyl not the right choice anyway
L1173[16:28:16] <barteks2x> well, with iterator I can just obviously stop using the stream and use iterator directly
L1174[16:28:25] <diesieben07> true
L1175[16:28:39] <barteks2x> if I made a stream instead, I would have to modify it to be stream
L1176[16:28:54] <barteks2x> I just wanted to see if performance would be good enough if I used stream
L1177[16:29:08] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 198 seconds)
L1178[16:29:13] <barteks2x> so I have code like this
L1179[16:29:13] <barteks2x> terrainBuilder.scaledStream(start, end, new Vec3i(4, 8, 4)).map(this::getBlock).forEach(b -> b.setBlock(cubePrimer));
L1180[16:29:18] <gr8pefish> Does Item.getItemFromBlock account for extra data (e.g. does it distinguish between stone and andesite)? If not, how would I do so?
L1181[16:29:25] <howtonotwin> no
L1182[16:29:31] <diesieben07> how woudl it?
L1183[16:29:37] <diesieben07> you need an ItemStack for extra data
L1184[16:30:10] <barteks2x> so in the end I'm doign forEach anyway
L1185[16:30:41] <gr8pefish> Is there any way to get an itemstack from a block then? It looks like the constructor for ItemStack can take in a block, but doesn't seem to write in that extra data. There's got to be an inbuild method for this (I would think)
L1186[16:31:08] <howtonotwin> Block has methods for getting an ItemStack for a blockpos
L1187[16:31:09] <diesieben07> Block itself also does not have the extra data
L1188[16:31:11] <diesieben07> you want IBlockState
L1189[16:31:23] <diesieben07> and then you can use getPickBlock on Block for an accurate representation
L1190[16:33:39] ⇨ Joins: FusionLord (~FusionLor@2600:8800:1:e900:d1bd:947e:bad7:c31f)
L1191[16:36:15] <barteks2x> the code with iterator turns out to be very similar so the stream was useless here: terrainBuilder.scaledIterator(start, end, new Vec3i(4, 8, 4)).forEachRemaining(e-> cubePrimer.setBlockState(e.getX(), e.getY(), e.getZ(), getBlock(e)));
L1192[16:37:33] <gr8pefish> thanks diesieben07. I'm trying to figure out how to get the RayTraceResult (I got everything else). For context, I'm getting the IBlockState and other values for getPickBlock easily enough via the onBlockPlaced event.
L1193[16:37:45] <barteks2x> if not the interpolation I have to do, stream would be perfect because I could use paralel stream
L1194[16:38:01] <diesieben07> you will have to do a raytrace
L1195[16:39:51] <gr8pefish> alright, I'll look into it, thanks
L1196[16:41:12] ⇨ Joins: AstralSorcerer (~AstralSor@u-of-rochester-128-151-150-18.wireless.rochester.edu)
L1197[16:46:27] ⇦ Quits: FusionLord (~FusionLor@2600:8800:1:e900:d1bd:947e:bad7:c31f) (Quit: Leaving)
L1198[16:47:44] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Quit: You think you are above consequences.)
L1199[16:48:09] <barteks2x> what... this is completely unexpected. World.getBiomeProvider seems to take1.4 of the ~6 seconds spent in ChunkBatcher
L1200[16:49:08] <barteks2x> (this is vanilla code)
L1201[16:52:33] <barteks2x> argh... any way to make visualvm sampler show line numbers of methods? It's abit hard to figure out wher ecode is with lambdas
L1202[16:53:31] <howtonotwin> lambdas are probably made into private methods
L1203[16:53:43] <howtonotwin> so they likely do not add to method where they are defined
L1204[16:53:49] <howtonotwin> only to their caller
L1205[16:53:50] <diesieben07> yep
L1206[16:54:00] <diesieben07> they compile to something like void lambda$0
L1207[16:54:13] <kenzierocks> depends on the lambda
L1208[16:54:13] <barteks2x> yes, and it's nearly impossibel to fugure out where it isnjust from name
L1209[16:54:20] <kenzierocks> wat
L1210[16:54:24] <kenzierocks> it's usually really easy
L1211[16:54:25] <barteks2x> anyway, i forgot this method has only one lambda
L1212[16:54:43] <kenzierocks> the number after the $ is the number of anon classes from the top
L1213[16:55:04] <kenzierocks> since lambdas are usually anon classes, it's not that difficult to count them
L1214[16:55:09] <diesieben07> and if you really want, make a method and use a method reference
L1215[16:55:12] <kenzierocks> and the lambda has the method name
L1216[16:55:12] <diesieben07> which is the same thing, but explicit
L1217[16:56:13] <Akkarin> Generally lambdas still behave a little bit wonky
L1218[16:56:14] <tterrag> lambdas aren't ever *quite* anon methods afaik
L1219[16:56:22] <tterrag> and noncapturing lambdas definitely aren't
L1220[16:56:30] <Akkarin> if you ever tried to hotswap code that makes heavy use of lambdas you'll know exactly what I mean
L1221[16:56:32] ⇨ Joins: MonkeyTyrant (~MonkeyTyr@24.224.250.102)
L1222[16:56:37] <barteks2x> so a method that is essentially a bunch of array lookups and ifs takes3.4 seconds in worldgen code
L1223[16:56:51] ⇦ Quits: MonkeyTyrant (~MonkeyTyr@24.224.250.102) (Client Quit)
L1224[16:57:46] <kenzierocks> you really ought to use the profiler instead of the sampler if you're going for timings
L1225[16:58:07] <barteks2x> but profiler also instruments small methods
L1226[16:58:24] <barteks2x> so prevents a lot of JM optimizations
L1227[16:58:29] <barteks2x> *JVM
L1228[16:58:45] <barteks2x> and worldgen takes forever when runnign with profiler
L1229[16:58:58] <barteks2x> it would be close to 1 hour to generate spawnpoint
L1230[16:59:16] <barteks2x> (last time I tried)
L1231[16:59:28] <barteks2x> and profiler disagrees with java 8 last time I tried
L1232[16:59:30] <barteks2x> and crashes MC
L1233[16:59:39] <bartman> it was fun for me but I did run profiler remotely on a hosted server
L1234[16:59:45] <bartman> heh
L1235[16:59:48] <bartman> fine
L1236[16:59:51] <bartman> as well as fun
L1237[17:00:48] <barteks2x> what would be way more useful is something like JMH perfasm but when running outside of benchmark
L1238[17:01:27] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1239[17:01:41] <Akkarin> profiling is never really fun tbh
L1240[17:02:09] <kenzierocks> you guys aint doing something right
L1241[17:02:14] <kenzierocks> profiler solves all my problems
L1242[17:02:19] <barteks2x> yourkit profiler had acceptable performance when I used the trial version
L1243[17:02:20] <kenzierocks> you just gotta know how to work it
L1244[17:02:32] <barteks2x> make it not crash MC and I will use it
L1245[17:02:38] <kenzierocks> it doesnt?
L1246[17:02:44] <kenzierocks> last time I tried at least
L1247[17:02:46] <howtonotwin> tfw visualvm is broken on your potato and google can't fix it
L1248[17:02:48] <kenzierocks> which was pretty recent
L1249[17:02:50] <barteks2x> for me it does but that could be because of java 8
L1250[17:02:55] <tterrag> yeah, visualvm profiler crashes me too
L1251[17:02:56] <tterrag> j8
L1252[17:02:59] <kenzierocks> visualvm 1.3.9 fixes all the j8 stuff
L1253[17:03:04] <tterrag> ah maybe I'm behind
L1254[17:03:10] <tterrag> I do recall looking up the bug tracker and seeing it was fixed
L1255[17:03:15] <barteks2x> I have 1.3.8
L1256[17:03:19] <Akkarin> VisualVM does come with a pretty nice performance impact last I checked. So not surprised it does blow up Minecraft tbh
L1257[17:03:23] <tterrag> so I'll have to update then
L1258[17:03:30] <tterrag> profiler will of course impact performance
L1259[17:03:35] <tterrag> but if you filter it down properly, it works fine
L1260[17:03:40] <barteks2x> uh... gentoo doesn't have 1.3.9 available
L1261[17:03:47] <Akkarin> > gentoo
L1262[17:03:48] <kenzierocks> sucks2beu
L1263[17:04:00] <Akkarin> > not compiling it yourself anyways
L1264[17:04:13] <howtonotwin> that's LFS :P
L1265[17:04:20] <Akkarin> Gentoo also makes you compile all the things
L1266[17:04:31] <howtonotwin> but it automates the compiling
L1267[17:04:43] <howtonotwin> you set flags and then emerge does the rest
L1268[17:04:50] <Akkarin> Well yeah. Pretty sure you can edit the build files to cover for a lacking version though ;-)
L1269[17:05:02] <barteks2x> you can but I didn't learn how yet
L1270[17:05:03] <Akkarin> aka not having it in the repos comes at no penalty for you
L1271[17:05:04] <howtonotwin> LFS you have nothing and need to actually bootstrap from an existing install :P
L1272[17:05:05] <bartman> they let just about anyone submit to portage I've had to fix so many stupid errors with peoples build scripts
L1273[17:05:11] <bartman> I couldn't stand it anymore
L1274[17:05:11] <Akkarin> I am very aware
L1275[17:05:26] * Akkarin huggles Arch a bit tighter
L1276[17:05:31] <howtonotwin> xD
L1277[17:05:37] * kenzierocks sits on OSX
L1278[17:05:40] <kenzierocks> chillin'
L1279[17:05:59] <barteks2x> I don't think profiler deals well with lots of small methods
L1280[17:06:03] <howtonotwin> tfw you're a Windows heathen using WSL for your *nixy needs
L1281[17:06:15] <howtonotwin> can't you have a filter?
L1282[17:06:18] <kenzierocks> windows subsystem for LOSERS
L1283[17:06:35] <howtonotwin> it's actually quite neat how they made it work
L1284[17:06:46] <Akkarin> It is as long as it doesn't break all your stuff
L1285[17:06:49] <Akkarin> such as git ... for instance
L1286[17:06:56] <kenzierocks> or screen/tmux :D
L1287[17:07:01] <howtonotwin> it's like a port of UML for Windows
L1288[17:07:09] <kenzierocks> or upgrading it at all because everything is kill
L1289[17:07:23] <Akkarin> That thing is more duct tape than anything else tbh
L1290[17:07:24] ⇦ Quits: AstralSorcerer (~AstralSor@u-of-rochester-128-151-150-18.wireless.rochester.edu) (Ping timeout: 186 seconds)
L1291[17:07:28] <Akkarin> just a nice thing to advertise
L1292[17:07:36] <howtonotwin> duct tape?
L1293[17:07:44] ⇨ Joins: ScottehBoeh (~ScottehBo@95.144.45.252)
L1294[17:07:51] <howtonotwin> the only problem is that there are too many syscalls to implement :P
L1295[17:08:07] ⇨ Joins: Shambling (~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com)
L1296[17:08:10] *** diesieben07 is now known as diesieben|away
L1297[17:08:11] <howtonotwin> (and some permission stuff but meh)
L1298[17:08:17] <Akkarin> Might as well be a sane person and just use a real *NIX to begin with
L1299[17:08:23] *** Mine|away is now known as minecreatr
L1300[17:08:35] <howtonotwin> technically it is real *nix
L1301[17:08:42] <Akkarin> olol
L1302[17:08:59] <howtonotwin> you're running *nix code on (what looks like) a real *nix kernel :P
L1303[17:09:19] <howtonotwin> saying WSL is not *nix is like saying UML is not *nix
L1304[17:09:44] <kenzierocks> it is real ubuntu
L1305[17:10:13] <kenzierocks> just ubuntu + *nix software makes assumptions that don't really apply
L1306[17:10:21] <Akkarin> It's no more than a layer between the program and the Windows kernel afaik
L1307[17:10:22] <kenzierocks> erm, not apply ... but they're not there
L1308[17:10:56] <Akkarin> aka a fancy way of saying "I emulate this environment"
L1309[17:11:03] <barteks2x> does that thing allow to delete file that is in use like linux does? or does it go the widnows way?
L1310[17:11:24] <howtonotwin> think the first
L1311[17:11:25] <Akkarin> given that it is a layer the answer would probably be "no"
L1312[17:11:27] <howtonotwin> lemme test
L1313[17:11:34] ⇨ Joins: Everseeking (~Everseeki@pool-100-6-95-214.pitbpa.fios.verizon.net)
L1314[17:11:38] <howtonotwin> well it's layer that's rooted deep in the kernel
L1315[17:11:50] <howtonotwin> it can probably do some weird things
L1316[17:11:51] <Akkarin> since the layer between the program and the kernel is just going to forward calls to the backing kernel implementation
L1317[17:11:55] <howtonotwin> (like fork())
L1318[17:11:57] <Akkarin> e.g. it has to obey kernel rules
L1319[17:12:06] <Akkarin> well fork as similar things in the Windows API
L1320[17:12:09] <Akkarin> they're just not called fork
L1321[17:12:12] <barteks2x> so now the question is if kernel allows deleting file that is being used
L1322[17:12:22] <barteks2x> *windows kernel
L1323[17:12:32] <Akkarin> Windows in fact has a lot of methods that are similar or equal to the *NIX methods. They're just renamed or behave slightly different.
L1324[17:13:40] <barteks2x> I was waiting 2 years to get my laptop/gpu compatible with linux, and it will finally maybe work on kernel 4.10
L1325[17:14:07] <howtonotwin> is there a command that'll just hold a file open?
L1326[17:14:19] <barteks2x> just open it in text editor?
L1327[17:14:32] <barteks2x> or does linux text editor not keep file open?
L1328[17:14:47] <howtonotwin> vi seems to complicated to just hold the file
L1329[17:14:50] <howtonotwin> *too
L1330[17:14:55] <howtonotwin> well I have /proc/*/fd
L1331[17:14:56] <kenzierocks> https://blogs.msdn.microsoft.com/wsl/2016/06/08/wsl-system-calls/
L1332[17:14:58] ⇦ Quits: Vazkii (~Vazkii@144.134.37.188.rev.vodafone.pt) (Read error: Connection reset by peer)
L1333[17:15:01] <kenzierocks> more cool things on that blog
L1334[17:15:44] *** illy[Zzz] is now known as illy
L1335[17:15:45] <howtonotwin> well vi copies it to a temp file
L1336[17:15:50] <illy> boop o/
L1337[17:15:50] <barteks2x> right now I have special kernel patches made specifically for my laptop to have my gpu working after suspend ...
L1338[17:15:53] <howtonotwin> I can delete that in any case :P
L1339[17:16:21] <kenzierocks> Akkarin: fork is not done in windows
L1340[17:16:24] <kenzierocks> >As a final example, the Linux fork syscall has no documented equivalent for Windows.
L1341[17:16:32] ⇨ Joins: Meronat (uid190493@id-190493.highgate.irccloud.com)
L1342[17:16:35] <howtonotwin> well I deleted the temp file, vi is not broken
L1343[17:16:47] <howtonotwin> now if proc can undelete it we're good
L1344[17:16:56] <Akkarin> kenzierocks: https://msdn.microsoft.com/en-us/library/windows/desktop/ms682453(v=vs.85).aspx same concept, different name, slightly different behavior
L1345[17:16:57] *** amadornes is now known as amadornes[OFF]
L1346[17:16:57] <barteks2x> is it possible to run windows programs from that thing?
L1347[17:17:04] <barteks2x> pr access windows filesystem?
L1348[17:17:11] <kenzierocks> Akkarin: exactly, so fork on WSL is not done via that call
L1349[17:17:22] <howtonotwin> they're working on that
L1350[17:17:30] <kenzierocks> don't try to argue this, the people who wrote it said so
L1351[17:17:33] <Akkarin> It is converted to that internally or they are emulating part of its functionality
L1352[17:17:34] <howtonotwin> or maybe they finished it and it's released
L1353[17:17:51] <howtonotwin> and it already has access to the fs
L1354[17:17:58] <howtonotwin> it just doesn't know the exec format
L1355[17:18:05] <howtonotwin> and..
L1356[17:18:07] <howtonotwin> oh
L1357[17:18:12] <howtonotwin> well it has the correct data
L1358[17:18:14] <kenzierocks> Akkarin: it's documented on the blog i linked yo
L1359[17:18:14] <howtonotwin> in proc
L1360[17:18:18] <Akkarin> WSL as is is no more than a system that finds compatibility methods which mimic *NIX behavior in the Windows kernel. It's effectively just a fancy loader for ELFs
L1361[17:18:20] <howtonotwin> but it's also kinda mangled
L1362[17:18:22] <howtonotwin> :P
L1363[17:18:28] <howtonotwin> could just be vi
L1364[17:18:58] <howtonotwin> Yep just vi
L1365[17:19:11] <howtonotwin> it mangles it's swap files for some reason
L1366[17:19:37] <howtonotwin> doh
L1367[17:19:42] <Akkarin> kenzierocks: "kernel mode pico drivers (lxss.sys and lxcore.sys) that are responsible for handling Linux syscall requests in coordination with the NT kernel. The drivers do not contain code from the Linux kernel but are instead a clean room implementation of Linux-compatible kernel interfaces."
L1368[17:19:43] <howtonotwin> exec {test}<>file
L1369[17:19:51] <Akkarin> they literally say that it is in fact just as I described
L1370[17:19:55] <barteks2x> what does it do befpre I try it?
L1371[17:20:01] <Akkarin> the image below even outlines how it works
L1372[17:20:08] <kenzierocks> > they are emulating part of its functionality
L1373[17:20:09] <kenzierocks> yes
L1374[17:20:11] <kenzierocks> that is right
L1375[17:20:12] <howtonotwin> makes bash open an fd rw-mode to file
L1376[17:20:21] <howtonotwin> it's fd number is saved to $test
L1377[17:20:47] <Akkarin> so again: it's no more than a fancy library that provides a wrapper between the program and the kernel, along with an ELF parser of sorts of course
L1378[17:20:49] <howtonotwin> this can also be abused in that bash allows you to redirect to/from tcp connections
L1379[17:21:02] <kenzierocks> i'm not sure where I said it wasn't?
L1380[17:21:13] <howtonotwin> so you can have pure bash browsers
L1381[17:21:16] <Akkarin> Well it sounded much like you did
L1382[17:21:19] ⇨ Joins: mezz (~mezz@2600:1010:b053:89c8:ad19:9704:5bfb:5e2f)
L1383[17:21:20] MineBot sets mode: +v on mezz
L1384[17:21:30] <kenzierocks> the whole fork() call isn't done with the method you linked -- that's all i said
L1385[17:21:44] <Akkarin> Well do you know the source behind the wrapper?
L1386[17:21:49] <howtonotwin> (ofc the only thing worse than parsing html with regex is parsing it with shell globs)
L1387[17:21:51] <kenzierocks> no
L1388[17:21:53] <kenzierocks> you know what
L1389[17:21:55] <kenzierocks> i suck at arguing
L1390[17:21:58] <kenzierocks> why do i keep doing it
L1391[17:22:03] <howtonotwin> xD
L1392[17:22:04] <kenzierocks> i'm fucking terrible at it
L1393[17:22:05] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L1394[17:22:08] <kenzierocks> i'll just leave
L1395[17:22:11] ⇦ Parts: kenzierocks (~kenzieroc@yes.quite.indeed.old.chap.it.is.kenzierocks.me) (*blip*))
L1396[17:22:13] <Akkarin> ...
L1397[17:22:18] <Akkarin> m(
L1398[17:22:57] <howtonotwin> it works fine
L1399[17:23:38] <howtonotwin> echo "Test" > file; exec {test}<>file; rm file; cat /proc/$$/fd/$test
L1400[17:24:13] <Akkarin> Well if you can delete a file that is currently loaded in memory, you'll run into some serious trouble with regular Windows programs
L1401[17:24:24] <Akkarin> or rather not loaded in memory but open in another program
L1402[17:24:41] <howtonotwin> WSL fs and windows fs are separate
L1403[17:24:54] <howtonotwin> one preserves *nix semantics
L1404[17:25:08] <howtonotwin> the other just hacks together an interface that sorta looks like it
L1405[17:25:26] <howtonotwin> trying to do that on the C drive instead of at / would probably fail
L1406[17:25:59] <Akkarin> My best guess is that it probably holds off on calls or doesn't allow the *NIX nonsense to actually lock
L1407[17:26:07] <Akkarin> there's some sort of hackery in there for sure
L1408[17:26:29] <barteks2x> I'm just calling this a feature... http://i.imgur.com/lR5c96r.png no way I'm writing and optimizing code to fix that
L1409[17:26:59] <howtonotwin> just one thing bugs me...
L1410[17:27:06] <howtonotwin> you can't jump up the terrain :P
L1411[17:27:33] <barteks2x> this is attempt to generate vanilla-like terrain scaled to max 200 blocks above sea level
L1412[17:27:44] <howtonotwin> ah
L1413[17:27:56] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 198 seconds)
L1414[17:28:04] <barteks2x> the dirt thing is close to unfixable
L1415[17:28:39] <barteks2x> Instead of scalling top down like vanilla does to generate dirt/grass I do it completely differently
L1416[17:29:29] <barteks2x> I take the density value used to generate terrain and calculate gradient of it, and give that to method that figures out what block should there be at given coords
L1417[17:29:53] <barteks2x> and if density is within some range and gradient goes down, then it's dirt
L1418[17:30:58] <barteks2x> and I predict density above using the gradient to determine where to generate grass
L1419[17:31:20] ⇨ Joins: cpup (~cpup@32.218.119.168)
L1420[17:33:16] ⇨ Joins: kenzierocks (~kenzieroc@yes.quite.indeed.old.chap.it.is.kenzierocks.me)
L1421[17:39:33] ⇨ Joins: Eragonn1490 (~eragonn14@2600:1005:b015:7081:995d:8dad:871f:e3ee)
L1422[17:42:51] <barteks2x> how could 3.3 SECONDS be spent in total in world.getSeed?
L1423[17:43:00] <Akkarin> lolwat
L1424[17:43:30] <Akkarin> overall or per call. The former would be sane over some time
L1425[17:43:36] <barteks2x> overall
L1426[17:43:56] <barteks2x> it's sampler so it could be yet another way sampler is lying
L1427[17:44:25] <barteks2x> but I would expect jvm to optimize simple getters
L1428[17:44:43] <barteks2x> oh... because it's not simple
L1429[17:45:05] <barteks2x> it asks world provider for seed, which takes world.worldInfo and asks it for seed
L1430[17:45:29] <barteks2x> and the randomSeed field isn't even final
L1431[17:46:21] <barteks2x> vanilla does it the same way so I expected it wouldn't be much worse...
L1432[17:46:31] <barteks2x> it is, exactly 17 times worse
L1433[17:47:07] <barteks2x> but that's literally more time than spent actually generating caves
L1434[17:47:12] <barteks2x> this IS wrong
L1435[17:48:32] ⇦ Quits: cpup (~cpup@32.218.119.168) (Ping timeout: 384 seconds)
L1436[17:53:23] <Eragonn1490> bartek2x are you good with biomes? as of 1.10.2 i cant get mine working?
L1437[17:54:24] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1438[17:56:32] <barteks2x> what is the problem?
L1439[17:57:04] <Eragonn1490> wont spawn period, no real proof that it even exists
L1440[17:57:37] <Eragonn1490> ill show you my code shortly
L1441[17:58:14] <Eragonn1490> http://pastebin.com/1V4L2wt0
L1442[18:00:20] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 198 seconds)
L1443[18:00:46] ⇦ Quits: untamemadman (~untamemad@cpc87177-aztw31-2-0-cust196.18-1.cable.virginm.net) (Quit: Leaving)
L1444[18:00:50] <barteks2x> looking at biome generation code now
L1445[18:00:51] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1446[18:02:26] <barteks2x> I don't see anything that would prevent it wrong working
L1447[18:03:16] <Eragonn1490> test it with a generic biome of any type
L1448[18:03:30] <Eragonn1490> it will never be a spawn biome or generate ,-,
L1449[18:03:52] <howtonotwin> try to do it after this patch https://github.com/MinecraftForge/MinecraftForge/pull/3466
L1450[18:04:09] <howtonotwin> (that is, clone the repo and build a custom forge)
L1451[18:04:44] <howtonotwin> that causes the BiomeManager and other stuff to throw exceptions when you do something wrong
L1452[18:05:01] <howtonotwin> or just debug it
L1453[18:05:11] <howtonotwin> chances are there's an error that's getting swallowed
L1454[18:05:55] <barteks2x> biome generator should generate a biome that is there in BiomeManager
L1455[18:05:57] <barteks2x> always
L1456[18:06:13] <barteks2x> unless it has weight 0, then not
L1457[18:06:35] <barteks2x> (looking at the code, negative weitht could be interesting)
L1458[18:07:23] <howtonotwin> throwing negatives into formulas formulated for positives only is always interesting :P
L1459[18:08:03] <howtonotwin> it's like colliding a proton and antiproton and analyzing the fallout
L1460[18:08:13] <Shambling> is there a way to get minecraft to crash faster when the 'server' for single player crashes?
L1461[18:08:27] <barteks2x> why would you want that O.o
L1462[18:08:57] <Shambling> so I know when minecraft has crashed in 5 minutes loading time, instead of 20 minutes of it sitting there
L1463[18:08:58] <Shambling> lol
L1464[18:09:00] <barteks2x> it's not like crashing is common enough that it's performance issue
L1465[18:09:04] <Shambling> I'm crashing on joining my single player with java.lang.IllegalArgumentException: bound must be positive
L1466[18:09:33] <Shambling> on chunkprovideroverworld.func_186034
L1467[18:09:45] <Shambling> so I'm all like, woulda been nice to know you crashed 5 minutes ago. :P
L1468[18:10:01] <barteks2x> that's world generator crashing, that could be from random number generator
L1469[18:10:07] <barteks2x> !gm func_186034
L1470[18:10:14] <Shambling> yeah earlier it was saying something about random
L1471[18:10:15] <barteks2x> is that 1.7.10?
L1472[18:10:25] ⇦ Quits: Gigabit101 (~Gigabit10@cpc76690-cosh16-2-0-cust331.6-1.cable.virginm.net) (Ping timeout: 206 seconds)
L1473[18:10:28] <Shambling> java.util.Random.nextInt(Random.java:388) and 1.10.2
L1474[18:10:32] <barteks2x> !gm func_186034 1.10.2
L1475[18:10:40] <Shambling> probably ran out of ram or something, since 1.10.2 is super greedy with ram
L1476[18:10:42] <barteks2x> !!gm func_186034 1.10.2
L1477[18:10:42] <MCPBot_Reborn> No results found.
L1478[18:10:59] ⇨ Joins: Gigabit101 (~Gigabit10@cpc76690-cosh16-2-0-cust331.6-1.cable.virginm.net)
L1479[18:11:07] *** Abrar|gone is now known as AbrarSyed
L1480[18:11:09] <Shambling> !gm func_186034_a
L1481[18:11:13] <barteks2x> it's most likely trying to generate somethign in empty chunk
L1482[18:11:21] <Shambling> must be the _a I left out when typing it
L1483[18:12:22] <barteks2x> populateChunk --> most likely generating stuff in empty chunk
L1484[18:12:47] <barteks2x> so it's trying to generate number between 0 (inclusinve) and 0 (exclusive)
L1485[18:12:57] <Shambling> well I'll try a new world, might be difference in mods between the world and previous mod set
L1486[18:13:07] <Shambling> I just updated a few libraries, but I suppose some ID's could have been scrambled
L1487[18:13:23] <barteks2x> unless bedrock got removed, it shouldn't be that bad
L1488[18:14:44] <Shambling> to be honest, could be too many mods modifying bedrock. I forget what I was even doing last when building this test modpack
L1489[18:14:55] <Shambling> think I'll stick to the simplified style one where its just immersive engineering and some flavor mods
L1490[18:16:24] <barteks2x> my world generator just won't have that issue at all, it will have to work even with negative coords :D
L1491[18:23:14] ⇨ Joins: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
L1492[18:25:33] ⇦ Parts: Yato (~po.yay.to@45.55.141.36) (Half-ded))
L1493[18:33:56] ⇦ Quits: karjah (~karjah@h130.220.88.75.dynamic.ip.windstream.net) (Ping timeout: 198 seconds)
L1494[18:36:38] <TechnicianLP> is this ( https://pms.bwinf.de/app/PMS ) throwing an error for anyone else? dont have a second device to check myself ...
L1495[18:37:11] <Shambling> here let me blindly click on that weird link
L1496[18:37:25] <Shambling> well its sitting at loading indefinitely for me :P
L1497[18:42:20] <barteks2x> after some time it loaded for me
L1498[18:42:39] <barteks2x> but I don't know what that is (other than "it's a stacktrace")
L1499[18:43:00] <TechnicianLP> its the page to submit the solutions to a german programming competition
L1500[18:43:28] <barteks2x> oh, I though it's a weird pastebin-like website
L1501[18:43:33] <TechnicianLP> which has deadline in ~an hour and the page broke
L1502[18:43:37] <barteks2x> and you sent a stacktrace :D
L1503[18:44:07] <barteks2x> obviously you shouldn't wait until the last hour
L1504[18:45:13] ⇦ Quits: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com) (Ping timeout: 206 seconds)
L1505[18:45:56] ⇨ Joins: PitchBright (~PitchBrig@cpe00fc8d8a3ce3-cm00fc8d8a3ce0.cpe.net.cable.rogers.com)
L1506[18:46:20] <TechnicianLP> well who would expect the site breaking?
L1507[18:47:17] <barteks2x> I would, because if everyone waits until the end this is what happens
L1508[18:48:20] ⇦ Quits: ScottehBoeh (~ScottehBo@95.144.45.252) (Ping timeout: 198 seconds)
L1509[18:49:01] <Shambling> always expect expert sites to fail at being good at what they do
L1510[18:49:36] * howtonotwin looks at Google
L1511[18:49:47] * howtonotwin is ashamed for relying so strongly on a single site
L1512[18:50:15] <Lord_Ralex> tbf, there are other engines
L1513[18:50:19] <Lord_Ralex> not nearly as good, but still
L1514[18:50:53] <TechnicianLP> thanks for confirming it broken! have to go now ...
L1515[18:50:57] <barteks2x> others just don't look like what I'm used to
L1516[18:52:24] <Shambling> dear lord, no wonder that pack seemed weird in the back of my brain
L1517[18:52:28] <Shambling> I forgot to install stepup fixer
L1518[18:52:48] <Shambling> how do they always implement things that have worked so well in mods, so badly in base game
L1519[18:53:25] ⇨ Joins: TechnicianLP2 (~Technicia@p4FE1C24B.dip0.t-ipconnect.de)
L1520[18:57:40] ⇦ Quits: TechnicianLP (~Technicia@p4FE1C24B.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L1521[19:00:35] ⇨ Joins: Elec0 (~Elec0@porter-29-249.resnet.ucsc.edu)
L1522[19:03:56] ⇦ Quits: Upth (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (Killed (NickServ (GHOST command used by Upthorn)))
L1523[19:04:31] ⇨ Joins: Upth (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L1524[19:18:39] ⇦ Quits: AforAnonymous (bitch2k@dyn-051-159.vix2.mmc.at) (Read error: Connection reset by peer)
L1525[19:19:58] ⇦ Quits: Everseeking (~Everseeki@pool-100-6-95-214.pitbpa.fios.verizon.net) (Read error: Connection reset by peer)
L1526[19:24:18] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 384 seconds)
L1527[19:34:48] <Shambling> man its too bad this seed only works with this exact combination of mods
L1528[19:34:50] <Shambling> its super weird
L1529[19:35:22] ⇦ Quits: sinkillerj (~sinkiller@nc-67-232-15-221.dhcp.embarqhsd.net) (Quit: またね)
L1530[19:35:30] <Shambling> ae2 meteorite about 100 blocks away from spawn, spawn in a village with darksteel boots and a drowning charm, second village about 250 blocks another direction, HUGE holes in the ground
L1531[19:37:07] ⇨ Joins: cpup (~cpup@32.218.119.168)
L1532[19:40:10] ⇦ Quits: TechnicianLP2 (~Technicia@p4FE1C24B.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L1533[19:41:09] ⇦ Quits: Shambling (~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com) (Quit: Leaving)
L1534[19:51:36] ⇨ Joins: Grover_c13 (~Courtney@203-59-199-82.dyn.iinet.net.au)
L1535[19:53:42] ⇦ Quits: MalkContent (~MalkConte@79.220.228.92) (Quit: Leaving)
L1536[19:56:04] ⇦ Quits: edr (~edr@d-65-175-180-73.cpe.metrocast.net) (Read error: Connection reset by peer)
L1537[19:59:07] *** Keridos is now known as Keridos|away
L1538[20:03:25] ⇨ Joins: blood_ (unknown@ool-4574115b.dyn.optonline.net)
L1539[20:09:58] <barteks2x> So I'm trying to make something like ChunkProviderSettings, any way to avoid repeating list of all config options 8 times?
L1540[20:13:40] ⇦ Quits: IceDragon (~ThatGuy@184.170.49.114) (Ping timeout: 206 seconds)
L1541[20:14:44] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 198 seconds)
L1542[20:14:49] <barteks2x> (other than using reflection, because in java that would probably end up worse than repeating it 8 times)
L1543[20:18:32] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1544[20:30:06] ⇦ Quits: Subaraki (~Artix@mf763-h01-176-150-102-154.dsl.sta.abo.bbox.fr) (Ping timeout: 206 seconds)
L1545[20:31:00] ⇦ Quits: Artillect (~Artillect@2602:306:c407:2eb0:cd7e:8cfd:5444:e25d) (Read error: Connection reset by peer)
L1546[20:42:02] ⇨ Joins: wundrweapon (uid131782@id-131782.ealing.irccloud.com)
L1547[20:42:13] <wundrweapon> heyyy my dudes
L1548[20:42:20] <wundrweapon> been a while
L1549[20:44:00] <Eragonn1490> welcome
L1550[20:44:26] <wundrweapon> whale comb
L1551[20:44:34] <Eragonn1490> so with this method http://pastebin.com/tWxR7LaL its currently not changing the block at all
L1552[20:44:37] <Eragonn1490> what did i miss/
L1553[20:45:31] <wundrweapon> hmm... random hunch here, add an Override annot and see if it errors
L1554[20:46:06] *** Vigaro is now known as Vigaro|AFK
L1555[20:46:52] ⇨ Joins: ScottehBoeh (~ScottehBo@95.144.82.240)
L1556[20:47:18] <wundrweapon> aaaand they're gone
L1557[20:49:18] <howtonotwin> ew@line 5
L1558[20:49:23] ⇨ Joins: Everseeking (~Everseeki@pool-100-6-95-214.pitbpa.fios.verizon.net)
L1559[20:49:30] <howtonotwin> *16
L1560[20:49:36] <howtonotwin> why are you testing getMetadata?
L1561[20:49:42] <howtonotwin> just check the enum value
L1562[20:50:01] <howtonotwin> otherwise you defeat the purpose of blockstates
L1563[20:50:06] <wundrweapon> ew at both 16 _and_ 5
L1564[20:50:23] <howtonotwin> and why the casts?
L1565[20:50:27] <howtonotwin> these methods are generic
L1566[20:50:45] <howtonotwin> if TYPE is IProperty<EnumBookshelf> you need no casts
L1567[20:51:14] <howtonotwin> and the 3 param to setBlockState matters
L1568[20:51:18] <howtonotwin> *3rd
L1569[20:51:23] <howtonotwin> it's a flag
L1570[20:51:29] <howtonotwin> one means "send to clients"
L1571[20:51:37] <howtonotwin> another means "cause a block update"
L1572[20:51:39] <wundrweapon> ah, generic types - I love them, and I hate them, and they're useful, and they're confusing and GRR
L1573[20:51:54] * howtonotwin introduces wundrweapon to Go
L1574[20:52:08] <wundrweapon> Go? as in, the game?
L1575[20:52:08] <howtonotwin> and another means "rebuild the render for the chunk"
L1576[20:52:18] <howtonotwin> you can't just use random numbers for them
L1577[20:52:20] <howtonotwin> the language
L1578[20:52:28] <howtonotwin> it has no generics
L1579[20:52:30] <wundrweapon> never heard of it. will research
L1580[20:52:45] <howtonotwin> indeed, it's OO but it lacks many features of most OO langs
L1581[20:52:54] <wundrweapon> (neither does BrainFuck and I'm fairly fluent in that)
L1582[20:53:14] <howtonotwin> but it has a channels
L1583[20:53:27] <wundrweapon> eh
L1584[20:53:31] <howtonotwin> which are a builtin of the language made for threading
L1585[20:53:54] <howtonotwin> basically they're pipes between threads, except they transfer entire structs
L1586[20:54:04] <Eragonn1490> that fixed it @how
L1587[20:54:15] <howtonotwin> yay
L1588[20:54:59] <howtonotwin> so you removed the flags on setBlockState, right?
L1589[20:55:14] <howtonotwin> just world.setBlockState(pos, state) is good for most cases
L1590[20:55:38] <wundrweapon> for that third param on the setBlockState method: it uses trickery by adding powers of two, like how the Wii handles buttons.
L1591[20:55:53] <howtonotwin> and also there's cycleProperty, which does what you're doing here I thin
L1592[20:55:55] <howtonotwin> *think
L1593[20:55:57] <howtonotwin> wut
L1594[20:56:02] <howtonotwin> the Wii?
L1595[20:56:12] <wundrweapon> the Wii, yes
L1596[20:56:50] <wundrweapon> the value it uses to determine which buttons are being pressed uses the same system as that flags param by adding powers of 2
L1597[20:57:03] <howtonotwin> bitfields
L1598[20:57:08] <howtonotwin> the word is bitfield :P
L1599[20:57:12] <wundrweapon> ...whatever
L1600[20:57:16] <howtonotwin> you set and unset bits
L1601[20:57:23] * wundrweapon thought he was being intelligent
L1602[20:57:28] <howtonotwin> and it has the effect of looking like powers of two
L1603[20:57:32] <howtonotwin> but mostly it's bits
L1604[20:57:47] ⇨ Joins: Artillect (~Artillect@2602:306:c407:2eb0:b52f:b0c7:daf1:7df1)
L1605[20:57:53] <howtonotwin> so for the wii's 4 buttons you'd use 4 bits
L1606[20:57:59] <howtonotwin> 0000 (4 unset) = no buttons
L1607[20:58:05] <wundrweapon> OH speaking of bitfields, guess how Metal Gear's US NES port's password system worked? yup, bitields
L1608[20:58:07] <Artillect> What are some benifits of using IntelliJ IDEA over Eclipse for modding?
L1609[20:58:14] <howtonotwin> oh god
L1610[20:58:17] <howtonotwin> flamewar incoming
L1611[20:58:19] <howtonotwin> run
L1612[20:58:25] <Deamon> its just whatever your preference is
L1613[20:58:28] <Deamon> both work fine
L1614[20:58:38] <kashike> each has their own upsides and downsides, it comes down to which you like more
L1615[20:58:47] <howtonotwin> 0010 = bit 2 (which is assigned some arbitrary meaning) on
L1616[20:58:58] <wundrweapon> people started making up passwords to see what they could do, and some of the more vulgar passwords, like "FUCKME" are fairly odd (that one puts you at the end of the game with only a pack of cigarettes)
L1617[20:59:04] <Artillect> how easy is it to convert from an eclipse forge project to an intellij one?
L1618[20:59:08] <howtonotwin> 0110 = bit 2 and 3 (both with arbitrary meanings) on
L1619[20:59:10] <howtonotwin> very
L1620[20:59:12] <howtonotwin> basically
L1621[20:59:19] <howtonotwin> delete the IDE project descriptor
L1622[20:59:19] <Deamon> pretty sure you can import the eclipse project into intellij
L1623[20:59:23] <howtonotwin> then open it in the other :P
L1624[20:59:45] <wundrweapon> dont you need to run "gradlew whateverthenewideis"
L1625[20:59:53] <howtonotwin> only for eclipse
L1626[20:59:59] <howtonotwin> the idea gradle task is broken
L1627[21:00:00] <wundrweapon> h
L1628[21:00:06] <wundrweapon> oh*
L1629[21:00:14] <howtonotwin> you just open the build.gradle directly in IDEA
L1630[21:00:17] <kashike> idea gradle task isn't needed, really, either
L1631[21:00:41] ⇦ Quits: ScottehBoeh (~ScottehBo@95.144.82.240) (Quit: Leaving)
L1632[21:00:48] <howtonotwin> anyway I should go
L1633[21:00:50] <howtonotwin> Have fun!
L1634[21:00:52] *** wundrweapon is now known as wundrweapon|gone_af
L1635[21:00:55] ⇦ Quits: howtonotwin (~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net) (Quit: Pop!)
L1636[21:01:08] <Artillect> which IDE gives me more customizability?
L1637[21:01:19] ⇨ Joins: karjah (~karjah@h200.105.17.98.dynamic.ip.windstream.net)
L1638[21:02:54] <kashike> <kashike> each has their own upsides and downsides, it comes down to which you like more
L1639[21:03:01] *** cpw|out is now known as cpw
L1640[21:05:09] ⇨ Joins: Wastl2_ (~Wastl2@x4e34ccc2.dyn.telefonica.de)
L1641[21:05:44] ⇦ Quits: Wastl2 (~Wastl2@x4e350f85.dyn.telefonica.de) (Ping timeout: 384 seconds)
L1642[21:06:41] <Artillect> fair enough
L1643[21:08:46] ⇨ Joins: mezz_ (~mezz@24.6.28.151)
L1644[21:08:46] MineBot sets mode: +v on mezz_
L1645[21:11:40] ⇦ Quits: mezz (~mezz@2600:1010:b053:89c8:ad19:9704:5bfb:5e2f) (Ping timeout: 206 seconds)
L1646[21:14:23] <Eragonn1490> http://pastebin.com/RtEvBAHR other then the null checks towards the end that will cause a crash, it never changes the block state past the first meta does anyone see what i goofed on?
L1647[21:16:53] <tterrag> Eragonn1490: if (IntegratedBlocks.bookcases.getDefaultState().withProperty(BlockBookcaseMulti.TYPE, EnumBookshelf.one1) != null)
L1648[21:16:54] <tterrag> always true
L1649[21:17:27] <tterrag> I think you want .getValue(BlockBookcaseMulti.TYPE) == EnumBookshelf.one1
L1650[21:23:08] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 198 seconds)
L1651[21:32:44] ⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L1652[21:34:48] ⇦ Parts: wundrweapon|gone_af (uid131782@id-131782.ealing.irccloud.com) ())
L1653[21:35:40] ⇦ Quits: cpup (~cpup@32.218.119.168) (Ping timeout: 186 seconds)
L1654[21:35:58] ⇨ Joins: wundrweapon (uid131782@id-131782.ealing.irccloud.com)
L1655[21:36:03] <wundrweapon> test
L1656[21:36:37] ⇦ Quits: Snapples (uid167569@id-167569.highgate.irccloud.com) (Quit: Connection closed for inactivity)
L1657[21:37:10] <Eragonn1490> http://pastebin.com/sPvSDhPG error currently, file currently http://pastebin.com/j3Zfi75n @tterrag it also still wont change the meta it only changes from step one to step two
L1658[21:38:44] <wundrweapon> have you tried analyzing you code with a debugger?
L1659[21:38:47] <wundrweapon> your*
L1660[21:39:06] ⇨ Joins: AstralSorcerer (~AstralSor@128.151.114.64)
L1661[21:41:31] ⇨ Joins: cpup (~cpup@32.218.114.63)
L1662[21:42:48] *** Mumfrey is now known as mumfrey
L1663[21:42:56] <Eragonn1490> going to doublecheck now
L1664[21:44:53] <Artillect> Eclipse is telling me that I need to implement an inherited method that already exists
L1665[21:45:02] <Artillect> when I apply the recommended fix it just adds the same method
L1666[21:45:40] ⇦ Quits: Artillect (~Artillect@2602:306:c407:2eb0:b52f:b0c7:daf1:7df1) (Remote host closed the connection)
L1667[21:45:41] <wundrweapon> there may be a slightly different param, change in scope/static, etc
L1668[21:47:11] ⇨ Joins: Artillect (~Artillect@2602:306:c407:2eb0:b52f:b0c7:daf1:7df1)
L1669[21:47:28] ⇦ Quits: Meronat (uid190493@id-190493.highgate.irccloud.com) (Quit: Connection closed for inactivity)
L1670[21:50:09] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1671[21:51:07] <wundrweapon> Artillect: did you get it working?
L1672[21:51:25] <Artillect> yeah
L1673[21:51:43] <wundrweapon> oh ok cool
L1674[21:51:45] <Artillect> if I left the method without @Override and with @Override it left me alone
L1675[21:51:54] <Artillect> probably not a good idea but nothing has gone wrong yet
L1676[21:55:57] <wundrweapon> as a general rule of thumb, put @Override on any method intended to override. it's easier for readers to tell what is(n't) inherited and can prevent problems if you accidentally change the method, as the compiler will bark back an error
L1677[22:00:56] <Artillect> where are the minecraft files stored in my project folder?
L1678[22:03:29] <wundrweapon> (project name) > Referenced Libraries > forge-src-whateverversion
L1679[22:03:31] <wundrweapon> iirc
L1680[22:03:34] <wundrweapon> for eclipse
L1681[22:10:43] ⇦ Quits: Eragonn1490 (~eragonn14@2600:1005:b015:7081:995d:8dad:871f:e3ee) (Read error: Connection reset by peer)
L1682[22:14:04] ⇦ Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) ()
L1683[22:18:00] ⇦ Parts: wundrweapon (uid131782@id-131782.ealing.irccloud.com) ())
L1684[22:18:13] <Artillect> wunderweapon I mean like on the filesystem
L1685[22:26:10] <tterrag> in your Gradle cache
L1686[22:27:34] ⇨ Joins: McJty (~jorrit@94-225-196-91.access.telenet.be)
L1687[22:30:30] ⇦ Quits: gr8pefish (~gr8pefish@24-121-241-166.flagcmtk01.res.dyn.suddenlink.net) (Quit: I'm gone)
L1688[22:35:35] ⇨ Joins: mallrat208 (~mallrat20@107-145-175-135.res.bhn.net)
L1689[22:40:07] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:c00a:9cb1:a998:e677)
L1690[22:40:32] ⇦ Quits: Lathanael|Away (~Lathanael@p54961B1A.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L1691[22:43:00] ⇦ Quits: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com) (Quit: Poof)
L1692[22:45:44] <Artillect> I know this code is a disaster but my blockstates aren't working: https://gist.github.com/Artillect/bfb1deede4b570b04e26b7d26c02b123
L1693[22:46:16] ⇨ Joins: Lathanael|Away (~Lathanael@p54960FC9.dip0.t-ipconnect.de)
L1694[22:46:34] <Artillect> can someone take a look at it and tell me what's wrong
L1695[22:47:32] <tterrag> Artillect: first off, simplify your code a TON by looping over EnumFacing values
L1696[22:47:42] <Artillect> will do
L1697[22:47:48] <tterrag> next, get rid of Boolean.valueOf everywhere
L1698[22:47:51] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:c00a:9cb1:a998:e677) (Ping timeout: 206 seconds)
L1699[22:47:56] <tterrag> but what exactly is the problem?
L1700[22:48:21] <Artillect> it doesn't seem to be setting the blockstates correctly
L1701[22:48:40] <Artillect> like "north" isn't being set to true when there is a block it can connect to to the north of it
L1702[22:48:43] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:c00a:9cb1:a998:e677)
L1703[22:50:25] <tterrag> step through and make sure your canConnectTo is working properly
L1704[22:50:30] <Artillect> ok
L1705[22:50:32] <tterrag> also, where are you expecting these variables to be set?
L1706[22:50:41] <tterrag> I mean, where are you using the state?
L1707[22:50:48] <Artillect> what do you mean?
L1708[22:50:58] <Artillect> doesn't it set in the getActualState method?
L1709[22:51:05] <Artillect> or do I need to set them elsewhere
L1710[22:51:43] <tterrag> it does, yes
L1711[22:51:48] <tterrag> but where are you reading from the state?
L1712[22:53:19] ⇨ Joins: immibis (~chatzilla@122-61-224-36.jetstream.xtra.co.nz)
L1713[22:53:59] <Artillect> what do you mean?
L1714[22:54:13] <tterrag> *sigh*
L1715[22:54:17] <tterrag> how do you *know* it's not working?
L1716[22:54:57] <Artillect> i'm not reading from the state, I'm looking at it in game and it's not looking how it is supposed to
L1717[22:55:00] <Artillect> if that makes sens
L1718[22:55:02] <Artillect> *sense
L1719[22:55:14] <tterrag> the debug menu, you mean?
L1720[22:55:27] <Artillect> how do I use the debug menu to read the states?
L1721[22:55:38] <Artillect> oh
L1722[22:55:39] <Artillect> wait
L1723[22:55:41] <Artillect> i'm dumb
L1724[22:55:53] <Artillect> gimme a sec
L1725[22:56:43] <Artillect> all of the states in the debug menu are false when some should be true
L1726[22:56:49] <tterrag> "looking at it ingame" the issue could be anywhere. rendering, reading the state, or the state itself
L1727[22:56:55] <tterrag> ok, the debug menu does not lie
L1728[22:57:04] <tterrag> I'd run a debugger through getActualState
L1729[22:58:00] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:c00a:9cb1:a998:e677) (Ping timeout: 206 seconds)
L1730[22:58:19] ⇨ Joins: Doty1154 (~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net)
L1731[22:59:23] <Artillect> it calls the method getActualState
L1732[22:59:29] <Artillect> what should I try next?
L1733[23:00:04] <tterrag> see if it actually sets the states properly?
L1734[23:00:45] <Artillect> it goes through all of the .withProperty's
L1735[23:01:01] <tterrag> and...
L1736[23:01:04] <Artillect> how can I tell what it is setting them to or what the value of a parameter is during debug?
L1737[23:01:25] <tterrag> inspect the value of the state parameter
L1738[23:02:18] <Artillect> ok
L1739[23:06:45] <Artillect> sorry, how can I do that?
L1740[23:06:57] <Artillect> the display menu cant do nested evaluations
L1741[23:08:06] <Artillect> never mind, i got it
L1742[23:08:36] <Artillect> and all of them are coming out false
L1743[23:10:43] <tterrag> so your problem is your isConnected method
L1744[23:10:45] <tterrag> or whatever it's called
L1745[23:11:19] <Artillect> i'll see what I can do then
L1746[23:11:55] <tterrag> Artillect: why are you using your own energy cap?
L1747[23:12:09] <tterrag> also -> (te instanceof TileEntity) pointless check
L1748[23:12:20] <Artillect> because I'm going to add voltages and such to it eventually
L1749[23:12:25] <Artillect> someone told me to have that check
L1750[23:12:30] ⇦ Quits: Upthorn (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (Ping timeout: 206 seconds)
L1751[23:14:56] ⇦ Quits: Upth (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (Ping timeout: 384 seconds)
L1752[23:15:05] ⇨ Joins: Upthorn (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L1753[23:15:15] ⇨ Joins: plp (~plp@112.203.118.64)
L1754[23:15:24] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Quit: Leaving)
L1755[23:15:39] <tterrag> ah alright, it's your own power API
L1756[23:15:47] <tterrag> I thought it might just be your own instance of FE/Tesla or something
L1757[23:15:56] <tterrag> that's fine
L1758[23:16:31] <Artillect> what's the difference between getActualState and getExtendedState?
L1759[23:16:51] <Artillect> McJty's guide uses getExtendedState but the BlockFence class uses getActualState
L1760[23:17:08] <tterrag> getExtendedState is for rendering only
L1761[23:17:19] <tterrag> and allows the use of non-finite properties
L1762[23:17:27] <tterrag> so called "unlisted" properties
L1763[23:18:20] <Artillect> what's getActualState used for outside of rendering?
L1764[23:19:36] <tterrag> it's passed to a lot of other block methods
L1765[23:19:40] <tterrag> mainly clientside ones, but not always
L1766[23:19:53] <tterrag> bounding/collision boxes, etc
L1767[23:20:18] <Artillect> makes sense
L1768[23:20:42] <Artillect> since I'm using this for rendering only should I use getExtendedState?
L1769[23:21:15] <tterrag> there's no real need
L1770[23:21:22] <tterrag> don't confuse yourself with extended states if you don't need them
L1771[23:22:35] <Artillect> if I want to have a different state if it is connecting to a block vs a pipe would it be necessary/better?
L1772[23:24:09] <tterrag> not at all
L1773[23:24:12] <tterrag> what you are doing now looks fine
L1774[23:24:24] <Artillect> ok
L1775[23:24:25] <tterrag> only use extended state if you need to store something in there that doesn't have a finite amount of states
L1776[23:24:38] <Artillect> for example?
L1777[23:24:39] <tterrag> in this case, your total state count is 6 bits
L1778[23:24:48] <tterrag> slightly less than infinity :)
L1779[23:25:00] <Artillect> alrighty
L1780[23:25:59] <Artillect> if I don't care about the facing in a hasCapability() method what parameter would I use?
L1781[23:28:32] <tterrag> null generally. but in this case, you DO care about the facing, no?
L1782[23:29:22] <Artillect> all of my blocks that have this capability have it on all faces
L1783[23:29:26] ⇦ Quits: plp (~plp@112.203.118.64) (Read error: Connection reset by peer)
L1784[23:29:39] <Artillect> so it doesn't matter which face i'm checking (i think)
L1785[23:29:50] <tterrag> still, use the API properly
L1786[23:30:00] <tterrag> what if someone else uses your capability
L1787[23:30:02] <tterrag> or you change your mind later
L1788[23:30:14] ⇦ Quits: smbarbour (~smbarbour@c-73-211-171-154.hsd1.il.comcast.net) (Ping timeout: 384 seconds)
L1789[23:30:21] <Artillect> so in this case, how would I need to use it properly?
L1790[23:30:26] *** cpw is now known as cpw|out
L1791[23:30:36] <tterrag> pass in the side you are checking connection from
L1792[23:30:47] <tterrag> this is where the EnumFacing loop would be useful
L1793[23:32:12] <Artillect> so I add another parameter with my facing?
L1794[23:32:41] <tterrag> tbh you could just replace the pos parameter
L1795[23:32:52] <tterrag> you have the current pos, just do pos.offset(dir)
L1796[23:33:29] *** TTFTCUTS is now known as TTFT|Away
L1797[23:33:30] <killjoy> Does anyone know when dinnerbone's gonna fully release his new launcher?
L1798[23:34:09] <tterrag> is it not released?
L1799[23:34:46] ⇦ Quits: Akkarin (~Akkarin@bnc.basinmc.org) (Ping timeout: 384 seconds)
L1800[23:34:54] <Artillect> don't i need the opposite direction for the face I'm checking?
L1801[23:34:55] <killjoy> My launcher hasn't autoupdated yet
L1802[23:35:05] <Artillect> like if I'm checking the block above, I check the bottom face?
L1803[23:35:13] <killjoy> He's posted the "staging", but it's not official
L1804[23:35:50] <tterrag> Artillect: hmm...good point. but that's easy
L1805[23:36:19] ⇨ Joins: smbarbour (~smbarbour@c-73-211-171-154.hsd1.il.comcast.net)
L1806[23:36:44] ⇦ Quits: cpup (~cpup@32.218.114.63) (Ping timeout: 186 seconds)
L1807[23:37:27] <Artillect> all right, I'm gonna give it a shot
L1808[23:38:15] <Artillect> and would you look at that, it works
L1809[23:38:21] <Artillect> thanks for the help tterrag!
L1810[23:38:30] <tterrag> np
L1811[23:38:33] <Artillect> wait shit
L1812[23:38:41] <Artillect> twas an illusion
L1813[23:39:14] <illy> sources tell me that they're rewriting the launcher
L1814[23:39:30] <tterrag> Artillect: btw, another benefit of actual over extended, actual state gets used for model lookup
L1815[23:39:35] <tterrag> extended does not, because it can't
L1816[23:39:52] <tterrag> so extended is only useful for CODE rendering
L1817[23:39:58] <Artillect> ah
L1818[23:40:01] <Artillect> that makes sense
L1819[23:40:57] ⇦ Quits: McJty (~jorrit@94-225-196-91.access.telenet.be) (Quit: Leaving)
L1820[23:42:40] <tterrag> Artillect: so the problem now?
L1821[23:42:56] <Artillect> it appears that it's setting them all to true
L1822[23:43:16] ⇦ Quits: Necro (~Necro@p200300700D6416C808F51CF87C5ADC25.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L1823[23:43:44] <Artillect> and if I use the debug menu to check it it crashes with a nullpointerexception
L1824[23:43:55] <tterrag> err
L1825[23:43:57] <tterrag> what
L1826[23:44:44] <Artillect> here's what I have as of now: https://gist.github.com/Artillect/a1ce8d2e19e2f72fdbb1f445d6ce9842
L1827[23:47:41] <Artillect> tterrag: anything look off to you?
L1828[23:48:16] <tterrag> yeah
L1829[23:48:22] <tterrag> you still pass in pos.up() pos.down() etc
L1830[23:48:24] <tterrag> and then offset it again
L1831[23:49:31] <Artillect> whoops
L1832[23:49:56] ⇨ Joins: Naiten (Naiten@5.143.115.178)
L1833[23:50:21] <Artillect> how can I remove the position parameter then?
L1834[23:51:00] <tterrag> I guess you can't
L1835[23:51:05] <tterrag> but don't pass in .up() just pass pos
L1836[23:51:07] <tterrag> or don't offset it
L1837[23:51:09] <tterrag> one or the other
L1838[23:51:13] <Artillect> ok
L1839[23:53:03] <Artillect> still getting a nullpointerexception
L1840[23:53:10] <Artillect> should I add a null check?
L1841[23:54:31] ⇨ Joins: Alex_hawks (~Alex_hawk@2001:8003:84d1:9600:a199:c74a:1c85:6110)
L1842[23:54:55] <killjoy> that's normally how you fix npe
L1843[23:56:28] ⇦ Quits: Grover_c13 (~Courtney@203-59-199-82.dyn.iinet.net.au) (Ping timeout: 186 seconds)
L1844[23:57:26] <tterrag> TE can be null
L1845[23:57:32] <Artillect> I think I may have fixed it
L1846[23:58:29] <Artillect> yep, it's fixed
L1847[23:58:38] <Artillect> thanks for the help (for real this time)!
<<Prev Next>> Scroll to Top