<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:00:13] <Sollux-Captor> ok thanks
L2[00:00:32] <Cypher121> Sollux-Captor, yes
L3[00:00:56] <Sollux-Captor> nice Cypher121
L4[00:02:14] <Sollux-Captor> my mod is having problems finding the mod info. idk what is up
L5[00:02:58] <Sollux-Captor> http://i.imgur.com/JMS3wCz.png
L6[00:06:57] ⇨ Joins: PrinceCat (~PrinceCat@58-7-240-130.dyn.iinet.net.au)
L7[00:14:34] ⇦ Quits: Meow-J (uid69628@id-69628.highgate.irccloud.com) (Quit: Connection closed for inactivity)
L8[00:15:21] ⇦ Quits: Lunatrius (~Lunatrius@cpe-77.38.103.182.cable.t-1.si) (Ping timeout: 194 seconds)
L9[00:17:29] <killjoy> Sollux-Captor, are you sure it's not mcmod.info.txt?
L10[00:17:55] ⇦ Quits: BroadSight (~BroadSigh@ip72-216-44-137.pn.at.cox.net) (Quit: Leaving)
L11[00:18:06] *** kirby|gone is now known as mrkirby153
L12[00:18:12] *** Abrar|gone is now known as AbrarSyed
L13[00:19:14] <Sollux-Captor> oh wasnt paying attention. am i replying really late? it is just mcmod.info killjoy
L14[00:19:22] <killjoy> k
L15[00:19:31] <killjoy> is it formatted correctly?
L16[00:20:43] <Sollux-Captor> http://paste.ee/p/yTD9y
L17[00:21:07] <killjoy> line 11
L18[00:22:03] <killjoy> Sollux-Captor, ^
L19[00:22:18] <Sollux-Captor> oh dont mind that. uh... that "test" was typing i put in there when i was editing it in past.ee
L20[00:22:26] <Sollux-Captor> let me get you a new less edited version
L21[00:22:30] <killjoy> sure it was
L22[00:22:51] <killjoy> you should inspect the log
L23[00:23:27] <Sollux-Captor> http://paste.ee/p/wGUAI
L24[00:23:41] <Sollux-Captor> this is what it looks like, i just substitued the names with x
L25[00:24:08] <Sollux-Captor> i put in "test" before cause eh i was lazy and didnt want to change the names
L26[00:24:09] <killjoy> modids match?
L27[00:24:12] <killjoy> case-sensitive
L28[00:24:47] <Sollux-Captor> i see. i was missing an s
L29[00:24:52] <Sollux-Captor> in "Glassica"
L30[00:25:33] <killjoy> What's your mod do?
L31[00:25:36] * killjoy is curious
L32[00:26:05] <Sollux-Captor> semi realistic glass making process
L33[00:26:16] <killjoy> oh?
L34[00:26:20] <Sollux-Captor> instead of getting sand and smelting that, you must get silicon
L35[00:26:21] <killjoy> bottles included?
L36[00:26:25] <Sollux-Captor> mhm
L37[00:26:36] <killjoy> glass blowing, too?
L38[00:26:38] <Sollux-Captor> sand blocks will drop silica
L39[00:26:47] <Sollux-Captor> idk yet. maybe glass blowing
L40[00:27:20] <Sollux-Captor> but like, i want to make an oxidizer machine that you can oxidate silicon in to get silica
L41[00:27:36] <Sollux-Captor> and you can make different glasses with soda and lime
L42[00:27:43] <Sollux-Captor> and a few other material
L43[00:27:54] <Sollux-Captor> glass vat and glass kiln
L44[00:28:08] <Sollux-Captor> and a bunch of new glasses
L45[00:28:28] <Sollux-Captor> glass staining will be a thing
L46[00:28:36] <Sollux-Captor> totaly replace the current system
L47[00:30:49] <Sollux-Captor> may or may not try to make a dynamic glass coloring system where you can create any colored glass you want
L48[00:31:11] <Sollux-Captor> planned, but as to when i will implement that is questionable
L49[00:31:14] ⇦ Quits: Drullkus (~Drullkus@c-67-180-188-243.hsd1.ca.comcast.net) (Remote host closed the connection)
L50[00:33:05] *** fry|sleep is now known as fry
L51[00:33:45] ⇨ Joins: Vaht (~Tahg@pool-108-7-36-124.bstnma.fios.verizon.net)
L52[00:33:45] MineBot sets mode: +v on Vaht
L53[00:36:07] ⇨ Joins: Fendirain (~Fendirain@172-14-113-26.lightspeed.irvnca.sbcglobal.net)
L54[00:36:09] ⇦ Quits: Tahg (~Tahg@pool-108-7-36-124.bstnma.fios.verizon.net) (Ping timeout: 194 seconds)
L55[00:37:34] *** mrkirby153 is now known as kirby|gone
L56[00:40:03] ⇦ Quits: moog (~moog@24-176-156-144.dhcp.jcsn.tn.charter.com) (Ping timeout: 194 seconds)
L57[00:47:56] <Sollux-Captor> im not too sure what this is but can someone explain an enum ordinal to me please?
L58[00:50:13] <Lymia> Java has enum ordinals?
L59[00:50:23] <Sollux-Captor> welp it seems as if it does
L60[00:50:53] <Lymia> . . .
L61[00:51:11] <Lymia> The only reason those were ever a thing is because originally enums were syntatic sugar over integers.
L62[00:51:14] <Lymia> In Java, they aren't.
L63[00:51:25] <Lymia> But it appears to be in Enum regardless. :<
L64[00:52:12] <shadekiller666> ordinal is the "index" of the particular enum entry in the array of entries
L65[00:53:00] <Sollux-Captor> so i if i have enum i{ A, B, C, D} the ordinal @1 would be B ?
L66[00:53:14] <Lymia> I think.
L67[00:53:28] <Lymia> This feature gives me a bad taste in my mouth though.
L68[00:53:31] <shadekiller666> yep
L69[00:53:45] <Sollux-Captor> ooh goody, i can use that :D
L70[00:54:08] <shadekiller666> A.ordinal() is 0 in that case
L71[00:54:55] <Sollux-Captor> sooo.. i.ordinal(1) would be ?
L72[00:55:04] ⇨ Joins: Meow-J (uid69628@id-69628.highgate.irccloud.com)
L73[00:55:05] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Read error: Connection reset by peer)
L74[00:55:16] <Sollux-Captor> or does it only apply to the values inside the enum
L75[00:56:08] ⇦ Quits: vectorwing (~vectorwin@191.17.171.249) (Quit: Leaving)
L76[00:57:44] *** AbrarSyed is now known as Abrar|gone
L77[01:03:11] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L78[01:07:54] *** minecreatr is now known as Mine|dreamland
L79[01:10:01] <Cypher121> Sollux-Captor, ordinal is a method of enum, so it only applies to enums
L80[01:10:12] <Sollux-Captor> i see
L81[01:10:35] <Cypher121> what it returns depends on value. and it's literally number of value
L82[01:11:08] <tterrag> when you say `public enum Foo`
L83[01:11:15] <tterrag> what is compiled is `public class Foo extends Enum<Foo>`
L84[01:11:33] <tterrag> and BAR; is actually public static Foo BAR = new Foo();
L85[01:11:41] <tterrag> enums ARE just syntax sugar, Lymia
L86[01:11:59] <Lymia> Over objects not ints here though.
L87[01:11:59] <Cypher121> public final class, I'd guess
L88[01:12:13] <tterrag> ah yes, they are final
L89[01:12:36] <tterrag> Lymia: true, C#/C++ just use glorified ints afaik
L90[01:12:37] <Lymia> So ordinal is seems to be more a feature because enums are historically syntactic sugar over ints more than something that's part of being an enum.
L91[01:12:40] <tterrag> java enums are OO
L92[01:13:02] <tterrag> you can define enum members as anon classes ;)
L93[01:13:19] <tterrag> in fact I've abused this quite heavily more than once
L94[01:13:40] <Cypher121> why would you do that?
L95[01:14:04] <tterrag> simple example? let me find it...
L96[01:14:11] <Cypher121> no-no-no
L97[01:14:24] <Cypher121> if there's a simple example, there shouldn't be an anonymous enum
L98[01:14:37] <Cypher121> give me a complex one
L99[01:14:48] <tterrag> you want the big-un?
L100[01:14:51] <tterrag> ok, you asked for it
L101[01:15:03] <tterrag> https://github.com/Chisel-Team/Chisel/blob/1.7/dev/src/main/java/team/chisel/Features.java
L102[01:15:07] <tterrag> :)
L103[01:16:21] <Cypher121> oh, this thing
L104[01:16:28] <Cypher121> yeah, I've seen it already
L105[01:16:48] <shadekiller666> what exactly are those methods overriding?
L106[01:17:07] <Cypher121> I thought you meant like completely out of nowhere anon enum, not every member being an anonymous subclass
L107[01:17:34] <Cypher121> shadekiller666, enum has a method defined in it, and every instance of that enum has that method overridden
L108[01:18:08] <shadekiller666> ok
L109[01:19:16] <Cypher121> I thought about something like new Enum() { ... }
L110[01:20:25] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Quit: Leaving)
L111[01:22:09] <tterrag> Cypher121: enums can't extend anything, and anon classes require a class to extend from
L112[01:22:34] <tterrag> shadekiller666: the abstract methods?
L113[01:22:54] <tterrag> actually nothing is abstract
L114[01:23:03] <tterrag> https://github.com/Chisel-Team/Chisel/blob/1.7/dev/src/main/java/team/chisel/Features.java#L3072-L3082
L115[01:23:04] <tterrag> just empty
L116[01:24:32] <Cypher121> tterrag, Enum itself can be extended, can't it?
L117[01:24:48] <killjoy> I don't know if it is, but I don't recommend it.
L118[01:24:53] <Cypher121> of course
L119[01:25:02] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8002:c1a1:c150:fad9:6a84:d19) (Quit: Leaving)
L120[01:25:11] <Cypher121> but that's what came to my mind at first
L121[01:25:16] <killjoy> though enum = class Thing extends Enum<Thing>
L122[01:26:33] <Lymia> I suppose ints as enums isn't even all that bad
L123[01:26:36] <Lymia> If you have strong typing
L124[01:26:37] <Lymia> Unlike C
L125[01:28:10] <sham1> >unlike C
L126[01:28:11] <sham1> Dude
L127[01:31:45] <Lymia> (origin of enums in the first place)
L128[01:35:41] <Lymia> tterrag, why is Features an enum at all
L129[01:35:53] <Lymia> Instead of a normal interface/superclass chain.
L130[01:35:57] <Lymia> Er, subclass*
L131[01:36:36] <tterrag> Lymia: how would that look?
L132[01:37:04] ⇨ Joins: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl)
L133[01:38:24] <Lymia> Split it off into a superclass Feature, and the static methods into a FeatureManager which keeps a list of features to keep track of.
L134[01:38:47] <Lymia> Then make the individual features normal classes. Would be roughly the same amount of code, but be extendable by third-party APIs.
L135[01:39:21] ⇦ Quits: NeonPhoenix (~NeonPhoen@c110-23-26-218.rochd7.qld.optusnet.com.au) (Ping timeout: 186 seconds)
L136[01:40:24] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L137[01:42:02] ⇨ Joins: NeonPhoenix (~NeonPhoen@c110-23-26-218.rochd7.qld.optusnet.com.au)
L138[01:42:26] <Lymia> Eh...
L139[01:42:46] <Lymia> Not a big deal either way.
L140[01:42:59] ⇦ Quits: PrinceCat (~PrinceCat@58-7-240-130.dyn.iinet.net.au) (Quit: My Mac has gone to sleep. ZZZzzz…)
L141[01:43:11] <tterrag> Lymia: you want me to create 50 classes?
L142[01:43:13] <tterrag> one for each feature?
L143[01:43:18] <tterrag> in a separate file?
L144[01:43:24] ⇨ Joins: alex_6611 (~alex_6611@p54936B44.dip0.t-ipconnect.de)
L145[01:43:39] <Lymia> That's Java's problem. :/
L146[01:44:20] <fry> You do know that nested classes are a thing, don't you? :P
L147[01:44:37] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 194 seconds)
L148[01:44:43] <Lymia> Ideally, you'd have 50 public classes in one file.
L149[01:45:46] <Lymia> Eh. But I guess that might be a code style difference. I would rather not have a static Configurations class at all, and would rather represent enabled features with a list of feature objects.
L150[01:46:10] <McJty> Hmm. I'm trying to make an entity similar to EntityFallingBlock but then for my own block
L151[01:46:21] <McJty> But it is always calling the constructor with just the world parameter
L152[01:46:38] <McJty> So my blockstate isn't passed as a parameter
L153[01:46:58] <McJty> I wonder what I have to do to make it work like the EntityFallingBlock does
L154[01:49:42] <McJty> oh, this is special cased in EntityTrackerEntity
L155[01:50:42] <McJty> How can you make your own spawn packet like is done for vanilla entities in EntityTrackerEntry?
L156[01:52:07] ⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L157[01:54:41] ⇦ Quits: VikeStep (~VikeStep@120.156.54.17) (Ping timeout: 189 seconds)
L158[01:55:06] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L159[01:57:25] ⇦ Quits: NeonPhoenix (~NeonPhoen@c110-23-26-218.rochd7.qld.optusnet.com.au) (Read error: Connection reset by peer)
L160[02:00:02] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20160213 mappings to Forge Maven.
L161[02:00:06] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20160213-1.8.9.zip (mappings = "snapshot_20160213" in build.gradle).
L162[02:00:16] <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/
L163[02:01:25] ⇨ Joins: NeonPhoenix (~NeonPhoen@c110-23-26-218.rochd7.qld.optusnet.com.au)
L164[02:05:18] <tterrag> Lymia: that's exactly what I did
L165[02:05:33] <tterrag> Features.FOO.enabled()
L166[02:07:46] ⇨ Joins: Unh0ly_Tigg (~Robert@c-76-115-95-185.hsd1.or.comcast.net)
L167[02:13:24] <tterrag> hey fry, is there any way to get this shape to blend evenly throughout, instead of just at the center? http://puu.sh/n69Zg.png
L168[02:13:56] <fry> what?
L169[02:14:12] <tterrag> let me get a clearer example
L170[02:14:45] <tterrag> fry: http://puu.sh/n6a2W.png
L171[02:14:54] <tterrag> notice how the blending is smooth at the center line but not as it goes towards the point
L172[02:15:27] <fry> ah
L173[02:15:51] <tterrag> http://puu.sh/n6a5j.txt
L174[02:16:03] <tterrag> that's how I generate the color then I just apply next_color to the forwardmost vertex on each tri
L175[02:16:08] <fry> use more triangles
L176[02:16:23] <tterrag> ._.
L177[02:16:23] <tterrag> lol
L178[02:16:25] <fry> or write a pixel shader
L179[02:16:40] <tterrag> hey yeah that looks pretty good
L180[02:16:48] <fry> or make up and down points white
L181[02:16:53] <tterrag> this is with 100 points http://puu.sh/n6a7j.jpg
L182[02:16:59] <fry> or generally the same color
L183[02:17:09] <tterrag> only 594 verts for the whole render :P
L184[02:17:28] <fry> try white corners
L185[02:17:55] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L186[02:19:00] <tterrag> fry: works http://puu.sh/n6ac0.jpg
L187[02:19:02] <tterrag> but not as nice looking :P
L188[02:19:11] <tterrag> interesting in a different way though
L189[02:19:32] <fry> reduce brightness of corners by like 40%
L190[02:19:44] <tterrag> only 30 verts :P
L191[02:19:54] <tterrag> brightness meaning saturation?
L192[02:20:02] <fry> and like 10 verts should be enough
L193[02:20:20] <fry> saturation is 0 for white
L194[02:20:22] <tterrag> oh you mean like 0.7, 0.7, 0.7 at the corners
L195[02:20:25] <fry> yes
L196[02:21:07] <tterrag> fry: http://puu.sh/n6ah4.jpg
L197[02:21:16] <tterrag> fry: yes I know, I could be indexing but I'm not
L198[02:21:17] <tterrag> laziness
L199[02:21:39] <fry> indexing?
L200[02:21:59] <fry> and in the last pic you indeed reduced saturation, and not brightness
L201[02:22:01] <tterrag> I got it down to 24 verts (5 points) but now it's a bit stuttery
L202[02:22:12] <fry> since you got color
L203[02:22:14] <tterrag> fry: I did exactly what you said, corners are now 0.7*3
L204[02:22:27] <fry> hmm
L205[02:22:31] <tterrag> varr[0].c = {0.7f, 0.7f, 0.7f};
L206[02:22:33] <tterrag> .-.
L207[02:22:51] <tterrag> fry: yeah indexing the triangulation and using quads instead
L208[02:22:56] <tterrag> would save 2 verts per point
L209[02:23:02] <fry> interpolation is fucky then
L210[02:23:10] <tterrag> how so? seems fine to me
L211[02:23:22] ⇨ Joins: Noppes (~Noppes@82-168-99-26.ip.telfort.nl)
L212[02:23:28] <fry> color gets too close to the corner
L213[02:23:34] <fry> but meh
L214[02:23:46] <tterrag> technically it should get all the way to the corner except for the very last pixel
L215[02:23:51] <tterrag> no?
L216[02:23:58] <fry> yes
L217[02:24:08] <tterrag> that's what I see :P
L218[02:24:17] <fry> but it looks too close subjectively
L219[02:24:28] <fry> whatever :P
L220[02:26:19] ⇦ Quits: killjoy (~killjoy@71.65.255.183) (Quit: Leaving)
L221[02:26:31] <tterrag> fry: here it is animated (I went back to lots-o-quads) http://puu.sh/n6asD.gif
L222[02:26:37] <tterrag> s/quads/tris/
L223[02:26:41] <tterrag> MC has ruined me
L224[02:29:38] ⇦ Quits: poiuy_qwert (~poiuy_qwe@198-84-224-94.cpe.teksavvy.com) (Quit: This computer has gone to sleep)
L225[02:29:39] *** kroeser|away is now known as kroeser
L226[02:31:59] <Unh0ly_Tigg> does anyone here know why a junit test class located in package A within src/test/java cannot locate a class located in package A in src/api/java with gradle? compileTestJava fails saying it can't find the symbol for the class that I'm testing.
L227[02:32:34] <Unh0ly_Tigg> also, eclipse doesn't generate a compile error, only gradle.
L228[02:33:11] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 189 seconds)
L229[02:34:45] *** AEnterpriseAFK is now known as AEnterprise
L230[02:35:39] <Unh0ly_Tigg> Actually, I need to get some sleep, I'll ask again later when I can stay awake long enough to deal with it. Good night!
L231[02:35:43] ⇦ Quits: Unh0ly_Tigg (~Robert@c-76-115-95-185.hsd1.or.comcast.net) (Quit: bed)
L232[02:36:06] *** kroeser is now known as kroeser|away
L233[02:36:49] ⇨ Joins: PrinceCat (~PrinceCat@58-7-240-130.dyn.iinet.net.au)
L234[02:38:08] ⇦ Quits: alex_6611 (~alex_6611@p54936B44.dip0.t-ipconnect.de) (Ping timeout: 189 seconds)
L235[02:50:48] ⇨ Joins: sciguyryan (~sciguyrya@95.211.188.32)
L236[02:52:39] ⇦ Quits: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl) (Ping timeout: 198 seconds)
L237[03:06:11] ⇨ Joins: Nitrodev (~Nitrodev@dcx0f0yhy8z80585d3zdy-3.rev.dnainternet.fi)
L238[03:14:12] ⇨ Joins: Loetkolben (~Loetkolbe@ipbcc17c0a.dynamic.kabel-deutschland.de)
L239[03:16:46] *** kroeser|away is now known as kroeser
L240[03:18:18] ⇦ Quits: shadekiller666 (~shadekill@adsl-108-71-34-208.dsl.lsan03.sbcglobal.net) (Quit: Leaving)
L241[03:24:03] ⇦ Quits: Sollux-Captor (~Sollux-Ca@2601:547:c480:28d2:b894:52ab:e1dd:5b09) (Quit: Leaving)
L242[03:27:06] *** kroeser is now known as kroeser|away
L243[03:27:37] ⇦ Quits: PrinceCat (~PrinceCat@58-7-240-130.dyn.iinet.net.au) (Quit: My Mac has gone to sleep. ZZZzzz…)
L244[03:28:19] ⇨ Joins: Naiten (~Naiten@77.34.44.200)
L245[03:28:59] *** kroeser|away is now known as kroeser
L246[03:32:13] ⇨ Joins: VikeStep (~VikeStep@120.156.54.17)
L247[03:34:44] <riderj> Do blocks create a new instance based on the class, or is there a separate class that handles blocks (as with ItemStack)? Are items the only thing in Minecraft that uses this method of replication?
L248[03:37:07] <LexManos> Blocks are singeltons, So are items.
L249[03:37:17] <LexManos> TeileEntity is to Blocks as ItemStack is to Items
L250[03:37:20] <LexManos> Tile*
L251[03:38:12] <tterrag> ehh...kinda. except any item in the world has an ItemStack, but not every block has a TE
L252[03:38:24] <tterrag> riderj: remember ItemStacks can hold blocks as well
L253[03:38:25] <LexManos> yes
L254[03:38:26] <tterrag> in the form of ItemBlock
L255[03:39:02] <tterrag> blocks themselves only exist when placed in the world, and even then they are just an integer in an array somewhere
L256[03:39:09] <tterrag> anywhere else, it's an ItemStack
L257[03:39:12] ⇨ Joins: kimfy (~kimfy@9.12.34.95.customer.cdi.no)
L258[03:39:13] <LexManos> side note ive been sitting here for 2 hours after getting home from deadpool
L259[03:39:16] <LexManos> wanting to go to bed
L260[03:39:26] <LexManos> but pandora has been fucking rocking out all night
L261[03:39:30] <tterrag> at least you've seen it :(
L262[03:39:33] <LexManos> cant go to bed until a bad song comes on.
L263[03:39:40] <boni> heh
L264[03:39:53] <boni> just wait, it'll bring you justin bieber next
L265[03:39:54] <tterrag> it really is my bed time though :P
L266[03:39:57] <tterrag> night all
L267[03:39:59] *** tterrag is now known as tterrag|ZZZzzz
L268[03:40:00] <boni> nn
L269[03:40:12] <LexManos> Also going over the operating agreement for a llc im making WHOO legal shit!
L270[03:41:19] <LexManos> {A bunch of friends and I are gunna buy a house and move in together, rent will be cheaper for everyone overall, but its a big investment/trust thing, hence the legal shit!}
L271[03:41:37] <boni> ALWAYS have 1 person be in charge
L272[03:41:42] <LexManos> NO
L273[03:41:43] <boni> or you'll never get any shit done
L274[03:41:48] <boni> legally i mean
L275[03:42:04] <LexManos> simple majority for everything except adding/removing members
L276[03:42:06] <boni> at least when renting it's always better because otherwise you can't do shit once somebody moves out
L277[03:42:24] <riderj> Alright, so say I need to create a "locked" field, I assume I would use NBT?
L278[03:42:39] <LexManos> depends on how you wanna do it
L279[03:42:48] <LexManos> Do you care about who locked it?
L280[03:43:02] <riderj> No, just if the block is accessible or not.
L281[03:43:10] <LexManos> then no, metadata wioll work fine
L282[03:43:58] <riderj> Should I just assume that using variables in the class, unless it's a field that should be used across all blocks, is a no no?
L283[03:44:07] <LexManos> yes
L284[03:44:17] <LexManos> Again the classes are only init once
L285[03:44:21] <LexManos> For ALL the blocks in the world
L286[03:44:43] <LexManos> Thats where the IBlockState comes in, you can specify properties for the block, up to 15 of them!
L287[03:44:57] <LexManos> or well more, but only 15 can be serialized to the save file
L288[03:45:12] <riderj> How are blocks stored once placed down? Just trying to get a better grasp.
L289[03:45:15] <LexManos> Side note, Hey there Delilah!
L290[03:45:32] <boni> block registry name + metadata
L291[03:45:42] <boni> metadata being [0,15]
L292[03:45:45] <LexManos> The IBlockState is passed to the Chunk which while the game is running stores it directly in memory
L293[03:46:00] <LexManos> but when the chunk is written to disk, it saves it as a int ID + nibble metadata
L294[03:46:12] <LexManos> hence the getStateFromMeta and getMetaFromState functions
L295[03:46:22] <LexManos> And the nibble is why you can only have 15
L296[03:46:36] <riderj> Mhmm
L297[03:46:55] *** PaleOff is now known as PaleoCrafter
L298[03:51:04] *** K-4U|Off is now known as K-4U
L299[03:51:24] *** K-4U is now known as K_4U
L300[03:51:54] <riderj> Are TileEntities singletons as well?
L301[03:52:02] <LatvianModder> And Im STILL rewriting FTBU >.<
L302[03:52:38] <LatvianModder> Is there a way to add anti-dependencies? Incompatible mods
L303[03:52:39] <LexManos> no
L304[03:52:40] <Cypher121> riderj, no, they are created by createTileEntity in block for each block
L305[03:52:48] <Wuppy> o/
L306[03:52:49] <LexManos> TileEntities are created per position in world
L307[03:52:55] <Cypher121> or how was it called
L308[03:53:01] <Cypher121> !gm createTileEntity
L309[03:53:03] <LexManos> It's how furnaces/chests work.
L310[03:53:07] <boni> ITileEntityProvider
L311[03:53:17] <Cypher121> yeah, but method
L312[03:53:19] *** K_4U is now known as K-4U
L313[03:53:27] <Cypher121> !gm createNewTileEntity
L314[03:53:50] <Wuppy> has anyone here ever worked with visual studio team services?
L315[03:54:01] <Cypher121> wait, since when does thing start spamming with just 1 exclamation sign?
L316[03:54:13] <Cypher121> oh, that's just my client
L317[03:54:23] <riderj> So using variables inside a tile entity will result in differences between all tile entities, and not one uniform value?
L318[03:54:24] <Wuppy> !! makes it public IIRC
L319[03:54:28] <Cypher121> yeah
L320[03:54:42] <Cypher121> stupid HexChat shows it as if it was in the channel
L321[03:54:58] <Cypher121> but yeah, it's createNewTileEntity
L322[03:55:25] <riderj> Cool, watching FireBall's streams and I was curious why she could just use a variable in the class and it not be uniform across the blocks.
L323[03:55:55] <LexManos> Its fairly straight forward
L324[03:56:14] <LexManos> Basic programming concept, instance fields.
L325[03:56:31] <LexManos> Tile Entities have a unique instance per position in world.
L326[03:56:47] ⇦ Quits: Naiten (~Naiten@77.34.44.200) (Read error: Connection reset by peer)
L327[03:56:54] <LexManos> Block are 'templates' that have one instance and is used for every position in the world.
L328[03:57:02] <riderj> Once I was assured that they are separate instances it came together.
L329[03:57:18] <riderj> Thanks for helping by the way :P
L330[03:57:23] <Cypher121> ideally, with unlimited storage space, ram and processing power, blocks and TileEntities would be the same thing and instantiated for every position
L331[03:57:31] <LexManos> Its important to keep this in mind because TEs are expensive.
L332[03:57:31] <Cypher121> but we're stuck in this awful reality
L333[03:57:43] <LexManos> If you make a entire world out of TEs you're gunna kill the game.
L334[03:58:09] <LexManos> But making the entire world out of say, stone, which doesn't have a TE is fast and memory efficient.
L335[03:58:31] <boni> riderj: do you know the difference between a class and its instance(s)?
L336[03:58:43] <Cypher121> there's such a thing as non-ticking TEs, right? how expensive are these?
L337[03:58:44] <riderj> boni, yes.
L338[03:59:13] <boni> riderj: simply put, blocks only have 1 instance that's referred to everywhere in the world (singleton). TEs have an instance per TE in the world.
L339[03:59:16] <Cazzar> Wuppy: what about VSTS?
L340[03:59:19] <boni> (that's exactly what has been said above, but summed up)
L341[03:59:31] <Wuppy> I'm using it now and it's really quite nice :o
L342[03:59:41] <Cazzar> Wuppy: it and git = amazing
L343[03:59:44] <Wuppy> the git integration with visual studio and unity works really well
L344[03:59:48] <Cazzar> Then agian, Visual Stuido's git is amazing
L345[03:59:50] ⇦ Quits: MoxieGrrl (~MoxieGrrl@173-23-172-139.client.mchsi.com) (Read error: Connection reset by peer)
L346[04:00:02] <Wuppy> still doesn't beat Perforce, but damn close
L347[04:00:20] <riderj> boni, thanks. The only issue I have is figuring out how the mechanics of the game work, but once I figure that out it's smooth sailing.
L348[04:00:35] <Cazzar> Wuppy: I'm broke (for now) so, git it is
L349[04:00:45] <Wuppy> perforce is also way overpriced IMO
L350[04:00:48] <Wuppy> only for companies
L351[04:00:56] <Wuppy> and a handful of schools \o/
L352[04:01:28] <Cazzar> ". At $8,900, the 20-User Starter Pack is an affordable way for users of our free 20/20 edition to get unlimited workspaces/files."
L353[04:01:32] <Cazzar> "Affordable"
L354[04:01:40] <Wuppy> heh, exactly
L355[04:01:45] <Nitrodev> hi
L356[04:01:58] <Wuppy> hey Nitro
L357[04:02:31] <LexManos> When you're talking a busniess thing
L358[04:02:37] <LexManos> $9k is afordible
L359[04:02:41] <Cazzar> Yeah
L360[04:02:52] <Wuppy> that's true, but it's unfortunate there's no personal affordible prices
L361[04:02:55] <Cazzar> I'm saying at a personal level, it's expensive :P
L362[04:03:06] <LexManos> think you're paying those 20 users, probably $9k/wk
L363[04:03:19] <Cazzar> Also, Lex, whilst I am not in the middle of a game, and thikning about it, I presume you are still looking at removing the forge config system, as you discussed 3 years ago with the 1.7 update?
L364[04:03:29] <Cazzar> Also, I wonder what my pay will become like with this new job
L365[04:03:34] ⇨ Joins: Lunatrius (~Lunatrius@cpe-77.38.103.182.cable.t-1.si)
L366[04:03:48] <LexManos> I want a better system but havent had time to program it
L367[04:04:03] <LexManos> and especially havent had time to work in world
L368[04:04:13] <LexManos> and make it fit the gui
L369[04:04:16] <LexManos> and ugh
L370[04:04:17] <Cazzar> What would you be looking for? Just out of curiosity.
L371[04:04:31] <LexManos> Untimate goal.
L372[04:05:13] <LexManos> ConfigSystem.register(MY_MOD, GlobalConfig.class, UniverseConfig.class, DimensionConfig.class)
L373[04:05:20] <LexManos> Those classes would look like:
L374[04:05:27] <LexManos> public GlobalConfig {
L375[04:05:35] ⇦ Quits: VikeStep (~VikeStep@120.156.54.17) (Ping timeout: 189 seconds)
L376[04:05:38] <LexManos> @Comment("SHINEY SHIT")
L377[04:05:52] <Cazzar> A+ on the comment.
L378[04:06:00] <LexManos> @ValidValues(min = 0, max = 100)
L379[04:06:32] <LexManos> public int HowPrettyIsIt = 10;
L380[04:06:34] <LexManos> }
L381[04:07:29] <LexManos> And then on server start it would read it and fire 'GlobalConfigEvent<GlobalConfig> event' event.getConfig returns a instance of GlobalConfig and modders do something like
L382[04:07:43] <LexManos> MY_GLOBAL = event.getConfig()
L383[04:08:00] <LexManos> Universe would do the same, on server start.
L384[04:08:29] <LexManos> Dimension similiar, but would include the world that the config is hooked to, so by default it's fire 3 times on vanilla.
L385[04:08:50] <LexManos> Thay way you can config the shit out of everything.
L386[04:08:57] <LexManos> At the levels where it truely matters.
L387[04:09:09] <LatvianModder> My config system is somewhat like that.. well..
L388[04:09:11] <LexManos> Most mods would just have Global+Universe, but meh.
L389[04:09:17] <riderj> Why does learning how to use someone else's work have to be so difficult -.-
L390[04:09:32] <Cazzar> Hmm, and any file structure you'd specifically want?
L391[04:09:45] <LatvianModder> it can sync with client specific values, can be reloaded, can be edited ingame with gui etc
L392[04:09:45] <LexManos> It also needs to be worked into the main config gui where when you're in the client and not in a game it sets the 'defaults' that get applied to new worlds
L393[04:09:58] <Cazzar> I'd think that with Dimension level, it'd be an idea to save to NBT? Or in the world directory
L394[04:10:09] <LexManos> World directory
L395[04:10:27] <LexManos> in a /config/{ModID}_{ConfigName}.cfg
L396[04:10:33] ⇨ Joins: Seppon (~Noppes@82-168-99-26.ip.telfort.nl)
L397[04:10:36] <LexManos> IN JSON but with comments
L398[04:10:44] <Cazzar> JSON with comments... hm
L399[04:11:03] <LexManos> ya thats part that i got stuck on
L400[04:11:10] <LexManos> because GSON cant do it
L401[04:11:17] <LexManos> and I didnt want to hack it to bad to make it do it
L402[04:11:35] <Cazzar> Well, some thoughts point to Hocon https://github.com/typesafehub/config or hjson http://hjson.org/
L403[04:11:45] <Cazzar> 2nd I don't know if a java library exists for it
L404[04:11:54] <Cazzar> It does.
L405[04:12:02] <LexManos> meh I prefer to stay with standards that we have in MC
L406[04:12:21] <LexManos> addingf external libs requires me to support them and distribute them
L407[04:12:26] <LexManos> im stick pissed off at scala
L408[04:12:32] <LexManos> still*
L409[04:12:32] <Cazzar> Yeah, I know.
L410[04:12:44] ⇦ Quits: Noppes (~Noppes@82-168-99-26.ip.telfort.nl) (Ping timeout: 189 seconds)
L411[04:12:50] <boni> sponge uses HOCON with https://github.com/zml2008/configurate
L412[04:12:52] <LexManos> However
L413[04:12:59] <LexManos> get me the functionality that I want
L414[04:13:03] <boni> not sure if it has constraicts though
L415[04:13:08] <LexManos> and the particular storage format we can debate later
L416[04:13:54] <Cazzar> I presume the config events, would be fired on the common event bus, not at the modcontainers?
L417[04:14:20] <LatvianModder> Here's what I can suggest https://github.com/LatvianModder/LatLib/tree/master/src/latmod/lib/config
L418[04:14:59] <LatvianModder> an example of usage https://github.com/LatvianModder/XPTeleporters/blob/1.8.9/src/main/java/latmod/xpt/XPTConfig.java
L419[04:15:07] <LexManos> Fuck if im reading that right now
L420[04:15:12] <LexManos> Side note: http://www.zillow.com/homedetails/19105-NE-Highway-240-Newberg-OR-97132/80479443_zpid/
L421[04:15:34] <LexManos> public static final ConfigEntryInt levels_for_1000_blocks = new ConfigEntryInt("levels_for_1000_blocks", new IntBounds(20, 0, 200)).sync().setInfo("Levels required to teleport in same dimension");
L422[04:15:43] <LexManos> eww, I prefer the annotation route
L423[04:15:46] <Wuppy> whats up with that house lex?
L424[04:15:59] <LexManos> One of the potential ones we're looking at.
L425[04:16:00] <LatvianModder> you will live there? thanks for sharing your address :P
L426[04:16:14] <LexManos> God If I had $550K to drop on it right now I would.
L427[04:16:20] <LexManos> Want my address?
L428[04:16:25] <LexManos> I'm pretty public
L429[04:16:31] <Wuppy> was just going to say, that is one beautiful house
L430[04:16:35] <Wuppy> but.. money :P
L431[04:16:46] <Cazzar> Lex, I'll have a look into what I can see design wise.
L432[04:16:47] <LexManos> OHh there is another one 1 second!
L433[04:17:00] <Wuppy> not a huge fan of the wood in the house though
L434[04:17:28] <LatvianModder> Wuppy prefers gray concrete walls, floors, ceilings, and everything else
L435[04:17:32] <boni> annotation configs are nice because they save the redundancy of having stuff twice
L436[04:17:46] <Wuppy> not that, but that kind of wood just doesnt really fit
L437[04:17:52] ⇨ Joins: alex_6611 (~alex_6611@p54936B44.dip0.t-ipconnect.de)
L438[04:18:03] <LatvianModder> So they would also need @SyncedWithClient etc annotations
L439[04:18:06] <riderj> It's a more modern design, but with a log cabin type wood :/
L440[04:18:10] <LexManos> http://www.zillow.com/homedetails/31193-SW-Firdale-Rd-Cornelius-OR-97113/2101626818_zpid/
L441[04:18:15] <LexManos> This one y.y
L442[04:18:15] <Wuppy> ^ exactly what rider said
L443[04:18:25] <LexManos> Someone give me ~$1M plz kthx
L444[04:18:32] <riderj> If the grain wasn't so rough I think it would look nice
L445[04:18:33] <Wuppy> how can you even that money
L446[04:18:48] <Wuppy> that is one beautiful kitchen
L447[04:18:50] <Wuppy> I want that kitchen
L448[04:19:11] ⇨ Joins: xanderio (~xanderio@p5B21F678.dip0.t-ipconnect.de)
L449[04:19:13] <Wuppy> I'd say that house is about 10 times better than the first :o
L450[04:19:17] <Wuppy> gimme :P
L451[04:19:35] <riderj> Do you plan to own some horses?
L452[04:19:41] <LexManos> No
L453[04:20:42] <Cypher121> damn, I'm here to talk about modding, not to think about where am I in life now :(
L454[04:20:52] <riderj> I would die for my own hiking trails :/
L455[04:21:00] <Wuppy> hehe, still living at home or something Cypher121?
L456[04:21:12] <LexManos> Shush you, I'm tired and working on legal shit. So look at the pretty houses!
L457[04:21:28] <boni> s/houses/horses
L458[04:21:29] <boni> FTFY
L459[04:21:41] <LexManos> But ya, if you can turn that usage into annotations that'd be better Caz
L460[04:21:57] <LexManos> Horses are good yes, i'd kill them if I tried to ride one. But ya
L461[04:21:59] <Cypher121> Wuppy, renting a room in bay area for $1k a month
L462[04:22:00] <LexManos> I used to have a house.
L463[04:22:03] <LexManos> horse*
L464[04:22:11] <Wuppy> bay area? (not murican)
L465[04:22:11] <LatvianModder> Pfft, I could do it faster :P
L466[04:22:40] <LexManos> err lat, whoever linked me that atrocity of a code i pasted
L467[04:23:04] <Wuppy> I've got a 14 square meter room for 300 euros a month which is pretty nice
L468[04:23:19] <Wuppy> does mean that the kitchen, bathroom etc. are quite meh
L469[04:23:20] <LatvianModder> so, you want to change the Forge Configuration system to annotations? (I missed out some parts of chat)
L470[04:23:23] <Cypher121> Wuppy, California, area somewhat loosely around San Francisco
L471[04:23:23] <LexManos> oh ya, and if we got any of these houses
L472[04:23:29] <LexManos> my rent would be $600/mo
L473[04:23:36] <Wuppy> plus I have to fuck off as soon as I'm done with being a studnet
L474[04:23:49] <Wuppy> Cypher121, I wanna go there once....
L475[04:24:00] <LexManos> ive wanted to replace the Forge config system for a long fucking time.
L476[04:24:00] <LatvianModder> Wuppy: dorm?
L477[04:24:12] <Wuppy> pretty much
L478[04:24:19] <LatvianModder> I can do it in minutes! :P
L479[04:24:25] <Cazzar> Inb4 sudio apt.
L480[04:24:33] <LexManos> did you get my whole speal about the different types of configs
L481[04:24:35] <LexManos> and where the work
L482[04:24:36] <Wuppy> I have my own room to work & sleep in but the rest of the facilities are shared
L483[04:24:41] <LexManos> and how they need to be in the gui?
L484[04:24:59] <Cazzar> That I'll look at after I get the logic done :P
L485[04:25:03] <riderj> I've got 140sqft for 1k/month. Though I am in a college dorm, still outrageously priced imo.
L486[04:25:08] <Cypher121> Wuppy, housing is way overpriced here because I'm basically in the center of Silicon Valley. 1k for a room for a student is a bargain
L487[04:25:10] ⇨ Joins: Naiten (~Naiten@86-102-16-100.xdsl.primorye.ru)
L488[04:25:12] <LexManos> Ohh, A whole new world is on pandora, perfect time for a bathroom break! :)
L489[04:25:33] <Wuppy> Cypher121, but then you do live near silicon valley & san fran :P
L490[04:25:37] <riderj> Windows 10 wants me to rate my calculator -.-
L491[04:25:42] <LatvianModder> have you seen FTBU's config system? it has /edit_config and everything. And those are fully server-side
L492[04:25:54] <LatvianModder> You can edit server configs without client mod. With a gui
L493[04:26:14] <PaleoCrafter> I remember forge already shipping typesafe's config library Oo
L494[04:26:20] <Cazzar> riderj: if you can read japanese: do this http://upload.cazzar.net/u/1455359164
L495[04:26:29] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L496[04:26:39] <LatvianModder> Except, you know, it has that long ass line with .sync().setInfo etc, but that can be turned into annotations very easly
L497[04:26:44] <Cazzar> Else Privacy -> 2nd last option -> ask for feedback: never
L498[04:27:01] <Cypher121> Wuppy, yeah, like 20 minutes away from Googleplex
L499[04:29:13] <LatvianModder> Actually, I like the idea of annotations myself. YEAH! Im redoing my config system Right now :P .. after I finish these FTBU player/world changes
L500[04:29:18] <riderj> Cazzar, thanks. Didn't know you could turn off feedbakc.
L501[04:29:40] <Cazzar> Quite a few don't
L502[04:29:57] <PaleoCrafter> Too bad Hocon isn't that widespread yet
L503[04:30:03] <riderj> I did the custom install and disabled it, but I guess it doesn't disable all feedback options :/
L504[04:30:13] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L505[04:30:46] <Cazzar> Not that one
L506[04:32:05] <Cypher121> wait, so exactly what's the issue with gson and comments?
L507[04:32:28] <Cypher121> fails to read with comments or can't write them?
L508[04:32:41] <Cazzar> Json spec doesn't have comments IIRC
L509[04:33:02] <Cypher121> https://github.com/google/gson/issues/212
L510[04:33:05] <LexManos> exactly
L511[04:33:21] <LexManos> GSON can read comments if you turn lenient mode on
L512[04:33:23] <LexManos> but it cant write
L513[04:33:47] <Cypher121> oh, I see
L514[04:34:35] <Wuppy> Cypher121, your living place sounds much more awesome than mine
L515[04:34:54] <Wuppy> but at least I live next to this :D https://www.youtube.com/watch?v=JhmGs8Q3chk
L516[04:35:19] <LatvianModder> I'd just do with a json-like config format that supports comments. I can write a writer and reader for that too
L517[04:35:33] <LexManos> however
L518[04:35:40] <LexManos> as i said the written format isnt that big of a deal
L519[04:35:44] <LexManos> the functionality is
L520[04:35:51] <LatvianModder> which part?
L521[04:36:07] <LexManos> anyways pandora is still killing it, so im gunna take advantage of my wireless headphones and go in my room to go to bed.
L522[04:36:42] <boni> so you'll have to stay up until your headphones run out of charge
L523[04:37:07] <LatvianModder> ah, the good ol' friends gui from last year http://imgur.com/C7WwwSv
L524[04:38:11] <Cazzar> O
L525[04:38:22] <Cazzar> I'll look at logic/functionality tonight and tomorrow
L526[04:38:24] ⇦ Quits: Curle|DISTRACTED (~head@host86-168-195-1.range86-168.btcentralplus.com) (Ping timeout: 198 seconds)
L527[04:38:49] ⇨ Joins: Poppy (~Poppy@chello085216146055.chello.sk)
L528[04:39:50] ⇦ Quits: sciguyryan (~sciguyrya@95.211.188.32) (Remote host closed the connection)
L529[04:40:18] <Cypher121> Wuppy, yeah, its a nice location even if price is way over the roof, but that was not what I originally meant. Was it you who was studying at some gamedev-specialized university?
L530[04:40:30] <Wuppy> I am, NHTV Breda
L531[04:40:55] <LatvianModder> Cazzar: will you be working on the new config system?
L532[04:41:12] <Cazzar> I'll have a look at doing so.
L533[04:41:27] <LatvianModder> What will happen with the old one?
L534[04:41:31] <Wuppy> we have some incredibly skilled people here
L535[04:41:37] <Wuppy> teachers I mean
L536[04:41:40] <LatvianModder> (I havent used that in years, so I dont really care, but other modders do)
L537[04:42:04] <LatvianModder> Will you just add @Depricated at every class or remove it?
L538[04:42:52] <Cypher121> Wuppy, I'm just honestly jealous. right now my programming courses involve losing points on my assignments, because my `private final` fields didn't have setters and "couldn't be accessed, unless client happens to be in same package"
L539[04:43:06] <Wuppy> ..... wat
L540[04:43:08] <PaleoCrafter> wat
L541[04:43:14] <LatvianModder> wat
L542[04:43:24] <Cypher121> yup
L543[04:43:48] <Cypher121> that last part is actually a quote from the comment to the score
L544[04:43:56] <Wuppy> I'm not going to say every single teacher we have is a genious, but that's impressively studid
L545[04:44:14] <LatvianModder> ahem. its called default, not private. dumbass teacher
L546[04:44:24] <LatvianModder> default/package
L547[04:44:24] <PaleoCrafter> okay, I do remember correctly, Forge does ship typesafe's config library, so format is out of question :P
L548[04:44:45] <Cypher121> LatvianModder, package-private, I guess
L549[04:45:00] <LatvianModder> but definetly not 'private'
L550[04:45:03] <Wuppy> I prefer having teachers who actually konw what they're talking about
L551[04:45:07] <Cypher121> which is default behavior, but different from default keyword
L552[04:45:33] <PaleoCrafter> oh, if they were package-private, bad Cypher121 :P
L553[04:45:41] <LatvianModder> Im not sure how its called, but I use that package-only variable / function / constructor / class quite often
L554[04:45:49] *** kroeser is now known as kroeser|away
L555[04:46:03] <Cypher121> PaleoCrafter, no they weren't
L556[04:46:16] <PaleoCrafter> gud
L557[04:46:20] <Cypher121> they were private
L558[04:46:32] <Wuppy> what is package private even?
L559[04:46:45] <Wuppy> dont think you have that in C++ or C# or I've just never used it
L560[04:46:46] <LatvianModder> you can only access method from classes within that package
L561[04:46:57] <LatvianModder> you write 'void test()'
L562[04:47:02] <Cypher121> package-private = only same class or classes from same package
L563[04:47:08] <LatvianModder> without public void or private void or protected void
L564[04:47:12] <Cypher121> and I think C++ has friend classes instead
L565[04:47:15] <Wuppy> I could've guessed that :P
L566[04:47:20] <PaleoCrafter> protected also happens to be package-private
L567[04:47:25] <Cypher121> yeah
L568[04:47:34] *** kroeser|away is now known as kroeser
L569[04:47:35] *** Jared|Away is now known as Jared
L570[04:47:42] <LatvianModder> protected? I will test that, but im pretty sure its only extenders-private
L571[04:47:46] <Cypher121> so it's private -> none(package-private) -> protected -> public
L572[04:48:00] <Cypher121> LatvianModder, it is
L573[04:48:00] <LatvianModder> yeah
L574[04:48:10] <Cypher121> I mean it is package
L575[04:48:29] <Cypher121> https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
L576[04:48:41] <PaleoCrafter> Java's visibility is just messed up xD
L577[04:49:18] <Cypher121> I really wish there was a way to define your own visibility modifiers
L578[04:49:48] <Cypher121> so you can define your methods as visible to "your.package.*"
L579[04:50:11] <PaleoCrafter> Scala has you covered :P
L580[04:50:16] <Cypher121> meh
L581[04:50:37] <Cypher121> maybe for standalone projects
L582[04:50:41] <Cypher121> not for modding
L583[04:53:45] <Cypher121> because for now I decided that having 11 classes in same package is an adequate trade-off for proper data hiding
L584[04:54:07] ⇦ Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 195 seconds)
L585[04:55:54] ⇨ Joins: bilde2910|away (bilde2910@51.174.170.178)
L586[04:56:20] <Wuppy> Script error: OnCollisionEnter2D
L587[04:56:20] <Wuppy> This message parameter has to be of type:
L588[04:56:23] <Wuppy> thanks Unity :|
L589[04:56:42] <PaleoCrafter> Cypher121, actually, Java 9 will allow for that anyway :P
L590[04:56:45] *** bilde2910|away is now known as bilde2910
L591[04:56:50] <Cypher121> well, Firewatch's ending is a damn letdown
L592[04:57:02] <Wuppy> Cypher121, is it a cool game?
L593[04:58:08] *** Jared is now known as Jared|Away
L594[04:58:25] <Cypher121> it's nice, pretty atmospheric, didn't find many over-abused cliches, graphical style is pretty nice
L595[04:58:43] <Wuppy> whats the gameplay though?
L596[04:58:51] <Wuppy> from what I've seen it's basicaly just walking around
L597[04:58:55] <Cypher121> gameplay is walk and talk
L598[04:59:06] <Cypher121> enjoy scenery and the storyline
L599[04:59:16] <Wuppy> not bad, I did enjoy Dear Esther as well
L600[04:59:40] <Cypher121> worth 6 bucks I paid for it on russian steam, but not 20 it costs on american one
L601[04:59:53] <Wuppy> nope, 20 for a walking simulator is not worth it
L602[05:00:10] <PaleoCrafter> you can climb as well
L603[05:00:45] <Cypher121> but almost near the end there's a plain out retarded twist that tries to make undeveloped, barely mentioned side character a central point of the plot
L604[05:00:49] <Cypher121> fails miserably
L605[05:01:19] <Cypher121> takes with it the only actual character, other than the one you play as
L606[05:01:27] <UnasAquila> are datawatcher ID's unique to the mod or shared by all?
L607[05:01:29] <Cypher121> and generally wrecks havoc on game
L608[05:01:32] <Wuppy> :V
L609[05:01:34] <PaleoCrafter> shared, UnasAquila
L610[05:01:42] <UnasAquila> ok thanks
L611[05:02:09] ⇨ Joins: Mraoffle (~mraof@pool-74-110-222-32.rcmdva.fios.verizon.net)
L612[05:02:14] <Wuppy> \o/ the health system in my game is working perfectly now
L613[05:02:28] <Wuppy> next up, levels you can actually take damage from :P
L614[05:03:17] <UnasAquila> is that your castle destruction game or another project?
L615[05:03:29] <Wuppy> nope, another one
L616[05:03:37] <Wuppy> not sure if I'll ever get around to that one :<
L617[05:03:39] <UnasAquila> ah :)
L618[05:04:00] <Wuppy> this is a game for a competition which could get me an internship at several great companies
L619[05:04:20] <riderj> Do you primarily use Unity in your classes?
L620[05:04:23] <Wuppy> and I'm also working on another mobile game on my own time
L621[05:04:30] <Wuppy> riderj, we don't have classes :P
L622[05:04:30] <UnasAquila> Oh wow hope all goes well for you!
L623[05:04:39] <Wuppy> but in the first year projects generally use Unity
L624[05:04:46] <Wuppy> second year (my year) Unreal
L625[05:04:51] <riderj> Doh, how are they structured then?
L626[05:04:56] <LatvianModder> Lat's day - token night and all day preparing for it. Then afterparty. Drink til 7am, don't sleep. Go home, back to coding, fresher than ever. I think I broke myself
L627[05:05:10] <Wuppy> however this competition requires Unity and the other game simply is easier to make in unity
L628[05:05:24] <Wuppy> riderj, we have 2 days where you have to be in school to work on a project
L629[05:05:35] <Wuppy> 1 day with lectures/workshops you can go to if you want to
L630[05:05:44] <Wuppy> 1 day to work from home on your project and 1 day on your own stuff
L631[05:05:52] <riderj> Ah, not too shabby.
L632[05:06:15] <Wuppy> it's a really nice sysem, you get a lot of freedom but you are required to do a lot
L633[05:06:22] <UnasAquila> I like Unity but Unreal 4 is leaps and bounds ahead of the competition atm.
L634[05:06:28] <riderj> I've messed with Unity, but my major downfall was my lack of knowledge with C# :/
L635[05:06:40] <Wuppy> riderj, C# is 90% like Java
L636[05:06:46] <Wuppy> UnasAquila, it depends on the game
L637[05:06:51] <riderj> I'm taking a few online courses that are structured similar to yours.
L638[05:06:55] <Wuppy> Unreal looks prettier, but Unity is far better documented
L639[05:07:07] <LatvianModder> why noone makes applications with Java :<
L640[05:07:08] <Wuppy> and you can prototype better with unity
L641[05:07:09] <Cypher121> has anyone played Elite: Dangerous?
L642[05:07:14] <Wuppy> and certain games are also easier to make using untiy
L643[05:07:21] <Wuppy> 2d games specifically
L644[05:07:28] <riderj> I know it's a favorite for Ludumdare
L645[05:07:33] <Wuppy> LatvianModder, because java is slow
L646[05:07:43] <Wuppy> riderj, for LD I use C++ \o/
L647[05:07:54] <Cypher121> just want to know if it's worth bying HOTAS for it or not
L648[05:07:55] <riderj> Do you have your own engine?
L649[05:08:09] <Wuppy> not yet, but I'll be writing a framework before the next one
L650[05:08:14] <Wuppy> if I have the time for it :o
L651[05:08:32] <Wuppy> considering I'm wokring on 2 games atm and a third one starting soon
L652[05:08:57] <riderj> I've wanted to do game development for a very long time, but I've never figured out where to start learning how to make engines.
L653[05:09:16] <Wuppy> riderj, I'd just start messing around in Unity
L654[05:09:26] <riderj> Best I have done is pong in java using raster rendering.
L655[05:09:31] <Wuppy> you really can't mess anything up too bad in Unity
L656[05:09:42] <riderj> My collision detection is garbage, but it works.
L657[05:09:58] <Wuppy> also for some more techincal knowledge of Untiy check out 3dgep.com
L658[05:10:12] <Wuppy> website by one of my teachers with all the facts about Unity stuff
L659[05:11:06] <riderj> Useful, thanks.
L660[05:11:09] <LatvianModder> every programmer ever makes his own engine
L661[05:11:22] <LatvianModder> is there someone who actually uses someone else's?
L662[05:11:29] <LatvianModder> or the same with minecraft lib/core mods
L663[05:11:29] <Wuppy> me, Unity and Unreal <3
L664[05:11:59] <UnasAquila> The first and only game engine I ever made was back in the day using AS2 :)
L665[05:12:06] <riderj> A lot of good games come from Unity. It's a respectable engine :)
L666[05:12:59] <Cypher121> you don't need many games to respect unity, just one
L667[05:13:07] <Cypher121> Ori and the Blind Forest
L668[05:13:57] <Cazzar> What about screencheat :P
L669[05:14:48] ⇨ Joins: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl)
L670[05:17:12] *** Kolatra is now known as Kolatra[away]
L671[05:18:09] <Cypher121> so, no one played Elite?
L672[05:18:46] <PaleoCrafter> Scott Manley has :P
L673[05:20:29] <Cypher121> damn, I'd really love to play some good spacesim with a proper hardware
L674[05:21:33] <Cypher121> just not sure if E:D deserves it
L675[05:34:12] <SomeGuyInATree> Scotts a legend.
L676[05:36:54] <Cypher121> well, I'm just going to think I spent 6 bucks on Firewatch's OST
L677[05:37:08] <Cypher121> makes it look like a good purchase
L678[05:39:33] <kashike> new minecraft website is sure bright
L679[05:42:03] <Cazzar> Okay, time to bring up code.
L680[05:42:04] *** Kolatra[away] is now known as Kolatr
L681[05:42:07] *** Kolatr is now known as Kolatra
L682[05:44:13] *** Darkevilmac is now known as DarkevilAway
L683[05:46:51] *** Ashleep is now known as AshUK
L684[05:47:47] * Cazzar updates his forge project.
L685[05:49:31] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L686[05:55:37] ⇨ Joins: Jezza (~Jezza@185.44.151.6)
L687[05:55:57] ⇦ Quits: Something12 (~Something@s010634bdfa9eca7b.vs.shawcable.net) (Ping timeout: 194 seconds)
L688[05:56:43] <Cazzar> And then IDEA
L689[06:00:55] <Wuppy> updating... fun :V
L690[06:01:09] <SomeGuyInATree> What should I be looking at in my VisualVm sampler?..ThreadedIOFileBase has 3x more self time than anything else..
L691[06:07:11] <Cazzar> Also, Lex, for the file storage, typesafe's config might work, since we already have it in the dependency list.
L692[06:07:12] ⇨ Joins: AbsentThirdEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L693[06:07:24] *** kroeser is now known as kroeser|away
L694[06:17:23] *** big_Xplo|AFK is now known as big_Xplosion
L695[06:18:43] <Cazzar> Ah fuck
L696[06:26:17] ⇨ Joins: sciguyryan (~sciguyrya@95.211.188.31)
L697[06:26:19] <Wuppy> why is a 2d array impossible in untiy...
L698[06:26:59] <PaleoCrafter> uhm... it isn't? :P
L699[06:27:08] <Wuppy> I need them visible in the editor
L700[06:27:11] <Wuppy> that's nearly impossible
L701[06:27:26] <PaleoCrafter> nah
L702[06:29:07] <Wuppy> then how do you do it Paleo?
L703[06:29:10] *** kroeser|away is now known as kroeser
L704[06:29:37] <PaleoCrafter> CustomEditor :P
L705[06:29:56] <Wuppy> guess I'll have to write one.. yeah
L706[06:31:13] <Cazzar> This is fun
L707[06:31:28] <Wuppy> Cazzar> Ah fuck
L708[06:31:31] <Wuppy> I somehow doubt that
L709[06:31:49] <Cazzar> Wuppy: I use the comment "this is fun" EXCEPTIONALLY loosely.
L710[06:31:55] <Wuppy> :P
L711[06:32:09] <Cazzar> So, to write the parsing system of the config, I'd need to decide on the config system I am using
L712[06:32:24] * Cazzar defaults to hocon since it supports comments, and is a json superset.
L713[06:32:49] <PaleoCrafter> HOCON > anything :P
L714[06:33:01] <Cazzar> wait... hmm
L715[06:33:39] <Cazzar> I'd need to parse the class to create a default config object, and then load from file, using the defaults.
L716[06:33:45] <Cazzar> Then update the class again
L717[06:33:51] <Cazzar> Which means, dual reflection...
L718[06:33:55] ⇨ Joins: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L719[06:35:49] <Cazzar> Or.. I could do it that way
L720[06:35:55] *** amadornes[OFF] is now known as amadornes
L721[06:36:26] *** big_Xplosion is now known as big_Xplo|AFK
L722[06:36:33] ⇦ Quits: AbsentThirdEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 186 seconds)
L723[06:47:17] ⇦ Quits: Jezza (~Jezza@185.44.151.6) (Ping timeout: 189 seconds)
L724[06:49:09] ⇨ Joins: EyeOfKoishi (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L725[06:51:21] ⇦ Quits: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 186 seconds)
L726[07:02:27] ⇨ Joins: VikeStep (~VikeStep@120.156.54.17)
L727[07:03:11] <PaleoCrafter> Cazzar, do you plan to add custom type adapters? :P
L728[07:03:35] <Cazzar> I'd implicitly parse into classes
L729[07:03:49] <Cazzar> Though I could look into it.
L730[07:04:09] ⇦ Quits: RawringNymNym (~maria@BMTNON3746W-LP130-05-1176474794.dsl.bell.ca) (Ping timeout: 186 seconds)
L731[07:04:14] ⇨ Joins: Nymphaea (~maria@BMTNON3746W-LP140-01-1176470488.dsl.bell.ca)
L732[07:04:45] ⇨ Joins: Jezza (~Jezza@185.44.151.6)
L733[07:05:02] <Wuppy> PaleoCrafter, have you ever worked with a Unity CustomEditor?
L734[07:05:10] <PaleoCrafter> nope
L735[07:05:30] <Wuppy> damn.. I've got the data showing but it's not saving :V
L736[07:09:49] ⇦ Quits: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl) (Ping timeout: 198 seconds)
L737[07:12:07] <Wuppy> okay I have no fucking clue how to do this anymore :<
L738[07:13:06] <PaleoCrafter> could also figure out how to (de)serialise an interface for one of its subtypes (valid subtypes could be defined via an annotation), allowing for something like this: https://gist.github.com/PaleoCrafter/da5f502e124bc3629293
L739[07:15:40] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L740[07:16:05] <Wuppy> screw it.. I'll try this another time if I have time for it
L741[07:16:19] <Cazzar> PaleoCrafter: right now, I've got to work out how I am going to get the default config object
L742[07:16:31] <Wuppy> I've got too limited time to spend a day or 2 figuring this out :V
L743[07:16:34] <Cazzar> Preferably dynamically
L744[07:16:34] <PaleoCrafter> no worries, that'd just be very cool :P
L745[07:16:47] <Wuppy> I'll just code it an ugly way then :V
L746[07:23:48] <Cazzar> Well, this'll probably be the only way to do it...
L747[07:26:00] <Mossyblog> Q. Anyone got example code on how to redirect/override the GuiChest UI..as I want to add background slot colouring but don't want to introduce specialized blocks (ie custom chest or crafting table)
L748[07:28:03] ⇦ Quits: Vaht (~Tahg@pool-108-7-36-124.bstnma.fios.verizon.net) (Ping timeout: 198 seconds)
L749[07:28:03] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Read error: Connection reset by peer)
L750[07:28:09] ⇨ Joins: Tahg (~Tahg@pool-108-7-36-124.bstnma.fios.verizon.net)
L751[07:28:10] MineBot sets mode: +v on Tahg
L752[07:28:21] <Wuppy> holy shit I got it to work :o
L753[07:29:04] <Cazzar> hmm, hocon might not actually work for this too well..
L754[07:29:12] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L755[07:29:29] <Cazzar> ooh~ I might actually have an idea on how to do it
L756[07:30:02] <Cazzar> What if I abstract out the storage language...
L757[07:33:19] <Cazzar> Well that's an interesting... way to break IDEA
L758[07:33:19] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Read error: Connection reset by peer)
L759[07:34:04] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L760[07:34:09] ⇨ Joins: Hgrebnednav (~Hgrebnedn@2a02:1811:2c2a:a400:f58c:9da1:d5eb:8ebf)
L761[07:34:45] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L762[07:39:46] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Read error: Connection reset by peer)
L763[07:41:35] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L764[07:50:10] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Read error: Connection reset by peer)
L765[07:50:24] <Cazzar> PaleoCrafter: what do you think about an abstract way of handling config, so you can have the adapters for specific types, and even serialization/deserialization adapters
L766[07:50:47] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L767[07:51:20] <PaleoCrafter> how abstract exactly? :P
L768[07:52:00] <Cazzar> Literally, you would be able to register, I want my mod to use this class to transform my config, into something forge understands
L769[07:52:07] <Cazzar> That could use ANY lib.
L770[07:52:17] <Cazzar> Forge would just provide a couple of defaults.
L771[07:52:37] <PaleoCrafter> sure
L772[07:52:45] <PaleoCrafter> https://github.com/zml2008/configurate might be worth looking at this
L773[07:52:50] <gigaherz> does Java have any generic serialization API?
L774[07:52:52] <PaleoCrafter> it's what Sponge uses, iirc
L775[07:52:58] <Cazzar> gigaherz: Serialzable.
L776[07:53:13] <Cazzar> PaleoCrafter: I have a bit of a design in the works
L777[07:53:24] <gigaherz> no I mean
L778[07:53:28] <gigaherz> an api for declaring (de)serializers
L779[07:53:33] <gigaherz> not the objects XD
L780[07:53:45] <Cazzar> IIRCno
L781[07:54:00] <gigaherz> also ewh
L782[07:54:04] <gigaherz> that Serializable thing
L783[07:54:21] <gigaherz> uses ObjectOutputStream, which takes flat values, without field names or anything to use as metadata
L784[07:54:28] <Cazzar> :P
L785[07:54:30] <gigaherz> it seems only fit for binary serialization
L786[07:54:36] ⇦ Quits: sciguyryan (~sciguyrya@95.211.188.31) (Ping timeout: 198 seconds)
L787[07:54:45] <Cazzar> That's the only thing it is fit for :p
L788[07:55:00] <PaleoCrafter> Java's built-in serialisation is a mess and consists of nothing but massive hacks :P
L789[07:55:22] <gigaherz> wouldh ave been easy to have a SerializationConsumer with like, writeField(name, value)
L790[07:55:54] <gigaherz> but /shrug
L791[07:56:02] <Cazzar> Where's the need?
L792[07:56:11] <Cazzar> Also
L793[07:56:25] <Cazzar> https://docs.oracle.com/javase/tutorial/essential/environment/properties.html
L794[07:56:48] <fry> gson is good enough, and probably the best you can do in java, use it :P
L795[07:57:43] <gigaherz> or...
L796[07:57:44] <gigaherz> https://github.com/gigaherz/NBTSerializer
L797[07:57:45] <gigaherz> XD
L798[07:57:50] <gigaherz> I wrote it a while ago while bored
L799[07:59:39] <LatvianModder> what for?
L800[07:59:42] <LatvianModder> configs?
L801[07:59:46] <LatvianModder> JSON. Please :D
L802[08:00:03] <Cazzar> Also, <3 programming shower thoughts.
L803[08:00:13] <LatvianModder> Oh, I havent heard those
L804[08:00:29] <LatvianModder> Well. I dont have a shower. But I mean I havent read any of those :P
L805[08:00:41] <Cazzar> Nah, it's something I can have, when I go have a shower in the middle of the programming
L806[08:00:50] <gigaherz> LatvianModder: I wrote it while bored, I have no purpose for it XD
L807[08:01:18] <LatvianModder> Darn you! I wrote a NBT serializer / deserializer too! :D
L808[08:01:24] ⇨ Joins: sciguyryan (~sciguyrya@bcdda879.skybroadband.com)
L809[08:01:24] <LatvianModder> With a waterproof laptop, Cazzar
L810[08:01:30] <LatvianModder> So you can shower AND program
L811[08:01:36] <Cazzar> LatvianModder: no thanks
L812[08:01:41] <LatvianModder> er.. whats the verb for programmer?
L813[08:01:45] <Cazzar> I could be playing Kindred Spirits on the Roof
L814[08:01:46] <LatvianModder> to program? that.. doesnt sound right
L815[08:02:01] <Cazzar> a programmer programs.
L816[08:02:16] <Cazzar> or, writes code :P
L817[08:02:21] <Cazzar> w\e
L818[08:02:39] <LatvianModder> It's now whatever! I must know all the english
L819[08:02:57] ⇦ Quits: EyeOfKoishi (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 186 seconds)
L820[08:03:36] <LatvianModder> Darn. I think I need to buy pastebin
L821[08:03:38] <LatvianModder> http://pastebin.com/1LLz145Q
L822[08:04:04] <fry> what
L823[08:04:04] <LatvianModder> See them pretty json configs!
L824[08:04:22] <LatvianModder> I ran out of unlisted pastes (25) :P
L825[08:04:31] <fry> gist.github.com
L826[08:04:41] <LatvianModder> I dont like it.. I dunno.. Maybe
L827[08:04:44] <Cazzar> LatvianModder: with this system I am looking at designing, you can have that, and a few other things :p
L828[08:05:47] <LatvianModder> Cazzar: Then you might aswell look at my [terrible] config system - https://github.com/LatvianModder/LatLib/tree/master/src/latmod/lib/config and https://github.com/LatvianModder/FTBLib/tree/1.8.9/src/main/java/ftb/lib/api/config
L829[08:06:13] <LatvianModder> config registry is only needed for reloading configs & editing them in gui
L830[08:06:31] <LatvianModder> If this would go in forge, you can steal it :P
L831[08:07:01] <LatvianModder> So, i'd be able to select file format? Like, .json, .cfg and.. I dont know any others
L832[08:07:05] <LatvianModder> .ini I think
L833[08:07:31] <Cazzar> if I do it right.
L834[08:10:21] ⇦ Quits: sciguyryan (~sciguyrya@bcdda879.skybroadband.com) (Ping timeout: 198 seconds)
L835[08:10:40] <PaleoCrafter> please add an explicit crash for YAML though
L836[08:10:53] <Cazzar> Heh
L837[08:11:11] <Cazzar> As much as I hate yaml I don't think I will
L838[08:13:36] <LatvianModder> YAML? gotta google that
L839[08:13:42] ⇦ Quits: VikeStep (~VikeStep@120.156.54.17) (Quit: Leaving)
L840[08:13:54] <Cazzar> LatvianModder: ever used bukkit? (One MC related project, that used it)
L841[08:14:15] <LatvianModder> No.. I made my permissions / ranks system json-based
L842[08:14:27] <LatvianModder> I luv json so much, I use it anywhere where its possible
L843[08:14:46] <Cazzar> You'll hate YAML with a passion when you use it a lot :P
L844[08:14:55] <Cazzar> Especially if you hate enforced whitespace
L845[08:15:51] <fry> only if you hate enforced whitespace
L846[08:15:52] <LatvianModder> Like. Ive never used bukkit, yet I made FTBU & EnkiTools, which are basically essentials + world guard and what not
L847[08:16:27] <LatvianModder> I like formats like json, because whitespace is not important
L848[08:16:42] <Cazzar> YAML whitespace is important.
L849[08:16:59] <Cazzar> http://yaml.org/
L850[08:17:06] <LatvianModder> Yeah, I dont have a problem with enforced whitespaces
L851[08:17:17] <LatvianModder> Im sure theres an Idea plugin for that
L852[08:17:43] <Cazzar> When you are doing remote admin on a phone, via ssh
L853[08:17:47] <Cazzar> YAML can be annoying.
L854[08:19:25] <fry> use vim
L855[08:19:25] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Read error: Connection reset by peer)
L856[08:19:32] <fry> or emacs
L857[08:19:37] <fry> whatever floats your boat
L858[08:19:41] <Cazzar> I used vim
L859[08:19:44] <Cazzar> it was still a pain
L860[08:20:00] <fry> you didn't use it correctly then :P
L861[08:20:35] <Cazzar> This was ages ago
L862[08:21:09] <Cazzar> And my vi setup usually did spaces, but, sometimes, someone else uploaded/created it with tabs.
L863[08:21:45] *** kroeser is now known as kroeser|away
L864[08:22:53] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L865[08:23:13] <LatvianModder> vi stands for violence
L866[08:23:57] <fry> :%s/^I/ /g
L867[08:24:19] <gigaherz> vi stands for "why did I ever try to use this program? now I have no idea how to close it and I have to reset the machine to get back to the shell"
L868[08:24:24] <Cazzar> fry: What help is that now?
L869[08:24:40] <Cazzar> gigaherz: That means, you need to learn to read the man pages. :P
L870[08:24:50] <gigaherz> it was too late by then!
L871[08:24:54] <gigaherz> ;P
L872[08:25:05] <Cazzar> It's teaching you to get in the habbits
L873[08:25:09] <Cazzar> Also, best editor: ed
L874[08:25:15] <gigaherz> nano.
L875[08:25:36] <Cazzar> http://c2.com/cgi/wiki?EdIsTheStandardTextEditor
L876[08:25:42] <LatvianModder> notepad++! .. noone?
L877[08:25:50] <gigaherz> LatvianModder: on windows, yes
L878[08:25:57] <Cazzar> heh
L879[08:26:00] <gigaherz> but if I'm on a text-only unix environment
L880[08:26:01] <gigaherz> ;p
L881[08:26:13] <fry> ctrl-alt-f2
L882[08:26:14] <Cazzar> I haven't installed np++ for my last 2 installs.
L883[08:26:15] <gigaherz> then I'd choose nano over vi/emacs
L884[08:26:31] <gigaherz> simply because it has a "menu" at the bottom
L885[08:26:31] *** willieaway is now known as williewillus
L886[08:26:32] <gigaherz> XD
L887[08:27:11] <Cazzar> I should make a yes clone that controls the ^C and replace it on gigaherz's machines.
L888[08:27:28] <Cazzar> Then again, I could do that in bash
L889[08:27:54] <gigaherz> on linux with a DE, I usually go for Kate
L890[08:28:06] <Cazzar> Right now I am personally using i3
L891[08:28:09] <gigaherz> but nothing really replaces Notepad++/VisualStudio for me
L892[08:28:38] <williewillus> i3 \o/
L893[08:29:03] <gigaherz> i3?
L894[08:29:07] <Cazzar> gigaherz: these two do for me: http://upload.cazzar.net/u/1455373741
L895[08:29:17] <gigaherz> the only i3 I know is a cpu model class
L896[08:29:23] <gigaherz> and the only one google knows is a car engine
L897[08:29:30] <Cazzar> https://i3wm.org/
L898[08:29:39] <Cazzar> https://wiki.archlinux.org/index.php/i3
L899[08:29:53] <Cazzar> Obviously you don't know your google-fu :P
L900[08:29:54] <gigaherz> oh a WM
L901[08:30:05] <gigaherz> I was looking for editors
L902[08:30:05] <gigaherz> XD
L903[08:30:20] <williewillus> vim ;)
L904[08:30:21] <gigaherz> my WM of choice is Xfce, simply because it's the one I can configure to be windows-like
L905[08:31:09] <Cazzar> hmm
L906[08:31:55] <gigaherz> but really I avoid other OSes
L907[08:31:56] <gigaherz> ;P
L908[08:32:30] <williewillus> what I hate more than having to use windows
L909[08:32:35] <williewillus> is stupid distro-locked software
L910[08:32:54] <williewillus> ROS (robotics dev kit) is ubuntu only and doesn't compile on arch
L911[08:33:08] <williewillus> so I have to use a dumb vm inside windows sinze I didn't make my linux partition big enough :P
L912[08:36:20] <gigaherz> it's the biggest drawback of having multiple alternatives of things
L913[08:36:29] <gigaherz> and custom patches on top of that
L914[08:36:58] <gigaherz> it's easy to write software for one specific variant of a certain function, that has a different argument choice than usual
L915[08:37:45] <williewillus> I blame ubuntu
L916[08:37:53] <williewillus> arch receives packages almost directly from upstream
L917[08:37:55] <williewillus> :P
L918[08:38:07] <williewillus> all the other non-rolling distros patch it to hell
L919[08:38:21] <Cazzar> Gentoo? :p
L920[08:38:29] <williewillus> gentoo is rolling i thought
L921[08:38:54] <Cazzar> it is
L922[08:38:57] <Cazzar> ALso, williewillus https://wiki.archlinux.org/index.php/Ros
L923[08:39:04] <williewillus> it doesn't work
L924[08:39:13] <williewillus> I spent a couple hours compiling everything and one piece just wouldn't
L925[08:39:16] <Cazzar> How willing are you to bet on it?
L926[08:39:23] <williewillus> bet on what?
L927[08:39:25] * Cazzar looks at his ARch laptop
L928[08:39:28] <williewillus> the AUR package is broken
L929[08:39:36] <williewillus> or, one of them is
L930[08:49:21] *** williewillus is now known as willieaway
L931[08:49:42] *** willieaway is now known as williewillus
L932[08:51:18] ⇨ Joins: Shukaro (~Shukaro@130.108.232.236)
L933[09:01:40] <williewillus> fry: did you get my ping regarding animationTESR and having to do extra stuff?
L934[09:01:49] <fry> yes, I did
L935[09:02:38] ⇦ Quits: Upthorn (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (Quit: this quit message is 100% guaranteed not to contain obscenity.)
L936[09:03:07] <williewillus> is it sufficient to subclass animationTESR, call super, then do what I need (render a fake item, and some text)? or will that screw things up
L937[09:03:28] <fry> most items have models
L938[09:03:35] <fry> which you can compose to the original model
L939[09:03:45] <fry> text can be rendered as a model too
L940[09:04:55] <williewillus> not sure how to combine the item model into the base model in this context :P (it can be any item in the game), or how to do text :P
L941[09:05:21] <fry> then you can't subclass AnimationTESR
L942[09:05:52] <williewillus> kk, thats what i thought
L943[09:06:29] <fry> (well, you can, but you'll have to override everything anyway, and you can't use the fast renderer, since some items can use GL)
L944[09:06:50] ⇦ Quits: Fendirain (~Fendirain@172-14-113-26.lightspeed.irvnca.sbcglobal.net) (Quit: Leaving)
L945[09:06:55] ⇨ Joins: Olph___ (webchat@c-73-174-108-176.hsd1.pa.comcast.net)
L946[09:08:06] <williewillus> k - another question - if I want a submodel to bob up and down sinusoidally, how do I do that :P right now I have it linearly, do I have to pass it in somehow? https://github.com/williewillus/Botania/commit/988e80a3f286611b5992ee0ebe20e3b9c01624e0
L947[09:08:55] <gigaherz> model.y = basey + sin(ticks + partialTicks)
L948[09:08:57] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Ping timeout: 186 seconds)
L949[09:09:00] ⇨ Joins: MoxieGrrl (~MoxieGrrl@173-23-172-139.client.mchsi.com)
L950[09:09:03] <williewillus> animation API :P
L951[09:09:10] <gigaherz> ;P
L952[09:09:31] <williewillus> i didnt see any trig operations in the ASM grammar so I was wondering if that was supposed to be approximated or passed in or something
L953[09:09:39] <gigaherz> does it do curves?
L954[09:10:13] <fry> 8-ish samples will be enough for the realistic sinusoid
L955[09:10:48] <PaleoCrafter> y u no bezier, fry? xD
L956[09:10:59] <fry> planned
L957[09:11:22] <fry> also, ~0 people are using the animation thing anyway right now
L958[09:11:23] <williewillus> so change the sample values? I'm still not quite sure what goes there and why to be honest :P
L959[09:11:38] <williewillus> *1 :P
L960[09:11:49] <PaleoCrafter> I bet it's because there's no bezier curves :P
L961[09:11:56] <fry> sample values are for the model elements, at least where you're probably thinking about
L962[09:12:25] <gigaherz> 8 is not really enough
L963[09:12:27] <gigaherz> 10-12 is nicer
L964[09:12:48] <fry> who cares, the point is it's not hardcoded in the code, and you can easily change it
L965[09:12:51] <PaleoCrafter> how about 9001?
L966[09:14:13] <gigaherz> williewillus: https://dl.dropboxusercontent.com/u/743491/Sin.png
L967[09:14:16] ⇨ Joins: Upthorn (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L968[09:15:55] <gigaherz> hmm in fact if you start with sample 1 on that list
L969[09:16:02] <gigaherz> you can skip 0 and 6
L970[09:18:03] <gigaherz> https://dl.dropboxusercontent.com/u/743491/Sin2.png
L971[09:18:19] <gigaherz> of course the first column depends on how long you want the animation to last, and if it's in frames, ticks, or seconds
L972[09:18:34] <fry> aaaand the sampling isn't uniform anymore
L973[09:18:43] <gigaherz> yeah
L974[09:18:45] <gigaherz> depends on how you specify
L975[09:18:50] <gigaherz> if you have time-value pairs
L976[09:18:54] <gigaherz> the Sin2 table is shorter
L977[09:20:15] <gigaherz> if you need evenly spaced samples then https://dl.dropboxusercontent.com/u/743491/Sin1.png
L978[09:20:58] <gigaherz> although if you do NOT want evenly spaced samples, then you could approximate it even better
L979[09:21:57] *** kroeser|away is now known as kroeser
L980[09:23:15] ⇨ Joins: cppchriscpp (~cppchrisc@c-76-24-45-127.hsd1.nh.comcast.net)
L981[09:23:33] ⇨ Joins: AforAnonymous (bitch2k@dyn-042-184.vix1.mmc.at)
L982[09:25:21] ⇨ Joins: shadekiller666 (~shadekill@adsl-108-71-34-208.dsl.lsan03.sbcglobal.net)
L983[09:25:38] *** MrKick|Away is now known as MrKickkiller
L984[09:29:30] ⇦ Quits: Olph___ (webchat@c-73-174-108-176.hsd1.pa.comcast.net) (Quit: Web client closed)
L985[09:29:39] ⇨ Joins: Olph_ (webchat@c-73-174-108-176.hsd1.pa.comcast.net)
L986[09:31:34] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L987[09:39:59] ⇦ Quits: GildedGames (~GildedGam@ec2-54-158-111-99.compute-1.amazonaws.com) (Ping timeout: 189 seconds)
L988[09:40:07] ⇦ Quits: Olph_ (webchat@c-73-174-108-176.hsd1.pa.comcast.net) (Ping timeout: 204 seconds)
L989[09:40:30] <gigaherz> https://dl.dropboxusercontent.com/u/743491/Sin3.png
L990[09:40:38] <gigaherz> can you ppl tell that I'm bored?
L991[09:40:38] <gigaherz> ;P
L992[09:40:49] <PaleoCrafter> not at all
L993[09:41:30] <gigaherz> oops I just closed that excel withotu saving
L994[09:41:33] <gigaherz> oh well /shrug
L995[09:43:25] <fry> all those moments ... lost
L996[09:43:31] <fry> ... like tears ... in ... rain
L997[09:43:40] <fry> *dove flies*
L998[09:44:20] <shadekiller666> oh the humanity!!!!!
L999[09:46:43] <gigaherz> the internet broke me
L1000[09:46:51] <gigaherz> I can't read that line without pictugin a huge manatee
L1001[09:47:08] <gigaherz> picturing*
L1002[09:48:50] <shadekiller666> ?
L1003[09:48:59] <shadekiller666> wait no, i probably don't want to know
L1004[09:50:26] <gigaherz> http://knowyourmeme.com/memes/oh-the-huge-manatee
L1005[09:58:18] ⇨ Joins: poiuy_qwert (~poiuy_qwe@198-84-224-94.cpe.teksavvy.com)
L1006[09:59:14] *** MrKickkiller is now known as MrKick|Away
L1007[10:00:27] ⇨ Joins: armctec (~Thunderbi@186.204.71.137)
L1008[10:00:48] ⇨ Joins: Javaschreiber (~Thunderbi@p5DD8D491.dip0.t-ipconnect.de)
L1009[10:04:51] <unascribed> wait, what
L1010[10:04:54] <unascribed> there is NO WAY this should work
L1011[10:04:56] <unascribed> but yet it does????
L1012[10:05:09] <unascribed> https://unascribed.com/i/56152a9b.png
L1013[10:05:32] <unascribed> (I'm not ASMing classes, I'm discovering annotated mod classes)
L1014[10:05:41] <PaleoCrafter> why wouldn't it work? :P
L1015[10:05:41] ⇨ Joins: AtomicStryker (~AtomicStr@ip-37-201-234-130.hsi13.unitymediagroup.de)
L1016[10:05:49] <unascribed> it has an interface that isn't present at runtime
L1017[10:05:54] <unascribed> unlike annotations that's an error
L1018[10:06:04] <unascribed> or it should be...
L1019[10:06:34] <PaleoCrafter> oh, right, hm xD
L1020[10:07:06] <Javaschreiber> No idea, maybe Java only checks methods on compile-time?
L1021[10:07:12] ⇨ Joins: Brokkoli (~Brokkoli@x55b02e48.dyn.telefonica.de)
L1022[10:07:21] <unascribed> this may be a JDK8 thing
L1023[10:07:29] <unascribed> since there's flexible interfaces
L1024[10:07:33] <unascribed> and these interfaces are identical
L1025[10:07:41] <unascribed> I'll have to see how it behaves on 6
L1026[10:07:44] <gigaherz> classes in annotations are just metadata
L1027[10:07:53] <unascribed> the annotations make sense
L1028[10:07:58] <unascribed> I'm talking about the interfaces
L1029[10:08:06] <gigaherz> wait I see
L1030[10:08:07] <gigaherz> nevermind
L1031[10:08:08] <unascribed> annotations that don't exist at runtime vanish, that I already know
L1032[10:08:15] <unascribed> that's how the mod part works
L1033[10:08:19] <unascribed> I have no idea how the loading plugin part works
L1034[10:08:46] <gigaherz> maybe fml has something for it written in? ;P
L1035[10:08:50] <unascribed> ¯\_(ツ)_/¯
L1036[10:08:54] <Javaschreiber> Question: Do both interfaces exist at compile-time?
L1037[10:08:58] <unascribed> yes
L1038[10:09:04] <unascribed> I have a dummy version of it
L1039[10:09:07] <unascribed> but it's not present at runtime
L1040[10:09:17] <Javaschreiber> Maybe java says: Well, these are the same methods, so screw it!
L1041[10:09:21] ⇦ Parts: armctec (~Thunderbi@186.204.71.137) ())
L1042[10:09:24] <unascribed> let me try building it and see if it runs obf'd
L1043[10:09:32] <gigaherz> I was gonna say
L1044[10:09:41] <gigaherz> can you decompile the bytecode, and see waht it says?
L1045[10:10:04] <Javaschreiber> Another question: Do I need a blockstates json for items?
L1046[10:10:59] <unascribed> https://unascribed.com/t/efb66350.txt
L1047[10:11:10] *** AEnterprise is now known as AEnterpriseAFK
L1048[10:11:22] <gigaherz> not "need"
L1049[10:11:29] <gigaherz> but a blockstates json on items is a useful feature added by forge
L1050[10:11:37] <gigaherz> that lets you use forge blockstates variatns for items
L1051[10:11:38] ⇨ Joins: sciguyryan (~sciguyrya@95.211.184.213)
L1052[10:11:39] <gigaherz> which is really nice
L1053[10:11:54] ⇦ Quits: sciguyryan (~sciguyrya@95.211.184.213) (Remote host closed the connection)
L1054[10:11:56] <Javaschreiber> Well, i don't want to and forge gives me an error
L1055[10:12:24] <Javaschreiber> Could not load model definition for variant big_capacitors:itemManual#inventory
L1056[10:12:36] <gigaherz> you have "models/item/itemManual.json"?
L1057[10:13:10] <Javaschreiber> Good point, I don't
L1058[10:13:57] <unascribed> awww
L1059[10:13:59] <gigaherz> yeah that's the issue then
L1060[10:14:00] <unascribed> it explodes when obf'd
L1061[10:14:01] <unascribed> :(
L1062[10:14:04] <gigaherz> heh
L1063[10:14:13] ⇦ Quits: nallar (~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net) (Read error: Connection reset by peer)
L1064[10:15:01] <unascribed> if only Optional.Interface took a versionspec instead of just a modid
L1065[10:15:14] <unascribed> not sure if that'd even work on a loading plugin
L1066[10:15:17] <unascribed> but it'd be worth a shot
L1067[10:16:58] ⇦ Quits: poiuy_qwert (~poiuy_qwe@198-84-224-94.cpe.teksavvy.com) (Quit: This computer has gone to sleep)
L1068[10:18:17] <unascribed> bleh, I think the only way to do this due to the repackaging will be a tweaker
L1069[10:21:08] <gigaherz> isn't it best to just like, have two versions of the @Mod class and compile twice, once with each version? ;P
L1070[10:21:32] <gigaherz> or like, a separate compile task that replaces the net.minecraftforge.fml with the other one
L1071[10:22:02] <unascribed> I want one jar
L1072[10:22:07] <unascribed> It's a stupid crusade that is causing issues
L1073[10:22:19] <unascribed> but it's still something I want to do
L1074[10:22:29] * gigaherz shrugs
L1075[10:22:37] <unascribed> so yes that is the best way
L1076[10:22:41] <unascribed> but it's not the way I am using :P
L1077[10:22:53] <gigaherz> hmmm
L1078[10:23:17] <gigaherz> I don't suppose a jar with two @Mod classes with thesame modid would work at all?
L1079[10:23:23] <gigaherz> (I guess it would fail in both versions XD)
L1080[10:23:27] <unascribed> that's already how I do the normal mod
L1081[10:23:30] <unascribed> the loading plugin is the problem
L1082[10:23:39] <unascribed> It's one class with two annotations, but it's the same idea
L1083[10:23:46] <gigaherz> eh right
L1084[10:24:09] <unascribed> https://unascribed.com/i/a0a05226.png
L1085[10:24:19] <unascribed> hello, textual users
L1086[10:24:22] <unascribed> >.>
L1087[10:24:38] <unascribed> and LimeChat too apparently
L1088[10:25:05] <unascribed> seriously, ~10 people just broadcast their IPs to my server without user intervention
L1089[10:25:22] <gigaherz> lol?
L1090[10:26:43] ⇨ Joins: MattDahEpic (~MattDahEp@184-96-202-46.hlrn.qwest.net)
L1091[10:27:46] ⇨ Joins: Temportalist (uid37180@2604:8300:100:200b:6667:3:0:913c)
L1092[10:27:57] <Temportalist> PaleoCrafter
L1093[10:27:58] ⇦ Quits: Mraof (~mraof@2601:642:4400:20c4:ba27:ebff:fea5:e37e) (Quit: Leaving)
L1094[10:28:09] <PaleoCrafter> Temportalist,
L1095[10:28:17] ⇨ Joins: nallar (~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net)
L1096[10:28:35] <Temportalist> Java question
L1097[10:28:35] <Temportalist> https://gist.github.com/TheTemportalist/7716a60a57d7e2ac09c1
L1098[10:28:56] <Temportalist> Assuming I do not have access to the element* objects, nor the class Foo
L1099[10:29:05] * unascribed half expects to get a Scala solution to the Java question
L1100[10:29:11] <unascribed> s/get/see/
L1101[10:29:13] <Temportalist> is there any way to edit the element* objects through the data array
L1102[10:29:28] <PaleoCrafter> uhm... reflection, I guess? xD
L1103[10:29:46] <Temportalist> But I dont know where those element* objects exist
L1104[10:29:47] <Temportalist> they just do
L1105[10:29:51] <gigaherz> Temportalist: they are references
L1106[10:29:59] <Temportalist> ?
L1107[10:30:11] <gigaherz> so if you change the contents of the objects, they'd just change
L1108[10:30:21] <gigaherz> however, if what you want is to change the object referenced by those variables
L1109[10:30:23] <PaleoCrafter> you want to do stuff to objects without knowing "where" they are nor what they are? xD
L1110[10:30:25] <gigaherz> then reflection is the only choice
L1111[10:30:33] <Temportalist> PaleoCrafter: yes
L1112[10:30:37] <Temportalist> gigaherz: darn
L1113[10:30:49] <Temportalist> For context, this is referencing KeyBindings in MC
L1114[10:30:53] ⇦ Quits: Loetkolben (~Loetkolbe@ipbcc17c0a.dynamic.kabel-deutschland.de) (Quit: Over and Out!)
L1115[10:30:53] <Temportalist> to NotEnoughKeys
L1116[10:30:56] <Temportalist> *for
L1117[10:31:12] <unascribed> if you just want to change the array
L1118[10:31:16] <Temportalist> Guess I cannot do the sub-class approach
L1119[10:31:21] <Temportalist> unascribed: that wouldnt work
L1120[10:31:23] <unascribed> and not in some magical quantum-entangled fashion change the variable
L1121[10:31:27] <unascribed> arrays are mutable
L1122[10:31:32] <unascribed> so elements[0] = new Bar("hi");
L1123[10:32:04] ⇦ Quits: Naiten (~Naiten@86-102-16-100.xdsl.primorye.ru) (Read error: Connection reset by peer)
L1124[10:32:08] <Temportalist> unascribed: But both MC and mod devs reference their keybinding objects, whereas changing JUST the array elements would not change their referenced values
L1125[10:32:14] <unascribed> ah
L1126[10:32:16] <Temportalist> because it would overwrite the element
L1127[10:32:25] <unascribed> yeah, then you need to reflect into the keybinding you want to modify and modify it
L1128[10:32:29] <Temportalist> is there anyway to set an object as a subclass of its type?
L1129[10:32:30] <gigaherz> yep
L1130[10:32:32] <unascribed> no.
L1131[10:32:35] <Temportalist> damn
L1132[10:32:39] <unascribed> if you feel like scanning for fields
L1133[10:32:41] <unascribed> you could reflect those
L1134[10:32:45] <unascribed> but that would be slow as hell
L1135[10:32:48] <unascribed> and extremely prone to error
L1136[10:32:49] <gigaherz> and no to the question
L1137[10:32:49] <gigaherz> XD
L1138[10:32:59] <gigaherz> I use this in my mod
L1139[10:33:00] <gigaherz> https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/client/KeyBindingInterceptor.java
L1140[10:33:09] *** MrKick|Away is now known as MrKickkiller
L1141[10:33:09] <gigaherz> to intercept thehotbar keys while my wands are in use
L1142[10:33:16] <unascribed> uh
L1143[10:33:19] <unascribed> there's an easy solution to this
L1144[10:33:22] <unascribed> and it's what I use in my mod
L1145[10:33:27] <gigaherz> even just that requires heavy reflection
L1146[10:33:28] <gigaherz> XD
L1147[10:33:39] <unascribed> I have intercepted hotbar keys for my rifle
L1148[10:33:42] <unascribed> zero reflection...
L1149[10:33:51] <gigaherz> how do yo udo it?
L1150[10:33:53] <Temportalist> looks ugly
L1151[10:34:07] <PaleoCrafter> just cancel the KeyInputEvent? :P
L1152[10:34:11] <PaleoCrafter> or whatever it's called
L1153[10:34:15] <Temportalist> nope
L1154[10:34:17] <unascribed> https://unascribed.com/i/8d3b8118.png
L1155[10:34:18] <gigaherz> that sounds uglier
L1156[10:34:18] <Temportalist> not a cancelable event
L1157[10:34:19] <gigaherz> XD
L1158[10:34:24] <unascribed> in KeyInputEvent
L1159[10:34:36] <gigaherz> ewh
L1160[10:34:52] <gigaherz> it does seem much simpler though
L1161[10:34:53] <unascribed> whether or not it offends your sensibilities
L1162[10:34:53] <gigaherz> XD
L1163[10:34:55] <unascribed> it's plenty fast
L1164[10:34:56] <unascribed> super simple
L1165[10:34:59] <unascribed> and uses no reflection
L1166[10:35:05] <unascribed> pressTicks is usually <4
L1167[10:35:13] <Temportalist> unascribed: that wouldnt work for my purposes
L1168[10:35:15] <Temportalist> :/
L1169[10:35:15] <unascribed> because you generally tap the hotbar keys
L1170[10:35:21] <unascribed> Temportalist, this is for gigaherz' problem
L1171[10:35:27] <unascribed> or rather
L1172[10:35:30] <unascribed> an alternate solution
L1173[10:35:54] <gigaherz> I could look into that for the future, current system works just fine though ;P
L1174[10:36:14] <unascribed> my main problem with your solution
L1175[10:36:19] <unascribed> is it uses 200 lines to do something that can be done in 2
L1176[10:36:24] *** Kolatra is now known as Kolatra[away]
L1177[10:36:38] ⇦ Quits: alex_6611 (~alex_6611@p54936B44.dip0.t-ipconnect.de) (Ping timeout: 189 seconds)
L1178[10:36:57] <gigaherz> I'm not saying my solution is better
L1179[10:37:02] <unascribed> I didn't say you did
L1180[10:37:03] <gigaherz> it's just the only one I found when I wrote it
L1181[10:37:03] <gigaherz> XD
L1182[10:37:13] <PaleoCrafter> oh, right, there have to be 3 mouse and keyboard events respectively and of those only the GUI ones and one mouse event are cancelable ._.
L1183[10:37:39] <Temportalist> it sucks
L1184[10:37:40] <unascribed> 10/10
L1185[10:37:53] <Temportalist> but i know why keyboard events arent cancelable
L1186[10:37:59] <Temportalist> *I understand why
L1187[10:38:03] <unascribed> design as done by tons of junior developers throwing code into a giant vat of code
L1188[10:38:11] <Temportalist> haha
L1189[10:38:28] <unascribed> it's really what open source is when it comes down to it :P
L1190[10:38:29] <PaleoCrafter> well, it partially is due to the FML/Forge merge
L1191[10:39:27] *** Keridos|away is now known as Keridos
L1192[10:42:02] <Temportalist> wait
L1193[10:42:07] <Temportalist> maybe i dont understand why
L1194[10:42:24] <Temportalist> why the heck doesnt KeyInputEvent have @Cancelable?
L1195[10:42:37] <PaleoCrafter> it doesn't, KeyboardInputEvent does :P
L1196[10:42:46] <PaleoCrafter> KeyboardInputEvent.Pre, that is
L1197[10:43:38] <Temportalist> thats only for guis tho
L1198[10:44:01] <PaleoCrafter> oh, does *not*, I missed the 'nt' xD
L1199[10:46:43] <Lordmau5> Losing my mind over something right now...
L1200[10:46:43] <Lordmau5> \o
L1201[10:48:07] <Lordmau5> https://i.lordmau5.com/1455382017-660
L1202[10:48:29] <Lordmau5> Technically, the fluid is null at the top. And I've got a return in there, so it should prevent the method from continuing, right?
L1203[10:48:47] <Lordmau5> But somehow it's causing a NPE at the bottom, where, in theory, it should be "unreachable code"?
L1204[10:48:59] <unascribed> except getFluid is a method
L1205[10:49:02] <unascribed> it could return something first
L1206[10:49:05] <unascribed> and then return null
L1207[10:49:30] <unascribed> make sure this field isn't shared between the server and client thread
L1208[10:49:30] <Lordmau5> https://i.lordmau5.com/1455382169-661
L1209[10:50:03] <Lordmau5> oh, I think..
L1210[10:50:13] <Lordmau5> ye, nvm
L1211[10:58:20] <Lordmau5> or not
L1212[10:58:22] <Lordmau5> it's still happening
L1213[10:58:54] <PaleoCrafter> store the first call to getFluid in a variable :P
L1214[11:01:36] *** MrKickkiller is now known as MrKick|Away
L1215[11:02:39] ⇦ Quits: Nitrodev (~Nitrodev@dcx0f0yhy8z80585d3zdy-3.rev.dnainternet.fi) (Read error: Connection reset by peer)
L1216[11:03:02] ⇦ Quits: kimfy (~kimfy@9.12.34.95.customer.cdi.no) (Ping timeout: 189 seconds)
L1217[11:03:04] <Javaschreiber> I've got this blockstate json: http://pastebin.com/ZwEjYgZD and am getting the following exception: http://pastebin.com/d3JEQhHs
L1218[11:03:16] <Javaschreiber> Can someone give me a hint what I'm doing wrong?
L1219[11:05:23] *** MrKick|Away is now known as MrKickkiller
L1220[11:05:36] <gigaherz> "inventory": {}
L1221[11:05:39] <gigaherz> should be
L1222[11:05:41] <gigaherz> "inventory": [{}]
L1223[11:06:02] <Javaschreiber> gigaherz: Just out of interest: Why?
L1224[11:06:08] <gigaherz> basically:
L1225[11:06:18] <gigaherz> variants with [{}] are raw variant strings
L1226[11:06:19] <gigaherz> while
L1227[11:06:26] <gigaherz> variants with just {} are assumed to be properties
L1228[11:06:32] <Javaschreiber> Oh
L1229[11:06:33] <gigaherz> and then forge looks for values for those properties inside
L1230[11:06:47] <Javaschreiber> Ok, makes sens
L1231[11:07:23] ⇨ Joins: kimfy (~kimfy@9.12.34.95.customer.cdi.no)
L1232[11:08:09] ⇦ Quits: Abrar|gone (~AbrarSyed@ipv6.abrarsyed.com) (Ping timeout: 186 seconds)
L1233[11:09:44] ⇦ Quits: AtomicStryker (~AtomicStr@ip-37-201-234-130.hsi13.unitymediagroup.de) (Quit: Leaving)
L1234[11:10:32] <Lordmau5> https://i.lordmau5.com/1455383430-662
L1235[11:10:56] <Lordmau5> should I just cache the actual fluid as well?
L1236[11:10:58] ⇨ Joins: Abrar|gone (~AbrarSyed@ipv6.abrarsyed.com)
L1237[11:10:58] MineBot sets mode: +o on Abrar|gone
L1238[11:11:03] <PaleoCrafter> that's not what I meant :P
L1239[11:11:09] <PaleoCrafter> the reference in your variable won't change :P
L1240[11:11:16] <PaleoCrafter> so no need to check for null agin
L1241[11:11:28] *** Abrar|gone is now known as AbrarSyed
L1242[11:11:48] <Lordmau5> so technically I'm doing this now: https://i.lordmau5.com/1455383504-663
L1243[11:11:56] <Lordmau5> and just use those vars where I need
L1244[11:11:59] <Lordmau5> correct?
L1245[11:12:19] <PaleoCrafter> yeah
L1246[11:12:26] <Lordmau5> k
L1247[11:14:41] *** Mraoffle is now known as Mraof
L1248[11:17:52] ⇨ Joins: Loetkolben (~Loetkolbe@ipbcc17c0a.dynamic.kabel-deutschland.de)
L1249[11:20:23] ⇨ Joins: Noppes (~Noppes@82-168-99-26.ip.telfort.nl)
L1250[11:22:17] ⇦ Quits: Seppon (~Noppes@82-168-99-26.ip.telfort.nl) (Ping timeout: 189 seconds)
L1251[11:25:54] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L1252[11:34:15] ⇨ Joins: Tim020 (~Tim0@nas246-36.york.ac.uk)
L1253[11:34:31] *** MrKickkiller is now known as MrKick|Away
L1254[11:36:03] ⇦ Quits: Tim020 (~Tim0@nas246-36.york.ac.uk) (Client Quit)
L1255[11:36:58] ⇦ Quits: Noppes (~Noppes@82-168-99-26.ip.telfort.nl) (Read error: Connection timed out)
L1256[11:39:53] ⇦ Quits: Javaschreiber (~Thunderbi@p5DD8D491.dip0.t-ipconnect.de) (Ping timeout: 189 seconds)
L1257[11:46:43] ⇨ Joins: Mimiru (~Mimiru@hekate.pc-logix.com)
L1258[11:46:43] *** Server sets mode: +CQcnrtf #RegisterYourNameMoron
L1259[11:47:23] <PaleoCrafter> not really
L1260[11:47:35] <PaleoCrafter> if you know what packet they send, you can hook into the network pipeline
L1261[11:48:44] <unascribed> it looks like there is ChunkWatchEvent
L1262[11:48:49] <unascribed> walking through the tile entity syncing code
L1263[11:49:00] <unascribed> it's not quite the same
L1264[11:49:02] <unascribed> but it's close enough
L1265[11:49:19] <PaleoCrafter> ah, well, if you're just caring about that, sure
L1266[11:53:21] ⇨ Joins: Nitrodev (~Nitrodev@dcx0f0yf8z6s510gr9c1t-3.rev.dnainternet.fi)
L1267[11:56:57] ⇨ Joins: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl)
L1268[11:57:02] ⇨ Joins: Flashfire (Flashfire@d24-36-192-173.home1.cgocable.net)
L1269[11:57:32] <williewillus> gigaherz: can you do that sine sampling thing you did back there between 0.25 and 0.30? :P
L1270[11:57:51] <williewillus> i guess centered on 0.275
L1271[11:58:01] <Flashfire> I would like to ask if something is possible: I want to make a custom redstone lamp with a colour for each EnumDyeColor that uses the default texture but recolours it using a custom block render
L1272[11:58:02] <williewillus> 0.25 is lowest and 0.30 highest
L1273[11:58:09] <williewillus> Flashfire: yes
L1274[11:58:21] <Flashfire> I want to use the default texture so it's compatible with all or most resource packs
L1275[11:58:57] ⇦ Quits: kimfy (~kimfy@9.12.34.95.customer.cdi.no) (Ping timeout: 198 seconds)
L1276[11:58:58] <PaleoCrafter> williewillus, don't you remember trigonometry? :P
L1277[11:59:03] <williewillus> I'm lazy
L1278[11:59:05] <williewillus> and he had it up already
L1279[11:59:19] <Flashfire> I have tried recolouring an entity before but the colour range was very limited, is that because the default colour already had its own hue?
L1280[11:59:27] <fry> write a piece of code, willie
L1281[11:59:34] ⇨ Joins: poiuy_qwert (~poiuy_qwe@198-84-224-94.cpe.teksavvy.com)
L1282[12:00:14] <Flashfire> The entity was a blaze and the only colour I could successfully get to work was green which is the complementary colour
L1283[12:00:44] ⇦ Quits: poiuy_qwert (~poiuy_qwe@198-84-224-94.cpe.teksavvy.com) (Client Quit)
L1284[12:00:52] <Flashfire> So if I want to do this for a block, do I have to convert the default block texture to grayscale in my block renderer?
L1285[12:01:59] <williewillus> just use colormultiplier
L1286[12:02:06] <williewillus> and a model with tinted faces
L1287[12:02:12] <williewillus> not sure how good itll look though
L1288[12:02:45] <Flashfire> I'd like to just do it in gimp to make it look great but then it won't be compatible with resource packs including the one I'm using (pixel perfection)
L1289[12:03:02] <Flashfire> So I'd only want to do this if it will look natural
L1290[12:03:29] <williewillus> lemme try
L1291[12:03:52] <Flashfire> Thanks
L1292[12:04:48] ⇨ Joins: madcrazydrumma (~madcrazyd@host86-180-35-175.range86-180.btcentralplus.com)
L1293[12:04:59] <PaleoCrafter> here you go, williewillus: http://s.mineformers.de/EXCEL_2016-02-13_19-04-49.png :P
L1294[12:05:11] <madcrazydrumma> Hey guys! Is it possible to use a resourcelocation just for a 16x16 image?
L1295[12:05:22] <Flashfire> Of course
L1296[12:05:42] <williewillus> Flashfire: ehhhh kinda? https://i.gyazo.com/2c5d587bb65bae343240f5e211263e3c.png
L1297[12:05:47] <williewillus> those are all "on" textures btw
L1298[12:05:47] *** big_Xplo|AFK is now known as big_Xplosion
L1299[12:06:05] *** amadornes is now known as amadornes[Streaming]
L1300[12:06:09] <PaleoCrafter> geez, that gigantic title D:
L1301[12:06:22] <williewillus> took a really close up screenshot
L1302[12:06:27] <madcrazydrumma> ^^
L1303[12:06:31] <williewillus> the actual window is 854x480 :P
L1304[12:06:57] <PaleoCrafter> well, what resolution do you have? :P
L1305[12:07:00] <madcrazydrumma> So Flashfire it is possible?
L1306[12:07:01] <williewillus> but yeah it looks kinda meh for the darker texture
L1307[12:07:07] <Flashfire> @williewillus Yeah that's not bad, thanks
L1308[12:07:07] ⇦ Quits: Wastl2 (~Wastl2@f052199100.adsl.alicedsl.de) (Quit: Hi, I'm a quit message virus. Please replace your old line with this one and help me take over the world of IRC.)
L1309[12:07:13] <unascribed> madcrazydrumma, yes
L1310[12:07:15] <williewillus> that was on a 1080p monitor, my laptop screen is 1440p
L1311[12:07:22] <unascribed> IIRC you need to use drawModalRectWithCustomSizedTexture
L1312[12:07:29] <williewillus> scaling is all weird with a hidpi and non hidpi display together
L1313[12:07:34] <williewillus> but it works most of the time
L1314[12:07:34] <Flashfire> @madcrazydrumma Yes it's possible I've done it
L1315[12:07:42] ⇨ Joins: MonkeyTyrant (~MonkeyTyr@stjhnbsu1kw-047055176111.dhcp-dynamic.FibreOp.nb.bellaliant.net)
L1316[12:08:03] ⇦ Quits: MonkeyTyrant (~MonkeyTyr@stjhnbsu1kw-047055176111.dhcp-dynamic.FibreOp.nb.bellaliant.net) (Client Quit)
L1317[12:08:17] <madcrazydrumma> unascribed, ahh so that explains why it only shows one colour
L1318[12:08:32] <Flashfire> @williewillus So how did you test that so fast? Are you using an existing mod?
L1319[12:08:33] *** Keridos is now known as Keridos|away
L1320[12:08:47] <williewillus> the petalblocks use colormultiplier to be recolored
L1321[12:08:51] <williewillus> i just changed the texture in the json
L1322[12:08:52] <williewillus> :P
L1323[12:08:53] <Flashfire> Ahh
L1324[12:08:54] <Flashfire> Cool
L1325[12:08:55] <Wuppy> since when do you need the new keyword when overwriting a method in C#?
L1326[12:09:06] <williewillus> only in certain cases I think wuppy
L1327[12:09:12] <williewillus> idk C# though
L1328[12:09:25] *** DRedhorse is now known as DonAway
L1329[12:09:27] <PaleoCrafter> btw, williewillus, on that scale, 8 samples are plenty
L1330[12:09:49] <Flashfire> I am learning C# but never heard of that
L1331[12:09:52] ⇦ Quits: romibi (~quassel@cable-static-7-174.rsnweb.ch) (Remote host closed the connection)
L1332[12:10:10] <gigaherz> Wuppy: since always
L1333[12:10:13] <PaleoCrafter> eh, technically 9 samples, but whatever
L1334[12:10:15] ⇨ Joins: romibi (~quassel@cable-static-7-174.rsnweb.ch)
L1335[12:10:24] <gigaherz> if a virtual method exists in the base class
L1336[12:10:30] <gigaherz> you have to either use override to override, or new to replace
L1337[12:10:43] ⇦ Parts: williewillus (williewill@Get.A.Free.Bouncer.At.PanicBNC.com) (Leaving))
L1338[12:10:50] ⇨ Joins: williewillus (williewill@Get.A.Free.Bouncer.At.PanicBNC.com)
L1339[12:11:00] <williewillus> what's the difference? 0.o
L1340[12:11:17] <gigaherz> "new" lets you have different return types and such
L1341[12:11:23] <gigaherz> but if you cast back to the parent class
L1342[12:11:27] <gigaherz> it will call thep arent method
L1343[12:11:28] <gigaherz> not the "new" one
L1344[12:11:59] <gigaherz> while override is like you are used to from java
L1345[12:12:06] <williewillus> but if someone issues a virtual call on a base class reference then the "new" method won't be called?
L1346[12:12:18] <gigaherz> nope
L1347[12:12:22] <williewillus> that sounds gross :P
L1348[12:12:23] <gigaherz> not even if the args match
L1349[12:12:32] <gigaherz> the purpose is to explicitly break the chain
L1350[12:12:48] <gigaherz> you can do things like
L1351[12:12:59] <gigaherz> class Base { Base getObject(); }
L1352[12:13:07] <gigaherz> class Child : Base { new Child getObject(); }
L1353[12:13:51] <gigaherz> so when you have a reference to the child, the child is returned, but it won't break returning Base if needed
L1354[12:14:12] <Wuppy> gigaherz, I've never had to use it so far :o
L1355[12:14:17] <Wuppy> not sure how, but yeah...
L1356[12:14:22] <gigaherz> me neither
L1357[12:14:22] <williewillus> so is this like java's covariant return types but weirder
L1358[12:14:24] <gigaherz> I know it's there
L1359[12:14:27] <gigaherz> but I avoid new
L1360[12:14:29] <Wuppy> is it just a warning or an error?
L1361[12:14:49] <gigaherz> I think it depends?
L1362[12:14:52] <PaleoCrafter> williewillus, it's covariance in return types, just broken xD
L1363[12:14:57] <gigaherz> it may be a warning for replacing fields
L1364[12:14:57] <williewillus> idk how breaking the inheritance chain is useful other than telling you that your hierarchy is badly designed? :P
L1365[12:14:58] <Wuppy> yep, just a warning
L1366[12:15:00] <Wuppy> in this case at least
L1367[12:15:15] <gigaherz> but I think it's mandatory for when you change the args of an override
L1368[12:15:25] <gigaherz> it's not just covariance
L1369[12:15:34] <Wuppy> I'm just overwriting a void without params
L1370[12:15:35] <gigaherz> that's just the most common use case for it
L1371[12:15:52] ⇨ Joins: Maxetime (~Thunderbi@modemcable086.219-70-69.static.videotron.ca)
L1372[12:15:55] <Wuppy> this is ugly code though http://i.imgur.com/b8CLLQo.png
L1373[12:16:32] <gigaherz> Wuppy: Start() is not virtual
L1374[12:16:34] <gigaherz> so you can't override
L1375[12:16:52] <Wuppy> this does work though
L1376[12:17:00] <gigaherz> yes
L1377[12:17:01] <gigaherz> I mean
L1378[12:17:03] <gigaherz> you can't use "override"
L1379[12:17:13] <gigaherz> you can use new, but in that situation it's just a warning
L1380[12:17:24] <Wuppy> ah right, thanks for the info :)
L1381[12:17:32] <gigaherz> unlike Java,
L1382[12:17:34] *** Mine|dreamland is now known as minecreatr
L1383[12:17:37] <gigaherz> C# has explicit virtual method tables
L1384[12:17:39] <Wuppy> I wonder if Unity will complain if I make it a virtual function, probably
L1385[12:17:42] <gigaherz> if something isn't marked as virtual
L1386[12:17:47] <madcrazydrumma> Why does this happen: http://i.imgur.com/H3a4CHO.png, when i use drawModalRectWithCustomTexture()? http://pastebin.com/9D1xtnsU <- code
L1387[12:17:53] <gigaherz> the method is called directly
L1388[12:18:02] <gigaherz> instead of through the virtual table
L1389[12:18:17] <gigaherz> so there's a tradeoff with making things virtual (you do more indirect method calls)
L1390[12:18:44] <gigaherz> (although indirect method calls are cheap on modern computers so meh)
L1391[12:19:03] <Wuppy> gigaherz, this is a lot prettier right? http://i.imgur.com/xNKss5J.png
L1392[12:19:11] <Wuppy> with Start being virtual in the child
L1393[12:19:13] <Wuppy> parent*
L1394[12:19:23] <gigaherz> design-wise, yes
L1395[12:19:29] <gigaherz> also
L1396[12:19:33] <gigaherz> unity Start doesn't need to be public
L1397[12:19:36] <gigaherz> you could make it protected
L1398[12:19:50] <Wuppy> oh nice, will do
L1399[12:19:51] <madcrazydrumma> Anyone?
L1400[12:20:00] <gigaherz> unity has a weird reflection-based message-passing system
L1401[12:20:04] <gigaherz> madcrazydrumma: looking
L1402[12:20:09] <madcrazydrumma> ty
L1403[12:20:26] <gigaherz> what should it look like?
L1404[12:20:34] <madcrazydrumma> they should each fill each slot
L1405[12:20:37] ⇨ Joins: Vazkii (~Vazkii@a79-169-163-74.cpe.netcabo.pt)
L1406[12:20:59] <Wuppy> woop woop, finally refactored my Alien class into an Obstacle child \o/
L1407[12:21:06] <gigaherz> posY + 3 + (18 + 2 * i)
L1408[12:21:06] <madcrazydrumma> so far i only have 2 images, but one is in the second slot for some reason and the second one is lower but in the right slot
L1409[12:21:10] <Wuppy> now I can cleanly do stuff
L1410[12:21:12] <gigaherz> you only multiply the "2"
L1411[12:21:14] <madcrazydrumma> Yeah i figured that was the issue gigaherz
L1412[12:21:15] <gigaherz> shouldn't it be
L1413[12:21:15] <madcrazydrumma> oh..
L1414[12:21:17] <gigaherz> 18*i?
L1415[12:21:17] <gigaherz> ;P
L1416[12:21:18] <madcrazydrumma> yeah ^^
L1417[12:22:25] <madcrazydrumma> gigaherz, my crappy maths
L1418[12:22:26] <madcrazydrumma> cheers
L1419[12:22:40] ⇦ Quits: madcrazydrumma (~madcrazyd@host86-180-35-175.range86-180.btcentralplus.com) (Quit: Leaving)
L1420[12:22:58] <gigaherz> [19:14] (williewillus): idk how breaking the inheritance chain is useful other than telling you that your hierarchy is badly designed? :P
L1421[12:23:18] <gigaherz> most common situation for it: broken external thirdparty libraries
L1422[12:23:21] <Wuppy> man... when I refactor some code and the new code is so much cleaner, better designed or faster :)
L1423[12:23:25] <Wuppy> such a nice thing to do
L1424[12:23:39] <gigaherz> yeah
L1425[12:23:44] <gigaherz> specially when it's cleaner, better, AND faster
L1426[12:23:46] <gigaherz> all 3 at once
L1427[12:23:47] <gigaherz> ;P
L1428[12:23:54] <Wuppy> this is not faster
L1429[12:24:04] <gigaherz> no but it's nicest thing to do
L1430[12:24:05] <gigaherz> ;P
L1431[12:24:05] <Wuppy> but it's cleaner and better
L1432[12:24:21] <Wuppy> and one parent function call shouldnt add too much overhead
L1433[12:24:41] <Wuppy> if that's going to be the thing holding the game down then something's really wrong
L1434[12:25:23] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L1435[12:25:25] ⇦ Quits: Loetkolben (~Loetkolbe@ipbcc17c0a.dynamic.kabel-deutschland.de) (Quit: Over and Out!)
L1436[12:26:49] <Wuppy> there is one downside to refactoring things though, you spend a lot of time on something and you dont see a differnece in the game
L1437[12:27:21] <LexManos> fuck you all bitching about?
L1438[12:27:22] <PaleoCrafter> can also count that as a nice thing :P
L1439[12:27:28] ⇨ Joins: alex_6611 (~alex_6611@p54936B44.dip0.t-ipconnect.de)
L1440[12:27:41] <PaleoCrafter> for Mojang, refactoring has lead to various subtle differences in the game :P
L1441[12:28:26] <Wuppy> well that's odd... when I shoot an enemy, I take damage :P
L1442[12:29:07] <mikebald> Instant Karma?
L1443[12:29:24] <Wuppy> ah, I'm being stupid
L1444[12:30:38] <Wuppy> if you tell the player to take damage when an enemy dies, that will happen
L1445[12:31:28] ⇨ Joins: PieGuy128 (~PieGuy128@bas11-montreal02-1128535499.dsl.bell.ca)
L1446[12:34:00] ⇨ Joins: yopu (~yopu@184-89-171-53.res.bhn.net)
L1447[12:34:08] <williewillus> !mh renderAsNormalBlock
L1448[12:34:27] *** Keridos|away is now known as Keridos
L1449[12:34:53] <MattDahEpic> what would cause an itemstack's nbtcompound to not be saved?
L1450[12:35:34] <PaleoCrafter> hm, thinking about PRing an event that allows mods to disable rendering potions in the inventory, not sure how valuable that would be to others though xD
L1451[12:35:59] <fry> wasn't that PR'd already?
L1452[12:36:07] <PaleoCrafter> not sure
L1453[12:36:22] <PaleoCrafter> the potion itself can decide whether to render
L1454[12:36:42] <PaleoCrafter> but there's no way of controlling it for vanilla potions (apart from hackily overriding them, which I currently do xD)
L1455[12:37:47] <PaleoCrafter> alternatively, I could add some hook to enable night vision without the potion (my usecase)
L1456[12:39:16] ⇨ Joins: Delenas (Delenas@2601:987:401:9071:c0c3:e1a5:8ff0:b647)
L1457[12:39:25] <Delenas> o/
L1458[12:41:28] <Wuppy> o___0
L1459[12:41:38] <Wuppy> how does Unity know how to call the FixedUpdate method
L1460[12:41:51] <Wuppy> I made it a protected virtual bool instead of a void and it still manages to find it
L1461[12:42:06] <PaleoCrafter> it might be stupid and only look for the name xD
L1462[12:42:15] <Wuppy> at this point, I think it does
L1463[12:44:41] *** MrKick|Away is now known as MrKickkiller
L1464[12:45:17] <MattDahEpic> is there an easy way to get what slot an itemstack is in in an inventory?
L1465[12:45:59] <gigaherz> nope
L1466[12:46:04] <williewillus> not really
L1467[12:46:08] <williewillus> iterate the inventory and compare one by one
L1468[12:46:17] <gigaherz> but oyu can't distinguish which one it really was
L1469[12:46:20] <gigaherz> if there's two identical stacks
L1470[12:46:31] <gigaherz> unless it happens to be the same instance of ItemStack
L1471[12:46:35] <williewillus> well you can iterate by index\
L1472[12:46:36] <gigaherz> (which is not guaranteed at all)
L1473[12:46:45] <gigaherz> williewillus: what I mean is
L1474[12:46:50] <gigaherz> if you receive just the ItemStack
L1475[12:46:53] <gigaherz> you can't know.
L1476[12:47:21] <MattDahEpic> my use case is that as far as i can tell changing the ItemStack given in an Item.itemInteractionForEntity doesnt actually update the inventory stack
L1477[12:47:31] <williewillus> you have to resync it
L1478[12:47:38] <williewillus> i think
L1479[12:47:41] <MattDahEpic> by.....?
L1480[12:47:45] <williewillus> player.openContainer.detectAndSendChanges
L1481[12:48:55] ⇦ Quits: keybounce (~keybounce@45-25-230-67.lightspeed.bkfdca.sbcglobal.net) (Quit: Sleep? Did I say sleep?)
L1482[12:49:09] *** big_Xplosion is now known as big_Xplo|AFK
L1483[12:50:05] <MattDahEpic> williewillus, that doesnt seem to work?
L1484[12:50:13] <williewillus> no idea then
L1485[12:51:18] *** cpw|out is now known as cpw
L1486[12:52:44] <HassanS6000> fry, you around?
L1487[12:53:06] <williewillus> just ask, he'll get it
L1488[12:53:27] <MattDahEpic> https://dl.dropboxusercontent.com/u/146233520/ShareX/2016/02/2016-02-13_11-51-41.mp4
L1489[12:54:14] *** Keridos is now known as Keridos|away
L1490[12:55:09] ⇦ Quits: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com) (Read error: Connection reset by peer)
L1491[12:55:21] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Read error: Connection reset by peer)
L1492[12:55:40] ⇨ Joins: kimfy (~kimfy@9.12.34.95.customer.cdi.no)
L1493[12:55:44] <MattDahEpic> is there a max size of nbt tags?
L1494[12:55:57] <williewillus> as much as a java arraylist can hold
L1495[12:56:04] <williewillus> and or hashmap
L1496[12:56:13] <MattDahEpic> so id not be maxing it
L1497[12:56:22] <MattDahEpic> it just seems to not be saving
L1498[12:57:21] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L1499[12:58:01] ⇨ Joins: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com)
L1500[12:58:02] <HassanS6000> fry, could you point me in the right direction for the most efficient way of animating an OBJ (which could be converted to a B3D) which has multiple parts that move separately? I saw you added a new Model Animation System and am not sure if that's what I should use
L1501[12:58:23] <williewillus> obj doesnt support animation api yet
L1502[12:58:47] <PaleoCrafter> I like how Hassan has received this answer 3 times over yet :P
L1503[12:59:45] * Delenas can't figure out texturing on b3d stuff. @.@
L1504[13:00:33] <Wuppy> I'm surprisngly good at making a stone texture :o
L1505[13:00:43] <Wuppy> my art skills are below 0 but this looks really quite nice
L1506[13:00:48] <Wuppy> I dont understand :P
L1507[13:02:22] <PaleoCrafter> like, a stone tile or a rock? :P
L1508[13:02:38] <Wuppy> stone texture http://i.imgur.com/tBDvzLn.png
L1509[13:03:00] <PaleoCrafter> let me guess, noise filter and grunge brushes? :P
L1510[13:03:16] <HassanS6000> PaleoCrafter, williewillus even if it's an OBJ I need a way of animating it... I said I can convert it to B3D if that's a good approach :P
L1511[13:03:21] ⇦ Quits: Lildirt (~Lildirt@lildirt.com) (Ping timeout: 186 seconds)
L1512[13:03:21] <Wuppy> a bunch of brushes in GIMP and then a bunch of noise filters, yeah :P
L1513[13:03:35] ⇦ Quits: Temportalist (uid37180@2604:8300:100:200b:6667:3:0:913c) (Quit: Connection closed for inactivity)
L1514[13:05:57] ⇨ Joins: Lildirt (~Lildirt@lildirt.com)
L1515[13:06:19] <Delenas> Hassen: It's not a "good" approach. As of right now, it's the -only- approach to animating.
L1516[13:06:45] <Delenas> Unless you feel like manually doing openGL stuff yourself every frame.
L1517[13:07:02] *** Keridos|away is now known as Keridos
L1518[13:09:33] <MattDahEpic> !gm setCurrentItem 1.8.9
L1519[13:10:09] <MattDahEpic> whats the fourth peram here?
L1520[13:10:40] <williewillus> !gm setCurrentItem
L1521[13:10:47] <williewillus> oh that's not what you want definitely
L1522[13:10:54] <williewillus> that sets the stack that the cursor holds when in a gui
L1523[13:10:58] <MattDahEpic> oh
L1524[13:25:16] *** V is now known as Vigaro
L1525[13:27:47] *** Keridos is now known as Keridos|away
L1526[13:30:38] *** Keridos|away is now known as Keridos
L1527[13:32:45] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L1528[13:42:24] *** Keridos is now known as Keridos|away
L1529[13:58:34] <Nitrodev> oh hi willie
L1530[13:59:39] <Nitrodev> williewillus, i have a question about the blockstates
L1531[13:59:46] <Nitrodev> in botania that is
L1532[13:59:47] <williewillus> yes
L1533[13:59:54] <Nitrodev> https://github.com/williewillus/Botania/blob/MC18/src/main/java/vazkii/botania/common/block/BlockStorage.java#L58
L1534[14:00:07] <Nitrodev> when i try to put that in it doesn't seem to work
L1535[14:00:14] <williewillus> define "doesn't work"
L1536[14:00:54] <Nitrodev> the IDE can't find the .values of the enum
L1537[14:01:25] <williewillus> values() it's a method
L1538[14:01:38] <Nitrodev> never mind
L1539[14:01:41] <Nitrodev> i found it
L1540[14:01:44] <williewillus> :P
L1541[14:02:00] <Nitrodev> i was putting in the variable
L1542[14:02:11] <unascribed> is there an easy way to get the manifests of all installed mods?
L1543[14:02:14] <unascribed> i.e. MANIFEST.MF
L1544[14:02:35] ⇦ Quits: psxlover (psxlover@athedsl-385531.home.otenet.gr) (Read error: Connection reset by peer)
L1545[14:03:15] <williewillus> unascribed: this maybe? http://stackoverflow.com/a/1273196
L1546[14:03:48] <diesieben07> !gm func_77191_a 1.7.10
L1547[14:06:11] ⇦ Quits: Katrix (~Katrix@2a02:fe0:cb10:2650:3dee:7372:aa77:73b) (Ping timeout: 189 seconds)
L1548[14:06:30] ⇨ Joins: Katrix (~Katrix@2a02:fe0:cb10:2650:4154:d4ce:8caf:5ecd)
L1549[14:06:41] <unascribed> I guess I could try making JarFiles from ModContainer::getSource?
L1550[14:06:50] <unascribed> that seems to be how FML does it
L1551[14:07:16] <unascribed> the stackoverflow answer would be helpful if there was one classloader per mod
L1552[14:07:20] <unascribed> but it looks like they all share the ModClassLoader
L1553[14:07:40] <Wuppy> hmm, a perfect saturday night, at home, alone programming :P
L1554[14:07:42] <williewillus> you can still iterate through all of them
L1555[14:07:56] <unascribed> sure, but that doesn't tell me which mod owns it
L1556[14:08:01] <unascribed> actually, I don't need to know which mod owns it
L1557[14:08:04] <unascribed> so nevermind
L1558[14:08:38] <PaleoCrafter> williewillus, did you see my excel screenshot, btw? :P
L1559[14:08:44] <williewillus> yeah, thanks
L1560[14:09:05] <williewillus> new problem is that the cube's bobbing is off from the item and text's bobbing :P
L1561[14:09:10] <PaleoCrafter> haha
L1562[14:10:19] *** DonAway is now known as DRedhorse
L1563[14:12:01] ⇨ Joins: psxlover (psxlover@athedsl-385531.home.otenet.gr)
L1564[14:15:57] <PaleoCrafter> what did you have to do again to have an @Mod mod together with a coremod?
L1565[14:17:24] <PaleoCrafter> nvm, found it
L1566[14:19:59] <shadekiller666> modmuss50, what exactly are you doing to break things that bad? https://www.youtube.com/watch?v=A3VctDUmmwQ
L1567[14:20:46] <PaleoCrafter> well, firs tof all, he's using Kotlin I think
L1568[14:22:11] <williewillus> lolwat
L1569[14:22:25] <modmuss50> I set the scale of the default item transformation or what ever its called
L1570[14:22:37] <shadekiller666> why?
L1571[14:22:50] <modmuss50> I don't know :p I fixed it anyway
L1572[14:26:40] <Zaggy1024> gah, my item model rendering is offset after 1.8.9 and I don't know why :\
L1573[14:26:54] <williewillus> what kind of model?
L1574[14:26:57] <Zaggy1024> seems to be offset by 1 along Z
L1575[14:27:00] <Zaggy1024> any item model
L1576[14:27:06] <Zaggy1024> not any particular one
L1577[14:27:10] <Zaggy1024> including blocks
L1578[14:27:11] ⇨ Joins: laci200270 (~laci20027@78.92.233.195)
L1579[14:27:19] <Zaggy1024> rendering with FIXED transforms
L1580[14:28:05] ⇦ Quits: laci200270 (~laci20027@78.92.233.195) (Client Quit)
L1581[14:28:11] ⇦ Quits: MikrySoft|2 (~MikrySoft@89-76-18-43.dynamic.chello.pl) (Ping timeout: 189 seconds)
L1582[14:28:13] <Zaggy1024> http://i.imgur.com/G1qqD9i.png
L1583[14:28:25] <Zaggy1024> (the scale along Z is (or should be) unrelated
L1584[14:28:29] ⇨ Joins: laci200270 (~laci20027@78.92.233.195)
L1585[14:30:37] <Zaggy1024> worked perfectly in 1.8.0 to have the stick go through the item
L1586[14:30:45] <Zaggy1024> I'm not sure what changed or why
L1587[14:32:48] *** minecreatr is now known as Mine|away
L1588[14:33:58] <williewillus> iirc the fixed transform wasn't being applied in 1.8.0
L1589[14:34:08] <Lordmau5> why is minecraft so broken
L1590[14:34:11] <Lordmau5> or java, or whatever
L1591[14:34:13] <williewillus> isnt ground more suitable in this case
L1592[14:34:38] <williewillus> Lordmau5: java isn't :P for the most part
L1593[14:34:53] <Lordmau5> my valves (Tileentities) implement a custom interface, IFacingTile
L1594[14:35:13] <Lordmau5> however, when I'm getting the tile at the specific position and check if that tile is instanceof IFacingTile
L1595[14:35:15] <Lordmau5> it's not?
L1596[14:35:55] <williewillus> thats you probably :P if inheritance was broken we'd have much bigger problems ;)
L1597[14:36:13] <Lordmau5> the tile is implementing an abstract class, which has that interface
L1598[14:36:17] <Lordmau5> though, I doubt that's an issue
L1599[14:36:28] <Zaggy1024> willie, I figured fixed would be best since I'm rendering it in a way similar to the item frame
L1600[14:36:30] <williewillus> print out the class of the TE and see what it is
L1601[14:36:32] <Zaggy1024> which is where fixed is used, isn't it?
L1602[14:36:36] <williewillus> yeah
L1603[14:37:40] ⇦ Quits: psxlover (psxlover@athedsl-385531.home.otenet.gr) (Read error: Connection reset by peer)
L1604[14:39:29] <Lordmau5> wow
L1605[14:39:50] <Lordmau5> *facepalm*
L1606[14:39:57] <williewillus> what lol
L1607[14:40:09] <Lordmau5> it didn't even get to the tile entity check lmao
L1608[14:40:11] <Lordmau5> xD
L1609[14:42:59] ⇨ Joins: psxlover (psxlover@athedsl-385531.home.otenet.gr)
L1610[14:43:49] <PaleoCrafter> so, guys, ideas on what a "spell" that slows down time could do in MC? xD
L1611[14:43:55] <PaleoCrafter> apart from slowing down the actual tick rate
L1612[14:44:21] ⇨ Joins: Naiten (Naiten@77.34.181.35)
L1613[14:44:23] <williewillus> slowness effect on entities, slow daylight cycle
L1614[14:45:04] <LatvianModder> PaleoCrafter: just the daylight?
L1615[14:45:40] <Zaggy1024> wonder if it would be possible to do an area of effect
L1616[14:45:49] <PaleoCrafter> that'd be cool, I guess, but I should have added that I want that ^
L1617[14:45:50] <PaleoCrafter> xD
L1618[14:45:54] <Zaggy1024> slow down all entities in a radius except the player casting it or something
L1619[14:46:01] <PaleoCrafter> that's easy :P
L1620[14:46:01] <Zaggy1024> with falloff of course
L1621[14:46:03] <LatvianModder> you cant really.. slow down things
L1622[14:46:12] <LatvianModder> you know.. you can't un-update entity
L1623[14:46:18] <Zaggy1024> indeed
L1624[14:46:22] <LatvianModder> you can run update multiple times to speed them up though
L1625[14:46:27] <Zaggy1024> well, there are probably very hacky ways
L1626[14:46:36] <Zaggy1024> and then...ASM, but I'm not going to say any more about that :P
L1627[14:46:38] <PaleoCrafter> yeah, that's my central problem ^^
L1628[14:46:41] <Zaggy1024> plus ASM is equally hacky
L1629[14:46:52] <LatvianModder> Yeah, dont use ASM. Ever.
L1630[14:47:06] <PaleoCrafter> speeding up things is easy
L1631[14:47:55] <Zaggy1024> speeding things up smoothly?
L1632[14:47:58] <PaleoCrafter> I do in fact allow that as well and now need the orthogonal ability
L1633[14:48:07] <williewillus> speeding things up is easy can confirm
L1634[14:48:14] <williewillus> you just call their tick method again and again
L1635[14:48:14] <Zaggy1024> I mean, anything less than 2x speed would look odd, wouldn't it?
L1636[14:48:28] <Zaggy1024> also, how does interpolation get handled?
L1637[14:48:52] <PaleoCrafter> williewillus, does Botania speed things up somewhere? :P
L1638[14:49:02] <williewillus> no, PE gives TE's extra ticks
L1639[14:49:15] <williewillus> its not botania for once lol
L1640[14:49:21] <PaleoCrafter> haha
L1641[14:49:32] <PaleoCrafter> I forget that you work(ed) on other things as well :P
L1642[14:58:57] ⇦ Quits: useless2764 (useless@meerkat.danmackay.com) (Ping timeout: 186 seconds)
L1643[14:59:27] <Zaggy1024> fry, it seems that this catch is reached a lot for item models that aren't defined in a blockstates json... http://i.imgur.com/Rbe3l08.png
L1644[15:00:02] <Zaggy1024> it gets called through this trace: http://i.imgur.com/Jn21XoJ.png
L1645[15:00:16] <fry> and?
L1646[15:00:35] <Zaggy1024> isn't it quite slow to throw and catch an exception?
L1647[15:00:57] <williewillus> that isnt calledf all the time though
L1648[15:01:00] <williewillus> only on resource reload
L1649[15:01:01] <fry> define "a lot"
L1650[15:01:52] <Zaggy1024> what I meant was every time getModel is called it goes to that if the model isn't in a block model definition
L1651[15:02:24] <Zaggy1024> is getModel not supposed to ever be called outside loading?
L1652[15:02:56] <diesieben07> no, but loading a model is not exactly a fast process
L1653[15:03:04] <diesieben07> so one catched exception: meh
L1654[15:03:31] <Zaggy1024> there are a lot of models that are loaded, and that method may be called multiple times per model, I'm not sure
L1655[15:03:38] <gigaherz> hmf
L1656[15:03:46] <fry> getModel does caching
L1657[15:03:53] <diesieben07> is it a performance problem? :D
L1658[15:03:59] <diesieben07> if not: go away
L1659[15:04:00] <diesieben07> :P
L1660[15:04:03] <williewillus> lol
L1661[15:04:05] <fry> ^
L1662[15:04:13] <gigaherz> anyone knows what could cause this?
L1663[15:04:14] <gigaherz> https://dl.dropboxusercontent.com/u/743491/2016-02-13_22.03.42.png
L1664[15:04:28] <gigaherz> the triangle is NOT outside the bounds
L1665[15:05:04] <fry> what's the model? obj?
L1666[15:05:07] <gigaherz> yep
L1667[15:05:18] <Zaggy1024> I was worried that it was a problem
L1668[15:05:40] <diesieben07> don't worry, measure :D
L1669[15:06:00] <fry> everything can be a problem, if you define it to be
L1670[15:06:06] ⇨ Joins: keybounce (~keybounce@adsl-108-192-88-240.dsl.bkfd14.sbcglobal.net)
L1671[15:06:26] <fry> gigaherz: is it always white? no matter what?
L1672[15:06:29] <williewillus> whoah ;p
L1673[15:06:35] <gigaherz> there's one specific facing
L1674[15:06:39] <gigaherz> in which some of them are not white
L1675[15:06:55] <Zaggy1024> still, I feel that given the fact that resources are loaded *twice* when the game is starting up, and the number of mods some people install, it would be nice to cut down any wasted time in laoding
L1676[15:07:03] <Zaggy1024> not that the catch is a big problem
L1677[15:07:05] <gigaherz> oh and they are fine when it's placed on the ground
L1678[15:07:11] <unascribed> I thought the double loading was fixed?
L1679[15:07:13] <fry> profile, zaggy
L1680[15:07:15] <williewillus> file IO is probbaly slwoer than the catch :P
L1681[15:07:29] <williewillus> *probably slower
L1682[15:07:33] <gigaherz> "down" -> all fine, "west" -> partial, any other facing -> white triangles
L1683[15:07:44] <fry> partial?
L1684[15:07:50] <Zaggy1024> file IO is done before any loading can continue, so that just adds up, willie :P
L1685[15:07:53] <gigaherz> two of the things have the white triangle
L1686[15:07:55] <gigaherz> two don't
L1687[15:07:56] <diesieben07> Zaggy1024, ok, here is the deal. the method is thrown from getVariants. which is a very small method, so most likely inlined
L1688[15:08:08] <diesieben07> so, most likely, the JVM compiles the try-catch into a simple GOTO
L1689[15:08:24] <diesieben07> but, if you want data, measure:D
L1690[15:08:36] <gigaherz> https://dl.dropboxusercontent.com/u/743491/2016-02-13_22.08.20.png -- west
L1691[15:08:44] <diesieben07> by that i mean the throw + catch becomes a goto
L1692[15:09:00] <gigaherz> https://dl.dropboxusercontent.com/u/743491/2016-02-13_22.08.41.png -- down
L1693[15:09:20] <diesieben07> god i can't speak, the *exception* is thrown
L1694[15:09:35] <gigaherz> the only thing different between those faces
L1695[15:09:37] <gigaherz> and the rest of the model
L1696[15:09:46] <gigaherz> is that those faces are exactly aligned on an axis plane
L1697[15:09:58] <gigaherz> but the rest are all in random directions
L1698[15:09:59] ⇦ Quits: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl) (Ping timeout: 198 seconds)
L1699[15:10:00] <Zaggy1024> I didn't realize that the compiler had any way to make simple try catches faster
L1700[15:10:22] <gigaherz> the model is "closed" and has all the normals right, so far as I can tell
L1701[15:10:28] <fry> something fucky is going on with the normal
L1702[15:10:49] <diesieben07> Zaggy1024, the (jvm!) compiler is very fucking smart, probably smarter than you most of the time :D
L1703[15:10:52] <fry> either with the model normal, or somewhere along the way during calculations
L1704[15:10:55] <diesieben07> not you speicifcally that is
L1705[15:11:56] <gigaherz> fry: I rotated a tiny bit the model, and the model now works
L1706[15:12:05] <gigaherz> so my guess is there's some issue with axis-aligned triangles
L1707[15:12:27] <gigaherz> (maybe specifically triangles)
L1708[15:12:48] <gigaherz> ... maybe the normal is calculated from the 4th vertex that gets added to triangles to make them quads?
L1709[15:12:54] <gigaherz> thne the normal would come out as 0
L1710[15:13:06] <gigaherz> that would explain the issue
L1711[15:13:34] <Zaggy1024> unascribed, according to the loading screen, no, it's still loading models twice
L1712[15:13:54] <williewillus> the double reload still happens
L1713[15:14:01] <williewillus> its the texture stitching that is skipped first time around
L1714[15:14:06] <williewillus> since the atlas that results is just discarded
L1715[15:14:19] <Zaggy1024> what does it need the first time that it can't load everything all at once?
L1716[15:14:22] <Zaggy1024> I've never understood it
L1717[15:14:23] <williewillus> idk
L1718[15:15:03] <diesieben07> afaik the issue is that people are doing stupid things and accessing resources in preInit
L1719[15:15:13] <williewillus> wait that's necessary
L1720[15:15:14] <williewillus> for models
L1721[15:15:29] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 189 seconds)
L1722[15:15:37] <fry> no, it's not
L1723[15:15:39] <MattDahEpic> so... should resources be set up in preinit or init?
L1724[15:15:42] <fry> accessing isn't neccesary
L1725[15:15:53] <fry> registering locations is
L1726[15:17:56] ⇨ Joins: useless2764 (useless@meerkat.danmackay.com)
L1727[15:18:28] <Zaggy1024> in a release environment, does getAllResources still find a whole bunch of duplicate resources for each file?
L1728[15:18:48] <Zaggy1024> because in my dev environment getting a blockstates json for my mod results in *20* IResources 0.o
L1729[15:19:21] <Zaggy1024> and since it has to combine all those resources into the final models it reads each and every one of them (AFAIK)
L1730[15:28:00] <Delenas> fry: Been looking at the b3d stuff. Wanted to ask, is there a doc for it somewhere? Can't seem to find a reliable one. Specifically on UVs and textures.
L1731[15:28:12] <fry> not really
L1732[15:28:45] <fry> you need to set the main texture for the material in blender for it to export correctly, or smth like that
L1733[15:30:09] <Delenas> So.. two meshes, one base and one a "gem" floating above it. Have two files being called, base and gem. Would I match filepaths, or..
L1734[15:31:55] <fry> you can remap the texture locations, from model filepaths to the resource locations
L1735[15:32:17] <fry> you should get the missing texture error with the name you need to remap from, when you try to load
L1736[15:33:07] <Delenas> In blockstate json then.. under defaults/textures.. okay. Think I follow.
L1737[15:33:19] ⇦ Quits: Nitrodev (~Nitrodev@dcx0f0yf8z6s510gr9c1t-3.rev.dnainternet.fi) (Read error: Connection reset by peer)
L1738[15:33:22] <fry> yup, something like that
L1739[15:33:38] <Delenas> Need to figure out how to show all the model junk though, buildcraft and chisels+bits is adding a ton of garbage in.
L1740[15:33:52] <Delenas> (Doing rf stuffs is fun, whee)
L1741[15:34:13] <Delenas> For those interested: http://imgur.com/98aOBFm
L1742[15:34:45] <Delenas> I may make the gem fancier. Eh.
L1743[15:34:46] ⇦ Quits: keybounce (~keybounce@adsl-108-192-88-240.dsl.bkfd14.sbcglobal.net) (Quit: Sleep? Did I say sleep?)
L1744[15:34:58] <Delenas> Proof of concepts first.
L1745[15:36:24] <Delenas> Speaking of which.. is there a way to force Minecraft to stop nagging about models, if you're doing dynamic stuff?
L1746[15:36:39] <Delenas> In the logs, I mean.
L1747[15:38:21] <Zaggy1024> define "doing dynamic stuff"
L1748[15:38:46] <Zaggy1024> and by "nagging" do you mean telling you that a block doesn't have a model?
L1749[15:39:01] <Delenas> Yes, and things like facades, covers, etc.
L1750[15:40:48] ⇦ Quits: alex_6611 (~alex_6611@p54936B44.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L1751[15:43:32] <Delenas> Getting a lot of "[13:48:22] [Client thread/ERROR]: unresolved texture '#' for b3d model 'tauradditions:models/block/mod/battery.b3d'"
L1752[15:43:58] <Zaggy1024> oh
L1753[15:44:12] <Zaggy1024> hmm. could you put in a placeholder texture?
L1754[15:45:43] <Delenas> Lemme see.
L1755[15:45:51] <Delenas> Just updated forge too, that maaay help.
L1756[15:46:04] <Zaggy1024> probably not, I should think
L1757[15:46:07] ⇦ Quits: Celtic (~Celtic@203.152.196.48.static.zoot.jp) (Quit: Leaving)
L1758[15:47:52] <Delenas> ...got it three times in the log.
L1759[15:49:05] <Delenas> https://bitbucket.org/ostenvighx/centaur-additions/src/a6ba8deb26e53a84cb17a40584fd84d5b842b151/src/main/resources/assets/tauradditions/blockstates/node.energy.json?at=master&fileviewer=file-view-default ?
L1760[15:56:14] <Delenas> At this point it's all placeholders, no actual texture. UV mapped, sure, but. IS there another step beyond using the exporter and plopping the .b3d file in?
L1761[16:00:08] <PaleoCrafter> hm, gigaherz, you around?
L1762[16:00:18] <gigaherz> yeh
L1763[16:01:06] <PaleoCrafter> may I PM you? :D
L1764[16:01:17] <gigaherz> sure
L1765[16:03:47] <UnasAquila> are all spawns in the world classed as being onSpawnWithEgg?
L1766[16:04:19] <williewillus> no
L1767[16:04:26] <diesieben07> UnasAquila, that method is named stupidly, it's onInitialSpawn now
L1768[16:04:41] <UnasAquila> ah that makes sence thankyou
L1769[16:04:43] <williewillus> welp nvm :P
L1770[16:04:51] <UnasAquila> sense*
L1771[16:05:06] <williewillus> hey i just noticed that spawner spawned mobs in 1.8 emit their smoke particles again
L1772[16:05:33] ⇦ Quits: turmfalke_ (~turmfalke@p54A686EB.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L1773[16:05:43] ⇨ Joins: Hea3veN (~Hea3veN@190.247.248.80)
L1774[16:13:35] *** Mine|away is now known as minecreatr
L1775[16:13:49] ⇨ Joins: KanoCodex (~Giratina5@2604:180:0:368::bcd8)
L1776[16:16:36] ⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Quit: Leaving.)
L1777[16:16:51] ⇨ Joins: AbsentThirdEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L1778[16:21:09] *** tterrag|ZZZzzz is now known as tterrag
L1779[16:26:13] ⇨ Joins: Something12 (~Something@184.65.42.207)
L1780[16:26:14] *** fry is now known as fry|sleep
L1781[16:26:52] *** amadornes[Streaming] is now known as amadornes
L1782[16:35:34] ⇨ Joins: Celtic (~Celtic@203.152.196.48.static.zoot.jp)
L1783[16:36:16] <Celtic> Does anyone know anything about the way Minecraft displays player names?
L1784[16:36:50] ⇨ Joins: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L1785[16:37:15] <Celtic> And I suppose more specifically, I'm curious how possible it would be to somehow create a block that hides player names.
L1786[16:38:35] <tterrag> Celtic: that wouldn't be possible with purely a block
L1787[16:38:41] <tterrag> it may be possible with TESR blending magicv
L1788[16:38:44] <tterrag> I'd ask fry about that :P
L1789[16:38:56] <williewillus> isnt there an event for that
L1790[16:39:02] <williewillus> render nametags that is
L1791[16:39:09] <tterrag> maybe
L1792[16:39:18] <tterrag> but I was assuming he wanted to hide nameplates when they are behind the block
L1793[16:39:29] <tterrag> which is not possible
L1794[16:39:38] ⇦ Quits: AbsentThirdEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 189 seconds)
L1795[16:40:47] ⇨ Joins: Delaxarnyazer (~Delaxarny@ip56572345.direct-adsl.nl)
L1796[16:40:48] <Celtic> That was what I was asking tterrag, yeah.
L1797[16:41:05] <tterrag> nameplates are just rendered using a blending mode and depth test disabled
L1798[16:44:05] <Celtic> Hmm... what about a... like... "multi-block" structure of sorts.
L1799[16:44:34] <Celtic> That checks if the player is inside it and then starts the NamePlate removal event on them somehow or something?
L1800[16:44:55] <diesieben07> there is no such event D
L1801[16:45:15] <Celtic> I mean, I know it's possible to remove NamePlates.
L1802[16:45:31] <Celtic> That's been possible for a long time.
L1803[16:46:39] <diesieben07> there is PlayerEvent.NameFormat, yes
L1804[16:46:49] <diesieben07> but that physically changes the player name *everywhere* that it's shown
L1805[16:48:13] <Celtic> So how does something like this work? http://minecraft.curseforge.com/projects/hide-names
L1806[16:48:26] ⇦ Quits: Lildirt (~Lildirt@lildirt.com) (Ping timeout: 189 seconds)
L1807[16:48:29] <williewillus> hax probably
L1808[16:48:31] <Celtic> Sorry, I'm just trying to get a handle on this.
L1809[16:48:49] ⇨ Joins: keybounce (~keybounce@45-25-230-67.lightspeed.bkfdca.sbcglobal.net)
L1810[16:50:22] <diesieben07> ah the event is back
L1811[16:50:28] <diesieben07> RenderLivingEvent.Specials.Pre
L1812[16:50:34] <diesieben07> it was gone in 1.8 at first
L1813[16:50:47] <diesieben07> that is what they use
L1814[16:51:02] <williewillus> i thought specials was still out in favor of layerrenderers
L1815[16:51:34] <Celtic> Oh, this is 1.7.10. Apologies.
L1816[16:51:39] <diesieben07> why?
L1817[16:52:25] <Celtic> Cause I'm a goof and wasn't paying attention. :P
L1818[16:52:55] <diesieben07> no, why are you using 1.7
L1819[16:53:55] <Celtic> Because I'm only just getting into the modding scene, and it seems like the most well documented and supported setup currently.
L1820[16:54:04] <Celtic> I'm not against 1.8.xx, but
L1821[16:54:28] <Celtic> There's just a lot more out there to work with it seems like for 1.7.10 currently.
L1822[16:54:32] <diesieben07> if you are just getting into modding, please dont start with 1.7.10...
L1823[16:54:34] <williewillus> ^
L1824[16:54:35] <williewillus> pls
L1825[16:54:49] <diesieben07> 1.7.10 is 2 years old.
L1826[16:54:51] <williewillus> the only "hard part" is models, everything else is the same thing
L1827[16:55:47] <Celtic> Don't get me wrong. I have no problem with starting off on 1.8.xx stuff, but my curiousity is why you're both against it?
L1828[16:55:51] <Celtic> Just because of the age?
L1829[16:56:16] ⇨ Joins: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net)
L1830[16:56:23] <williewillus> there's more reasons but essentially yes
L1831[16:56:32] <Celtic> That's fair.
L1832[16:57:00] ⇨ Joins: EyeOfKoishi (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L1833[16:57:11] <Celtic> I just wanted to *possibly* produce something, if I'm not complete crap at it. And it just seemed like 1.7.10 was where most of the player base was still at currently.
L1834[16:57:39] <diesieben07> yes, and by making your mod for 1.7 as well you are part of the people not moving on :D
L1835[16:58:00] <williewillus> by the time you get a polished product out the playerbase will probably have moved :P
L1836[16:58:00] <Celtic> I guess that's the difference for me, is I'm not particularly for or against moving on.
L1837[16:58:17] <Celtic> But literally I just started looking into this like two days ago.
L1838[16:58:28] <Celtic> I'm all ears to opinions.
L1839[16:58:41] <williewillus> all the more reason to learn the new stuff instead of learning something that will be obsolete within months if not weeks
L1840[16:59:06] <Celtic> Might I inquire as to why it'll be obsolete?
L1841[16:59:40] <williewillus> the darned version is 2+ years old like diesieben07 said, and modders are moving toward 1.8 finally
L1842[16:59:46] <williewillus> which means players are gonna follow
L1843[16:59:46] ⇦ Quits: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 198 seconds)
L1844[17:00:01] <Celtic> Ah. Sorry, you seemed fairly certain that the shift was coming soon.
L1845[17:00:10] <Celtic> I thought you were waiting for a specific event to occur.
L1846[17:00:19] <Celtic> My bad.
L1847[17:00:21] <williewillus> nah just an abstract movement :P
L1848[17:00:58] <Celtic> Yeah I suppose. I don't know. I know 1.8.9 supposedly has better performance and what not.
L1849[17:01:07] <Celtic> But I keep hearing a lot of things about it I'm not super fond of either I guess.
L1850[17:01:12] <Celtic> So I'm kind of on the fence.
L1851[17:01:16] ⇦ Quits: EyeOfKoishi (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Client Quit)
L1852[17:01:22] <williewillus> what bad things do you hear about it? :P
L1853[17:01:25] <Celtic> But I do hear your point about the whole "not learning old stuff first" thing.
L1854[17:01:26] <williewillus> inb4 json myth
L1855[17:02:08] <diesieben07> you can write write every 1.8 mod without writing a single line of json if you REALLY want to :D
L1856[17:02:33] <williewillus> well if your mod has no blocks or items :P
L1857[17:03:06] <diesieben07> you can write models in code if you really want to D
L1858[17:03:16] <williewillus> bleh
L1859[17:03:17] <williewillus> ;p
L1860[17:03:32] <diesieben07> just saying :D
L1861[17:03:41] <Celtic> Well, I'll step back. As I mentioned, I just tossed my hat into the ring a day or two ago.
L1862[17:04:23] <Celtic> I'm one of those people that isn't super interested in rushing into the future though, just because something is newer.
L1863[17:04:31] <Celtic> So I guess that's where most of my hesitation comes from.
L1864[17:04:38] <williewillus> its not even the future
L1865[17:04:44] <williewillus> 1.8 has been out for over a year
L1866[17:04:45] <Celtic> Maybe not for Vanilla.
L1867[17:05:19] <Celtic> As far as I can tell, in the modding community, 1.8 is still pretty new territory.
L1868[17:06:29] <Celtic> But y'all have convinced me to at least consider it more. Before I had pretty much determined to just do 1.7.10 stuff.
L1869[17:06:38] <williewillus> hehe
L1870[17:06:40] <williewillus> good ;p
L1871[17:08:08] <Celtic> Do you guys get most of your information from this channel, personal experience, or do you have some websites you would recommend frequenting to "stay up to date"?
L1872[17:08:29] ⇦ Quits: Delaxarnyazer (~Delaxarny@ip56572345.direct-adsl.nl) (Remote host closed the connection)
L1873[17:08:29] <williewillus> the first two
L1874[17:08:43] ⇨ Joins: Delaxarnyazer (~Delaxarny@2a02:a44e:91ce:0:3df5:891a:44af:a42a)
L1875[17:09:18] ⇦ Quits: Delaxarnyazer (~Delaxarny@2a02:a44e:91ce:0:3df5:891a:44af:a42a) (Read error: Connection reset by peer)
L1876[17:19:26] ⇨ Joins: Lildirt (~Lildirt@lildirt.com)
L1877[17:22:49] ⇦ Quits: Jezza (~Jezza@185.44.151.6) (Quit: Leaving)
L1878[17:32:15] *** amadornes is now known as amadornes[OFF]
L1879[17:39:51] *** kroeser is now known as kroeser|away
L1880[17:41:49] <gigaherz> Celtic: http://mcforge.readthedocs.org/en/latest/
L1881[17:41:59] <gigaherz> it's not really the place to stay up to date
L1882[17:42:00] <gigaherz> but
L1883[17:42:19] <gigaherz> although incomplete, it's worth taking a look at it
L1884[17:44:49] <gigaherz> hmmm
L1885[17:45:11] <gigaherz> I wonder what the odds are for a ranodmly chosen block to be an air block right next to a solid block
L1886[17:45:32] <diesieben07> depends on the world i guess
L1887[17:45:48] <gigaherz> true
L1888[17:45:51] <gigaherz> I'll just search for a valid place
L1889[17:46:06] <diesieben07> in a normal world, disregarding caves, air blocks are 190 high roughly
L1890[17:46:19] <diesieben07> and one layer of those has ground contact
L1891[17:46:27] <gigaherz> yeah
L1892[17:46:28] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Quit: Leaving)
L1893[17:46:33] <diesieben07> so ... 1/255 per column of blocks
L1894[17:46:55] <gigaherz> but that'd be way more in amplified :/
L1895[17:46:56] <diesieben07> then a bit higher because caves
L1896[17:47:09] *** K-4U is now known as K-4U|Off
L1897[17:47:22] <gigaherz> I'll use a random
L1898[17:47:29] <gigaherz> then search for a valid place
L1899[17:47:48] <gigaherz> I'll generate 0..2 per chunk
L1900[17:47:50] *** DarkevilAway is now known as Darkevilmac
L1901[17:48:33] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Ping timeout: 186 seconds)
L1902[17:50:09] ⇦ Quits: NeonPhoenix (~NeonPhoen@c110-23-26-218.rochd7.qld.optusnet.com.au) (Ping timeout: 186 seconds)
L1903[17:51:03] ⇨ Joins: NeonPhoenix (~NeonPhoen@c110-23-26-218.rochd7.qld.optusnet.com.au)
L1904[18:04:12] ⇨ Joins: Delaxarnyazer (~Delaxarny@2a02:a44e:91ce:0:3df5:891a:44af:a42a)
L1905[18:04:53] ⇦ Quits: kimfy (~kimfy@9.12.34.95.customer.cdi.no) (Ping timeout: 189 seconds)
L1906[18:06:08] <williewillus> anyone good at combinatorics/stat >>
L1907[18:07:40] ⇦ Quits: laci200270 (~laci20027@78.92.233.195) (Read error: Connection reset by peer)
L1908[18:07:42] <gigaherz> slightly?
L1909[18:07:44] <gigaherz> XD
L1910[18:08:06] <gigaherz> why don't you explain the "problem" and we can all think about it? ;P
L1911[18:08:51] <williewillus> https://i.gyazo.com/96aa3e5d3d19b3c92013dec7be3fd65d.png this looks really easy but ive been staring for a while now
L1912[18:09:19] <gigaherz> ah
L1913[18:13:02] ⇦ Quits: PieGuy128 (~PieGuy128@bas11-montreal02-1128535499.dsl.bell.ca) (Remote host closed the connection)
L1914[18:13:48] <gigaherz> gah that sounds easy
L1915[18:13:51] <gigaherz> I just can't remember the concept
L1916[18:13:52] <gigaherz> XD
L1917[18:14:57] ⇦ Quits: NeonPhoenix (~NeonPhoen@c110-23-26-218.rochd7.qld.optusnet.com.au) (Ping timeout: 186 seconds)
L1918[18:15:35] <williewillus> or this one (the answers are printed right there but idk the reasoning behind some of them) https://i.gyazo.com/b4a678be82a9e5089db10fcc5287c611.png
L1919[18:15:37] <tterrag> gigaherz: so there's a small problemwith the ctm stuff
L1920[18:15:38] ⇦ Quits: xanderio (~xanderio@p5B21F678.dip0.t-ipconnect.de) (Remote host closed the connection)
L1921[18:15:44] <tterrag> I need to "un" rotate the faces
L1922[18:15:45] <diesieben07> the possibility to pick a "good one" in the first pick is 6/10. 2nd pick: 5/9. 3rd: 4/8
L1923[18:15:48] <gigaherz> I mean, the choice is just be a combination of 3 out of 10, where each element has probability 0.6
L1924[18:16:02] <diesieben07> so possibility to pick 3 "good ones" is 6/10 * 5/9 * 4/9
L1925[18:16:04] <tterrag> before I do anything with them
L1926[18:16:06] <diesieben07> 4/8
L1927[18:16:07] <gigaherz> but I can't go from there to "probability of choosing 2 good"
L1928[18:16:23] <williewillus> i think what diesieben07 said makes sense, just thuoght of that actually :P going with that
L1929[18:16:50] <diesieben07> but i think you need to times that by something
L1930[18:17:04] <diesieben07> because that is the probability for ONE of the possibilities to pick
L1931[18:17:05] <diesieben07> right?
L1932[18:17:09] <diesieben07> i suck at this :D
L1933[18:17:43] <diesieben07> acutally nope, this is just like the lottery
L1934[18:22:08] <gigaherz> tterrag: is the plan to make "rotated" textures still connect?
L1935[18:22:17] <gigaherz> (with unrotated ones)
L1936[18:22:20] ⇦ Quits: Naiten (Naiten@77.34.181.35) (Read error: Connection reset by peer)
L1937[18:22:22] <tterrag> yeah, they need to, because for instance the stair model is just rotated
L1938[18:22:34] <tterrag> it doesn't make much sense to support rotated UVs
L1939[18:22:46] <gigaherz> yeah then you'll needto un-rotate
L1940[18:22:49] <gigaherz> or more accurately
L1941[18:22:54] <gigaherz> just make sure everything is oriented thesame way
L1942[18:23:25] <gigaherz> although
L1943[18:23:29] <gigaherz> this is for connected textures
L1944[18:23:38] <gigaherz> so you could just ignore the original UV coords
L1945[18:23:55] <tterrag> ehh maybe
L1946[18:23:57] <gigaherz> and work based on xy,xz,yz depending on which face you work with
L1947[18:24:04] <tterrag> that's a bit trickier than what I have though
L1948[18:24:09] ⇦ Quits: Flashfire (Flashfire@d24-36-192-173.home1.cgocable.net) (Ping timeout: 186 seconds)
L1949[18:24:13] <tterrag> also, I already have it working this way and it was a right pain :P
L1950[18:25:33] <gigaherz> well you existing code doesn't need to change much? just do "case west:" uv=zy; case north: uv=(1-x),y; case up: uv=xz; ... "
L1951[18:25:58] <tterrag> or I could just unrotate the UVs and use the existing code :P
L1952[18:26:15] <gigaherz> yeah then you needto figure out the rotation
L1953[18:26:23] <gigaherz> and undo it
L1954[18:26:27] <gigaherz> which will look a bit more like
L1955[18:27:01] <gigaherz> "case west: case 90: uv=(-v,u)"
L1956[18:28:25] <tterrag> I just want to respect custom UVs on models
L1957[18:28:26] <tterrag> as best I can
L1958[18:28:38] ⇨ Joins: Flashfire (~Flashfire@d24-36-192-173.home1.cgocable.net)
L1959[18:28:38] <gigaherz> and figuring out the rotation, if you don't have the info, will require doing something like "if approximately_equal(right.u, left.u) && top.u < bottom.u, then rotation = 90"
L1960[18:28:58] <gigaherz> (note that these are made up, I don't know if that would be 90 or 270 ;P)
L1961[18:30:45] <tterrag> yeah it'd be nice if I had the rotation info
L1962[18:30:49] <tterrag> unfortunately I think it's baked in
L1963[18:31:02] <gigaherz> pretty much
L1964[18:32:35] <tterrag> gigaherz: couldn't I just do left<right && top<bottom rotation=180, else if top < bottom 270 else if left < right 90, else 0
L1965[18:32:39] <tterrag> no equals comparisons
L1966[18:33:05] <infinitefoxes_> is there a way to disable my mod or simply crash purposefully?
L1967[18:33:14] <infinitefoxes_> in init, a few errors can be thrown that break the mod horribly
L1968[18:33:32] <infinitefoxes_> I suppose if I just throw exceptions during init it'll kill it
L1969[18:33:56] <diesieben07> yep, if you throw there it'll crash
L1970[18:34:18] <tterrag> or use FMLCommonHandler.raiseException
L1971[18:34:29] <tterrag> or use a CustomModLoadingError or whatever it is
L1972[18:34:43] <tterrag> CustomModLoadingErrorDisplayException
L1973[18:34:45] <tterrag> who named that .-.
L1974[18:34:50] <infinitefoxes_> christ that's long
L1975[18:35:10] <tterrag> throw one of those during lifecycle and fml will display a GUI instead of hard crashing
L1976[18:35:18] <tterrag> note it's @SideOnly client
L1977[18:35:48] <infinitefoxes_> well, I'd still need to handle it on the server as well
L1978[18:35:56] <infinitefoxes_> so I'll look at FMLCommonHandler.raiseException
L1979[18:38:35] <tterrag> you can, just do it differently
L1980[18:38:37] <tterrag> use your proxy
L1981[18:38:54] <tterrag> a GUI display is far friendlier than a crash report
L1982[18:38:58] <tterrag> server owners can deal with it
L1983[18:41:13] <infinitefoxes_> shouldn't that be something that Forge should handle?
L1984[18:41:33] <infinitefoxes_> I have no issue adding what's under a few lines of code
L1985[18:41:48] <infinitefoxes_> just think Forge should handle that itself
L1986[18:42:09] <infinitefoxes_> well, no nvm
L1987[18:42:18] <infinitefoxes_> the exception is clearly has "Display" in it for a reason
L1988[18:42:48] <tterrag> the class is clientside only because loading it on the client would crash
L1989[18:42:54] <tterrag> so no there's nothing forge can do here
L1990[18:42:56] <tterrag> just use your proxy
L1991[18:42:59] <tterrag> that's what it's for
L1992[18:43:59] *** MrKickkiller is now known as MrKick|Away
L1993[18:44:09] ⇦ Quits: GUIpsp (~GUIpsp@c-75-73-112-194.hsd1.mn.comcast.net) (Ping timeout: 186 seconds)
L1994[18:45:08] <PaleoCrafter> tterrag, Silicon Valley is great :D
L1995[18:45:29] <tterrag> lol
L1996[18:45:42] <tterrag> how long ago now did I make that reference?
L1997[18:45:56] <PaleoCrafter> a few days, but I only got around to watching it now xD
L1998[18:51:34] <gigaherz> hmmm
L1999[18:51:49] <gigaherz> in vanilla blocks, fortune multiplies the normal drops right?
L2000[18:51:59] <gigaherz> if it would have dropped 0, it just doesn't drop anything regardless?
L2001[18:53:14] <gigaherz> I think I'll implement it the opposite way for this block
L2002[18:53:26] ⇦ Quits: Delenas (Delenas@2601:987:401:9071:c0c3:e1a5:8ff0:b647) (Read error: Connection reset by peer)
L2003[18:53:37] <gigaherz> so that the more fortune, the higher the chances it will drop more of the items
L2004[18:53:43] ⇨ Joins: Delenas (Delenas@2601:987:401:9071:b86e:516e:d3f6:efc8)
L2005[18:54:00] <diesieben07> i think thats how vanilla does it too
L2006[18:54:09] <diesieben07> actaully nvm
L2007[18:54:12] <gigaherz> what I mean is
L2008[18:54:31] <gigaherz> my block normally will have a 10% factor on the contained essences
L2009[18:54:32] <gigaherz> so like
L2010[18:54:42] <gigaherz> if the block has 6 of one element in it
L2011[18:55:00] <gigaherz> the average drops would be "10% of 6"
L2012[18:55:39] <gigaherz> but if oyu have fortune 3, it would be more like average to 90% of 6
L2013[18:55:56] <gigaherz> (but always having a chance of dropping 0 and max, just changing the probability curve)
L2014[18:56:29] <gigaherz> not sure how that'd work, though, maths-wise
L2015[19:01:00] <gigaherz> aha found a good function: pow(nextFloat(), E), where E is 1/fortune for fortune >=1, or 2 if fortune=0
L2016[19:01:41] <gigaherz> hmm no wait, I don't want fortune 1 to be linear, I want it to still be crappy loot
L2017[19:02:08] <gigaherz> 1/(fortune-1) for fortune>1, and (3-fortune) otherwise
L2018[19:03:44] ⇦ Quits: Delaxarnyazer (~Delaxarny@2a02:a44e:91ce:0:3df5:891a:44af:a42a) (Ping timeout: 189 seconds)
L2019[19:06:41] ⇨ Joins: Delaxarnyazer (~Delaxarny@ip56572345.direct-adsl.nl)
L2020[19:21:14] ⇨ Joins: Elucent (~elucent__@d47-69-239-56.col.wideopenwest.com)
L2021[19:22:24] *** PaleoCrafter is now known as PaleOff
L2022[19:24:46] ⇨ Joins: Delenas- (Delenas@2601:987:401:9071:c0c3:e1a5:8ff0:b647)
L2023[19:25:08] *** Darkhax is now known as Darkhax_AFK
L2024[19:26:57] ⇦ Quits: Delenas (Delenas@2601:987:401:9071:b86e:516e:d3f6:efc8) (Ping timeout: 186 seconds)
L2025[19:27:16] ⇨ Joins: PBlock96 (~PB@lawn-143-215-58-139.lawn.gatech.edu)
L2026[19:27:36] ⇦ Quits: Elucent (~elucent__@d47-69-239-56.col.wideopenwest.com) (Ping timeout: 198 seconds)
L2027[19:27:50] ⇦ Quits: Maxetime (~Thunderbi@modemcable086.219-70-69.static.videotron.ca) (Ping timeout: 198 seconds)
L2028[19:28:53] ⇦ Quits: Poppy (~Poppy@chello085216146055.chello.sk) (Ping timeout: 194 seconds)
L2029[19:31:53] ⇨ Joins: Elucent (~elucent__@d47-69-239-56.col.wideopenwest.com)
L2030[19:32:24] ⇦ Quits: Elucent (~elucent__@d47-69-239-56.col.wideopenwest.com) (Client Quit)
L2031[19:32:33] <riderj> What would be some major reasons to use a TileEntity over just a Block? I know one would be if it has extra properties such as inventory, but what would be some other cases?
L2032[19:32:50] ⇨ Joins: Elucent (~elucent__@d47-69-239-56.col.wideopenwest.com)
L2033[19:33:28] ⇨ Joins: killjoy (~killjoy@71.65.255.183)
L2034[19:35:59] <diesieben07> riderj, storage beyond the 4 bits of block metadata or the need for updates every tick
L2035[19:36:49] <riderj> Alright, I just wanted to make sure I had the right idea. Say I was making a BatteryBlock that would convert to all different types, I would use a TileEntity for this?
L2036[19:37:06] <diesieben07> define types
L2037[19:37:23] <riderj> Types of powers, RF AE MJ
L2038[19:38:00] <diesieben07> you probably need a TE for at least RF because i know that that is mostly based on implementing interfaces on a TE
L2039[19:38:35] <riderj> MHmm
L2040[19:39:05] <riderj> So basic rule, if it needs to tick TileEntity is the way to go?
L2041[19:39:25] <diesieben07> yes
L2042[19:39:40] <riderj> Cool
L2043[19:39:42] <riderj> Thanks
L2044[19:40:20] *** Darkhax_AFK is now known as Darkhax
L2045[19:42:04] <gigaherz> if it needs to tick, and/or store data beyond the 4bit metadata
L2046[19:42:41] ⇦ Quits: yopu (~yopu@184-89-171-53.res.bhn.net) (Ping timeout: 198 seconds)
L2047[19:44:57] <gigaherz> hmmm can I get the "instance number" that the debugger shows on the variables panel, from code?
L2048[19:45:05] <gigaherz> (for logging)
L2049[19:45:55] <gigaherz> hm I just used the entity toString
L2050[19:46:57] <unascribed> it's probably System.identityHashCode
L2051[19:48:13] <gigaherz> ugh
L2052[19:48:19] <gigaherz> so my entity IS in th client
L2053[19:48:23] <gigaherz> and it's in the coords I'm looking at
L2054[19:48:26] <gigaherz> just... I can't see it XD
L2055[19:48:35] <williewillus> 1.8 respawn entity glitch?
L2056[19:48:46] <williewillus> there's a bug where sometimes on respawn the server doesnt send certain entities to the client
L2057[19:48:51] <gigaherz> no
L2058[19:48:55] <gigaherz> nothing to do with respawns
L2059[19:48:56] <diesieben07> gigaherz, you might find something in java.lang.management
L2060[19:49:00] <diesieben07> there is some interesting stuff in there
L2061[19:49:19] <diesieben07> oh wait
L2062[19:49:25] <diesieben07> i read that completely wrong
L2063[19:49:29] <diesieben07> i need sleep
L2064[19:51:36] ⇨ Joins: RANKSHANK (~Michael@ppp121-44-139-233.lns20.syd7.internode.on.net)
L2065[19:53:44] ⇦ Quits: Delenas- (Delenas@2601:987:401:9071:c0c3:e1a5:8ff0:b647) (Quit: And then He said, "Let there be butts." And He saw that it was good.)
L2066[19:54:58] ⇨ Joins: PrinceCat (~PrinceCat@58-7-240-130.dyn.iinet.net.au)
L2067[20:03:36] ⇦ Quits: PBlock96 (~PB@lawn-143-215-58-139.lawn.gatech.edu) (Ping timeout: 198 seconds)
L2068[20:05:20] ⇦ Quits: Harry (~Harry@46.101.12.90) (Ping timeout: 189 seconds)
L2069[20:05:27] <tterrag> gigaherz: a thought - UVs are always stored in the same order right? couldn't I just de-rotate based on that ordering?
L2070[20:05:32] <tterrag> then I don't need to care about facing
L2071[20:06:55] <gigaherz> well there's flip-V
L2072[20:07:04] <gigaherz> so the order maybe reversed also
L2073[20:07:24] <tterrag> what's flip-v?
L2074[20:07:30] <gigaherz> it flips the V coord (1-v)
L2075[20:07:32] <gigaherz> on bake
L2076[20:07:48] <gigaherz> it's mostly used for obj/b3d models though
L2077[20:10:11] <tterrag> hmmm
L2078[20:10:18] <tterrag> that would be tricky to handle without special casing
L2079[20:10:26] <tterrag> but basically what I was thinking
L2080[20:10:35] <riderj> Is metadata just blockstates? I'm a little confused on the 4 bit metadata concept. I've read through a few tutorials on metadata but still don't understand it :/. I understand the whole 4 bits = 15 but I can't tie it together
L2081[20:10:41] *** williewillus is now known as willieaway
L2082[20:10:46] <tterrag> is that the minimum UV on a quad is always in the same position, i.e. position 2
L2083[20:10:48] <tterrag> or whatever it is
L2084[20:10:52] <tterrag> is that true?
L2085[20:10:56] <tterrag> forgetting flipv
L2086[20:10:57] <unascribed> metadata is how blockstates are stored
L2087[20:11:07] <unascribed> there can be properties that don't go into metadata
L2088[20:11:14] <unascribed> but most properties do
L2089[20:11:21] <unascribed> wool color, for example
L2090[20:11:25] <unascribed> maps directly into meta, 0-15
L2091[20:11:34] <unascribed> but it's represented as a property in the blockstate
L2092[20:11:53] *** kirby|gone is now known as mrkirby153
L2093[20:12:18] <unascribed> how you map properties to your meta is completely up to you
L2094[20:12:25] <unascribed> so you could have a boolean property that goes into a bit
L2095[20:12:31] <gigaherz> riderj: getStateFromMeta / getMetaFromState
L2096[20:12:36] <gigaherz> that's how you choose what goes into metadata
L2097[20:12:41] <riderj> Ok, so metadata is a way of mapping values?
L2098[20:12:45] <gigaherz> no
L2099[20:12:48] <riderj> :/
L2100[20:12:49] <gigaherz> it's a way of STORING those values
L2101[20:13:05] <gigaherz> the mapping between blockstates and metadata is 100% up to you
L2102[20:15:43] ⇨ Joins: agowa339 (~Thunderbi@p54918B3F.dip0.t-ipconnect.de)
L2103[20:15:49] <tterrag> gigaherz: indeed it seems the min UV values are always in the first position
L2104[20:15:53] <tterrag> so I could just cycle the array
L2105[20:16:53] ⇦ Quits: agowa338 (~Thunderbi@p5491857F.dip0.t-ipconnect.de) (Ping timeout: 189 seconds)
L2106[20:16:53] *** agowa339 is now known as agowa338
L2107[20:19:19] ⇨ Joins: poiuy_qwert (~poiuy_qwe@198-84-224-94.cpe.teksavvy.com)
L2108[20:22:34] <tterrag> gigaherz: haha holy crap that works
L2109[20:22:41] <tterrag> http://puu.sh/n754V.txt
L2110[20:23:08] <tterrag> mmm not quite
L2111[20:23:28] <tterrag> http://puu.sh/n757j.jpg
L2112[20:23:30] <masa> riderj: what minecraft actually stores in the world files about blocks, is the block id, which is 8 + 4 bits, the metadat, which is 4 bits, then a couple of light values (sky and block light) both 4 bits, and then additionally some blocks can have a tile entity, which can have arbitrary data
L2113[20:23:32] <tterrag> top of stairs gets messed up for some reason
L2114[20:23:53] <tterrag> only the top though O.o
L2115[20:24:20] <masa> so the block id, metadata and light values are stored in byte arrays, where each block posiiton corresponds to one element in the array
L2116[20:24:30] ⇨ Joins: Harry (~Harry@46.101.12.90)
L2117[20:24:52] <Cazzar> if only java 8 had a REPL
L2118[20:25:59] <gigaherz> lol
L2119[20:26:03] <masa> and nowadays in code, the "state of a block in a position in the world" is represented by a blockstate. The "basic" blockstate is made up of the block id and the metadata, and the getStateFromMeta() and getMetaFromState() methods map the blockstate to the metadata for that block type (block class)
L2120[20:26:11] <Cazzar> It'd make this testing a shitton easier.
L2121[20:26:35] <gigaherz> (that lol was at tterrag's pic)
L2122[20:27:06] <tterrag> also my unbaking process seems to lose float precision
L2123[20:27:10] <tterrag> Quad(vertPos=[Vector3f[0.0, 2.9802322E-8, 1.0], Vector3f[0.0, 2.9802322E-8, -1.3909066E-8], Vector3f[1.0, 2.9802322E-8, -1.3909066E-8], Vector3f[1.0, 2.9802322E-8, 1.0]], vertUv=[Vector2f[0.5546826, 0.32813478], Vector2f[0.5468799, 0.32813478], Vector2f[0.5468799, 0.34374022], Vector2f[0.5546826, 0.34374022]])
L2124[20:27:22] <masa> so essentially those determine which properties in the blockstate are in which values when a given metadata value is read from the world file for a given block
L2125[20:28:11] <tterrag> gigaherz: oh I know why
L2126[20:28:18] <tterrag> I'm rotating a non-square quad's UVs by 90 degrees
L2127[20:28:21] <tterrag> so it gets stretched...
L2128[20:28:22] <tterrag> hm...
L2129[20:29:09] <riderj> If block id's are only 8 bits, that only allows for 256 unique id's? or am I confused?
L2130[20:30:06] <gigaherz> block id is 12 bits
L2131[20:30:08] <tterrag> ^
L2132[20:30:08] <gigaherz> 4096 blocks
L2133[20:30:15] <gigaherz> + 4 bit metadata
L2134[20:30:24] <gigaherz> so each block "cell" fits in a 16bit unit
L2135[20:30:30] <gigaherz> (2 bytes)
L2136[20:30:41] <tterrag> gigaherz: how do you think I could solve this rotation issue?
L2137[20:30:54] <riderj> That makes more sense, so block id 4000 can have metadata 4000+0-15?
L2138[20:33:03] <masa> ?
L2139[20:33:17] <masa> metadata is always 4 bits per block position i nthe world
L2140[20:33:47] <riderj> I have no clue, I'm still very confused :/. I can't seem to visualize the whole thing
L2141[20:34:02] <tterrag> block ids are 12 bits
L2142[20:34:04] ⇨ Joins: PBlock96 (~PB@lawn-143-215-58-139.lawn.gatech.edu)
L2143[20:34:04] <tterrag> metadata is 4 bits
L2144[20:34:06] <riderj> Can't find the right thing to google either
L2145[20:34:09] <tterrag> together that's 16 bits per block position
L2146[20:34:16] <tterrag> that's it
L2147[20:34:38] <Cazzar> \o/ this is actually structurally working.
L2148[20:35:39] <masa> well you know what a chunk looks like right? imagine a 3D array of bytes where each blocks is one element
L2149[20:37:06] <masa> for the block id, there is one array of bytes for the "basic block id", and then another array of bytes that is hald the length, because every block position only gets 4 bits of storage from it, and those are combined into the 12 bit block id. And then there is another array of bytes, from which each block posiiton gets 4 bits for the metadata
L2150[20:37:25] <masa> *half
L2151[20:37:58] <tterrag> gigaherz: I guess if I cycled by 1 or 3 I need to invert the distances between the UVs
L2152[20:38:00] <tterrag> no?
L2153[20:38:04] <masa> but that is the low level storage of the data, you don't need to care about those details
L2154[20:38:52] <masa> you don't even need to care about the block id anymore. In 1.8 all you need to care about is the block class, and the 4 bit metadata and how you map your blockstate to that 4 bit metadata
L2155[20:40:12] <gigaherz> tterrag: I gues
L2156[20:40:15] <gigaherz> guess*
L2157[20:40:56] ⇦ Quits: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net) (Quit: WeeChat 1.3)
L2158[20:41:29] <Cazzar> \o/ The code works: http://upload.cazzar.net/u/1455417683
L2159[20:41:51] ⇨ Joins: AbsentThirdEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L2160[20:42:03] <Cazzar> ofc the JSON serailzation wouldn't be that.
L2161[20:43:11] <unascribed> excuse the horrifyingly bad mouse art: https://unascribed.com/i/a6e9f94d.png
L2162[20:43:38] <tterrag> oh god
L2163[20:43:51] <tterrag> there's this amazing thing called a line tool
L2164[20:43:53] <tterrag> ;_;
L2165[20:43:57] <Cazzar> Also, 1.8 chunks also go vertically.
L2166[20:44:03] <unascribed> so do 1.7 ones
L2167[20:44:08] <unascribed> that's an unimportant distinction
L2168[20:44:40] <unascribed> also it was faster to use the mouse than line tool
L2169[20:44:47] <unascribed> because if I used the line tool I'd get picky about how it looked
L2170[20:44:48] <Cazzar> unascribed: the comment I was having, is in 1.7 a chunk is on only the x and z rows.
L2171[20:44:50] <unascribed> and then it'd be 2 hours later
L2172[20:44:53] ⇨ Joins: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net)
L2173[20:44:55] <Cazzar> 1.8 also chunked the Y
L2174[20:45:03] <unascribed> no, in 1.7 chunks are also made up of sections
L2175[20:45:20] <unascribed> that distinction was made along with Anvil
L2176[20:45:30] <unascribed> which is older than even 1.7
L2177[20:45:37] <Cazzar> One second.
L2178[20:45:50] <unascribed> but as someone who has been modding since early beta
L2179[20:45:51] <masa> anvil is 1.2
L2180[20:45:53] <unascribed> chunks will always be full Y to me
L2181[20:46:16] <Cazzar> I've been modding since alpha
L2182[20:46:19] ⇨ Joins: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L2183[20:46:41] ⇨ Joins: Vasher (~Vasher@c-50-173-49-36.hsd1.ca.comcast.net)
L2184[20:46:55] <masa> i've been modding since yesterday
L2185[20:47:03] <masa> and about two years before that
L2186[20:48:16] <riderj> What file could I start with to trace how blocks are stored?
L2187[20:48:17] ⇨ Joins: EyeOfKoishi (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L2188[20:48:22] <riderj> I assume Chunk
L2189[20:48:24] <masa> anyway, I understand a chunk to be the full world height 16x16 section of the world, how it is mostly handled in code too, except for the actual save/load from file code
L2190[20:48:25] <unascribed> anything .mca
L2191[20:48:28] <unascribed> oh, you mean class file
L2192[20:48:35] <riderj> Yeah
L2193[20:48:36] <unascribed> Chunk is a good start, yeah
L2194[20:48:45] <masa> riderj: why do you care about that exactly? what are you doing?
L2195[20:48:49] <riderj> I wanna figure this out, because explainations aren't helping me much :/
L2196[20:48:58] <unascribed> http://minecraft.gamepedia.com/Anvil_file_format
L2197[20:48:59] <riderj> I hate not knowing the lowest possible thing I can
L2198[20:49:00] <unascribed> also potentially useful
L2199[20:49:20] ⇦ Quits: AbsentThirdEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 189 seconds)
L2200[20:49:26] <masa> heh ok well yeah, Chunk and then some of the AnvilSaveWhatever classes
L2201[20:50:02] <riderj> I'm trying to understand it, but it doesn't seem to be passing through my thick skull XD
L2202[20:50:18] <masa> also http://minecraft.gamepedia.com/Chunk_format
L2203[20:50:22] <unascribed> bitwise logic can be surprisingly complicated when you're not used to it, so it's fair
L2204[20:50:59] ⇦ Quits: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 189 seconds)
L2205[20:51:01] ⇨ Joins: Techfoxis (~Techfoxis@pool-74-110-119-59.nrflva.fios.verizon.net)
L2206[20:51:09] <Cazzar> Bitwise logic <3
L2207[20:51:26] <Cazzar> Then again, I've reinforced it personally, by doing some weird shit.
L2208[20:51:46] <riderj> I've never messed with it, besides when I was messing with minicraft. Still didn't get it, but I knew how Notch converted to RGB with bit shifting.
L2209[20:52:04] <masa> bitwise logic <3
L2210[20:52:07] <riderj> Never understood why it was 8 bits, 16 bits, and 24
L2211[20:52:15] <unascribed> well
L2212[20:52:17] <unascribed> ints are 32-bit
L2213[20:52:20] <masa> it really amkes many things simple when they would be a lot messier without it
L2214[20:52:37] ⇦ Quits: Hgrebnednav (~Hgrebnedn@2a02:1811:2c2a:a400:f58c:9da1:d5eb:8ebf) (Read error: Connection reset by peer)
L2215[20:52:48] <riderj> the color format that was used was RGBA I believe
L2216[20:52:58] <killjoy> it's argb
L2217[20:53:02] <unascribed> well
L2218[20:53:02] <riderj> Yeah that one
L2219[20:53:05] <unascribed> he's talking about minicraft
L2220[20:53:10] <unascribed> so it very well could've been rgba
L2221[20:53:42] <masa> bit magic https://github.com/maruohon/enderutilities/blob/master/src/main/java/fi/dy/masa/enderutilities/item/ItemInventorySwapper.java#L472-L496
L2222[20:53:44] <riderj> I'm not too sure now, but either way bitwise logic is confusing.
L2223[20:54:08] <riderj> Yeah, no clue what that means. I didn't even know ^= was a thing
L2224[20:54:31] <masa> it's just a shorthand of var = var ^ somevalue;
L2225[20:54:46] <riderj> Ah
L2226[20:54:49] <masa> and ^ is XOR
L2227[20:54:53] <Cazzar> Also, unascribed I was explicitly mentioning http://upload.cazzar.net/u/1455418487
L2228[20:55:04] <riderj> and I guess a|=b is just a = a|b
L2229[20:55:14] <masa> yep
L2230[20:55:28] <unascribed> oh, the debug menu redesign
L2231[20:55:37] <Cazzar> not exactly.
L2232[20:55:37] <riderj> Any good readings I can look into for the future?
L2233[20:55:45] <riderj> To understand bitwise logic better.
L2234[20:55:49] <Cazzar> The complement of that in 1.7 is here: http://upload.cazzar.net/u/1455418539
L2235[20:56:19] <unascribed> yes, but they added the y section as part of the redesign
L2236[20:56:22] <unascribed> it's still a thing in 1.7
L2237[20:56:27] <unascribed> just not in the debug screen
L2238[20:57:06] <Cazzar> Anyway, it's a superflous arguement.
L2239[20:58:13] <tterrag> gigaherz: the question is which do I base on? min or max? i.e. do I clip the min to 0.5 or the max to 0.5 (in this case)
L2240[20:59:12] ⇦ Quits: AforAnonymous (bitch2k@dyn-042-184.vix1.mmc.at) (Quit: Try not to think not.)
L2241[21:00:19] <gigaherz> tterrag: depends on how much you rotated, and what the original was? XD
L2242[21:00:34] <tterrag> rotation is always going to be by 90/180/270
L2243[21:00:44] <tterrag> 180 can be ignored because we are just flipping both so the ratios are preserved
L2244[21:02:33] <tterrag> gigaherz: think about the specific case of the top of the stairs
L2245[21:02:48] <tterrag> the min SHOULD be at the "back" of the stair model
L2246[21:02:51] <tterrag> but how am I to know that?
L2247[21:03:15] <gigaherz> yes I mean
L2248[21:03:18] <gigaherz> if the original was
L2249[21:03:30] <gigaherz> 0..0.5
L2250[21:03:34] <gigaherz> and you rotate 90
L2251[21:03:38] <gigaherz> ccw
L2252[21:04:23] <gigaherz> then what used to be "u", will become "v", and "v" will become "1-u"
L2253[21:04:27] <gigaherz> so
L2254[21:04:32] <gigaherz> v will be 0.5..1
L2255[21:04:41] <gigaherz> while u will be 0..1
L2256[21:04:57] <gigaherz> (if the original was u=0..0.5)
L2257[21:09:11] <tterrag> gigaherz: I'm not fully understanding how that works out
L2258[21:09:41] ⇨ Joins: Drullkus (~Drullkus@c-67-180-188-243.hsd1.ca.comcast.net)
L2259[21:11:02] ⇦ Quits: Vazkii (~Vazkii@a79-169-163-74.cpe.netcabo.pt) (Quit: ~FILLED WITH DETERMINATION~)
L2260[21:12:55] <gigaherz> tterrag: okay you have 4 possible rotations
L2261[21:13:06] <tterrag> right
L2262[21:13:07] <gigaherz> 0, (noop)
L2263[21:13:34] <gigaherz> 90 ccw, which means: u1=v0; v1=1-u0;
L2264[21:13:44] <gigaherz> 180 ccw, which means: u1=1-u0; v1=1-v0;
L2265[21:14:01] <gigaherz> 270 ccw, which means: u1=1-v0; v1=u0;
L2266[21:14:08] <gigaherz> I think
L2267[21:14:15] ⇨ Joins: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net)
L2268[21:14:41] <gigaherz> hmm no
L2269[21:14:48] <gigaherz> 270 ccw, which means: u1=1-v0; v1=1-u0; ? hmf not sure
L2270[21:15:36] <tterrag> I'll try some stuff
L2271[21:15:43] <gigaherz> well something like that
L2272[21:15:44] <gigaherz> anyhow
L2273[21:15:47] <gigaherz> each of those 4 cases
L2274[21:16:02] <gigaherz> will output something based on min/max u/v
L2275[21:16:21] <gigaherz> and the transform applied by the rotation
L2276[21:16:57] <killjoy> Is there a chat bubbles mod for 1.8 yet?
L2277[21:17:07] <gigaherz> never heard of it
L2278[21:17:12] ⇨ Joins: Gigabit101 (~Gigabit10@cpc76302-cosh16-2-0-cust475.6-1.cable.virginm.net)
L2279[21:17:13] <gigaherz> (which doesn't mean much)
L2280[21:17:19] <tterrag> <gigaherz> 90 ccw, which means: u1=v0; v1=1-u0;
L2281[21:17:28] <tterrag> and also u0=v1 and v0 = 1-u1 ?
L2282[21:17:29] <killjoy> when people chat, a chat bubble is shown over their heads
L2283[21:17:31] <gigaherz> http://www.curse.com/mc-mods/minecraft/235520-chat-bubbles
L2284[21:17:32] <gigaherz> yes
L2285[21:17:32] ⇦ Quits: Techfoxis (~Techfoxis@pool-74-110-119-59.nrflva.fios.verizon.net) (Quit: Leaving)
L2286[21:17:38] <tterrag> yes to me? :P
L2287[21:17:43] <gigaherz> no to killjoy
L2288[21:17:43] <killjoy> to me
L2289[21:17:44] <gigaherz> XD
L2290[21:17:48] <tterrag> :C
L2291[21:17:52] <gigaherz> just 1.8 though
L2292[21:17:53] <gigaherz> not 1.8.9
L2293[21:18:06] <killjoy> Oh, this is Mamiya0taru's
L2294[21:18:08] <gigaherz> tterrag: what? XD
L2295[21:18:11] <killjoy> Didn't realize it updated
L2296[21:18:19] <gigaherz> the point of that formula
L2297[21:18:20] <tterrag> gigaherz: my question?
L2298[21:18:33] <gigaherz> is to figure out the "output" u/v based on the input
L2299[21:18:36] <gigaherz> to apply the rotation
L2300[21:18:40] <tterrag> oh
L2301[21:18:46] <gigaherz> if you rotate by 90 ccw
L2302[21:18:48] <tterrag> yeah but I have min u/v and max u/v
L2303[21:18:56] <gigaherz> then whatever u/v each vertex has
L2304[21:19:01] <gigaherz> gets transformed based on those rules
L2305[21:19:09] <tterrag> hmmm
L2306[21:19:35] <gigaherz> I'm not certain if I made some logic mistake on them (I didn't draw on paper)
L2307[21:19:59] <gigaherz> but what I meant to say is that, knowing those rules
L2308[21:20:06] <gigaherz> you can know how to "fix" the coords
L2309[21:20:09] ⇨ Joins: Techfoxis (~Techfoxis@pool-74-110-119-59.nrflva.fios.verizon.net)
L2310[21:20:57] <gigaherz> if the input is {U=0..0.5, V=0..1), and you have rotation=90(ccw)
L2311[21:21:21] ⇨ Joins: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L2312[21:21:26] <gigaherz> you'd apply the rule "u1=v1", so the range for U will be 0..1
L2313[21:21:43] <unascribed> I have a somewhat long looping ambient sound that there may be many of played at once
L2314[21:21:44] <gigaherz> and you'd apply the rule "v1=1-u1" so the range for V becomes 0.5..1
L2315[21:21:52] <unascribed> as such, it can't be stream mode because the game lags when starting the sound
L2316[21:21:56] <unascribed> is there a good way to pre-load the sound during init?
L2317[21:22:06] <Techfoxis> Hey, what would be the best way of generating a structure?
L2318[21:22:15] <killjoy> why do you want to pre-load the sound?
L2319[21:22:21] <Techfoxis> Minecraft 1.8
L2320[21:22:22] <unascribed> ...I just explained why
L2321[21:22:27] <gigaherz> Techcable: store a template somewhere
L2322[21:22:28] <unascribed> It's somewhat long
L2323[21:22:28] <killjoy> ..
L2324[21:22:33] <gigaherz> either data file or in code
L2325[21:22:36] <unascribed> there may be a lot of them playing at once and starting in quick succession
L2326[21:22:52] <unascribed> and when they start with stream: true, they lag the game for a moment opening the stream
L2327[21:22:53] <Techcable> huh
L2328[21:23:18] <unascribed> because apparently the game isn't smart enough to share the stream
L2329[21:23:23] <gigaherz> and using a world decorator class, when the chunk generates, you find a location, and put the template blocks onto the world
L2330[21:23:28] <unascribed> with stream off, the game lags for a few seconds the first time the sound plays
L2331[21:23:30] <unascribed> and then it's smooth
L2332[21:23:38] <unascribed> I'd rather not lag the first time
L2333[21:23:44] <gigaherz> alternatively, you can use a "structure spawner" block
L2334[21:23:53] <gigaherz> that runs when a player gets close
L2335[21:23:53] <gigaherz> ;P
L2336[21:23:59] ⇦ Quits: EyeOfKoishi (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 189 seconds)
L2337[21:24:05] <gigaherz> after world generation has finished
L2338[21:24:29] <gigaherz> Techcable: oops, I meant Techfoxis
L2339[21:24:44] <Techcable> yeah
L2340[21:24:49] <Techcable> its okay
L2341[21:25:06] <gigaherz> sorry I can deal with a prefix of length 3, but 4 messes up my typing
L2342[21:25:07] <gigaherz> XD
L2343[21:25:09] <unascribed> this is why you set your name completion to "Shell-like" instead of "Inline cycle"
L2344[21:25:37] <gigaherz> unascribed: this is mirc, I don't believe autocomplete has any other mode than "alphabetical from the top"
L2345[21:26:03] <unascribed> probably not
L2346[21:26:07] <Techfoxis> gigaherz: What about when a player activates a block by clicking it?
L2347[21:26:08] <unascribed> mirc is kinda bleh
L2348[21:26:19] <gigaherz> Techfoxis: what about it?=
L2349[21:27:04] <unascribed> so, no way to preload a sound?
L2350[21:27:32] <Techfoxis> gigaherz: Is that to much of a performance issue or something, I plan on making a sky island appear when a flower is bonemealed.
L2351[21:28:59] <tterrag> gigaherz: http://puu.sh/n78G1.txt
L2352[21:29:01] <tterrag> that seems to work
L2353[21:29:09] <tterrag> except now I'm getting z-fighting so supposedly something isn't lining up right
L2354[21:29:17] <gigaherz> Techfoxis: have you ever grown a redwood tree?
L2355[21:29:20] <tterrag> http://puu.sh/n78He.jpg
L2356[21:29:47] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L2357[21:29:54] <gigaherz> Techfoxis: they cause a bit of lag, yes, but it's not so bad that you "should never do it"
L2358[21:30:03] <gigaherz> ofc, depends on how big your island is, it may be unreasonable
L2359[21:30:04] <gigaherz> ;P
L2360[21:30:12] <unascribed> if you place a block every tick, it won't lag quite as bad
L2361[21:30:16] <unascribed> light updates might still get you
L2362[21:30:28] <unascribed> but not an all-at-once server-stopping lagspike
L2363[21:31:10] <tterrag> alternatively set all the blocks without the client update flag then batch block-update the range
L2364[21:31:44] <Techfoxis> The island would probably be about 10x10x8 with a "Beanstalk" leading up to it, so it should be fine.
L2365[21:31:46] <gigaherz> I remember the sacred mega rubber tree
L2366[21:31:52] <gigaherz> I generated one once
L2367[21:31:53] <unascribed> oh god
L2368[21:32:00] <unascribed> once someone on my server got one legitimately
L2369[21:32:07] <unascribed> the server crashed when they were dared to grow it
L2370[21:32:08] <tterrag> gigaherz: if I derotate the underlay quad it works
L2371[21:32:09] <gigaherz> took like 10 minutes for mc to recover
L2372[21:32:13] <tterrag> maybe I should just always derotate >.>
L2373[21:32:17] <unascribed> it covered their base in a dark void
L2374[21:32:22] <gigaherz> tterrag: maybe XD
L2375[21:32:22] <riderj> Does the bit operator & function like modulus?
L2376[21:32:26] <unascribed> and then they had the brilliant idea to *burn it down*
L2377[21:32:34] <unascribed> needless to say we had to reset the map
L2378[21:32:38] <gigaherz> lol
L2379[21:32:48] <gigaherz> riderj: only for very specific uses
L2380[21:32:52] <gigaherz> basically
L2381[21:33:00] <gigaherz> for "&" to work like modulus
L2382[21:33:09] <gigaherz> you need a bit pattern where all the bottom bits are 1
L2383[21:33:12] <gigaherz> and the rest are 0
L2384[21:33:14] <gigaherz> or in other words
L2385[21:33:17] <gigaherz> 2^n-1
L2386[21:33:28] <riderj> I see
L2387[21:33:30] <Techfoxis> What other possibility for templates are there other than a BlockPattern?
L2388[21:33:40] <gigaherz> number&("2^n-1") === number%"2^n"
L2389[21:34:11] <gigaherz> Techfoxis: put worldedit-compatible .schematic files in your resources
L2390[21:34:15] <gigaherz> and load them as needed
L2391[21:34:23] <gigaherz> this will allow resourcepack makers to replace the structures also
L2392[21:34:23] <gigaherz> ;P
L2393[21:34:31] <tterrag> technically it functions not at all like modulus, but it can be messed with to be similar :P
L2394[21:34:35] <gigaherz> and create structures in worldedit/mcedit
L2395[21:34:36] <riderj> Since chunks are stored 16x16x16 and Y goes up to 256. They use bitwise and to prevent Y from going past 16 by doing y&15
L2396[21:34:51] <tterrag> what I mean is the definition for the two operators is completely different
L2397[21:34:54] <riderj> Correct me if I'm wrong
L2398[21:34:59] <tterrag> riderj: y&15 will give you only the last 4 bits of the y value
L2399[21:35:06] <Techfoxis> gigaherz: Thanks for all the help, I'll look into those.
L2400[21:35:22] ⇨ Joins: EyeOfKoishi (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L2401[21:35:28] <tterrag> in this case yes it is equal to y % 16, but % is technically less efficient, and not what they are actually doing
L2402[21:35:44] ⇦ Quits: Drullkus (~Drullkus@c-67-180-188-243.hsd1.ca.comcast.net) (Remote host closed the connection)
L2403[21:35:53] <gigaherz> yeah
L2404[21:35:55] <riderj> So my main problem is that I don't know anything about binary XD
L2405[21:35:56] <gigaherz> number&15
L2406[21:36:02] <gigaherz> drops all but the bottom 4 bits
L2407[21:36:03] <tterrag> go read up on binary operators
L2408[21:36:09] <gigaherz> which means it "wraps around" when it would be 16
L2409[21:36:11] <tterrag> there aren't that many and they aren't that complicated :p
L2410[21:36:27] <tterrag> it may be easier to visualize it as y & 1111
L2411[21:36:32] <tterrag> (1111 is 15 in binary)
L2412[21:36:33] <gigaherz> yeh
L2413[21:36:34] <riderj> I will, got that on my todo list.
L2414[21:36:48] <gigaherz> do you understand boolean logic?
L2415[21:37:00] <tterrag> so if y is 01010101 and you do a logical AND on each of those bits with the number 00001111 (15) you will end up with 00000101
L2416[21:37:04] <killjoy> 0b00110010111011 & 0b1111 = 0b1011
L2417[21:37:13] <tterrag> too late noob
L2418[21:37:18] <riderj> I can't say I do, I get the jist of it but I can't explain it.
L2419[21:37:21] <killjoy> was doing math in head :(
L2420[21:37:28] <killjoy> had to count up to 15
L2421[21:37:30] <gigaherz> yeah then you really want to read up on those
L2422[21:37:31] <gigaherz> XD
L2423[21:37:36] <gigaherz> that's the basis for all modern computing
L2424[21:37:52] <tterrag> essentially you only have AND, OR, and XOR
L2425[21:37:56] <gigaherz> and NOt
L2426[21:37:59] <gigaherz> ~n
L2427[21:38:01] <tterrag> right
L2428[21:38:06] ⇦ Quits: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 198 seconds)
L2429[21:38:08] <killjoy> deciding whether you are steve or alex is done by uuid.hashcode() & 1
L2430[21:38:10] <gigaherz> and thne there's the shift operators, for extra reading
L2431[21:38:10] <gigaherz> XD
L2432[21:38:23] <tterrag> then there's the secondary operators NAND NOR XNOR which are just (NOT (X AND Y)) etc
L2433[21:38:39] <tterrag> might be getting ahead of myself :P
L2434[21:38:44] <gigaherz> with the funny thing that NAND is the easiest to implement in hardware
L2435[21:38:44] <gigaherz> XD
L2436[21:38:52] <killjoy> I learned this in my electronics class in 10th grade
L2437[21:38:54] <tterrag> anything can be done with NAND gates :)
L2438[21:39:00] <gigaherz> and NOR the easiest to implement in minecraft
L2439[21:39:08] <gigaherz> which is why redstone is funny: it's NOR-based logic
L2440[21:39:11] <gigaherz> instead of NAND-based
L2441[21:39:11] <tterrag> you can make any logical operator from NAND
L2442[21:39:23] <killjoy> you can make a NAND gate
L2443[21:39:29] <gigaherz> yes
L2444[21:39:38] <gigaherz> but it wil lbe made of nor gates ;P
L2445[21:40:05] <gigaherz> the redstone torch isn't an inverter: it's a nor gate effectively
L2446[21:40:07] <killjoy> all you really need is and, or, and not
L2447[21:40:10] <gigaherz> since it can be powered from multiple places at once
L2448[21:40:25] <gigaherz> all you really need is either "nor", "nand", or "and,or,not"
L2449[21:40:49] <gigaherz> it's 3 ways to implement logic
L2450[21:41:00] <gigaherz> they all can do everyhting, because they all can become all other gates
L2451[21:41:03] <tterrag> god prewriting all the normalize/relativize logic was the best thing I did for writing this code
L2452[21:41:08] <tterrag> it's so much easier to deal with normalized UVs :P
L2453[21:41:09] <gigaherz> XD
L2454[21:41:46] <tterrag> slightly less efficient? maybe. easier to figure out in my head definitely
L2455[21:42:06] <tterrag> when everything is 0..1 instead of ????..????
L2456[21:42:22] <tterrag> it also means that scaling to match a larger sprite is automatic
L2457[21:43:06] ⇨ Joins: Wastl2 (~Wastl2@f052231246.adsl.alicedsl.de)
L2458[21:43:29] <riderj> The best thing is, most universities don't teach this in under grad programs. I believe my program evaluation sheet shows that my major stops at networking.
L2459[21:43:33] <unascribed> so there's no way to preload a sound?
L2460[21:44:01] <tterrag> unascribed: what?
L2461[21:44:13] <riderj> I also am not going to a fantastic university for CS either.
L2462[21:44:40] <unascribed> I have a semi-long sound that can have a lot started in quick succession, so when used in streaming mode, it causes lag if a lot start at once, and when not in stream mode the first time it's played it lags the game for a few seconds
L2463[21:44:55] <unascribed> when not in stream mode, after the initial lag it's smooth
L2464[21:47:26] ⇨ Joins: AbsentThirdEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L2465[21:47:54] <riderj> Say I want to get a block at pos (3000,53, 67). Does minecraft first check for the chunk that is at the coordinate set, and then proceed to get the blocks that are stored in that chunk?
L2466[21:48:14] <unascribed> yes, it gets the chunk at (3000/16), (67/16)
L2467[21:48:23] <unascribed> and then asks the chunk for the block at (3000%16), (67%16)
L2468[21:48:30] <unascribed> er, plus the y coordinate
L2469[21:48:34] <killjoy> &15
L2470[21:48:41] ⇦ Quits: EyeOfKoishi (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 198 seconds)
L2471[21:48:44] <Cypher121> same thing
L2472[21:48:44] <unascribed> effectively equivalent to a modulo 16 in this case.
L2473[21:48:44] ⇦ Quits: Delaxarnyazer (~Delaxarny@ip56572345.direct-adsl.nl) (Ping timeout: 189 seconds)
L2474[21:48:51] <killjoy> :p
L2475[21:49:31] <riderj> Cool
L2476[21:50:12] ⇨ Joins: Delaxarnyazer (~Delaxarny@2a02:a44e:91ce:0:3df5:891a:44af:a42a)
L2477[21:50:45] <Cypher121> although, I think if you request a block from unloaded chunk it may cause some issues
L2478[21:50:52] <Cypher121> don't even remember where I heard that
L2479[21:50:54] <Disconsented> I am looking into rendering a fluid into this model http://puu.sh/n776I/8a456ccde1.png looks like I want to do somthing like (https://github.com/OpenMods/OpenBlocks/blob/1.8.X/src/main/java/openblocks/client/renderer/tileentity/TileEntityTankRenderer.java) is there a better way?
L2480[21:51:38] ⇨ Joins: covers1624_ (~covers162@1.125.48.189)
L2481[21:52:34] ⇨ Joins: SubconsciousEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com)
L2482[21:53:45] ⇦ Quits: covers1624 (~covers162@ppp121-45-25-252.lns20.adl2.internode.on.net) (Ping timeout: 186 seconds)
L2483[21:54:27] <riderj> Cool, I feel like I understand how metadata works now :D
L2484[21:55:09] <riderj> Albeit in a very broad way, but that's because I have no clue how bit logic works. That'll be the next thing I research.
L2485[21:55:25] ⇦ Quits: AbsentThirdEye (~Subconsci@cpe-65-28-43-97.wi.res.rr.com) (Ping timeout: 198 seconds)
L2486[21:57:21] * gigaherz facepalms hard
L2487[21:57:27] <gigaherz> the reason my entities didn't render: scale was 0
L2488[21:57:37] <gigaherz> I was never running the scale formula
L2489[21:58:05] ⇦ Quits: Flashfire (~Flashfire@d24-36-192-173.home1.cgocable.net) (Ping timeout: 189 seconds)
L2490[21:58:08] <riderj> That blows
L2491[21:58:18] <gigaherz> yeah took me like 3 hours to figure out
L2492[21:58:30] <riderj> I hate when things don't work, and it's because I forgot to call a method :/
L2493[21:59:13] <riderj> You probably used every debugging technique you know to figure it out
L2494[21:59:18] ⇦ Quits: sinkillerj (~sinkiller@nc-67-232-14-71.dhcp.embarqhsd.net) (Quit: またね)
L2495[21:59:31] <gigaherz> ugh randomTick's average ticking rate is WAY too slow :/
L2496[22:05:27] ⇦ Quits: PrinceCat (~PrinceCat@58-7-240-130.dyn.iinet.net.au) (Quit: My Mac has gone to sleep. ZZZzzz…)
L2497[22:06:14] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L2498[22:07:58] ⇨ Joins: Temportalist (uid37180@id-37180.charlton.irccloud.com)
L2499[22:08:23] *** cpw is now known as cpw|out
L2500[22:12:57] ⇦ Quits: ZaggyMobile2 (~Zaggy1024@174-20-167-106.mpls.qwest.net) (Read error: Connection reset by peer)
L2501[22:15:02] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L2502[22:17:37] <riderj> Blocks are a total of 8 bits + 4 for data, and 4 for lighting (sky/block). Correct? Want to confirm it so I can put it in my notes.
L2503[22:19:37] <gigaherz> 12+4
L2504[22:19:38] <gigaherz> not 8
L2505[22:19:52] <gigaherz> they USEd to be 8+4+4 back in alpha
L2506[22:20:32] <gigaherz> but they have been 12+4+8(?) for a while
L2507[22:21:04] <gigaherz> (the save format stores 4 bits for the light value, and 4 bits for the amount of daylight/shadow it has)
L2508[22:22:18] <riderj> From what the wiki says, Blocks partial id is 8 bits + additional wich is 4 bits making 12 bits + 4 for lighting + 4 for sky + 4 for meta
L2509[22:22:33] <gigaherz> that wiki is horribly outdated then ;P
L2510[22:22:50] <riderj> http://minecraft.gamepedia.com/Chunk_format#Block_format
L2511[22:22:58] <riderj> I mean I could be reading it wrong, but idk
L2512[22:23:00] <unascribed> that's correct for vanilla
L2513[22:23:03] <unascribed> vanilla only uses 8 bits
L2514[22:23:09] <unascribed> there's a special "add" field for block ids to bring it up to 12
L2515[22:23:10] <unascribed> forge uses that
L2516[22:23:19] <gigaherz> but really
L2517[22:23:26] <gigaherz> riderj: forget about bits and such
L2518[22:23:41] <gigaherz> unless you are doing low-level things that work directly with save data or network data
L2519[22:23:45] <gigaherz> you don't need to care at all
L2520[22:23:53] <McJty> Well you can't fully forget about them yet. The 4-bit meta limitation is something a modder has to work with
L2521[22:23:58] *** Darkevilmac is now known as Dark|BeamPro
L2522[22:23:59] <gigaherz> you only need to know basically 3 things
L2523[22:24:02] <gigaherz> 1. metadata is 4 bits
L2524[22:24:07] <gigaherz> 2. light has levels 0..15
L2525[22:24:13] <gigaherz> 3. redstone has levels 0..15
L2526[22:24:27] ⇦ Quits: Elucent (~elucent__@d47-69-239-56.col.wideopenwest.com) (Ping timeout: 198 seconds)
L2527[22:24:35] <gigaherz> everything else should be inconsequential to how you write your mods
L2528[22:24:39] <riderj> I am someone who likes learning about the low level topics. I live to know every little detail about everything :{
L2529[22:24:47] <riderj> :P
L2530[22:24:58] ⇦ Quits: KanoCodex (~Giratina5@2604:180:0:368::bcd8) (Remote host closed the connection)
L2531[22:25:45] ⇦ Quits: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca) (Ping timeout: 186 seconds)
L2532[22:25:50] <riderj> So I should write " Vanilla minecraft blocks are 8 bits, forge adds an additional 4 bit array to store more block id's. Lighting, metadata, and sky light are all 4-bit arrays"
L2533[22:27:04] ⇨ Joins: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca)
L2534[22:27:49] ⇦ Quits: Lathanael|Away (~Lathanael@p5496164E.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L2535[22:33:19] ⇦ Quits: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca) (Killed (NickServ (GHOST command used by Corosauce!~Corosus@209.171.88.38)))
L2536[22:34:15] ⇨ Joins: Corosus (~Corosus@209.171.88.38)
L2537[22:35:12] ⇨ Joins: Lathanael|Away (~Lathanael@p54961782.dip0.t-ipconnect.de)
L2538[22:40:55] <unascribed> vanilla actually has the 4-bit array
L2539[22:40:57] <unascribed> it just doesn't use it
L2540[22:43:40] <Cypher121> well, with 197 IDs used, they may have to at some point
L2541[22:44:05] <unascribed> probably
L2542[22:44:11] <unascribed> which is presumably why they added it in the first plac
L2543[22:44:12] <unascribed> e
L2544[22:44:18] <unascribed> just so happens to be useful for mods right now :P
L2545[22:44:19] <Cypher121> and why the hell every fence has its own id?
L2546[22:44:32] <unascribed> idk
L2547[22:44:37] <unascribed> afaik fences don't even use meta
L2548[22:44:39] <unascribed> so it's weird
L2549[22:44:49] <Cypher121> yeah, apparently
L2550[22:45:01] <Cypher121> at least if http://minecraft-ids.grahamedgecombe.com/ is to be believed
L2551[22:45:03] <tterrag> why would they?
L2552[22:45:19] <tterrag> oh you mean the different wood types
L2553[22:45:20] <tterrag> yeah that is odd
L2554[22:45:22] <Cypher121> yes
L2555[22:45:29] <Cypher121> I understand fence gates
L2556[22:45:45] <unascribed> vanilla needs more IDs because it's irresponsible with them, not because it actually needs more IDs :P
L2557[22:45:48] <unascribed> vanilla: one ID per ore
L2558[22:45:51] <Cypher121> these have 4 rotations and 3 states (closed, open, open in other direction)
L2559[22:45:54] <unascribed> mod: 16 ores per ID
L2560[22:45:58] <unascribed> vanilla: 1 fence per ID
L2561[22:46:05] <unascribed> you see where this is going.
L2562[22:46:05] <tterrag> actually only 2 rotations
L2563[22:46:12] ⇨ Joins: Cojo (~Cojo@2606:a000:1126:8048:cdc6:8224:421b:80f3)
L2564[22:46:12] <Cypher121> oh, yeah
L2565[22:46:16] <Cypher121> makes sense
L2566[22:46:19] <tterrag> though I think they do store it as 4
L2567[22:46:28] <Cypher121> still that's 3 bits already
L2568[22:46:38] <Cypher121> so gates have to be separate blocks
L2569[22:46:56] <tterrag> i = i | ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
L2570[22:47:03] <tterrag> yes it stores it as 2 bits of rotation instead of 1
L2571[22:47:10] <tterrag> dumb, but easier to code and there's no real reason to compress it
L2572[22:47:18] <tterrag> (or wasn't before they added more gate types)
L2573[22:47:28] <tterrag> and they can't go back and change it now
L2574[22:47:34] <Cypher121> still no reason
L2575[22:49:11] <Cypher121> with 2 rotations * 3 states * 4 wood types, they just won't fit into 16 meta
L2576[22:50:02] <tterrag> they could fit into 2 ids instead of one :p
L2577[22:50:07] <tterrag> but mojang really doesn't care about that
L2578[22:50:11] <Cypher121> yeah
L2579[22:50:24] <Cypher121> took them, what, 6 years to fill 200 ids?
L2580[22:50:33] <tterrag> just try to remember at all times that mojang *always* codes features like they don't know mods exist
L2581[22:50:45] <tterrag> it's always been that way
L2582[22:50:51] <Cypher121> yup
L2583[22:51:09] <riderj> Yet they are "making" an api
L2584[22:51:25] <Cypher121> "plugin" "api"
L2585[22:51:33] <riderj> There ya go
L2586[22:52:03] <riderj> Though they announced that a few years ago and I've not seen any progress on it besides resource packs.
L2587[22:52:07] <Cypher121> hope you're good with jsons, if you plan to use it if it ever comes out
L2588[22:53:36] <riderj> All I know is, I wanna master modding with forge.
L2589[22:53:58] <Cypher121> I suddenly have flashbacks about fitting full slab and both upper and lower slabs, all with 4 rotations into 1 block
L2590[22:54:13] <Cypher121> sort of modding ptsd
L2591[22:54:19] <riderj> Is that good or bad?
L2592[22:54:36] <Cypher121> that's good as result. process is awful
L2593[22:55:05] <riderj> I also have no clue what you mean by rotations :/
L2594[22:55:16] <riderj> Is that the facing dir of the slab?
L2595[22:55:53] <Cypher121> yes
L2596[22:56:23] <Cypher121> it was based on a block that had a rotating top texture
L2597[22:56:32] <riderj> Ah
L2598[22:57:08] <riderj> How long have you been modding?
L2599[22:57:28] <Cypher121> about 7 months, I think
L2600[22:58:35] <riderj> Oh, and you apparently know a lot about it for only 7 months.
L2601[22:59:27] <Cypher121> luckily, I had some experience with java and OOP beforehand, but I still had to learn a lot of things, both java and minecraft/forge
L2602[22:59:37] <Cypher121> and I don't know *that* much
L2603[23:00:12] <Cypher121> tterrag over there probably has much more experience, especially with all things rendering
L2604[23:01:01] <Cypher121> I don't do 1.8 rendering at all for now
L2605[23:01:12] <riderj> Same, and I would love to learn rendering.
L2606[23:01:19] <Cypher121> luckily, my current project doesn't involve a single block or item
L2607[23:01:29] ⇨ Joins: Mraoffle (~mraof@2601:642:4400:20c4:ba27:ebff:fea5:e37e)
L2608[23:01:54] <riderj> I have a few resources that I want to read about OpenGL, but most are written for C++.
L2609[23:02:03] <unascribed> it's no different in Java
L2610[23:02:10] <unascribed> LWJGL is just a straight binding to the GL API
L2611[23:02:13] <riderj> I know the difference is minimal, but I don't know C++ that well.
L2612[23:02:25] <Cypher121> then try looking for lwjgl
L2613[23:02:31] ⇦ Quits: Mraof (~mraof@pool-74-110-222-32.rcmdva.fios.verizon.net) (Ping timeout: 194 seconds)
L2614[23:03:18] <Cypher121> anyway, here's the abomination I ended up with back when I was doing that crap:
L2615[23:03:29] <Cypher121> https://bitbucket.org/cout970/magneticraft/src/951681721bfdd6adfdc79759829d6ced18ccc178/src/main/java/com/cout970/magneticraft/items/block/ItemBlockMgSlab.java?at=master&fileviewer=file-view-default
L2616[23:03:29] ⇦ Quits: mezz (~mezz@2601:641:4000:63:4e3:cb68:ecbe:7536) (Read error: Connection reset by peer)
L2617[23:03:52] <unascribed> https://unascribed.com/i/1c3f45a7.png
L2618[23:03:55] <unascribed> all the achievements!
L2619[23:04:26] ⇦ Quits: Shukaro (~Shukaro@130.108.232.236) ()
L2620[23:04:37] <tterrag> riderj: the difference is less than minimal
L2621[23:04:45] <tterrag> all you need to do is GL11. before everythign (unless you static import)
L2622[23:04:58] <tterrag> since C++ has the magical #include :P
L2623[23:05:01] ⇨ Joins: mezz (~mezz@2601:641:4000:63:6c95:f518:6c72:ff35)
L2624[23:05:01] MineBot sets mode: +v on mezz
L2625[23:05:16] <tterrag> but GL does not change between programming languages
L2626[23:05:59] ⇦ Quits: mezz (~mezz@2601:641:4000:63:6c95:f518:6c72:ff35) (Read error: Connection reset by peer)
L2627[23:06:23] <riderj> I understand that. I was mainly referring to the examples. I guess I'll just read up on LWJGL since Minecraft uses it.
L2628[23:07:43] <tterrag> lwjgl is just a java OpenGL binding with some extra gamedev features :P
L2629[23:07:49] <riderj> I get distracted easily when reading. Could be reading about OpenGL one minute, and the next be learning C++. I hate not knowing what things are
L2630[23:08:03] <killjoy> look at import static
L2631[23:08:21] <killjoy> import static org.lwjgl.soemthing.GL11.*;
L2632[23:09:15] <riderj> That would allow you to call, say it's in class Renderer, Renderer.bindTexture
L2633[23:09:27] <riderj> ?
L2634[23:10:23] <tterrag> yes
L2635[23:10:26] <tterrag> as long as it's static
L2636[23:10:42] <tterrag> you get access to all static members of that class
L2637[23:10:48] <gigaherz> isn't it like
L2638[23:10:49] <tterrag> and it doesn't have to be .*
L2639[23:10:58] <gigaherz> instead of "GL11.glColor", you can write "glColor" alone?
L2640[23:11:01] <tterrag> you could import static Foo.BAR;
L2641[23:11:05] <tterrag> gigaherz: exactly
L2642[23:11:24] <riderj> Cool cool
L2643[23:11:57] ⇦ Quits: Corosus (~Corosus@209.171.88.38) (Killed (NickServ (GHOST command used by Corosauce!~Corosus@135-23-126-120.cpe.pppoe.ca)))
L2644[23:12:54] ⇨ Joins: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca)
L2645[23:16:25] ⇨ Joins: mezz (~mezz@2601:641:4000:63:d143:7353:41f4:eb39)
L2646[23:16:25] MineBot sets mode: +v on mezz
L2647[23:22:26] ⇦ Quits: dangranos (~dangranos@hekate.pc-logix.com) (Ping timeout: 195 seconds)
L2648[23:23:40] <riderj> How do I get an instance of my mod?
L2649[23:24:01] <Cypher121> @Mod.Instance annotation over any field in @Mod class
L2650[23:24:09] <gigaherz> you probably want to have a field in your @Mod class
L2651[23:24:16] <gigaherz> with the @Mod.Instance(modid) in it
L2652[23:24:20] <Cypher121> and by any I mean of <? super YourModClass>
L2653[23:24:37] <Cypher121> I don't think modid is necessary
L2654[23:24:41] <killjoy> Object counts
L2655[23:24:42] ⇨ Joins: dangranos (~dangranos@hekate.pc-logix.com)
L2656[23:24:53] <killjoy> modid is for a mod that's not yours
L2657[23:25:21] <tterrag> to be safe you should always include it
L2658[23:25:37] <riderj> So @Instance public static final Crystalz instance = new Crystalz() ?
L2659[23:25:45] <unascribed> no
L2660[23:25:47] <Cazzar> no need for the new call
L2661[23:25:56] <unascribed> @Instance public static Crystalz instance;
L2662[23:26:00] <riderj> Alright
L2663[23:26:00] <unascribed> note: not final and no new
L2664[23:26:02] <unascribed> FML populates it
L2665[23:26:04] <Cazzar> And therefore you don't need final
L2666[23:26:11] <riderj> Oh, ok
L2667[23:26:15] <unascribed> no, you *need* it to not be final
L2668[23:26:18] <Cypher121> more like you *can't* do final
L2669[23:26:31] <unascribed> instanciating an extra one is likely to be harmful but is not neccessarily bad
L2670[23:26:41] <Cypher121> otherwise JIT will optimize the shit out of it before reflection even has a chance to add value
L2671[23:27:11] <riderj> I don't know much about how forge works, so I didn't know that it populates it :P
L2672[23:27:31] <Cypher121> just don't do final
L2673[23:27:37] <riderj> what is JIT
L2674[23:27:46] <Cypher121> Just-in-time compiler
L2675[23:28:05] <Cypher121> which basically performs operations on code during runtime
L2676[23:28:31] <riderj> Is this compiler how forge does what it does?
L2677[23:28:43] *** Vigaro is now known as V
L2678[23:29:11] <Cazzar> It's a java thing
L2679[23:29:14] <Cypher121> no, what you're thinking about is Reflection API
L2680[23:29:22] <Cazzar> though, rule of thumb, NEVER depend on JIT
L2681[23:29:23] <tterrag> depending on how FML does it, final may be allowed
L2682[23:29:24] <Cypher121> JIT = optimization feature
L2683[23:29:40] <tterrag> Cypher121: JIT can't optimize non-primitive finals (excepting strings)
L2684[23:29:42] <riderj> Oh, I didn't know that about java.
L2685[23:29:46] <tterrag> oh wait, sorry
L2686[23:29:51] <tterrag> maybe it can, thinking of the compiler
L2687[23:29:59] <killjoy> non-literal finals?
L2688[23:30:01] <tterrag> but afaik non-primitive finals are never inlined
L2689[23:30:06] <tterrag> yeah, nonliteral
L2690[23:30:24] <riderj> Whatcha mean by inlined?
L2691[23:30:33] <killjoy> not new
L2692[23:30:38] <Cypher121> let's say you have a final field
L2693[23:30:44] <Cypher121> and a getter for that field
L2694[23:31:16] <Cypher121> instead of referring to the field, getter will just return the value that is supposed to be in the field
L2695[23:31:29] <Cypher121> because it's final, so it can't change, it thinks
L2696[23:33:02] <Cypher121> does java inline methods, btw?
L2697[23:33:22] <killjoy> I thought that was proguard that did that
L2698[23:34:17] <unascribed> the JIT will do that
L2699[23:34:21] <unascribed> but not in bytecode
L2700[23:34:25] <unascribed> proguard will do it in bytecode
L2701[23:34:53] <Cypher121> i prefer jit route
L2702[23:35:54] <Cypher121> inlining in bytecode makes it way heavier
L2703[23:36:49] <tterrag> uh no, compiler WILL inline final literals
L2704[23:37:01] <gigaherz> :3 my cocoon stuff is taking shape
L2705[23:37:03] <tterrag> static ones anyways
L2706[23:37:17] <gigaherz> I still need to adjust the "rules" for deciding how much it generates of each essence
L2707[23:37:40] <gigaherz> and add rules for generating "life" and "death" essence (I can du life with nature stuff, but no idea what ot assign to "death")
L2708[23:37:46] <gigaherz> but it's enough for one day
L2709[23:37:48] <gigaherz> night ppl
L2710[23:37:52] *** gigaherz is now known as ghz|afk
L2711[23:38:24] <killjoy> *assuming thaumcraft-like essence*
L2712[23:47:09] ⇦ Quits: Techfoxis (~Techfoxis@pool-74-110-119-59.nrflva.fios.verizon.net) (Quit: Leaving)
L2713[23:49:46] ⇦ Quits: Brokkoli (~Brokkoli@x55b02e48.dyn.telefonica.de) (Ping timeout: 186 seconds)
L2714[23:50:14] <Cypher121> huh, interesting
L2715[23:50:44] <Cypher121> apparently JIT only inlines final primitives that aren't initialized in constructors
L2716[23:50:45] ⇦ Quits: poiuy_qwert (~poiuy_qwe@198-84-224-94.cpe.teksavvy.com) (Quit: This computer has gone to sleep)
L2717[23:55:21] ⇨ Joins: Brokkoli (~Brokkoli@f050164149.adsl.alicedsl.de)
L2718[23:56:52] ⇦ Quits: killjoy (~killjoy@71.65.255.183) (Quit: Leaving)
<<Prev Next>> Scroll to Top