<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:01:13] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 201 seconds)
L2[00:01:32] *** Kaiyouko is now known as Kaiyouka
L3[00:03:03] ⇨ Joins: Tatsu (~Tatsu@cpe-76-92-121-172.kc.res.rr.com)
L4[00:04:25] ⇦ Parts: Vorquel (~Vorquel@174-18-37-37.tcso.qwest.net) ())
L5[00:07:00] ⇦ Quits: LexManos (~LexManos@172.76.2.58) (Read error: Connection reset by peer)
L6[00:09:15] ⇦ Quits: Fridtjof (prassel@fridtjof.xyz) (Ping timeout: 384 seconds)
L7[00:09:55] <capitalthree> I want to port my mod to 1.8, what's the recommended forge version to use?
L8[00:10:05] ⇨ Joins: Fridtjof (prassel@fridtjof.xyz)
L9[00:10:47] ⇨ Joins: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L10[00:10:56] ⇨ Joins: alex_6611 (~alex_6611@p5DE78EAF.dip0.t-ipconnect.de)
L11[00:16:45] *** mrkirby153 is now known as kirby|gone
L12[00:17:18] <TehNut> the... recommended one?
L13[00:18:54] <capitalthree> ok I tried that
L14[00:18:54] <capitalthree> > This mapping 'snapshot_20141001' exists only for MC 1.8!
L15[00:18:58] <capitalthree> what does this mean?
L16[00:19:11] <capitalthree> all I did was put the new forge version into build.gradle
L17[00:19:27] <capitalthree> am I missing a step?
L18[00:19:35] <Matthew> what mc version are you using?
L19[00:19:51] <capitalthree> version = "1.8.9-11.15.1.1722"
L20[00:19:55] <Matthew> !!latest 1.8.9
L21[00:19:56] <MCPBot_Reborn> === Latest Mappings ===
L22[00:19:57] <MCPBot_Reborn> MC Version Forge Gradle Channel
L23[00:19:58] <MCPBot_Reborn> 1.8.9 snapshot_20160301
L24[00:19:58] <MCPBot_Reborn> 1.8.9 stable_22
L25[00:20:01] <capitalthree> before it was
L26[00:20:02] <capitalthree> version = "1.7.10-10.13.4.1558-1.7.10"
L27[00:20:09] <Matthew> use one of those ^
L28[00:20:20] <capitalthree> ahh
L29[00:21:34] ⇦ Quits: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net) (Remote host closed the connection)
L30[00:23:06] ⇨ Joins: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net)
L31[00:23:28] ⇨ Joins: Poppy (~Poppy@chello085216146055.chello.sk)
L32[00:23:49] ⇨ Joins: LexManos (~LexManos@172.76.2.58)
L33[00:23:49] MineBot sets mode: +o on LexManos
L34[00:25:16] <capitalthree> Matthew: but where do I put those?
L35[00:25:46] <Matthew> minecraft { mappings = .... }
L36[00:26:24] <capitalthree> I don't see that section in my build.gradle at all D:
L37[00:27:04] <Matthew> if you have a really old script, you might need to add it
L38[00:27:14] <capitalthree> ah ok
L39[00:27:56] <capitalthree> ok! thanks Matthew!
L40[00:28:02] <capitalthree> I think it's building now
L41[00:31:55] ⇦ Quits: srs_bsns (blk@198-48-175-31.cpe.pppoe.ca) (Ping timeout: 384 seconds)
L42[00:32:09] ⇦ Quits: Brokkoli (~Brokkoli@p5b23c352.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))
L43[00:34:02] ⇨ Joins: srs_bsns (blk@198-48-175-31.cpe.pppoe.ca)
L44[00:36:11] <capitalthree> now this is happening...
L45[00:36:12] <capitalthree> Some problems were found with the configuration of task ':genSrgs'.
L46[00:36:13] <capitalthree> > File '/home/alex/.gradle/caches/minecraft/net/minecraftforge/forge/1.8.9-11.15.1.1722/unpacked/conf/packaged.srg' specified for property 'inSrg' does not exist.
L47[00:36:16] <capitalthree> > File '/home/alex/.gradle/caches/minecraft/net/minecraftforge/forge/1.8.9-11.15.1.1722/unpacked/conf/packaged.exc' specified for property 'inExc' does not exist.
L48[00:39:03] ⇦ Quits: VikeStep (~VikeStep|@a82-14.nat.uq.edu.au) (Quit: Leaving)
L49[00:39:44] ⇨ Joins: Sollux-Captor (~Sollux-Ca@2601:547:c400:bb5e:1d5d:3eb6:4cec:acc2)
L50[00:40:02] <Sollux-Captor> what is the png name for the default creative non search menu?
L51[00:41:25] ⇨ Joins: PrinceCat (~PrinceCat@124-170-66-159.dyn.iinet.net.au)
L52[00:41:41] <killjoy> it's in the creative_inventory folder
L53[00:41:54] <killjoy> assets/minecraft/gui/creative_inventory/something....
L54[00:42:48] <Sollux-Captor> thankyou
L55[00:42:55] <killjoy> assets\minecraft\textures\gui\container\creative_inventory\tab_items.png
L56[00:42:57] <killjoy> that's probably it
L57[00:43:09] <killjoy> or just tab_inventory
L58[00:43:20] <Sollux-Captor> I think tab_inventory is the player inventory
L59[00:43:29] <Sollux-Captor> not a creative inventory
L60[00:43:46] <Sollux-Captor> the one with the red X and the player view
L61[00:43:57] <killjoy> so tab_items is for the categories
L62[00:44:05] <Sollux-Captor> ye
L63[00:44:23] ⇦ Quits: alex_6611 (~alex_6611@p5DE78EAF.dip0.t-ipconnect.de) (Ping timeout: 190 seconds)
L64[00:46:46] *** fry|sleep is now known as fry
L65[00:52:16] <Sollux-Captor> @killjoy, none of them seem to work and the tab_items_search.png is not the search background. item_search.png is and I have no clue where that is located.
L66[00:52:47] <killjoy> don't you have the ResourceLocation?
L67[00:53:11] <Sollux-Captor> What do you mean? Can I not just use the string?
L68[00:53:24] <killjoy> String for what?
L69[00:53:46] <Sollux-Captor> for setBackgroundImageName();
L70[00:53:58] <killjoy> um...
L71[00:54:06] <killjoy> Is this for a container?
L72[00:54:11] <Sollux-Captor> "item_search.png" works but I want the string for the default menu
L73[00:54:26] ⇨ Joins: blood__ (unknown@ool-4574115b.dyn.optonline.net)
L74[00:54:28] <killjoy> like a normal tab?
L75[00:54:57] <Sollux-Captor> Yes
L76[00:54:59] <killjoy> it's tab_item
L77[00:55:19] <killjoy> tab_items.png
L78[00:55:33] <Sollux-Captor> I tried that and I get purple and black squares.
L79[00:55:48] <killjoy> that's because something went wrong.
L80[00:56:17] ⇦ Quits: blood_ (unknown@ool-4574115b.dyn.optonline.net) (Ping timeout: 384 seconds)
L81[00:56:23] <killjoy> what version are you using?
L82[00:57:00] <Sollux-Captor> 1.9
L83[00:57:52] ⇨ Joins: kimfy (~kimfy___@236.5.200.37.customer.cdi.no)
L84[00:57:54] <killjoy> And what is the owner class of that method?
L85[00:58:34] <Sollux-Captor> CreativeTabs . . .
L86[00:58:48] * killjoy is not familiar enough with them
L87[00:58:50] <killjoy> just sec
L88[00:58:51] <Sollux-Captor> But I'm overriding it in my Assign class
L89[01:00:03] <killjoy> leave off the tab_
L90[01:00:12] <killjoy> why are you overriding it?
L91[01:00:29] <killjoy> if anything, you should override getBackgroundImageName()
L92[01:00:44] <killjoy> why don't you call it yourself?
L93[01:01:01] <killjoy> I don't know your reasoning. Please explain
L94[01:02:12] <Sollux-Captor> I am not too sure actually. . . I am only going off of reference code I made a while back for the same mod. Updating things right now.
L95[01:02:34] <killjoy> Well now's as good a time as any to reimplement
L96[01:02:58] <Sollux-Captor> Let me see what happens if comment out the override
L97[01:03:16] <killjoy> What's your override do?
L98[01:03:49] <Sollux-Captor> https://paste.ee/p/RptJW
L99[01:04:14] <killjoy> wow...
L100[01:04:21] <killjoy> nothing
L101[01:04:23] <killjoy> that's what it did
L102[01:04:24] <killjoy> nothing
L103[01:04:26] <Sollux-Captor> :P
L104[01:04:42] <killjoy> might as well do return super.setBackgroundImageName(textures)
L105[01:05:05] <Sollux-Captor> It looks like 1am code that I made a while back. I tend to code at night when it is really late and i'm not thinking. It is 2am right now xD
L106[01:05:17] <Sollux-Captor> Anyways, I fixed it.
L107[01:05:39] <killjoy> "fixed"
L108[01:05:47] <killjoy> it wasn't technically broken
L109[01:06:08] <Sollux-Captor> Well I mean I fixed the black and purple shit
L110[01:06:20] <killjoy> ah
L111[01:09:52] *** TehNut is now known as TehNut|Sleep
L112[01:10:20] <Sollux-Captor> Anyways, I am going to go to bed now before I butcher my code realy badly
L113[01:11:19] ⇦ Quits: Sollux-Captor (~Sollux-Ca@2601:547:c400:bb5e:1d5d:3eb6:4cec:acc2) (Quit: Leaving)
L114[01:13:28] ⇦ Quits: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net) (Remote host closed the connection)
L115[01:15:31] <FusionLord> Anyone know why my uvs are changing? http://puu.sh/oxkQ4/d2324c7ccb.jpg
L116[01:17:17] <FusionLord> fry?
L117[01:17:59] ⇦ Quits: PrinceCat (~PrinceCat@124-170-66-159.dyn.iinet.net.au) (Quit: My Mac has gone to sleep. ZZZzzz…)
L118[01:18:11] <killjoy> looks like a rotation issue
L119[01:18:33] <FusionLord> why would my uvs rotate?
L120[01:18:34] <killjoy> is your texture size correctly let?
L121[01:18:35] <killjoy> *set
L122[01:18:55] <killjoy> is this a te or entity?
L123[01:19:00] <FusionLord> i'm sorry not sure what you mean
L124[01:19:04] <FusionLord> this is a block
L125[01:19:11] <killjoy> then nevermind
L126[01:19:32] ⇦ Quits: killjoy (~killjoy@2606:a000:1118:c020:9c07:b5b6:6ee3:1c84) (Quit: Leaving)
L127[01:19:42] <FusionLord> block state here https://github.com/FusionLord/Hardcore-Nomad/blob/master/src/main/resources/assets/hardcorenomad/blockstates/backpack.json
L128[01:19:50] ⇦ Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a) (Quit: Leaving.)
L129[01:19:59] <FusionLord> after I push it will be I mean
L130[01:20:38] <FusionLord> there pushed
L131[01:21:04] ⇨ Joins: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L132[01:21:15] <fry> FusionLord: add "custom": { "flip-v": true } to the blockstate json, under the "model"
L133[01:22:08] ⇨ Joins: PrinceCat (~PrinceCat@124-170-66-159.dyn.iinet.net.au)
L134[01:23:23] ⇦ Quits: kimfy (~kimfy___@236.5.200.37.customer.cdi.no) (Ping timeout: 190 seconds)
L135[01:23:33] <FusionLord> no as a child just the next line?
L136[01:23:37] <FusionLord> not*
L137[01:24:55] <FusionLord> Thank you, Master Fry
L138[01:27:59] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:7003:b57:f476:a3ba) (Read error: Connection reset by peer)
L139[01:29:45] ⇨ Joins: Jezza (~Jezza@bps-gw.hrz.tu-chemnitz.de)
L140[01:30:07] ⇨ Joins: Naiten (~Naiten@82.162.0.224)
L141[01:35:52] ⇦ Quits: PrinceCat (~PrinceCat@124-170-66-159.dyn.iinet.net.au) (Quit: My Mac has gone to sleep. ZZZzzz…)
L142[01:42:48] *** minecreatr is now known as Mine|dreamland
L143[01:43:42] ⇦ Quits: SandGrainOne (~Terje@cm-84.210.171.146.getinternet.no) (Read error: Connection reset by peer)
L144[01:46:34] <FusionLord> markDirty forces a sync to the server correct?
L145[01:46:40] <FusionLord> in TE
L146[01:51:58] <FusionLord> strange the debug screen know the correct data, but the render doesn't update
L147[01:58:23] ⇦ Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 190 seconds)
L148[01:59:58] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20160427 mappings to Forge Maven.
L149[02:00:01] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20160427-1.9.zip (mappings = "snapshot_20160427" in build.gradle).
L150[02:00:12] <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/
L151[02:00:29] ⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L152[02:01:14] <FusionLord> scrub forgot to read NBT back in oops
L153[02:04:23] *** AEnterpriseAFK is now known as AEnterprise
L154[02:19:46] ⇨ Joins: ghz|lappy (~gigaherz@84.89.63.25)
L155[02:22:17] <ghz|lappy> morning, peoples of the forge
L156[02:31:24] <Wuppy> o/
L157[02:33:25] ⇨ Joins: VikeStep (~VikeStep@101.184.243.180)
L158[02:33:25] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L159[02:38:26] ⇦ Quits: blood__ (unknown@ool-4574115b.dyn.optonline.net) (Read error: Connection reset by peer)
L160[02:38:28] <FusionLord> o/ morning
L161[02:38:37] <ghz|lappy> o/
L162[02:38:49] <Wuppy> how're you peeps
L163[02:39:11] <FusionLord> modeling software just crashed in the middle of a model :(
L164[02:39:14] <ghz|lappy> my ear hurts a bit from the infection, but fine otherwise ;P
L165[02:39:42] <Wuppy> I have a festival today, but the weather today will be 8C, rain and probably snow, hail and thunder :|
L166[02:41:44] <ghz|lappy> Well, they just need to put the music loud enough to push the rain away
L167[02:42:40] <ghz|lappy> (too bad sound is an oscillation and it pulls about as much as it pushes)
L168[02:43:20] ⇨ Joins: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net)
L169[02:44:07] <Wuppy> hehe
L170[02:59:20] *** AEnterprise is now known as AEnterpriseAFK
L171[03:09:03] ⇦ Quits: Pentium320 (aperture@31.7.44.169) (Ping timeout: 190 seconds)
L172[03:11:52] ⇨ Joins: Pentium320 (aperture@169.31-7-44.tkchopin.pl)
L173[03:21:01] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 201 seconds)
L174[03:24:17] <ghz|lappy> ugh MC is so smooth on my desktop, but so sluggish here
L175[03:24:36] <ghz|lappy> can barely handle one instance
L176[03:24:41] <ghz|lappy> having two at once was a slideshow
L177[03:25:29] <ghz|lappy> I feel like there's something wrong with the machine
L178[03:25:38] <ghz|lappy> because many tasks are slow andsluggish that didn't use to be
L179[03:26:19] <ghz|lappy> it's not the SSD, it still gives 450mb/s sequential
L180[03:26:39] <Zorn_Taov> from 1.8 to 1.8.9, where did worldRenderer.startDrawing go?
L181[03:26:42] <ghz|lappy> although only 140mb/s writes
L182[03:26:54] <ghz|lappy> Zorn_Taov: the interface changed a lot
L183[03:27:09] <Zorn_Taov> so where did the tesselator go?
L184[03:27:12] <ghz|lappy> the way you do it now is:
L185[03:27:26] <Zorn_Taov> o.o
L186[03:27:27] <ghz|lappy> tess.begin(quads, vertexformat)
L187[03:27:52] <ghz|lappy> wr.pos(x,y,z).tex(u,v).color(r,g,b).endVertex()
L188[03:27:54] <ghz|lappy> (x4)
L189[03:27:59] <ghz|lappy> wr.draw()
L190[03:28:19] <ghz|lappy> or was it wr.begin and tess.draw?
L191[03:28:43] <ghz|lappy> yeah the latter.
L192[03:28:58] <Zorn_Taov> what's vertexformat in?
L193[03:29:17] <ghz|lappy> IFlexibleBakedModel#getFormat if you use with loaded models
L194[03:29:17] <ghz|lappy> or
L195[03:29:20] <ghz|lappy> DefaultVertedFormats.*
L196[03:29:28] <ghz|lappy> the most common is .ITEM
L197[03:29:35] <ghz|lappy> which is the one used for baked models
L198[03:29:46] <ghz|lappy> but if you do custom polygons
L199[03:29:48] <ghz|lappy> you could use like
L200[03:29:53] <ghz|lappy> DefaultVertedFormats.POSITION_TEX
L201[03:29:56] <ghz|lappy> if you don't need color
L202[03:30:05] <ghz|lappy> DefaultVertedFormats.POSITION_TEX_COLOR if you want colors and texture both
L203[03:30:30] <ghz|lappy> using DefaultVertedFormats.POSITION_TEX_COLOR
L204[03:30:40] <ghz|lappy> and wr.pos().uv().color()
L205[03:30:54] <ghz|lappy> is the closest match to the old method, I believe
L206[03:31:26] <Zorn_Taov> what about a point?
L207[03:31:43] <ghz|lappy> ?
L208[03:31:49] <Zorn_Taov> gl_points
L209[03:31:57] <ghz|lappy> instead of wr.begin(quads)
L210[03:31:59] <ghz|lappy> d
L211[03:32:00] <ghz|lappy> do
L212[03:32:04] <ghz|lappy> wr.begin(points
L213[03:32:27] <ghz|lappy> ittakes the gl constants (in 1.9, there's an enum for it)
L214[03:32:41] <Zorn_Taov> doin this in 1.8.9 :P
L215[03:33:02] <ghz|lappy> yeah then GL11.GL_POINTS
L216[03:33:03] <ghz|lappy> ;P
L217[03:33:20] <Zorn_Taov> I meant the vertex format x3
L218[03:33:27] <Zorn_Taov> prolly do position_color
L219[03:33:37] <ghz|lappy> the vertex format depends on your needs?
L220[03:33:48] <Zorn_Taov> and is it pos instead of addVertex?
L221[03:34:00] <ghz|lappy> yes
L222[03:34:03] <ghz|lappy> well
L223[03:34:16] <ghz|lappy> wr.pos(x,y,z).color(r,g,b).endVertex()
L224[03:34:23] <ghz|lappy> is equivalent to the old "wr.addVertex"
L225[03:34:34] <ghz|lappy> while
L226[03:34:42] <ghz|lappy> wr.pos(x,y,z).tex(u,v).color(r,g,b).endVertex()
L227[03:34:50] <ghz|lappy> woudlbe the equivalent of the old "wr.addVertexWithUV"
L228[03:35:08] <ghz|lappy> but what matters is the vertex format you choose
L229[03:35:18] <Zorn_Taov> can I do wr.color(); then wr.pos.endvertex(); multiple times with the same color?
L230[03:35:19] <ghz|lappy> ifyou use POSITION_COLOR, you'll need the version without .tex
L231[03:35:23] <ghz|lappy> nope
L232[03:35:27] <Zorn_Taov> 3:
L233[03:35:28] <ghz|lappy> each vertex needs its own color
L234[03:37:23] <ghz|lappy> it may be possible to use the global color instead
L235[03:37:36] <ghz|lappy> GlStateManager.color(r,g,b)
L236[03:37:40] <ghz|lappy> wr.begin()
L237[03:37:41] <ghz|lappy> ...
L238[03:37:45] <ghz|lappy> tess.draw
L239[03:37:52] <ghz|lappy> GlStateManager.color(1,1,1)
L240[03:38:12] <ghz|lappy> but if oyu want to reuse the same color for "a few"
L241[03:38:20] <ghz|lappy> you can instead do something like
L242[03:38:27] <ghz|lappy> int r,g,b;
L243[03:38:27] <Zorn_Taov> it'd be the same color for all
L244[03:38:43] <ghz|lappy> r = 1; g= 2; b=3;
L245[03:38:48] <ghz|lappy> point 1
L246[03:38:52] <ghz|lappy> point 2
L247[03:38:54] <ghz|lappy> point 3
L248[03:38:57] <ghz|lappy> all using .color(r,g,b)
L249[03:39:06] <ghz|lappy> r = 3;
L250[03:39:08] <ghz|lappy> point 4
L251[03:39:09] <ghz|lappy> point 5
L252[03:39:10] <ghz|lappy> ...
L253[03:40:05] *** Upthorn is now known as Throxnup
L254[03:41:05] <ghz|lappy> oh hey someone learned the kingdom hearts method for creating "evil twin" names
L255[03:41:17] <Zorn_Taov> oh?
L256[03:41:20] <Zorn_Taov> link?
L257[03:41:26] <ghz|lappy> I mean the nick change just now
L258[03:41:26] <ghz|lappy> XD
L259[03:41:36] <ghz|lappy> it's just shuffling the letters and adding an extra X to the mix
L260[03:41:42] <Zorn_Taov> oh
L261[03:41:54] <ghz|lappy> sora -> roxas, etc
L262[03:42:45] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L263[03:47:55] <Zorn_Taov> someone should make that kind of generator
L264[03:48:05] <Zorn_Taov> it's mainly just an anagram of your name+x
L265[03:49:10] <ghz|lappy> I'm sure there's a million
L266[03:49:13] <Zorn_Taov> well then, that was an easy update to this mod. all I had to do was change those method names around
L267[03:49:20] <Zorn_Taov> woo
L268[03:49:55] <ghz|lappy> heh
L269[03:50:08] <ghz|lappy> now update to 1.9, it changed WorldRenderer name to VertexBuffer ;P
L270[03:52:21] <Zorn_Taov> lol
L271[03:56:02] ⇦ Quits: manmaed (~Ender@bcdd431e.skybroadband.com) (Ping timeout: 195 seconds)
L272[03:57:34] ⇨ Joins: manmaed|AFK (~Ender@bcdd431e.skybroadband.com)
L273[03:57:50] ⇦ Quits: moog (~moog@24-176-156-144.dhcp.jcsn.tn.charter.com) (Read error: Connection reset by peer)
L274[03:58:16] *** manmaed|AFK is now known as manmaed
L275[03:58:24] ⇨ Joins: moog (~moog@24-176-156-144.dhcp.jcsn.tn.charter.com)
L276[04:02:02] ⇨ Joins: Noppes (~Noppes@82-168-99-26.ip.telfort.nl)
L277[04:04:48] <FusionLord> thoughts? http://puu.sh/oxrva/fefce9ae94.jpg
L278[04:05:33] <ghz|lappy> what are those?
L279[04:05:34] <ghz|lappy> I mean
L280[04:05:45] <FusionLord> bedrools
L281[04:05:49] <FusionLord> rolls*
L282[04:05:51] <ghz|lappy> is that a "bed" in different stages of construction?
L283[04:05:54] <ghz|lappy> or different tiers?
L284[04:06:00] <FusionLord> tiers
L285[04:06:40] <FusionLord> theres one more, but I have yet to uv map it
L286[04:07:31] <ghz|lappy> I see some weird lines in the bed, are those intended?
L287[04:07:59] <FusionLord> @fry do i need to flip-v for submodels too?
L288[04:08:24] <fry> try and see
L289[04:08:50] <FusionLord> ok
L290[04:08:59] <ghz|lappy> FusionLord: flip-v is to compensate for differences in the uv mapping semantics
L291[04:09:18] <ghz|lappy> if your modelling program needs UV flipping, it will always need UV flipping
L292[04:09:29] <FusionLord> using blender
L293[04:09:47] <FusionLord> i wasn't sure if it would fall through to the sub models or not
L294[04:09:57] <ghz|lappy> try and see ;P
L295[04:10:09] <FusionLord> i did and it worked
L296[04:10:28] <FusionLord> is it a setting in blender that is flipping the uvs?
L297[04:10:48] ⇦ Quits: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net) (Remote host closed the connection)
L298[04:11:04] <fry> no, it's the difference in coordinate systems and a hole in the obj spec
L299[04:11:38] <FusionLord> oh ok
L300[04:12:08] ⇦ Quits: Gil (uid147942@id-147942.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
L301[04:12:29] <ghz|lappy> FusionLord: where is (0,0) in a texture? ;P
L302[04:12:42] <ghz|lappy> some systems make it bottom-left, with Y growing upward
L303[04:12:52] <ghz|lappy> other systems make it top-left, with Y growing downward
L304[04:13:10] <ghz|lappy> there is a general consensus that X starts on the left, and grows to the right
L305[04:13:39] <ghz|lappy> but it could have been possible for some other systems to use a standard with X growing leftward
L306[04:14:24] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L307[04:14:40] <ghz|lappy> oh and let's not even think of possible systems where the first coord is vertical
L308[04:14:58] <Dark> tbh you can have any system, it all depends on the design goals
L309[04:14:59] <ghz|lappy> if someone made a semantic that follows classic japanese/chinese writing order?
L310[04:15:13] <ghz|lappy> then the first coord would be vertical
L311[04:15:22] <ghz|lappy> and it would start at the top-right
L312[04:16:06] <ghz|lappy> vaguely related trivia:
L313[04:16:14] <ghz|lappy> maps where not always drawn with the north at the top
L314[04:16:31] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 201 seconds)
L315[04:18:00] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L316[04:54:11] ⇨ Joins: fuj1n (~fuj1n@101.190.250.201)
L317[04:56:43] <FusionLord> :\ what is the keyvalue to draw both sides of a face?
L318[04:56:50] <FusionLord> for the .json
L319[04:58:03] ⇨ Joins: kimfy (~kimfy___@236.5.200.37.customer.cdi.no)
L320[04:58:47] <FusionLord> or should I just make another face on the other side?
L321[04:59:50] <Zorn_Taov> look at, uhhh.... glass pane?
L322[04:59:55] <Zorn_Taov> or iron bars
L323[05:02:04] <FusionLord> neither have double sided faces
L324[05:02:14] <FusionLord> they are a cube
L325[05:03:02] <FusionLord> just added the face and flipped normals
L326[05:03:06] <FusionLord> works good :)
L327[05:12:16] *** PaleOff is now known as PaleoCrafter
L328[05:12:53] <Zorn_Taov> oh jeezus, I just crashed with all of this flooding the server I was on before it said I left http://pastebin.com/LCnQ3sLh
L329[05:13:04] ⇨ Joins: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net)
L330[05:15:03] <Zorn_Taov> repeated over 1300 times before my client crashed, wtf
L331[05:16:14] ⇨ Joins: P3pp3rF1y2 (~P3pp3rF1y@100-250-77-178-ptr.xsky.cz)
L332[05:18:37] <PaleoCrafter> Zorn_Taov, is it repeated over 9000 times though?
L333[05:19:47] ⇦ Quits: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net) (Ping timeout: 384 seconds)
L334[05:27:00] *** PaleoCrafter is now known as PaleOff
L335[05:29:41] ⇦ Quits: Naiten (~Naiten@82.162.0.224) (Read error: Connection reset by peer)
L336[05:29:56] ⇨ Joins: Naiten (~Naiten@82.162.0.76)
L337[05:38:40] ⇦ Quits: Zorn_Taov (~Greenfox@c-71-198-205-107.hsd1.ca.comcast.net) ()
L338[05:44:54] ⇦ Quits: Naiten (~Naiten@82.162.0.76) (Read error: Connection reset by peer)
L339[05:46:03] ⇦ Quits: IceDragon (~ThatGuy@69.160.117.131) (Ping timeout: 190 seconds)
L340[05:46:38] ⇨ Joins: IceDragon (~ThatGuy@184.170.8.163)
L341[05:54:28] ⇨ Joins: Naiten (Naiten@77.34.85.143)
L342[05:56:53] ⇨ Joins: agowa338 (~Thunderbi@p54919746.dip0.t-ipconnect.de)
L343[05:59:49] *** AEnterpriseAFK is now known as AEnterprise
L344[06:13:33] ⇨ Joins: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net)
L345[06:17:03] ⇦ Quits: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net) (Ping timeout: 190 seconds)
L346[06:39:41] ⇦ Quits: fuj1n (~fuj1n@101.190.250.201) (Ping timeout: 384 seconds)
L347[06:46:58] ⇨ Joins: alex_6611 (~alex_6611@p5DE78EAF.dip0.t-ipconnect.de)
L348[06:47:15] ⇦ Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a) (Quit: Leaving.)
L349[06:48:34] ⇨ Joins: fuj1n (~fuj1n@101.190.250.201)
L350[06:49:30] ⇦ Quits: fuj1n (~fuj1n@101.190.250.201) (Read error: Connection reset by peer)
L351[06:51:52] <ghz|lappy> WHY is my laptop suddenly so SLOW ;_;
L352[06:52:04] <ghz|lappy> I used to be able ot play mc here at > 60fps back in 2013 XD
L353[06:52:20] <ghz|lappy> now it can barely handle having server+client at once ;P
L354[06:53:51] ⇨ Joins: big_Xplosion (~big_Xplos@37.ip-51-255-167.eu)
L355[07:14:56] <ghz|lappy> :3
L356[07:14:57] <ghz|lappy> https://github.com/gigaherz/Enderthing/releases/tag/v0.4.0
L357[07:15:39] ⇨ Joins: GildedGames (~GildedGam@ec2-54-146-233-64.compute-1.amazonaws.com)
L358[07:17:23] ⇨ Joins: CoolSquid (~CoolSquid@ti0011a400-2417.bb.online.no)
L359[07:17:34] ⇦ Quits: CoolSquid (~CoolSquid@ti0011a400-2417.bb.online.no) (Read error: Connection reset by peer)
L360[07:18:40] *** big_Xplosion is now known as big_Xplo|AFK
L361[07:18:47] <boni> ghz|lappy: how do those locked things handle itemhandlers
L362[07:19:39] <ghz|lappy> the shared inventories are IItemHandlers
L363[07:19:49] <ghz|lappy> I just return the right one from getCapability
L364[07:20:26] <boni> so if i get the itemhandler capability of a locked chest, it'll work correctly?
L365[07:20:38] <ghz|lappy> the locks don't actually "lock" the chest
L366[07:20:42] <ghz|lappy> they change which inventory it's bound to
L367[07:21:03] <boni> so yes
L368[07:21:08] <ghz|lappy> yes
L369[07:21:13] <ghz|lappy> so long as it's not a private chest
L370[07:21:20] <ghz|lappy> private chests can't be automated
L371[07:21:48] <ghz|lappy> I'm considering adding a way to make private chests automatable
L372[07:21:54] <ghz|lappy> as a "disclaimer"
L373[07:22:06] <ghz|lappy> because if you make private chests automatable, it means others could steal fom your private chests ;P
L374[07:22:11] <ghz|lappy> (pipes etc)
L375[07:22:36] *** AEnterprise is now known as AEnterpriseAFK
L376[07:22:38] <ghz|lappy> and also as a means to bind the color code to your player's network
L377[07:22:55] <ghz|lappy> otherwise it acts like a vanilla enderchest, where each player gets their own inventory
L378[07:32:48] ⇨ Joins: DovahOfKiin (~admin@122.171.119.240)
L379[07:37:38] <DovahOfKiin> PotionUtils.addPotionToItemStack requires a PotionType. How do I get one of those?
L380[07:38:17] <Ivorius> PotionType.Type? .-.
L381[07:38:30] <tterrag> it's not an enum
L382[07:38:31] <tterrag> but nice try
L383[07:38:52] <Ivorius> In 1.7 they had the constants there
L384[07:39:07] <DovahOfKiin> What is it in 1.9?
L385[07:39:09] <tterrag> well, not anymore
L386[07:39:29] <Ivorius> DovahOfKiin: ctrl shift space
L387[07:39:32] <Ivorius> Let your IDE do it
L388[07:40:02] <DovahOfKiin> I need an itemstack containing a swiftness potion
L389[07:40:19] <DovahOfKiin> How would I do that? THe itemstack part is easy
L390[07:40:45] <DovahOfKiin> PotionUtils.addPotionToItemStack(new ItemStack(blah), ???)
L391[07:43:52] <DovahOfKiin> Any idea?
L392[07:45:58] <tterrag> I haven't done it myself
L393[07:46:10] <tterrag> but PotionType.getPotionTypeForName seems useful
L394[07:46:23] ⇦ Quits: Maxetime (~Thunderbi@modemcable086.219-70-69.static.videotron.ca) (Ping timeout: 190 seconds)
L395[07:46:26] <ghz|lappy> PotionTypes.*
L396[07:46:30] <ghz|lappy> no wait
L397[07:46:31] <ghz|lappy> it was
L398[07:46:34] <ghz|lappy> MobEffects.*
L399[07:47:07] <ghz|lappy> wait that's a Potion
L400[07:47:07] <ghz|lappy> hmm
L401[07:47:31] <ghz|lappy> yeah PotionTypes was the right one
L402[07:47:31] <ghz|lappy> XD
L403[07:47:44] <Ivorius> Oh no how could I have been so wrong
L404[07:47:44] <ghz|lappy> DovahOfKiin: PotionTypes.LEAPING
L405[07:47:59] <DovahOfKiin> Yep, thanks
L406[07:48:03] <DovahOfKiin> all the potions are her
L407[07:48:04] <DovahOfKiin> e
L408[07:48:49] <Dark> anyone know if there is an event called after a server world has loaded for a client
L409[07:49:09] <Ivorius> Tons
L410[07:49:13] <Ivorius> Depends on when exactly
L411[07:49:38] <Dark> looking for an event that is called before the world ticks but after items/blocks have been remapped to server's values
L412[07:51:27] *** willieaway is now known as williewillus
L413[07:52:43] <williewillus> anyone who's used JUnit 4: how can I dynamically add tests based on files in a directory?
L414[07:53:05] <williewillus> all pairs of ".fun" and ".ok" files in some dir constitutet a test case
L415[07:53:26] <Ivorius> .fun and .ok
L416[07:53:26] <Ivorius> lol
L417[07:53:42] <Dark> I think you need to make a test suit
L418[07:53:49] <Dark> then add test objects to it
L419[07:54:31] ⇨ Joins: KnightMiner (~KnightMin@adsl-76-202-214-219.dsl.emhril.sbcglobal.net)
L420[07:54:59] ⇨ Joins: vox (~voxmods@151.188.105.156)
L421[07:55:03] ⇦ Quits: kimfy (~kimfy___@236.5.200.37.customer.cdi.no) (Ping timeout: 190 seconds)
L422[07:58:07] ⇨ Joins: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi)
L423[08:02:33] ⇨ Joins: madcrazydrumma (~madcrazyd@host-89-241-237-241.as13285.net)
L424[08:02:54] <madcrazydrumma> ItemStack[] inventory = mc.thePlayer.inventory.mainInventory;
L425[08:03:00] <madcrazydrumma> This is giving me a NullPointerException
L426[08:03:37] <Ivorius> Aha
L427[08:03:43] <Ivorius> Find out what object is nil then
L428[08:03:43] <williewillus> Dark: uhh okay so I have a custom class that extends TestSuite
L429[08:03:47] <williewillus> how exactly do I run that
L430[08:04:04] <madcrazydrumma> What do you mean Ivorius ?
L431[08:04:05] <williewillus> if I use @RunWith(Suite.class) @SuiteClasses expewcts test classes
L432[08:04:09] <tterrag> knowing JUnit probably by slapping an annotation on it :P
L433[08:04:09] <Ivorius> Set breakpoint
L434[08:04:11] <Ivorius> Look at objects
L435[08:04:12] <Ivorius> See nil
L436[08:04:18] <Ivorius> Make conditional
L437[08:04:28] <DovahOfKiin> Are there any multiblock tutorials?
L438[08:04:41] ⇦ Quits: turmfalke (~turmfalke@p20030056CF06BAB22D7FE64F4EE137FF.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L439[08:04:43] <Ivorius> Depends on the multiblock
L440[08:04:46] ⇨ Joins: Bitterholz (~Bitterhol@2a02:908:2212:fbc0:5817:2ddc:96cb:c5fb)
L441[08:04:49] <Ivorius> Implementing yourself, not really
L442[08:04:51] <Ivorius> FMP, probably
L443[08:04:57] <DovahOfKiin> FMP?
L444[08:05:05] <Ivorius> Oh wait, multi, not micro
L445[08:05:08] <Ivorius> But probably not
L446[08:05:17] <ghz|lappy> DovahOfKiin: a multiblock is just a bunch of independent blocks actinv as one
L447[08:05:19] <Ivorius> Multiblocks can be very different
L448[08:05:30] <ghz|lappy> there's no definitive approach to them
L449[08:05:38] <madcrazydrumma> Ivorius, like this http://pastebin.com/pm2D9kMy ?
L450[08:05:46] <ghz|lappy> there's just a set of "things" that will need doing:
L451[08:05:59] <ghz|lappy> 1. it's good to have a master TE, and the rest be slave TEs that know their place in the multiblock
L452[08:06:06] <Bitterholz> Good Afternoon, Quick Question, can i have alpha Transparency parts of my modells AND have depth buffer enabled so stuff shows correctly without fighting for depth layers?
L453[08:06:12] <ghz|lappy> 2. you'll need a multiblock "manager" of sorts, that knows if the structure is correct
L454[08:06:16] <Ivorius> madcrazydrumma: Yes
L455[08:06:19] <Ivorius> Make a breakpoint
L456[08:06:19] <ghz|lappy> and how to assemble/disassemble the structure
L457[08:06:23] <Ivorius> And look for yourself
L458[08:06:30] <ghz|lappy> 3. you'll need the multiblock pieces.
L459[08:06:50] <ghz|lappy> this is how I manage my Ender-Rift
L460[08:06:51] <ghz|lappy> https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/rift/RiftStructure.java
L461[08:06:57] <ghz|lappy> it's just one example of many
L462[08:07:24] <tterrag> Bitterholz: block models are automatically sorted for depth
L463[08:07:31] <Ivorius> https://github.com/Ivorforce/IvToolkit/blob/master/src/main/java/ivorius/ivtoolkit/blocks/IvBlockMultiblock.java This would be my multiblock impl
L464[08:07:34] <tterrag> as for enabling the transparency, use the correct BlockRenderLayer
L465[08:07:53] <ghz|lappy> Bitterholz: block, entity or TESR?
L466[08:07:54] <ghz|lappy> ;P
L467[08:08:09] <Bitterholz> tterrag, sadly if i set the renderlayer for Translucent, parts of the modell that overlap start fighting for depth
L468[08:08:17] <tterrag> overlap?
L469[08:08:21] <Bitterholz> sec
L470[08:08:27] <Bitterholz> ill grab a picture
L471[08:08:32] <tterrag> of course if you have overlapping quads taht's not going to work
L472[08:08:35] <tterrag> get rid of them
L473[08:08:48] <Bitterholz> cant get rid of them or ill have floating pieces
L474[08:09:03] <tterrag> uhhh
L475[08:09:09] <williewillus> okay so I have class "AllTests" which has @RunWith(Suite.class) and @SuiteClasses(mycustomsuite.class)
L476[08:09:20] <williewillus> but then it complains mycustomsuite.class has no runnable methods .-.
L477[08:09:58] <barteks2x> Is it possible to force idea formatter to leave annotations in the same line as field/method as is?
L478[08:10:08] <ghz|lappy> Bitterholz: if you have overlapping parts
L479[08:10:11] <ghz|lappy> then your model is broken
L480[08:10:13] <ghz|lappy> nothing will fix that.
L481[08:10:28] <ghz|lappy> MC doesn't do internal geometry sorting
L482[08:10:34] <ghz|lappy> only by blocks within chunks
L483[08:10:54] <Bitterholz> my modell isnt broken. i asure you that
L484[08:10:54] ⇨ Joins: Jiraiyah (~Jiraiyah@5.78.206.227)
L485[08:11:11] <Bitterholz> let me explain it with pictures before you go nutz
L486[08:11:13] <Jiraiyah> anyone familiar with converting linux command line cp to windows version?
L487[08:11:22] <Ivorius> barteks2x: Ew, why
L488[08:11:40] <Jiraiyah> cpw uses this in linux : cp -a runConfigurations ../../../Forge/.idea/
L489[08:11:46] <Jiraiyah> how to convert it to windows version?
L490[08:11:56] <Ivorius> barteks2x: File -> Settings -> Code Style -> Wrapping and Braces -> Method annotations and set to Do not wrap
L491[08:12:02] <Ivorius> Google is your friend
L492[08:12:15] <Jiraiyah> couldn't find it at least fast in first page :/
L493[08:12:32] <Ivorius> Oh wait, that's Android Studio
L494[08:12:33] <Jiraiyah> tried xcopy but the result i think copied the files on themselves
L495[08:12:54] <Ivorius> Although pretty much the same in IDEA
L496[08:13:00] <ghz|lappy> Jiraiyah: what does -a do?
L497[08:13:11] <Jiraiyah> donno not familiar with linux at all
L498[08:13:28] <Ivorius> Jiraiyah: Not the correct channel for this :P
L499[08:13:31] <Jiraiyah> he is copying files under that idea folder somewhere else, but his explanation is a bit shady
L500[08:13:57] <Jiraiyah> i thought someone who had done forge dev env would know what to do :p
L501[08:14:01] <ghz|lappy> -a means "--archive"
L502[08:14:07] <ghz|lappy> means --preserve=all
L503[08:14:27] <Jiraiyah> he is getting this after the command --> http://prntscr.com/axh17e
L504[08:14:27] <ghz|lappy> there's no such flag in windows cmd
L505[08:14:34] <madcrazydrumma> Entity models are still .java right?
L506[08:14:43] <thor12022> did you try "xcopy /?"
L507[08:14:53] <ghz|lappy> madcrazydrumma: the vanilla ones, yes,
L508[08:14:53] <Jiraiyah> yah but not sure what went wrong
L509[08:15:03] <Jiraiyah> xcopy runConfigurations ..\..\..\Forge\.idea\ /s /i
L510[08:15:09] <ghz|lappy> but you can do entities and TESRs by loading .obj models or json models or .b3d models
L511[08:15:09] <Jiraiyah> didn't get the same result
L512[08:15:11] <ghz|lappy> and drawing them
L513[08:15:24] <Bitterholz> tterrag, here you can see what im talking about http://imgur.com/a/kbQEn
L514[08:15:32] <Bitterholz> take a look to ghz
L515[08:15:34] <ghz|lappy> madcrazydrumma: https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/renders/RenderingStuffs.java
L516[08:15:38] <DovahOfKiin> Ivorius, can you explain it all please?
L517[08:15:47] <ghz|lappy> this class can be used to load and render models for entity/TESR purposes
L518[08:15:59] <madcrazydrumma> Using json ghz|lappy ?
L519[08:16:12] <ghz|lappy> json, obj, b3d
L520[08:16:17] <madcrazydrumma> Okay ^
L521[08:16:17] <ghz|lappy> anything that works for lbocks and items
L522[08:16:19] <ghz|lappy> works with that
L523[08:16:24] <Ivorius> DovahOfKiin: I don't really have the time for that lol
L524[08:16:32] <madcrazydrumma> Do you have an entity example?
L525[08:16:39] <madcrazydrumma> Is it easier to use .java?
L526[08:16:40] <Ivorius> It's basically a Master/Slave multiblock too
L527[08:16:45] <ghz|lappy> https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/renders/RenderBall.java
L528[08:16:47] <ghz|lappy> yes, but it's not a mob
L529[08:16:59] <Ivorius> With some placement logic and sanity checks
L530[08:16:59] <tterrag> Bitterholz: it looks ok to me?
L531[08:17:01] <ghz|lappy> depends
L532[08:17:03] <ghz|lappy> do you want animations?
L533[08:17:07] <madcrazydrumma> Yeah
L534[08:17:16] <Jiraiyah> hmm that command is copying four xml files somewhere else, but no matter what parent folder i try, those tasks are not showing up
L535[08:17:16] <ghz|lappy> do you want to manually control arms swinging and such?
L536[08:17:20] <ghz|lappy> if so
L537[08:17:25] <ghz|lappy> then yes, ModelBase is easier
L538[08:17:26] <Bitterholz> tterrag, look closely at the intersection in Pic 1 and 3
L539[08:17:39] <tterrag> ok yes because you are rendering opaque stuff on the translucent layer
L540[08:17:46] <Bitterholz> youll see in pic 1 quads fight for depth, where in pic 3 they dont
L541[08:17:49] <ghz|lappy> better? not necessarily, but easier, it is.
L542[08:17:50] ⇨ Joins: Katrix (~Katrix@2a02:fe0:cb10:2650:c44:9acc:217a:ff71)
L543[08:18:09] <madcrazydrumma> ghz|lappy, okay ill keep your code there for now; ill take a look at using the modelbase stuff
L544[08:18:25] <Bitterholz> so, how can i keep the fancy ass Glass AND have my frames stolid?
L545[08:18:42] <tterrag> don't do that?
L546[08:19:08] <Bitterholz> so there is no option to have both?
L547[08:19:11] <madcrazydrumma> https://gist.github.com/ryankshah/ad158af8f6f19a79e15de0768e430a67 -> can anyone help me figure this out? I still can't find anything wrong
L548[08:19:53] <Bitterholz> tterrag, I have a cutout version of the modell where the Glass is a seperate Object from the Frames
L549[08:19:57] <Bitterholz> does that help?
L550[08:19:59] <tterrag> yes
L551[08:20:10] <tterrag> you need to render them on different layers
L552[08:20:25] <Bitterholz> so, how the HELL do i tell it to render the Frames as SOLID and the Glass parts as TRNASLUCENT
L553[08:20:37] <Bitterholz> i go no clue how to do more than one layer XD
L554[08:20:58] <Bitterholz> im a total nubcake there
L555[08:21:08] <madcrazydrumma> Can't you render the whole thing as CUTOUT?
L556[08:21:36] <Bitterholz> madcrazydrumma, then i lose the Blue tint entirely
L557[08:21:40] <madcrazydrumma> hmm
L558[08:21:44] <Bitterholz> same as not rednering the Glass at all
L559[08:21:48] <williewillus> anyone good with junit PM?
L560[08:21:51] <williewillus> i really need help lol
L561[08:22:30] <masa> madcrazydrumma: what the hell are those .equals() calls doing there? O_o
L562[08:22:51] <masa> of course that latter one will NPE as soon as there is an empty slot
L563[08:22:51] <tterrag> Bitterholz: you'll need your own model class
L564[08:23:00] <tterrag> but you can pretty easily just combine the two existing models
L565[08:23:08] <masa> because you are calling .equals(null) on null...
L566[08:23:13] <Bitterholz> its allready one modell class
L567[08:23:39] <Bitterholz> The whole thing is within one File, Frame and glass are different Cuboids
L568[08:23:44] <madcrazydrumma> masa, so what should i be doing to check there's no item there?
L569[08:24:17] <masa> just inventory[i] != null to see tjhat there is an item
L570[08:24:19] <tterrag> Bitterholz: code?
L571[08:24:30] <masa> or ItemStack to be precise
L572[08:24:35] <Bitterholz> wich code you want tterrag
L573[08:24:38] <Bitterholz> XD
L574[08:24:41] <tterrag> the model code
L575[08:24:52] <Bitterholz> so all including the JSOn files?
L576[08:25:30] <madcrazydrumma> masa, and for the main inventory check? or do i not need that?
L577[08:25:36] <tterrag> you just told me it's already a model class
L578[08:25:40] <masa> just remove both of the .equals() calls
L579[08:25:44] <tterrag> give me that class
L580[08:25:56] <masa> for the inventory it basicallu does the exact same as inventory == null
L581[08:26:21] <masa> what are those items/that piece of code used for?
L582[08:26:26] <madcrazydrumma> a gui
L583[08:26:59] <madcrazydrumma> Even then masa its giving the same error
L584[08:27:04] <Bitterholz> tterrag, well, i have a block class that handles the model, and a Tile Entity handling the connections
L585[08:27:09] <masa> is that a MultiMap or something, because you are putting stuff to the same "Inventory" key in the map
L586[08:27:14] <Bitterholz> you need both or just the block
L587[08:27:16] <tterrag> give me the *model* class
L588[08:27:24] <tterrag> not block, not TE
L589[08:27:35] <madcrazydrumma> Yeah it is
L590[08:27:42] <madcrazydrumma> and could it be because my gui pauses the game?
L591[08:27:43] <Bitterholz> what do you mean by modell class?
L592[08:27:51] <Bitterholz> its a obj if you want that
L593[08:27:56] <tterrag> <Bitterholz> its allready one modell class
L594[08:28:15] <ghz|lappy> (model has only one L, btw)
L595[08:28:29] ⇦ Quits: DovahOfKiin (~admin@122.171.119.240) (Ping timeout: 384 seconds)
L596[08:28:32] <Bitterholz> ghz|lappy, noted lol
L597[08:28:50] <masa> madcrazydrumma: hmm I don't think that would affect it... not sure though. Can you update the gist?
L598[08:29:02] <madcrazydrumma> to include what?
L599[08:29:13] <Bitterholz> tterrag, the modell is rendered directly from the Block class out of a .obj file
L600[08:29:18] <masa> you said it still crashes, udpate the code and the log
L601[08:29:40] <Bitterholz> tterrag, so, what do you want to look at?
L602[08:29:53] <tterrag> then why did you tell me you had a model class
L603[08:30:03] <tterrag> <tterrag> Bitterholz: you'll need your own model class
L604[08:30:03] <tterrag> <tterrag> but you can pretty easily just combine the two existing models
L605[08:30:06] <Bitterholz> language barrier im sorry,
L606[08:30:13] <tterrag> it's fine
L607[08:30:18] <tterrag> you need to create your own IBakedModel
L608[08:30:22] <madcrazydrumma> https://gist.github.com/ryankshah/ad158af8f6f19a79e15de0768e430a67 masa
L609[08:30:31] <madcrazydrumma> i gave the whole gui code there so you can see whats going on
L610[08:30:36] <Bitterholz> well, its still ONE .obj
L611[08:30:44] <Bitterholz> just different Cuboids
L612[08:31:16] <Bitterholz> every frame piece has a Cuboid, so does every piece of Glass
L613[08:31:55] <tterrag> well you will probably need to separate it
L614[08:32:10] <Bitterholz> hmm and then render 2 modells ontop of each other?
L615[08:32:15] <tterrag> in your model, in getQuads you can access the current render layer, and return the proper part of the model
L616[08:32:19] <masa> madcrazydrumma: well it tells you that the NPE is on line 204
L617[08:33:04] <masa> so either mc, mc.thePlayer or mc.thePlayer.inventory is null, and I'm guessing it might be mc
L618[08:33:10] <Bitterholz> tterrag, uhm...i currently render via ExtendedBlockState
L619[08:33:18] ⇦ Quits: ghz|lappy (~gigaherz@84.89.63.25) (Remote host closed the connection)
L620[08:33:22] <Bitterholz> so i got no idea about getQuads
L621[08:33:24] <masa> or does that get set in the GuiSCreen constructor?
L622[08:33:47] <masa> actually no it won't since you don't call super()
L623[08:34:03] <madcrazydrumma> So shall i call super?
L624[08:34:20] <tterrag> Bitterholz: again you need to make your own IBakedModel
L625[08:34:40] <Bitterholz> uhggg really?
L626[08:34:45] <masa> usually you should yes, but also check that the guiScreen or gui constructor then ets it, which I'm guessing it will
L627[08:34:53] <masa> *sets
L628[08:35:00] <Bitterholz> i think ill just leave it glassless then
L629[08:35:21] ⇦ Quits: auenf (David@DC-53-50.bpb.bigpond.com) (Remote host closed the connection)
L630[08:35:24] <madcrazydrumma> even using super() it doesn't work haha
L631[08:35:32] <madcrazydrumma> so one of them is null
L632[08:35:36] <Bitterholz> id have to rewrite everything for making my own IBakedModel
L633[08:35:46] <Bitterholz> plus i got no idea how that stuff workjs
L634[08:35:49] <madcrazydrumma> Same error
L635[08:36:19] ⇨ Joins: auenf (David@DC-53-50.bpb.bigpond.com)
L636[08:36:37] <tterrag> Bitterholz: no really you wouldn't
L637[08:37:05] <Bitterholz> tterrag, do you have some kind of template for that stuff?
L638[08:37:07] <tterrag> you would just combine the different models in your own, then passthrough to them based on the layer
L639[08:37:07] *** kroeser|away is now known as kroeser
L640[08:37:33] <masa> madcrazydrumma: well looking at GuiScreen, it doesn't actually have a defined constructor, the GuiSCreen#mc is actually set in setWorldAndResolution()
L641[08:37:54] <masa> which will only be called after the constructor is done, so yeah that wouldn't work
L642[08:37:58] <Bitterholz> Well, for now i think ill just try and make Items flow first
L643[08:38:10] <Bitterholz> looks good enough witout the Galss
L644[08:38:23] <madcrazydrumma> masa, I called Minecraft.getMinecraft() - but now I'm getting a ClassCastException saying it cant be cast to container (the gui)
L645[08:38:26] <Bitterholz> glass*
L646[08:38:28] <masa> so you could just set the mc field yourself in the constructor before you calll the addItems()
L647[08:38:49] <masa> where did you try to put that?
L648[08:39:27] <madcrazydrumma> Try put what?
L649[08:39:43] <masa> the reference from Minecraft.getMinecraft()
L650[08:40:07] <madcrazydrumma> I'm not doing that anymore, in my GuiHandler i put the player from getServerGuiElement and client into the constructor and use that
L651[08:41:09] <masa> hm, what exactly are you doing anyway... some sort of custom anvil?
L652[08:41:15] <madcrazydrumma> yea
L653[08:41:26] <madcrazydrumma> updated gist https://gist.github.com/ryankshah/ad158af8f6f19a79e15de0768e430a67
L654[08:41:31] <masa> then why do you extend GuiScreen and not GuiContainer? especially if you are using the GuiHandler to open it
L655[08:41:52] <madcrazydrumma> because its not a slot based gui, im doing all my own rendering
L656[08:42:14] ⇦ Quits: Gaz (~Gaz492@ticklemy.ninja) (Quit: Fucking Mice and ethernet cables)
L657[08:42:29] <madcrazydrumma> Should i rather be using Minecraft.getMinecraft().displayGuiScreen(new GuiAnvil(playerIn)); ?
L658[08:43:12] <masa> if it's not a slot based gui, then you shouldnät be using GuiHandler either
L659[08:43:21] <masa> so yeah, something liek that
L660[08:44:09] ⇦ Quits: vox (~voxmods@151.188.105.156) (Ping timeout: 201 seconds)
L661[08:44:28] <masa> well correction, if it's not a container-based gui, but anyway
L662[08:44:54] ⇨ Joins: Gaz (~Gaz492@138.201.89.68)
L663[08:45:06] <madcrazydrumma> ^^
L664[08:45:15] <madcrazydrumma> Alright now it's working, cheers man
L665[08:50:49] *** amadornes[OFF] is now known as amadornes
L666[08:58:57] ⇨ Joins: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net)
L667[08:59:55] ⇦ Quits: madcrazydrumma (~madcrazyd@host-89-241-237-241.as13285.net) (Quit: Leaving)
L668[09:00:47] ⇦ Quits: alex_6611 (~alex_6611@p5DE78EAF.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L669[09:07:28] ⇦ Quits: Gaz (~Gaz492@138.201.89.68) (Quit: Fucking Mice and ethernet cables)
L670[09:08:39] ⇨ Joins: whitephoenix (~whitephoe@216-160-104-253.tukw.qwest.net)
L671[09:09:35] *** kroeser is now known as kroeser|away
L672[09:14:16] ⇦ Quits: VikeStep (~VikeStep@101.184.243.180) (Read error: Connection reset by peer)
L673[09:14:55] <gigaherz> http://mojang.com/2016/04/minecraft-193-pre-release-2/
L674[09:15:21] ⇨ Joins: Gaz (~Gaz492@ticklemy.ninja)
L675[09:16:03] ⇦ Quits: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net) (Ping timeout: 190 seconds)
L676[09:18:36] ⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L677[09:18:37] ⇨ Joins: stiforr_ (~stiforr@146.sub-97-35-128.myvzw.com)
L678[09:20:23] *** TTFT|Away is now known as TTFTCUTS
L679[09:24:53] *** kroeser|away is now known as kroeser
L680[09:26:47] <williewillus> uhh
L681[09:26:59] <williewillus> already imagining the rage now that feet-killing endermen no longer works
L682[09:28:17] <gigaherz> hmm I thought endermen only became aggressive if you looked at their head
L683[09:28:35] <gigaherz> or roughly in the direction of their head, at least
L684[09:29:40] <barteks2x> I thought it was a feature
L685[09:33:29] ⇦ Quits: stiforr_ (~stiforr@146.sub-97-35-128.myvzw.com) (Ping timeout: 201 seconds)
L686[09:37:35] ⇦ Quits: Gaz (~Gaz492@ticklemy.ninja) (Quit: Fucking Mice and ethernet cables)
L687[09:38:00] ⇨ Joins: Gaz (~Gaz492@2a01:4f8:c17:39ed::2)
L688[09:38:59] ⇨ Joins: Stiforr (~Stiforr@ip72-216-8-185.pn.at.cox.net)
L689[09:39:00] ⇦ Quits: Jezza (~Jezza@bps-gw.hrz.tu-chemnitz.de) (Quit: Work... heh)
L690[09:41:12] <masa> they didn't even fix that NPE with loading player reputation for villages
L691[09:41:23] <williewillus> what was that?
L692[09:42:14] <masa> whenever any player has any reputation in a village, the server has a nice NPE when loading the village data from disk
L693[09:42:27] <gigaherz> reported by tangoTek a few days ago
L694[09:42:28] <gigaherz> ;P
L695[09:42:30] <masa> I guess it crashes dedi servers, but in single player I just see the NPE in console
L696[09:42:33] <masa> yep
L697[09:42:44] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 201 seconds)
L698[09:43:00] <gigaherz> https://twitter.com/TangoTekLP/status/724885365115506688
L699[09:43:15] *** PaleOff is now known as PaleoCrafter
L700[09:49:16] ⇦ Quits: Gaz (~Gaz492@2a01:4f8:c17:39ed::2) (Quit: Fucking Mice and ethernet cables)
L701[09:50:25] ⇨ Joins: alex_6611 (~alex_6611@p5DE78EAF.dip0.t-ipconnect.de)
L702[10:04:15] ⇨ Joins: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net)
L703[10:08:14] ⇨ Joins: Brokkoli (~Brokkoli@p5B23C352.dip0.t-ipconnect.de)
L704[10:16:10] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L705[10:18:01] ⇨ Joins: SandGrainOne (~Terje@cm-84.210.171.146.getinternet.no)
L706[10:22:40] ⇨ Joins: Jezza (~Jezza@92.206.5.6)
L707[10:30:49] ⇦ Quits: Lunatrius (~Lunatrius@cpe-77.38.77.164.cable.t-1.si) (Read error: Connection reset by peer)
L708[10:31:04] ⇨ Joins: Lunatrius (~Lunatrius@cpe-77.38.77.164.cable.t-1.si)
L709[10:35:45] *** williewillus is now known as willieaway
L710[10:37:18] <masa> well, found that NPE
L711[10:37:24] ⇦ Quits: Jiraiyah (~Jiraiyah@5.78.206.227) (Read error: Connection reset by peer)
L712[10:38:06] ⇨ Joins: Shukaro (~Shukaro@130.108.232.236)
L713[10:38:43] ⇨ Joins: Jiraiyah (~Jiraiyah@5.78.206.227)
L714[10:41:01] <masa> in VillageCollection#readFromNBT() they create new Village(); without a world argument, so then the Village#readVillageDataFromNBT() has null in its this.worldObj when it tries to call this.worldobj.getMinecraftServer().getPlayerProfileCache()
L715[10:43:00] <masa> hmm, in MapStorage#loadData() they also create the VillageCollection with the constructor that only takes a String argument...
L716[10:43:05] *** cpw|out is now known as cpw
L717[10:44:36] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L718[10:45:01] ⇦ Quits: whitephoenix (~whitephoe@216-160-104-253.tukw.qwest.net) (Ping timeout: 201 seconds)
L719[10:45:26] ⇦ Quits: keybounce (~keybounce@45-25-230-67.lightspeed.bkfdca.sbcglobal.net) (Quit: Sleep? Did I say sleep?)
L720[10:45:37] ⇦ Quits: Jiraiyah (~Jiraiyah@5.78.206.227) (Ping timeout: 384 seconds)
L721[10:45:41] ⇨ Joins: whitephoenix (~whitephoe@216-160-104-253.tukw.qwest.net)
L722[10:48:21] ⇨ Joins: Gaz (~Gaz492@2a01:4f8:c17:39ed::2)
L723[10:48:23] ⇨ Joins: madcrazydrumma (~madcrazyd@host-89-241-237-241.as13285.net)
L724[10:48:32] <madcrazydrumma> How can i change the cursor to my own?
L725[10:53:24] ⇦ Quits: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net) (Remote host closed the connection)
L726[10:59:26] ⇨ Joins: mentlerd (~mentlerd@catv-176-63-185-209.catv.broadband.hu)
L727[10:59:39] ⇦ Quits: mentlerd (~mentlerd@catv-176-63-185-209.catv.broadband.hu) (Client Quit)
L728[11:04:43] ⇨ Joins: kimfy (~kimfy___@236.5.200.37.customer.cdi.no)
L729[11:06:33] ⇨ Joins: theFlaxbeard (~theFlaxbe@184.97.222.161)
L730[11:08:23] <madcrazydrumma> Anyone have an idea?
L731[11:09:39] <masa> isn't that up to the OS theme?
L732[11:09:59] <madcrazydrumma> Oh yeah hmm true
L733[11:10:03] <madcrazydrumma> What about the crosshair?
L734[11:10:30] <masa> that's in the resource pack/textures
L735[11:10:43] ⇦ Quits: moog (~moog@24-176-156-144.dhcp.jcsn.tn.charter.com) (Ping timeout: 190 seconds)
L736[11:10:59] ⇨ Joins: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net)
L737[11:11:10] <tterrag> from java it's not easy
L738[11:11:18] <tterrag> You will need native code
L739[11:11:38] <tterrag> (see: awt)
L740[11:11:40] <madcrazydrumma> Ahh tterrag not worth it then haha
L741[11:11:43] ⇦ Quits: Brokkoli (~Brokkoli@p5B23C352.dip0.t-ipconnect.de) (Ping timeout: 190 seconds)
L742[11:11:53] <madcrazydrumma> Is there a way to change the crosshair from code?
L743[11:13:06] <tterrag> The ingame one?
L744[11:13:13] <tterrag> It's a texture
L745[11:13:26] <madcrazydrumma> Yeah, masa said its in resource pack/textures, but there must be a way to change it from code
L746[11:13:45] <tterrag> Sure I guess
L747[11:13:48] <madcrazydrumma> Like i want to change it for example when i wield a different item
L748[11:13:57] <tterrag> But why not just replace the texture
L749[11:14:02] <tterrag> ahh
L750[11:14:17] <madcrazydrumma> ^^
L751[11:14:25] <madcrazydrumma> Otherwise i would have just done that haha
L752[11:14:26] <tterrag> I believe you can use RenderGameOverlayEvent
L753[11:14:37] <madcrazydrumma> That handles the crosshair too?
L754[11:14:48] <tterrag> There should be a sub event for cross hair
L755[11:15:33] <tterrag> or a type
L756[11:16:18] <madcrazydrumma> yeah its a type. So could I do: if(event.getType() == ElementType.CROSSHAIRS) {} and if my item is in hand, cancel the event and draw my own? or..
L757[11:16:59] <tterrag> right
L758[11:17:51] ⇨ Joins: Brokkoli (~Brokkoli@p5b23c982.dip0.t-ipconnect.de)
L759[11:24:59] ⇨ Joins: Hgrebnednav (~Hgrebnedn@d8D872D48.access.telenet.be)
L760[11:26:57] ⇦ Quits: kimfy (~kimfy___@236.5.200.37.customer.cdi.no) (Ping timeout: 201 seconds)
L761[11:28:04] ⇦ Quits: madcrazydrumma (~madcrazyd@host-89-241-237-241.as13285.net) (Quit: Leaving)
L762[11:30:37] *** V is now known as Vigaro
L763[11:38:21] <FusionLord> are Vanilla entities no registered with the EntityRegistry?
L764[11:40:59] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L765[11:56:52] ⇨ Joins: kimfy (~kimfy___@236.5.200.37.customer.cdi.no)
L766[11:58:09] ⇦ Quits: jk-5 (~jk-5@D549D0E1.cm-10-1b.dynamic.ziggo.nl) (Ping timeout: 384 seconds)
L767[12:03:12] ⇨ Joins: Drullkus (~Dru11kus@205.155.154.1)
L768[12:04:46] *** PaleoCrafter is now known as PaleOff
L769[12:07:56] ⇨ Joins: Dru11kus (~Dru11kus@205.155.154.1)
L770[12:08:58] ⇦ Quits: Dru11kus (~Dru11kus@205.155.154.1) (Read error: Connection reset by peer)
L771[12:09:14] ⇨ Joins: Dru11kus (~Dru11kus@205.155.154.1)
L772[12:09:16] ⇦ Quits: Dru11kus (~Dru11kus@205.155.154.1) (Remote host closed the connection)
L773[12:09:25] ⇨ Joins: Dru11kus (~Dru11kus@205.155.154.1)
L774[12:09:58] *** Vigaro is now known as V
L775[12:10:03] ⇦ Quits: Drullkus (~Dru11kus@205.155.154.1) (Ping timeout: 384 seconds)
L776[12:12:09] ⇦ Quits: Dru11kus (~Dru11kus@205.155.154.1) (Remote host closed the connection)
L777[12:12:50] ⇨ Joins: Drullkus (~Dru11kus@205.155.154.1)
L778[12:12:58] ⇦ Quits: Drullkus (~Dru11kus@205.155.154.1) (Remote host closed the connection)
L779[12:16:30] ⇨ Joins: Drullkus (~Dru11kus@205.155.154.1)
L780[12:19:07] ⇦ Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 384 seconds)
L781[12:19:53] ⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L782[12:20:23] ⇨ Joins: Intektor (~Intektor4@p5B275BDA.dip0.t-ipconnect.de)
L783[12:20:40] <Intektor> how can I send a chat message to everyone, from the server?
L784[12:25:56] ⇦ Quits: Naiten (Naiten@77.34.85.143) (Read error: Connection reset by peer)
L785[12:26:16] ⇨ Joins: Jiraiyah (~Jiraiyah@151.235.135.189)
L786[12:26:19] *** big_Xplo|AFK is now known as big_Xplosion
L787[12:26:54] ⇨ Joins: MikrySoft (~MikrySoft@89-76-18-43.dynamic.chello.pl)
L788[12:29:04] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L789[12:29:12] <capitalthree> Intektor: you just type "say message" on the console
L790[12:29:17] <capitalthree> just don't use the /
L791[12:29:31] <capitalthree> oh wait
L792[12:29:37] <capitalthree> you probably mean *from a mod*
L793[12:29:43] <Intektor> yeah mate
L794[12:29:44] * capitalthree hides
L795[12:29:51] <capitalthree> I don't know that answer, sorry :P
L796[12:31:05] ⇦ Quits: MikrySoft (~MikrySoft@89-76-18-43.dynamic.chello.pl) (Killed (NickServ (GHOST command used by MikrySoft|2)))
L797[12:31:09] ⇨ Joins: MikrySoft|2 (~MikrySoft@89-76-18-43.dynamic.chello.pl)
L798[12:35:13] <masa> look into what happens when the server receives a chat message and it passes it to other players
L799[12:35:46] <tterrag> PlayerList#sendChatMsg
L800[12:35:50] <masa> probably it just loops through all players and sends a message
L801[12:35:50] <tterrag> seems to be the entry point
L802[12:40:20] <gigaherz> ugh, why's InventoryHelper.spawnItemStack private in 1.8.9 :(
L803[12:40:27] ⇨ Joins: DovahOfKiin (~admin@122.171.119.240)
L804[12:40:52] ⇨ Joins: Gil (uid147942@2604:8300:100:200b:6667:5:2:41e6)
L805[12:42:47] <DovahOfKiin> I want to have my block, say X, do something when it is right clicked with my item, Y. What are the differences between these options?: a) override onBlockClicked in X, and check for item b) same as a), but use onBlockActivated instead c) override onItemUse in Y and check for block
L806[12:45:08] <gigaherz> onBlockActivated is the correct method
L807[12:45:30] <gigaherz> onItemUse won't fire if onBlockActivated "accepts" the click
L808[12:46:43] <gigaherz> GAH crap
L809[12:46:46] ⇦ Quits: auenf (David@DC-53-50.bpb.bigpond.com) (Remote host closed the connection)
L810[12:46:51] <gigaherz> I made use of 1.9 features in the json models
L811[12:46:51] <gigaherz> XD
L812[12:47:44] ⇨ Joins: auenf (David@DC-53-50.bpb.bigpond.com)
L813[12:48:03] <masa> I'm not even going to support 1.8.9 anymore, except for some of the small utility mods
L814[12:49:55] <gigaherz> okay the chest model works
L815[12:49:56] <masa> mainly because I use two of them on the client that I play on my vanilla 1.8.9 server on :p
L816[12:49:56] <gigaherz> now the items
L817[12:51:06] <LatvianModder> I dont get why people dont move to 1.9 instantly :P
L818[12:51:11] <LatvianModder> didn't*
L819[12:51:44] <gigaherz> elytra + combat changes
L820[12:51:48] <gigaherz> although
L821[12:51:50] <gigaherz> for modders
L822[12:51:51] <gigaherz> the new registry
L823[12:51:54] <gigaherz> the new potion system
L824[12:52:05] <gigaherz> \o/
L825[12:52:06] <gigaherz> there fixed
L826[12:52:14] <gigaherz> "backported" the item/generated.json model
L827[12:52:44] <gigaherz> hmmm it's not quite right XD
L828[12:52:57] <gigaherz> oh oops
L829[12:52:58] <gigaherz> _righthand
L830[12:55:05] <capitalthree> LatvianModder: because forge isn't even stable for 1.9 yet? :P
L831[12:55:06] ⇦ Quits: Drullkus (~Dru11kus@205.155.154.1) (Read error: Connection reset by peer)
L832[12:55:31] <LatvianModder> so what?
L833[12:55:38] <LatvianModder> if noone uses it, it wont get more stable
L834[12:56:30] <gigaherz> waityou said didn't
L835[12:56:33] <gigaherz> I answered "did"
L836[12:56:33] <gigaherz> ;P
L837[12:56:54] <gigaherz> the reason is simply, generally: people are now playing on 1.8.9
L838[12:57:01] <LatvianModder> boo to that
L839[12:57:02] <LatvianModder> :D
L840[12:57:07] <gigaherz> and modders like to get attention so they develop for the currently-used version
L841[12:57:15] <gigaherz> that gives them the chance to get on youtube LPs
L842[12:58:15] <LatvianModder> pfft. thats no modding, thats business
L843[12:58:24] <LatvianModder> where did the fun of creating something go? :P
L844[12:59:31] ⇨ Joins: Loetkolben (~Loetkolbe@ipbcc17c0a.dynamic.kabel-deutschland.de)
L845[13:00:51] ⇦ Quits: Hea3veN (~Hea3veN@190.247.149.195) (Remote host closed the connection)
L846[13:01:15] ⇨ Joins: Hea3veN (~Hea3veN@190.247.149.195)
L847[13:02:49] <Intektor> gigaherz how is you enderthings mod going?
L848[13:03:02] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L849[13:03:12] ⇨ Joins: Drullkus (~Dru11kus@205.155.154.1)
L850[13:03:13] <Intektor> The thing what makes me happy the most is, when my mod gets a lot of downloads :D
L851[13:04:44] ⇨ Joins: vox (~voxmods@151.188.105.156)
L852[13:05:17] <capitalthree> LatvianModder: lol. if noone *develops* it it won't get more stable you mean
L853[13:05:48] <LatvianModder> yes
L854[13:06:02] <tterrag> developing includes testing
L855[13:06:07] ⇦ Quits: manmaed (~Ender@bcdd431e.skybroadband.com) (Ping timeout: 195 seconds)
L856[13:08:34] <LatvianModder> I propose a something new in Java - this = null; :D
L857[13:08:44] <LatvianModder> or this = someOtherObjectWithSameType
L858[13:09:03] ⇨ Joins: manmaed|AFK (~Ender@bcdd431e.skybroadband.com)
L859[13:09:06] <tterrag> That's not how references work
L860[13:09:21] <LatvianModder> oh right, references.. Hmmmp
L861[13:09:23] <tterrag> If you did that the caller's reference would not change
L862[13:09:45] *** manmaed|AFK is now known as manmaed
L863[13:10:38] <DovahOfKiin> what happened to world.getBlockAt in 1.9?
L864[13:10:50] <tterrag> wat
L865[13:11:00] <tterrag> I have never heard of that method
L866[13:11:16] <DovahOfKiin> okay I could've sworn it existed
L867[13:11:24] <DovahOfKiin> how do I get the block at xyz
L868[13:11:31] <LatvianModder> getBlockState(pos).getBlock()
L869[13:11:57] <LatvianModder> and pos is BlockPos. Most methods already has that
L870[13:12:08] <DovahOfKiin> which class is getBlockState from/
L871[13:12:19] <DovahOfKiin> Block?
L872[13:12:20] <LatvianModder> IBlockState
L873[13:12:28] <tterrag> what
L874[13:12:32] <tterrag> No its from world
L875[13:12:38] <LatvianModder> oh, like that
L876[13:12:46] <LatvianModder> yeah, world.getBlockState
L877[13:12:57] <LatvianModder> Are you porting from 1.7.10?
L878[13:13:21] <gigaherz> hmmm (in 1.9) if you specify a transform in the item's "display", does it override the whole "display", or just the transforms you used
L879[13:13:43] <gigaherz> meh I'll just compare them in the ground
L880[13:14:24] <gigaherz> yeh looks fine
L881[13:15:19] <Intektor> i am working with a splitter in my config. How do you get the text the brackets (hey I am a text please get me wtihout the brackets)
L882[13:15:30] <Intektor> in the brackets
L883[13:15:42] <gigaherz> you mean the doublequotes?
L884[13:16:13] <gigaherz> I'm not surewhat you mean XD
L885[13:16:36] ⇦ Quits: Drullkus (~Dru11kus@205.155.154.1) (Read error: Connection reset by peer)
L886[13:16:46] <tterrag> Me either
L887[13:16:47] <Intektor> if you have this: bla bla(this is a text)
L888[13:16:54] <Intektor> i want: this is a text
L889[13:16:58] <gigaherz> so parens, then, not brackets? ;P
L890[13:17:06] <gigaherz> with regexp, youcan do
L891[13:17:26] <tterrag> match on \((.+)\)
L892[13:17:27] <gigaherz> [^\(]*\(([^\)]*)\)
L893[13:17:34] <tterrag> Yeah or that lol
L894[13:17:56] <gigaherz> depends on exactly what you want to search
L895[13:17:57] <gigaherz> ;P
L896[13:18:30] <Intektor> wait I will send you an exact picture of what I mean: http://i.imgur.com/g0LF3Ju.png
L897[13:19:07] <gigaherz> that's parser territory ;P
L898[13:19:30] <mikebald> It looks like you're trying to recreate JSON for some reason.
L899[13:19:43] <tterrag> ^
L900[13:19:53] <thor12022> eh, just use ANTLR in a minecraft mod, totally not overkill. . .
L901[13:20:08] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L902[13:20:17] <Intektor> so how can can I filter the commands out?
L903[13:20:35] <tterrag> The what
L904[13:21:03] <Intektor> if you look into my picture, the user can enter commands, I want these commands
L905[13:21:28] <tterrag> I'm sure regex could do that as well
L906[13:22:50] <Intektor> do I need something like that, because I have really no clue :D Pattern.compile("^(?:([0-9]+)x)?(?:(?:\"([^\"]+)\")|([^@]+))(?:@([0-9]+))?$");
L907[13:22:56] <gigaherz> hmf I wish github had a way to have a multi-release
L908[13:23:10] <gigaherz> (for like, 1.8.9 + 1.9 together, that show up as one release
L909[13:23:15] <gigaherz> but each branch has its own tag)
L910[13:25:39] <gigaherz> https://github.com/gigaherz/Enderthing/releases
L911[13:25:42] <gigaherz> there, they are up :3
L912[13:28:20] *** Mine|dreamland is now known as minecreatr
L913[13:33:41] ⇨ Joins: Vazkii (~Vazkii@a79-169-163-74.cpe.netcabo.pt)
L914[13:35:58] ⇨ Joins: PG85 (webchat@86.89.87.222)
L915[13:37:38] *** LordFokas|out is now known as LordFokas
L916[13:39:43] *** Jezza is now known as Jezza|AFK
L917[13:41:17] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 384 seconds)
L918[13:43:34] *** MrKick|Away is now known as MrKickkiller
L919[13:48:29] ⇨ Joins: Delenas (~Delenas@2600:1016:b020:c530:4052:6e49:4583:6dcd)
L920[13:49:09] <Delenas> o/
L921[13:49:41] <Delenas> Trying to update some stuff from 1.8 to 1.9. Is there an equivalent to World.doesBlockHaveSolidTopSurface(worldIn, pos) ?
L922[13:53:32] ⇦ Quits: Gaz (~Gaz492@2a01:4f8:c17:39ed::2) (Quit: Fucking Mice and ethernet cables)
L923[13:53:39] <Delenas> worldIn.getBlockState(pos.down()).isSideSolid(worldIn, pos.down(), EnumFacing.UP) ?
L924[13:56:05] <thor12022> well, that looks like the opposite of what I do to find if the bottom of a block is solid, so probably.
L925[13:58:03] ⇦ Quits: tali713 (~user@2601:444:8200:c7d:b842:37d2:1e59:354c) (Ping timeout: 190 seconds)
L926[13:58:54] ⇦ Quits: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com) (Quit: brb)
L927[13:59:06] ⇨ Joins: PitchBright (~PitchBrig@cpe00fc8d8a3ce3-cm00fc8d8a3ce0.cpe.net.cable.rogers.com)
L928[14:01:41] ⇦ Quits: vox (~voxmods@151.188.105.156) (Ping timeout: 384 seconds)
L929[14:02:05] <Delenas> Curiosity. Why is that not static? What does the second blockpos do there?
L930[14:04:12] <unascribed> some blocks want to be able to modify their side solidness per position in the world
L931[14:04:19] <unascribed> since they may have rotations or be some sort of microblock
L932[14:04:25] <unascribed> the first blockpos is getting the state from the world
L933[14:04:30] <unascribed> the second is passed into the block class
L934[14:07:10] <tterrag> Delenas: I don't think static means what you think it means :P
L935[14:07:50] <Delenas> It means you don't need an instance of the class to use that piece. It's shared code for all instances of it.
L936[14:08:31] <tterrag> ok. but you said "what does the second blockpos do there?" which is ignoring that there are two other parameters :P
L937[14:08:50] <Delenas> Anyway. I'm tackling a rewrite of BedCraftAndBeyond for 1.9. Send help. And booze.
L938[14:08:54] <Delenas> MovingObjectPosition ?
L939[14:09:28] <tterrag> wot
L940[14:10:16] <unascribed> do you mean "what did MovingObjectPosition get renamed to"
L941[14:10:22] <unascribed> if so it's something like "RayTraceResult" iirc
L942[14:10:38] <unascribed> !gc RayTraceResult
L943[14:10:42] <unascribed> yep
L944[14:10:45] ⇦ Quits: kimfy (~kimfy___@236.5.200.37.customer.cdi.no) (Ping timeout: 384 seconds)
L945[14:11:30] ⇦ Quits: PG85 (webchat@86.89.87.222) (Quit: Web client closed)
L946[14:11:44] <Delenas> Block block = item instanceof ItemBlock && !isFlowerPot() ? Block.getBlockFromItem(item) : this; (This is for a bed)
L947[14:12:26] <tterrag> yes
L948[14:12:27] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping timeout: 384 seconds)
L949[14:12:43] ⇨ Joins: PG85 (~PG85@86.89.87.222)
L950[14:12:45] <Delenas> Please tell me that is a poorly named method.
L951[14:12:53] *** fry is now known as fry|sleep
L952[14:13:12] <PG85> Hey there, anybody have experience with access transformers for 1.8.9? I've set up the gradle.build file and created an _at.cfg file and added the line "public net.minecraft.world.chunk.storage.AnvilChunkLoader", then ran gradle clean and gradle setupdecompworkspace, the access transformer seems to have run successfully. When I try to access the fields on net.minecraft.world.chunk.sto
L953[14:13:12] <PG85> rage.AnvilChunkLoader in eclipse they are still private though :(
L954[14:13:16] ⇨ Joins: kimfy (~kimfy___@236.5.200.37.customer.cdi.no)
L955[14:14:07] <gigaherz> oh, hey, it's approved finally
L956[14:14:07] <gigaherz> http://minecraft.curseforge.com/projects/enderthing/files
L957[14:15:53] <unascribed> !gm isFlowerPot
L958[14:15:58] <unascribed> !mh isFlowerPot
L959[14:16:05] ⇦ Quits: theFlaxbeard (~theFlaxbe@184.97.222.161) (Killed (NickServ (GHOST command used by theFlaxbeard2)))
L960[14:16:28] <unascribed> !gm func_149648_K
L961[14:17:21] <Delenas> ..thank you giga. We needed this.
L962[14:17:31] <unascribed> well I can't find it in recent mappings
L963[14:17:35] <Delenas> Keys for ender chests makes a lot of sense.
L964[14:17:36] <Intektor> how do you register a command?
L965[14:17:38] <unascribed> but it's apparently supposed to be "handlesOwnClone"
L966[14:17:48] <Delenas> wat
L967[14:18:04] <unascribed> and the only thing in vanilla that uses it is isFlowerPot
L968[14:18:05] <unascribed> er
L969[14:18:06] <unascribed> flower pots
L970[14:18:14] <unascribed> so someone took it at face value and mapped it to "isFlowerPot"
L971[14:18:48] <tterrag> yep
L972[14:19:11] <tterrag> What it really means afaict is "should TE exist after destruction"
L973[14:19:35] <tterrag> Since flower pots need to know their drop in getDrops
L974[14:19:45] <unascribed> oh, that sounds really useful actually
L975[14:22:00] <Delenas> Huh. Interesting.
L976[14:22:35] <tterrag> seems to be gone in 1.9 though
L977[14:23:19] <DovahOfKiin> BreweryRecipeHelper: http://pastebin.com/q6KtTRx6 BreweryTileEntity: http://pastebin.com/VCtPwVdM So, if you look at the code, you will see that given a particular set of blocks, my tile entity is to spawn a potion in after 5 seconds. Now, it does that, for the first time. If I rebuild the structure, or replace the tile entity entirely, it spawns these "ghost" potions. They spawn and despawn immediately. If you go close enough, you
L978[14:23:20] <DovahOfKiin> will hear the pickup noise, but no actual potion in inventory. help?
L979[14:24:09] <unascribed> you need to copy your prototype itemstack
L980[14:24:19] <unascribed> picking it up the first time decr's the stack size to 0
L981[14:25:43] <DovahOfKiin> but I'm making a new one every tick; why does the stack size drop to 0?
L982[14:25:52] <Delenas> !gm canPlaceBlockOnSide
L983[14:25:55] <unascribed> because the itemstack is being shared
L984[14:26:02] <unascribed> your recipe helper needs to copy the stack before returning it
L985[14:26:49] <unascribed> and you really should make some sort of Recipe object instead of lists of objects
L986[14:27:11] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L987[14:27:28] <DovahOfKiin> So in the recipe helper, something liek
L988[14:27:30] <DovahOfKiin> like*
L989[14:27:31] <DovahOfKiin> ItemStack i = (ItemStack) al.get(2);
L990[14:27:31] <DovahOfKiin> return i.copy();
L991[14:27:35] <unascribed> yes
L992[14:27:39] <DovahOfKiin> Alright thanks
L993[14:27:42] <unascribed> that way your prototype is never affected
L994[14:27:49] <unascribed> it's always a copy the caller can do whatever they want with
L995[14:27:58] <DovahOfKiin> gotcha
L996[14:28:01] <DovahOfKiin> Yeah I'll do a Recipe object soon
L997[14:28:26] <unascribed> should probably also change checkIfRecipeExists to return a boolean and have a separate getResult method that returns the stack
L998[14:28:28] ⇦ Quits: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi) (Read error: Connection reset by peer)
L999[14:28:33] <unascribed> so you don't create a new ItemStack every tick for no reason
L1000[14:31:12] <McJty> Doing something for no reason is bad in all cases
L1001[14:34:50] <Delenas> for (int i = 0; i < 255; i++) { // I am sad. This is followed by registering item metadata.
L1002[14:35:14] <unascribed> ....?
L1003[14:36:13] <LatvianModder> why would someone stop at 254...
L1004[14:36:26] <LatvianModder> that makes no sense.. <= 255 or < 256 does...
L1005[14:38:46] <Delenas> This codebase is a copy-paste hell.
L1006[14:39:18] <Delenas> Formatting is absurd, crap is copied all over the place, stuff isn't in a very decent OOP layout.
L1007[14:41:19] ⇨ Joins: FallingD (~FallingDu@2001:1c00:b02:c500:9572:2002:ec73:3df0)
L1008[14:41:26] <tterrag> so, most mods then?
L1009[14:41:56] <FallingD> where on the client can i find what fly speed the server has set?
L1010[14:42:37] <unascribed> Minecraft#thePlayer.capabilities iirc
L1011[14:46:00] <Delenas> BiomeGenBase.hell - aka how do I get a biome for a block position?
L1012[14:48:30] ⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Quit: Leaving.)
L1013[14:49:17] <diesieben07> Delenas, World#getBiomeGenForCoords
L1014[14:49:20] *** hipsterpig is now known as Minecraft
L1015[14:49:22] ⇨ Joins: tali713 (~user@70.102.135.175)
L1016[14:49:29] *** Minecraft is now known as pig
L1017[14:53:41] ⇦ Quits: Jiraiyah (~Jiraiyah@151.235.135.189) (Quit: Leaving)
L1018[14:54:17] ⇨ Joins: killjoy (~killjoy@2606:a000:1118:c020:7026:f27b:1ed4:e227)
L1019[14:55:14] <Delenas> How would I check that against a biome though?
L1020[14:55:22] <Delenas> Specifically hell.
L1021[14:56:26] <diesieben07> == BiomeGenBase.helll
L1022[15:00:26] <Delenas> Ah.
L1023[15:01:27] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L1024[15:08:07] *** willieaway is now known as williewillus
L1025[15:08:54] <williewillus> tterrag: ohhhh TIL about isFlowerPot :P
L1026[15:09:02] <williewillus> did it actually get removed?
L1027[15:10:34] <tterrag> I can't find it in my 1.9 source
L1028[15:11:19] <gigaherz> [21:17] (Delenas): ..thank you giga. We needed this.
L1029[15:11:20] <gigaherz> thx ;P
L1030[15:12:28] <williewillus> hmm forge seems to patch in the normal technique for checking TE drops
L1031[15:12:32] <tterrag> yep
L1032[15:12:38] <tterrag> (it was a stupid method so good riddance)
L1033[15:13:42] ⇦ Quits: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net) (Read error: Connection reset by peer)
L1034[15:14:40] <gigaherz> what was isFlowerPot for?
L1035[15:15:08] <williewillus> "should te stay after destruction"
L1036[15:15:12] <tterrag> <tterrag> What it really means afaict is "should TE exist after destruction"
L1037[15:15:13] <tterrag> <tterrag> Since flower pots need to know their drop in getDrops
L1038[15:16:55] *** williewillus is now known as willieaway
L1039[15:17:16] <gigaherz> Oh
L1040[15:17:41] <gigaherz> so the thing we achieve with returning true from harvestBlock
L1041[15:18:58] <gigaherz> wait
L1042[15:19:05] <gigaherz> in 1.8.9, the method was only ever used in getPickBlock
L1043[15:19:20] <gigaherz> or does forge patch the other uses away?
L1044[15:20:03] ⇦ Quits: Hgrebnednav (~Hgrebnedn@d8D872D48.access.telenet.be) (Ping timeout: 190 seconds)
L1045[15:22:40] *** Jezza|AFK is now known as Jezza
L1046[15:25:06] <tterrag> I'd have to look
L1047[15:25:13] <tterrag> I was only recalling based on looking at it a while ago
L1048[15:26:35] <gigaherz> it's a hack
L1049[15:26:39] <gigaherz> Block block = item instanceof ItemBlock && !isFlowerPot() ? Block.getBlockFromItem(item) : this;
L1050[15:26:39] <gigaherz> return new ItemStack(item, 1, block.getDamageValue(world, pos));
L1051[15:26:47] <gigaherz> instead of making the flowerpot override getPickBlock
L1052[15:26:50] <gigaherz> and having a special impl
L1053[15:27:00] <gigaherz> they had a method in there, just to return a different metadata value ...
L1054[15:27:35] <gigaherz> dunno if pre-1.8.9 was like that or not
L1055[15:27:38] <gigaherz> and cba to check ;P
L1056[15:28:41] <Intektor> Is it possible to add itemstacks with specific NBT to a creative tab?
L1057[15:28:47] <gigaherz> yes
L1058[15:28:58] <gigaherz> that's how enchanted books work ;P
L1059[15:29:06] <gigaherz> override getSubItems
L1060[15:29:13] <gigaherz> and add all the stacks in there
L1061[15:32:58] <Intektor> you mean in the item itself, but what if the stacks change, for example if I join another server, and this server has different nbts set
L1062[15:33:24] <gigaherz> uhh
L1063[15:33:40] <gigaherz> the creative menu is client-side
L1064[15:33:43] <tterrag> it's called every time the creative GUI is opened
L1065[15:33:52] <gigaherz> you'd have to have the server send their choices to the client
L1066[15:33:58] <gigaherz> via network messages
L1067[15:34:03] <gigaherz> on login
L1068[15:34:03] <Intektor> I already have that done
L1069[15:34:07] <gigaherz> well then
L1070[15:34:11] <tterrag> <tterrag> it's called every time the creative GUI is opened
L1071[15:34:20] <gigaherz> just append the right set to the list on getSubItems
L1072[15:34:28] <Intektor> ok thanks
L1073[15:34:36] <gigaherz> or alternatively
L1074[15:34:39] <gigaherz> implement your own creativetab
L1075[15:34:45] <gigaherz> and override the method that lists the items to show
L1076[15:35:00] <gigaherz> to use that list instead of the stock one
L1077[15:35:38] <tterrag> that's overkill though
L1078[15:35:39] <tterrag> big time :P
L1079[15:35:49] <gigaherz> that's why it's the alternative ;P
L1080[15:36:06] <Intektor> I guess I will do the getSubItems
L1081[15:36:13] <gigaherz> ... okay! The time has come. Time to implement ender bags to my enderthing mod
L1082[15:36:56] <Intektor> bro, please send a chat message if I join a server with your mod installed. That would be fucking cool :D
L1083[15:37:41] <tterrag> wot
L1084[15:37:47] <gigaherz> wat
L1085[15:38:02] <Intektor> wit
L1086[15:38:04] <diesieben07> wut
L1087[15:38:08] <gigaherz> wet.
L1088[15:38:18] <tterrag> and sometimes wyt
L1089[15:38:32] <diesieben07> wet? that's a different channel.
L1090[15:38:55] <gigaherz> wæt
L1091[15:38:57] <diesieben07> i wonder, is there an IRC channel equivalent to sex hotlines?
L1092[15:39:14] <capitalthree> you don't need a hotline
L1093[15:39:17] <gigaherz> there must be
L1094[15:39:19] <capitalthree> you can find other horny people, and do it for free :P
L1095[15:39:25] <gigaherz> nah that takes effort
L1096[15:39:34] <gigaherz> but with streamed porn
L1097[15:39:37] <gigaherz> who needs hotlines
L1098[15:39:51] <diesieben07> streamed porn in form of ascii art?:D
L1099[15:40:17] ⇦ Quits: kimfy (~kimfy___@236.5.200.37.customer.cdi.no) (Ping timeout: 384 seconds)
L1100[15:40:17] ⇦ Quits: alex_6611 (~alex_6611@p5DE78EAF.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L1101[15:40:46] *** kroeser is now known as kroeser|away
L1102[15:41:18] <tterrag> ok, so I need to have tasks that run prioritized in another thread. the priority needs to be based off the player's proximity. what's the best way I could keep this updated without being thread unsafe? :P
L1103[15:41:31] <Intektor> Have you ever thought about diesieben07s name? I mean why would he die?
L1104[15:41:54] <gigaherz> you'd need a thread-safe queue
L1105[15:42:04] <diesieben07> is priority a field?
L1106[15:42:05] <gigaherz> although
L1107[15:42:06] <diesieben07> liek an int?
L1108[15:42:13] <gigaherz> you'd need it to sort, hmmm
L1109[15:42:16] <diesieben07> if so, just make it volatile
L1110[15:42:17] <tterrag> diesieben07: it's done via implementing Comparable
L1111[15:42:24] <diesieben07> then you can write from one thread and read from many
L1112[15:42:29] <tterrag> yeah uh
L1113[15:42:36] <tterrag> the issue is accessing the player object from a thread
L1114[15:42:39] <gigaherz> https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html
L1115[15:42:39] <gigaherz> ;P
L1116[15:42:40] <tterrag> not updating the priority..
L1117[15:42:40] <diesieben07> No
L1118[15:42:48] <diesieben07> the main thread updates :P
L1119[15:42:52] <gigaherz> shouldn't that work the opposite way?
L1120[15:42:54] <gigaherz> on the main tick
L1121[15:42:58] <diesieben07> if the player moves, update the variable from the tick
L1122[15:42:59] <gigaherz> update all the tasks' priorities in batch
L1123[15:43:01] <diesieben07> then the threads read it
L1124[15:43:22] <tterrag> gigaherz: I am way ahead of that https://github.com/creatubbles/ctb-mcmod/blob/1.8/src/main/java/com/creatubbles/ctbmod/common/http/DownloadableImage.java#L85
L1125[15:43:26] <tterrag> this is the existing code
L1126[15:43:31] <tterrag> I am updating it to be prioritized
L1127[15:43:43] *** willieaway is now known as williewillus
L1128[15:44:18] ⇦ Quits: Intektor (~Intektor4@p5B275BDA.dip0.t-ipconnect.de) (Quit: Leaving)
L1129[15:44:45] <gigaherz> I was trying to look for somethingthat has priorities
L1130[15:44:50] <gigaherz> but firefox froze
L1131[15:44:51] <gigaherz> XD
L1132[15:44:53] <diesieben07> so you have a sorted queue right?
L1133[15:44:54] <tterrag> you just feed it a priority queue
L1134[15:44:55] <tterrag> I know that much
L1135[15:45:17] *** kroeser|away is now known as kroeser
L1136[15:45:25] <diesieben07> the problem with a priorityqueue is that you cannot re-sort it :D
L1137[15:45:31] <gigaherz> the way normal task schedulers work is that they have a queue for each priority class
L1138[15:45:33] <diesieben07> once an element is in, it assumes that it's sorting positino never changes
L1139[15:45:45] <tterrag> hm, true
L1140[15:45:49] <gigaherz> andif the priority changes, it just gets added to the end of the new class
L1141[15:46:17] <gigaherz> are Sets sorted?
L1142[15:46:20] <tterrag> diesieben07: what queue would you recommend then?
L1143[15:46:20] <diesieben07> also... is it really an issue? :D
L1144[15:46:23] <gigaherz> TreeSet or similar
L1145[15:46:24] <diesieben07> not sure
L1146[15:46:29] <tterrag> is what really an issue?
L1147[15:46:31] ⇦ Quits: DovahOfKiin (~admin@122.171.119.240) (Ping timeout: 384 seconds)
L1148[15:46:32] <tterrag> the prioritizing?
L1149[15:46:32] <diesieben07> there is SortedSets yes
L1150[15:46:37] <diesieben07> it not being prioritized yes
L1151[15:46:40] <tterrag> yes
L1152[15:46:42] <gigaherz> then I'd use a SortedSet
L1153[15:46:49] <gigaherz> when the prtiority changes, remove it and readd it
L1154[15:47:02] <diesieben07> you cant feed that to an executor though
L1155[15:47:14] <gigaherz> no but you could wrap it with a Queue interface?
L1156[15:47:23] <diesieben07> i guess so yes
L1157[15:47:26] <gigaherz> where the "head" queries the smallest from the set
L1158[15:47:33] <diesieben07> but that has the same problem
L1159[15:47:42] <diesieben07> if your comparator changes it violates the Comparator contract
L1160[15:47:46] <diesieben07> a Comparator cannot change
L1161[15:47:59] <gigaherz> true, you still need a way to reshuffle
L1162[15:48:12] <diesieben07> probably just an ArrayList
L1163[15:48:17] <gigaherz> tterrag: how many tasks you think will be in it?
L1164[15:48:18] <diesieben07> and then you do binarySearch kinda stuff
L1165[15:48:22] <gigaherz> because if it's < 1000
L1166[15:48:26] <capitalthree> https://en.wikipedia.org/wiki/Kinetic_priority_queue
L1167[15:48:28] <gigaherz> you can just do a linear search
L1168[15:48:29] <capitalthree> https://en.wikipedia.org/wiki/Kinetic_closest_pair
L1169[15:48:30] <tterrag> it should generally be less than 100 yes
L1170[15:48:43] <tterrag> I can see extreme cases where it could approach a few hundred
L1171[15:48:46] <gigaherz> then just implement a custom queue that does a linear search on the element
L1172[15:48:55] <gigaherz> and keeps the min
L1173[15:49:10] <capitalthree> tterrag: look at kinetic closest pair
L1174[15:49:16] <gigaherz> do java streams have a "min(Comparator)" method?
L1175[15:49:22] <diesieben07> sure
L1176[15:50:26] <gigaherz> that kinetic queue sounds nice
L1177[15:51:18] <gigaherz> there's no explanaion on how it's implemented though ;P
L1178[15:51:49] <tterrag> is there no implementation of queue which I can sort?
L1179[15:51:52] <tterrag> on demand, that is
L1180[15:51:52] ⇦ Quits: Loetkolben (~Loetkolbe@ipbcc17c0a.dynamic.kabel-deutschland.de) (Quit: Over and Out!)
L1181[15:52:06] <diesieben07> LinkedList? :D
L1182[15:52:12] <tterrag> true
L1183[15:52:24] <gigaherz> tterrag: isn't resorting the queue akin to creating a new one and adding all the existing elements?
L1184[15:52:27] <diesieben07> or ArrayQueue, but not sure about that one
L1185[15:52:44] <tterrag> that's nto threadsafe though
L1186[15:52:50] <tterrag> neither are
L1187[15:53:03] <tterrag> I can synchronize I guess but meh
L1188[15:53:24] <diesieben07> actually
L1189[15:53:28] <diesieben07> use a PriorityQueue
L1190[15:53:33] <diesieben07> but have the elements not be the actual tasks
L1191[15:53:42] <tterrag> eh
L1192[15:53:42] <diesieben07> but a Pair<Task, priority>
L1193[15:53:48] <diesieben07> and re-add when priority changes
L1194[15:53:50] <gigaherz> http://www.non-blocking.com/download/SunT03_PQueue_TR.pdf
L1195[15:53:53] <diesieben07> then you can sort
L1196[15:53:59] <diesieben07> or rather have the queue sort
L1197[15:54:06] <diesieben07> because you have a consistent comparator
L1198[15:54:09] <tterrag> how the heck do I lookup a pair when I don't know the priority
L1199[15:54:21] <tterrag> how would I remove it?
L1200[15:54:25] <diesieben07> you have to iterate
L1201[15:54:34] <diesieben07> it's a queue, you'd have to iterate in any case
L1202[15:54:58] *** kroeser is now known as kroeser|away
L1203[15:55:26] ⇨ Joins: vox (~voxmods@pool-71-178-241-173.washdc.fios.verizon.net)
L1204[15:56:13] <tterrag> god screw java. I had it installed to my data drive, when it updated it installed to my C drive
L1205[15:56:21] <tterrag> did they even think when designing this?
L1206[15:56:43] <diesieben07> the java installers are fucking awful
L1207[15:56:47] <tterrag> it didn't even update the jdk??
L1208[15:56:51] <tterrag> are you kidding me?
L1209[15:57:35] <tterrag> http://i.imgur.com/nc2Eyfl.png
L1210[15:57:37] <tterrag> what a joke
L1211[15:57:41] <tterrag> now I have to redo my entire installation
L1212[15:58:10] <diesieben07> lol
L1213[15:58:14] <gigaherz> no hte jdk never updates itself
L1214[15:58:16] <diesieben07> i do that when i update anyways
L1215[15:58:21] <diesieben07> just wipe, redo
L1216[15:58:24] <tterrag> diesieben07: I wish I'd had a chance
L1217[15:58:35] <tterrag> no joke, it just popped up on my screen with the update ALREADY IN PROGRESS
L1218[15:59:03] <diesieben07> lol
L1219[15:59:07] <tterrag> hm
L1220[15:59:15] <tterrag> ThreadPoolExecutor expects BlockingQueue<Runnable>
L1221[15:59:38] <tterrag> I can't give it a BlockingQueue<MyRunnable> :x
L1222[16:00:06] <diesieben07> yeah you need a custom queue it seems
L1223[16:00:58] <vox> o/
L1224[16:02:55] <capitalthree> tterrag: you should go ahead and synchronize it. if you have worker threads completing their tasks so fast that there's actual lock contention, then I doubt you have an issue anyways :P
L1225[16:05:16] <tterrag> I'm still lost as to what to do
L1226[16:05:27] <tterrag> I can't give an executor a priority queue because that requires a comparable object
L1227[16:05:32] <tterrag> i.e. not Runnable
L1228[16:06:21] ⇦ Quits: Bitterholz (~Bitterhol@2a02:908:2212:fbc0:5817:2ddc:96cb:c5fb) (Ping timeout: 384 seconds)
L1229[16:06:55] <gigaherz> interface RunnableComparable extends Runnable, Comparable {}, then make a queue ofRunnableComparables, that wraps the other queue? ;P
L1230[16:07:11] <gigaherz> (I'm tired, though, that may make no sense)
L1231[16:07:26] <killjoy> Could also use <T extends Runnable & Comparable>
L1232[16:07:31] <vox> Yeah that makes sense either way
L1233[16:08:26] <gigaherz> oh you can have two "extends" things?
L1234[16:08:45] <diesieben07> if they are interfaces, yes
L1235[16:08:50] <diesieben07> only the first one can be a class
L1236[16:09:13] <gigaherz> yeah I know how that works for classes, I just have never seen it used on generics
L1237[16:09:29] <diesieben07> no i was talking abotu generics
L1238[16:09:43] <diesieben07> you can have T extends SomeClass & SomeInterface & SomeOtherINterface
L1239[16:09:48] <gigaherz> I know,
L1240[16:09:54] <diesieben07> but you cannot have T extends SomeClass & SOmeOtehrClass
L1241[16:09:56] <gigaherz> I mean I assumed you couldn't have two classes
L1242[16:10:05] <gigaherz> since you cna't possibly have an object that exposes it
L1243[16:10:12] <diesieben07> yea
L1244[16:14:40] <diesieben07> tterrag, http://stackoverflow.com/a/3198953/3638966
L1245[16:15:30] <diesieben07> youd have to have a custom executor that overrides newTaskFor
L1246[16:16:08] *** V is now known as Vigaro
L1247[16:19:36] <FusionLord> is it possible to disable mipmapping on a model in the json?
L1248[16:19:40] <capitalthree> gigaherz: but Comparable isn't a class, it's an interface
L1249[16:19:55] *** williewillus is now known as willieaway
L1250[16:20:29] ⇦ Quits: Noppes (~Noppes@82-168-99-26.ip.telfort.nl) (Read error: Connection reset by peer)
L1251[16:21:34] <tterrag> diesieben07: why?
L1252[16:21:39] <tterrag> would I have to override newTaskFor that is
L1253[16:22:00] <diesieben07> so that your comparator knows what it gets
L1254[16:22:08] <tterrag> O.o
L1255[16:22:11] <diesieben07> the result of newTaskFor goes into the queue
L1256[16:22:16] <diesieben07> not the actual Runnable you give it
L1257[16:22:57] <diesieben07> if i understand correectly
L1258[16:24:01] <diesieben07> actually nvm that
L1259[16:24:09] <diesieben07> you dont need to oerride it
L1260[16:26:15] <tterrag> I'd just have to cast in my comparator
L1261[16:26:27] <diesieben07> yea
L1262[16:27:42] <tterrag> then from...somewhere...I need to iterate the queue, update all the objects, and resort it?
L1263[16:28:16] <diesieben07> iterate, remove stuff that has a new priority and re-insert
L1264[16:28:28] <diesieben07> in my Runnable i would have two fields priority and pendingPriority
L1265[16:28:30] ⇦ Quits: Poppy (~Poppy@chello085216146055.chello.sk) (Ping timeout: 201 seconds)
L1266[16:28:36] <diesieben07> pending is volatile and just updated from te main thread
L1267[16:28:47] <diesieben07> then something goes through and updates pending to actual while re-inserting
L1268[16:28:51] <FallingD> is there an event thrown when you change gamemode?
L1269[16:28:58] <tterrag> diesieben07: why not do it all in one go though?
L1270[16:28:58] <diesieben07> and sorting is based on the actual priority
L1271[16:29:19] <diesieben07> then youd have to do the resorting from the main thread, no?
L1272[16:29:42] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Quit: See ya.)
L1273[16:30:35] <tterrag> is that a problem?
L1274[16:30:40] <tterrag> it's blocking :P
L1275[16:31:13] <diesieben07> well, it takes time
L1276[16:31:23] <diesieben07> thats why you have the separate threads to not stall the main thread, right? :D
L1277[16:31:44] <tterrag> downloading images takes a bit longer than a single iteration
L1278[16:31:48] <tterrag> just a bit
L1279[16:31:48] <diesieben07> actually
L1280[16:31:57] <diesieben07> you dont even need to iterate at least not directly
L1281[16:32:13] <diesieben07> you just have a reference to the Runnable in the main thread and update it when needed
L1282[16:32:32] <diesieben07> update menas: queue.remove(runnable); runnable.priority=foo; queue.offer(runnable)
L1283[16:33:05] <diesieben07> then the field doesnt need to be volatile either i think
L1284[16:34:03] <tterrag> you say a reference to "the" runnable?
L1285[16:34:15] <diesieben07> well, yeah
L1286[16:34:23] <diesieben07> something needs to know what to change the priority of
L1287[16:34:32] <tterrag> but what is "the" runnable?
L1288[16:34:37] <tterrag> there is more than one
L1289[16:34:43] <tterrag> also, if the player moves, I need to update all of them, no?
L1290[16:35:07] <diesieben07> i dont knwo what your priority is based on man :P
L1291[16:35:19] <tterrag> <tterrag> ok, so I need to have tasks that run prioritized in another thread. the priority needs to be based off the player's proximity. what's the best way I could keep this updated without being thread unsafe? :P
L1292[16:35:23] <tterrag> it was in my original question...
L1293[16:35:42] <diesieben07> well that is not very clear...
L1294[16:35:56] <diesieben07> i interpreted that as "every player has a task and nearer players are more important"
L1295[16:36:05] <tterrag> no
L1296[16:36:10] <diesieben07> yes i did :D
L1297[16:36:10] <tterrag> the tasks are generally TE-based
L1298[16:36:25] <tterrag> (some are not but those will just be max priority)
L1299[16:36:27] <tterrag> i.e. GUI
L1300[16:36:45] <diesieben07> so tes with players nearby are more important
L1301[16:37:05] <FusionLord> can you disable mipmapping and tell a texture to be transparent in a blockstate.json?
L1302[16:37:05] <tterrag> *the* player :P
L1303[16:37:11] <tterrag> this is a clientside task
L1304[16:37:15] <diesieben07> oh
L1305[16:37:20] <diesieben07> ok so
L1306[16:37:30] <diesieben07> the TE needs to keep track of its tasks
L1307[16:37:35] <tterrag> no
L1308[16:37:40] <diesieben07> and then calculate it's priority
L1309[16:37:42] <tterrag> well
L1310[16:37:47] <tterrag> that's not really how I have it set up
L1311[16:37:54] <diesieben07> and update it's tasks priorities when it changes
L1312[16:38:09] <tterrag> but see
L1313[16:38:12] <diesieben07> OR have the TE update its priority
L1314[16:38:15] <tterrag> the tasks are stored statically
L1315[16:38:19] <diesieben07> and have SOMETHING read that priority
L1316[16:38:30] <tterrag> and when the player moves, it will affect every single task
L1317[16:38:42] <tterrag> so it doesn't make much sense to have each TE processing its own task's priority
L1318[16:38:44] <diesieben07> Not necessarily.
L1319[16:39:01] <diesieben07> if you have only one TE doing stuff... the priority doest need to change
L1320[16:39:15] <tterrag> and how is that TE meant to know it's the only one
L1321[16:39:34] <diesieben07> yeah you need the priority in the TE not the tasks
L1322[16:39:43] <diesieben07> thats what i said originally but you wanted to do the resorting from the main thread also
L1323[16:39:54] <diesieben07> priority = player distance in this case
L1324[16:40:07] <diesieben07> or rather inverse of player distance
L1325[16:40:13] <diesieben07> Integer.MAX_VALUE - dist
L1326[16:40:28] <diesieben07> or sort reverse :D
L1327[16:40:34] <tterrag> I still don't get why the TE needs to be the thing updating it
L1328[16:40:41] <tterrag> could the task not just store a Vec3 ?
L1329[16:40:44] <vox> It's good to see CoFHCore active again, even if it's not for 1.8/1.9: https://github.com/CoFH/CoFHCore/commit/b8b39d29527f98c27bddeeb10dba6a82b6f926c4
L1330[16:40:56] <diesieben07> it could, yes
L1331[16:41:09] <diesieben07> actually yeah that is better
L1332[16:41:18] <tterrag> vox: I don't really care for their vanilla hacks and this commit just adds more
L1333[16:42:29] <tterrag> diesieben07: and perhaps some static vec3 which just stands for "max priority"
L1334[16:42:37] <tterrag> since I need to handle the GUI case as well
L1335[16:43:08] <diesieben07> mhm
L1336[16:43:29] <tterrag> then just a ClientTickEvent handler which updates the priorities every..second or so
L1337[16:43:44] <diesieben07> hrm i guess so
L1338[16:44:04] *** big_Xplosion is now known as big_Xplo|AFK
L1339[16:44:10] <tterrag> hm...been doing C++ only for the last few weeks. only thing I find I'm missing is default params
L1340[16:44:38] <tterrag> public void download(ImageType type, Vec3d pos = ZERO_DISTANCE) {...}
L1341[16:44:41] <tterrag> ;_;
L1342[16:44:43] <diesieben07> overloads? :D
L1343[16:44:47] <tterrag> yes yes
L1344[16:44:48] <tterrag> not as fun :P
L1345[16:45:02] <diesieben07> use kotlin? :
L1346[16:45:03] <diesieben07> :D
L1347[16:45:07] <killjoy> default params? What is this? Python?
L1348[16:45:09] <tterrag> pffft
L1349[16:45:22] <FusionLord> thoughts http://puu.sh/oy7LC/38f8f6c402.jpg
L1350[16:45:35] <killjoy> Is that a bookshelf?
L1351[16:45:39] *** MrKickkiller is now known as MrKick|Away
L1352[16:45:41] <FusionLord> enchanting table
L1353[16:46:04] *** amadornes is now known as amadornes[OFF]
L1354[16:46:31] <FusionLord> going to add the book and on the far right one the ring will 'bob'
L1355[16:46:38] <tterrag> the colors are quite blinding lol
L1356[16:46:49] <tterrag> also 2hd4me
L1357[16:46:53] <gigaherz> noisy
L1358[16:46:56] <gigaherz> there's too much noise in it
L1359[16:47:15] <gigaherz> it's visually jarring
L1360[16:47:59] <gigaherz> notice how al lthe vanilla colors are a bit more "muted"
L1361[16:48:03] <gigaherz> not so saturated
L1362[16:48:25] <gigaherz> even things like diamonds and quartz
L1363[16:50:01] * diesieben07 goes bed
L1364[16:50:53] ⇦ Quits: killjoy (~killjoy@2606:a000:1118:c020:7026:f27b:1ed4:e227) (Quit: Leaving)
L1365[16:52:18] *** big_Xplo|AFK is now known as big_Xplosion
L1366[16:52:55] <tterrag> diesieben07: in fact, since the comparator is implicitly a singleton, I could have it be the event handler
L1367[16:52:56] <tterrag> :D
L1368[16:53:00] <tterrag> hacky but effective :D
L1369[16:53:23] ⇦ Quits: Jezza (~Jezza@92.206.5.6) (Ping timeout: 384 seconds)
L1370[16:54:51] <gigaherz> hmmm
L1371[16:55:05] <gigaherz> should my ender packs allow you to put them inside the pack itself while the gui is open?
L1372[16:55:12] <gigaherz> or should I disable interacting with the pack slot
L1373[16:55:12] <gigaherz> ;P
L1374[16:55:48] <tterrag> probably the latter
L1375[16:57:36] <mikebald> Allow them to put the pack inside it's self... just make sure you open a rift to the Astral Plane as a result.
L1376[16:57:57] <vox> tterrag: if you're using .h files the right way, you can use default params
L1377[16:58:05] <vox> You just only declare them in the .h file
L1378[16:58:09] <vox> (aka the header)
L1379[16:58:12] <tterrag> ...what?
L1380[16:58:25] *** Throxnup is now known as Upthorn
L1381[16:58:30] <tterrag> I know how to do default params in C++
L1382[16:58:37] <tterrag> I'm saying I am missing them now that I'm writing java again
L1383[16:58:44] <vox> Aaah okay
L1384[16:59:02] *** willieaway is now known as williewillus
L1385[16:59:06] <vox> Yeah, I also miss default params. Also, I really love LINQ from C# <3
L1386[16:59:25] <williewillus> anyone every done a gui-container that searches through items before?
L1387[17:00:00] <tterrag> how so?
L1388[17:00:33] <gigaherz> williewillus: my Rift Browser has a searchbox
L1389[17:00:40] <williewillus> i'm just asking because I'm wondering how they handle searching when the client has another language set
L1390[17:00:50] <tterrag> eh...you use localized names?
L1391[17:00:52] <gigaherz> oh, I don't handle that ;P
L1392[17:01:10] <williewillus> tterrag: I don't think a german player for instance would search for the english name of an item :P
L1393[17:01:18] <tterrag> probably not?
L1394[17:01:21] <tterrag> that's what translations are for?
L1395[17:01:32] <gigaherz> yes but if you search in the server
L1396[17:01:32] <williewillus> I'm saying how do you search with localizd names safely
L1397[17:01:35] <gigaherz> you don't have translations
L1398[17:01:38] <williewillus> server is always in en_US
L1399[17:02:15] <tterrag> why would you search on the server?
L1400[17:02:17] <tterrag> filter the view on the client
L1401[17:02:30] <tterrag> also, server only knows en_US vanilla, not even modded lang files exist on the server
L1402[17:02:31] <gigaherz> and transfer potentially thousands of items?
L1403[17:02:32] <tterrag> so that's broken either way
L1404[17:02:36] <tterrag> transfer what?
L1405[17:02:44] <tterrag> keep the slot IDs consistent and it's fine
L1406[17:02:44] <gigaherz> the way my Rift browser works
L1407[17:02:49] <gigaherz> is that it only ever transfers what's visible
L1408[17:02:55] <gigaherz> not the whole combined inventory
L1409[17:03:07] <gigaherz> so I perform sorting and filtering on the server
L1410[17:03:14] <gigaherz> I just didn't consider translations XD
L1411[17:03:15] <williewillus> this is in the context of PE's transmutation interface
L1412[17:03:16] <tterrag> if you use localized names on the server *at all* that is not going to work
L1413[17:03:25] <tterrag> in fact that's a completely broken concept
L1414[17:03:34] <williewillus> so what are you suggesting I do? :P
L1415[17:03:45] <gigaherz> yeah
L1416[17:03:48] <tterrag> filter the view on the client. hide everything that doesn't match the search
L1417[17:04:00] <gigaherz> so I have to choose between potentially sending thousands of itemsto the client,
L1418[17:04:02] <williewillus> what's "the view"?
L1419[17:04:08] <gigaherz> and searching intranslated names :/
L1420[17:04:08] <williewillus> the PE knowledge list can reach thousands of stacks
L1421[17:05:08] <tterrag> gigaherz: "sending an item to the client" is typically just a short
L1422[17:05:15] <tterrag> rarely NBT, and usually not much of it
L1423[17:05:19] <tterrag> it's not expensive at all
L1424[17:05:28] <williewillus> but i don't get what you mean by view
L1425[17:05:43] <gigaherz> williewillus: our use cases are different?
L1426[17:05:52] <gigaherz> "view"
L1427[17:05:57] <tterrag> what the user sees
L1428[17:05:57] <gigaherz> is whatever is on screen at any moment
L1429[17:06:03] <gigaherz> so like
L1430[17:06:05] <gigaherz> my browser ui
L1431[17:06:10] <gigaherz> has a 27-slot grid
L1432[17:06:12] <gigaherz> of visible items
L1433[17:06:39] <williewillus> okay so i do all the filtering and searching clientside now when i click it what does the server do
L1434[17:06:45] <williewillus> do I have to send to result to the server?
L1435[17:06:50] <gigaherz> no
L1436[17:06:52] <gigaherz> ?
L1437[17:07:02] <williewillus> i'm confused
L1438[17:07:05] <williewillus> :P
L1439[17:07:08] <gigaherz> hmmm
L1440[17:07:20] <williewillus> i'm "filtering the view" by searching localized names clientside
L1441[17:07:23] <gigaherz> actually, no idea how to handle the slots in that case
L1442[17:08:39] <gigaherz> anyhow, I'm already busy enough as it is
L1443[17:08:48] <gigaherz> i'll ask how you did it when I try to fix that ;P
L1444[17:09:27] <williewillus> i just have an opportunity to make major changes porting to 1.9 and its a mess currenlty so was wondering ways to improve it
L1445[17:09:50] <williewillus> right now it sends the clicked item to the server when the client clicks it. terrible idea, but it's what's there
L1446[17:09:51] <williewillus> :P
L1447[17:09:57] ⇨ Joins: Gaz (~Gaz492@wolf.ski)
L1448[17:10:22] <tterrag> williewillus: note: Slot#entry is mutable
L1449[17:10:39] <tterrag> or whatever that changed to in 1.8+
L1450[17:10:40] <williewillus> I don't have that?
L1451[17:10:46] <tterrag> !fh Slot.entry
L1452[17:10:49] <tterrag> psh
L1453[17:10:56] <williewillus> how is that useful?
L1454[17:11:00] <tterrag> I assume it's slotNumber
L1455[17:11:06] <tterrag> because you can change the ID of the slot for packets
L1456[17:11:24] <tterrag> keep a database of all items, filter what is shown on the screen, and set the slot IDs to match so networking still functions
L1457[17:11:41] <williewillus> that's a lot of slots but okay :P
L1458[17:11:43] <tterrag> https://github.com/SleepyTrousers/EnderIO/blob/master/src/main/java/crazypants/enderio/machine/invpanel/GuiInventoryPanel.java#L483-L497
L1459[17:11:49] <tterrag> no it's not
L1460[17:12:00] <gigaherz> hmmm so you'd have like, 1500 slots on the server, but only 27 on the client?
L1461[17:12:01] <tterrag> how many slots does the server know about?
L1462[17:12:22] <tterrag> ah I'm reading thsi wrong
L1463[17:12:24] <tterrag> no forget what I said there
L1464[17:12:37] <williewillus> I have 16 slots that display search results clientside based on localized name
L1465[17:12:39] <tterrag> you do need a custom packet for when the player picks up an item
L1466[17:12:43] <gigaherz> my rift block can contain up to 10 million stacks at once, and the rift browser can be used with proxy blocks to combine more than one inventory ;P
L1467[17:12:45] <tterrag> the EIO inv panel uses fake slots for all of them
L1468[17:12:45] <williewillus> i'm wondering how I get the server to know
L1469[17:12:46] <williewillus> ok
L1470[17:13:00] <tterrag> none of the slots in the main panel are real
L1471[17:13:19] <tterrag> https://github.com/SleepyTrousers/EnderIO/blob/master/src/main/java/crazypants/enderio/machine/invpanel/GuiInventoryPanel.java#L614
L1472[17:13:21] ⇨ Joins: madcrazydrumma (~madcrazyd@host-89-241-237-241.as13285.net)
L1473[17:13:30] <tterrag> you can go down that rabbit hole if you like :P
L1474[17:13:48] <madcrazydrumma> Im getting a null pointer exception for this: if(mc.thePlayer.getHeldItemMainhand().getItem() != null
L1475[17:13:49] <madcrazydrumma> || mc.thePlayer.getHeldItemMainhand().getItem().equals(ModItems.daedricBow)) {
L1476[17:14:02] <williewillus> null check the stack
L1477[17:14:04] <williewillus> not the item
L1478[17:14:10] <williewillus> also you can use == for items
L1479[17:14:12] <gigaherz> the player may not even be holding anything
L1480[17:14:20] <madcrazydrumma> So i can use == for items but not itemstack?
L1481[17:14:23] <williewillus> yes
L1482[17:14:24] <tterrag> williewillus: I assume the searchable database is maintained on the client
L1483[17:14:28] <williewillus> yes
L1484[17:14:29] <tterrag> or, if not, it could be rather easily?
L1485[17:14:30] <tterrag> ok
L1486[17:14:32] <tterrag> then this is easy :P
L1487[17:14:51] <williewillus> so do i have to send the stack to the server?:P
L1488[17:14:52] <gigaherz> madcrazydrumma: there is only one Item instance at once, for a concrete item
L1489[17:14:55] <tterrag> just have a bunch of fake slots on the client, filter them based on the search terms, then when clicked on, ask the server to give the player the item that is inside them
L1490[17:15:04] <madcrazydrumma> gigaherz, that clears things up
L1491[17:15:05] <gigaherz> while ItemStacks are beingcreated and destroyed all the time
L1492[17:15:06] <williewillus> okay
L1493[17:15:07] <tterrag> no, you could just give some unique ident for the EMC registry
L1494[17:15:10] <tterrag> or just the stack
L1495[17:15:12] <tterrag> either works
L1496[17:15:25] <gigaherz> so yes, you can use == for items, becauseifi t's the same item, it's the same reference
L1497[17:15:29] <tterrag> that's what invSlot.entry is in this code I linked
L1498[17:15:35] <tterrag> the unique ident that is the same between client and server
L1499[17:15:41] <tterrag> so we sent an int instead of a stack
L1500[17:15:45] <madcrazydrumma> Makes sense ^^
L1501[17:16:07] <tterrag> (well, a bit more than an int :P)
L1502[17:16:22] <madcrazydrumma> Now this still is npe if(mc.thePlayer.getHeldItemMainhand() != null
L1503[17:16:22] <madcrazydrumma> || mc.thePlayer.getHeldItemMainhand().getItem() == ModItems.daedricBow) {
L1504[17:16:23] <tterrag> but it's ONLY sent on click
L1505[17:16:35] <tterrag> madcrazydrumma: read you rlogic
L1506[17:16:39] <tterrag> think about it
L1507[17:16:45] <tterrag> don't trial and error
L1508[17:16:46] <williewillus> wrong boolean operator
L1509[17:16:48] <madcrazydrumma> && ?
L1510[17:16:49] <tterrag> shh
L1511[17:16:57] <tterrag> yes
L1512[17:17:01] <williewillus> lol
L1513[17:17:05] <madcrazydrumma> fml
L1514[17:17:07] <madcrazydrumma> im so tired
L1515[17:17:18] <williewillus> sleep then :P
L1516[17:17:25] <madcrazydrumma> yeah im off haha
L1517[17:17:26] <madcrazydrumma> ciao
L1518[17:17:36] ⇦ Quits: madcrazydrumma (~madcrazyd@host-89-241-237-241.as13285.net) (Client Quit)
L1519[17:17:49] <tterrag> williewillus: so yeah your case is much simpler than the invpanel
L1520[17:17:55] <tterrag> since we have to maintain a vew of multiple connected inventories
L1521[17:18:03] <tterrag> you just have some magic database that the client already knows about :P
L1522[17:18:16] <williewillus> cool, thanks
L1523[17:20:34] <FallingD> is there an event fired on the client with their gamemode updates?
L1524[17:21:05] <williewillus> i don't think so
L1525[17:21:14] <tterrag> sadly there is no event on either side
L1526[17:21:36] <FallingD> ;-;
L1527[17:21:41] <tterrag> game mode and game rules are two things which could really use events
L1528[17:22:18] <tterrag> FallingD: cache the gamemode and poll if it changes every so often
L1529[17:22:22] <tterrag> your only choice short of a PR
L1530[17:22:46] <FallingD> yh my quick dirty fix was using a ticker to keep track of it
L1531[17:27:43] <tterrag> gigaherz: http://i.imgur.com/cGUuVbZ.gifv
L1532[17:27:45] <tterrag> first try :P
L1533[17:27:47] <tterrag> not bad I think
L1534[17:27:55] <tterrag> I think the ones at the end load in because I'm using 8 threads :P
L1535[17:28:06] <tterrag> so those were already mostly done before the closer ones started
L1536[17:29:04] <tterrag> let me try limiting it to one thread and seeing what happens
L1537[17:30:02] <tterrag> nope, still looks mostly the same
L1538[17:30:41] <tterrag> oh doi
L1539[17:32:32] <tterrag> I wasn't updating the position initially
L1540[17:35:31] *** mumfrey is now known as Mumfrey
L1541[17:36:38] <gigaherz> heh
L1542[17:36:45] <tterrag> yep, bug fixed! http://i.imgur.com/KpraTSZ.gifv
L1543[17:36:55] <tterrag> that's pretty nice if you ask me :D
L1544[17:45:49] <gigaherz> looks nice :)
L1545[17:49:27] <williewillus> hmm where do I check the item draw time
L1546[17:49:34] <williewillus> (if the items fully drawn)
L1547[17:49:48] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L1548[17:49:57] <gigaherz> those are threaded tasks
L1549[17:50:07] <gigaherz> I assume they process the downloading/decoding
L1550[17:50:35] <tterrag> gigaherz: hm?
L1551[17:51:10] <tterrag> ok, so if I upload a compressed image and an uncompressed image of the same resolution to the graphics card, will there be any difference in memory usage?
L1552[17:51:11] ⇦ Quits: rebecca (~rebecca@209.95.50.161) (Ping timeout: 384 seconds)
L1553[17:51:14] <gigaherz> isn't that gif theresult of what you said about threading?
L1554[17:51:20] <tterrag> or does OpenGL just use bitmap for texture data?
L1555[17:51:23] <tterrag> gigaherz: yes
L1556[17:51:35] <tterrag> they download or read from a cache
L1557[17:51:38] <gigaherz> compressed you mean, png?
L1558[17:51:41] <tterrag> then upload to the GPU
L1559[17:51:47] <tterrag> compressed meaning anything :p
L1560[17:51:49] <tterrag> compressed
L1561[17:51:51] <gigaherz> or using actual texture compression
L1562[17:51:52] <tterrag> jpg, png, whatever
L1563[17:51:57] ⇨ Joins: Noc7is (~Noc7is@ip68-106-209-192.om.om.cox.net)
L1564[17:52:00] <gigaherz> well
L1565[17:52:05] <gigaherz> if it's just a random image file
L1566[17:52:08] <gigaherz> it will be decoded
L1567[17:52:14] <gigaherz> and the gpu will contain the raw bitmap regardless of the format
L1568[17:52:21] <tterrag> figured
L1569[17:52:29] <gigaherz> there is however texture compression formats
L1570[17:52:32] ⇨ Joins: AimHigh935 (webchat@155.31.158.29)
L1571[17:52:37] <gigaherz> such as S3TC (DXTC)
L1572[17:52:52] <gigaherz> which are hardware-accelerated if the gpu supports them
L1573[17:53:08] <gigaherz> but they don't compare to like jpg/png ;P
L1574[17:54:28] <tterrag> I've never heard of that
L1575[17:54:30] <tterrag> what uses it?
L1576[17:54:52] <gigaherz> most games?
L1577[17:55:04] <tterrag> hm
L1578[17:55:08] <tterrag> so would it be possible to do on my end?
L1579[17:55:15] <gigaherz> https://en.wikipedia.org/wiki/S3_Texture_Compression
L1580[17:55:22] <tterrag> oh, it's patented -_-
L1581[17:55:26] <gigaherz> well dunno if realtimeencoding into s3tc is easy
L1582[17:55:40] <tterrag> hm
L1583[17:55:55] <gigaherz> msot desktop gpussupport DXTC(s3tc), while most mobile gpus support another one that I can't remember right now
L1584[17:56:30] <tterrag> how would I generate an image compressed with this though?
L1585[17:56:34] <tterrag> what program/format ?
L1586[17:56:58] <gigaherz> hmm
L1587[17:57:26] <gigaherz> the only stuff I have used personally, was the directx texture tool, which would generate files in a format the dx utility library can read
L1588[17:58:01] <gigaherz> there's probably encoders for other engines and such, I just don't know them by name
L1589[17:58:09] <gigaherz> keep in mind, though
L1590[17:58:13] <tterrag> >engines
L1591[17:58:18] <gigaherz> S3TC is based on block encoding
L1592[17:58:34] <gigaherz> which means, it takes a gorup of like 4x4 pixels, and reduces the number of colors in that block
L1593[17:58:46] <gigaherz> group*
L1594[17:58:52] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:780e:470c:215f:ef61)
L1595[17:59:03] <gigaherz> it may not really be something you want in minecraft paintings
L1596[17:59:03] <gigaherz> ;P
L1597[17:59:05] ⇦ Quits: Flenix (~Flenix@2a01:4f8:201:63e2::2) (Quit: ZNC 1.6.1+deb1~ubuntu14.04.0 - http://znc.in)
L1598[17:59:34] <tterrag> likely not
L1599[17:59:44] <tterrag> the issue we are running into with this is (V)RAM usage, obviously
L1600[17:59:51] <tterrag> and we are trying to figure out ways to mitigate that
L1601[17:59:51] *** TehNut|Sleep is now known as TehNut
L1602[17:59:59] <tterrag> the issue is especially bad on integrated cards (obviously)
L1603[18:00:03] <tterrag> since it uses up system ram
L1604[18:01:05] <tterrag> gigaherz: this is the image you see in the first painting https://d1x1kv7c0y4dpg.cloudfront.net/users/32437/creations/26281/full_view/1457488892creation.jpg
L1605[18:01:06] <gigaherz> yeah chances are the only real solution is to have a limit on how many paintings can be shown at once, and unload the other bitmaps from the gpu
L1606[18:01:08] <tterrag> (I think that link is public)
L1607[18:01:32] <gigaherz> yeah it works
L1608[18:01:38] <tterrag> that image is 62kb compressed
L1609[18:01:42] <gigaherz> that's quite large ;P
L1610[18:01:45] <tterrag> but that means nothing for the GPU I suppose
L1611[18:02:01] <tterrag> so really I could probably downsize the images when they are used in smaller paintings
L1612[18:02:28] <gigaherz> yep it's still 3.67MB on the gpu
L1613[18:02:36] ⇨ Joins: Aurilux (~Aurilux@2602:304:b0d0:4590:f584:d462:af24:9c76)
L1614[18:02:39] <tterrag> by comparison the uncompressed is 226kb lol
L1615[18:02:44] <tterrag> nowhere close to 3MB haha
L1616[18:02:51] <gigaherz> hm?
L1617[18:03:01] <gigaherz> wait the link you gave me is 1280x751
L1618[18:03:04] <gigaherz> ;P
L1619[18:03:16] <gigaherz> I guess you reduce them in resolution, then?
L1620[18:03:17] <tterrag> https://d1x1kv7c0y4dpg.cloudfront.net/users/32437/creations/26281/original/1457488892creation.jpg
L1621[18:03:19] <tterrag> uncompressed
L1622[18:03:24] <tterrag> (it's a png, ignore the extension)
L1623[18:03:41] <gigaherz> png is still compressed?
L1624[18:03:46] <gigaherz> if you want to know the real size, use bmp
L1625[18:03:47] <gigaherz> ;P
L1626[18:03:51] <tterrag> yes, I know it is
L1627[18:03:56] <tterrag> but it's lossless
L1628[18:04:02] <tterrag> that's what I mean "uncompressed"
L1629[18:04:07] <tterrag> that is the exact image that minecraft saved
L1630[18:04:11] <tterrag> when I took the screenshot
L1631[18:04:23] ⇦ Quits: Aurilux (~Aurilux@2602:304:b0d0:4590:f584:d462:af24:9c76) (Client Quit)
L1632[18:04:35] <gigaherz> yeah
L1633[18:04:40] *** big_Xplosion is now known as big_Xplo|AFK
L1634[18:04:41] <gigaherz> but that won't matter to the gpu, either
L1635[18:04:47] <gigaherz> when you convert those pixels to raw RGBA32
L1636[18:04:57] <gigaherz> it's 3.8 million bytes
L1637[18:05:07] <tterrag> I know :P
L1638[18:05:09] *** kirby|gone is now known as mrkirby153
L1639[18:05:15] <gigaherz> which is what I was referring to
L1640[18:05:41] <tterrag> if I just halfsize the image it goes down to 240kb
L1641[18:05:46] <tterrag> that's a decent improvement
L1642[18:05:58] <tterrag> and for a 1x1 painting I could probably quarter size it and not notice too much degradation
L1643[18:06:13] <gigaherz> you could have a fixed resolution? I mean it IS a minecraft painting
L1644[18:06:21] <gigaherz> you could have like, 128x128 limit on each block
L1645[18:06:28] <gigaherz> so if it's 2x2, then make it 256x256
L1646[18:06:31] <tterrag> that's what I'm shooting for
L1647[18:06:37] <tterrag> something along those lines
L1648[18:06:42] <tterrag> (obviously never upsizing :P)
L1649[18:06:52] <gigaherz> ofc, and keeping aspect ratio
L1650[18:06:53] <gigaherz> ;P
L1651[18:06:56] <tterrag> the problem is that multiple paintings of the same image at different sizes would waste potentially more memory
L1652[18:07:12] <tterrag> actually images are currently padded to maintain ARG_power_of_two :x
L1653[18:07:20] <tterrag> so that's more data
L1654[18:07:28] <gigaherz> you'd need dozens of copies to reach the original
L1655[18:07:39] <gigaherz> and if oyu pad them
L1656[18:07:47] <gigaherz> then 1280x751 becomes 2048x1024
L1657[18:08:06] ⇦ Quits: Delenas (~Delenas@2600:1016:b020:c530:4052:6e49:4583:6dcd) (Quit: Console.Write("Goodbye, world!");)
L1658[18:08:16] <gigaherz> which means you can fit 16x8=128 tiles' worth of data
L1659[18:08:24] <tterrag> you know...I think currently I pad them to be square....oh god
L1660[18:08:26] <gigaherz> before storing theraw image would have been more effective
L1661[18:08:42] <tterrag> I misunderstood the limitation initially, but I thought I had changed it to allow rectangular PoT textures
L1662[18:08:52] <gigaherz> lol
L1663[18:09:21] <tterrag> oh now I remember
L1664[18:09:34] <tterrag> I don't think I've adjusted the rendering to handle rectangular textures
L1665[18:09:39] <tterrag> well let's change it and see what breaks :D
L1666[18:09:57] <gigaherz> hmm if you were to keep an atlas of sorts, you could keep adding 128x128 tiles to the same atlas (or resize it to fit new tiles)
L1667[18:10:06] <tterrag> potentially
L1668[18:10:13] <tterrag> I'd hit the max texture size pretty quick on some GPUs though
L1669[18:10:22] <gigaherz> and that'd also give you a way to have a config slider
L1670[18:10:31] <gigaherz> from 16x16 to 256x256 or so
L1671[18:10:39] <tterrag> yep that broke :x http://i.imgur.com/Jfe93J0.png
L1672[18:10:44] <gigaherz> so that people can reduce resolution and show extra paintings
L1673[18:10:54] <gigaherz> if their computer can't handle all of them
L1674[18:11:09] <gigaherz> heh
L1675[18:11:40] <tterrag> huh...not sure why
L1676[18:11:52] <gigaherz> gah you sidetracked me, I was trying to figure out why the JEI recipe isn't working XD
L1677[18:12:19] <tterrag> oh I see
L1678[18:12:43] <tterrag> double scaledSize = image.getScaledSize(type);
L1679[18:12:49] <tterrag> that needs to be scaledW scaledH
L1680[18:12:53] <tterrag> easy fix
L1681[18:12:58] <gigaherz> heh
L1682[18:12:58] <vox> So if I wanted to change a texture based on surrounding blocks, how would that work now without IIcon?
L1683[18:13:10] <FusionLord> can someone explay what is meant here? http://puu.sh/oycZT/ce5359e446.pnghttp://puu.sh/oycZT/ce5359e446.png
L1684[18:13:20] <gigaherz> vox: in 1.8+, that requires using a custom model
L1685[18:13:34] <gigaherz> and unlisted properties in extended blockstates
L1686[18:13:49] <vox> Is there an example of that, around?
L1687[18:13:57] <gigaherz> then the block can override getExtendedState, and pass the needed data
L1688[18:14:24] <gigaherz> which gets received by the ISmartBlockModel(1.8.9) or IBakedModel(1.9)
L1689[18:14:37] <gigaherz> hmm there's a few
L1690[18:15:03] <gigaherz> williewillus' 1.8.9 Botania has unlisted properties I think
L1691[18:15:28] <williewillus> watwat
L1692[18:15:28] <gigaherz> his 1.8 primer has an example for "camo blocks"
L1693[18:15:38] <gigaherz> that copy the texture from another block
L1694[18:15:43] <gigaherz> (well, the model)
L1695[18:15:57] <gigaherz> williewillus: tryingto think of an example of extended blockstates and smart models being used
L1696[18:16:03] <williewillus> it uses some hacks but yeah the platforms are pretty representative of how camo blocks are done
L1697[18:17:11] <tterrag> gigaherz: oh god I made it worse http://i.imgur.com/YUE15yh.png
L1698[18:17:12] <gigaherz> why theheck did JEI stop showing my recipes :/
L1699[18:17:21] <gigaherz> lol tterrag
L1700[18:17:22] <gigaherz> XD
L1701[18:17:26] <tterrag> wait I know why I think
L1702[18:18:00] <williewillus> world time is 0 to 24000 right
L1703[18:18:46] <vox> Mind pointing me towards said hacks so I can recognize them?
L1704[18:19:05] <vox> yep
L1705[18:19:32] <gigaherz> yes, but 0 means sunrise, not midnight ;P
L1706[18:19:46] <vox> Yeah that's annoying :/
L1707[18:21:00] <tterrag> barf
L1708[18:21:04] <tterrag> I changed a double to an int
L1709[18:21:08] <tterrag> what could that hurt right?
L1710[18:21:10] <tterrag> double maxU = width / scaledW;
L1711[18:21:14] <tterrag> both ints. guess what happened :D
L1712[18:21:49] *** LordFokas is now known as LordFokas|out
L1713[18:22:45] <capitalthree> when will forge include kotlin runtimes like it does with scala runtimes?
L1714[18:22:49] <gigaherz> nope
L1715[18:22:50] <tterrag> never
L1716[18:22:53] <gigaherz> it won't
L1717[18:22:56] <capitalthree> o_o why?
L1718[18:23:00] <tterrag> lex regrets doing it with scala in the first place
L1719[18:23:00] <gigaherz> they already regret including scala
L1720[18:23:04] <tterrag> it's a HUGE bandwidth user
L1721[18:23:14] <tterrag> scala accounts for some ridiculous amount of bandwidth usage. ask lex
L1722[18:23:22] <tterrag> adding another language just isn't happening. ship it yourself :P
L1723[18:23:37] <tterrag> or ask the user to download it
L1724[18:23:38] <tterrag> up to you :P
L1725[18:24:26] ⇦ Quits: FallingD (~FallingDu@2001:1c00:b02:c500:9572:2002:ec73:3df0) (Quit: Leaving)
L1726[18:24:32] <TehNut> capitalthree: https://github.com/Emberwalker/Forgelin
L1727[18:24:34] <gigaherz> imagine if forge had to install a JRE every time you install forge ;P
L1728[18:24:48] <capitalthree> lol well scala's libs take up 25MB. kotlin's runtime is 2 jars at under 1MB
L1729[18:24:53] <capitalthree> so the same argument doesn't really apply
L1730[18:24:56] ⇨ Joins: MattDahEpic (~MattDahEp@174-16-188-51.hlrn.qwest.net)
L1731[18:25:09] <capitalthree> kotlin is far lighter weight and closer to java than scala is :P
L1732[18:25:12] <FusionLord> ... TileEntitySpecialRendererWithResourceManagerReloadListener or TESRWRMRL ? xD when a class name becomes to long....
L1733[18:25:13] <tterrag> capitalthree: you are forgetting all the other issues
L1734[18:25:18] <gigaherz> can't you jsut shade the runtime into your jars then?
L1735[18:25:26] <tterrag> keeping the deps available
L1736[18:25:30] <tterrag> maintaining the versions
L1737[18:25:37] <tterrag> adding YET MORE files that need to exist for forge to run
L1738[18:25:39] <tterrag> it's NOT happening
L1739[18:25:45] <TehNut> Forgelin is shadeable
L1740[18:25:50] <tterrag> that it is
L1741[18:25:51] <capitalthree> ah ok
L1742[18:25:53] <tterrag> so go use it :P
L1743[18:25:55] <capitalthree> I will have to learn about this shading thing
L1744[18:26:03] <TehNut> It's explained in the readme
L1745[18:26:09] <tterrag> couldn't be much simpler really
L1746[18:26:10] <gigaherz> it's a trick that renames the packages while making the jar
L1747[18:26:12] <tterrag> shade X and it's done
L1748[18:26:13] <capitalthree> I wasn't using forgelin, I hadn't heard of it
L1749[18:26:14] <gigaherz> so that each copy is separate
L1750[18:26:20] <capitalthree> all I did was make a mod the normal way and add a kotlin file xD
L1751[18:26:23] <TehNut> Basically has copy-pastable buildscript code
L1752[18:26:26] <capitalthree> so I'll look into it
L1753[18:27:10] ⇨ Joins: Drullkus (~Dru11kus@205.155.154.1)
L1754[18:27:27] ⇦ Quits: IceDragon (~ThatGuy@184.170.8.163) (Ping timeout: 384 seconds)
L1755[18:32:43] <capitalthree> unascribed was telling me shading was bad, but now he's telling me that if it's only 1MB then it's not so bad, so that's good
L1756[18:32:48] <tterrag> glGetString is still safe to use on all GPUs right? :P
L1757[18:32:51] <capitalthree> I just wanted to make sure I'm not doing something dirty
L1758[18:33:02] <FusionLord> just want to check am i muted in here?
L1759[18:33:09] <williewillus> no
L1760[18:33:10] <tterrag> I want to query GL_ARB_texture_non_power_of_two
L1761[18:33:13] <williewillus> why would you be :P
L1762[18:33:13] <FusionLord> ok
L1763[18:33:21] <unascribed> you were asking about shading an entire jvm-targetting language's runtime lib
L1764[18:33:28] <unascribed> hence why I said it might be bad
L1765[18:33:33] <Noc7is> What replaced ISimpleBlockRenderingHandler in 1.8+? JSON Models?
L1766[18:33:37] <williewillus> Noc7is: yes
L1767[18:33:39] <FusionLord> no clue, just noticed that no one has responded to my last 4-5 messages :P
L1768[18:33:39] <williewillus> welcome :P
L1769[18:33:44] <unascribed> json models + obj models + smart models + etc etc
L1770[18:33:48] <unascribed> there's many MUCH better solutions now
L1771[18:33:50] <tterrag> oh nvm
L1772[18:33:55] <tterrag> glGetStringi is 3.0+ only
L1773[18:33:55] <williewillus> FusionLord: we usually don't stare at irc so its easy to miss stuff
L1774[18:33:56] <tterrag> can't use that lol
L1775[18:34:20] <capitalthree> unascribed: yeah fair enough. I was surprised it was so small too
L1776[18:34:27] <vox> williewillus: I'm looking at your code for the platform blocks. How do you actually change the textures? Through the TE?
L1777[18:34:39] <FusionLord> no big deal
L1778[18:34:44] <williewillus> i steal the target block's model
L1779[18:34:47] <williewillus> look at PlatformModel
L1780[18:34:53] <FusionLord> can someone explay what is meant here? http://puu.sh/oycZT/ce5359e446.pnghttp://puu.sh/oycZT/ce5359e446.png
L1781[18:35:09] <williewillus> wtf is that link 0.o
L1782[18:35:34] <gigaherz> you pasted two links at once, fus
L1783[18:35:37] <gigaherz> FusionLord*
L1784[18:35:56] <williewillus> i mean hexchat still shows it as one
L1785[18:35:58] <williewillus> and so does chrome
L1786[18:36:03] <vox> willie: btw, Botania being a fork is annoying AF :P
L1787[18:36:07] <vox> I can't search it
L1788[18:36:14] <MattDahEpic> how would i get a foreach on all the registered enchantments?
L1789[18:36:30] <williewillus> MattDahEpic: 1.9?
L1790[18:36:43] <FusionLord> http://puu.sh/oycZT/ce5359e446.png
L1791[18:36:58] <tterrag> that's puush ignoring everything after the extension :p
L1792[18:37:09] <williewillus> lol what
L1793[18:37:10] <williewillus> okay
L1794[18:37:27] <unascribed> wtf? you're creating the TE then getting the class???
L1795[18:37:29] <tterrag> FusionLord: your TESR isn't typed
L1796[18:37:31] ⇨ Joins: keybounce (~keybounce@45-25-230-67.lightspeed.bkfdca.sbcglobal.net)
L1797[18:37:42] <unascribed> but yeah that
L1798[18:37:48] <tterrag> also, your block giving you your TESR is a HUGE separation of concerns issue
L1799[18:37:54] <MattDahEpic> williewillus, yep
L1800[18:38:13] <Noc7is> So on a block, lets say I wanted to draw some dynamic text on it using fontrenderer.drawString or something. Can I use ISmartBlockModel to do that? Like using getFaceQuads or something?
L1801[18:38:28] <unascribed> how dynamic is dynamic
L1802[18:38:30] <williewillus> yes
L1803[18:38:34] <williewillus> and yes how dynamic
L1804[18:38:42] <Noc7is> Just like some numbers or something
L1805[18:38:46] <williewillus> no as in
L1806[18:38:47] <williewillus> how often
L1807[18:38:47] <Noc7is> That depend on world time
L1808[18:38:49] <unascribed> yes but how often does it change
L1809[18:38:55] <williewillus> yeah you're better off using tesr
L1810[18:38:57] <Noc7is> Oh.... possibly multiple times per second
L1811[18:39:01] <tterrag> erm
L1812[18:39:02] <unascribed> use a TESR
L1813[18:39:05] <tterrag> you can't draw text in a block model
L1814[18:39:09] <unascribed> updating the entire chunk for that will be expensive
L1815[18:39:10] <williewillus> yeah you can
L1816[18:39:15] <tterrag> no...that would require rebinding
L1817[18:39:16] <williewillus> kind of
L1818[18:39:25] <unascribed> you could add the font to the atlas
L1819[18:39:26] <unascribed> :P
L1820[18:39:29] <tterrag> jesus
L1821[18:39:30] <tterrag> no
L1822[18:39:56] <capitalthree> ...hey so why do the scala libs use the forge team's bandwidth? they're available from other repositories o_o
L1823[18:39:56] ⇨ Joins: qid (~david@cpe-172-101-73-28.buffalo.res.rr.com)
L1824[18:40:06] <williewillus> if you want font support
L1825[18:40:15] <williewillus> bother fry and make him finish this
L1826[18:40:15] <williewillus> https://github.com/RainWarrior/MinecraftForge/blob/653b940ebcf765ed5baff92917e50129bcc3b7de/src/main/java/net/minecraftforge/client/model/ModelFontRenderer.java
L1827[18:40:37] <unascribed> most of the time when you need fonts it's better to use a TESR
L1828[18:40:38] <TehNut> MattDahEpic: http://tehnut.info/share/QIHvuyH5zM.txt
L1829[18:40:40] <unascribed> so
L1830[18:40:49] <Noc7is> Alright.
L1831[18:41:05] <williewillus> anything more often than every few seconds should really be tesr
L1832[18:41:12] <TehNut> If you need each level, you can of course loop that, too
L1833[18:41:22] <capitalthree> why is the forge team re-hosting scala libs instead of pulling them in from existing repos?
L1834[18:41:25] <williewillus> chunk rerenders seem to be getting more expensive even though the rendering itself is multithreaded
L1835[18:42:26] <vox> williewillus: ModelPlatform in here? https://github.com/williewillus/Botania/tree/master/src/main/java/vazkii/botania/client/model
L1836[18:42:28] <vox> I'm not seeing it
L1837[18:42:46] <vox> oh wow it's PlatformModel
L1838[18:42:47] <williewillus> that's master
L1839[18:42:55] <williewillus> master is the 1.7 branch
L1840[18:42:58] <vox> derp, I'm dumb and didn't see it
L1841[18:43:00] ⇦ Quits: whitephoenix (~whitephoe@216-160-104-253.tukw.qwest.net) (Quit: \[T]/ Praise the sun! \[T]/)
L1842[18:43:05] <williewillus> look at MC18 or MC19
L1843[18:43:09] <vox> Yep, found it
L1844[18:43:13] ⇨ Joins: whitephoenix (~whitephoe@216-160-104-253.tukw.qwest.net)
L1845[18:43:26] <vox> Any reason it's called PlatformModel instead of ModelPlatform or just because?
L1846[18:44:13] <unascribed> PlatformModel makes more sense, the backwards naming iirc originates from before MCP repackaged everything
L1847[18:44:20] <unascribed> so it made it easier to sort stuff
L1848[18:44:22] <williewillus> no particular reason
L1849[18:44:34] <unascribed> but now that we have packages...
L1850[18:44:47] <tterrag> gigaherz: ok, now I've gotten rid of upscaling completely if the system supports non-pot
L1851[18:44:49] <tterrag> String s = GL11.glGetString(GL11.GL_EXTENSIONS);
L1852[18:44:49] <tterrag> NON_POT_SUPPORTED = s.contains("GL_ARB_texture_non_power_of_two");
L1853[18:44:49] <tterrag> :D
L1854[18:45:09] <vox> I mean, I still see the reason for ModelPlatform and BlockFurnace and ItemGeneric
L1855[18:45:10] <unascribed> as if any computer that can run minecraft won't support NPOT >.>
L1856[18:45:24] <williewillus> you'd be surprised
L1857[18:45:28] <tterrag> ^^
L1858[18:45:37] <tterrag> we support GL11 which does not guarantee NPOT
L1859[18:45:39] <tterrag> I'm covering my bases
L1860[18:46:25] ⇦ Quits: Johannes13_ (Johannes13@141.70.98.128) (Read error: Connection reset by peer)
L1861[18:46:32] <vox> willie: what's "rand" here? https://github.com/williewillus/Botania/blob/MC19/src/main/java/vazkii/botania/client/model/PlatformModel.java#L40
L1862[18:46:37] <capitalthree> so nobody has any idea why forge actually re-hosts scala libs?
L1863[18:46:49] <unascribed> they re-host all libs that aren't in Mojang's maven
L1864[18:46:50] <williewillus> there's probably a very good reason
L1865[18:46:52] <TehNut> IIRC Forge rehosts all non-MC libs
L1866[18:46:54] <williewillus> they're not stupid
L1867[18:46:56] <unascribed> not sure why they don't use Central, but they don't
L1868[18:46:58] <capitalthree> I asked *why*
L1869[18:47:23] <capitalthree> williewillus: that kind of knee-jerk defensiveness is what causes bad ideas to last a long time :P
L1870[18:47:32] <capitalthree> if nobody actually knows a reason, maybe it should change
L1871[18:47:43] <williewillus> they pay money to rehost them
L1872[18:47:47] <williewillus> so :P
L1873[18:47:51] <tterrag> the reason is that other stuff can break and break all forge installations
L1874[18:47:54] <tterrag> I assume
L1875[18:48:05] <capitalthree> tterrag: no, because you can pin versions in maven repos :P
L1876[18:48:07] <unascribed> has central ever been down for any serious period of time?
L1877[18:48:16] <tterrag> probably not
L1878[18:48:26] <williewillus> vox: passed in by vanilla, not really sure what it's for :P
L1879[18:48:28] <tterrag> don't ask me though, ask lex/cp.w/overmind
L1880[18:48:32] <williewillus> probably for choosing random variants
L1881[18:48:44] <capitalthree> lex will probably just ban me for asking any questions so I'll try the others
L1882[18:49:02] <vox> willie: okay, cool. Odd :P
L1883[18:49:06] <tterrag> no, he won't
L1884[18:49:10] <TehNut> He's answered the question tons of times, I just don't remember the answer
L1885[18:49:11] <williewillus> just ask in #ForgeGradle
L1886[18:49:13] <tterrag> he'll ban you if you refuse to accept his answer
L1887[18:49:18] <williewillus> :P
L1888[18:49:23] <tterrag> (as so, so many people do)
L1889[18:49:59] <FusionLord> ... I Haven't changed this at all wtf? http://puu.sh/oyeUF/9d73912e7c.png
L1890[18:50:10] <vox> Btw willie, all of the source comments that I've seen say to get the source at Vazkii/Botania
L1891[18:50:21] <capitalthree> tterrag: so far he's banned me for a week for pointing out that adfoc.us serves malware, and kicked me simply for linking to code I wrote in kotlin
L1892[18:50:23] <vox> Just fyi, thought you'd like to know
L1893[18:50:36] <williewillus> yeah I haven't replaced it
L1894[18:50:43] <vox> Coolcool
L1895[18:51:01] <TehNut> capitalthree: He kicked you because you were assuming he was a code-grading service.
L1896[18:51:28] <williewillus> or cared about it at all :P
L1897[18:51:46] <TehNut> FusionLord: What does getValidLevels return?
L1898[18:51:47] <capitalthree> TehNut: I didn't assume, I simply asked. he's way too immature :P
L1899[18:52:03] <TehNut> I definitely remember you using the word "assume"
L1900[18:52:04] <capitalthree> he actually told me the kick was for having a language argument
L1901[18:52:13] <capitalthree> he was explicit there
L1902[18:52:18] <tterrag> X language is better is explicitly banned here
L1903[18:52:18] <williewillus> i wouldn't be surprised :P
L1904[18:52:20] <capitalthree> so you are kind of making things up
L1905[18:52:30] <TehNut> 'course i am
L1906[18:52:31] <capitalthree> but he's the one who assumed my reason for linking kotlin code
L1907[18:53:00] <capitalthree> tterrag: yeah and I wasnt having that conversation, I was just showing off a mod I wrote that happened to be kotlin
L1908[18:53:15] <tterrag> I'm not going to deny it, lex is ban happy
L1909[18:53:24] <capitalthree> tterrag: also to be clear, "mc would be better in x language" is what's banned here
L1910[18:53:35] <tterrag> but it is his channel. and it's not hard to avoid it
L1911[18:53:45] <williewillus> heated lang discussions in general are frowned upon
L1912[18:53:51] <williewillus> :P
L1913[18:53:55] <tterrag> anyways, what were we talking about?
L1914[18:53:59] <tterrag> oh right, scala sux lol
L1915[18:54:02] ⇦ Quits: FusionLord (~FusionLor@ip70-190-239-223.ph.ph.cox.net) (Ping timeout: 201 seconds)
L1916[18:54:03] <williewillus> lmao
L1917[18:54:03] <capitalthree> williewillus: that's nice, and also again, irrelevant, because that isn't what was happening when he kicked me
L1918[18:54:04] <tterrag> amirite?
L1919[18:54:13] <TehNut> urrite
L1920[18:54:17] ⇨ Joins: FusionLord (~FusionLor@ip70-190-239-223.ph.ph.cox.net)
L1921[18:54:23] <williewillus> ?shrug
L1922[18:54:25] <unascribed> the original question was "why does forge rehost scala libs"
L1923[18:54:28] <williewillus> I don't care
L1924[18:54:44] <tterrag> right
L1925[18:54:45] <tterrag> because it sux
L1926[18:54:46] <tterrag> :D
L1927[18:55:22] <FusionLord> ok let me ask again because I got timed out...
L1928[18:55:29] <FusionLord> anyone know why this is a thing http://puu.sh/oyeUF/9d73912e7c.png
L1929[18:55:38] <williewillus> show getValidLevels
L1930[18:55:46] <unascribed> yeah, what is its signature
L1931[18:56:06] <FusionLord> williewillus, https://gist.github.com/FusionLord/f6094799a51ffcaec4efd53a351d873c
L1932[18:56:09] <vox> What does getValidLevels return?
L1933[18:56:18] <williewillus> uhhh
L1934[18:56:20] <vox> uh
L1935[18:56:22] <williewillus> try a full remake?
L1936[18:56:26] <williewillus> might be ide derpage
L1937[18:56:40] <vox> And try a gradle scan thingy
L1938[18:56:44] <capitalthree> it's funny how widespread the idea that scala sucks is, but the only reason anyone can ever give is "bah humbug, learning a new thing" :P
L1939[18:56:49] <TehNut> that has nothing to do with gradle
L1940[18:56:54] <vox> "refresh"
L1941[18:56:57] <unascribed> it has everything to do with gradle
L1942[18:56:58] <unascribed> it's IntelliJ
L1943[18:57:06] <vox> I've had IDE derpage before when Gradle does wonky things
L1944[18:57:22] <capitalthree> don't get me wrong, I think it's fine that people are comfy on java, but saying scala sucks because you're bitter someone wrote a mod who's code you don't understand yet, is kinda silly
L1945[18:57:45] <capitalthree> scala, java, and kotlin are all like 95% the same thing
L1946[18:57:51] <capitalthree> and they're all pretty decent
L1947[18:58:08] <williewillus> yeah try remake + refresh gradle project
L1948[18:58:16] <vox> I personally don't like Scala because I don't like the syntax
L1949[18:58:23] <vox> Just personal preference though
L1950[18:58:24] <FusionLord> how does one remake?
L1951[18:58:26] <williewillus> its not that different
L1952[18:58:31] <williewillus> in its defense
L1953[18:58:37] <capitalthree> vox: that's fair. I'll be honest, I took a while to get used to it too :P
L1954[18:58:45] <williewillus> the billion overloads of _ is weird though
L1955[18:59:05] <capitalthree> and I agree with people who say kotlin's "fun " for function is dumb too
L1956[18:59:09] <capitalthree> I just think syntax is such a petty concern
L1957[18:59:15] <capitalthree> williewillus: you mean 2?
L1958[18:59:16] <vox> Kotlin is a little more my style, I like it more except for the "fun" thing
L1959[18:59:34] <vox> Yeah, I agree. There's no reason to say a language is bad based on personal preference for syntax
L1960[18:59:35] <tterrag> capitalthree: I hope you realize I was joking
L1961[18:59:45] <tterrag> I personally do not like scala. but I certainly don't think it "sucks"
L1962[18:59:49] <williewillus> syntax really isn't a big deal
L1963[18:59:56] <williewillus> until you have a million overloads of "const"
L1964[18:59:59] <williewillus> coughC++
L1965[19:00:18] <unascribed> coughC is now 1
L1966[19:00:29] <vox> Lol, even after using it for several years, people's usage of const in C++ still confuses me sometimes
L1967[19:00:51] <vox> Is the object const, or is the return immutable, or does this not mutate the object, or is this actually a constant variable?
L1968[19:00:59] <vox> Or actually I think there's more cases too
L1969[19:01:01] <capitalthree> williewillus: _ is "insert function arg here" and "ignored pattern match". what else?
L1970[19:01:16] <capitalthree> tterrag: sorry, I didn't realize! lots of people here aren't joking when they say it. unascribed says it all day
L1971[19:01:29] <tterrag> opinions are opinions
L1972[19:01:32] <williewillus> ^
L1973[19:01:34] <capitalthree> also I'll be open, I have big issues with scala
L1974[19:01:36] <williewillus> vox: infinitely many consts because infinitely many pointer layers
L1975[19:01:39] <williewillus> :D
L1976[19:01:39] <tterrag> I think scala sucks for me :P but I'm not going to stop someone from using it
L1977[19:01:40] <vox> :D
L1978[19:01:49] <capitalthree> it is bloated with too many features, and implicits in particular are horrible
L1979[19:01:50] <williewillus> http://www.cdecl.org/
L1980[19:01:55] <vox> Btw, any idea on how to handle four or more different rotations of the same texture willie?
L1981[19:02:04] <williewillus> what do you mean four or more rotations?
L1982[19:02:13] <vox> I'm attempting to make a multiblock that's intelligent about connected textures
L1983[19:02:19] <tterrag> just btw, the proper domain for forge docs now is mcforge.rtfd.io and mcforge.readthedocs.io
L1984[19:02:29] <vox> Oh, I should go look at glass from different mods
L1985[19:02:34] <tterrag> there are redirects from the old URLs but RTD has now moved their documentation hosting to a separate domain
L1986[19:02:40] <williewillus> why the move?
L1987[19:02:44] <capitalthree> I like scala more than java but I am undecided if I like kotlin more than scala, and even java's still a pretty good language
L1988[19:02:53] <williewillus> kotlin feels meh to meh
L1989[19:02:54] <tterrag> http://pastebin.com/0HgUHMUK
L1990[19:02:56] <tterrag> that's the email I got :P
L1991[19:02:57] <unascribed> I still want someone to make a Java with really minor changes
L1992[19:03:02] <williewillus> it doesn't offer much over java + nice libs
L1993[19:03:05] <capitalthree> I wish scala, kotlin, etc, were more minimal with syntax changes
L1994[19:03:09] <tterrag> let me just captcha that...
L1995[19:03:09] <williewillus> unascribed: you're looking for kotlin
L1996[19:03:10] <unascribed> like REALLY minor
L1997[19:03:23] <unascribed> replacing the entire method definition syntax with "fun" is not minor
L1998[19:03:27] <capitalthree> williewillus: really? kotlin's nullability handling is far better than annotation messes
L1999[19:03:30] <unascribed> having a runtime library is not minor
L2000[19:03:39] <tterrag> java + default arguments + better type inferennce
L2001[19:03:45] <williewillus> capitalthree: yes but besides their nonnull stuff?
L2002[19:03:50] <capitalthree> unascribed: how do you expect a language to not have a runtime library :P
L2003[19:03:59] <capitalthree> unascribed: your friend unlambda is a runtime library
L2004[19:04:06] <williewillus> unascribed: what changes ARE you looking for then? :P
L2005[19:04:11] ⇨ Joins: killjoy (~killjoy@2606:a000:1118:c020:dd35:f5e:cbb3:40a6)
L2006[19:04:12] <capitalthree> williewillus: dispensing with native types is another good win
L2007[19:04:15] <unascribed> retrolambda has no runtime dependency
L2008[19:04:21] <williewillus> that's not a language
L2009[19:04:21] <tterrag> ^
L2010[19:04:22] <williewillus> ...
L2011[19:04:26] <tterrag> also true
L2012[19:04:28] <killjoy> So... challenge http://imgur.com/PeoI6vv
L2013[19:04:28] <unascribed> I was talking to capitalthree
L2014[19:04:30] <tterrag> but it's a lie that it has a runtime dep :P
L2015[19:04:34] <capitalthree> and proper anonymous functions
L2016[19:04:36] <unascribed> who said retrolambda had a runtime dep
L2017[19:04:45] <williewillus> he said it DOESNT :P
L2018[19:04:50] <capitalthree> unascribed: oh, well ok, nevermind
L2019[19:04:52] <TehNut> killjoy: that looks like what I did on my old survival pack
L2020[19:04:52] <unascribed> <capitalthree> unascribed: your friend unlambda is a runtime library
L2021[19:04:59] <FusionLord> if someone told me how to "remake" i missed it
L2022[19:05:10] <tterrag> FusionLord: SHH WE ARE ARGUING OVER LANGUAGES
L2023[19:05:10] <williewillus> anyways what would you even want in your hypothetical lang?
L2024[19:05:10] <killjoy> -60% brightness makes you want to stay home
L2025[19:05:22] <williewillus> that wouldn't require runtime lib
L2026[19:05:26] <unascribed> I think the main things I'd want in a mini Java edit would be the Elvis operator and default access mode
L2027[19:05:28] ⇨ Joins: minot (~minot@pool-108-35-29-135.nwrknj.fios.verizon.net)
L2028[19:05:28] <capitalthree> oh yeah type inferrence
L2029[19:05:28] <TehNut> HardcoreDarkness + Gloomy + stryker's light mod that I can't remember the name of right now
L2030[19:05:30] <williewillus> and would make "minimal" changes
L2031[19:05:32] <capitalthree> that's another big one
L2032[19:05:39] <killjoy> Agreed on the ?:
L2033[19:05:44] <FusionLord> but tterrag I need halp xD
L2034[19:05:45] <capitalthree> unascribed: also ?. right?
L2035[19:05:47] <unascribed> i.e. "package class Foo default public { void doTheThing() {} }"
L2036[19:05:50] <unascribed> capitalthree, of course
L2037[19:05:54] <killjoy> Instead, we got Optional
L2038[19:05:54] <capitalthree> cool
L2039[19:06:04] <williewillus> well Optional is not bad
L2040[19:06:06] <williewillus> people just abuse it
L2041[19:06:08] <williewillus> VERY badly
L2042[19:06:11] <capitalthree> look I'll be honest, I'd love your java improvements too
L2043[19:06:19] <killjoy> Optional just adds more boilerplate
L2044[19:06:22] <capitalthree> I just started looking at kotlin because it got there first
L2045[19:06:23] <unascribed> "class Foo" -> warning: no access level specified, defaulting to package
L2046[19:06:40] <TehNut> My introduction to Optional was Sponge's insane abuse of it
L2047[19:06:42] <capitalthree> killjoy: yeah in java that's fair
L2048[19:06:50] <capitalthree> scala's big advantage is pattern matching
L2049[19:06:53] <killjoy> boilerplate is a given in jav
L2050[19:06:55] <TehNut> I noped out and haven't touched Optional since >.>
L2051[19:06:58] <capitalthree> which makes it very clean to deal with those things
L2052[19:07:06] <killjoy> I think I prefer Guava's optional
L2053[19:07:14] <williewillus> what I want is a static type by default lisp
L2054[19:07:18] <williewillus> basically opposite of clojure
L2055[19:07:22] <williewillus> killjoy: whats different about that?
L2056[19:07:25] <williewillus> vs Java 8 opt
L2057[19:07:36] <killjoy> It's very shallow
L2058[19:07:41] <killjoy> It being my preference
L2059[19:07:50] <Mumfrey> killjoy: https://gist.github.com/Mumfrey/eaee54bb6dbb3a4242a6
L2060[19:08:05] <unascribed> fake unsigned types would also be nice in the alt language
L2061[19:08:05] <killjoy> Yes, I understand how Optional works
L2062[19:08:12] <Mumfrey> not the how, the why
L2063[19:08:21] <capitalthree> I need to learn about java annotation processors though. I used to think we *needed* new languages because java couldn't really be patched over
L2064[19:08:22] <unascribed> there's standard library methods for treating int etc like unsigned, but it's cumbersome to use them
L2065[19:08:22] <killjoy> I also know why
L2066[19:08:24] <vox> Oh man unsigned integers are one of the things that I miss
L2067[19:08:31] <capitalthree> but it seems like annotation processors can go a long way
L2068[19:08:36] <unascribed> yeah, APs can do a lot
L2069[19:08:38] <unascribed> see also: Lombok
L2070[19:08:48] <capitalthree> oh yeah lombok was the one that's a library!
L2071[19:08:50] <capitalthree> right?
L2072[19:08:58] <unascribed> it doesn't have a runtime dep iirc
L2073[19:09:01] <capitalthree> ohh cool
L2074[19:09:02] <TehNut> source only
L2075[19:09:06] <capitalthree> awesome
L2076[19:09:09] <TehNut> Well, compile
L2077[19:09:13] <unascribed> it's also really weird
L2078[19:09:23] <capitalthree> I need to go curate the best java addons and see how close I can get to what I want
L2079[19:09:28] <TehNut> It's kinda black magic, but great for "hiding" boilerplate
L2080[19:09:35] <capitalthree> starting with lombok and retrolambda probably
L2081[19:09:42] <killjoy> anyone seen kymaster?
L2082[19:09:44] <tterrag> for me, lombok isn't so much for what it hides, but what it shows
L2083[19:09:49] <capitalthree> TehNut: kotlin and scala only "hide" boilerplate too :P
L2084[19:09:54] <tterrag> it basically highlights anything that has a nonstandard implementation
L2085[19:09:55] <capitalthree> it's all syntactic sugar
L2086[19:10:07] <tterrag> if you see a class full of @Getter but there is ONE getter that is manually implemented
L2087[19:10:10] <tterrag> you know it does something special
L2088[19:10:21] <tterrag> instead of reading through 20 of them
L2089[19:10:29] <TehNut> That, too
L2090[19:10:32] <unascribed> I wonder if you could make a Gradle plugin that implements the hypothetical java extension as a transformer
L2091[19:10:34] <unascribed> then you wouldn't need to compile it to bytecode
L2092[19:10:51] <williewillus> so a preprocessor
L2093[19:10:54] <unascribed> yeah
L2094[19:10:58] ⇨ Joins: blood_ (unknown@ool-4574115b.dyn.optonline.net)
L2095[19:11:05] <unascribed> ultimately you'd also need to do something for IDE support
L2096[19:11:08] <tterrag> yep
L2097[19:11:09] <unascribed> so probably bytecode
L2098[19:11:11] <tterrag> that's the wall lombok hits
L2099[19:11:20] <tterrag> it requires IDE integration to function
L2100[19:11:28] <tterrag> well, function in a way that is usable :P
L2101[19:11:36] <tterrag> technically even though eclipse says you have errors it will compile fine
L2102[19:11:42] <tterrag> without the plugin
L2103[19:11:46] <tterrag> it would just make developing hell :D
L2104[19:13:00] <vox> So I want some opinions on something real fast :P What would you all recommend if I have 16 different possible textures for the top side of my block?
L2105[19:13:25] <vox> I'd have to switch between them dynamically ofc, but how would you recommend storing them. 16 variants?
L2106[19:14:00] <vox> Technically it's like 6 textures, plus their rotations
L2107[19:14:15] <williewillus> wait you want to do Conencted textures?
L2108[19:14:18] <vox> yeah
L2109[19:14:21] <vox> Essentially
L2110[19:14:23] <williewillus> use tterrag library after its done lol
L2111[19:14:25] <tterrag> wait for me to finish ctmlib :P
L2112[19:14:31] <vox> uuuuuuuuugh finish now pls? :D
L2113[19:14:32] <tterrag> or hack apart the chisel code
L2114[19:14:36] <williewillus> lol
L2115[19:14:36] <TehNut> How close are we to CTMLib 1.9?
L2116[19:14:37] <tterrag> (not recommended)
L2117[19:14:44] <tterrag> TehNut: eh...it mostly functions in chisel
L2118[19:14:47] <tterrag> the challenge is making it generic
L2119[19:15:00] <TehNut> That second part is what I was actually asking about :P
L2120[19:15:03] <tterrag> I fixed a few barriers when I made that test hack mod
L2121[19:15:13] <tterrag> few places where we used BlockCarvable instead of ICarvable etc
L2122[19:15:22] <vox> Oh man what is this
L2123[19:15:26] <vox> No work on this since Jan 3
L2124[19:15:32] <tterrag> vox: right, that's teh 1.7 repo
L2125[19:15:39] <vox> Oh there's a new one?
L2126[19:15:43] <tterrag> currently "ctmlib" only exists as code inside chisel
L2127[19:15:52] <tterrag> I plan to externalize it once it's finished
L2128[19:16:11] <vox> I see. That's annoying. Have any guidance on how I could rip it out?
L2129[19:16:19] <tterrag> https://github.com/Chisel-Team/Chisel/tree/1.9/dev/src/main/java/team/chisel/client/render
L2130[19:16:20] ⇨ Joins: Johannes13 (Johannes13@141.70.98.128)
L2131[19:16:23] <tterrag> I wouldn't recommend doing that
L2132[19:16:47] <tterrag> I'd love to finish it but with schoolwork and regular work I have no time atm
L2133[19:16:56] <vox> You leave me no choice tterrag! I must have connected textures! :P
L2134[19:16:58] <tterrag> give me 3 weeks for finals to be done :P
L2135[19:17:20] <vox> I.... should probably be studying for AP exams too. But meh, those are in two weeks
L2136[19:17:35] <tterrag> who said anything about studying
L2137[19:17:39] <tterrag> I have two CS projects to finish
L2138[19:17:50] <vox> Heh. What are they?
L2139[19:18:12] <williewillus> same also :P
L2140[19:18:24] <williewillus> though I started super early on one and got it done today
L2141[19:18:35] <TehNut> pfft, school
L2142[19:18:54] <TehNut> nobody ever needed that
L2143[19:19:18] <vox> So any reason I couldn't use this code tterrag? https://github.com/Chisel-Team/Chisel/blob/1.9/dev/src/main/java/team/chisel/client/render/ctm/CTM.java
L2144[19:19:27] <vox> Looks pretty okay to me
L2145[19:20:07] <tterrag> no, you could use that
L2146[19:20:12] <tterrag> in fact, that class is barely changed from 1.7
L2147[19:20:20] <tterrag> that's far from the full picture though :P
L2148[19:20:21] <vox> What's different?
L2149[19:20:25] <vox> Oh lol
L2150[19:20:35] <tterrag> block/meta -> IBlockState mostly
L2151[19:20:44] <tterrag> xyz->blockpos etc
L2152[19:20:50] <vox> Got it
L2153[19:20:57] <vox> So this ModelCTM class that has no code
L2154[19:21:00] <tterrag> also ISubmap is completely new
L2155[19:21:01] <tterrag> that's old
L2156[19:21:09] <tterrag> I wasn't aware I hadn't deleted that class
L2157[19:21:11] <vox> Looks basically like Willie's camo block with some small changes
L2158[19:21:13] <tterrag> you want ModelChiselBlock
L2159[19:22:03] <tterrag> though like I said, you're going down quite the rabbit hole here just for a small feature. I recommend waiting or doing it yourself :P
L2160[19:22:31] ⇦ Quits: Wastl2 (~Wastl2@x4e350118.dyn.telefonica.de) (Quit: Lost terminal)
L2161[19:22:38] <vox> Yeah I was looking into that and asked how better to do it than to have 16 possible blockstate variants :P
L2162[19:22:52] <vox> That's definitely an option that I think would work
L2163[19:22:58] <vox> But it's ugly imo
L2164[19:23:50] <tterrag> we use an extended state
L2165[19:23:52] <vox> Oh, I think with some clever use of some code similar to that CTM file, I could probably just layer textures over each other
L2166[19:24:01] <vox> Oh? Continue talking about this :D
L2167[19:24:02] <tterrag> you could definitely use CTM/Dir/ISubmap to help you out
L2168[19:24:14] <tterrag> howver like I said that's only part of the picture
L2169[19:24:33] <tterrag> well, that's one of the bits that needs to change before release
L2170[19:24:40] <vox> What am I missing though really?
L2171[19:24:48] <tterrag> currently we store some data defined by the block render types in the extended state to use later
L2172[19:24:58] <gigaherz> https://github.com/gigaherz/Enderthing/releases
L2173[19:25:03] <FusionLord> are we still fighting over languages?
L2174[19:25:08] <tterrag> but, according to fry, I can just directly access the world in the model because it gives me a ChunkCache which is threadsafe
L2175[19:25:23] <vox> That's interesting. Huh.
L2176[19:25:27] *** Mumfrey is now known as mumfrey
L2177[19:25:43] <TehNut> No we're talking about our lord and savior CTMLib
L2178[19:25:50] <vox> Is there a reason I shouldn't just make a custom IBakedModel?
L2179[19:25:59] <FusionLord> williewillus, you said that i need to "remake", how does 1 do?
L2180[19:26:22] <tterrag> vox: not really
L2181[19:26:25] <williewillus> Build -> rebuild
L2182[19:26:28] <tterrag> that's probably the best way
L2183[19:26:31] <tterrag> doing it with json will be tedious
L2184[19:27:13] <tterrag> LexManos: pssst, could you change the readthedocs url in the topic to .io ?
L2185[19:27:14] <FusionLord> when rebuilding the project it errors out on that line
L2186[19:27:35] <williewillus> no idea
L2187[19:27:38] <williewillus> then
L2188[19:27:44] <tterrag> and maybe use mcforge.rtfd.io as it's shorter? :P
L2189[19:27:52] <williewillus> code is wrong or ide is broken :P
L2190[19:27:54] <tterrag> (also funnier)
L2191[19:28:11] <vox> tterrag: Yeah, I'll probably just do that and use some of that CTM code to help me out
L2192[19:28:13] <tterrag> vox: that massive javadoc on CTM explains our logic for the most part
L2193[19:28:57] <vox> Yep, I just have to figure out how to load those corners into memory in the Block class or in the IBakedModel class, so I can just slap them together
L2194[19:29:00] <tterrag> also you can read https://github.com/Chisel-Team/CTMLib/wiki
L2195[19:29:08] <vox> That technique is called bitmasking btw
L2196[19:29:13] <LexManos> tterrag, you know better then that, if you want to see a change then give a full change
L2197[19:29:33] <tterrag> Downloads: http://files.minecraftforge.net Documentation: http://mcforge.rtfd.io No PM's Without invitation, WebChats are muted. Do not say Lex's full nick unless nessasary. Stay on topic. Banned topics: Release ETAs, Official API, 'MC would be better in {insert language here}' #ForgeGradle for gradle questions
L2198[19:29:41] <tterrag> there you go
L2199[19:29:59] <vox> tterrag: see http://www.angryfishstudios.com/2011/04/adventures-in-bitmasking/ for a really cool graphic btw
L2200[19:30:05] <gigaherz> night ppl
L2201[19:30:09] <vox> night ghz
L2202[19:30:10] <williewillus> night giga
L2203[19:30:15] ⇦ Quits: gigaherz (gigaherz@198.red-88-9-10.dynamicip.rima-tde.net) (Remote host closed the connection)
L2204[19:30:17] *** LexManos changes topic to 'Downloads: http://files.minecraftforge.net Documentation: http://mcforge.rtfd.io No PM's Without invitation, WebChats are muted. Do not say Lex's full nick unless nessasary. Stay on topic. Banned topics: Release ETAs, Official API, 'MC would be better in {insert language here}' #ForgeGradle for gradle questions'
L2205[19:30:21] ⇦ Quits: c233 (~c233@164.40.206.63) (Ping timeout: 384 seconds)
L2206[19:30:26] <williewillus> meh that infographic doesn't help for me
L2207[19:30:27] <tterrag> vox: our CTM uses 2 texture files total
L2208[19:30:41] <williewillus> I just imagine a long line of 01's and ands test things and ors turn them on
L2209[19:30:42] ⇨ Joins: c233 (~c233@164.40.198.2)
L2210[19:30:44] <tterrag> the small 16x one is the unconnected state, the other one (2x size) gives everything else
L2211[19:30:53] <vox> Yep, I saw that. I plan to do the same but I have to figure out how to pull the corners out of the second one
L2212[19:31:03] <williewillus> xors toggle them and shifts move it around so your masks arent huge
L2213[19:31:04] <tterrag> you just stitch both textures
L2214[19:31:50] <williewillus> ooh
L2215[19:31:56] <williewillus> latest pre of 1.9.3 has /stopsound
L2216[19:32:08] <MattDahEpic> finally
L2217[19:33:37] <vox> tterrag: Is there a reason for me to have that base texture at all and not just pick some default corners to render?
L2218[19:33:52] <capitalthree> hey lex I have a question nobody else knew the answer to, how come forge re-hosts the scala runtime instead of using maven central?
L2219[19:34:12] <tterrag> erm
L2220[19:34:20] <tterrag> the second texture does not have closed corners
L2221[19:34:32] <tterrag> read the wiki page
L2222[19:34:40] <tterrag> https://github.com/Chisel-Team/CTMLib/wiki/Standard-CTM-Format
L2223[19:34:52] <vox> I can think of 4 possible states for each corner
L2224[19:35:05] ⇦ Quits: PG85 (~PG85@86.89.87.222) ()
L2225[19:35:08] <vox> both sides, only x side, only z side, neither
L2226[19:35:24] <vox> So it seems like I would only ever need 16 textures
L2227[19:35:39] <tterrag> you are forgetting inner corners
L2228[19:36:18] <vox> Huh. I wasn't considering that
L2229[19:36:45] <vox> You sir are correct
L2230[19:36:56] <tterrag> I know :P
L2231[19:37:00] <vox> Lol
L2232[19:37:06] <tterrag> I've only written this logic from scratch twice
L2233[19:37:15] <tterrag> so I may be slightly familiar with the concept :P
L2234[19:37:25] <vox> Only slightly
L2235[19:37:35] <vox> The CTMLib art is cool btw
L2236[19:38:00] <tterrag> yeah
L2237[19:38:01] <tterrag> that part wasn't me
L2238[19:38:05] <tterrag> thank our artist Drullkus for that
L2239[19:38:11] <Drullkus> ?
L2240[19:38:16] <Drullkus> Thanks :)
L2241[19:38:23] <MattDahEpic> Drullkus the en-artener
L2242[19:38:24] <tterrag> logo came from cyanidex though lol
L2243[19:38:38] <tterrag> it was a team effort :D
L2244[19:38:40] <Drullkus> :D
L2245[19:39:14] <vox> Anyway, with you yelling at me to remember inner corners my work has... much increased :p
L2246[19:39:24] <tterrag> yeah, there's 7 potential corner states
L2247[19:39:26] <vox> Now I see why blockstate jsons are not good for this at all
L2248[19:39:27] <vox> yeah
L2249[19:39:28] <tterrag> I just checked :D
L2250[19:39:33] <vox> :D
L2251[19:40:02] <tterrag> 7*4 = 28
L2252[19:40:04] <vox> Soooo if I basically rewrite CTMLib
L2253[19:40:09] <tterrag> though I think the true amount of states per side is 27
L2254[19:40:10] <vox> want some code donated?
L2255[19:40:11] <tterrag> you lose one for some reason
L2256[19:40:31] <williewillus> welp someone just emailed me about the one-off bugfix coremod for 1.7 I made 2 years ago
L2257[19:40:36] <tterrag> heh
L2258[19:40:43] <tterrag> if you make something useful for us, I'd be glad to use it
L2259[19:40:46] <vox> Cool :D
L2260[19:40:50] <vox> williewillus: what'd they say?
L2261[19:40:58] <tterrag> but really our system has so much layered on top of that basic logic, you'd have to write something pretty incredible :P
L2262[19:41:01] <williewillus> they were editing the code and asking why it "doesn't work"
L2263[19:41:04] <williewillus> :P
L2264[19:41:07] <vox> Hah, nice :P
L2265[19:41:26] <tterrag> for reference, I've made this possible https://twitter.com/tterrag1098/status/716527516748525568
L2266[19:41:31] <vox> tterrag: fair enough! I'm basically going to take your CTM stuff and move some of it into an IBakedModel
L2267[19:41:34] <tterrag> (using a teeny bit of ASM)
L2268[19:41:44] <tterrag> soon to be teenier, thanks to fry's advice
L2269[19:41:54] <tterrag> it was a proof of concept mostly
L2270[19:42:15] ⇦ Quits: whitephoenix (~whitephoe@216-160-104-253.tukw.qwest.net) (Read error: Connection reset by peer)
L2271[19:42:30] <tterrag> vox: for example we have multiple render types besides basic CTM, and we load in all the info via resources
L2272[19:42:46] <vox> Chisel is a very complicated mod
L2273[19:42:55] <vox> Speaking of which
L2274[19:43:13] <vox> Chisel & Bits is massively outplaying you guys at the moment
L2275[19:43:15] ⇨ Joins: whitephoenix (~whitephoe@216-160-104-253.tukw.qwest.net)
L2276[19:43:23] <tterrag> https://github.com/Chisel-Team/Chisel/blob/1.9/dev/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/bevel.ctx
L2277[19:43:29] <tterrag> C&B serves a different purpose
L2278[19:43:33] <tterrag> and we plan to have some interop
L2279[19:43:39] <vox> awesome
L2280[19:43:44] <vox> The more the merrier
L2281[19:43:50] <tterrag> see ^ link
L2282[19:44:06] <tterrag> that's all the data needed to say "this is a CTM texture which is partially transparent"
L2283[19:44:21] <vox> (And we're now up to..... 11003 pages of blocks and counting)
L2284[19:44:31] <williewillus> lol
L2285[19:44:53] <tterrag> and that's only half of the picture for this block http://i.imgur.com/3bmC576.png
L2286[19:45:02] <tterrag> well...maybe only 1/3 :D
L2287[19:47:12] <tterrag> note that the inner part of that block is animated and tiles 2x2
L2288[19:47:48] <tterrag> perhaps more evident here http://i.imgur.com/YmYzp0j.png
L2289[19:49:12] <killjoy> So how do you kill superman?
L2290[19:49:18] <killjoy> With number literals
L2291[19:49:40] <killjoy> aka magic numbers
L2292[19:50:57] <MattDahEpic> how would i get a foreach for all the vanilla enchantments?
L2293[19:51:18] <williewillus> did what TehNut give you not work? :P
L2294[19:51:31] <williewillus> what does "get a foreach" even mean
L2295[19:51:33] <williewillus> an Iterable?
L2296[19:52:18] <MattDahEpic> williewillus, something that i can for over that has all the vanilla enchantments: for (Enchantment e : ???) {}
L2297[19:52:22] <TehNut> I don't see how what I provided would even fail. It's literally just looping through the enchantment registry
L2298[19:52:27] ⇦ Quits: tali713 (~user@70.102.135.175) (Ping timeout: 384 seconds)
L2299[19:52:32] <williewillus> MattDahEpic: use what tehnut just gave you
L2300[19:52:44] <MattDahEpic> TehNut, it doesnt seem to have the vanilla enchantments
L2301[19:52:49] <williewillus> of course it does
L2302[19:52:55] <williewillus> show code
L2303[19:52:58] <TehNut> It's... the enchantment registry
L2304[19:53:03] <TehNut> Why *wouldn't* it have them
L2305[19:53:14] <williewillus> unless you access it before vanilla registers enchantments
L2306[19:53:14] <MattDahEpic> https://gist.github.com/MattDahEpic/ea04ea812974312b49795b457eef3d91#file-disenchantrecipehandler-java-L49
L2307[19:53:17] <williewillus> which is way too early
L2308[19:53:27] <tterrag> that's...interesting
L2309[19:53:29] <TehNut> It's JEI recipe stuff
L2310[19:53:36] <TehNut> So it's when the client joins a world
L2311[19:53:39] <tterrag> in 1.9, if you hold shift in creative, block breaking is...slower?
L2312[19:53:41] <tterrag> but also strange
L2313[19:53:41] <TehNut> Definitely after vanilla does it's thing
L2314[19:53:59] <williewillus> well no it's an FML registry
L2315[19:54:02] <williewillus> those get synced on login right
L2316[19:54:15] <williewillus> try just printing everything in that coll out
L2317[19:54:39] <tterrag> am I the only one noticing this?
L2318[19:54:48] <tterrag> breaking blocks in creative while sneaking is super weird
L2319[19:55:09] <williewillus> does it happen in vanilla?
L2320[19:55:09] <tterrag> it's like there's some kind of global timer that counts up to ~1 second no matter what block you are hitting
L2321[19:55:13] <tterrag> haven't tested
L2322[19:55:24] <tterrag> too lazy
L2323[19:55:25] <tterrag> :D
L2324[19:55:26] <williewillus> if not its probably a #blamemezz
L2325[19:55:35] <williewillus> i'll try
L2326[19:56:43] ⇦ Quits: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net) (Ping timeout: 190 seconds)
L2327[19:56:50] <williewillus> doesnt seem to happen in 1.9.3-pre2
L2328[19:56:54] <williewillus> checking my 1.9 pack
L2329[19:57:08] <mezz> god damn it >_>
L2330[19:57:13] <williewillus> lol
L2331[19:57:44] <williewillus> wait it behaves the same for me in forge
L2332[19:57:45] <vox> lol
L2333[19:57:49] <williewillus> what did you mean by "slower"?
L2334[19:57:51] <vox> Oh really
L2335[19:57:51] <mezz> woo
L2336[19:57:56] <williewillus> i can break as fast as I can click almost
L2337[19:58:04] <vox> It's not a #blamemezz this time
L2338[20:00:50] ⇦ Quits: Woodstone (~quassel@2a03:b0c0:2:d0::2c8:d001) (Remote host closed the connection)
L2339[20:04:03] ⇨ Joins: Woodstone (~quassel@2a03:b0c0:2:d0::2c8:d001)
L2340[20:05:09] <FusionLord> Unable to find a file that is present(red), but able to load a file right beside it(green),
L2341[20:05:47] <FusionLord> http://puu.sh/oyiOr/b98974e2d3.png
L2342[20:06:01] <FusionLord> guess it helps if I post the screenshot huh?
L2343[20:06:23] <mezz> build -> rebuild project
L2344[20:06:42] <mezz> fixes that kind of thing 99% of the time for me
L2345[20:06:43] ⇦ Quits: P3pp3rF1y2 (~P3pp3rF1y@100-250-77-178-ptr.xsky.cz) (Ping timeout: 190 seconds)
L2346[20:07:05] <FusionLord> why does intellij hate me so...
L2347[20:07:13] <FusionLord> still didn't find the file
L2348[20:08:22] <tterrag> williewillus: it's not super noticeable
L2349[20:08:26] <tterrag> but it's definitely a bit slower
L2350[20:08:33] <williewillus> 0.o
L2351[20:08:46] <tterrag> I was running a few mods
L2352[20:08:49] <tterrag> let me try pure forge
L2353[20:09:40] <tterrag> yeah no doesn't happen outside dev for me
L2354[20:09:52] <williewillus> o.0
L2355[20:10:01] <williewillus> what mods do you have?
L2356[20:10:18] <tterrag> chisel+JEI
L2357[20:11:46] <tterrag> strange
L2358[20:11:54] <tterrag> I can get it to happen with just chisel (same setup I used out of dev)
L2359[20:12:00] <tterrag> so it is definitely an in dev thing
L2360[20:12:05] <mezz> #blamechisel
L2361[20:12:11] <tterrag> no
L2362[20:12:17] <tterrag> I did have chisel in my out of dev install
L2363[20:12:25] <tterrag> versions were different
L2364[20:13:14] <williewillus> lol
L2365[20:14:22] <mezz> #blametterragsomehow
L2366[20:14:46] <tterrag> :X
L2367[20:14:47] ⇦ Quits: FusionLord (~FusionLor@ip70-190-239-223.ph.ph.cox.net) (Read error: Connection reset by peer)
L2368[20:15:08] <vox> #blamemezzbecauseitsmorefun
L2369[20:16:05] ⇦ Quits: Vazkii (~Vazkii@a79-169-163-74.cpe.netcabo.pt) (Read error: Connection reset by peer)
L2370[20:16:13] * capitalthree gives tterrag a chisel with a chisel with a chisel with a chisel with a chisel with a chisel with a chisel with a stack of netherrack
L2371[20:18:02] ⇦ Quits: AimHigh935 (webchat@155.31.158.29) (Ping timeout: 195 seconds)
L2372[20:20:20] * vox gives tterrag a hug because his code is mostly not garbage
L2373[20:21:33] <TehNut> >mostly
L2374[20:21:54] <vox> mhm
L2375[20:21:57] <mezz> > chisel for 1.8.9 > not garbage
L2376[20:22:18] <TehNut> file y u no save
L2377[20:22:36] <vox> tterrag: you have a tool for making these ctm files?
L2378[20:22:40] <mezz> save it more forcefully
L2379[20:23:06] <TehNut> AnArtist.exe
L2380[20:23:16] <tterrag> ^
L2381[20:23:27] <tterrag> mezz: fite me m8
L2382[20:23:31] <vox> Where is this located?
L2383[20:23:42] <vox> I'm not seeing it in the ctmlib repo at least
L2384[20:23:44] <tterrag> vox: in reality I'm sure Drullkus has some tools he uses
L2385[20:23:50] <tterrag> I just don't know them :P
L2386[20:23:53] <vox> Ah I see
L2387[20:23:58] <Drullkus> ?
L2388[20:24:09] <vox> Have any tools for making these ctm textures?
L2389[20:24:13] <Drullkus> Oh
L2390[20:24:16] <Drullkus> I just photoshop
L2391[20:24:27] <vox> You're no fun :P
L2392[20:24:37] <mezz> texture artists do not automate, they just do
L2393[20:25:00] <Drullkus> It's a specialized version of photoshop with some plugins that lets me sacrifice virgins so I can automate
L2394[20:25:03] <vox> Alright, I'll do the same I guess. I'll eventually automate this and send you the tool when I do, Drullkus
L2395[20:25:05] <vox> Ah I see
L2396[20:25:16] <Drullkus> Just messing... I don't automate >.<
L2397[20:25:19] <Drullkus> lol
L2398[20:25:25] <vox> Automation saves me so much time
L2399[20:25:26] <Drullkus> Ah, that would be fun :D
L2400[20:25:30] <vox> :D
L2401[20:25:50] <Drullkus> Saving many files manually is another form of Grinding like skyblock lol
L2402[20:25:55] <vox> Basically the plan is to be able to import the corners, then export them as a while image
L2403[20:25:56] <vox> lol
L2404[20:25:57] <vox> yeah
L2405[20:26:00] * Drullkus is playing a bit of skyblock atm
L2406[20:26:09] <Drullkus> Ah
L2407[20:26:22] <vox> Plus some editing if I can swing it
L2408[20:26:33] <vox> Because who doesn't like having all of their tools in one place
L2409[20:26:39] <vox> But that's a bit more difficult
L2410[20:26:47] <Drullkus> I usually do the corners myself since I have complete control over the shadowing and etc
L2411[20:27:09] <Drullkus> But what I really think would be awesome is a tool that lets me assemble the .ctx, .cf files and etc
L2412[20:27:19] <Drullkus> (Talking about Chisel 1.9 assets)
L2413[20:27:20] <vox> I could probably swing that too
L2414[20:27:28] <vox> Idk much about chisel though
L2415[20:27:37] <vox> I'm using this CTM thing for myself
L2416[20:30:15] <Drullkus> Ah
L2417[20:30:24] <Drullkus> CTMLib for 1.7, yeah
L2418[20:30:39] <Drullkus> We're working on some CTM stuff for 1.9 that's much more powerful :P
L2419[20:30:49] <Drullkus> It's done for the most part lol
L2420[20:31:22] <Drullkus> It brings the vanilla model system to the next level :P
L2421[20:33:05] ⇨ Joins: insaneau (~insaneau@CPE-101-182-255-148.lnse3.woo.bigpond.net.au)
L2422[20:33:28] <insaneau> So this used to work in 1.8.9, but now I don't know why it's not in 1.9. It's just rendering a black square. http://pastebin.com/G693cVa3
L2423[20:35:17] <Drullkus> Ex Nihilo Adscensio?
L2424[20:35:55] <tterrag> insaneau: you have disable lighting commented?
L2425[20:36:07] <insaneau> doesn't change it.
L2426[20:36:43] <tterrag> hm
L2427[20:36:49] <tterrag> maybe add normals to the vertices
L2428[20:36:56] <vox> Drullkus: I'm basically stripping out the 1.7 functionality and dropping it in an IBakedModel
L2429[20:37:07] <tterrag> yeah I think that's it
L2430[20:37:15] <tterrag> use POSITION_TEX_COLOR_NORMAL
L2431[20:37:44] <Drullkus> vox: Er, tbh, that might be unneccessary? We already have code in Chisel that lets the same magic happen more flexibly :D
L2432[20:37:55] <Drullkus> idk, tterrag is the one to consult on the code lol
L2433[20:38:06] <vox> tterrag told me to do my own thing because it's a WIP
L2434[20:38:13] <Drullkus> Ah, ok
L2435[20:38:14] <vox> essentially
L2436[20:38:15] <vox> yeah
L2437[20:38:30] <tterrag> insaneau: in this case your normal would be (0, 1, )
L2438[20:38:34] <tterrag> er (0, 1, 0)
L2439[20:39:52] <tterrag> it's interesting that it's required now
L2440[20:39:56] <tterrag> I wonder what changed
L2441[20:39:59] <tterrag> question for fry I guess
L2442[20:40:09] <insaneau> and i put that after the vertices but before the draw?
L2443[20:40:29] <vox> tterrag: the base texture should be the standalone? Aka all corners filled?
L2444[20:40:52] ⇨ Joins: stiforr_ (~stiforr@ip72-216-8-185.pn.at.cox.net)
L2445[20:41:06] <tterrag> insaneau: you put it in whatever order the format says :P
L2446[20:41:17] <tterrag> vox: yes
L2447[20:41:29] <vox> cool, thanks
L2448[20:41:48] <insaneau> tterrag: putNormal returns void though, so i can't put it in my chain.
L2449[20:41:55] <tterrag> don't use put* methods
L2450[20:41:59] <tterrag> they are not what you want
L2451[20:42:10] <tterrag> ever
L2452[20:42:21] <insaneau> oh there's .normal
L2453[20:42:22] <insaneau> lol
L2454[20:43:14] <tterrag> .-.
L2455[20:43:32] <tterrag> btw since you are in a TESR and color is constant
L2456[20:43:37] <tterrag> there isn't much point to putting color in the buffer
L2457[20:43:46] <tterrag> just use GlStateManager.color
L2458[20:44:17] <insaneau> still didn't work
L2459[20:45:20] <williewillus> glcoloring doesnt affect the tess btw
L2460[20:45:29] <tterrag> uwotm8
L2461[20:45:31] <tterrag> yes it does
L2462[20:45:35] <tterrag> it affects everything
L2463[20:45:46] <williewillus> no it doesn't, try glcoloring then rendering a bakedmodel
L2464[20:46:13] <williewillus> at least last time I checked
L2465[20:46:16] <williewillus> a couple weeks ago :P
L2466[20:46:18] <tterrag> how exactly are you rendering th ebaked model?
L2467[20:47:55] <williewillus> at one point I copypasta'ed 4 methods from the BlockModelRenderer/BlockRendererDispatcher
L2468[20:47:58] <williewillus> to remove glcolors in there
L2469[20:48:02] <williewillus> and mine still didn't apply
L2470[20:48:07] <williewillus> guess I was doing it wrong then? :P
L2471[20:48:23] <tterrag> I don't see how that could be...
L2472[20:48:29] <tterrag> either way, it's irrelevant
L2473[20:48:37] <tterrag> insaneau: what does your code look like now?
L2474[20:49:07] <insaneau> http://pastebin.com/bDwF29WL
L2475[20:49:19] <insaneau> still just a black square.
L2476[20:49:51] *** williewillus is now known as willieaway
L2477[20:50:18] <tterrag> strange
L2478[20:50:26] <tterrag> what if you get rid of the texture part
L2479[20:50:26] *** willieaway is now known as williewillus
L2480[20:50:42] <vox> Such solar panel
L2481[20:50:43] <vox> http://imgur.com/a/jq5En
L2482[20:50:56] ⇨ Joins: FusionLord (~FusionLor@ip70-190-239-223.ph.ph.cox.net)
L2483[20:51:08] <FusionLord> O.o public void randomDisplayTick(IBlockState worldIn, World pos, BlockPos state, Random rand)
L2484[20:51:08] <insaneau> The TextureAtlasSprite?
L2485[20:51:21] <vox> tterrag and Drullkus, look correct?
L2486[20:51:31] <vox> insaneau: It's for connected textures
L2487[20:51:41] <tterrag> insaneau: no just get rid of the texture part of the format
L2488[20:51:49] <tterrag> use POSITION_COLOR_NORMAL if it exists
L2489[20:51:54] <tterrag> vox: yes
L2490[20:52:03] <insaneau> doesn't.
L2491[20:52:08] <tterrag> actually no
L2492[20:52:09] <FusionLord> those names tho
L2493[20:52:17] <tterrag> you don't want the edge on the left
L2494[20:52:22] <vox> thanks tterrag! Now to make it work in code :D
L2495[20:52:23] <williewillus> dammit my mouse just died
L2496[20:52:32] <tterrag> insaneau: so create it yourself :P
L2497[20:52:35] <vox> Those are 32x32 images, idk how well this will work
L2498[20:52:40] <insaneau> ...
L2499[20:52:59] <vox> williewillus: good programmers don't need mice. There's hotkeys for everything
L2500[20:53:01] <vox> :P
L2501[20:53:03] <williewillus> i know
L2502[20:53:05] <williewillus> :P
L2503[20:53:22] <williewillus> i have vim bindings on chrome and use i3, but still need it sometimes
L2504[20:53:25] <vox> Though scroll wheels are awesome
L2505[20:53:30] <tterrag> insaneau: new VertexFormat().addElement(POSITION_3F).addElement(COLOR_4UB).addElement(NORMAL_3B)
L2506[20:53:38] <tterrag> oh an dimport static vertexelement.* :P
L2507[20:54:06] <tterrag> actually those are stored in DefaultVertexFormats
L2508[20:55:07] <vox> Also, tterrag: CTM?
L2509[20:55:15] <vox> Connected.... Texture... something?
L2510[20:55:20] <williewillus> Mod
L2511[20:55:21] <tterrag> mod? matrix? map?
L2512[20:55:23] <tterrag> who knows :D
L2513[20:55:23] <williewillus> it's an old name
L2514[20:55:27] <tterrag> it was originally mod though yeah
L2515[20:55:38] <vox> Okay interesting
L2516[20:55:42] <tterrag> I'd go with "map" for our current impl though
L2517[20:55:45] <tterrag> or "mapping"
L2518[20:56:08] <vox> How should I credit you for code?
L2519[20:56:19] ⇨ Joins: AimHigh935 (webchat@155.31.40.151)
L2520[20:56:26] <insaneau> "that guy tterrag" should be fine.
L2521[20:56:38] <tterrag> credit is not required, you just have to be GPL-compatible
L2522[20:56:49] <tterrag> if you want to link to the original source though, that's fine
L2523[20:58:11] <insaneau> tterrag: http://pastebin.com/dRRCt7tT produces empty until the barrels are "full", then http://puu.sh/oylCK/1f63b4dbbd.jpg
L2524[20:58:31] <Drullkus> vox: Uh
L2525[20:58:40] <Drullkus> Bottom left corner texture on CTM
L2526[20:58:46] <Drullkus> You don't need the border on the left side
L2527[20:59:27] <vox> Thanks for the catch! Come on tterrag!
L2528[20:59:56] <Drullkus> lol
L2529[21:00:09] <tterrag> um, read up dude
L2530[21:00:20] <tterrag> <tterrag> actually no
L2531[21:00:20] <tterrag> <tterrag> you don't want the edge on the left
L2532[21:00:22] <vox> whoops totally missed that
L2533[21:00:29] <vox> Okay, I rescind my comment
L2534[21:00:31] <vox> Also, "import static"?
L2535[21:01:00] <insaneau> two conversations going on at once :P
L2536[21:01:01] <tterrag> well now that's interesting insaneau
L2537[21:01:12] <tterrag> seems like the position gets corrupted somehow
L2538[21:01:19] <tterrag> maybe you are overflowing or something
L2539[21:01:20] <tterrag> very odd
L2540[21:01:28] ⇦ Quits: qid (~david@cpe-172-101-73-28.buffalo.res.rr.com) (Quit: leaving)
L2541[21:02:11] <tterrag> I don't see hwo that's possible though
L2542[21:02:15] <tterrag> yeah I'm lost, really. it should work
L2543[21:02:26] <tterrag> you can try the format with LMAP but you shouldn't need it
L2544[21:03:45] <insaneau> oh wait i fixed the ridiculous shot, there was a .putNormal
L2545[21:04:01] ⇨ Joins: baegmon (webchat@CPE-60-225-55-120.nsw.bigpond.net.au)
L2546[21:04:14] <tterrag> .-.
L2547[21:04:31] <tterrag> are you not showing the whole code? lol
L2548[21:04:40] <tterrag> oh at the end there
L2549[21:04:50] <insaneau> line 51 of the paste.
L2550[21:05:00] <tterrag> yeah you basically jsut forced 0,1,0 into the beginning of the buffer I believe
L2551[21:05:00] <insaneau> restoring the TEX still isn't giving me a texture though
L2552[21:05:05] <tterrag> wait
L2553[21:05:09] <tterrag> so it worked without the texture?
L2554[21:05:12] <tterrag> or it was still black?
L2555[21:05:15] <insaneau> still black
L2556[21:05:20] <tterrag> strange
L2557[21:05:28] <tterrag> I'd wait for fry to be awake :/
L2558[21:05:32] <insaneau> ok
L2559[21:06:25] ⇦ Parts: baegmon (webchat@CPE-60-225-55-120.nsw.bigpond.net.au) ())
L2560[21:06:44] ⇨ Joins: baegmon (webchat@CPE-60-225-55-120.nsw.bigpond.net.au)
L2561[21:12:15] <Drullkus> vox: I'm just used to catching those things because I've made at least 200 ctm files :P
L2562[21:12:32] <vox> Lol fair enough
L2563[21:13:00] ⇨ Joins: brandon3055 (~Brandon@122.129.140.1)
L2564[21:13:19] *** williewillus is now known as willieaway
L2565[21:15:10] <vox> tterrag: where do Axis and AxisDirection come from?
L2566[21:15:54] <vox> Nvm got it
L2567[21:16:14] <insaneau> wait
L2568[21:16:16] <insaneau> it's working now
L2569[21:16:16] <insaneau> wtf
L2570[21:16:35] ⇨ Joins: asd (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au)
L2571[21:16:40] ⇦ Quits: baegmon (webchat@CPE-60-225-55-120.nsw.bigpond.net.au) (Quit: Web client closed)
L2572[21:16:45] ⇦ Parts: asd (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au) ())
L2573[21:16:47] ⇨ Joins: asd (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au)
L2574[21:17:11] <vox> Lombok?
L2575[21:17:35] <vox> Oh that's cool
L2576[21:17:41] <vox> Idk, I'll write my own constructors thanks
L2577[21:17:48] <vox> Very cool idea though
L2578[21:18:49] <insaneau> tterrag: I think the issue was that the texture wasn't getting saved on the client... oops.
L2579[21:19:44] ⇦ Quits: blood_ (unknown@ool-4574115b.dyn.optonline.net) ()
L2580[21:19:44] <asd> hi everyone, I'm trying to check if blockevent.placeevent is an instance of ContainerChest but for some reason it isn't getting recognized, could anyone take a look?
L2581[21:19:53] *** asd is now known as baegmon
L2582[21:22:21] ⇨ Joins: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net)
L2583[21:22:28] *** willieaway is now known as williewillus
L2584[21:22:42] <williewillus> dang the latest few snapshots really boosted my eprf
L2585[21:22:44] <williewillus> *perf
L2586[21:22:52] <FusionLord> hrmmm. I'm gonna blame ShadeKiller for this java.io.FileNotFoundException: hardcorenomad:models/blocks/enchanter/ring.obj my blockstate json can load the file just fine but not my code https://gist.github.com/FusionLord/b6dd688b0da343482e8fc2d862bddaca#file-rendertileentityenchantingtable-java-L37
L2587[21:24:34] <FusionLord> also is it possible to disable mipmaps for a block in the .json and enable transparent textures
L2588[21:25:02] <williewillus> transparent textures are already possible
L2589[21:25:08] <williewillus> and mipmapping is a settings slider
L2590[21:26:55] <FusionLord> williewillus, no mipmapping http://puu.sh/oymIJ/72ede8efb1.jpg mipmapping: http://puu.sh/oyn8c/079bb5e235.png Ijust want to disable for this block
L2591[21:27:28] <williewillus> its global
L2592[21:27:42] <FusionLord> ok so thats a no
L2593[21:28:39] <FusionLord> and as for the transparency why is there white... the texture is transparent
L2594[21:28:55] <vox> Alright, night all. Hope everyone has a great rest of their night/day/whenever I guess!
L2595[21:28:57] <vox> :D
L2596[21:29:11] *** vox is now known as vox|sleep
L2597[21:29:12] <williewillus> hmm that looks abnormal
L2598[21:29:17] ⇦ Parts: vox|sleep (~voxmods@pool-71-178-241-173.washdc.fios.verizon.net) (Leaving))
L2599[21:29:17] <williewillus> might be the uv adjustment fry fixed
L2600[21:29:23] <williewillus> poke him when he wakes up
L2601[21:29:51] <FusionLord> ok, just for reference here is that texture http://puu.sh/oynhJ/cd6fe18bc2.png
L2602[21:30:21] <TehNut> baegmon: ContainerChest isn't the block, it's the container. You'll want to check instanceof BlockChest
L2603[21:31:32] <baegmon> Ah that sounds about right, cheers for that
L2604[21:34:43] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 190 seconds)
L2605[21:37:12] <HassanS6000> What replaced IFlexibleBakedModel in 1.9?
L2606[21:37:38] <HassanS6000> nvm
L2607[21:37:40] <HassanS6000> it was removed
L2608[21:39:20] <baegmon> to track player placed blocks (without using nbt), do you track the blocksnapshots? Sorry If I seem to be asking noobish questions just trying to learn all the core concepts that everyone is mentioning :P
L2609[21:39:32] <williewillus> wat
L2610[21:40:12] <baegmon> I thought blocksnapshot tracks location? or am I completely wrong lol
L2611[21:41:32] ⇨ Joins: Naiten (~Naiten@82.162.0.65)
L2612[21:42:17] <williewillus> what are you trying to achieve?
L2613[21:44:51] <tterrag> insaneau: wasn't getting saved?
L2614[21:45:07] <insaneau> saved or sent as it turns out. I am good at coding.
L2615[21:46:22] <baegmon> I'm just trying to track all the blocks that player places and only allowing them to break them. Previously I was tracking Block instances but was made aware that it tracks all of that type and instead I should be tracking every block position in the world....... which is what I thought a blocksnapshot was doing haha
L2616[21:47:13] <williewillus> do you want it to persist across saves?
L2617[21:48:35] ⇦ Quits: Drullkus (~Dru11kus@205.155.154.1) (Quit: brb *poof*)
L2618[21:49:29] <baegmon> yea isn't that what writeToNBT/readFromNBT do? for now I'm just trying to get it working for myself
L2619[21:49:50] <williewillus> i guess but you have to save that yourself
L2620[21:49:56] <williewillus> and i don't think blocksnapshot fits your use
L2621[21:53:31] <baegmon> Ah maybe then just track BlockPos?
L2622[21:53:34] ⇦ Quits: Naiten (~Naiten@82.162.0.65) (Read error: Connection reset by peer)
L2623[21:54:34] <FusionLord> is ClientRegistry.bindTileEntitySpecialRenderer still valid in 1.9?
L2624[21:59:35] <KnightMiner> Yep
L2625[21:59:43] <FusionLord> it is iteresting that calling ClientRegistry on the server didn't crash...
L2626[22:02:59] <FusionLord> I'm getting a read out that it has been registered, but the renderTileEntityAt isn't being called
L2627[22:10:09] <FusionLord> is there a certain stage that i need to register the TESR in? is the mapping getting reset?
L2628[22:11:47] ⇦ Quits: AimHigh935 (webchat@155.31.40.151) (Ping timeout: 195 seconds)
L2629[22:13:15] *** Vigaro is now known as V
L2630[22:13:26] <tterrag> preinit
L2631[22:14:12] ⇨ Joins: P3pp3rF1y2 (~P3pp3rF1y@100-250-77-178-ptr.xsky.cz)
L2632[22:15:48] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:8947:1cac:1d10:1a37:144e)
L2633[22:16:29] <tterrag> I'm looking into the feasibility of rendering short bits of video from a mod
L2634[22:16:34] <tterrag> like a gif/vine screenshot
L2635[22:16:48] <tterrag> can anyone think of any way to do this? :P
L2636[22:18:05] ⇦ Quits: MattDahEpic (~MattDahEp@174-16-188-51.hlrn.qwest.net) (Ping timeout: 384 seconds)
L2637[22:21:17] <FusionLord> ... getRenderType has one for TESR huh?
L2638[22:22:21] <FusionLord> bout to lose my cool
L2639[22:22:23] <FusionLord> lol
L2640[22:24:07] ⇦ Quits: KnightMiner (~KnightMin@adsl-76-202-214-219.dsl.emhril.sbcglobal.net) (*.net *.split)
L2641[22:24:07] ⇦ Quits: potato (~tiktalik@2607:fcd0:daaa:1400:f::4) (*.net *.split)
L2642[22:24:07] ⇦ Quits: progwml6 (~progwml6@104.168.20.187) (*.net *.split)
L2643[22:24:07] ⇦ Quits: Quetzi (~Q@qmunity.quetzi.tv) (*.net *.split)
L2644[22:24:07] ⇦ Quits: SkySom (~SkySom@162.243.21.185) (*.net *.split)
L2645[22:24:07] ⇦ Quits: core (~core@ilya.xxx) (*.net *.split)
L2646[22:24:07] ⇦ Quits: nith1210 (~nith1210@BAS19-MONTREAL02-1279345890.dsl.bell.ca) (*.net *.split)
L2647[22:24:07] ⇦ Quits: LexMobile (sid15621@id-15621.highgate.irccloud.com) (*.net *.split)
L2648[22:24:07] ⇦ Quits: Watchful1 (sid67384@2604:8300:100:200b:6667:4:1:738) (*.net *.split)
L2649[22:24:07] ⇦ Quits: gratimax (~gratimax-@irc.gratimax.net) (*.net *.split)
L2650[22:24:07] ⇦ Quits: ProfMobius (~kickban@2a01:4f8:160:2372::2) (*.net *.split)
L2651[22:24:07] ⇦ Quits: Lord_Ralex (~Ralex@i.am.a.devilincarnate.net) (*.net *.split)
L2652[22:24:25] ⇨ Joins: Tiktalik (~tiktalik@2607:fcd0:daaa:1400:f::4)
L2653[22:24:26] ⇨ Joins: SkySom (~SkySom@162.243.21.185)
L2654[22:24:27] ⇨ Joins: Watchful1 (sid67384@id-67384.tooting.irccloud.com)
L2655[22:24:31] ⇨ Joins: Lord_Ralex (~Ralex@i.am.a.devilincarnate.net)
L2656[22:24:32] ⇨ Joins: Quetzi (~Q@qmunity.quetzi.tv)
L2657[22:24:33] ⇨ Joins: core (~core@ilya.xxx)
L2658[22:24:37] ⇨ Joins: LexMobile (sid15621@2604:8300:100:200b:6667:1:0:3d05)
L2659[22:24:38] MineBot sets mode: +o on LexMobile
L2660[22:24:42] ⇨ Joins: KnightMiner (~KnightMin@adsl-76-202-214-219.dsl.emhril.sbcglobal.net)
L2661[22:24:50] ⇨ Joins: progwml6 (~progwml6@104.168.20.187)
L2662[22:25:00] ⇨ Joins: gratimax (~gratimax-@irc.gratimax.net)
L2663[22:27:32] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L2664[22:28:08] <FusionLord> nope that wasn't it
L2665[22:28:24] <FusionLord> I don't understand why my TESR isn't working.
L2666[22:29:45] ⇦ Quits: baegmon (~baegmon@CPE-60-225-55-120.nsw.bigpond.net.au) ()
L2667[22:38:27] ⇦ Quits: Kodos (~Kodos@2602:306:ce20:6c30:48a5:5a7a:525b:406c) (Quit: Leaving)
L2668[22:47:06] <FusionLord> @SideOnly(Side.CLIENT) will prevent a method from firing on the server right?
L2669[22:47:12] <williewillus> no
L2670[22:47:23] <williewillus> read my rtd on sides
L2671[22:47:50] <williewillus> chances are if you need something done 99.9% of the time SideOnly is not the right tool
L2672[22:48:34] <tterrag> if you THINK it's the right tool, I can guarantee it's not :P
L2673[22:49:15] <williewillus> wtf theres an invisible zombie or something that's attacking me and giving me knockback
L2674[22:49:19] <williewillus> but I don't see damage
L2675[22:49:51] <williewillus> oh lol it was an infernal mob
L2676[22:51:23] ⇦ Quits: Lathanael (~Lathanael@p54960619.dip0.t-ipconnect.de) (Ping timeout: 190 seconds)
L2677[22:52:17] <FusionLord> well I'm only calling client side methods on client, via proxy, does that even matter if the class has an imiport to a client only class?
L2678[22:53:06] <williewillus> imports are syntactic sugar
L2679[22:53:32] <FusionLord> meaning not imported until needed?
L2680[22:53:44] ⇨ Joins: Lathanael|Away (~Lathanael@p54961106.dip0.t-ipconnect.de)
L2681[22:53:46] <williewillus> no, meaning the at runtime the idea of an "import" does not exist
L2682[22:54:02] <williewillus> it purely is so you don't have to type the full name of everything
L2683[22:54:50] <FusionLord> ok so import doesn't load the class
L2684[22:55:04] <FusionLord> then I need to figure out why it is trying to load a client class
L2685[22:56:29] <williewillus> post code
L2686[22:56:42] <williewillus> maybe log too
L2687[22:57:37] <williewillus> who makes the 1.9 item scrolly mod?
L2688[22:57:39] <williewillus> it's brokjen
L2689[22:57:55] <tterrag> item what now
L2690[22:58:31] <killjoy> jei?
L2691[22:58:34] <killjoy> that would be mezz
L2692[22:58:35] <williewillus> no
L2693[22:58:40] <williewillus> that's not in jei
L2694[22:58:45] <williewillus> it's another mod, lemme see
L2695[22:59:02] <williewillus> oh masa
L2696[22:59:13] <williewillus> scrolling puts half the stack in my hand
L2697[22:59:17] <williewillus> and then starts doing one by one
L2698[23:01:13] <FusionLord> Code: https://github.com/FusionLord/Hardcore-Nomad/blob/master/src/main/java/net/fusionlord/hardcorenomad/proxy/CommonProxy.java#L18 Log: https://gist.github.com/FusionLord/ba18265755dad66f60d3f6f317076e82
L2699[23:01:45] <williewillus> show your ModBlocks class
L2700[23:01:56] <williewillus> and that class is probably loading client classes
L2701[23:02:13] <FusionLord> not that method.
L2702[23:02:20] <williewillus> i meant modblocks
L2703[23:02:21] <williewillus> show that
L2704[23:02:28] <williewillus> modblocks is loading client classes
L2705[23:02:38] <FusionLord> https://github.com/FusionLord/Hardcore-Nomad/blob/41721388bf108a48b4bd1b956ef13fa6894b428d/src/main/java/net/fusionlord/hardcorenomad/init/ModBlocks.java#L38-L38
L2706[23:03:04] <williewillus> oh god my eyes all the sideonly
L2707[23:03:09] <williewillus> what's the point of having proxies
L2708[23:03:14] ⇦ Quits: Stiforr (~Stiforr@ip72-216-8-185.pn.at.cox.net) (Quit: Leaving)
L2709[23:03:15] <williewillus> if you just throw it all into one class
L2710[23:03:16] ⇦ Quits: diesieben07 (~diesieben@2001:19f0:6400:8965:5400:ff:fe07:8777) (Ping timeout: 186 seconds)
L2711[23:03:16] ⇦ Quits: luacs1998 (~miyamoto@abrarsyed.com) (Ping timeout: 186 seconds)
L2712[23:03:22] <williewillus> call that rendering stuff separately
L2713[23:03:25] <williewillus> from clientproxy
L2714[23:03:29] <FusionLord> I AM!
L2715[23:03:39] <williewillus> put it in another class
L2716[23:03:42] <FusionLord> that was me testing something and never changed it
L2717[23:03:43] <FusionLord> no
L2718[23:03:44] <williewillus> separation of concerns
L2719[23:03:47] <FusionLord> ok
L2720[23:03:55] <tterrag> proxy doesn't really make much sense for that kind of stuff either
L2721[23:04:04] ⇦ Quits: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net) (Ping timeout: 186 seconds)
L2722[23:04:04] ⇦ Quits: Abrar|gone (~AbrarSyed@ipv6.abrarsyed.com) (Ping timeout: 186 seconds)
L2723[23:04:07] <tterrag> imo
L2724[23:04:10] <williewillus> either way sideonly isn't the answer
L2725[23:04:14] <tterrag> no definitely not
L2726[23:05:03] <tterrag> ooook
L2727[23:05:07] ⇦ Quits: Dries007 (~DriesZNC@abrarsyed.com) (Ping timeout: 384 seconds)
L2728[23:05:14] <tterrag> I am getting a NoSuchFieldError on a library field which definitely exists
L2729[23:05:18] <tterrag> its like the library is out of date
L2730[23:05:22] <tterrag> but I have no idea how that could be
L2731[23:05:22] <williewillus> ide derpage?
L2732[23:05:30] <tterrag> I refreshed the project
L2733[23:05:36] <tterrag> wait, maybe the run config is scrweed up
L2734[23:05:41] ⇦ Quits: Wuppy (~wuppyZNC@abrarsyed.com) (Ping timeout: 384 seconds)
L2735[23:05:41] ⇦ Quits: Reika (~Reika@reika.kalseki.mods.abrarsyed.com) (Ping timeout: 384 seconds)
L2736[23:05:58] ⇨ Joins: Abrar|gone (~AbrarSyed@ipv6.abrarsyed.com)
L2737[23:05:58] MineBot sets mode: +o on Abrar|gone
L2738[23:06:10] ⇨ Joins: Reika (~Reika@reika.kalseki.mods.abrarsyed.com)
L2739[23:06:21] <tterrag> I think that was it
L2740[23:06:26] *** Abrar|gone is now known as AbrarSyed
L2741[23:06:30] ⇨ Joins: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net)
L2742[23:06:49] ⇨ Joins: diesieben07 (~diesieben@2001:19f0:6400:8965:5400:ff:fe07:8777)
L2743[23:07:15] ⇨ Joins: Wuppy (~wuppyZNC@2001:19f0:6400:8965:5400:ff:fe07:8777)
L2744[23:08:30] ⇦ Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) (Read error: Connection reset by peer)
L2745[23:08:45] <FusionLord> so seperating the registering and renderRegistering fixed the server crash, now I just need to figure out why my TESRS aren't working
L2746[23:09:46] <williewillus> define not working
L2747[23:11:49] <FusionLord> it registers, TileEntityRendererDispatcher.instance.getSpecialRendererByClass(tileEntityClass) returns the TESR, but a System.out.println() in the renderTileEntityAt doesn't print
L2748[23:12:52] ⇦ Quits: diesieben07 (~diesieben@2001:19f0:6400:8965:5400:ff:fe07:8777) (Ping timeout: 186 seconds)
L2749[23:12:52] ⇦ Quits: Reika (~Reika@reika.kalseki.mods.abrarsyed.com) (Ping timeout: 186 seconds)
L2750[23:13:10] <williewillus> what are you returning for Block.getRenderType
L2751[23:13:37] ⇦ Quits: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net) (Ping timeout: 384 seconds)
L2752[23:13:46] <FusionLord> MODEL same as the enchanting table which has a TESR
L2753[23:14:11] ⇦ Quits: Wuppy (~wuppyZNC@2001:19f0:6400:8965:5400:ff:fe07:8777) (Ping timeout: 384 seconds)
L2754[23:14:21] <McJty> Perhaps show some code
L2755[23:14:30] <williewillus> he already did
L2756[23:14:35] <McJty> Ah missed that
L2757[23:14:40] <williewillus> idk what's happening if you say the TESR is registered
L2758[23:15:01] <williewillus> those get called without fail unless your rendertype is not 2/3
L2759[23:15:01] <FusionLord> Repo: https://github.com/FusionLord/Hardcore-Nomad/
L2760[23:15:47] <williewillus> take sideonly off the tesr, irrelevant to the issue at hand but thats terrible practice
L2761[23:15:55] <McJty> Which block is it?
L2762[23:16:27] ⇦ Quits: AbrarSyed (~AbrarSyed@ipv6.abrarsyed.com) (Ping timeout: 384 seconds)
L2763[23:16:48] <FusionLord> williewillus, I just did, cleared out all of them
L2764[23:17:01] <williewillus> first of all this isn't a good idea:https://github.com/FusionLord/Hardcore-Nomad/blob/master/src/main/java/net/fusionlord/hardcorenomad/common/blocks/BlockEnchantingTable.java#L25
L2765[23:17:23] <williewillus> why the getRender() thing at all?
L2766[23:17:26] <FusionLord> williewillus, why?
L2767[23:17:36] <williewillus> Blocks are common classes
L2768[23:18:10] <McJty> FusionLord, there is only one block instance of every block
L2769[23:18:27] <williewillus> he knows that
L2770[23:18:31] <williewillus> thats not the issue i think
L2771[23:18:35] <williewillus> i actually dk
L2772[23:19:06] <FusionLord> williewillus, it might, I may be setting it to null by mistake I'll move the instance into the TESR
L2773[23:19:20] ⇨ Joins: Abrar|gone (~AbrarSyed@ipv6.abrarsyed.com)
L2774[23:19:20] ⇨ Joins: diesieben07 (~diesieben@abrarsyed.com)
L2775[23:19:20] MineBot sets mode: +o on Abrar|gone
L2776[23:19:22] <tterrag> it's bad separation of concerns
L2777[23:19:23] <williewillus> why do you need to keep it around at all?
L2778[23:19:25] <tterrag> I said this initially
L2779[23:19:32] ⇨ Joins: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net)
L2780[23:19:41] <williewillus> most people just do ClientRegistry.bindTesr(TE class, new TESR())
L2781[23:19:43] <williewillus> and are done with it
L2782[23:19:48] *** Abrar|gone is now known as AbrarSyed
L2783[23:19:52] ⇨ Joins: Wuppy (~wuppyZNC@abrarsyed.com)
L2784[23:19:53] <williewillus> there's no need to keep the ref around
L2785[23:20:32] <FusionLord> williewillus, because it is also a IResourceManagerReloadListener so I need to register that as well
L2786[23:20:43] ⇨ Joins: Reika (~Reika@reika.kalseki.mods.abrarsyed.com)
L2787[23:21:25] <williewillus> can't you just do that in the ctor?
L2788[23:25:40] *** williewillus is now known as willieaway
L2789[23:26:33] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L2790[23:26:46] <tterrag> yes
L2791[23:26:48] <tterrag> :P
L2792[23:27:09] <tterrag> but also MyTESR foo; bindTesr(foo); registerReloadListener(foo);
L2793[23:27:15] <tterrag> it's not hard .-.
L2794[23:28:27] ⇦ Quits: diesieben07 (~diesieben@abrarsyed.com) (Ping timeout: 201 seconds)
L2795[23:28:42] ⇨ Joins: diesieben07 (~diesieben@2001:19f0:6400:8965:5400:ff:fe07:8777)
L2796[23:28:55] ⇦ Quits: Noc7is (~Noc7is@ip68-106-209-192.om.om.cox.net) (Ping timeout: 384 seconds)
L2797[23:29:07] <FusionLord> ok registering the reloaded in the class, and the getRender() is just return a new TESR...()
L2798[23:29:34] ⇦ Quits: KnightMiner (~KnightMin@adsl-76-202-214-219.dsl.emhril.sbcglobal.net) (Quit: Leaving)
L2799[23:30:56] ⇨ Joins: Temportalist (uid37180@id-37180.charlton.irccloud.com)
L2800[23:32:39] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L2801[23:32:40] <tterrag> no...get rid of getRender()
L2802[23:33:13] <FusionLord> no I won't there is no reason to get rid of it.
L2803[23:33:46] <tterrag> I've said the reason 3 times now
L2804[23:33:51] <tterrag> it is bad separation of concerns
L2805[23:34:00] <tterrag> the block should not know or care about its rendering
L2806[23:34:43] ⇦ Quits: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net) (Quit: またね)
L2807[23:34:56] <FusionLord> well I'm not writting out 1000 lines of register(TE, new TESR()) that is why I setup the refelection to render my blocks
L2808[23:35:20] <FusionLord> register*
L2809[23:35:36] <tterrag> reflection??
L2810[23:36:16] <capitalthree> D:
L2811[23:38:17] <FusionLord> guess you didn't see this method? https://github.com/FusionLord/Hardcore-Nomad/blob/master/src/main/java/net/fusionlord/hardcorenomad/common/init/ModBlocks.java#L65-L81
L2812[23:39:17] <capitalthree> oh my god what
L2813[23:39:23] * capitalthree dies instantly
L2814[23:39:41] ⇨ Joins: Wastl2 (~Wastl2@x4e3529c8.dyn.telefonica.de)
L2815[23:39:47] <tterrag> No and I wish I could go back in time to before I did
L2816[23:40:00] <capitalthree> bring me with you, so I can un-die
L2817[23:40:20] <tterrag> sorry, your time line is fixed
L2818[23:40:43] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 190 seconds)
L2819[23:41:00] <FusionLord> why are you acting like it is the worst thing in the world, there is nothing wrong with it
L2820[23:41:18] <capitalthree> no, you are wrong, there *is* something wrong with it
L2821[23:41:23] <capitalthree> 1) you are using reflection
L2822[23:41:27] <capitalthree> 2) for something dumb
L2823[23:42:00] ⇨ Joins: Kolatra (~Kolatra@abrarsyed.com)
L2824[23:42:06] <FusionLord> 1) there is a reason for refelection, 2) its not dumb, 3) do what I want
L2825[23:42:32] <FusionLord> reguardless, it isn't the problem at hand
L2826[23:42:37] ⇦ Quits: Shukaro (~Shukaro@130.108.232.236) (Read error: Connection reset by peer)
L2827[23:42:40] <capitalthree> the reason for reflection is debugging and test code and dynamic loading
L2828[23:42:53] <capitalthree> let me tell you how to fix it
L2829[23:43:11] <capitalthree> 1) make an array literal of your Blocks
L2830[23:43:15] <capitalthree> 2) use foreach
L2831[23:43:42] <capitalthree> obviously I never advocate having 100 lines that are nearly the same
L2832[23:44:07] <capitalthree> but the amount of error handling in your reflection takes more lines than the proper solution
L2833[23:45:07] <tterrag> or something sensible like annotations which can be processed far easier
L2834[23:45:15] <tterrag> and provide extra information
L2835[23:45:19] <capitalthree> yeah doing it with annotations is great too
L2836[23:45:23] <capitalthree> I support this
L2837[23:45:37] <TehNut> I do it with annotations
L2838[23:45:42] <FusionLord> how would you make that array 100 lines of add(x), same issue
L2839[23:46:58] <TehNut> https://github.com/TehNut/LendingLibrary/blob/1.9/src/main/java/tehnut/lib/impl/ObjectHandler.java
L2840[23:47:04] <TehNut> could probably get cleaned up a bit
L2841[23:47:38] <TehNut> I'll probably regret linking that, but meh
L2842[23:49:13] <FusionLord> are you kidding me, all I ever hear from lex is use refelection, and NEVER USE ASM! clearly looks like you are using ASM
L2843[23:49:36] <tterrag> he's not
L2844[23:49:36] <TehNut> I am using FML provided methods of gathering annotation data
L2845[23:49:51] <killjoy> so asm is bad? I think binary patching is worse
L2846[23:50:05] <killjoy> Necessary evil or something
L2847[23:52:22] <FusionLord> so what it does is refelects through all classes and looks for classes with an annotation? how is that any better than just refelection the Fields in 1 class
L2848[23:53:07] <TehNut> It does that long before it reaches you
L2849[23:53:37] *** mrkirby153 is now known as kirby|gone
L2850[23:54:04] <tterrag> yes, but also that's not what it does at all
L2851[23:54:15] <FusionLord> I guess I fail to see where that is better
L2852[23:55:07] <tterrag> what happens if you add a non-block field to ModBlocks?
L2853[23:55:32] <FusionLord> it doesn't collect it
L2854[23:55:46] <FusionLord> I'm checking to make sure that it is a block
L2855[23:55:59] <FusionLord> you didn't even read the methood
L2856[23:57:27] <FusionLord> I did fix one mistake I cached the list, because now I am calling it more than once. so that should help with any(if there were any) performance issues
<<Prev Next>> Scroll to Top