<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:01:27] ⇦ Quits: mezz (mezz!~mezz@24.6.28.151) (Ping timeout: 207 seconds)
L2[00:06:28] ⇨ Joins: quadraxis (quadraxis!~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L3[00:24:24] ⇨ Joins: Ipsis (Ipsis!~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L4[00:35:34] ⇦ Quits: Doty1154 (Doty1154!~Doty1154@67.215.244.186) (Ping timeout: 198 seconds)
L5[00:35:48] ⇨ Joins: Doty1154 (Doty1154!~Doty1154@2601:648:8000:134f:c90a:a5e2:36ae:bb51)
L6[00:55:10] ⇦ Quits: mallrat208 (mallrat208!~mallrat20@107.145.144.41) (Quit: Leaving)
L7[01:21:12] ⇦ Quits: Brokkoli (Brokkoli!~Brokkoli@p2E5B1E0E.dip0.t-ipconnect.de) (Remote host closed the connection)
L8[02:00:03] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20180101 mappings to Forge Maven.
L9[02:00:07] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20180101-1.12.zip (mappings = "snapshot_20180101" in build.gradle).
L10[02:00:17] <MCPBot_Reborn> Semi-live (every 10 min), Snapshot (daily ~3:00 EST), and Stable (committed) MCPBot mapping exports can be found here: http://export.mcpbot.bspk.rs/
L11[02:17:29] ⇦ Quits: sinkillerj (sinkillerj!~sinkiller@nc-67-238-185-186.dhcp.embarqhsd.net) (Remote host closed the connection)
L12[02:26:59] ⇨ Joins: Hunterz (Hunterz!~hunterz@62.182.234.189)
L13[02:28:01] ⇦ Quits: Doty1154 (Doty1154!~Doty1154@2601:648:8000:134f:c90a:a5e2:36ae:bb51) (Read error: Connection reset by peer)
L14[03:10:09] ⇦ Quits: Larry1123 (Larry1123!Larry1123@irc.larry1123.net) (Ping timeout: 194 seconds)
L15[03:20:46] ⇨ Joins: Larry1123 (Larry1123!Larry1123@irc.larry1123.net)
L16[03:25:33] ⇦ Quits: cpup (cpup!~cpup@24-151-98-142.dhcp.nwtn.ct.charter.com) (Ping timeout: 207 seconds)
L17[03:27:22] ⇨ Joins: cpup (cpup!~cpup@24-151-98-142.dhcp.nwtn.ct.charter.com)
L18[03:43:38] ⇨ Joins: Hgrebnednav (Hgrebnednav!~Hgrebnedn@d8D872A6E.access.telenet.be)
L19[04:11:24] ⇦ Quits: immibis (immibis!~chatzilla@122-60-111-246.jetstream.xtra.co.nz) (Ping timeout: 383 seconds)
L20[04:35:52] ⇦ Quits: McJty (McJty!~jorrit@ptr-9197ufqskchcl93d8j9.18120a2.ip6.access.telenet.be) (Quit: Leaving)
L21[04:40:27] ⇨ Joins: MajorPotato (MajorPotato!~MajorSlim@206.63.240.42)
L22[04:40:54] <MajorPotato> yo
L23[04:42:59] <MajorPotato> I had a question, or more like an opinion poll. I was wondering if people would be interested in a read-only registry option? (IE a registry type that is readable like normal, but not registered to and doesn't fire events. Instead its contents are generated by whatever mod owns it, probably just after the current register events are fired) Basically, I wanted to know if it might be something that would be accepted if I spent time to make a
L24[04:43:00] <MajorPotato> PR for it. Not sure how many other people would find it useful, but I would.
L25[04:43:37] <gigaherz> I have no idea of the use case for this
L26[04:44:48] <MajorPotato> Currently, I have a mod that creates several registries. Most of them I want to be able to be registered to by other mods, but one of which I want the contents generated using some conditions and data that is registered to the other registries.
L27[04:45:18] <MajorPotato> I don't want this registry to be writeable, but I want it to be read accessible just like other registries.
L28[04:45:42] <MajorPotato> Primarily because its a nice already existing system, and doesn't require much in the way of an API aside from a few interface base types.
L29[05:31:40] ⇨ Joins: KGS (KGS!~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L30[05:41:38] *** PaleOff is now known as PaleoCrafter
L31[05:45:17] ⇦ Quits: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93) (Ping timeout: 194 seconds)
L32[05:54:17] ⇨ Joins: ben_mkiv (ben_mkiv!~ben_mkiv@p4FED5E4F.dip0.t-ipconnect.de)
L33[05:58:14] ⇨ Joins: Hgreb (Hgreb!~Hgrebnedn@d8D872A6E.access.telenet.be)
L34[06:02:34] ⇦ Quits: Hgrebnednav (Hgrebnednav!~Hgrebnedn@d8D872A6E.access.telenet.be) (Ping timeout: 383 seconds)
L35[06:49:01] ⇦ Quits: Umbraco (Umbraco!~Umbraco@121-87-222-159f1.nar1.eonet.ne.jp) ()
L36[07:22:48] ⇦ Quits: Hgreb (Hgreb!~Hgrebnedn@d8D872A6E.access.telenet.be) (Ping timeout: 383 seconds)
L37[07:39:23] ⇨ Joins: Cast0077 (Cast0077!~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
L38[07:44:48] *** PaleoCrafter is now known as PaleOff
L39[07:45:25] ⇨ Joins: YourMCGeek (YourMCGeek!webchat@pool-68-134-67-35.bltmmd.fios.verizon.net)
L40[07:46:37] ⇨ Joins: Nedelosk (Nedelosk!~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de)
L41[07:48:59] ⇦ Quits: YourMCGeek (YourMCGeek!webchat@pool-68-134-67-35.bltmmd.fios.verizon.net) (Ping timeout: 180 seconds)
L42[07:49:43] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L43[08:09:24] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Quit: Lepidora)
L44[08:10:58] ⇦ Quits: quadraxis (quadraxis!~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 198 seconds)
L45[08:16:34] <barteks2x> MajorPotato, that looks like something that would be better done without using a forge registry, just maybe an immutable Map/Collection and some API to access it. Most of the difference between such collection and a registry is that registry ID mappings are saved in the world
L46[08:16:54] <barteks2x> and that there are registry events
L47[08:17:19] <barteks2x> if you don't want that, you are essentially left with immutable collection/map
L48[08:17:58] ⇨ Joins: MonkeyTyrant (MonkeyTyrant!~MonkeyTyr@142.163.129.161)
L49[08:18:49] <gigaherz> ID mappings meaning the internal numeric IDs assigned to each entry
L50[08:18:56] <gigaherz> back
L51[08:19:44] <barteks2x> you would use them only if you want to actually serizlize a lot of those objects (hundreds per chunk at least)
L52[08:20:29] <gigaherz> yep that's why I used a plain map in this
L53[08:20:31] <gigaherz> https://github.com/MinecraftForge/MinecraftForge/pull/4633#issuecomment-354519062
L54[08:23:14] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L55[08:25:53] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Read error: Connection reset by peer)
L56[08:26:33] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L57[08:27:29] ⇦ Quits: covers1624_ (covers1624_!~covers162@ppp122-232-6.static.internode.on.net) (Read error: Connection reset by peer)
L58[08:29:43] ⇨ Joins: covers1624 (covers1624!~covers162@ppp122-232-6.static.internode.on.net)
L59[08:32:11] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Quit: Lepidora)
L60[08:44:50] ⇦ Quits: MonkeyTyrant (MonkeyTyrant!~MonkeyTyr@142.163.129.161) (Quit: Leaving)
L61[08:47:40] ⇦ Quits: RichardG (RichardG!~richardg8@201.37.246.64) (Read error: Connection reset by peer)
L62[08:50:10] ⇨ Joins: RichardG (RichardG!~richardg8@201.37.246.64)
L63[08:50:11] MineBot sets mode: +v on RichardG
L64[09:07:03] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L65[09:08:25] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Read error: Connection reset by peer)
L66[09:09:06] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L67[09:16:29] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Quit: Lepidora)
L68[09:48:35] ⇨ Joins: Brokkoli (Brokkoli!~Brokkoli@p2E5B1E0E.dip0.t-ipconnect.de)
L69[09:48:42] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L70[09:52:30] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Read error: Connection reset by peer)
L71[09:53:13] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L72[10:11:40] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Read error: Connection reset by peer)
L73[10:11:56] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L74[10:17:46] *** Vaht is now known as Tahg
L75[10:31:18] ⇦ Quits: Zethalion (Zethalion!~Zethalion@095-097-058-227.static.chello.nl) (Ping timeout: 207 seconds)
L76[10:32:09] ⇨ Joins: Zethalion (Zethalion!~Zethalion@095-097-058-227.static.chello.nl)
L77[10:40:19] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Quit: Lepidora)
L78[10:54:34] *** PaleOff is now known as PaleoCrafter
L79[11:22:03] ⇨ Joins: sinkillerj (sinkillerj!~sinkiller@nc-67-238-187-249.dhcp.embarqhsd.net)
L80[11:27:46] ⇦ Quits: sinkillerj (sinkillerj!~sinkiller@nc-67-238-187-249.dhcp.embarqhsd.net) (Ping timeout: 198 seconds)
L81[11:35:53] ⇨ Joins: cpw_ (cpw_!~cpw@76.10.144.161)
L82[11:35:53] MineBot sets mode: +o on cpw_
L83[11:36:15] ⇨ Joins: Redfoxmoon (Redfoxmoon!~Red@77.16.76.85.tmi.telenormobil.no)
L84[11:38:27] ⇦ Quits: cpw (cpw!~cpw@23-233-58-185.cpe.pppoe.ca) (Ping timeout: 194 seconds)
L85[11:38:27] *** cpw_ is now known as cpw
L86[11:41:53] ⇨ Joins: sinkillerj (sinkillerj!~sinkiller@nc-67-238-187-249.dhcp.embarqhsd.net)
L87[11:54:09] ⇦ Quits: h404bi (h404bi!~h404bi@119.129.114.135) (Ping timeout: 200 seconds)
L88[12:10:47] ⇦ Quits: Unh0ly_Tigg (Unh0ly_Tigg!~Unh0ly_Ti@c-24-21-196-226.hsd1.or.comcast.net) (Quit: Leaving)
L89[12:12:23] <illy> beep o/
L90[12:14:03] <PaleoCrafter> boop \o
L91[12:16:10] <blackgem> ping
L92[12:35:28] ⇨ Joins: Commoble (Commoble!~Commoble@mnpl-04-3331.dsl.iowatelecom.net)
L93[12:43:01] ⇦ Quits: diamondice (diamondice!~quassel@jmst-ftth-sn-11.48.daktel.net) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
L94[12:46:22] ⇦ Quits: Searge (Searge!~Searge@c83-250-150-134.bredband.comhem.se) (Read error: Connection reset by peer)
L95[12:49:17] ⇨ Joins: McJty (McJty!~jorrit@ptr-9197ufoocmv5e324m9n.18120a2.ip6.access.telenet.be)
L96[13:00:31] <barteks2x> Using one dimensional arrays for 2d data is evil... I can't figure out what is wrong with my biome generation code
L97[13:01:32] <barteks2x> I tried swapping X and Z in a few places, with no luck. Except when I swap them in one specific place, the terrain shape generates fine, but everything else is broken. And I have no idea *why* it works
L98[13:01:47] <gigaherz> uhm
L99[13:02:06] <gigaherz> you might have one place where you do [x*WIDTH+y] instead of [y*WIDTH+x]
L100[13:02:29] <barteks2x> what...? where?
L101[13:02:45] <gigaherz> I have no idea how your code looks like
L102[13:03:04] <gigaherz> but if you are using a 1D array for 2D
L103[13:03:26] <Commoble> then you have to make double sure you're using the same format everywhere
L104[13:03:32] <gigaherz> chances are you index it using [y*WIDTH+x]
L105[13:03:38] <gigaherz> if you don'¡t use a getter for that
L106[13:03:46] <barteks2x> It partially works when I have it mixed up
L107[13:03:48] <gigaherz> which I guess you don't since you are using a 1D array for 2D
L108[13:03:59] <gigaherz> (so you think it's an advantage to do so)
L109[13:04:00] <barteks2x> It's because og GenLayers that I don't warp it in object
L110[13:04:27] <Commoble> I'm guessing he's doing that because the vanilla code is doing that
L111[13:04:33] <barteks2x> and as soon as it goes out of GenLayer I have iot nicely wrapped in objects
L112[13:04:55] <barteks2x> I'm doing that because I would have to wrap it separately in an object each time in each GenLayer
L113[13:05:24] <barteks2x> vanilla kind of forces it on me
L114[13:06:17] <Commoble> What you could do to help keep yourself from punching yourself in the foot is make a function like
L115[13:06:47] <Commoble> int flatten(x,y) = x*WIDTH + y
L116[13:07:10] <Commoble> (or however your format is) and then use that everywhere you need to index an array, and that'll ensure you have the same format everywhere
L117[13:07:22] <Commoble> or x,z
L118[13:07:25] <blackgem> I have a thing to ask you about when you're done with that
L119[13:08:39] <gigaherz> you can ask, no need to wait
L120[13:12:08] <blackgem> Okay, thanks :)
L121[13:12:25] <blackgem> I'm trying to set up a code for genetic traits passed on from mob to mob in breeding.
L122[13:13:24] <barteks2x> stupid IDEA... I compiled it a minute ago and it was fine, but now it
L123[13:13:28] <barteks2x> uses way too much ram
L124[13:13:40] <barteks2x> (the compiler)
L125[13:13:44] <illy> welcome to java IDEs :P
L126[13:15:03] <barteks2x> if I have x+y*width in GenLayer AND in ChunkGenerator, it dopes this: https://i.imgur.com/7eVVdHK.png and so I thought that if I swap them for both, it will work correctly but the I get this: Spectacle.E10186.png
L127[13:15:08] <barteks2x> *https://i.imgur.com/LJYJDTF.png
L128[13:15:59] <illy> huh when did imgur change its logo...
L129[13:16:16] <Commoble> sometime in the last month, I think
L130[13:16:36] <illy> why would they change it to something so... ugly
L131[13:16:59] * illy wonders how the community took it knowing imgur...
L132[13:19:22] <barteks2x> this is my GenLayer (the second screenshot): https://hastebin.com/huneyuloja.java and this is my code that uses it: https://hastebin.com/udinupujes.scala
L133[13:19:29] <barteks2x> (the second one is kotlin)
L134[13:19:35] <blackgem> KOTLIN
L135[13:19:38] <blackgem> XD
L136[13:19:57] <PaleoCrafter> I feel personally offended by that shitty language detection now
L137[13:20:55] <barteks2x> well, what is the code actually could be valid scala code?
L138[13:21:02] <Ordinastie> s/detection//
L139[13:21:21] <PaleoCrafter> Scala uses def as the function keyword, not fun
L140[13:21:30] <PaleoCrafter> that alone is telling enough
L141[13:22:08] <barteks2x> anyway, I have no idea what is wrong in my code
L142[13:22:29] <blackgem> 'kotlin' is what the word filter on my server replaces curse words with. :3
L143[13:22:32] <blackgem> Other then that I know nothing of it.
L144[13:22:41] <blackgem> 'kotlining admins'
L145[13:23:15] <illy> bah kotlin Scala is where it's at :P
L146[13:23:20] * illy hides
L147[13:23:36] <PaleoCrafter> I personally prefer Kotlin for mod dev by now, tbh
L148[13:23:47] <PaleoCrafter> Scala is too good for the MC code base
L149[13:24:09] <barteks2x> I would probably use kotlin for cubic chunks if I knew for sure it won't make my performance even worse
L150[13:24:31] <gigaherz> I'd like to see a real non-joke Javascript/typescript modding environment
L151[13:24:39] <barteks2x> and if I didn't have to deal with a mix of java and kotlin for the next few years
L152[13:24:55] <illy> gig I am thinking about doing a coffeecript one just to spite you
L153[13:24:58] <gigaherz> I can easily see stuff like items and blocks declared using requirejs-style module exports
L154[13:25:03] <gigaherz> illy: ugh
L155[13:25:14] <gigaherz> we use coffeescript at work
L156[13:25:18] <gigaherz> so I'm perfectly familiar with that
L157[13:25:24] <gigaherz> and that's why I dislike it :P
L158[13:25:44] <illy> damn it... what really really need is clojure mods
L159[13:25:55] <PaleoCrafter> I tried
L160[13:26:10] <PaleoCrafter> as long as you don't need reobfuscation, everything works fine
L161[13:26:14] <illy> try harder damn it :P
L162[13:26:49] <illy> thanks to emacs I kinda know lisp...
L163[13:26:50] <barteks2x> and I guess there is no way to reobfuscate javascript?
L164[13:26:54] <gigaherz> I'm thinking though, typescript would remove most of the fun of using JS, since it's typed so may as well jsut use java
L165[13:26:57] <barteks2x> oh wait
L166[13:26:59] <barteks2x> nvm
L167[13:27:08] <barteks2x> I think I mixed 2 parts of the discuission
L168[13:27:19] <gigaherz> yeah that was clojure :P
L169[13:28:04] <PaleoCrafter> for JS, you'd probably have a compat layer that could do some runtime (de)obfuscation or something like that
L170[13:28:09] <gigaherz> yeah
L171[13:28:21] <barteks2x> https://i.imgur.com/vfdEwuZ.png... how...
L172[13:28:24] <gigaherz> and it would need duck typing for declaring stuff :P
L173[13:28:26] <PaleoCrafter> Clojure also is reobfuscatable, just not with our current toolchain xD
L174[13:28:46] <gigaherz> what I really think would fit better
L175[13:28:53] <gigaherz> would be something like UnityScript's js dialect
L176[13:28:59] <gigaherz> http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
L177[13:29:06] <gigaherz> since it adds classes, and optional typing
L178[13:29:32] <illy> in theory you could just use the JS api and then use typescript compiler
L179[13:29:41] <gigaherz> (and removes the prototype-based instantiation stuff)
L180[13:30:52] <illy> what we need to do and I know somepeople will call me crazy but need this as a community is lolcode
L181[13:31:59] <gigaherz> wouldn't that cause WAY too many mods to be memes?
L182[13:32:29] <illy> you might have a point
L183[13:32:53] ⇦ Quits: McJty (McJty!~jorrit@ptr-9197ufoocmv5e324m9n.18120a2.ip6.access.telenet.be) (Quit: Leaving)
L184[13:33:06] <PaleoCrafter> nah
L185[13:33:27] <PaleoCrafter> that assumes people would actually make the effort of being productive in lolcode
L186[13:35:52] <gigaherz> anyone wants to lean a LOT OF THINGS! about python?
L187[13:35:52] <gigaherz> https://www.humblebundle.com/books/python-by-packt-book-bundle
L188[13:36:13] <PaleoCrafter> might be worth it just for the machine learning stuff xD
L189[13:36:21] <gigaherz> I personally don't care much about indentation-delimited langauges, but others might :P
L190[13:36:24] <Commoble> I just had the weirdest boner
L191[13:37:41] <Commoble> Eleven python books for $15? hnnngggg
L192[13:37:54] * gigaherz drops the link and walks back slowly
L193[13:37:57] <PaleoCrafter> something's terribly wrong with you
L194[13:38:18] <illy> gigaherz, you might like this if you don't like significant whitespaces https://skillsmatter.com/skillscasts/6088-the-worst-programming-language-ever
L195[13:38:22] <Commoble> wait no 25 books
L196[13:38:49] ⇨ Joins: Hgreb (Hgreb!~Hgrebnedn@d8d872a6e.access.telenet.be)
L197[13:39:05] <gigaherz> illy: I like indentation
L198[13:39:07] <gigaherz> for style purposes
L199[13:39:23] <gigaherz> I consider things to require delimiters, to avoid shooting yourself in the foot
L200[13:39:37] <gigaherz> you don't know just how many times I have wasted hours because I copypasted something with wrong indentation
L201[13:39:41] <illy> same I just hate it being forced like python...
L202[13:39:49] <gigaherz> and one of the lines was inside/outside its intended scope
L203[13:40:05] <barteks2x> Well, the part I don't like about it is that I can't just add 2 braces and hit "reformat"
L204[13:40:36] <barteks2x> of wrap something in if(false) without changing formatting
L205[13:43:54] <barteks2x> At this point I'm just ranbdoml;y chaging the code and hope I get it right at some point
L206[13:51:09] <Commoble> the only thing about python that really annoys me is that for some reason the standard for indentation is spaces instead of tabs
L207[13:51:23] <Commoble> you can take my tabs away when you pry them from my cold, dead hands
L208[13:51:35] <PaleoCrafter> get out
L209[13:51:37] <PaleoCrafter> right now
L210[13:51:52] <PaleoCrafter> that's just disgusting
L211[13:56:36] * illy hands Paleo a torch and a pitchfork
L212[13:58:40] <barteks2x> I think I tried all possible combinations of using X and Z in different order to access the data
L213[13:58:45] <barteks2x> none of it works...
L214[13:58:56] <barteks2x> Each of them breaks differently
L215[13:59:29] <barteks2x> Unless it's GenLayerVoronoiZoom being broken
L216[14:00:10] <barteks2x> Minecraft uses GenLayerVoronoiZoom in one place... it *could* be broken...
L217[14:00:17] <Commoble> oh fuck these were ebooks
L218[14:00:22] <Commoble> I immediately regret my decision
L219[14:00:25] <PaleoCrafter> ._.
L220[14:00:31] <PaleoCrafter> it's a humble bundle
L221[14:00:35] <PaleoCrafter> of course they're ebooks :P
L222[14:01:16] <barteks2x> Let's see if it works after replacing GenLayerVoronoiZoom with GenLayerZoom
L223[14:05:39] <barteks2x> nope
L224[14:06:55] <gigaherz> Commoble: eww, tabs, I can't be friends with you anymore >_<
L225[14:06:57] <gigaherz> ;P
L226[14:08:27] <gigaherz> there is only one thing worse than a code file with egyptian braces, tab indentations, and snake_case function names: a file with inconsistent indentation, inconsistent naming, AND inconsistent brace positions.
L227[14:09:46] <gigaherz> actually I lie.
L228[14:09:58] <gigaherz> there's other ways to place the braces that are worse than egyptian style
L229[14:10:16] <PaleoCrafter> https://i.imgur.com/wG51k7v.png
L230[14:10:17] <gigaherz> there are worse ways than tab indentation (example: 3-space indentation)
L231[14:10:18] <PaleoCrafter> most definitely
L232[14:10:26] <gigaherz> and there are worse things than snake_case.
L233[14:10:48] <illy> you should see a codebase of a mod I worked on I tried for months to get them to have a consistent coding stlye and I got yelled at for just doing cleanup...
L234[14:11:04] <gigaherz> PaleoCrafter: ahh... "I don't like delimiters so I shove them to theright" style... yeah definitely worse... even worse than inconsistent formatting.
L235[14:11:04] <Ordinastie> what's the mod ?
L236[14:11:33] <Ordinastie> PaleoCrafter, at least indentation is consistent
L237[14:11:41] <PaleoCrafter> true
L238[14:11:52] <illy> Runix the mod stopped at 1.7 im debaing about rewiting it 1.12... but im also lazy
L239[14:11:53] <PaleoCrafter> but I think the rest offsets that pretty well
L240[14:11:54] <gigaherz> if I hated delimiters that much, I'd refuse to program in that kind of language, and just write my own compiler, or langauge adapter
L241[14:12:04] <barteks2x> There is one more thing you can mess up: line endings :D and I've also seen that mixed in one file
L242[14:12:15] <PaleoCrafter> how? xD
L243[14:12:33] <illy> he would do it with black jack and hookers of course
L244[14:14:40] <illy> funfact rewriting git history is not fun
L245[14:14:41] <barteks2x> I don't think you can get worse than these braces, one of my programming teachers a few times wrote this kind of stuff (in C) https://hastebin.com/okiqebamiw.pl
L246[14:14:51] <illy> you mean perl :P
L247[14:15:22] <PaleoCrafter> that's GNU style?
L248[14:15:31] <barteks2x> is it?
L249[14:15:34] <barteks2x> I hope it's not
L250[14:15:46] <PaleoCrafter> loosk like it: https://en.wikipedia.org/wiki/Indentation_style#GNU_style
L251[14:15:56] <PaleoCrafter> actually, not quite
L252[14:16:05] <barteks2x> oh god...
L253[14:16:12] <barteks2x> someone actually *uses* this style!?
L254[14:16:50] <illy> well as a linux user I try to avoid GNUism as much as I can... :P aside from emacs illy <3's emacs
L255[14:17:29] ⇦ Quits: RichardG (RichardG!~richardg8@201.37.246.64) (Read error: Connection reset by peer)
L256[14:18:46] ⇨ Joins: RichardG (RichardG!~richardg8@201.37.246.64)
L257[14:18:47] MineBot sets mode: +v on RichardG
L258[14:22:39] <barteks2x> It's GenLayerVoronoiZoom being broken...
L259[14:23:17] <barteks2x> there is no way at all to use it correctly
L260[14:23:24] <barteks2x> aside of not using it
L261[14:23:29] <Commoble> sounds like a plan
L262[14:29:50] ⇦ Quits: Cast0077 (Cast0077!~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com) (Quit: Poof)
L263[14:32:14] <gigaherz> [21:15] (+PaleoCrafter): loosk like it: https://en.wikipedia.org/wiki/Indentation_style#GNU_style
L264[14:32:16] <gigaherz> WAIT WAIT WAIT
L265[14:32:27] <gigaherz> I always thought those files had messed indentation
L266[14:32:32] <gigaherz> due to conversion or whatever
L267[14:32:40] <PaleoCrafter> lol
L268[14:32:41] <gigaherz> I didn't realize people INTENTIONALLY did that!
L269[14:33:42] <PaleoCrafter> that indentation style would be way too much effort for me, because I don't think that IDEA supports it xD
L270[14:34:03] <gigaherz> there's certain things where, if I have to work on them
L271[14:34:09] <gigaherz> I MUST reformat first
L272[14:34:29] <gigaherz> like, I can work on egyptian+tabs code jsut fine
L273[14:34:33] <gigaherz> I don't like it, but I can work with that
L274[14:34:54] <gigaherz> but stuff like 3-space indentation, or 8-space indentation, or inconsistent code
L275[14:35:01] <gigaherz> yeah nope, reformat first, then code
L276[14:35:21] <gigaherz> that GNU style, I would have to reformat.
L277[14:36:01] ⇦ Quits: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de) (Remote host closed the connection)
L278[14:36:30] ⇨ Joins: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de)
L279[14:37:03] ⇦ Quits: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de) (Remote host closed the connection)
L280[14:37:40] <barteks2x> well it wouldn't be that bad if any IDE supported it
L281[14:38:05] <PaleoCrafter> it'd still be bad
L282[14:38:20] <gigaherz> it would still hurt my eyes.
L283[14:38:59] ⇨ Joins: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de)
L284[14:40:16] <barteks2x> yes but you could write more code whater way you want and then hit reformat
L285[14:44:23] ⇦ Quits: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de) (Remote host closed the connection)
L286[14:59:18] ⇦ Quits: Ipsis (Ipsis!~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 186 seconds)
L287[15:05:39] ⇨ Joins: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de)
L288[15:08:28] ⇦ Quits: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de) (Remote host closed the connection)
L289[15:10:16] ⇨ Joins: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de)
L290[15:12:04] <TechnicianLP> what does this piece of code actually do? https://i.imgur.com/wG51k7v.png (cc @PaleoCrafter)
L291[15:12:33] <PaleoCrafter> permutations or something?
L292[15:12:36] <PaleoCrafter> I dunno, I didn't write it :P
L293[15:13:03] <gigaherz> it swaps characters in an array
L294[15:13:14] <gigaherz> recursively.
L295[15:13:44] <gigaherz> and when it reaches the last depth level
L296[15:13:45] <gigaherz> it prints outs
L297[15:13:46] <gigaherz> so
L298[15:14:14] <gigaherz> in short: it prints outs all the permutations of the characters in the array, using a recursive implementation
L299[15:14:25] <gigaherz> and editing the array in-place
L300[15:14:59] <gigaherz> either it's a student exercise
L301[15:15:17] <gigaherz> or someone just wanting to give proper coders a headache :P
L302[15:15:48] <illy> using proper code makes professors think your plagiarizing code
L303[15:16:20] <TechnicianLP> yes - thanks for clarifying ... i didnt fully grasp what te recursion actually did (and the even check in the swap confused me)
L304[15:16:29] ⇦ Quits: Hunterz (Hunterz!~hunterz@62.182.234.189) (Quit: Leaving.)
L305[15:16:33] <illy> hey illy I saw you used regex to strip punctuation you must be using stolen code...
L306[15:17:09] * TechnicianLP breaks into the codebank
L307[15:17:16] <PaleoCrafter> hey illy, I saw you confused IRC with the terminal, you must be doing something wrong
L308[15:17:29] <illy> no that's just illy being a derp
L309[15:29:42] ⇨ Joins: williewillus (williewillus!~williewil@cpe-24-28-24-13.austin.res.rr.com)
L310[15:30:29] <williewillus> !dcc
L311[15:37:14] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L312[15:48:54] <gigaherz> oooh UnityScript compiler is in github
L313[15:48:55] <gigaherz> https://github.com/Unity-Technologies/unityscript
L314[15:49:05] <gigaherz> but ohshit, it's written in boo (a python dialect for .NET)
L315[15:50:01] <gigaherz> and it uses gradle... to compile boo
L316[15:50:17] <illy> wait what
L317[15:51:04] <gigaherz> it uses gradle to compile boo code into .net executables (mono?) in order to allow you to compile unityscript (a javascript with types) into .NET
L318[15:51:17] <gigaherz> so that the code can run in the mono environment within the Unity engine
L319[15:51:32] <illy> it looks like it also uses and ant file https://github.com/Unity-Technologies/unityscript/blob/unity-staging/default.build
L320[15:51:45] <illy> s/and/an/
L321[15:51:50] <gigaherz> nant
L322[15:51:52] <gigaherz> not just plain ant
L323[15:52:00] <barteks2x> damn, my unit test is running out of memory
L324[15:52:03] <gigaherz> it's like ant, but for .NET
L325[15:52:18] ⇨ Joins: Doty1154 (Doty1154!~Doty1154@2601:648:8000:134f:ed26:f7d8:bf32:b885)
L326[15:52:39] <Commoble> I don't think even Unity uses UnityScript anymore, to give a sense of perspective
L327[15:52:46] <barteks2x> I guess getting 250k arrays from IntCache isn't a good idea
L328[15:52:51] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Quit: Lepidora)
L329[15:53:09] <gigaherz> Commoble: yup
L330[15:53:13] <gigaherz> well
L331[15:53:16] <gigaherz> they are phasing it out
L332[15:53:23] <gigaherz> I don't know if it's still included
L333[15:53:26] <gigaherz> but it won't be for long
L334[15:53:53] <gigaherz> they are tired of maintaining that compiler, and they want to update to newer versions of Mono that support newer C# features
L335[15:54:26] <gigaherz> but still
L336[15:54:41] <gigaherz> I think a cleaned up version of that language would be a nice thing to write mods with
L337[15:54:42] <gigaherz> :P
L338[15:55:03] <gigaherz> ofc I'm not going to port the compiler from "sortof python" to something JVM-based
L339[15:55:06] <barteks2x> so all the tests I throw at it that verify that the code does what I want are successful, and yet it doesn't do what I want ingame...
L340[15:55:23] <gigaherz> even less take it upon myself ot maintain the codebase
L341[15:55:25] <barteks2x> I just want it so that no 2 biomes non-ocean biomes ever touch each other
L342[15:55:51] <gigaherz> I have no idea how biome selection works
L343[15:55:53] <gigaherz> so I can't help
L344[15:56:11] <gigaherz> I know it's not the way I was considering it for my "toy engine"
L345[15:56:47] <gigaherz> the way I thought I'd do it would be to have 4 noise seeds: elevation, temperature, humidity, roughness
L346[15:56:50] <illy> we need to make a language that uses a greek question mark instead of a semicolon
L347[15:56:53] <barteks2x> it's "start with something large scale, zoom in and add randomness, add more stuff, repeat"
L348[15:57:03] <gigaherz> and the biome would be selected based on a fuzzy selection of the values
L349[15:57:24] ⇨ Joins: immibis (immibis!~chatzilla@122-59-200-50.jetstream.xtra.co.nz)
L350[15:57:34] <barteks2x> temperature/humidity was how it worked in MC beta
L351[15:58:01] <barteks2x> and then the released beta 1.8 that removed all of it and replaced it with the cuirrent GenLayers
L352[15:58:06] <gigaherz> heh
L353[16:00:00] <barteks2x> I exported an image withmy biome layout and it works as I expect. Except that ingame it doesn't
L354[16:00:50] <Commoble> then the game isn't reading your biome layout the way you're expecting it to
L355[16:01:17] <barteks2x> unless GenLayerVoronoiZoom is *that* weird
L356[16:02:49] <barteks2x> it's not that
L357[16:03:54] <Commoble> mm
L358[16:04:33] <Commoble> well, *somewhere* there's an assumption you're making that you firmly believe to be true, except it isn't. Those are tricky to figure out.
L359[16:06:37] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L360[16:07:19] <barteks2x> these 2 tests are successful: https://hastebin.com/ufawicuvaf.java this is how I use it in biome provider: https://hastebin.com/ikisebihuz.cs and this is the genlayer https://hastebin.com/korofeziwe.java
L361[16:07:38] <barteks2x> the test are ok and yet ingame, I can see islands made of 3 different biomes
L362[16:09:25] ⇦ Quits: dangranos (dangranos!~dangranos@hekate.pc-logix.com) (Ping timeout: 190 seconds)
L363[16:09:25] ⇦ Quits: Techokami (Techokami!Techokami@znc.theender.net) (Ping timeout: 190 seconds)
L364[16:10:19] ⇨ Joins: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93)
L365[16:10:43] ⇨ Joins: killjoy (killjoy!~killjoy@cpe-2606-A000-1118-82FA-93D-DC93-D786-7003.dyn6.twc.com)
L366[16:11:33] ⇨ Joins: Techokami (Techokami!Techokami@znc.theender.net)
L367[16:11:43] ⇨ Joins: dangranos (dangranos!~dangranos@hekate.pc-logix.com)
L368[16:15:10] ⇦ Quits: Hgreb (Hgreb!~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping timeout: 198 seconds)
L369[16:20:30] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Quit: Lepidora)
L370[16:20:34] ⇦ Quits: lp (lp!~lordpipe@66.109.211.167) (Ping timeout: 198 seconds)
L371[16:27:18] ⇦ Quits: SuperCoder79 (SuperCoder79!~SuperCode@c-98-192-10-12.hsd1.ga.comcast.net) (Read error: Connection reset by peer)
L372[16:34:27] ⇨ Joins: SuperCoder79 (SuperCoder79!~SuperCode@c-98-192-10-12.hsd1.ga.comcast.net)
L373[16:35:13] ⇨ Joins: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L374[16:38:06] ⇨ Joins: lp (lp!~lordpipe@66.109.211.167)
L375[16:38:08] ⇨ Joins: Lepidora_ (Lepidora_!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com)
L376[16:39:51] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Ping timeout: 207 seconds)
L377[16:39:52] *** Lepidora_ is now known as Lepidora
L378[16:40:17] <heldplayer> <barteks2x> temperature/humidity was how it worked in MC beta
L379[16:40:29] <barteks2x> exactly what i said...
L380[16:40:29] <heldplayer> With the smooth transitions, oh how I had forgotten those
L381[16:40:32] <barteks2x> oh.
L382[16:40:35] <barteks2x> You quoted me
L383[16:40:40] <heldplayer> Yeah ;)
L384[16:41:24] <barteks2x> it had smooth transitions because instead of first generationg biomes and then using biome colors for colors, it directly used the underlying temperature and humidity for color
L385[16:41:42] <heldplayer> Might be an idea for a mod (if it doesn't exist yet), save temperature and humidity per chunk and use that for the 'biome' rather than the current system
L386[16:42:03] <heldplayer> And in effect the color of the grass per block
L387[16:42:09] <heldplayer> Yeah I know ;)
L388[16:42:13] <barteks2x> except afaik it doesn't ever actually generate humidity or temperature
L389[16:42:59] <heldplayer> I remember the criticism on it was that the transitions between biomes got very hard compared to before
L390[16:43:16] <barteks2x> they fixed it by assigning temperature categories to biomes
L391[16:43:33] <barteks2x> and making sure that 2 biopmes with opposite temperature categories don't generate next to each other
L392[16:43:36] <gigaherz> I do wish biomes were "fuzzier"
L393[16:43:47] <gigaherz> but it would make generation a bit weirder
L394[16:43:48] <gigaherz> like
L395[16:44:19] <barteks2x> OTG BiomeBundle does it quite nice
L396[16:44:32] <barteks2x> it has I think over 600 biomes now
L397[16:44:36] <Commoble> weirder how
L398[16:44:36] <heldplayer> Nice
L399[16:44:37] <barteks2x> or maybe 300?
L400[16:44:38] <gigaherz> how would you generate trees in a biome that's 37% forest and 23% plains, 11% hills, ...
L401[16:44:50] <gigaherz> s/and/,/
L402[16:45:11] <barteks2x> you would generate 37% of the amount of trees from forest, 23% of those from plains and 11% of thise from hill;s
L403[16:45:16] <Commoble> "The Deadlands stand before you. The twitching arms protrude from the ground, endlessly reaching for things beyond their grasp"
L404[16:45:30] <gigaherz> but since it changes smoothly, you would have to decide, per column?
L405[16:45:44] <gigaherz> I guess it could work...
L406[16:45:59] <gigaherz> "this column has 10% chance of oak, 5% chance of birch, 2% chance of spruce"
L407[16:46:01] <gigaherz> and generate from that
L408[16:46:04] <barteks2x> vanilla already does population only based on biome from one corner of a chunk
L409[16:46:33] <gigaherz> also
L410[16:46:41] <barteks2x> with fuzzy biomes, you could do some sampling
L411[16:47:06] <gigaherz> back to the idea of using [elevation,temperature,humidity,roughness] as an input to a decision network
L412[16:47:24] <gigaherz> what biome would be (low temp, low humidity) ?
L413[16:47:49] <Commoble> Dwarf Fortress uses temperature, precipitation, and drainage
L414[16:48:07] <barteks2x> actually, mc beta assumed there are no biomes with high humidity and low temperatures
L415[16:48:15] <barteks2x> that all low temperature biomes are low humidity
L416[16:48:29] <gigaherz> that makes no sense
L417[16:48:32] <barteks2x> before selecting biome, it first multiplied the raw humidity by temperature
L418[16:48:41] <Commoble> if you replace humidity with rainfall you'd get a snowy tundra
L419[16:48:42] <gigaherz> low temps have a lower capacity for water vapor
L420[16:48:46] <gigaherz> meaning there's always more humidity :P
L421[16:48:55] ⇦ Quits: lp (lp!~lordpipe@66.109.211.167) (Quit: WeeChat 2.0.1)
L422[16:48:58] <barteks2x> but in absolute terms the humidity is lower
L423[16:49:31] <barteks2x> well, noone actually knows if notch intended it to be rainfall or humidity
L424[16:49:34] <gigaherz> Commoble: IMO rainfall is a function of humidity :P
L425[16:49:39] <gigaherz> more humidity -> higher chance of rain
L426[16:49:44] <Commoble> right
L427[16:49:46] <barteks2x> some deobfuscation mappings caalled it one way, some ote pther way
L428[16:50:12] <blackgem> Bye
L429[16:50:48] <gigaherz> (low altitude, high humidity) -> sea
L430[16:51:04] ⇦ Quits: Lepidora (Lepidora!~Lepidora@host86-137-214-168.range86-137.btcentralplus.com) (Quit: Lepidora)
L431[16:51:06] <barteks2x> also the 4-variable thing is what I experimented with once
L432[16:51:14] <barteks2x> let me fine the super-old branch for it
L433[16:51:18] <gigaherz> (mid altitude low humidity) -> desert
L434[16:51:51] <gigaherz> (high altitude low humidity) -> plateau
L435[16:52:05] <Commoble> they say plateaus are the highest form of flattery
L436[16:53:51] <gigaherz> ....... lol
L437[16:53:54] ⇨ Joins: lp (lp!~lordpipe@66.109.211.167)
L438[16:59:57] <barteks2x> found it
L439[17:00:07] <barteks2x> https://github.com/OpenCubicChunks/CubicChunks/blob/f1ecf7e23c34a0af2f750628fc72a60a6af4272c/src/cuchaz/cubicChunks/generator/biome/alternateGen/AlternateBiomeGen.java
L440[17:00:08] <barteks2x> https://github.com/OpenCubicChunks/CubicChunks/blob/f1ecf7e23c34a0af2f750628fc72a60a6af4272c/src/cuchaz/cubicChunks/generator/biome/alternateGen/BiomeFinder.java
L441[17:00:31] <barteks2x> and https://github.com/OpenCubicChunks/CubicChunks/blob/f1ecf7e23c34a0af2f750628fc72a60a6af4272c/src/cuchaz/cubicChunks/generator/biome/alternateGen/AlternateWorldColumnManager.java
L442[17:01:55] <barteks2x> 50$ for anyone who can compile that repository either on that commit or +-5 commits in the history
L443[17:02:02] <barteks2x> and have it run
L444[17:02:14] <barteks2x> (no not really, btu I doubt anyone cando that)
L445[17:06:06] <TechnicianLP> define run?
L446[17:06:38] <barteks2x> you should be able to create a cubic chunks world with this commit
L447[17:06:49] <barteks2x> I used to be able to do that
L448[17:07:05] <barteks2x> now... I would rather backport my current code to 1.7.10
L449[17:07:08] <MajorPotato> back. barteks, I actually *do* want to use the registry for its ID mapping. Believe me, I'm not saying this just taking a look at the registry system and going "hey that looks cool". I've spent some time investigating it
L450[17:07:45] <MajorPotato> In addition, the registries are accessible without an API function needed at all, which is another appealing reason to use them
L451[17:08:01] <barteks2x> you need some way to get the registry object
L452[17:08:21] <gigaherz> there's some reigstry manager, with a get(ClassName.class) method
L453[17:08:34] <MajorPotato> yes, so you need an API in the form of interfaces, for the base type
L454[17:08:39] <barteks2x> well the I guess you are right
L455[17:08:51] <MajorPotato> but as soon as you get into having a concrete object, that API gets much more complicated
L456[17:08:55] <MajorPotato> and requires a library mod
L457[17:09:50] <barteks2x> There probably is a way to not game the registry event fired,and then you just need to disallow any fiurther registrations after you add your stuff to it
L458[17:10:06] <LexMobile> MajorPotato: You dont want a registry
L459[17:10:06] <gigaherz> that's already present, IIRC?
L460[17:10:13] <LexMobile> Stop trying to use Forge's registry
L461[17:10:24] <LexMobile> You want a immutible map
L462[17:10:49] <MajorPotato> I understand the basic premise of that lex, but I actually want the ID map and all the baggage that comes with the registry system
L463[17:11:08] <gigaherz> except the part where it's designed for people to register things into it....
L464[17:11:12] <LexMobile> Why?
L465[17:11:26] <MajorPotato> For both serialization and synchronization
L466[17:11:39] <LexMobile> Buzzwords, explain better
L467[17:13:40] <MajorPotato> The client and server can have different data for the registries i'm creating, so it needs to be synchronized properly. Now, this is the one section I haven't dug too deep into, but I believe the registries have a way of handling syncing...?
L468[17:14:00] <LexMobile> Yes, and no.
L469[17:14:07] ⇦ Quits: c233 (c233!~c233@164.40.196.203) (Killed (NickServ (GHOST command used by c233_!~c233@164.40.200.65)))
L470[17:14:08] <LexMobile> It doesn't sync the data. It just syncs the ID map.
L471[17:14:10] ⇨ Joins: c233 (c233!~c233@164.40.200.65)
L472[17:14:24] <MajorPotato> In addition, as I already mentioned, its easier to have an API for using the registries, as only interface types are required, and not concrete objects, which would require a library.
L473[17:14:30] <MajorPotato> And yes, thats perfect
L474[17:14:39] <LexMobile> Why are you using ids?
L475[17:17:07] <LexMobile> And your whole line about concrete objects vs interfaces and their relation to needing a 'library'... both would need one.... If you have hard references to the types.
L476[17:17:22] <MajorPotato> For a variety of reasons. One of which is because I'm attaching this data to items/blocks, so I'm using ids for lookup. And yes the ids can change per world, as diff worlds may have diff data, depending on client/server differences or simply a client changing options. (Part of my mod reads from a bunch of JSON files)
L477[17:17:46] <LexMobile> define attaching to blocks?
L478[17:17:54] <LexMobile> How often is this used?
L479[17:17:59] <LexMobile> Is it sent over the wire?
L480[17:18:01] <MajorPotato> No, my API as it is is just interfaces. That API can be included as just the API, without needed the mod behind it
L481[17:18:01] ⇦ Quits: armed_troop (armed_troop!~armedtroo@pool-108-2-113-105.phlapa.fios.verizon.net) (Quit: Bye)
L482[17:18:10] <LexMobile> Are you expecting 10 instaces or 1,000,000,000?
L483[17:18:18] ⇦ Quits: williewillus (williewillus!~williewil@cpe-24-28-24-13.austin.res.rr.com) (Quit: Leaving)
L484[17:18:24] <LexMobile> Thats what a fucking API is...
L485[17:18:30] <MajorPotato> yes
L486[17:18:33] <MajorPotato> but not a library
L487[17:18:48] <MajorPotato> ok
L488[17:18:50] <MajorPotato> lemme rephrase
L489[17:18:58] <LexMobile> They are different things. Your library is a method of shipping your api.
L490[17:19:22] <MajorPotato> if I have a concrete object, the mod will be required at runtime. If its just the API, it will be optional
L491[17:19:23] <LexMobile> It doesnt matter if its concrete classes or interfaces, its all exactly the same in the end
L492[17:19:35] <LexMobile> No... thats not how any of this works
L493[17:19:48] <MajorPotato> It is how the way I'm doing it works, and how I want it to work
L494[17:19:55] <LexMobile> If they use your API the API spec needs to exist
L495[17:20:25] <LexMobile> It has NOTHING to do with being a interface or a concerete object. All they see is a interface
L496[17:20:35] <MajorPotato> the API is just a collection of interfaces, which they are expected to implement and register to the registries, or retrieve from the registry
L497[17:21:03] <MajorPotato> if the mod behind it exists, there will be no registry, so there will be no data, and nothing will happen
L498[17:21:06] <MajorPotato> er
L499[17:21:09] <MajorPotato> if it doesn't exist
L500[17:21:17] <LexMobile> Either way, use the registry as it is and just tell people to not register shit
L501[17:21:22] <LexMobile> or roll your own.
L502[17:21:37] <LexMobile> the entire point of the registry system in forge is to be expandable by multiple mods.
L503[17:21:48] <barteks2x> Isn't freezing a registry kind of designed to not allow registring stuff to it?
L504[17:21:57] <LexMobile> Yes
L505[17:22:15] <LexMobile> But thats more of state based on engine state thing
L506[17:22:16] <MajorPotato> Thats after the registry events happen though, so everything should already be registred
L507[17:22:36] <barteks2x> And it's impossible to freeze a registry earlier?
L508[17:22:58] <MajorPotato> The thing is, the data in my registry that I want to be generated requires data from other registries of mine that I expect people to add to
L509[17:23:10] <LexMobile> It may be, but it would be a hack that would screw up the internals of rebuilding the registries
L510[17:23:19] <MajorPotato> Hmm
L511[17:23:32] <MajorPotato> Is there any way to request priority for when the register event visits you?
L512[17:23:37] <LexMobile> no
L513[17:23:42] <gigaherz> MajorPotato: you are giving a whole lot of reason why you think you need it, but also a whole lot of reasons why rolling your own would be best
L514[17:23:43] <LexMobile> its alphabetical
L515[17:23:54] <MajorPotato> If not, would that be something that might be possible to add?
L516[17:24:02] <MajorPotato> yeah, thats why I'm reconsidering
L517[17:24:08] <LexMobile> why would people besides yourself use this registry?
L518[17:24:17] <MajorPotato> but priority requests would be something else
L519[17:24:23] <LexMobile> No we are not going to add a priority syetem
L520[17:24:32] <gigaherz> I believe it was already proposed
L521[17:24:34] <gigaherz> and the PR was rejected
L522[17:24:37] <MajorPotato> k then. may I ask why?
L523[17:24:44] <LexMobile> This is an explicity design decision that was debated quite throughly
L524[17:25:18] <barteks2x> My guess is that people would try to be the first or the last to receive and event and when 2 mods attempt that it wouldnever work anyway
L525[17:25:28] <Commoble> I'm assuming it's because we don't want the order in which mods are registered to matter
L526[17:26:09] <gigaherz> well if it wasn't out of the question, it would have to be a system similar to the mod dependencies, or the old recipe sorter
L527[17:26:18] <gigaherz> with "before:class,after:class"
L528[17:26:36] <gigaherz> so it wouldn't be mod-order-dependant either way
L529[17:26:48] <LexMobile> Long story short, its a rats nest and will never happen
L530[17:27:03] <gigaherz> but since it is out of the queston, who cares :P
L531[17:34:07] <MajorPotato> Honestly, I'd be happy with a way to ensure my one registry is visited after my others, but atm there's no way short of naming it with a 'z' in front or something, and hoping that never changes
L532[17:34:24] <LexMobile> Do that
L533[17:34:33] <MajorPotato> ... thats horrible
L534[17:34:44] <MajorPotato> I do want it read-accessible by other mods
L535[17:34:55] <LexMobile> And? Why?
L536[17:35:02] <gigaherz> ZeFeatureName
L537[17:36:24] <MajorPotato> Essentially, my other registries are types that can be registered, namely components and properties. The one I want generated contains objects that hold actual values associated with those types.
L538[17:36:44] <MajorPotato> (But are also types themselves, in a larger way)
L539[17:36:51] <LexMobile> Wat
L540[17:37:19] <gigaherz> it would really help if you did describe exactly what you are doing
L541[17:37:32] <gigaherz> it's not like anyone here is going to run away with your idea :P
L542[17:37:39] <barteks2x> explaining how something is supposed to work without explaining exactly what it does usually leads to that kind of reaction at some point
L543[17:37:45] <MajorPotato> yes, but it would take a while
L544[17:37:48] <MajorPotato> several walls of text
L545[17:37:53] <MajorPotato> if you really want...
L546[17:38:53] <gigaherz> well it would certainly reduce the "wat why?" questions -- either people would TL;DR and go elsewhere, or they would understand why you think you need this :P
L547[17:45:56] <barteks2x> O.o why this just evaluates to y? ((long) x) << 32 | y
L548[17:46:25] <LexMobile> because y is an int
L549[17:46:33] <barteks2x> yes but I case x to long
L550[17:46:44] <LexMobile> and shift it by an int
L551[17:47:01] <barteks2x> shouldn't long << int -> long and long | int -> long?
L552[17:47:17] <LexMobile> Sometimes
L553[17:47:40] <TechnicianLP> try brackets?
L554[17:48:00] <barteks2x> (((long) x) << 32L) | y tried this too
L555[17:48:14] <barteks2x> WAT
L556[17:48:14] <Commoble> are you casting y to a long too
L557[17:48:16] <barteks2x> (((long) x) << 32L) | ((long)y)
L558[17:48:19] <barteks2x> this also evaluates to y
L559[17:48:22] <Commoble> wut
L560[17:48:29] <gigaherz> that means x is 0? :P
L561[17:48:47] ⇨ Joins: Dark (Dark!~MrDark@2607:fcc8:d48b:eb00:345a:997f:302e:b23b)
L562[17:48:52] <Commoble> what sorcery is this
L563[17:49:10] <barteks2x> https://i.imgur.com/1T0fkmc.png
L564[17:49:48] <MajorPotato> The basic premise is to expand on the OreDictionary in a more concrete way. Instead of assigning blocks/items names, the idea is to create "Materials" for every unique material type (silver, iron, etc). These Materials are comprised of Components and Properties, with Components comprising the 'ore', 'ingot', etc part of the OreDictionary name. Properties are property keys that represent specific values for a material (or override values
L565[17:49:48] <MajorPotato> that are unique to a material+component combo), such as a blocks hardness, or the color data needed for the texture (which is generated at startup from grayscale images and color data). Both components and properties can be created and registered by other mods, and there are some common ones included in the base mod. Materials on the other hand, are created by the base mod by scanning OreDictionary entries (also just realized I need to wait
L566[17:49:49] <MajorPotato> until OreDictionary entries are registered, that adds another kink). Materials can also be read from a disk directory of JSON files. There's several config options to control how the combo of JSON + generating works. Finally, each component has an instance type, such as a block or item that is a representation of the component and a material for actual usages.
L567[17:50:02] <barteks2x> I'm askign this in ##java
L568[17:50:19] <MajorPotato> Another section of the mod will attempt to go through world gen, recipes etc and replace equivalent OreDictionary entries will the component instances.
L569[17:50:46] <LexMobile> jshell> ((long)x << 32) | y
L570[17:50:46] <LexMobile> $11 ==> 4294967298
L571[17:50:49] <LexMobile> Seems to work
L572[17:51:01] <MajorPotato> ^ Long explanation, but also allowed me to realize that registry might not work anyways because I need to wait for OreDictionary to be populated >_>
L573[17:51:15] <LexMobile> OreDict is never populated
L574[17:51:23] <barteks2x> https://i.imgur.com/S5uDTdJ.png
L575[17:51:27] <barteks2x> doesn't work for me
L576[17:51:49] <PaleoCrafter> oh...
L577[17:51:56] <LexMobile> also besides that, you're reinventing the horse i think... 1.13's tags may be a solution
L578[17:51:59] <PaleoCrafter> it's because of two's complement
L579[17:52:10] <PaleoCrafter> if you convert the negative to a long, it'll become mostly ones
L580[17:52:21] <gigaherz> yeah
L581[17:52:23] ⇦ Quits: auenf (auenf!~David@cpe-60-229-41-184.lns8.ken.bigpond.net.au) (Ping timeout: 200 seconds)
L582[17:52:27] <MajorPotato> oh? I haven't looked at 1.13 much (I started this probably six months ago)
L583[17:52:34] <gigaherz> or != +
L584[17:52:38] <barteks2x> (((long) x) << 32L) | (((long)y)&0xFFFFFFFFL) works
L585[17:52:53] <gigaherz> MajorPotato: they are adding "tags" which are lists of items, for use in commands and recipes
L586[17:53:06] <gigaherz> so like, if you declare a tag "yourmod:foodstuffs"
L587[17:53:13] <gigaherz> which includes baked potatoes, steak, ...
L588[17:53:17] <MajorPotato> oh
L589[17:53:20] <LexMobile> oh oh god
L590[17:53:22] <MajorPotato> no, doesn't do what I'm doing
L591[17:53:25] <gigaherz> then you can make a recipe use "tag": "yourmod:foodstuffs"
L592[17:53:30] <LexMobile> you're doing runtime texture gneration
L593[17:53:34] <LexMobile> the fuck is wrong with you...
L594[17:53:36] <MajorPotato> yes and no
L595[17:53:54] <MajorPotato> startup time, not runtime. and they will be cached
L596[17:54:04] <LexMobile> same thing
L597[17:54:11] <LexMobile> either way it should be done at build time
L598[17:54:12] <MajorPotato> much less of a performance hit
L599[17:54:17] <gigaherz> it blows up the atlas
L600[17:54:30] <MajorPotato> not possible. there's infinite possibilities
L601[17:54:33] <MajorPotato> hmm
L602[17:54:36] <LexMobile> no there isnt
L603[17:54:42] <LexMobile> there is a base and a overlay
L604[17:54:47] <gigaherz> even vanilla ores
L605[17:54:49] <LexMobile> there are literally 2 possibilities
L606[17:54:49] <MajorPotato> the overlay is unknown
L607[17:54:54] <LexMobile> overlay IS known
L608[17:54:56] <gigaherz> should just be two-layer textures
L609[17:54:59] <MajorPotato> there could be any amount
L610[17:55:08] <MajorPotato> depending on what materials are registered
L611[17:55:09] <gigaherz> base = plain stone, overlay = the pixels to draw on top
L612[17:55:20] <LexMobile> gigaherz: yell at grum
L613[17:55:26] <gigaherz> just because vanilla doesn't do that, doesn't mean mods shouldn't do better
L614[17:55:41] <gigaherz> forge already has multi-layer models
L615[17:55:44] <MajorPotato> um, you can actually do that
L616[17:55:46] <LexMobile> you're wanting to reinvent what tinkers construct does
L617[17:55:55] <gigaherz> which can be used to draw both an opaque and a cutout model, in the same block
L618[17:55:59] <LexMobile> which can be done as a simple base testure + overlay + tint
L619[17:56:11] <MajorPotato> it was my original way. you can do it with the json models
L620[17:56:18] <LexMobile> then do it
L621[17:56:21] <gigaherz> and item models already have texture layers with per-layer tints
L622[17:56:22] <LexMobile> quite this runtime shit
L623[17:56:32] <LexMobile> Minecraft is moving to data driven, get your code out of your mod
L624[17:56:37] <MajorPotato> actually, I still am. but thats not the issue. The color of the overlay is unknown
L625[17:56:44] <LexMobile> no its not
L626[17:57:06] <gigaherz> put it in a resource pack, some .json file or whatever
L627[17:57:09] <gigaherz> like mc does for animation data
L628[17:57:10] <MajorPotato> yes it is. There is a unique color per material, and materials are determined at runtime
L629[17:57:20] <LexMobile> materials are not determined at runtime
L630[17:57:21] <gigaherz> if you are concerned with resourcepacks changing the colors
L631[17:57:29] <LexMobile> you just stated it yourself that other modders register them
L632[17:57:32] <LexMobile> they know it at build time
L633[17:58:00] <MajorPotato> .... I see what your saying
L634[17:58:22] <MajorPotato> But I also do an average of registered colors for a material, since it can have more than one
L635[17:58:31] ⇨ Joins: auenf (auenf!~David@CPE-139-168-72-108.lns4.cht.bigpond.net.au)
L636[17:58:36] <LexMobile> you could do that
L637[17:58:46] <LexMobile> or you could just do last one wins like resource packs
L638[17:58:55] <MajorPotato> thats actually a config option I have
L639[17:59:13] <MajorPotato> i'll look into that
L640[17:59:14] <gigaherz> nothing prevents you from averaging the given tint colors anyhow
L641[17:59:22] <MajorPotato> tint doesn't work
L642[17:59:24] <gigaherz> since tints are provided through an IBlockColor/IItemColor
L643[17:59:30] <LexMobile> Thats also true, but that would be more work
L644[17:59:32] <MajorPotato> the whole reason I was doing this system was to avoid tint
L645[17:59:39] <LexMobile> use tints
L646[17:59:42] <LexMobile> from the json
L647[17:59:42] <MajorPotato> tint doesn't provide the blending I need
L648[17:59:49] <MajorPotato> no, their blend implementation is horrendous
L649[17:59:52] <LexMobile> then use better overlays
L650[18:00:13] <gigaherz> ? the tint just does color*multiplier, you give it grayscale, it outputs color
L651[18:00:27] <MajorPotato> yes, and that's horrendous
L652[18:00:44] <MajorPotato> the blending I'm doing is at minimum using Overlay blending, but usually using color curves
L653[18:01:13] <MajorPotato> https://en.wikipedia.org/wiki/Blend_modes
L654[18:01:46] <MajorPotato> It would be nice if there was an option to change the blend mode for tinting
L655[18:01:52] <MajorPotato> but idk if thats even possible
L656[18:02:47] <gigaherz> it would require doing the blending on a shader
L657[18:03:19] <MajorPotato> anyways, the color part is irrelevant to the original issue. Lex, you said the OreDictionary isn't populated, what exactly do you mean by that? By populated I mean when people actually register stuff to it
L658[18:03:21] <gigaherz> or wait hmm
L659[18:03:29] <gigaherz> Ican't remember if mc applies the tints on cpu of gpu
L660[18:03:31] <gigaherz> or*
L661[18:03:37] <LexMobile> Oredict is oldshit
L662[18:03:44] <LexMobile> it gets popilated at whim
L663[18:03:49] <LexMobile> which is fucking annoying
L664[18:03:52] <gigaherz> cpu.
L665[18:04:00] <gigaherz> so effectively
L666[18:04:04] <MajorPotato> honestly, its anyone's guess for the tints. MC is a frankenstein of rendering technology
L667[18:04:10] <MajorPotato> and yes Lex, I agree
L668[18:04:17] <gigaherz> all it does is multiply the color of each vertex
L669[18:04:23] <gigaherz> which later gets used in the rendering
L670[18:04:34] <gigaherz> using the gpu's blending (which is linear)
L671[18:04:42] <MajorPotato> ah
L672[18:04:55] <MajorPotato> and MC doesn't use shaders by default I don't think (could be wrong)
L673[18:05:11] <gigaherz> not so far as you are concerned
L674[18:05:38] <gigaherz> (if there's any shader, it's beyond what a mod is able to customize without coremodding)
L675[18:05:47] <TechnicianLP> MajorPotato: you can still use a custom baked model and set the tintcolor manually based on state or something
L676[18:06:01] <gigaherz> TechnicianLP: yes but it won't change the actual blending of the texture
L677[18:06:06] <MajorPotato> Its not the tintcolor thats the issue. Read up ^ XD
L678[18:06:18] <gigaherz> the gpu effectively does:
L679[18:06:36] <MajorPotato> It does the default interpolation between vertices, right?
L680[18:06:37] <gigaherz> target.color = target.color * (1-alpha) + source.color*(alpha)
L681[18:06:52] <gigaherz> where source.color = texture.color * vertex.color
L682[18:07:05] <gigaherz> where vertex.color = interpolated values between vertices
L683[18:07:07] <MajorPotato> its essentially just Multiply blend
L684[18:07:21] <barteks2x> I was able to actually use vanilla shaders code successfully, btu haven't tried changing the shaders
L685[18:07:26] <gigaherz> it's essentially
L686[18:07:37] <barteks2x> *changing themn ingame
L687[18:07:43] <gigaherz> texture * vertex, yes
L688[18:07:52] <MajorPotato> wouldn't need to change them ingame
L689[18:08:06] <MajorPotato> wait
L690[18:08:07] <gigaherz> which means
L691[18:08:15] <MajorPotato> no actually yes I probably would
L692[18:08:18] <gigaherz> texture * model vertex value * tint value
L693[18:08:35] <barteks2x> I just use the shaders in my GUII, which was hard enough to figure out
L694[18:08:48] <gigaherz> yeah but gui != model system
L695[18:09:01] <gigaherz> you can also technically use shaders in a TESR, or in an entity renderer
L696[18:09:06] <MajorPotato> shaders in a GUI? What on earth are you doing in the GUI...
L697[18:09:09] <gigaherz> but since we were talking block models...
L698[18:09:21] <barteks2x> MajorPotato, dynamic preview of terrain generator result based on settings
L699[18:09:25] <MajorPotato> ah
L700[18:09:29] <MajorPotato> nice
L701[18:10:38] <MajorPotato> Unfortunately, it looks like I'm going to have to use an ImmutableMap for my Materials anyways, because of the OreDictionary >_>
L702[18:11:52] <MajorPotato> Really wanted to avoid that, as it makes my mod required to use the API, not optional
L703[18:12:22] <illy> I could have gotten more work done but then I found a beer...
L704[18:12:33] <MajorPotato> XD
L705[18:13:45] <illy> git pull
L706[18:14:04] <barteks2x> my biome generation finally works https://i.imgur.com/PykLMao.png
L707[18:14:30] ⇦ Quits: KGS (KGS!~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout: 186 seconds)
L708[18:15:33] <MajorPotato> Also random note, but I noticed that Coal isn't added to the OreDictionary by default
L709[18:16:43] <MajorPotato> (in item form, anyways)
L710[18:17:01] <gigaherz> people haven't complained enough about it, I suppose
L711[18:18:11] <MajorPotato> feature request or something?
L712[18:18:35] <gigaherz> you would have to make your case as to why "coal" needs to be in the oredict
L713[18:18:50] <MajorPotato> Maybe its because it doesn't match any of the default oredict prefixes
L714[18:19:09] <gigaherz> no there's plenty of things without prefix
L715[18:19:10] <MajorPotato> it matches for 'chunk' and 'coal', which a lot of mods use, but those aren't default to the oredict
L716[18:19:11] <gigaherz> like "gravel"
L717[18:19:14] <MajorPotato> oops
L718[18:19:16] <MajorPotato> 'fuel'
L719[18:19:19] <MajorPotato> not 'coal'
L720[18:19:54] <gigaherz> fuel?
L721[18:20:05] <gigaherz> oh you mean in your last sentence
L722[18:20:11] <MajorPotato> yeah
L723[18:20:44] <gigaherz> well fuel isn't really the kind of thing you expect to see in recipes
L724[18:20:49] <gigaherz> lava buckets are fuel
L725[18:20:54] <gigaherz> and you wouldn't want to make torches with lava buckets
L726[18:21:41] <gigaherz> and the oredict isn't really meant for use in like, a machine taking burnable things as input
L727[18:22:09] <MajorPotato> true. 'fuel' isn't one I necessarily use or care about, just one I noticed other mods using
L728[18:22:25] <MajorPotato> 'chunk' though, is used for recipes
L729[18:22:36] <gigaherz> yeah as I said, forge only puts things in oredict that really have a case for being there
L730[18:22:56] <gigaherz> woodstuffs are there because plenty of mods add new wood types
L731[18:23:22] <gigaherz> ore types are there because mods add other ore sources (nether ore, end ore, andesite ore, ...)
L732[18:23:33] <MajorPotato> yes yes
L733[18:24:25] <gigaherz> that said, "netherStar" is in the oredict, so my point is a bit wrong :P
L734[18:24:32] <MajorPotato> XD
L735[18:24:54] <gigaherz> so yeah back to my original statement: people haven't complained enough about coal not being present
L736[18:25:09] <gigaherz> to cause someone from the forge team to add it
L737[18:25:19] <MajorPotato> huh. all the mob drops are oredict'ed
L738[18:25:23] <MajorPotato> wonder why
L739[18:25:52] <gigaherz> chances are they were either added long ago before everyone realized oredict'ing all the things was a bad idea
L740[18:26:02] <gigaherz> or it was added in bulk at some point
L741[18:26:29] <gigaherz> speaking about oredict and your idea
L742[18:26:37] <gigaherz> you are not the first to mention oredict replacements
L743[18:26:43] <gigaherz> and you won't be the last :P
L744[18:26:44] <MajorPotato> I'd imagine
L745[18:27:12] <gigaherz> I did discus with someone, his idea of an oredict replacement that would have used "material" and "shape"
L746[18:27:18] <gigaherz> as a pair of properties
L747[18:27:25] <MajorPotato> XD
L748[18:27:29] <gigaherz> but as a counter-example, I mentioned one:
L749[18:27:31] <MajorPotato> I'm taking that a bit farther :P
L750[18:27:49] <gigaherz> is a golden apple {material:apple,shape:gold} or {material:gold,shape:apple}
L751[18:28:05] <MajorPotato> the latter makes more sense
L752[18:28:10] <gigaherz> spoken, yes
L753[18:28:25] <MajorPotato> no, because there would be other things with the material:gold
L754[18:28:38] <MajorPotato> and mods add a diamond apple sometimes
L755[18:29:07] <MajorPotato> but in any case, that system wouldn't cut it either
L756[18:29:13] <gigaherz> but then you have a baked potato
L757[18:29:17] <gigaherz> is that material:baked?
L758[18:29:25] <MajorPotato> prob
L759[18:29:31] <gigaherz> that makes no sense
L760[18:29:33] <MajorPotato> yeah
L761[18:29:41] <gigaherz> in that case it should be material:potato,state:baked
L762[18:29:43] <MajorPotato> as I said, wouldn't cut it
L763[18:29:50] <gigaherz> yeah
L764[18:30:01] <MajorPotato> One of the main things I'm trying to do with my system anyways is to remove duplicates
L765[18:30:04] <gigaherz> IMO, going there blows up too much the complexity of the system
L766[18:30:20] <MajorPotato> so no multiple ores of one type
L767[18:30:45] <gigaherz> yep that has also been suggested, in fact I wrote a design idea built around that
L768[18:30:48] <gigaherz> after talking to someone else
L769[18:30:56] <MajorPotato> I've got a working one :P
L770[18:31:14] <gigaherz> yeah, that's the difference: I decided it was still too complex, and people would ignore it
L771[18:31:15] <gigaherz> :p
L772[18:31:20] <MajorPotato> meh
L773[18:31:26] <MajorPotato> wrote it mostly for myself
L774[18:31:44] <MajorPotato> would be nice if it was used, and I designed it to be used, but I'd be happy with it on my own server
L775[18:31:56] <gigaherz> on my side, I have had for a LONG time, the idea of making a more flexible crafting system
L776[18:32:02] <gigaherz> have you played Atelier Iris 1?
L777[18:32:04] <MajorPotato> heh
L778[18:32:06] <MajorPotato> no
L779[18:32:22] <gigaherz> in that game, you have recipes, for things
L780[18:32:26] <gigaherz> so like
L781[18:32:42] <gigaherz> a cake recipe would take "water", "eggs", "flour"
L782[18:32:52] <gigaherz> but with a twist
L783[18:32:58] <gigaherz> you can choose different things for each slot
L784[18:33:07] <gigaherz> so like, the flour may take other kinds of powder
L785[18:33:10] <MajorPotato> ah
L786[18:33:21] <gigaherz> the liquid may not be water, and so on
L787[18:33:29] <MajorPotato> would it create a result with diff properties, or just act similar to the OreDict?
L788[18:33:39] <gigaherz> so if you were to choose "oil", "clay", "gunpowder"
L789[18:33:51] <gigaherz> at the end of the crafting animation, you'd obtain "C4"
L790[18:33:53] <gigaherz> instead of a cake
L791[18:33:57] <MajorPotato> (thats the other thing with my mod, is I'm also adding property values to materials, instead of just identification)
L792[18:34:14] <MajorPotato> i see
L793[18:34:16] <gigaherz> this is made up -- it's not an actual recipe from the game
L794[18:34:21] <MajorPotato> yeah
L795[18:34:21] <gigaherz> but you get the idea
L796[18:34:25] <gigaherz> so I wanted to have like
L797[18:34:39] <gigaherz> each item/itemblock in the game categorized
L798[18:34:45] <gigaherz> with "description chains"
L799[18:34:46] <gigaherz> so like
L800[18:35:00] <gigaherz> thing -> item -> consummable -> food -> fruit -> apple
L801[18:35:11] <gigaherz> if a recipe accepts "fruit", an apple would match, but not a fish
L802[18:35:39] <gigaherz> each item would receive a number of labels
L803[18:35:45] <gigaherz> each one fitting somewhere in the hierarchy
L804[18:36:24] <gigaherz> and recipes would have this kind of label-based ingredient which would be able to handle "special cases"
L805[18:36:32] <gigaherz> stuff like
L806[18:36:48] <gigaherz> if flour is explosive then result=TNT
L807[18:37:03] <gigaherz> else if flour is food then result=cake
L808[18:37:09] <gigaherz> else result = disgusting mess
L809[18:37:28] <gigaherz> but all expressed in data-driven predicates
L810[18:37:44] <MajorPotato> its a nice idea
L811[18:38:12] <gigaherz> it's also a whole lot of work :P
L812[18:38:16] <MajorPotato> yeah
L813[18:38:39] <gigaherz> but I work part-time now, so someday
L814[18:38:39] <gigaherz> :P
L815[18:38:48] <gigaherz> right now I'm waiting for 1.13
L816[18:38:55] <gigaherz> got some ideas it will unlock
L817[18:40:18] <MajorPotato> I see
L818[18:40:28] <MajorPotato> what MC version are mods mainly using rn?
L819[18:40:46] <gigaherz> depends on what kind of modder we are talking about
L820[18:40:59] <MajorPotato> I'm still developing in 1.10 atm, because I haven't taken the time to update in a while
L821[18:41:09] <MajorPotato> but the mainstream mods, what are they on?
L822[18:41:14] <gigaherz> msot of us here are either working exclusively on 1.12, or 1.12+1.11, or 1.12+1.11.1.10
L823[18:41:19] <MajorPotato> ah
L824[18:41:22] <MajorPotato> I need to update XD
L825[18:41:43] <gigaherz> but there's a whole lot of modders that stick to "hwatever people are playing"
L826[18:41:47] <gigaherz> which is currently 1.10
L827[18:41:53] <MajorPotato> is it still 1.10?
L828[18:41:56] <MajorPotato> huh
L829[18:41:57] <barteks2x> I'm really not sure if it's a good idea to support 1.10 after 1.13 is released...
L830[18:42:06] <gigaherz> ALL the big modpacks are 1.10 right now
L831[18:42:21] <gigaherz> some 1.11, some 1.12
L832[18:42:27] <gigaherz> but the big big ones, are 1.10
L833[18:42:39] <illy> well the 1.13 is going to be a huge change cant wait to see what it brings
L834[18:42:55] <gigaherz> I fear it will be like 1.8
L835[18:43:18] <gigaherz> with plenty of modders having tantrums
L836[18:43:19] <barteks2x> the first update since 1.8 that will give me some some work to do
L837[18:43:19] <MajorPotato> we'll see
L838[18:43:41] <gigaherz> because forge is going to make things more data-driven
L839[18:44:05] <illy> "forge" making things more data driven
L840[18:44:19] <gigaherz> mc+forge*^
L841[18:44:37] <gigaherz> it's not just mc going data-driven
L842[18:44:46] <gigaherz> but forge also deprecates old features in favor of data-driven ones
L843[18:44:51] <gigaherz> this has already happened in 1.12
L844[18:45:01] <gigaherz> and it will continue happening
L845[18:45:02] <MajorPotato> oh?
L846[18:45:12] <illy> people will bitch and moan fork forge out of spite give up and settle on 1.14
L847[18:45:28] <gigaherz> in 1.12, it's deprecated to register recipes in code
L848[18:45:33] <MajorPotato> ah
L849[18:45:36] <gigaherz> you can register recipe factories
L850[18:45:37] <MajorPotato> interesting
L851[18:45:41] <gigaherz> and reference them from json recipe files
L852[18:45:51] <illy> I like 1.12 :P
L853[18:46:01] <gigaherz> but since it changes the way the code works
L854[18:46:08] <MajorPotato> that... might change part of my mod
L855[18:46:12] <gigaherz> it means someone has to spend a few hours updating a mod
L856[18:46:17] <MajorPotato> since I have to go through recipes and replace outputs
L857[18:46:29] <gigaherz> that's still possible
L858[18:46:33] <MajorPotato> k
L859[18:46:41] <gigaherz> the registry event for recipes
L860[18:46:51] <gigaherz> happens after the json recipes have loaded
L861[18:47:04] <gigaherz> so that mods can remove/override recipes
L862[18:47:19] <MajorPotato> when exactly does it happen? (preinit/init/postinit)
L863[18:47:31] <illy> gigaherz, what im really looking forward to is an FML i can read without consulting the tea leaves :P
L864[18:47:34] <gigaherz> right before init, IIRC
L865[18:47:53] <MajorPotato> hmm
L866[18:48:02] <gigaherz> or was it right after? can't remember anymore
L867[18:48:18] <gigaherz> the other registries fire after preinit
L868[18:48:23] <MajorPotato> is it a part of the other registry events? cause the registry events happen between preinit and init
L869[18:48:30] <gigaherz> yes
L870[18:48:39] <gigaherz> but I don't know if it fires at the same time
L871[18:48:49] <MajorPotato> that would be... beyond annoying
L872[18:48:50] <gigaherz> RegistryEvent.Register<IRecipe>
L873[18:49:00] <MajorPotato> ...
L874[18:49:01] <MajorPotato> it does
L875[18:49:08] <MajorPotato> sonuva
L876[18:49:15] *** mezz_ is now known as mezz
L877[18:49:47] <MajorPotato> I need to go through them after I have all my material stuff sorted, which happens at the same time or after... >_<
L878[18:50:38] <MajorPotato> fuuuuuuuuuuuun
L879[18:50:48] <MajorPotato> I guess more Reflection is the anwer >_>
L880[18:51:55] <MajorPotato> anyways, I'm getting off, so cya all
L881[18:51:59] <gigaherz> cya
L882[18:53:24] ⇨ Joins: moony (moony!~moony@tx-76-4-59-100.dhcp.embarqhsd.net)
L883[18:57:39] ⇦ Quits: ben_mkiv (ben_mkiv!~ben_mkiv@p4FED5E4F.dip0.t-ipconnect.de) (Ping timeout: 207 seconds)
L884[19:32:01] ⇨ Joins: armed_troop (armed_troop!~armedtroo@pool-98-111-142-113.phlapa.fios.verizon.net)
L885[19:43:29] ⇦ Quits: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93) (Ping timeout: 200 seconds)
L886[19:43:57] ⇨ Joins: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93)
L887[20:02:43] ⇨ Joins: Umbraco (Umbraco!~Umbraco@121-87-222-159f1.nar1.eonet.ne.jp)
L888[20:31:11] *** PaleoCrafter is now known as PaleOff
L889[20:34:08] <LexMobile> gigaherz: you're a fucking moron
L890[20:34:23] <LexMobile> if you dont like the way minecraft is going stop modding
L891[20:34:39] <LexMobile> Forge reacts and helps develop Minecraft as a engine.
L892[20:34:52] <LexMobile> Mojang is the one making it data driven
L893[20:35:09] <LexMobile> We're not gunna encourage people to use old shit because ITS GOING TO DISSAPEAR
L894[20:37:04] <LexMobile> Honestly all yall are fucking LUCKY that I gave you the Recipe event. You SHOULD NOT have it. Its nothing but moving in the exact opposite direction you should be.
L895[20:40:20] <illy> this was a fun read https://www.alicemaz.com/writing/minecraft.html
L896[20:46:11] ⇦ Quits: moony (moony!~moony@tx-76-4-59-100.dhcp.embarqhsd.net) (Ping timeout: 194 seconds)
L897[21:37:06] <mezz> illy, agreed! really good
L898[21:37:59] <kashike> tl;dr?
L899[21:38:41] <mezz> person masters an economy in minecraft, reflections on discovering and exploring new systems for the first time vs later after you have already mastered it
L900[21:40:05] <mezz> generally nerding out, written by someone insightful and articulate enough to make it engaging to read
L901[21:40:25] <kashike> nawat
L902[21:40:27] <kashike> neat*
L903[21:41:31] <illy> it makes me kinda want to learn an eco of a sponge server... sadly I has a lack to time to many half finished projects to catch on before the holiday is over
L904[21:43:07] <mezz> I think you'll find most servers are going to be dominated before you get there... there is some sweet spot about being an early adopter to a new thing that this taps into. I've been there for a few things that I can really relate to
L905[21:44:24] <mezz> and yeah... that person clearly put an incredible amount of time into mastering that server's economy
L906[21:49:07] ⇨ Joins: Searge (Searge!~Searge@c83-250-150-134.bredband.comhem.se)
L907[21:49:44] <illy> kashike, Korobi seems to be down
L908[21:50:05] <illy> the world is now on fire I will now start burning everything
L909[22:07:21] *** DaMachinator is now known as Arcanitor
L910[22:11:50] ⇦ Quits: Nedelosk (Nedelosk!~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
L911[22:13:18] ⇨ Joins: moony (moony!~moony@tx-76-4-59-100.dhcp.embarqhsd.net)
L912[22:14:53] ⇦ Quits: Commoble (Commoble!~Commoble@mnpl-04-3331.dsl.iowatelecom.net) (Quit: Leaving)
L913[22:20:33] ⇦ Quits: sinkillerj (sinkillerj!~sinkiller@nc-67-238-187-249.dhcp.embarqhsd.net) (Quit: またね)
L914[22:27:37] ⇨ Joins: Upthorn (Upthorn!~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net)
L915[22:29:42] ⇦ Quits: Upthorn (Upthorn!~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net) (Read error: Connection reset by peer)
L916[22:29:52] ⇨ Joins: Upthorn (Upthorn!~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net)
L917[22:31:19] ⇨ Joins: McJty (McJty!~jorrit@ptr-9197ufpw3w30c94cmkm.18120a2.ip6.access.telenet.be)
L918[22:57:10] ⇦ Quits: Lathanael|Away (Lathanael|Away!~Lathanael@p54960211.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L919[22:58:38] ⇨ Joins: Lathanael|Away (Lathanael|Away!~Lathanael@p5496003A.dip0.t-ipconnect.de)
L920[23:13:26] ⇨ Joins: npe|office (npe|office!~NPExcepti@bps-gw.hrz.tu-chemnitz.de)
L921[23:22:35] ⇦ Quits: covers1624 (covers1624!~covers162@ppp122-232-6.static.internode.on.net) (Read error: Connection reset by peer)
L922[23:22:56] ⇨ Joins: covers1624 (covers1624!~covers162@ppp122-232-6.static.internode.on.net)
L923[23:37:05] ⇦ Quits: Dimtree (Dimtree!~dimtree@74-196-33-246.nbrncmtk01.res.dyn.suddenlink.net) (Quit: Peace)
L924[23:48:26] ⇨ Joins: Dimtree (Dimtree!~dimtree@74.196.33.246)
<<Prev Next>> Scroll to Top