<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:09:06] ⇦ Quits: cpup (~cpup@32.218.112.247) (Ping timeout: 186 seconds)
L2[00:10:12] ⇦ Quits: Chervilpaw (kiwiirc@h247.61.187.173.dynamic.ip.windstream.net) (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
L3[00:12:02] ⇦ Quits: illy (~LordIllyo@2602:304:cf32:f980:d7b4:c6fb:fb09:5c82) (Remote host closed the connection)
L4[00:13:51] ⇨ Joins: LordIllyohs (~LordIllyo@2602:304:cf32:f980:e002:875:7132:da37)
L5[00:13:56] *** LordIllyohs is now known as illy
L6[00:14:58] ⇨ Joins: cpup (~cpup@32.218.113.13)
L7[00:21:18] ⇨ Joins: gravityfox (~gravityfo@cpe-23-242-168-28.socal.res.rr.com)
L8[00:22:17] *** fry|sleep is now known as fry
L9[00:23:43] ⇨ Joins: CoderPuppy (~cpup@32.218.113.21)
L10[00:25:20] ⇦ Quits: cpup (~cpup@32.218.113.13) (Ping timeout: 202 seconds)
L11[00:25:28] ⇦ Quits: foxy (~gravityfo@cpe-23-242-168-28.socal.res.rr.com) (Ping timeout: 384 seconds)
L12[00:27:49] ⇦ Quits: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com) (Quit: PitchBright)
L13[00:29:58] <Tazz> williewillus, yeah :p
L14[00:30:03] <Tazz> should work since its a JVM flag XD
L15[00:30:11] <Tazz> also anyone happen to know how the bait works from Ex Compressum?
L16[00:31:59] ⇨ Joins: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com)
L17[00:41:12] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 202 seconds)
L18[00:42:56] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L19[00:46:20] ⇦ Quits: Brokkoli (~Brokkoli@p5B23C6CF.dip0.t-ipconnect.de) (Quit: Die Sprache der Politik ist daf�r gemacht, dass L�gen wahr klingen und das T�ten angemessen wirkt. (George Orwell))
L20[00:46:58] ⇨ Joins: cpup (~cpup@32.218.113.55)
L21[00:49:08] ⇦ Quits: CoderPuppy (~cpup@32.218.113.21) (Ping timeout: 202 seconds)
L22[00:49:49] ⇦ Quits: Vazkii (~Vazkii@a79-169-163-74.cpe.netcabo.pt) (Read error: Connection reset by peer)
L23[00:51:57] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Quit: Leaving)
L24[00:57:35] ⇨ Joins: Cazzar (~CazzarZNC@vocaloid.lovers.at.cazzar.net)
L25[00:59:47] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L26[01:00:53] ⇦ Quits: gravityfox (~gravityfo@cpe-23-242-168-28.socal.res.rr.com) (Ping timeout: 206 seconds)
L27[01:02:14] ⇨ Joins: SatanicSanta (~SatanicSa@c-76-115-175-15.hsd1.or.comcast.net)
L28[01:03:14] ⇨ Joins: CoderPuppy (~cpup@32.218.113.79)
L29[01:05:28] ⇦ Quits: cpup (~cpup@32.218.113.55) (Ping timeout: 202 seconds)
L30[01:10:35] ⇦ Quits: Naiten (Naiten@5.143.123.192) (Read error: Connection reset by peer)
L31[01:20:43] ⇦ Quits: Doty1154 (~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
L32[01:23:15] *** Vigaro is now known as V
L33[01:24:23] ⇨ Joins: cpup (~cpup@32.218.113.94)
L34[01:26:01] ⇦ Quits: illy (~LordIllyo@2602:304:cf32:f980:e002:875:7132:da37) (Ping timeout: 206 seconds)
L35[01:26:56] ⇦ Quits: CoderPuppy (~cpup@32.218.113.79) (Ping timeout: 202 seconds)
L36[01:32:30] ⇨ Joins: Ordinastie_ (~Ordinasti@87-231-58-94.rev.numericable.fr)
L37[01:34:21] ⇨ Joins: Nitrodev (~Nitrodev@85-23-77-207.bb.dnainternet.fi)
L38[01:35:37] ⇨ Joins: foxy (~gravityfo@cpe-23-242-168-28.socal.res.rr.com)
L39[01:39:27] ⇦ Quits: DemonWav (~DemonWav@69.197.179.106) (Remote host closed the connection)
L40[01:41:27] ⇨ Joins: CoderPuppy (~cpup@32.218.113.120)
L41[01:42:40] ⇦ Quits: theFlaxbeard (~theFlaxbe@65-128-177-172.mpls.qwest.net) (Read error: Connection reset by peer)
L42[01:44:12] ⇦ Quits: cpup (~cpup@32.218.113.94) (Ping timeout: 202 seconds)
L43[01:44:45] ⇨ Joins: Chaoschaot234 (~Chaoschao@83-221-68-174.dynamic.primacom.net)
L44[01:47:10] ⇦ Quits: r4wk (uid48318@id-48318.tooting.irccloud.com) (Quit: Connection closed for inactivity)
L45[01:50:05] ⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L46[01:50:18] *** minecreatr is now known as Mine|dreamland
L47[01:54:13] <SatanicSanta> Lex: The problem is not that the existing chat events cannot do certain things. The problem is that those chat events are not posted for every single message. So for mods that modify chat messages, there may be some random messages that dont get modified correctly.
L48[01:54:52] <SatanicSanta> eg BetterMinecraftChat which has to do class transformations just so it can handle every message the same way
L49[01:55:30] ⇦ Quits: MrIbby (~MrIbby@173.85.197.145) (Ping timeout: 206 seconds)
L50[01:55:46] <SatanicSanta> And it makes sense that those chat events are not posted for those messages, because those messages do not and should not need to go through the server
L51[01:59:04] ⇨ Joins: Noppes (~Noppes@ip56530f2e.direct-adsl.nl)
L52[01:59:35] ⇨ Joins: mallrat208 (~mallrat20@107-145-136-189.res.bhn.net)
L53[01:59:51] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20160911 mappings to Forge Maven.
L54[01:59:55] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20160911-1.10.2.zip (mappings = "snapshot_20160911" in build.gradle).
L55[02:00:05] <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/
L56[02:03:46] ⇦ Quits: CoderPuppy (~cpup@32.218.113.120) (Ping timeout: 186 seconds)
L57[02:04:24] <LexLap2> Santa, there are literally no reason to ASM for any of this shit.
L58[02:04:41] <SatanicSanta> I feel like if there was no reason to then people wouldn't do it
L59[02:04:53] <SatanicSanta> because it's a PITA and always the last resort
L60[02:04:54] <LexLap2> If you're gunna do a chat overhaul, then just do a overhaul and replace the class instances.
L61[02:05:04] <LexLap2> No people jump FAR to quickly to ASM
L62[02:05:09] <LexLap2> because they are fucking morons
L63[02:06:16] <SatanicSanta> Wouldn't you run the risk of being incompatible with dozens of mods if you do that overhaul you are describing?
L64[02:06:30] <LexLap2> Not if you do it correctly
L65[02:07:03] <LexLap2> and even if you are, there should only be one 'im reworking the entirety of the chat system because im special' mod in a pack
L66[02:07:20] ⇨ Joins: DemonWav (~DemonWav@69.197.179.106)
L67[02:09:11] <SatanicSanta> You still have not addressed the fact that you will not catch every chat message sent if you subscribe to both of the existing chat events.
L68[02:09:39] ⇨ Joins: cpup (~cpup@32.218.113.148)
L69[02:10:28] <LexLap2> https://github.com/blay09/BetterMinecraftChat/blob/1.10/src/main/java/net/blay09/mods/bmc/coremod/ClassTransformer.java Seriously this guy is dumb
L70[02:10:45] <LexLap2> Actually you DO catch every CHAT message sent
L71[02:10:55] <LexLap2> you dont catch random info messages
L72[02:11:03] <SatanicSanta> which some mods might want to do
L73[02:11:27] <SatanicSanta> as evidence by multiple PRs and issues opened for this
L74[02:11:53] <LexLap2> by multiple you mean one asking for a logger
L75[02:12:06] <SatanicSanta> sec
L76[02:12:10] <LexLap2> yours asking for a usecase that can be done already
L77[02:12:16] <LexLap2> and one just randomly asking with no context
L78[02:12:20] <SatanicSanta> It can't
L79[02:12:32] <SatanicSanta> Go ahead and try if you don't believe me
L80[02:12:41] <SatanicSanta> or fork BetterMinecraftChat and implement it without that ASM
L81[02:13:00] <LexLap2> Im not going to do your work for you just to prove you're an idiot.
L82[02:13:08] <LexLap2> Far to mcuh shit on my plate for that
L83[02:13:35] <LexLap2> as forthe current pr i closed it can be done with a chat.clearChatMessages()
L84[02:13:48] <LexLap2> simple, clean, and gets rid of the retarded update spawm from stupid modders
L85[02:14:02] ⇨ Joins: CoolerExtreme__ (~CoolerExt@59.96.10.252)
L86[02:14:24] <SatanicSanta> kneejerk reaction: that doesnt prevent it from getting logged
L87[02:14:34] <LexLap2> and the shitty coremod could be simply replaced with a chat = new ExtendedChat()
L88[02:14:47] <LexLap2> who cares if it gets logged?
L89[02:15:00] <LexLap2> it SHOULD get logged
L90[02:15:00] <SatanicSanta> for that specific case, I don't
L91[02:15:19] <SatanicSanta> but if you legit dont want someone to see something (eg censoring content for children or something) you do care
L92[02:15:41] <SatanicSanta> also with clearChatMessage you would still see the chat at some point
L93[02:15:42] <LexLap2> children dont look at log files
L94[02:15:46] <LexLap2> so thats not a vlid point
L95[02:16:06] <SatanicSanta> no but the logger is clearly visible while using MultiMC and the FTB launcher
L96[02:16:07] <LexLap2> yes but there are ways you can get around that as well
L97[02:16:28] <SatanicSanta> such as
L98[02:16:35] <LexLap2> if you have a mod installed on a childs instance that is putting things on the screen that you dont want that child to see
L99[02:16:40] <LexLap2> then its your fault for installing the mod
L100[02:16:46] ⇦ Quits: CoolerExtreme (~CoolerExt@117.201.142.32) (Ping timeout: 206 seconds)
L101[02:17:23] <SatanicSanta> What are the ways you can get around the clearChatMessage thing
L102[02:18:36] <LexLap2> do it more often, repalcethe chat, filter the arrays, handle the render event, intercept the chat events on the gl level, or summon a midget to sit in front of the scren so that he can filter the text before the child sees it
L103[02:18:42] <LexLap2> point is theres a shitload of ways you can do it
L104[02:19:12] <SatanicSanta> all of those sound infinitely more annoying
L105[02:19:17] <SatanicSanta> and verbose
L106[02:19:22] ⇨ Joins: CoderPuppy (~cpup@32.218.113.163)
L107[02:19:34] <LexLap2> they are just different
L108[02:19:41] <SatanicSanta> except maybe the first one
L109[02:19:48] <LexLap2> all of them have their benifits and there downsides
L110[02:19:57] <LexLap2> as with this event
L111[02:20:15] <LexLap2> you're not telling me anything that you cant do already
L112[02:20:24] ⇨ Joins: iari (~iari___@evana.futhark24.org)
L113[02:20:32] <SatanicSanta> I repeat
L114[02:20:34] <SatanicSanta> [23:54:24] <SatanicSanta> Lex: The problem is not that the existing chat events cannot do certain things. The problem is that those chat events are not posted for every single message. So for mods that modify chat messages, there may be some random messages that dont get modified correctly.
L115[02:20:51] <LexLap2> and i repeat
L116[02:20:52] <SatanicSanta> Your solution so far has been to replace the chat system
L117[02:20:57] <SatanicSanta> which is dumb
L118[02:20:58] <LexLap2> you DO get every CHAT message
L119[02:21:09] <LexLap2> and what the fuck are you modifying
L120[02:21:33] <SatanicSanta> the ITextComponent?
L121[02:21:39] <LexLap2> ya no
L122[02:21:44] <LexLap2> WHAT ARE YOU DOING EXACTLY
L123[02:21:54] <LexLap2> why do you need to modifyEVERYTHING
L124[02:22:04] <SatanicSanta> I've already told you what I am specifically doing, but my use is much simpler than, for example, BMC
L125[02:22:10] <LexLap2> and why do you need complete control over EVERYTHING but are unwilling to take compete control over EVERYTHING
L126[02:22:24] <LexLap2> BMC is a chat overhauk
L127[02:22:34] <LexLap2> and can be done without coremodding
L128[02:22:45] <LexLap2> your example, of removing stupid update spawm has alreay been address
L129[02:22:50] <LexLap2> just call clearChatMessages
L130[02:23:11] <SatanicSanta> Discord bridge was another example I saw on one of the issues for this
L131[02:23:37] <LexLap2> can be done without edits, and wouldnt be a use for this hook
L132[02:24:04] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L133[02:24:13] ⇨ Joins: Snapples (uid167569@2604:8300:100:200b:6667:1:2:8e91)
L134[02:24:28] ⇦ Quits: cpup (~cpup@32.218.113.148) (Ping timeout: 384 seconds)
L135[02:24:37] <SatanicSanta> message timestamps
L136[02:24:52] <LexLap2> can be done with a small wrapper
L137[02:25:10] <SatanicSanta> a small wrapper vs. 2 lines excluding a method signature
L138[02:25:35] <LexLap2> ~4 lines excluding method signatures
L139[02:26:05] <LexLap2> every edit to minecraft we do has a large matanance cost.
L140[02:26:22] <LexLap2> As well as obfusicating every other aspect of minecraft/forge.
L141[02:26:36] <LexLap2> Because we get into the issues of 10 different things trying to fuckk with the same thing at once
L142[02:27:17] <SatanicSanta> wait what does obfuscation have to do with this?
L143[02:27:27] <LexLap2> There is nothing so far that you have stated that cant be done with the systems that are already in place WITHOUT COREMODDING. That I do not deem it nessasary or worth that matanance/obfusication cost.
L144[02:27:51] <SatanicSanta> hrm
L145[02:29:21] <Ordinastie_> what was clearChatMessages the solution for ?
L146[02:29:38] <SatanicSanta> Ordinastie_: removing annoying startup messages not sent by players
L147[02:30:09] <LexLap2> Yes, sadly this i more of a catchall then the existing event, but it is also a lot less context so you cant figure out where the messages are coming from or why. And the only cases of the need for this one you've out so far is to work around other modders being retarded, which has never been the mission of forge. If a modder is retarded yell at the modder and stop using their mod.s
L148[02:31:43] *** AbrarSyed is now known as Abrar|gone
L149[02:33:53] <SatanicSanta> IIRC some of the most widely used mods are "retarded" by your definition
L150[02:34:27] <LexLap2> So? Just ecause you're popular doesnt mean you arnt doing stupid shit.
L151[02:34:47] <LexLap2> And if they are popular, it just means theres more of a usebase to make yell at them
L152[02:34:52] <SatanicSanta> No but the whole "stop using their mod" thing is less valid if its in most modpacks
L153[02:34:59] <LexLap2> no its not
L154[02:35:42] <LexLap2> If you make the pack, refuse to add their mod until they atleast put a config option, or better stop the stupid shit. If you're a mod pack user, yell at both the mod author and the mod packer.
L155[02:36:19] <LexLap2> I know for a fact that MOST mod pack makers HATE the stupid update messages
L156[02:36:32] <LexLap2> they jsut need to grow a backbone and tell the modders to stop
L157[02:37:16] ⇨ Joins: Naiten (Naiten@5.143.69.242)
L158[02:38:47] <Ordinastie_> maybe at some point well have to let the servers do the mod version management directly
L159[02:38:56] <LexLap2> No
L160[02:39:12] ⇦ Quits: Abastro (~Abastro@175.117.182.109) (Ping timeout: 384 seconds)
L161[02:39:33] ⇨ Joins: cpup (~cpup@32.218.113.180)
L162[02:39:44] ⇦ Quits: CoderPuppy (~cpup@32.218.113.163) (Ping timeout: 202 seconds)
L163[02:39:47] <Ordinastie_> the "you should update" message only has some sense when you play SSP
L164[02:40:07] <Ordinastie_> if you play on the server, only the server version is relevant (in 99% of the cases)
L165[02:40:22] <LexLap2> which is why we only have that message in the single player realm, as in the mod gui
L166[02:40:47] <LexLap2> you can only load a modder to the light, you can't force them to open their eyes.
L167[02:40:52] <LexLap2> lead*
L168[02:41:11] <Ordinastie_> but I'm not sure why you're so against the server sending new mod versions
L169[02:41:16] <sham1> Sadly the mod GUI is not exactly used by your average player
L170[02:41:27] <LexLap2> doesnt matter
L171[02:41:36] <LexLap2> smacking them in the face just makes them ignore it
L172[02:41:51] <Ordinastie_> yes, it's a security concern, but it's the same as modpack launchers and pretty much the same as downloading mods
L173[02:42:28] <SatanicSanta> Hm. My first initial reaction to that idea is "thats dumb" but we do it with resource packs
L174[02:42:40] <LexLap2> Ord: Do you have the money or resources to run a trust chain to sign every mod code ever? Do you have the time to review all mod executibles, or a way to prevent servers from sending any bullshit they wish?
L175[02:42:50] <Ordinastie_> arguably, RP don't have executable code in them
L176[02:43:14] <LexLap2> not arguibly, factually
L177[02:43:21] <SatanicSanta> fair point.
L178[02:43:23] <LexLap2> Resource packs are not code.
L179[02:43:30] <LexLap2> MMMMMAAAAAJJJJOOOORRR fucking difference
L180[02:43:47] <Ordinastie_> the mods you download manually aren't signed either
L181[02:44:03] <LexLap2> yes, but that isnt random shit you dont know about being installed
L182[02:44:10] <LexLap2> and isnt ME installing it on your computer
L183[02:44:24] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 202 seconds)
L184[02:44:26] <LexLap2> if you install a untrustworthy mod, thats on you
L185[02:44:33] <LexLap2> If a server installs it, thats on ME/The server
L186[02:44:35] <Ordinastie_> you basically trust maybe a hundred mod authors to not do shit with your computer
L187[02:44:39] <SatanicSanta> but how can you know for sure if a mod is trustworthy
L188[02:44:48] <Ordinastie_> if you trust them, may as well trust the server owner
L189[02:45:05] <LexLap2> not the same
L190[02:45:20] <LexLap2> and you cant but its a different liability issue
L191[02:45:25] <LexLap2> its never going to happen
L192[02:45:27] <LexLap2> get over it
L193[02:45:27] <Ordinastie_> the major difference is the ability to blame the servers
L194[02:45:30] <SatanicSanta> well theres also the issue of mods doing stuff at different load states
L195[02:45:43] <Ordinastie_> but as optin possiblity, why not
L196[02:45:46] <SatanicSanta> youd have to restart anyway
L197[02:45:53] <Ordinastie_> doesn't matter
L198[02:46:09] ⇨ Joins: Hgrebnednav (~Hgrebnedn@d8D874662.access.telenet.be)
L199[02:46:38] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L200[02:46:52] <Ordinastie_> what I'm saying is, there is no difference between downloading from some modpack launcher or from some server directly
L201[02:47:06] <LexLap2> yes there is
L202[02:47:09] <LexLap2> 1) Trust
L203[02:47:11] <LexLap2> 2) Legality
L204[02:47:18] <LexLap2> 3) IM NOT FUCKING DOING IT
L205[02:47:35] <SatanicSanta> Ideally mods would just update themselves :P
L206[02:47:41] <sham1> You wouldn't do it anyway
L207[02:47:44] <LexLap2> if you want to write a mod that does it then fine, but i will yell at you every step of the way for being a retard
L208[02:48:03] <SatanicSanta> like the majority of software
L209[02:48:23] <SatanicSanta> isntead of you having to download the entire thing every single time it updates
L210[02:48:26] <LexLap2> What *should* be done is the client should have a central repository of mods that when it connects to the server it could check if they are all avalible, and if not prompt the user to go tot he download page
L211[02:48:27] <SatanicSanta> manually
L212[02:48:38] <LexLap2> but the problem is we cant do that because of how hacky the modding world is
L213[02:48:52] <LexLap2> and not being able to roll back the clients state and shit happening in the setup process
L214[02:49:20] <SatanicSanta> Semi on topic: Forge/FML is capable of loading mods from a JSON file right?
L215[02:49:34] <LexLap2> yes
L216[02:49:44] <Ordinastie_> oh? didnt' know that
L217[02:49:51] <SatanicSanta> Is there a specification for that JSON somewhere? Even if it's in-code
L218[02:49:53] <sham1> How do I put a mod into a JSON file? Base64 string?
L219[02:50:08] <Ordinastie_> sham1, I assume whitelist of mods/filename to load
L220[02:50:10] <LexLap2> yes its been linked serveral tiems in the changelog as well as in the loader class
L221[02:50:19] <SatanicSanta> alright
L222[02:50:21] <SatanicSanta> thanks
L223[02:50:35] <sham1> Was not totally serious with that question
L224[02:50:48] <LexLap2> Basically: {"repo": "path to repo", "mods": ["some.mod:version"]}
L225[02:50:50] <LexLap2> o something like that
L226[02:51:13] <Ordinastie_> oh, by load, you meant download ?
L227[02:51:19] <LexLap2> no
L228[02:51:42] <LexLap2> Forge does not download executable code.
L229[02:51:50] <LexLap2> Users are responsible for that
L230[02:52:07] <LexLap2> Simple as I can say it. And this will never change.
L231[02:52:29] <LexLap2> The json allows for orginization why duplicate the mods 50 times for 50 different instances.
L232[02:52:41] <sham1> Is the repo there a website someone it taken when there is no mod jar in place
L233[02:52:45] <LexLap2> Just add then to the list, and keep them in a central repo
L234[02:52:54] <LexLap2> No
L235[02:52:56] <sham1> Or just a place on local filesystem
L236[02:52:58] <LexLap2> File only
L237[02:53:01] <sham1> Okay
L238[02:53:13] <LexLap2> This was DESIGNED for shit like FTB and curse
L239[02:53:20] <LexLap2> so they can just install the mods once locally
L240[02:53:24] <Ordinastie_> do they use it ?
L241[02:53:31] <LexLap2> No because they are stupid
L242[02:54:40] <sham1> No surprises there
L243[02:55:40] * LexLap2 has also been playing witht he idea of forcing Forge to auto-migrate mods to a central repo out of the mods folder.
L244[02:55:44] <LexLap2> but that would just cause drama
L245[02:56:05] <Ordinastie_> local repo you mean ?
L246[02:56:13] <LexLap2> ./libraries/
L247[02:56:34] <Ordinastie_> don't know to force, only allow
L248[02:57:04] <LexLap2> We already allow, I WANT to force because it would make things saner, but I can never get away with making things saner.
L249[02:57:05] <sham1> The drama would be put down if the majority of people saw the benefits
L250[02:57:14] <SatanicSanta> ^
L251[02:57:16] <sham1> In a way they can understand
L252[02:57:24] <SatanicSanta> Well I have it basically implemented in Ruby :P
L253[02:57:30] <SatanicSanta> just need to find the spec for that json file
L254[02:57:33] <LexLap2> Really the only benifit is cleaner folder, and less duplicate mods.
L255[02:58:10] ⇦ Quits: cpup (~cpup@32.218.113.180) (Ping timeout: 186 seconds)
L256[02:58:16] <LexLap2> Plus, would be REALLY useful on our end as modders
L257[02:58:20] <sham1> Well having less duplicates of common mod libraries would be something everyone should understand
L258[02:58:38] <LexLap2> to make sure that every mod is uniquely idenfyable, group, artifact, and version
L259[02:59:17] <LexLap2> if we did that, then we could move dependancy management to something better that fully references the mod and not specifically the modid
L260[02:59:18] <sham1> Why waste bandwidth downloading this same mod for nth time when it could be put into a central directory where it has to be downloaded only once
L261[02:59:25] <LexLap2> less potential for conflcits there.
L262[02:59:52] <LexLap2> And then we could also move that be properly resolved maven artifacts so that when you develop with a mod as a library it fully resolves everything
L263[03:00:07] <LexLap2> and then we hook that into the centralized mod repo thats in the works and poof SHIT FUCKING WORKS
L264[03:00:28] <sham1> Sounds fine
L265[03:00:47] <Tazz> sham1, did you see the pointer stuffs I was doing earlier/yesterday XD
L266[03:00:53] <Tazz> twas fun :D
L267[03:00:59] <sham1> I don't think I was
L268[03:01:04] <sham1> did*
L269[03:01:06] <sham1> Meh
L270[03:01:11] <Tazz> XD
L271[03:01:33] <Tazz> <Tazz> uint8_t* fields = instance_fields(obj_ref);
L272[03:01:34] <Tazz> <Tazz> *(boolean*) &fields[to_field(field_ref)->as.offset] = (*to_boolean(boolean_new(val)));
L273[03:01:36] <Tazz> this was my favourite
L274[03:01:57] <sham1> :P
L275[03:01:57] <LexLap2> ...
L276[03:02:00] <LexLap2> why...
L277[03:02:04] <Tazz> and then realizing that the address offset for the instance had to be: field->offset + sizeof(instance) + offsetof(integer, value)
L278[03:02:04] <Tazz> Xd
L279[03:02:09] <sham1> Because C
L280[03:02:40] <LexLap2> What are you doing?
L281[03:02:52] <Tazz> me?
L282[03:03:27] <LexLap2> ya
L283[03:03:35] ⇦ Quits: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net) (Remote host closed the connection)
L284[03:03:42] <sham1> I think it was for his own language and its JIT
L285[03:03:46] <Tazz> porting my optimizing compiler from C++ to C since I realized that there is a potential benifit for it
L286[03:03:49] ⇨ Joins: cpup (~cpup@32.218.113.189)
L287[03:04:02] <Tazz> it works and everything in C++ but I found I can do the same stuff in different ways in C
L288[03:04:07] <Tazz> and its got more benefits XD
L289[03:04:27] <LexLap2> speaking of compilers..
L290[03:04:32] <Tazz> this was mostly the beginning of writing the type system and JIT
L291[03:04:46] <LexLap2> anyone know a good C# src -> AST parser?
L292[03:04:49] <Tazz> the JIT is done tbh, and the type system is relatively complete
L293[03:05:01] <Tazz> uh doesnt ANTLR generate C# code?
L294[03:05:05] <Tazz> afaik it should
L295[03:06:53] <sham1> Well anything should be able to parse any regular grammar to an AST, one just needs to do *lex*ical analysis
L296[03:07:00] <sham1> And that pun was very bad
L297[03:07:05] <sham1> I'm sorry
L298[03:07:11] <Tazz> XD
L299[03:07:27] <Tazz> and tbh I hate using libs for parsing XD
L300[03:07:38] <Tazz> I feel more satisfied and whatnot rolling my own XD
L301[03:08:12] ⇨ Joins: RichardG_ (~richardg8@201.37.254.88)
L302[03:08:12] MineBot sets mode: +v on RichardG_
L303[03:08:20] <LexLap2> I hate rolling my own because there is always caviots that are missed
L304[03:08:51] <Tazz> this is true
L305[03:09:00] <Tazz> state machines are great for parsing tbh
L306[03:09:05] <Tazz> like thats what makes Gson so good
L307[03:09:06] ⇦ Quits: RichardG (~richardg8@201.37.254.88) (Read error: Connection reset by peer)
L308[03:09:09] <sham1> REgex
L309[03:09:16] <Tazz> because its got an internal state machine bound to a pull parser
L310[03:09:21] <sham1> As long as it is not structured like XML
L311[03:09:31] <LexLap2> what?
L312[03:09:43] <Tazz> so its not manipulating strings and rather just reading the bits, and its always keeping track of its state
L313[03:09:44] <LexLap2> oh right ya
L314[03:09:44] ⇨ Joins: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net)
L315[03:09:54] <Tazz> so its very solid
L316[03:10:15] <LexLap2> thats typically how it works yes, but kinda gets complicated with shit that can be nested infinaitly in any permutation
L317[03:10:16] <Tazz> also btw Gson would definitely be borked if there hadnt been the inclusion of Unsafe XD
L318[03:10:27] <LexLap2> cuz programmers like to write weirdly
L319[03:10:29] <Tazz> lol
L320[03:10:35] <Tazz> well there are ways to keep track of nesting
L321[03:10:50] <Tazz> I quite like the solution I used in Eschelles recursion checker
L322[03:11:07] <Tazz> all I have to do is like RecursionChecker checker;
L323[03:11:15] <sham1> Did you check for recursion by static analysis?
L324[03:11:19] <Tazz> and it keeps track of the function depth and will fail if it gets too far
L325[03:11:42] <sham1> Also, can you tail recurse
L326[03:11:54] <Tazz> with Eschelle yeah
L327[03:11:58] <sham1> Ah good
L328[03:12:05] <Tazz> its actually optimized in
L329[03:12:08] <LexLap2> Wonder how much work, and legal issues it would be if I tried bootstrapping antlr in java...
L330[03:12:16] <Tazz> antlr is in java/ XD
L331[03:12:20] <Tazz> its primarily in java
L332[03:12:20] <Tazz> XD
L333[03:12:23] <LexLap2> Thought it was C
L334[03:12:24] <Tazz> no
L335[03:12:29] <Tazz> its in java
L336[03:12:32] <LexLap2> ohh... better!
L337[03:12:33] <Tazz> the source is available
L338[03:12:43] <Tazz> and it emits a plethora of language source
L339[03:12:54] <Tazz> and uses BNF to determine the AST
L340[03:14:09] <Tazz> sham1, also another interesting tidbit about Eschelle is that it optimizes in using jmps to call functions rather than call
L341[03:14:37] <Tazz> it patches all functions
L342[03:14:42] <Tazz> (except natives)
L343[03:14:44] <sham1> Muh calling convention
L344[03:15:11] <Tazz> its a bit more complicated since I have to compile then patch the function
L345[03:15:12] <LexLap2> I need to find my old native asm libary...
L346[03:15:27] <Tazz> and I would need to figure out the address of the caller function
L347[03:15:32] <Tazz> but its not so bad XD
L348[03:15:41] <LexLap2> lots of fun tools with that for hooking into whatever native program you wanted.
L349[03:15:56] <LexLap2> parsed regions of memory into ASTs from the machine code.
L350[03:16:04] <Tazz> nice!
L351[03:16:08] <sham1> That sounds very nice
L352[03:16:18] ⇦ Quits: cpup (~cpup@32.218.113.189) (Ping timeout: 186 seconds)
L353[03:16:37] <Tazz> I need to start work on the disassembler for Eschelle
L354[03:16:37] <Tazz> XD
L355[03:16:43] <LexLap2> had something along the lines of:
L356[03:16:47] <Tazz> its like pertinent for debugging XD
L357[03:17:07] <Tazz> since theres hardly any representation of the function outside of its pre-optimized AST
L358[03:17:30] <Tazz> it needs to be disassembled and converted into a AST of its own so the viewer knows what code is being generated
L359[03:17:32] <sham1> Nah Tazz, just make it support debug symbols in a way that gdb can understand and then make it so that it can show your code
L360[03:17:40] <Tazz> XD
L361[03:17:50] <Tazz> I could hook into gdb
L362[03:17:54] <Tazz> there are stuff for it
L363[03:18:03] <Tazz> and hotspot has a great learning tool for knowing how to do that XD
L364[03:18:09] <quadraxis> for C# -> AST, use microsofts compiler api thing?
L365[03:18:14] <LexLap2> func.find(MUL, VAR1).insert_redirect(&my_hook, VAR1, VAR2)
L366[03:19:00] <LexLap2> would make a new slot in memory, copy as many byes as needed, make a jmp, insert the redirect, return back then jmp back to where it was.
L367[03:19:14] <LexLap2> Great thing about asm, jmp can be whereever you want wherever you want!
L368[03:19:32] <Tazz> ^^^
L369[03:19:43] <Tazz> Im quite fond of these gists that I have:
L370[03:19:44] <Tazz> https://gist.github.com/s0cks/85c3b6b70818f188814170bcbff065fa
L371[03:19:53] <Tazz> my mini x86_64 JIT in C
L372[03:19:56] <Tazz> its neat
L373[03:20:04] <Tazz> I revised and made it better though
L374[03:20:10] <Tazz> https://gist.github.com/s0cks/cbe9d2759ae5fed75590494be3558b41
L375[03:20:13] ⇨ Joins: irctc980_ (~irctc980@ip68-104-222-58.ph.ph.cox.net)
L376[03:20:14] <Tazz> and then my pride and joy
L377[03:20:26] <Tazz> its a 2 space generational copy collector
L378[03:20:53] <sham1> When will I be able to compile your stuff into an executable
L379[03:21:03] <Tazz> sham1, wut? XD
L380[03:22:05] ⇨ Joins: cpup (~cpup@32.218.113.215)
L381[03:22:21] <sham1> You know, compile Eschelle code into an executable
L382[03:22:25] <Tazz> well
L383[03:22:27] <sham1> Or will you do that at all
L384[03:22:29] ⇨ Joins: Abastro (~Abastro@175.223.39.79)
L385[03:22:31] <Tazz> I want to XD
L386[03:22:34] <Tazz> really bad
L387[03:22:34] <Tazz> Xd
L388[03:22:56] <Tazz> but I cant be arsed to do something like that
L389[03:23:04] <Tazz> at least with my current understanding of it XD
L390[03:23:26] <Tazz> I have succeeded in producing a hello world object and linking it together to create an executable with libelf
L391[03:23:39] <Tazz> however to produce stuff like GCC would take me a long time to get down solid XD
L392[03:25:36] <Tazz> idk if I saved the code that I used either so I would have to relearn it because I definitely dont remember it XD
L393[03:29:08] <LexLap2> Need a suggestion for a movie to watch for bed tonight... in the mood for cheesy autumn/halloween movies. Less murder everything, more weird shits happening in small town.
L394[03:30:20] ⇨ Joins: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L395[03:30:23] <fry> seen stranger things already?
L396[03:30:52] ⇨ Joins: MalkContent (~MalkConte@p5B02D325.dip0.t-ipconnect.de)
L397[03:31:38] ⇨ Joins: RichardG (~richardg8@201.37.254.88)
L398[03:31:38] MineBot sets mode: +v on RichardG
L399[03:31:53] <sham1> Meh, I hate writing documentation for my code
L400[03:31:59] <sham1> But, because public API...
L401[03:31:59] ⇦ Quits: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
L402[03:32:12] ⇨ Joins: PitchBright (~PitchBrig@cpe00fc8d8a3ce3-cm00fc8d8a3ce0.cpe.net.cable.rogers.com)
L403[03:32:14] ⇨ Joins: CoderPuppy (~cpup@32.218.113.226)
L404[03:32:18] ⇦ Quits: RichardG_ (~richardg8@201.37.254.88) (Ping timeout: 186 seconds)
L405[03:32:18] <Ordinastie_> sham1, would you prefere writing doc for MY code instead ? :p
L406[03:32:29] <sham1> :P
L407[03:32:40] <sham1> Perhaps
L408[03:32:54] <Ordinastie_> awaiting your PRs
L409[03:32:55] <sham1> I need some practice at it at any rate
L410[03:34:48] ⇦ Quits: cpup (~cpup@32.218.113.215) (Ping timeout: 202 seconds)
L411[03:38:05] ⇦ Quits: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net) (Remote host closed the connection)
L412[03:38:38] ⇨ Joins: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net)
L413[03:44:41] <Tazz> lol
L414[03:50:22] ⇨ Joins: cpup (~cpup@32.218.113.244)
L415[03:55:42] ⇦ Quits: CoderPuppy (~cpup@32.218.113.226) (Ping timeout: 384 seconds)
L416[04:03:04] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 384 seconds)
L417[04:08:26] <sham1> Damn it Java
L418[04:08:32] ⇨ Joins: CoderPuppy (~cpup@32.218.114.2)
L419[04:09:32] <sham1> Err, maybe not
L420[04:09:42] <sham1> Found the generic version of Arrays.asList
L421[04:11:13] <Tazz> lol
L422[04:11:13] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L423[04:13:50] ⇦ Quits: cpup (~cpup@32.218.113.244) (Ping timeout: 384 seconds)
L424[04:26:15] ⇨ Joins: cpup (~cpup@32.218.114.21)
L425[04:26:32] ⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L426[04:28:14] ⇦ Quits: CoderPuppy (~cpup@32.218.114.2) (Ping timeout: 206 seconds)
L427[04:28:14] ⇦ Quits: SatanicSanta (~SatanicSa@c-76-115-175-15.hsd1.or.comcast.net) (Ping timeout: 206 seconds)
L428[04:38:12] *** PaleOff is now known as PaleoCrafter
L429[04:40:50] ⇦ Quits: Nitrodev (~Nitrodev@85-23-77-207.bb.dnainternet.fi) (Quit: Veni, Vidi, Non reliquit in)
L430[04:42:14] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L431[04:42:58] ⇨ Joins: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L432[04:44:25] ⇨ Joins: CoderPuppy (~cpup@32.218.114.50)
L433[04:47:36] ⇦ Quits: cpup (~cpup@32.218.114.21) (Ping timeout: 202 seconds)
L434[04:48:04] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 202 seconds)
L435[04:49:51] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L436[05:01:45] ⇨ Joins: cpup (~cpup@32.218.114.63)
L437[05:07:06] ⇦ Quits: CoderPuppy (~cpup@32.218.114.50) (Ping timeout: 384 seconds)
L438[05:18:08] ⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L439[05:22:29] ⇦ Quits: foxy (~gravityfo@cpe-23-242-168-28.socal.res.rr.com) (Read error: Connection reset by peer)
L440[05:22:42] ⇦ Quits: cpup (~cpup@32.218.114.63) (Ping timeout: 186 seconds)
L441[05:23:08] ⇨ Joins: Nentify (uid14943@id-14943.highgate.irccloud.com)
L442[05:25:29] ⇨ Joins: Dark (~MrDark@cpe-76-181-157-113.columbus.res.rr.com)
L443[05:27:19] ⇨ Joins: cpup (~cpup@32.218.114.78)
L444[05:28:12] ⇦ Quits: Vazde (vazde@dea.fi) (Ping timeout: 202 seconds)
L445[05:28:20] ⇨ Joins: Vazde (vazde@dea.fi)
L446[05:28:44] *** amadornes[OFF] is now known as amadornes
L447[05:35:21] ⇨ Joins: ThePsionic (~ThePsioni@53561470.cm-6-7a.dynamic.ziggo.nl)
L448[05:36:09] *** MalkContent is now known as MaCo|away
L449[05:40:18] ⇦ Quits: cpup (~cpup@32.218.114.78) (Ping timeout: 186 seconds)
L450[05:40:20] *** PaleoCrafter is now known as PaleOff
L451[05:41:17] *** PaleOff is now known as PaleoCrafter
L452[05:45:21] *** MrKick|Away is now known as MrKickkiller
L453[05:45:22] ⇨ Joins: cpup (~cpup@32.218.114.112)
L454[05:45:57] ⇦ Quits: Naiten (Naiten@5.143.69.242) (Read error: Connection reset by peer)
L455[05:46:09] *** MaCo|away is now known as MalkContent
L456[05:48:31] ⇦ Quits: nallar (~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net) (Quit: ZNC - http://znc.in)
L457[05:50:24] ⇦ Quits: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net) (Ping timeout: 206 seconds)
L458[05:56:50] ⇦ Quits: cpup (~cpup@32.218.114.112) (Ping timeout: 186 seconds)
L459[05:57:12] ⇨ Joins: nallar (~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net)
L460[06:02:34] ⇨ Joins: cpup (~cpup@32.218.114.128)
L461[06:04:00] <boni> is there an event that's called once the registries have been synced on server join? clientside
L462[06:04:25] ⇨ Joins: sciguyryan (~sciguyrya@5.79.72.112)
L463[06:04:35] ⇨ Joins: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net)
L464[06:07:42] ⇨ Joins: raoulvdberge (uid95673@id-95673.richmond.irccloud.com)
L465[06:13:19] ⇨ Joins: CoderPuppy (~cpup@32.218.114.180)
L466[06:16:30] ⇦ Quits: cpup (~cpup@32.218.114.128) (Ping timeout: 206 seconds)
L467[06:26:10] ⇦ Quits: RichardG (~richardg8@201.37.254.88) (Ping timeout: 186 seconds)
L468[06:26:37] <PaleoCrafter> boni, ClientConnectedToServerEvent?
L469[06:26:57] <PaleoCrafter> that's fired right after the handshake is complete, and the handshake contains the registry information, as far as I can tell
L470[06:30:28] ⇨ Joins: cpup (~cpup@32.218.114.232)
L471[06:33:04] ⇦ Quits: CoderPuppy (~cpup@32.218.114.180) (Ping timeout: 202 seconds)
L472[06:35:10] <MalkContent> is it possible to customname an entity (like with a nametag) so the name pulls from lang files?
L473[06:36:07] <Ordinastie_> that's definitely something you can check for yourself
L474[06:36:22] <Ordinastie_> find where it's rendered, check if it's going through the translation system
L475[06:37:07] <Ordinastie_> or simply set the name tag to item.apple.name or something
L476[06:37:25] <MalkContent> o, right
L477[06:42:22] ⇨ Joins: Jezza (~Jezza@92.206.33.136)
L478[06:45:08] ⇨ Joins: Naiten (Naiten@5.143.71.63)
L479[06:45:59] *** PaleoCrafter is now known as PaleOff
L480[06:48:53] ⇦ Quits: Hgrebnednav (~Hgrebnedn@d8D874662.access.telenet.be) (Ping timeout: 206 seconds)
L481[06:49:25] *** PaleOff is now known as PaleoCrafter
L482[06:50:18] ⇨ Joins: CoderPuppy (~cpup@32.218.115.24)
L483[06:51:16] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 202 seconds)
L484[06:51:47] ⇦ Quits: cpup (~cpup@32.218.114.232) (Ping timeout: 206 seconds)
L485[06:53:36] <boni> ah, that looks good
L486[06:53:40] <boni> thanks PaleoCrafter
L487[06:54:03] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L488[07:00:46] <simon816> anybody know where the 'mcversion' gets read in the mcmod.info file? I'm not seeing it anywhere
L489[07:01:15] <Ordinastie_> it's not ?
L490[07:01:29] <Ordinastie_> it's the one in @Mod that is read AFAIk
L491[07:02:52] <simon816> right, so mcversion is probably redundant then
L492[07:03:35] <Ordinastie_> well, the mcmod.info is still read somewhere, it's displayed in the mods gui
L493[07:03:51] <Ordinastie_> but I don't think it's used for anything else
L494[07:06:42] ⇦ Quits: ThePsionic (~ThePsioni@53561470.cm-6-7a.dynamic.ziggo.nl) (Ping timeout: 186 seconds)
L495[07:07:27] ⇨ Joins: cpup (~cpup@32.218.115.62)
L496[07:12:54] ⇦ Quits: CoderPuppy (~cpup@32.218.115.24) (Ping timeout: 384 seconds)
L497[07:21:38] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 186 seconds)
L498[07:26:11] *** fry is now known as fry|afk
L499[07:28:00] ⇨ Joins: CoderPuppy (~cpup@32.218.115.96)
L500[07:30:00] ⇦ Quits: cpup (~cpup@32.218.115.62) (Ping timeout: 202 seconds)
L501[07:34:50] ⇨ Joins: abab9579 (~Abastro@112.166.128.227)
L502[07:38:24] ⇦ Quits: Abastro (~Abastro@175.223.39.79) (Ping timeout: 384 seconds)
L503[07:44:42] ⇨ Joins: cpup (~cpup@32.218.115.127)
L504[07:46:48] ⇦ Quits: CoderPuppy (~cpup@32.218.115.96) (Ping timeout: 202 seconds)
L505[07:51:54] *** V is now known as Vigaro
L506[07:54:01] ⇨ Joins: Nitrodev (~Nitrodev@85-23-77-207.bb.dnainternet.fi)
L507[08:02:02] ⇨ Joins: Brokkoli (~Brokkoli@p5B23C6CF.dip0.t-ipconnect.de)
L508[08:04:08] ⇨ Joins: RichardG (~richardg8@201.37.243.191)
L509[08:04:09] MineBot sets mode: +v on RichardG
L510[08:07:43] ⇨ Joins: CoderPuppy (~cpup@32.218.115.166)
L511[08:09:03] ⇨ Joins: Koward (~Koward@2a02:2788:344:2d0:94d:a080:1d1b:c886)
L512[08:09:10] ⇦ Quits: Koward (~Koward@2a02:2788:344:2d0:94d:a080:1d1b:c886) (Client Quit)
L513[08:09:22] ⇨ Joins: Koward (~Koward@2a02:2788:344:2d0:94d:a080:1d1b:c886)
L514[08:09:36] ⇦ Quits: cpup (~cpup@32.218.115.127) (Ping timeout: 206 seconds)
L515[08:10:45] ⇦ Quits: MalkContent (~MalkConte@p5B02D325.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
L516[08:11:02] ⇨ Joins: MalkContent (~MalkConte@p5B02D325.dip0.t-ipconnect.de)
L517[08:11:57] <Naiten> Well. That lag thing. I wondered if it was present before, checked out tenth latest commit, and it turned out lag was added later.
L518[08:13:03] <Naiten> Now I'm like, checking out every single commit continuously -_-
L519[08:14:05] <Naiten> I guess if I learned basic programming, I'd use some better searching algorithm .-.
L520[08:14:39] <sham1> Learning to program is worth it
L521[08:15:21] <IoP> Naiten: git help bisect ;)
L522[08:16:20] <Naiten> „And this, kids, is why you never go modding before you go to learn programming“
L523[08:16:55] <sham1> Meanwhile I am trying to get used to C again
L524[08:17:11] <Naiten> IoP, i have to launch the client to see if the lag is present, because idk which code it comes from :/
L525[08:18:15] <Naiten> sham1, are you going to write a better game on better language?
L526[08:18:24] <sham1> Maybe
L527[08:18:46] <sham1> Depends if I get stuck with C or not
L528[08:18:49] <IoP> Naiten: yes and after getting result from test you could do "git bisect good" or "git bisect bad" and then git automatically offers next commit for you: then rebuild, retest & git bisect good/bad again
L529[08:19:24] <sham1> Because while I know C (it being the "lingua franca" of programming) it's still odd to me
L530[08:19:59] <PaleoCrafter> the lingua franca of programming is English :P
L531[08:20:14] <Ordinastie_> PaleoCrafter, so you wanna code in VB? :p
L532[08:20:17] <PaleoCrafter> C is just one common ancestor of many programming languages
L533[08:21:08] <sham1> s/lingua franca of programming/lingua franca of programming languages/
L534[08:21:20] <PaleoCrafter> it still isn't :P
L535[08:21:37] <Naiten> IoP, i'm not a terminal guy, i'm GUI guy, and Sourcetree has no bisect support :/
L536[08:21:50] <IoP> :P
L537[08:21:57] <sham1> You must learn the ways of the terminal
L538[08:22:05] <sham1> It's good
L539[08:22:09] <IoP> well still better than github's gui
L540[08:22:24] <Naiten> I don't feel like joinging the dark side
L541[08:22:28] <PaleoCrafter> I've found SourceTree in Windows to be shit, mostly because it doesn't support GPG xD
L542[08:22:57] <sham1> *Everything* is better than the "GUI" by Github
L543[08:23:10] <Tazz> oh jeez
L544[08:23:11] <Naiten> PaleoCrafter, what that even is, GPG?
L545[08:23:19] <PaleoCrafter> signing commits
L546[08:23:32] <Tazz> I think I just broke FTB Infinity Evolved Expert Mode Skyblock XD
L547[08:23:59] <sham1> It really needs a better name
L548[08:24:01] ⇦ Quits: An_Angry_Brit (~AngryBrit@90.197.163.74) (Read error: Connection reset by peer)
L549[08:24:17] ⇨ Joins: cpup (~cpup@32.218.115.206)
L550[08:24:22] <Naiten> PaleoCrafter, erm. You can sign the commit in Sourcetree. They have descriptions -.- Or is that not what i think of?
L551[08:24:32] <Tazz> ikr
L552[08:24:34] <PaleoCrafter> it's not :P
L553[08:24:36] <sham1> Digital signing
L554[08:24:38] <PaleoCrafter> ^
L555[08:24:42] <Naiten> ah
L556[08:24:42] <Tazz> but like I found a way to get unlimited leather without needing cows XD
L557[08:24:43] <PaleoCrafter> just google GPG :P
L558[08:24:49] <Tazz> or blood magic XD
L559[08:24:51] <sham1> Like what one can do with emails and stuff
L560[08:24:57] <Tazz> and its like totally exploitable XD
L561[08:25:22] <Tazz> also sham1 if you need any heps with C lemme know
L562[08:25:22] <sham1> GPG can be used to authenticate stuff
L563[08:25:26] <Tazz> totes can heps
L564[08:25:41] <Tazz> its one of my specialties :D
L565[08:25:54] <sham1> Most troubles centre around the fact that I am not used to the standard library
L566[08:25:58] <sham1> The language itself is fine
L567[08:26:07] <Tazz> lol
L568[08:26:12] <Tazz> tbh the standard library is kinda shit XD
L569[08:26:21] <Tazz> like the file lib is terribad XD
L570[08:26:22] * Naiten is the person who never bothered to learn digital signing for ten years of his computer-owning life
L571[08:26:44] <Naiten> >_>
L572[08:26:49] <Tazz> and who in their right mind thought it was a great idea to need to link the math lib into your bin
L573[08:26:51] <Tazz> like wtf
L574[08:26:59] <Tazz> why cant it be an implicit linkage XD
L575[08:27:11] <sham1> Because C is kind of archaic
L576[08:27:14] <Tazz> lol
L577[08:27:21] <sham1> Not that it is a bad thing
L578[08:27:23] <Tazz> but like everything else is implicitly linked...
L579[08:27:28] <Tazz> at least in terms of std lib
L580[08:27:41] <sham1> Sometimes I need a more readable assembly language with types
L581[08:27:48] <Tazz> XD
L582[08:27:55] <Tazz> thanks sham1
L583[08:28:04] <Tazz> your really driving me to get Eschelle to compile to bins
L584[08:28:05] <Tazz> XD
L585[08:28:06] ⇨ Joins: Fye (~Fye@dynamic-adsl-84-220-168-160.clienti.tiscali.it)
L586[08:28:17] ⇦ Quits: auenf (David@DC-24-199.bpb.bigpond.com) (Read error: No route to host)
L587[08:28:39] ⇨ Joins: auenfx4 (David@DC-24-199.bpb.bigpond.com)
L588[08:28:43] <Tazz> like seriously I really wanna do it but the amount of work it took to just gen the hello world bin I had was enough to make me like eh idk if its worth is XD
L589[08:28:55] ⇨ Joins: An_Angry_Brit (~AngryBrit@2.216.58.49)
L590[08:29:24] ⇦ Quits: CoderPuppy (~cpup@32.218.115.166) (Ping timeout: 384 seconds)
L591[08:30:34] <sham1> To be fair, wasn't that the plan of Richie and Thompson
L592[08:30:50] <Tazz> XD
L593[08:30:54] ⇨ Joins: CoderPuppy (~cpup@32.218.115.227)
L594[08:30:59] <sham1> To be able to write stuff in C and have the language be simple enough to be hand-assembled
L595[08:31:01] <Tazz> when did anything ever go according to plan XD
L596[08:31:33] <Tazz> there has been plenty of mods that Ive like started thinking it was gonna be simple and then ended up digressing into a complicated monstrossity XD
L597[08:31:37] <Tazz> as with other projects XD
L598[08:31:44] <Tazz> like Affuo was only going to support Java projects
L599[08:31:56] <Tazz> but I ended deciding to support like all the languages XD
L600[08:31:59] <Tazz> just cause
L601[08:32:27] ⇨ Joins: Hgrebnednav (~Hgrebnedn@d8d874662.access.telenet.be)
L602[08:33:00] ⇦ Quits: cpup (~cpup@32.218.115.206) (Ping timeout: 202 seconds)
L603[08:33:08] <sham1> This is a funny piece of javascript: "setInterval(function(){ var x = document.querySelectorAll('*');x[Math.floor(Math.random() * x.length)].innerText = String.fromCharCode(112,101,110,105,115);}, 10000);"
L604[08:33:12] <Naiten> Tazz, when one assumes the worst things WILL happen, as well as when one sets the dealine 3 times more than it seems to be required?
L605[08:33:36] <Naiten> [23:31:11] <Tazz> when did anything ever go according to plan
L606[08:33:46] <Tazz> lol
L607[08:34:08] <Tazz> \like Eschelle was interpreted
L608[08:34:13] <sham1> That piece of code replaces everything in a webpage wih
L609[08:34:18] <sham1> the word "penis"
L610[08:34:21] <Tazz> the original project was solr
L611[08:34:32] <Tazz> which was an interpreted piece of garbage XD
L612[08:34:32] <sham1> Thanks Reddit
L613[08:34:50] <Tazz> then my drive to make a JIT'd language drove me to Eschelle XD
L614[08:35:00] <Tazz> and 3 months later & 5k+ lines of code later boom :D
L615[08:35:45] <sham1> Which version of C do you use
L616[08:35:50] <sham1> ANSI?
L617[08:36:02] <Tazz> yeah
L618[08:36:06] <Tazz> C99 afai
L619[08:36:29] <sham1> Well ANSI would be afaik C89
L620[08:37:23] <Tazz> I thought ANSI was the C standard? XD
L621[08:37:26] <Tazz> also bbiab
L622[08:40:41] ⇨ Joins: Backslash (~Backslash@ip-84-119-213-220.unity-media.net)
L623[08:43:05] *** Darkhax is now known as Darkhax_AFK
L624[08:46:19] ⇨ Joins: Gil (uid147942@2604:8300:100:200b:6667:5:2:41e6)
L625[08:46:33] <Koward> There are many standards. As always
L626[08:48:22] ⇦ Quits: Naiten (Naiten@5.143.71.63) (Read error: Connection reset by peer)
L627[08:51:21] ⇨ Joins: Naiten (Naiten@77.35.31.148)
L628[08:51:28] ⇦ Parts: Koward (~Koward@2a02:2788:344:2d0:94d:a080:1d1b:c886) (Leaving))
L629[09:02:03] ⇨ Joins: cpup (~cpup@32.218.116.57)
L630[09:08:30] ⇦ Quits: CoderPuppy (~cpup@32.218.115.227) (Ping timeout: 384 seconds)
L631[09:14:38] ⇦ Quits: VikeStep (~VikeStep@101.184.243.180) (Read error: Connection reset by peer)
L632[09:17:44] ⇨ Joins: CoderPuppy (~cpup@32.218.116.91)
L633[09:19:40] ⇦ Quits: cpup (~cpup@32.218.116.57) (Ping timeout: 202 seconds)
L634[09:22:00] ⇨ Joins: howtonotwin (~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
L635[09:22:11] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L636[09:37:37] ⇨ Joins: cpup (~cpup@32.218.116.141)
L637[09:39:10] <Naiten> WELL. All that damn lag with literaly 0-1 fps happened just because i did this.yOffset = -16F/16F; in my rolling stock entity constructor.
L638[09:39:12] <Naiten> WUT
L639[09:39:42] <Naiten> (╯°□°)╯︵ ┻━┻
L640[09:40:40] ⇦ Quits: CoderPuppy (~cpup@32.218.116.91) (Ping timeout: 202 seconds)
L641[09:41:32] <Naiten> Like, I knew MC had problems with physics and handling collisions
L642[09:42:27] <MalkContent> -16F/16F O.o
L643[09:42:38] <Naiten> But this was absolutely surprising consequence
L644[09:44:20] <Naiten> MalkContent, if the length is not integer, I use to write is as X / 16F so that everything is bound to voxelar grid of 1/16m
L645[09:44:37] <Naiten> write it*
L646[09:45:51] <Naiten> And 16/16F things happen when i want to leave possibility to change the number in future
L647[09:46:02] <Naiten> Like, saving the time
L648[09:46:42] <PaleoCrafter> but floating point division is slow, use * 0.0625F :P
L649[09:48:21] <Naiten> PaleoCrafter, when the mod is being built, all the constants are evaluated
L650[09:48:55] <PaleoCrafter> I was just kidding :P
L651[09:49:06] <Naiten> well -_-
L652[09:49:57] <Naiten> but whatever
L653[09:50:54] <Naiten> Sometimes it feels like you're now okay with vanilla code, and you think you get how things work
L654[09:51:17] <Naiten> And then some confusing and infuriating crap happens >_>
L655[09:51:19] ⇨ Joins: zuul4242 (zuul4242@cpe-76-183-120-99.tx.res.rr.com)
L656[09:52:16] <Naiten> Like, I just wanted to raise the collisiong box so that the trains won't hit blocks which are on the rail level
L657[09:52:36] ⇦ Quits: zuul4242 (zuul4242@cpe-76-183-120-99.tx.res.rr.com) ()
L658[09:52:40] <Naiten> But got massive lag instead by just setting a single variable <_<
L659[09:52:46] <Naiten> >_>
L660[09:52:48] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L661[09:52:49] <Naiten> >_<
L662[09:54:04] * Naiten is now totally going to use custom collision system for his mod
L663[09:54:21] ⇨ Joins: CoderPuppy (~cpup@32.218.116.198)
L664[09:54:46] <PaleoCrafter> I think "doing an Ordinastie" should be a term for that
L665[09:55:50] <Ordinastie_> that expression has already exists, it means doing things right
L666[09:57:17] <Naiten> ein Deutsche Ordnung von seiten Ordinastie_?
L667[09:57:22] ⇦ Quits: Nitrodev (~Nitrodev@85-23-77-207.bb.dnainternet.fi) (Read error: Connection reset by peer)
L668[09:57:28] ⇦ Quits: cpup (~cpup@32.218.116.141) (Ping timeout: 202 seconds)
L669[09:57:39] <PaleoCrafter> u wot, m8
L670[09:57:49] <Naiten> "Ord"
L671[09:57:51] <Ordinastie_> wrong language
L672[09:58:04] ⇦ Parts: Redrield (~Redrield@i.dont.know.what.to.put.here.redrield.tk) (ERC (IRC client for Emacs 24.5.1)))
L673[09:59:50] <Naiten> Ordinastie_, i knew it was Paleo's native lang, so i hoped he could get my joke
L674[10:00:03] <Ordinastie_> apparently not
L675[10:00:16] <PaleoCrafter> your sentence unfortunately hardly makes sense :P
L676[10:01:15] <Naiten> 'ordnung' means 'order', which happens after 'doing things right', right?
L677[10:01:29] <PaleoCrafter> yep
L678[10:02:03] <PaleoCrafter> you didn't have to use German to bring that notion across though :P
L679[10:02:18] <Naiten> well
L680[10:02:33] <Naiten> 'order' is not a meme
L681[10:02:37] <Naiten> 'ordnung' is
L682[10:02:45] <PaleoCrafter> it is?
L683[10:03:18] <Naiten> ja, natürlich!
L684[10:03:33] <Naiten> x'D
L685[10:04:09] <sham1> Well in certain circles it is
L686[10:04:23] <sham1> But that can be said about anything
L687[10:04:25] <PaleoCrafter> do you refer Germans being considered orderly
L688[10:04:34] <PaleoCrafter> *refer to
L689[10:04:49] <sham1> Either that or hardworking yes
L690[10:05:10] <sham1> Positive stereotyping
L691[10:06:54] <Naiten> PaleoCrafter, it's like Russians drinking vodka at every cause, wearing earhats all year through and having pet bears at each corner
L692[10:07:24] <PaleoCrafter> sure, but I don't really consider that a meme but a stereotype :P
L693[10:07:41] <sham1> Well, what about digging holes on beaches
L694[10:07:51] <sham1> wouldn't that be a meme and a stereotype
L695[10:07:52] ⇨ Joins: ChewLeKitten (uid35940@id-35940.ealing.irccloud.com)
L696[10:08:33] <Naiten> Is there any academical definition of a meme? And how is it different from stereotype then?
L697[10:09:05] <sham1> Stereotype is a thing that is assosiated to a group of things to generalise them
L698[10:09:08] <PaleoCrafter> ^
L699[10:09:37] <howtonotwin> http://www.oxforddictionaries.com/us/definition/american_english/meme
L700[10:09:44] <howtonotwin> yes there is
L701[10:09:52] <howtonotwin> :P
L702[10:09:54] <sham1> Meme in the sense of the Internet is more like a viral thing
L703[10:10:07] <howtonotwin> see definition 1.1 ;P
L704[10:11:17] <sham1> Popularised by Richard Dawkins to describe certain kinds of genes
L705[10:11:23] <Naiten> welp, dat 'murica
L706[10:12:10] <Naiten> oh wait
L707[10:12:16] <howtonotwin> the American English dictionary lists the internet definition of meme as 1.1, but the plain English dict lists the internet definition as 2
L708[10:12:18] <howtonotwin> y
L709[10:12:22] <PaleoCrafter> sham1, I've never come across that digging holes thing
L710[10:12:26] <PaleoCrafter> interesting
L711[10:12:58] <sham1> Well now you have :P
L712[10:13:09] <PaleoCrafter> howtonotwin, maybe 1.1 is the Imperial version of 2? hurr durr
L713[10:13:21] <sham1> :P
L714[10:13:35] <howtonotwin> at most it's one and a half ;P
L715[10:14:47] ⇦ Quits: irctc980_ (~irctc980@ip68-104-222-58.ph.ph.cox.net) (Ping timeout: 206 seconds)
L716[10:15:40] <PaleoCrafter> hehe
L717[10:16:06] ⇨ Joins: bottersnike (~Bottersni@cpc92744-stap14-2-0-cust374.12-2.cable.virginm.net)
L718[10:16:31] ⇨ Joins: cpup (~cpup@32.218.117.7)
L719[10:17:14] <Naiten> well, i put that table back ┬─┬ノ( º _ ºノ)
L720[10:17:19] <sham1> I really wish that WebAssembly would really become a thing in the next few years
L721[10:17:21] <Naiten> ┬──┬ ¯\_(ツ)
L722[10:17:28] <bottersnike> Hi, I'm trying to sign up to the forums, but I misspelt my email with a capital "B" at the start instead of a "b". I believe this is the problem, but I am not getting the validation email. I have repeatdly checked the address, and can confirm that it is correct. Any help would be great.
L723[10:17:44] <sham1> Have you tried to check your junk mail
L724[10:18:16] <bottersnike> You sir, are the boss :D
L725[10:18:42] <bottersnike> Gmail hid the spam folder so I couldn't even see the little "(1)" next to it
L726[10:18:47] <sham1> The stuff usually ends up there
L727[10:18:56] ⇦ Quits: CoderPuppy (~cpup@32.218.116.198) (Ping timeout: 202 seconds)
L728[10:19:05] <sham1> I always check there first for registration emails
L729[10:19:24] <PaleoCrafter> I wonder, bottersnike, does your name originate from children's books? :P
L730[10:19:25] <bottersnike> Would it not be worth rewording the email's that get sent because no other sites that I've used do that :'(
L731[10:19:33] <bottersnike> Why yes it does :D
L732[10:20:00] <PaleoCrafter> hehe, found it when I was searching Netflix for something to watch :P
L733[10:20:35] <sham1> Meh, I will have my first matriculation exam tomorrow
L734[10:20:39] <bottersnike> I came up with it when trying to pick an MC username and it was the first thing that wasn't taken. So now it use it everywhere...
L735[10:22:04] <sham1> http://www.minecraftforge.net/forum/index.php/topic,42121.0.html
L736[10:22:07] <sham1> My god people
L737[10:22:10] <williewillus> is there a way to build a forge from a forge dev env?
L738[10:22:14] <williewillus> I want to test this out https://github.com/MinecraftForge/MinecraftForge/issues/3246
L739[10:22:38] <bottersnike> *When you're trying to export from inkscape to synfig but inkscape has made it all fancy and so it just shows up red :'(*
L740[10:22:55] <PaleoCrafter> lol
L741[10:23:08] <PaleoCrafter> are you working on a logo for the contest? :O
L742[10:23:12] <bottersnike> Sometimes I hate inkscape.
L743[10:23:13] <bottersnike> Yeah
L744[10:23:41] <PaleoCrafter> sham1, just out of interest, aren't there world capabilities now? xD
L745[10:24:04] <sham1> I have heard of them being there, but I wouldn't know
L746[10:24:30] <sham1> "please just give me a video that explains it really!"
L747[10:25:24] <sham1> I mean... seriously?
L748[10:25:34] <bottersnike> Yeah, forge is really badly documented
L749[10:25:57] <sham1> Well that's because no one does documentation
L750[10:26:00] <bottersnike> but noone who is willing to document it knows the ins and outs and anyone that does it too busy writing mods
L751[10:26:46] ⇨ Joins: illy (~LordIllyo@2602:304:cf32:f980:e002:875:7132:da37)
L752[10:27:10] <illy> boop o/
L753[10:27:19] <howtonotwin> \o poob
L754[10:27:29] <sham1> Biip Buup
L755[10:27:48] <howtonotwin> Biip Buup
L756[10:27:50] <bottersnike> o/
L757[10:28:24] <bottersnike> Are there any good svg animators other than synfig?
L758[10:28:26] <howtonotwin> \o HAIL THE DEMON LORD COREMOD o/
L759[10:28:41] <sham1> Core to the coremod
L760[10:28:43] <PaleoCrafter> oh noes
L761[10:28:48] ⇦ Quits: Kano (~Kano@107-209-128-138.lightspeed.mssnks.sbcglobal.net) (Ping timeout: 206 seconds)
L762[10:29:11] ⇨ Joins: Kano (~Kano@107-209-128-138.lightspeed.mssnks.sbcglobal.net)
L763[10:30:36] <illy> I see a great hammer in the future
L764[10:30:38] ⇨ Joins: IceDragon (~ThatGuy@184.170.60.58)
L765[10:30:44] <howtonotwin> Inkscape saves its SVGs with some special data. If a program is having trouble with it there should be an option to export/save as a normal SVG.
L766[10:31:30] <howtonotwin> IDK really because it's been about a year since I last used Inkscape xD
L767[10:31:33] <bottersnike> I tried that, but with normal svg, it just doesn't look as good
L768[10:31:57] ⇨ Joins: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L769[10:31:57] <bottersnike> I've got fancy transparant masks on groups of text etc that just doesn't usually work
L770[10:31:59] <PaleoCrafter> the submitted logo should be a normal SVG anyways
L771[10:32:22] <PaleoCrafter> chances are the Inkscape SVG only gets displayed correctly in Inkscape :P
L772[10:32:49] ⇨ Joins: CoderPuppy (~cpup@32.218.117.53)
L773[10:33:09] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 206 seconds)
L774[10:33:13] <bottersnike> Yeah. I've found that it's just my masks that are acting funny. Is there a way to fix that? (Some aren't showing atall, other partially)
L775[10:33:18] <kashike> williewillus: just gradle build
L776[10:33:32] <PaleoCrafter> might need to remove the signing dependency of the task though
L777[10:33:57] <PaleoCrafter> oh, it's guarded by onlyIf, nvm
L778[10:34:02] <williewillus> it builds an installer or just the raw jar?
L779[10:34:19] <PaleoCrafter> you have to run gradle installer explicitly for the installer, I think
L780[10:34:54] <williewillus> the raw jar is just a jar mod right? I haven't used one for so long lol
L781[10:35:06] <kashike> universal jar and installed iirc
L782[10:35:14] <kashike> installer*
L783[10:36:49] <PaleoCrafter> ah, yeah, the installer does get created by build
L784[10:37:00] <williewillus> okay cool. I'm very interested in how much memory this saves
L785[10:38:36] ⇦ Quits: cpup (~cpup@32.218.117.7) (Ping timeout: 384 seconds)
L786[10:38:44] <PaleoCrafter> oh, williewillus, I've found an issue with PIE, it seems
L787[10:38:49] <kashike> PaleoCrafter: well it makes sense, seeing how universal jar is inside of the installer as well - makes sense to do it all at once especially when deploying
L788[10:39:23] <PaleoCrafter> sure, I just didn't see the build -> installer dependency because the dependsOn calls are all over the plac e:P
L789[10:39:38] <kashike> heh
L790[10:41:58] <williewillus> geez this takes forever
L791[10:42:08] <kashike> yup
L792[10:42:37] <PaleoCrafter> for me extractForgeRangemap took the longest
L793[10:47:28] <williewillus> how do I install a custom forge on multimc :P
L794[10:47:42] <PaleoCrafter> I guess install jarmod?
L795[10:47:45] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L796[10:48:05] <williewillus> i tried installing the universal jar as a jarmod but forge didn't load. I'll just use the vanilla launcher :P
L797[10:49:47] ⇦ Quits: illy (~LordIllyo@2602:304:cf32:f980:e002:875:7132:da37) (Quit: Leaving)
L798[10:51:57] ⇨ Joins: Meow-J (~Meow-J@45.32.34.121)
L799[10:52:00] <williewillus> eh crap I didn'tset the build number
L800[10:52:05] <williewillus> so mods won't want to load
L801[10:52:09] <williewillus> now I have to rebuild >.>
L802[10:52:24] <PaleoCrafter> edit the bytecode :3
L803[10:52:37] <williewillus> i'd rather rebuild :P
L804[10:53:24] <williewillus> i don't even remember where i have to set it
L805[10:53:38] <williewillus> oh yeah forgeversion
L806[10:53:51] *** Mine|dreamland is now known as minecreatr
L807[10:53:57] <sham1> Bytecode editing
L808[10:54:01] <sham1> Oh boy
L809[10:54:16] <sham1> Hex editors
L810[10:54:30] <Hex> I knew this nick was a bad idea. ._.
L811[10:54:40] <sham1> Indeed
L812[10:54:43] <LatvianModder> you mean MS Notepad? thats the best editor, been using it forever now
L813[10:54:56] <sham1> It was but a matter of time before someone wanted to mention hexadecimal
L814[10:55:10] * kashike pets Hex
L815[10:55:17] <sham1> You know what is better editor than Notepad? ed
L816[10:55:24] <sham1> ed, man!
L817[10:55:27] <sham1> $ man ed
L818[10:55:28] * Hex eats kashike whole
L819[10:55:29] <Actuarius> You (account Some(sham1)) can't access the $ command
L820[10:55:36] <sham1> Meep
L821[10:55:40] <LatvianModder> Morp
L822[11:04:31] ⇨ Joins: zabi94 (~zabi94@host139-38-dynamic.21-79-r.retail.telecomitalia.it)
L823[11:04:37] <bottersnike> $ test
L824[11:04:39] <Actuarius> You (account Some(Bottersnike)) can't access the $ command
L825[11:04:40] <bottersnike> Huh?
L826[11:04:47] <bottersnike> What's the $ command?
L827[11:04:51] <kashike> magic
L828[11:04:54] <williewillus> $
L829[11:04:54] <Actuarius> Labels: [Regression, Needs Update, Cleanup, Superseded, Fluids, Vanilla Bug, RFC, Bug, BreakingChange, Feature, Confirmed, Performance]
L830[11:04:59] <williewillus> its a github bot
L831[11:05:01] <bottersnike> $
L832[11:05:04] <Actuarius> You (account Some(Bottersnike)) can't access the $ command
L833[11:05:13] <bottersnike> How do some people have access and some not?
L834[11:05:14] <sham1> It's magic and it's scala
L835[11:05:18] <sham1> But I repeat myself
L836[11:08:47] <bottersnike> Feedback on http://imgh.us/ForgeLogo.svg please (Doesn't load in chrome (but does in IE))
L837[11:08:47] <howtonotwin> scala's not magic (much) :P
L838[11:09:01] <williewillus> loads in chrome for me
L839[11:09:17] <williewillus> the top of the table looks a bit misshappen
L840[11:09:21] <bottersnike> Can you see any java code tho?
L841[11:09:29] <williewillus> no
L842[11:09:34] <williewillus> also I'm not sure if we can use the vanilla textures like that
L843[11:09:40] <bottersnike> It's not vanilla
L844[11:09:41] <williewillus> or something that resembles them
L845[11:09:45] <bottersnike> I made them myself.
L846[11:10:03] <bottersnike> I checked the EULA and it's okay as long as they aren't the exact images from MC
L847[11:10:08] <williewillus> cool
L848[11:10:27] <bottersnike> It doesn't work in FireFox either... Needs some work
L849[11:10:37] <howtonotwin> there's a visible seam between the sides and top faces btw
L850[11:10:50] <howtonotwin> but it's in chrome though
L851[11:11:27] <bottersnike> Yeah. The seam is an SVG bug but I'm unsure why the text isn't loading
L852[11:11:43] ⇦ Quits: Gil (uid147942@2604:8300:100:200b:6667:5:2:41e6) (Quit: Connection closed for inactivity)
L853[11:13:57] <kashike> works in chrome
L854[11:14:12] <PaleoCrafter> you see the code? :P
L855[11:14:46] <bottersnike> If you look in IE, there is java code on the transparant bit of the table
L856[11:15:14] ⇦ Quits: CoderPuppy (~cpup@32.218.117.53) (Ping timeout: 186 seconds)
L857[11:15:18] <howtonotwin> should be like this http://imgur.com/mbGCl0h
L858[11:15:35] <PaleoCrafter> well, the font should be Roboto :P
L859[11:15:45] <bottersnike> :p
L860[11:16:58] <ajb> PaleoCrafter: i found the shadermod source code and it has ID remapping code exactly like we discussed yesterday, but it seems to not actually be used
L861[11:17:08] <PaleoCrafter> lol
L862[11:18:00] <ajb> you make a text file with lines like minecraft:stone=123 and it builds a hash map from it... then doesn't use it
L863[11:20:17] <howtonotwin> Like this then http://imgur.com/E8q2c9D
L864[11:20:36] <bottersnike> That looks better :D
L865[11:20:55] <PaleoCrafter> For some reason the R in my version of Roboto is different xD
L866[11:21:02] ⇨ Joins: cpup (~cpup@32.218.117.144)
L867[11:21:10] <bottersnike> For some reason though, inkscape Clipping isn't rendering in chrome or firefox :'(
L868[11:21:16] <ajb> letters look a bit squashed together in that
L869[11:21:53] <ajb> also the code won't be visible at small sizes
L870[11:22:05] <ajb> looks nice when big though
L871[11:22:25] <bottersnike> It's not really meant to be readable (I pulled it out of the Block class) just there as "Code"
L872[11:22:31] <howtonotwin> I think a neat idea would be to start with the anvil and hammer similar to the current logo, but the anvil would be textured like an MC block and then hammer is made of code.
L873[11:22:49] <ajb> right, but if the logo is smaller it wont be obvious what it is at all.. it will just look like green and blue dots
L874[11:23:41] <bottersnike> @ajb, good point, I'll scale up the code once I've fixed this ******* inkscape export issue
L875[11:23:49] <ajb> that would look good on a shirt for example. but eg imagine if it is used as a favicon (browser tab icon) where it's going to be like 64x64 pixels
L876[11:24:24] <howtonotwin> http://imgur.com/a/El8ki
L877[11:24:28] <ajb> just a thought, don't take it to heart. i've been through the pain of getting a logo designed, so i know some of the pitfalls
L878[11:24:29] <howtonotwin> it's not that bad when smaller
L879[11:24:59] <howtonotwin> and yes that's a screencap of a screencap
L880[11:25:04] <howtonotwin> bite me
L881[11:25:05] <bottersnike> I just used the icon preview tool and it still looks like code at 128x128
L882[11:25:50] <bottersnike> For some reason my clip path is positioned at 0,0. Is there a way to fix that?
L883[11:26:04] *** bottersnike is now known as Bottersnike|away
L884[11:26:13] ⇦ Parts: Bottersnike|away (~Bottersni@cpc92744-stap14-2-0-cust374.12-2.cable.virginm.net) ())
L885[11:26:20] <ajb> whoops, favicons are actually 16x16
L886[11:26:23] ⇨ Joins: Bottersnike (~Bottersni@cpc92744-stap14-2-0-cust374.12-2.cable.virginm.net)
L887[11:29:38] ⇦ Quits: cpup (~cpup@32.218.117.144) (Ping timeout: 186 seconds)
L888[11:31:01] ⇨ Joins: MrIbby (~MrIbby@173.85.197.145)
L889[11:34:47] ⇦ Quits: raoulvdberge (uid95673@id-95673.richmond.irccloud.com) (Quit: Connection closed for inactivity)
L890[11:35:45] ⇨ Joins: cpup (~cpup@32.218.117.192)
L891[11:43:41] ⇨ Joins: Nitrodev (~Nitrodev@85-23-77-207.bb.dnainternet.fi)
L892[11:45:44] ⇨ Joins: illy (~LordIllyo@2602:304:cf32:f980:d7b4:c6fb:fb09:5c82)
L893[11:58:55] ⇦ Quits: illy (~LordIllyo@2602:304:cf32:f980:d7b4:c6fb:fb09:5c82) (Read error: Connection reset by peer)
L894[12:00:09] ⇦ Quits: Chaoschaot234 (~Chaoschao@83-221-68-174.dynamic.primacom.net) (Ping timeout: 206 seconds)
L895[12:04:02] ⇨ Joins: CoderPuppy (~cpup@32.218.118.86)
L896[12:05:25] <LexManos> <bottersnike> I checked the EULA and it's okay as long as they aren't the exact images from MC
L897[12:05:30] <LexManos> To close to Minecraft textures
L898[12:06:16] ⇦ Quits: cpup (~cpup@32.218.117.192) (Ping timeout: 202 seconds)
L899[12:06:51] *** Abrar|gone is now known as AbrarSyed
L900[12:07:10] <Bottersnike> So more alterations needed for them to be okay?
L901[12:07:54] <LexManos> I'd stay away from making things that are blaitently Minecraft
L902[12:08:00] <Bottersnike> Okay
L903[12:08:20] <Bottersnike> By the way, do you know why my masks and clipping paths aren't rendering in chrome or firefox?
L904[12:09:19] <Girafi> Hey Lex :) I was poking around abit with canSustainPlant and noticed that dirt was set to be able to sustain desert plants, which doesn't seem to be how it acts in vanilla - any reason why Forge does that ? :). (Got added in Forge as part of the update to 1.8 from what I can tell)
L905[12:09:40] <LexManos> no idea this is what i see.
L906[12:09:42] <LexManos> http://puu.sh/r7GgF/f5d2604e11.png
L907[12:10:10] <Bottersnike> That's what chrome/ff render it as. Inkscape or IE/Edge render it properly :'(
L908[12:10:11] <sham1> Yeah, it does not work except for Microsoft's browsers
L909[12:10:32] <Bottersnike> I'm not sure why though because they all conform to the same SVG standards.. Right?
L910[12:10:42] <sham1> >IE
L911[12:10:45] <sham1> >Standards
L912[12:10:58] <sham1> https://www.youtube.com/watch?v=FopyRHHlt3M
L913[12:11:13] <Bottersnike> *uninstalls inkscape*
L914[12:13:18] <LexManos> Girafi, It mimics DeadBush, which allows for dirt
L915[12:13:57] ⇨ Joins: myrrlyn (~quassel@2602:306:ccf3:89f0:325a:3aff:fe47:ca11)
L916[12:14:31] <droidicus> is it intentional that www.minecraftforge.net/wiki is no longer avaliable?
L917[12:14:32] ⇨ Joins: illy (~LordIllyo@2602:304:cf32:f980:d7b4:c6fb:fb09:5c82)
L918[12:14:36] <PaleoCrafter> yep
L919[12:14:37] <sham1> Yes
L920[12:14:50] <PaleoCrafter> although it should redirect to the docs xD
L921[12:14:54] <LexManos> http://www.minecraftforge.net/forum/index.php/topic,42069.0.html
L922[12:15:09] <Girafi> I figured it was something like that. DeadBush are using canSustainBush to check if it can be planted though. Making dirt able to sustain desert plants allows cactus to be planted on dirt.
L923[12:15:33] <PaleoCrafter> ah, it does redirect for links in the "directory"
L924[12:15:47] <droidicus> the new docs are great, but there were some things on the wiki that I find myself referring to, and looking at on google cache
L925[12:15:59] <droidicus> such as the oreDict list
L926[12:16:00] <williewillus> which ones?
L927[12:16:02] <LexManos> ya thats what im looking at, seems that deadbush and cactus diverged somewhere
L928[12:16:08] ⇦ Quits: myrrlyn (~quassel@2602:306:ccf3:89f0:325a:3aff:fe47:ca11) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
L929[12:16:12] <williewillus> droidicus: that's so outdated though 0.o
L930[12:16:18] ⇨ Joins: myrrlyn (~quassel@2602:306:ccf3:89f0:325a:3aff:fe47:ca11)
L931[12:16:24] <williewillus> and random people put their random mod on that list
L932[12:16:48] <droidicus> agree, it would be great to have an updated list, but at least is showed the standard forms that oreDict names generally take
L933[12:17:03] <LexManos> problem is cactus only supports sand
L934[12:17:09] <williewillus> we can add a list of general convention forms to the rtd, but no specific list
L935[12:17:09] <LexManos> not any of the other desert shit
L936[12:17:13] <williewillus> it would get outdated too fast
L937[12:17:39] <droidicus> but in general, I love the new docs and hope they continue to be expanded!
L938[12:17:53] <PaleoCrafter> then write a conventions page on oredict names :P
L939[12:18:08] ⇨ Joins: cpup (~cpup@32.218.118.158)
L940[12:19:20] <Bottersnike> Lex, Someone earlier suggested that "I think a neat idea would be to start with the anvil and hammer similar to the current logo, but the anvil would be textured like an MC block and then hammer is made of code." Is that too close to the current logo?
L941[12:19:58] <Girafi> Hmm yeah that is true. I'm not sure what the best solution to this is.
L942[12:20:44] ⇦ Quits: CoderPuppy (~cpup@32.218.118.86) (Ping timeout: 202 seconds)
L943[12:21:56] <LexManos> I like the simplicity of the current logo
L944[12:22:02] <LexManos> the problem is it isn't original
L945[12:22:21] <Bottersnike> Is it not?
L946[12:22:32] <LexManos> Hence the whole need for this damn contest.
L947[12:22:47] <LexManos> No the guy who made it originally took it from Halo Forge u.u
L948[12:22:56] <Bottersnike> :D
L949[12:23:17] <Bottersnike> Oh hahaha. I just found the original on google
L950[12:23:24] <LexManos> So, ANYTHING that could be construed as owned by someone else is a no go.
L951[12:23:30] <LexManos> Hence why your crafting table is a no
L952[12:23:54] <Bottersnike> Ahh. Makes sense (Wow. I just had the two logos head to head and they are identical..)
L953[12:25:16] <LexManos> ya it was brought to my attention just before going to pax :/
L954[12:25:30] <LexManos> so im hoping people will see the post and help out.
L955[12:25:48] <LexManos> POLUS its a good excuse to do a lot of things site wise that we need to do.
L956[12:25:51] <Girafi> Well I guess you could still use a forge as your logo, you would just need someone to make a custom one that is not based of Minecrafts anvil and that is not just taken from Google.
L957[12:25:51] <LexManos> PLUS**
L958[12:26:12] <LexManos> yup, a 'forge' and 'anvil'
L959[12:26:25] <LexManos> isnt copywritten, as far as I know so the concepts are fine.
L960[12:26:28] <Bottersnike> I just had an idea but I'm not sure I can do it (skill level wise :()
L961[12:26:29] <LexManos> Just not that one.
L962[12:28:14] <Bottersnike> So http://imgur.com/a/3GeMU would be okay?
L963[12:28:32] <Bottersnike> (Just not using traced images off google)
L964[12:29:16] <Girafi> I guess it would yeah.
L965[12:29:29] <Bottersnike> #TopNotchGraphics
L966[12:29:36] <LexManos> that wouldnt be bad, only problem is small images. But ya
L967[12:29:59] ⇦ Quits: ChewLeKitten (uid35940@id-35940.ealing.irccloud.com) (Quit: Connection closed for inactivity)
L968[12:30:25] <Bottersnike> I just looked at that in icon preview and I now need bleach to clean my eyes...
L969[12:31:52] <PaleoCrafter> btw, with Flame.goat mentioning improvements to the forums, I wondered whether MC/Forge would be viable for a proposal here: http://area51.stackexchange.com/ xD
L970[12:32:08] <howtonotwin> /r/eyebleach
L971[12:32:17] <howtonotwin> :P
L972[12:32:32] <LexManos> What is that?
L973[12:32:34] <LexManos> and eww
L974[12:32:35] <Bottersnike> Why does that exist!!!
L975[12:32:49] <PaleoCrafter> proposals for new StackExchange communities
L976[12:33:14] <PaleoCrafter> essentially StackOverflow, just for whatever you propose xD
L977[12:33:23] <LexManos> no
L978[12:33:26] <LexManos> fuck stack overflow
L979[12:33:45] <LexManos> overmind wanted to move to a stupid adhock system like that
L980[12:33:54] <LexManos> We're sticking with a forum setup
L981[12:33:58] <illy> mailing lists love me some mailing lists :P
L982[12:34:02] <LexManos> Its more orginized and easier to deal with.
L983[12:34:07] <sham1> Mailing lists
L984[12:34:08] <sham1> YES
L985[12:34:19] <Bottersnike> YES! #MailingLists
L986[12:34:23] <PaleoCrafter> well, I was mostly thinking for replacing Modder Support
L987[12:34:51] <LexManos> Forusm work for modder support
L988[12:35:08] <LexManos> if people dont use the search feature of the forum they wont for the stack
L989[12:35:22] <sham1> Mailing lists could also filter out noobs because they don't know how to use one
L990[12:35:30] <williewillus> lol
L991[12:35:56] <PaleoCrafter> sure, but I think a more question-answer oriented approach could work out well
L992[12:36:17] <sham1> Well nothing is stopping from that working with a forum
L993[12:36:22] <PaleoCrafter> of course :P
L994[12:36:31] <Bottersnike> :P
L995[12:36:40] ⇦ Quits: zabi94 (~zabi94@host139-38-dynamic.21-79-r.retail.telecomitalia.it) ()
L996[12:36:41] <LexManos> ya ill leave the curation of that sub forum to moderators
L997[12:36:58] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L998[12:37:32] <PaleoCrafter> I only came up with this idea because I saw some forum which had a dedicated question-answer system
L999[12:38:12] <sham1> Speaking of forums, why is there no notice post in Modder Support saying that 1.7.x is not supported and stuff like that
L1000[12:38:35] <PaleoCrafter> because diesieben07 is a lame ass moderator
L1001[12:38:39] * PaleoCrafter hides
L1002[12:38:56] <Bottersnike> How do people do that thing like ^
L1003[12:39:03] <sham1> /me
L1004[12:39:08] <diesieben07> lol no
L1005[12:39:13] <PaleoCrafter> not to mention that dem noobs probably wouldn't read those threads anyway
L1006[12:39:18] <diesieben07> *lazy ass
L1007[12:39:20] * sham1 types /me and haves it go like this
L1008[12:39:36] * Bottersnike test this
L1009[12:39:41] <sham1> You can talk about yourself in the third person
L1010[12:39:42] * Bottersnike yay
L1011[12:39:54] <LexManos> Once we cleanup the forum we will be looking for others to help with being moderators
L1012[12:40:07] <LexManos> and making sub-mod types instead of global
L1013[12:40:07] <diesieben07> YOU SHALL NOT TAKE MY THRONE
L1014[12:40:18] <sham1> Any particular requirements for modhood
L1015[12:40:26] <LexManos> I dont know yet.
L1016[12:40:29] <LexManos> Just someone I trust
L1017[12:40:39] <LexManos> The last mods are already a PITA ;)
L1018[12:40:42] <PaleoCrafter> diesieben07, just translate lame ass with "lahmarschig" :P
L1019[12:40:57] <diesieben07> :D
L1020[12:42:09] <LexManos> Girafi, fixed
L1021[12:42:36] <illy> Im just happy the forums exist so I dont have to go to MCF... God I hate that place
L1022[12:42:53] <sham1> But yeah, people probably would not read a notification thread like that considering that the subforum itself says that java knowledge is required and...
L1023[12:42:58] <sham1> you know.
L1024[12:43:05] <diesieben07> MCF > Planet Minecraft :D
L1025[12:43:10] <Girafi> Ohh wow that was quick! Thanks :)
L1026[12:43:21] <sham1> That's not an accomplishment diesieb
L1027[12:43:57] <illy> diesieben07, no matter how much you polish a turd at the end of the day it still a turd
L1028[12:44:08] <sham1> But a very shiny turd
L1029[12:44:31] <Bottersnike> :D
L1030[12:45:11] <illy> the amount of "how can I do X with mcreater" made me want to stab things...
L1031[12:45:25] <williewillus> is that thing updated to 1.8+? (i hope not)
L1032[12:45:35] <sham1> The existence of Mcreater makes me want to stab things
L1033[12:45:38] <illy> not only that they refused to learn java because its to complex and hard
L1034[12:45:45] <illy> :/
L1035[12:45:51] <sham1> "too hard and complex"
L1036[12:45:55] <sham1> Yes
L1037[12:46:17] <LexManos> mcreator... jesus...
L1038[12:46:32] <LexManos> there are a few things in the mc world that just erk me because they cause me so much work.
L1039[12:46:49] <LexManos> But atleast I should be glad that they have dwindeled in numbers.
L1040[12:47:27] <sham1> People start to realise that it is not as cool as they thought it was
L1041[12:47:30] <Bottersnike> :d The mcreator website shows non-mcreator mods in minecraft screenshots...
L1042[12:47:38] <sham1> :P
L1043[12:47:48] <sham1> Advertising 101
L1044[12:48:00] <sham1> lie
L1045[12:48:24] <illy> 2: make a shitty product
L1046[12:48:27] <LexManos> https://github.com/MinecraftForge/ForgeGradle/issues/386 <~ *facepala*
L1047[12:49:13] <Bottersnike> :P
L1048[12:49:19] <Bottersnike> Best issue ever
L1049[12:49:39] <sham1> -1 to the faiths in humanity-counter
L1050[12:50:11] <Girafi> Whaat. I was sure that was how workspace was spelled!
L1051[12:50:23] <illy> Bottersnike, look up the XRay PR in forges issue tracker
L1052[12:50:33] <Ordinastie_> gotta love how he edited the log to hide his name
L1053[12:50:43] <gigaherz_n> sham1: half of the population don't have enough culture to make sensible political choices
L1054[12:50:50] <gigaherz_n> what makes you think it would be any better in terms of modding ;P
L1055[12:51:10] <KnightMiner> I love how the end of the line with the error told him how to fix the error
L1056[12:51:16] <sham1> I have too much faith in humanity thanks to all the awesome people
L1057[12:52:24] <gigaherz_n> the "faith in humanity" meme always annoys me because of that: for every brilliant person, there's an idiot who can't help having negative common sense
L1058[12:52:37] <sham1> True
L1059[12:52:41] <gigaherz_n> otherwise the average person wouldn't be the average person anymore
L1060[12:53:10] <sham1> But still
L1061[12:53:21] <gigaherz_n> it's not like if the current society is doing anything to make that any better
L1062[12:53:26] <sham1> Most of us live in the Western world
L1063[12:53:33] <gigaherz_n> (if anything, it's making the stupid be even more stupid)
L1064[12:53:35] <sham1> I would not expect this kind of stuff
L1065[12:53:37] <LexManos> What if we take all the below average people... and put them somewhere else.
L1066[12:53:48] <LexManos> And that way the average raises, and we repeat
L1067[12:53:56] <LexManos> Until the average is super high!
L1068[12:54:11] <gigaherz_n> well europe did that some centuries ago with australia and the US
L1069[12:54:15] <williewillus> lol
L1070[12:54:23] <gigaherz_n> but we aren't quite there yet to send people to space
L1071[12:54:29] <gigaherz_n> with promises of riches
L1072[12:54:33] <LexManos> Well, we ARE
L1073[12:54:46] <sham1> No one just wants to invest for whatever reason
L1074[12:54:53] <LexManos> But we as a society are to worried about the whole 'survival' thing.
L1075[12:56:19] <Bottersnike> I've got another idea (http://imgur.com/a/G0vx6) but I'm unsure where to go from there
L1076[12:56:19] <gigaherz_n> we need the first trip there to come back
L1077[12:56:27] <gigaherz_n> and say "guys! it's AWESOME out there!"
L1078[12:57:02] <sham1> The fact that computers have been in mass use since the 90s, if not even earlier while still allowing computer ignorance is baffling to me
L1079[12:57:08] <williewillus> huh this is weird
L1080[12:57:23] <gigaherz_n> Bottersnike: that represents this channel
L1081[12:57:25] <williewillus> when I break a block in any dev env (forge dev or userdev) the particles act all slippery
L1082[12:57:28] <williewillus> like they're on ice
L1083[12:57:29] <Bottersnike> :D
L1084[12:57:30] <gigaherz_n> we are the thign that contains the molten metal
L1085[12:57:35] <williewillus> but it doens't happen in obf/real env
L1086[12:57:35] <gigaherz_n> and we keep dumping it onto people
L1087[12:57:45] <Bottersnike> Haha
L1088[12:58:18] <gigaherz_n> the anvil and hammer is meant to be the modders doing their job ;P
L1089[12:58:58] <gigaherz_n> and mccreator would be one of those toys that comes as a plastic frame with the pieces ready to be split off and assembled
L1090[12:59:28] <gigaherz_n> http://image.shutterstock.com/z/stock-photo-plastic-model-kits-required-set-of-toy-on-a-injection-molded-frame-with-rectangular-elements-209818909.jpg
L1091[12:59:35] <illy> Forge is the hammer its our job to use it to hammer minecraft into our own twisted needs :P
L1092[13:00:05] <gigaherz_n> illy: that interpretation sounds more like coremodding -- bad! ;P
L1093[13:00:23] <williewillus> that's having an evil hammer
L1094[13:01:25] <illy> gigaherz_n, ok how about Forge is the hammer its our job to gently caress minecraft to our needs?
L1095[13:01:40] <gigaherz_n> forge is the hammer and the anvil, we are the hand
L1096[13:01:50] <gigaherz_n> on the anvil is the mod code
L1097[13:02:00] <sham1> And minecraft is the metal we are hitting
L1098[13:02:06] <gigaherz_n> being shaped to fit onto minecraft
L1099[13:02:14] <williewillus> eh switch it, forge is the anvil, the mod code is the hammer
L1100[13:02:17] <gigaherz_n> adding layers upon layers of new pieces
L1101[13:02:18] <LexManos> Thats one of the reasons its called Forge :/
L1102[13:02:32] ⇨ Joins: nearlyNon (webchat@ip98-184-187-240.tu.ok.cox.net)
L1103[13:02:33] <Corosus> i thought minecraft was the old wet rotten wood floor the anvil is on
L1104[13:02:49] <williewillus> it's not that bad :P
L1105[13:03:03] <sham1> The codebase is
L1106[13:03:10] <williewillus> it's getting much better
L1107[13:03:10] <gigaherz_n> the codebase we see, is
L1108[13:03:13] <williewillus> ^
L1109[13:03:17] <LexManos> Minecraft is the world
L1110[13:03:19] <gigaherz_n> we don't really know how much of the uglyness is compiler-related
L1111[13:03:22] <Corosus> xD
L1112[13:03:34] <LexManos> Forge is the storehouse with some of the raw materials, and the rest of the Forge
L1113[13:04:09] <LexManos> Hehe you guys dont remember how ugly the code REALLY was back before we fixed Fernflower.
L1114[13:04:14] ⇦ Quits: Bottersnike (~Bottersni@cpc92744-stap14-2-0-cust374.12-2.cable.virginm.net) (Ping timeout: 384 seconds)
L1115[13:04:26] <Corosus> i try not to remember
L1116[13:04:53] <gigaherz_n> my first modding experiences were in 1.4.7 -- and my memories of those days are too fuzy to remember
L1117[13:05:06] ⇦ Quits: nearlyNon (webchat@ip98-184-187-240.tu.ok.cox.net) (Quit: Web client closed)
L1118[13:05:11] <illy> I remember pre gradle and my wierd ant scripts
L1119[13:05:39] <gigaherz_n> I remember extracting folders and doing stuff and then running scripts and hoping I put the right things in the right places
L1120[13:05:41] ⇨ Joins: nearlyNon (~nearlyNon@ip98-184-187-240.tu.ok.cox.net)
L1121[13:05:53] <gigaherz_n> but I don't really remember the code part
L1122[13:06:06] <gigaherz_n> all I know is I gave up modding since 1.8 ;P
L1123[13:06:11] <LexManos> But ya, kids these days have no idea how it used to be. And they bitch about it.
L1124[13:06:12] <gigaherz_n> until*
L1125[13:06:38] <nearlyNon> so if I was going to store 5 variables, for each block / item in the game and I want them configurable by a pack creator what would be the best way to store them?
L1126[13:07:09] <gigaherz_n> somewhere in the config?
L1127[13:07:17] <williewillus> what are these variables?
L1128[13:07:18] <gigaherz_n> but what kind of "variables"?
L1129[13:07:18] <nearlyNon> well I mean, that'd be a pretty big config
L1130[13:07:18] <LexManos> 5 vairables?
L1131[13:07:24] <nearlyNon> a float for each block
L1132[13:07:28] <nearlyNon> they aree exactly......
L1133[13:07:29] <williewillus> this depends on what your"variable" is
L1134[13:07:33] <williewillus> so describe them
L1135[13:07:39] <gigaherz_n> if you explain what you are trying to do
L1136[13:07:44] <gigaherz_n> we may have better ideas ;P
L1137[13:08:01] <nearlyNon> Base Price, Percentage Variance for Base Price, Items in Stock, Percentage Variance for Items In Stock, Percentage Change on Reset, and Influence from Purchase/Sale
L1138[13:08:26] <gigaherz_n> well
L1139[13:08:41] <gigaherz_n> IMO, what you need is an editor with a search feature
L1140[13:08:42] <gigaherz_n> ;P
L1141[13:08:43] <nearlyNon> which these values are different for each item so I can't really have them as globals
L1142[13:08:44] <williewillus> yeah use a config file/json/etc
L1143[13:08:47] <gigaherz_n> possibly a JEI addon
L1144[13:08:50] <LexManos> would items in stock be based on how many ityems were added to the chest or whatever store?
L1145[13:08:53] <nearlyNon> no,
L1146[13:08:57] <nearlyNon> it's for a 'stock market' for items
L1147[13:09:16] <nearlyNon> there are no physical 'blocks' until they're created by purchasing them and removing them from the 'amount in stock'
L1148[13:09:17] <LexManos> stock markets are based on real world things {or in theory}
L1149[13:09:30] <nearlyNon> yeah but this is like an abstracted one
L1150[13:09:32] <LexManos> There are warehouses
L1151[13:09:32] <gigaherz_n> and then the file format becomes an implementation detail
L1152[13:09:41] <nearlyNon> it's just assumed the warehouse is off in space somewhere
L1153[13:09:51] <nearlyNon> because that'd make it infinitely more complex a mod
L1154[13:10:17] <gigaherz_n> hmm thinking about it
L1155[13:10:22] <gigaherz_n> "items in stock" sounds like a worl property
L1156[13:10:24] <LexManos> you just want fancy pull from air things :. bah
L1157[13:10:27] <gigaherz_n> rather than a pack config
L1158[13:10:33] <gigaherz_n> world*
L1159[13:10:36] <nearlyNon> well I want it to be configurable for the pack, for instance,
L1160[13:10:53] <nearlyNon> "you can't buy any [x] because they're not in stock by default in this pack, but you can sell them"
L1161[13:11:11] <nearlyNon> the 'dynamic items in stock' and 'dynamic price' vary, the 'items in stock' in the config stays the same
L1162[13:11:11] <illy> I would make it a json.... that would be a huge json file...
L1163[13:11:16] <gigaherz_n> yeah I guess an initial value would work
L1164[13:11:23] <gigaherz_n> but really as I said
L1165[13:11:26] <gigaherz_n> if you have a GUI editor for it
L1166[13:11:30] <nearlyNon> riight
L1167[13:11:32] <gigaherz_n> then the file format becomes meaningless
L1168[13:11:36] <gigaherz_n> just whatever is easy to work with
L1169[13:11:44] <nearlyNon> I feel like a JSON file would be ridiculous so I'll try a config
L1170[13:11:57] <nearlyNon> as it should be pretty easy with that
L1171[13:12:04] <gigaherz_n> and I'd store the "current data" in a WorldSavedData which would serialize to NBT in the save folder
L1172[13:12:09] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L1173[13:12:12] <nearlyNon> yeah the current data would be saved like that
L1174[13:12:20] <gigaherz_n> okay then yeah
L1175[13:12:25] <nearlyNon> basically the config data there gets used to make a Dynamic Price and Dynamic Number In Stock
L1176[13:12:30] <gigaherz_n> my suggestion would be a JEI addon of sorts
L1177[13:12:33] <nearlyNon> because the price can change from people buying/selling
L1178[13:12:34] * LexManos personally would not put any configs in. And just make it based on how much the users pay.
L1179[13:12:48] <LexManos> do some bidding
L1180[13:12:50] <gigaherz_n> something that lets you view the current values as a normal user
L1181[13:12:56] <gigaherz_n> and edit them as a creative/admin/op
L1182[13:13:04] <nearlyNon> there's going to be a GUI, gigaherz_n, so that you can buy items
L1183[13:13:08] <nearlyNon> and LexManos, singleplayer though?
L1184[13:13:11] *** gigaherz_n is now known as gigaherz
L1185[13:13:23] <nearlyNon> "I'll just bid everything as 1 :D"
L1186[13:13:59] <nearlyNon> it's designed more for an EE type mod while encouraging making more than one thing by having the "EMC" value erode
L1187[13:14:08] <nearlyNon> because with EE I always just ended up making a really big factory for one thing
L1188[13:14:20] <nearlyNon> this mod's basically attempting to encourage making varied factories due to the price changes
L1189[13:14:25] <nearlyNon> I have a write-up but I'd have to pastebin it
L1190[13:14:42] <gigaherz> but then you'd just have to keep making different factories, if no one is buying the stock
L1191[13:14:52] <LexManos> Single player wouldnt really work in this mod.
L1192[13:14:53] <gigaherz> or will you have a virtual "market" that actually flows over time?
L1193[13:14:56] <LexManos> But you could do it.
L1194[13:14:56] <nearlyNon> the latter
L1195[13:15:34] <nearlyNon> like
L1196[13:15:46] <illy> this reminds a idea a friend and I had about a cross server trading mod that would work like an auction house and users could buy and sell items from that
L1197[13:15:48] <nearlyNon> as is in my algorithm everything tends towards BasePrice
L1198[13:16:05] <nearlyNon> so if you're selling tons of stuff and then take a break the price will slowly go back towards Base Price
L1199[13:16:12] <nearlyNon> so it kinda encourages 'alternating'
L1200[13:16:13] <gigaherz> illy: that seems... unbalanced?
L1201[13:16:27] <gigaherz> or you mean just across "friend" servers?
L1202[13:16:42] <nearlyNon> e.g. making 8 harvestcraft farms, each one selling a crop, and rotating which one is active via redstone
L1203[13:16:44] <gigaherz> because if someone with a cheaty mod can sell on it
L1204[13:17:00] <gigaherz> cheaty server*
L1205[13:17:10] <nearlyNon> sell potatoes until those aren't worth anything, then sell carrots until those aren't worth anything, then flip back
L1206[13:17:13] <illy> the admin could blacklist items
L1207[13:17:15] <nearlyNon> (obviously more complicated than that)
L1208[13:17:31] <gigaherz> then the people with a stricted server would have easy access to things that would normally be hard to obtain
L1209[13:17:55] <illy> thats up to the server admin to install the mod then
L1210[13:17:57] <nearlyNon> (for one I'm going to need to make another config file later on that defines 'good categories')
L1211[13:18:04] <gigaherz> nearlyNon: how about you make the 8 farms be smaller, and just produce less over time, but having all 8 farms active at once?
L1212[13:18:04] <gigaherz> ;P
L1213[13:18:10] <nearlyNon> you could
L1214[13:18:27] <nearlyNon> I was just saying that'd be my personal solution because it makes it a bit more interesting base design
L1215[13:18:37] <nearlyNon> cause you could make a minecart rail that only leads to the current active farm
L1216[13:18:39] <gigaherz> my EMC setup in the last pack I played (custom pack),
L1217[13:18:49] <gigaherz> was a bunch of Ancient Warfare 2 farms, and one quarry
L1218[13:18:53] <illy> gigaherz, the goal was to really see what prices people would sell items on a market for
L1219[13:18:54] <nearlyNon> (so that selling tons of farmstuff would lower the price of ALL farmstuff, for instance, simulating you 'encouraging the industry')
L1220[13:19:27] <nearlyNon> (so you'd eventually need to sell ores or wood or such)
L1221[13:19:30] <illy> like how much would people buy iridium for
L1222[13:19:39] <LexManos> that would actually be rather cool
L1223[13:19:48] <nearlyNon> with the proper anticheat that'd be neat
L1224[13:19:53] <LexManos> for certian worlds where like... one server is a hellish desert
L1225[13:19:58] <LexManos> and one is the deep dark
L1226[13:20:00] <nearlyNon> the main problem would just be people using it to kinda 'transfer' their stuff
L1227[13:20:02] <nearlyNon> probably the easiest way I'd do it
L1228[13:20:19] <nearlyNon> is just make the server need to officially verify the other using a password or something
L1229[13:20:24] <nearlyNon> like
L1230[13:20:43] <nearlyNon> server1 will only buy from server2 if server2 has a password-key matching server1's password-key
L1231[13:20:47] <nearlyNon> so that, as long as it dosn't get leaked,
L1232[13:20:58] <nearlyNon> you don't get people setting up server3 at home with the mod and just transferring all their shit over to server1
L1233[13:21:05] <nearlyNon> that they cheated in
L1234[13:21:25] <gigaherz> that'd be an inteeresting server, lex
L1235[13:21:29] <gigaherz> multiple dimensions
L1236[13:21:38] <gigaherz> each where only a limited set of resources is available
L1237[13:21:44] <LexManos> thats what im thinking.
L1238[13:21:47] <gigaherz> and you can't send items across
L1239[13:21:54] <gigaherz> xcept by using the market
L1240[13:22:14] <nearlyNon> I'm just imagining the hilarity from if an item doesn't exist on the other server
L1241[13:22:14] <LexManos> Think of it like interglactic trade markets
L1242[13:22:28] <nearlyNon> I mean obviously the mod would have to actually handle that correctly
L1243[13:22:39] <nearlyNon> but that'd be hilarious to crash a server by buying ModFromItemThatDoesn'tExist
L1244[13:22:54] <LexManos> well then thats a poorly written market mod
L1245[13:22:54] <gigaherz> nearlyNon: that's why I was thinking of one server with multiple dimensions
L1246[13:23:31] <nearlyNon> so my current algorithm for my mod is basically...
L1247[13:23:32] <LexManos> if (ITEMS.contains(itemName)) thats all it takes to not crash
L1248[13:23:56] <nearlyNon> every 20minutesIRL (1 minecraft day -- no bed skipping) or however long the pack has it configged,
L1249[13:24:06] <nearlyNon> run a VERY BASIC algorithm which goes basically:
L1250[13:24:34] <illy> In theroy you dont need to have the same mods stored on all the servers you just need a database for items -> cost and servers without said items wouldn't be able to buy the item
L1251[13:24:49] <nearlyNon> look up the original base price in the config for the item: apply a random number subtracted/added to it that is at most equal to PercentageVarianceOfPrice% of BasePrice
L1252[13:25:17] <nearlyNon> e.g. if PVOP=10% and baseprice=1000, the 'dynamic base price' can vary at most to 900-1100
L1253[13:25:27] <nearlyNon> then, check the current in-world price
L1254[13:25:55] <nearlyNon> the current in world price is compared to the new dynamic base price, and if they're not equal, the current in world price changes by at most PercentageReset% of BasePrice towards the new dynamicbaseprice
L1255[13:26:08] <LexManos> So..
L1256[13:26:15] <nearlyNon> that is, it can change by at most 100 fictionalEMCunits towards the dynamicbaseprice
L1257[13:26:20] <nearlyNon> if it's at 1000
L1258[13:26:25] <LexManos> ya, this is far out of the scope of what eh wants to make
L1259[13:26:28] <LexManos> but someone should make it
L1260[13:26:30] <nearlyNon> then the player selling changes it
L1261[13:26:38] <nearlyNon> or buying
L1262[13:26:48] <nearlyNon> e.g. if Influence = 50, buying or selling that item changes the price by 50
L1263[13:27:03] <nearlyNon> which then gets partially-reset at the day-cycle reset for the fictional market
L1264[13:27:08] <nearlyNon> obviously this is NOT AT ALL how stock markets work
L1265[13:27:17] <nearlyNon> and this algorithm surely has TONS of problems
L1266[13:27:19] <MalkContent> logo concept? http://sinister-lore.de/picdump/forgeconcept.png
L1267[13:27:37] <nearlyNon> but I'm going to implement this basic algorithm before I work on refining it
L1268[13:27:38] <illy> heh my current goal is to bring runecraft into the forge world... damn I miss that mod
L1269[13:27:50] <nearlyNon> andd
L1270[13:28:00] <nearlyNon> ItemsInStock varies by a Percentage Variance Of Items In Stock
L1271[13:28:15] <nearlyNon> so if it's 10 and it's a 1% (it rounds up) it can have 9-11 items in stock in the day
L1272[13:28:37] <nearlyNon> selling items would only increase the items in stock for the day (just assume someone comes in and buys all the extra)
L1273[13:28:50] <nearlyNon> and buying them would decrease it for the day (just assume they get replaced)
L1274[13:28:52] ⇦ Quits: Fye (~Fye@dynamic-adsl-84-220-168-160.clienti.tiscali.it) (Ping timeout: 202 seconds)
L1275[13:29:03] <nearlyNon> so basically: a more limited EE with a different theme
L1276[13:29:33] <Ordinastie_> shouldn't it be the other way around ?
L1277[13:29:38] <nearlyNon> also a transaction limit of 1000 (1000 each way that is; 2000 total)
L1278[13:29:40] <nearlyNon> ?
L1279[13:29:50] <nearlyNon> if you buy items from a store, that decreases how many items the store has to sell
L1280[13:29:57] <nearlyNon> if you sell items to a store, that increases how many items the store can sell
L1281[13:30:03] <Ordinastie_> ah, I thought you meant the price
L1282[13:30:04] <Ordinastie_> nvm
L1283[13:30:19] <nearlyNon> yeah price is completely separate from stock because I don't wanna actually simulate a stock market otherwise I'd probably lag the whole game to death
L1284[13:30:33] <nearlyNon> and then it makes it harder to config it for special HQM packs which is the reason I'm developing it
L1285[13:30:42] ⇦ Quits: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net) (Ping timeout: 186 seconds)
L1286[13:31:15] <nearlyNon> also a 'debated to be implemented' is
L1287[13:31:23] <nearlyNon> 'compression' of items into cardboard boxes
L1288[13:31:35] <nearlyNon> but you get a bulk discount for selling them (or buying them in bulk but then you need the packager to unpackage it)
L1289[13:31:52] <nearlyNon> but I'm not sure if I wanna do that because
L1290[13:31:56] <nearlyNon> that could easily get really stupid
L1291[13:32:16] <nearlyNon> and then I'm technically a storage mod too
L1292[13:33:17] <nearlyNon> the last concept in the mod is a wrench-plus-GUI that lets you manually sell/buy things, bind the automated-buy/sell blocks to you,
L1293[13:33:26] <nearlyNon> and if you're gamemode1 use the admin panel to fuck around
L1294[13:34:01] <nearlyNon> + would act as the in game wiki
L1295[13:34:46] ⇦ Quits: Naiten (Naiten@77.35.31.148) (Read error: Connection reset by peer)
L1296[13:35:08] <nearlyNon> if I can get all that working, then I'll implement a mob seller
L1297[13:35:41] <nearlyNon> I dunno how that'd work
L1298[13:35:54] <nearlyNon> but I just wanna be able to sell the enderdragon
L1299[13:36:10] <nearlyNon> also ofc blacklist
L1300[13:36:13] <nearlyNon> or whitelist
L1301[13:36:21] *** minecreatr is now known as Mine|away
L1302[13:38:00] ⇦ Quits: illy (~LordIllyo@2602:304:cf32:f980:d7b4:c6fb:fb09:5c82) (Read error: Connection reset by peer)
L1303[13:39:01] ⇨ Joins: Gil (uid147942@id-147942.brockwell.irccloud.com)
L1304[13:40:31] ⇨ Joins: TTFT|Away (~ttftcuts@2001:41d0:a:2dcf::)
L1305[13:40:41] *** TTFT|Away is now known as TTFTCUTS
L1306[13:43:03] <nearlyNon> ah, strap balloons to it (and works from a dispenser too)
L1307[13:43:16] ⇨ Joins: illy (~LordIllyo@2602:304:cf32:f980:d7b4:c6fb:fb09:5c82)
L1308[13:43:19] <nearlyNon> (if the dispenser is bound using the wrench)
L1309[13:45:00] ⇨ Joins: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net)
L1310[13:47:25] ⇨ Joins: founderio (~Thunderbi@p200300C4E3D0C1002E8EC1B9768F9037.dip0.t-ipconnect.de)
L1311[13:55:38] ⇦ Quits: sciguyryan (~sciguyrya@5.79.72.112) (Remote host closed the connection)
L1312[13:56:51] ⇦ Quits: nearlyNon (~nearlyNon@ip98-184-187-240.tu.ok.cox.net) (Quit: Leaving)
L1313[14:02:31] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L1314[14:09:19] <MalkContent> *nothing going on, nows the chance* ' this concept a bit promising? http://sinister-lore.de/picdump/forgeconcept.png
L1315[14:09:48] *** PaleoCrafter is now known as PaleOff
L1316[14:13:51] ⇦ Quits: iari (~iari___@evana.futhark24.org) (Quit: Leaving)
L1317[14:20:56] ⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Remote host closed the connection)
L1318[14:20:58] ⇨ Joins: raoulvdberge (uid95673@2001:67c:2f08:6::1:75b9)
L1319[14:22:15] ⇦ Quits: xaero (xaero@the.flying.dutchman.panicbnc.net) (Ping timeout: 206 seconds)
L1320[14:26:17] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L1321[14:29:21] <sham1> Apollo 11?
L1322[14:29:30] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 206 seconds)
L1323[14:30:24] <MrIbby> Breath of the Wild Guardian?
L1324[14:30:32] <illy> Are those fish hooks?
L1325[14:31:13] <sham1> Oh, had a closer look
L1326[14:31:29] <sham1> It's a hammah hitting an anvil and sparks flying off
L1327[14:32:27] <MrIbby> Those are some odd-looking sparks
L1328[14:33:17] <sham1> yes
L1329[14:34:40] <MalkContent> those are hooks, yea x)
L1330[14:35:05] <MalkContent> supposed to go off in a kind of wires-on-a-microchip kinda way
L1331[14:35:51] <sham1> Is art
L1332[14:36:01] <sham1> Has many interpretations
L1333[14:36:02] <MalkContent> totes
L1334[14:37:32] ⇨ Joins: Chaoschaot234 (~Chaoschao@83-221-68-174.dynamic.primacom.net)
L1335[14:38:52] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 384 seconds)
L1336[14:39:18] ⇦ Quits: MrIbby (~MrIbby@173.85.197.145) (Remote host closed the connection)
L1337[14:40:44] ⇦ Quits: Hobbyboy (Hobbyboy@hobbyboy.co.uk) (Ping timeout: 202 seconds)
L1338[14:43:04] ⇦ Quits: MrZoidbergMD (Zoidberg@have.i.gone.mad.panicbnc.org) (Ping timeout: 202 seconds)
L1339[14:44:30] ⇨ Joins: Kenny164 (~pkinney@host86-129-10-179.range86-129.btcentralplus.com)
L1340[14:47:19] <MalkContent> (get it? because forge adds hooks)
L1341[14:48:30] ⇦ Quits: IceDragon (~ThatGuy@184.170.60.58) (Ping timeout: 384 seconds)
L1342[14:48:35] <illy> Ohhhh I get it (pst... I dont get it)
L1343[14:49:16] <gigaherz> what about the text "forge" but looking like a forge place
L1344[14:49:27] <gigaherz> F as a furnace, r as an anvil, and such
L1345[14:50:13] <ajb> a forge *is* a furnace
L1346[14:56:58] ⇦ Quits: Nitrodev (~Nitrodev@85-23-77-207.bb.dnainternet.fi) (Read error: Connection reset by peer)
L1347[14:58:01] ⇦ Quits: CoolerExtreme__ (~CoolerExt@59.96.10.252) (Ping timeout: 206 seconds)
L1348[14:58:20] ⇨ Joins: Noc7is (~Noc7is@2600:8804:285:b900:b0c8:7102:7b3f:e3eb)
L1349[15:01:53] ⇦ Quits: Noc7is (~Noc7is@2600:8804:285:b900:b0c8:7102:7b3f:e3eb) (Ping timeout: 206 seconds)
L1350[15:07:08] ⇨ Joins: MrZoidbergMD (Zoidberg@2a01:4f8:d13:311::3)
L1351[15:07:46] ⇦ Quits: Jezza (~Jezza@92.206.33.136) (Ping timeout: 384 seconds)
L1352[15:15:38] ⇦ Quits: Ordinastie_ (~Ordinasti@87-231-58-94.rev.numericable.fr) (Quit: Leaving)
L1353[15:16:07] ⇨ Joins: MrIbby (~MrIbby@173.85.197.145)
L1354[15:17:04] <gigaherz> ajb: a forge is also the place where people forge things
L1355[15:19:55] <diesieben07> ohhhh my god. i just literally had to use the boobs "emoticon" as a regex.
L1356[15:20:12] <gigaherz> lol
L1357[15:20:15] <diesieben07> i have officially won at live.
L1358[15:20:17] <diesieben07> *life
L1359[15:20:18] <howtonotwin> ...tell us more
L1360[15:20:28] <diesieben07> http://i.imgur.com/oL2RBuF.png
L1361[15:21:09] <LatvianModder> |:I
L1362[15:21:49] <howtonotwin> that is gonna match basically everything a billion times, prepare your engine :P
L1363[15:21:54] <Wuppy> o/
L1364[15:22:02] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1365[15:22:07] ⇨ Joins: Niles (~textual@ool-44c3ad70.dyn.optonline.net)
L1366[15:22:12] <howtonotwin> o/
L1367[15:22:14] <Niles> Hi
L1368[15:22:14] <diesieben07> yeah its broken...
L1369[15:22:21] <howtonotwin> oh RLOs don't work on slashes
L1370[15:22:22] <howtonotwin> oops
L1371[15:22:24] <Wuppy> sup peeps
L1372[15:22:27] <Niles> I'm new here, but have been making mods for a while
L1373[15:22:40] ⇦ Quits: MrZoidbergMD (Zoidberg@2a01:4f8:d13:311::3) (Ping timeout: 206 seconds)
L1374[15:22:44] <Niles> WUPPY!!!!!
L1375[15:22:48] <Niles> I have ur book
L1376[15:22:51] <Wuppy> :o
L1377[15:22:51] <Niles> open right now
L1378[15:22:54] <Wuppy> cool :D
L1379[15:22:57] <Niles> :D
L1380[15:23:04] <Wuppy> I hope you like it :)
L1381[15:23:25] <Niles> I just wanted to ask, how can I make a tile entity? (all types/config etc.)
L1382[15:23:33] <Niles> And i <3 it
L1383[15:23:49] <Wuppy> hour 12 covers the basics of a tile entity :)
L1384[15:24:06] <Niles> I know, but what about more in-depth nbt
L1385[15:24:09] <Niles> etc.
L1386[15:24:33] <Wuppy> mostly by experimentation, reading the existing code base & knowing Java
L1387[15:24:44] <Wuppy> (I dont know how much experience you've got in Java)
L1388[15:24:55] <Niles> Alot... 3-4 years
L1389[15:25:09] <Niles> annd the 9-part all in one book for dummies
L1390[15:25:10] <howtonotwin> nbt isn't complicated, override readFromNBT and writeToNBT add your tags in
L1391[15:25:20] <howtonotwin> and make sure to call super in both
L1392[15:25:21] <Wuppy> then look through all the vanilla (and open source mods) tile entity codes
L1393[15:25:24] <Wuppy> code*
L1394[15:25:32] <Niles> Ok!
L1395[15:25:38] <Niles> Thank you so much.
L1396[15:25:45] <Wuppy> at least that's how I figured it out back when :P
L1397[15:25:46] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L1398[15:25:57] <Niles> Cool... Do you have an email, or skype?
L1399[15:26:13] <Wuppy> yeah, wuppy29@gmail.com
L1400[15:26:19] <Wuppy> and I'm on here pretty much 24/7
L1401[15:26:24] <Niles> awesome. thanks.
L1402[15:26:27] <howtonotwin> and DO NOT FOR ALL YOU DO mangle the default TE tags ("x", "y", "z", "id") iirc
L1403[15:26:42] <Niles> k
L1404[15:26:46] <Niles> ill brb/
L1405[15:26:47] <Niles> .
L1406[15:27:07] * LatvianModder still hates that TE saves that info
L1407[15:30:09] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 186 seconds)
L1408[15:30:32] <williewillus> well it kind of has to
L1409[15:32:23] <howtonotwin> TEs are stored as a big block of NBT inside each chunk I think
L1410[15:32:52] <howtonotwin> so they need to be identified to a position and type because there's no other place to put that iirc
L1411[15:32:57] <williewillus> yeah
L1412[15:33:01] <williewillus> in memory its hashmap of blockpos to te
L1413[15:33:08] <williewillus> there's nothing like entity ID's
L1414[15:33:48] ⇨ Joins: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl)
L1415[15:34:16] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 206 seconds)
L1416[15:34:50] ⇦ Quits: MrIbby (~MrIbby@173.85.197.145) (Remote host closed the connection)
L1417[15:38:24] ⇨ Joins: xaero (xaero@the.flying.dutchman.panicbnc.net)
L1418[15:42:02] <ajb> what does TE stand for?
L1419[15:42:18] <ajb> tile entity?
L1420[15:42:31] <howtonotwin> yes
L1421[15:43:01] <howtonotwin> basically no one has enough patience to write out TE more than once or twice every hour :P
L1422[15:43:26] <ajb> so ... when every block in ic2 has the id "ic2:te" it's a good bet that the entire mod runs off tile entities?
L1423[15:43:49] <howtonotwin> Probably, but I'm not sure.
L1424[15:44:04] <williewillus> i doubt all ofthem are called that
L1425[15:44:11] <ajb> no, they are
L1426[15:44:13] <ajb> every single one
L1427[15:44:17] <williewillus> even tin block? copper block?
L1428[15:44:28] <ajb> i didn't check those
L1429[15:44:39] <howtonotwin> get an IC2 block and run /blockdata pos pos pos {} on it
L1430[15:44:39] <ajb> every machine block and every cable block though
L1431[15:44:40] <williewillus> that's not "every single one" then :P
L1432[15:44:53] ⇨ Joins: Hobbyboy (Hobbyboy@hobbyboy.co.uk)
L1433[15:44:56] <howtonotwin> the error message will dump the NBT data of the TE
L1434[15:44:57] <ajb> hang on let me boot it up
L1435[15:46:09] <ajb> williewillus: you are right, tin ore and copper ore are both called "ic2:resource"
L1436[15:46:22] <ajb> and also the blocks
L1437[15:46:28] <howtonotwin> they'll probably run off metadata then
L1438[15:46:35] <Niles> I have an error on my IIcon array... lol
L1439[15:46:41] *** Darkhax_AFK is now known as Darkhax
L1440[15:47:06] <ajb> yes they all seem to have different metadata too
L1441[15:47:17] <williewillus> i would be surprised if it was all te based :P
L1442[15:47:26] ⇦ Quits: cpup (~cpup@32.218.118.158) (Ping timeout: 384 seconds)
L1443[15:47:35] <howtonotwin> give me an L and an A an
L1444[15:47:36] <howtonotwin> d
L1445[15:47:37] <Niles> How th do I get an error?
L1446[15:47:39] <howtonotwin> a
L1447[15:47:40] <ajb> howtonotwin: "pos pos pos" means world position right?
L1448[15:47:42] <howtonotwin> G
L1449[15:47:43] <howtonotwin> yes
L1450[15:47:44] <Niles> on a simple array
L1451[15:47:50] <williewillus> you can just tab complete the blockpos
L1452[15:47:59] <howtonotwin> if you use tab you should get the looking at pos
L1453[15:48:00] <williewillus> if you're targeting a block tab completing will fill in the position youre targeting
L1454[15:48:06] <williewillus> Niles: well read the error
L1455[15:48:08] <williewillus> what does it say
L1456[15:48:27] <Niles> Cannot find dymbol
L1457[15:48:35] <Niles> srry, btw
L1458[15:48:41] <Niles> symbol
L1459[15:48:49] <williewillus> that means the type doesn't exist
L1460[15:48:55] <williewillus> are you using an old tutorial on 1.8+ or what
L1461[15:48:57] <williewillus> lol
L1462[15:49:05] <Niles> yes
L1463[15:49:07] <ajb> that's cool. it does output a bunch of stuff
L1464[15:49:08] <Niles> 1.7.10
L1465[15:49:10] <williewillus> don't :P
L1466[15:49:14] <Niles> wuppy's book
L1467[15:49:14] <ajb> i don't understand any of it of course
L1468[15:49:17] <williewillus> so much changed
L1469[15:49:23] <Niles> lol... i
L1470[15:49:38] <Niles> used to mod, but am getting back into it. i went to plugins for a while
L1471[15:49:38] <howtonotwin> if it's short dump it here, otherwise dump it onto hastebin or something
L1472[15:50:16] <williewillus> well especially between the 1.7.10-1.8+ barrier you shouldn't be using tutorials across that gap
L1473[15:50:25] <Niles> I'll look up a tut on it.
L1474[15:50:41] <howtonotwin> tutorials are bad and outdated 99% of the time
L1475[15:50:58] ⇨ Joins: MrZoidbergMD (Zoidberg@have.i.gone.mad.panicbnc.org)
L1476[15:51:07] <howtonotwin> Good: http://modwiki.temporal-reality.com/mw/index.php/Main_Page Official: http://modwiki.temporal-reality.com/mw/index.php/Main_Page
L1477[15:51:14] <Niles> Ill just figure it out i guess.
L1478[15:51:39] <howtonotwin> Best: Find an open source mod and stare at it until something clicks
L1479[15:52:01] <howtonotwin> *Official: https://mcforge.readthedocs.io/en/latest/
L1480[15:52:04] ⇨ Joins: MrIbby (~MrIbby@173.85.197.145)
L1481[15:52:09] <howtonotwin> No one saw that >.<
L1482[15:52:19] <ajb> so the only difference between lit and unlit luminators is stored in the "blockdata" (TE?)
L1483[15:52:39] <howtonotwin> a block has 4 things on it most of the time
L1484[15:52:40] <howtonotwin> a block id
L1485[15:52:43] <howtonotwin> a metadata
L1486[15:52:52] <howtonotwin> a TE (maybe)
L1487[15:53:02] <howtonotwin> and a some lighting related data
L1488[15:53:21] <ajb> how are blocks mapped to items?
L1489[15:53:38] <howtonotwin> you register an ItemBlock
L1490[15:53:50] <ajb> because it seems like blocks can also indirectly have an item id and item metadata
L1491[15:53:57] <howtonotwin> basically an ItemBlock is a normal item that holds a special relation to a block
L1492[15:53:58] <williewillus> blocks and items are related only by name
L1493[15:54:07] <howtonotwin> but the block is not related to the item in any real way
L1494[15:54:08] <Niles> oh, ok
L1495[15:54:13] <ajb> yes, you register an item block. but say i have a block instance, how do i get the item?
L1496[15:54:20] <howtonotwin> Item.getItemFromBlock
L1497[15:54:22] <ajb> register an ItemBlock sorry
L1498[15:54:28] <howtonotwin> new ItemBlock(block)
L1499[15:54:30] <ajb> okay, got it
L1500[15:54:33] <howtonotwin> run setters
L1501[15:54:43] <howtonotwin> then GameRegistry.register(itemBlock)
L1502[15:56:39] <howtonotwin> clearer: Get an existing ItemBlock: Item.getItemFromBlock(block) Register ItemBlock for block: GameRegistry.register(new ItemBlock(block).setRegistryName(block.getRegistryName()).set*)
L1503[16:01:18] *** AbrarSyed is now known as Abrar|gone
L1504[16:01:46] <howtonotwin> If I use actors for something, what are the chances something will break horribly?
L1505[16:01:56] <williewillus> actors?
L1506[16:02:10] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 384 seconds)
L1507[16:02:20] <howtonotwin> akka actors, which is a library forge pulls in
L1508[16:02:27] <williewillus> why would it break things?
L1509[16:02:44] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 384 seconds)
L1510[16:02:45] <williewillus> outside of using it incorrectly lol
L1511[16:02:46] <howtonotwin> because they create new threads
L1512[16:02:54] <williewillus> why would that be a problem in itself?
L1513[16:03:05] <howtonotwin> because I want to be sure nothing explodes
L1514[16:03:07] ⇦ Quits: MrIbby (~MrIbby@173.85.197.145) (Remote host closed the connection)
L1515[16:03:10] <williewillus> game logic needs to be in the main thread but if you coordinate with it then it'll be fine
L1516[16:03:21] <howtonotwin> this is MC, everything will make everything else explode in some form or another xD
L1517[16:03:38] <williewillus> basically if you touch a world, entity, or anything involved in that then it has to be from the main thread
L1518[16:03:49] <williewillus> otherwise whatever :P
L1519[16:04:19] <Niles> What is Material p_i45394_1_?
L1520[16:04:29] <williewillus> the parameter :P
L1521[16:04:33] <howtonotwin> !!gp p_i45394_1_
L1522[16:04:34] <MCPBot_Reborn> === MC 1.10.2: net/minecraft/block/Block.Block.materialIn UNLOCKED ===
L1523[16:04:34] <MCPBot_Reborn> Name : p_i45394_1_ => materialIn
L1524[16:04:35] <MCPBot_Reborn> Method : akf.akf => Block.func_i45394_ => Block.Block
L1525[16:04:36] <MCPBot_Reborn> Descriptor : (Laxx;)V => (Lnet/minecraft/block/material/Material;)V
L1526[16:04:36] <MCPBot_Reborn> Comment : None
L1527[16:04:37] <MCPBot_Reborn> Last Change: 2014-09-10 20:46:43.899560-04:00 (bspkrs)
L1528[16:04:37] <Niles> im guesing its sorta null, wirthout being null
L1529[16:04:42] <williewillus> what...
L1530[16:04:45] <williewillus> who said anything about null
L1531[16:04:46] <williewillus> it's a parameter
L1532[16:04:46] <Niles> then u define it
L1533[16:04:48] <williewillus> to a method
L1534[16:04:48] <howtonotwin> it's a name
L1535[16:04:54] <howtonotwin> that is auto generated
L1536[16:04:55] <williewillus> learn java :/
L1537[16:05:46] ⇨ Joins: Ferdz_TheWeeb (~Ferdz_The@24.225.201.205)
L1538[16:05:49] <howtonotwin> So the main issue I want to be sure on, will onTick EVER run concurrently
L1539[16:06:03] <howtonotwin> for TEs at least
L1540[16:06:06] <Ferdz_TheWeeb> Is there a way to have submodels when using vanilla blockstates?
L1541[16:06:07] <Niles> Ok, how do I generate it?
L1542[16:06:09] <williewillus> TE's have no ontick
L1543[16:06:11] <Niles> Please explain
L1544[16:06:14] <williewillus> Niles: generate what?
L1545[16:06:15] <Niles> kindly*
L1546[16:06:20] <Niles> the material name
L1547[16:06:25] <williewillus> Ferdz_TheWeeb: yes look at the 1.9 multipart blockstate definition
L1548[16:06:36] <williewillus> see the vanilla fence blockstate jsons, or redstone wire
L1549[16:06:46] <Ferdz_TheWeeb> Alright thanks
L1550[16:07:00] <howtonotwin> no, it's the name of the constructor's parameter
L1551[16:07:06] <howtonotwin> it's the Material the block is made of
L1552[16:07:17] <Niles> Ohhhh...
L1553[16:07:17] <williewillus> howtonotwin: all ticking logic needs to be on the main thread or you screw stuff badly
L1554[16:07:17] <howtonotwin> or an approximation
L1555[16:07:23] <williewillus> very badly
L1556[16:07:38] <Niles> Thank you!!!!
L1557[16:07:40] <howtonotwin> so what if a bunch of logic runs on other threads
L1558[16:07:47] <howtonotwin> but I also block until that work is done
L1559[16:08:00] <Ferdz_TheWeeb> Can I still use "defaults" when using vanilla blockstates?
L1560[16:08:04] <howtonotwin> yes
L1561[16:08:08] <williewillus> no...
L1562[16:08:10] <williewillus> that's a forge thing
L1563[16:08:14] <williewillus> you can't mix the two formats
L1564[16:08:15] <howtonotwin> { apply: ... } without a case
L1565[16:08:30] <howtonotwin> but it isn't defaults in the sense you probably meant it
L1566[16:08:47] <Ferdz_TheWeeb> Uhm
L1567[16:08:54] <williewillus> howtonotwin: well you can run whatever you want but you have to make changes to the game state using the main thread
L1568[16:08:55] <williewillus> always
L1569[16:09:19] <Ferdz_TheWeeb> Actually what I want to do, is have a model that depends on TWO properties, is that a thing I can do in Forge blockstates?
L1570[16:09:30] <williewillus> no
L1571[16:09:45] <williewillus> you can with the vanilla multiparts though afaict
L1572[16:09:52] <williewillus> the redstoen blockstate json does it
L1573[16:10:10] <howtonotwin> This channel was quiet for a while and now it's practically on fire xD
L1574[16:10:18] ⇨ Joins: IceDragon (~ThatGuy@69.160.123.111)
L1575[16:11:44] ⇦ Quits: Gil (uid147942@id-147942.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
L1576[16:12:30] <heldplayer> Welcome to IRC
L1577[16:15:14] <ThePsionic> where the rules are made up and the points don't matter
L1578[16:17:38] ⇨ Joins: Pennyw95 (~Dr.Benway@host168-29-dynamic.15-87-r.retail.telecomitalia.it)
L1579[16:22:12] ⇦ Parts: Pennyw95 (~Dr.Benway@host168-29-dynamic.15-87-r.retail.telecomitalia.it) ())
L1580[16:29:25] ⇨ Joins: cpw_ (~cpw@76-10-144-162.dsl.teksavvy.com)
L1581[16:29:26] MineBot sets mode: +o on cpw_
L1582[16:34:47] ⇦ Quits: raoulvdberge (uid95673@2001:67c:2f08:6::1:75b9) (Quit: Connection closed for inactivity)
L1583[16:35:02] ⇦ Quits: cpw (~cpw@24-212-222-42.cable.teksavvy.com) (Ping timeout: 384 seconds)
L1584[16:35:02] *** cpw_ is now known as cpw
L1585[16:36:40] * howtonotwin realizes this my problem is basically the same as haskell and IO, and that the solution is monads
L1586[16:36:45] * howtonotwin facepalms
L1587[16:38:57] ⇦ Quits: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl) (Quit: Leaving)
L1588[16:44:19] <Niles> http://hastebin.com/esikugohom.java
L1589[16:44:26] <Niles> how would i choose texture?
L1590[16:44:42] <howtonotwin> models
L1591[16:44:43] <Niles> set texture isnt an option
L1592[16:44:48] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Quit: You think you are above consequences.)
L1593[16:45:02] <TehNut> Create your model and blockstate files
L1594[16:45:05] <howtonotwin> https://mcforge.readthedocs.io/en/latest/blockstates/states/
L1595[16:45:05] <Niles> Models?
L1596[16:45:19] <howtonotwin> new system for shapes and textures in 1.8+
L1597[16:45:42] <howtonotwin> there was a huge uproar from the stubborn old men when it first came out xD
L1598[16:46:00] <howtonotwin> https://gist.github.com/williewillus/57d7093efa80163e96e0
L1599[16:48:11] <howtonotwin> shameless self promo: Also read this https://github.com/howtonotwin/MCForgeDocumentation/tree/models/docs/models starting at introduction.md and read docs/blocks/states.md
L1600[16:52:53] <ajb> what is "type" in the F3 debug view?
L1601[16:53:11] <howtonotwin> on the right below the blockid?
L1602[16:53:47] <howtonotwin> if so that's simply a part of the block's blockstate
L1603[16:53:55] <ajb> yeah
L1604[16:54:07] <ajb> eg minecraft:red_flower\ntype: houstonia
L1605[16:54:16] <howtonotwin> that's just the blockstate's properties
L1606[16:54:27] <ajb> how do i get those, programatically?
L1607[16:54:31] <howtonotwin> properties and their values are enumerated there
L1608[16:54:37] <howtonotwin> world.getBlockState
L1609[16:54:45] <howtonotwin> will get everything that fits into meta
L1610[16:54:55] <howtonotwin> then getActualState to fill in other data
L1611[16:55:10] <ajb> ah so that's the string version of the metadata?
L1612[16:55:13] <howtonotwin> no
L1613[16:55:34] <howtonotwin> it's a string REPRESENTATION of an object representing the state of the block
L1614[16:55:55] <howtonotwin> meta is an old relic and we don't care about it much anymore
L1615[16:56:04] <ajb> so
L1616[16:56:23] <howtonotwin> we store meta in the chunk, although we much rather would not do so
L1617[16:56:41] <howtonotwin> then we supply two methods in Block to convert between meta and IBlockState
L1618[16:57:16] <howtonotwin> and then all code that used to depend on meta should now depend on the IBlockState and meta should be ignored
L1619[16:57:32] <ajb> so i look at the flower and in the waila tooltip it says #0038/3
L1620[16:57:49] <ajb> in F3 it says minecraft:red_flower type: houstonia
L1621[16:57:51] <howtonotwin> items do not have states, they retain their normal damage and meta combo
L1622[16:58:01] <howtonotwin> https://mcforge.readthedocs.io/en/latest/blockstates/states/
L1623[16:58:01] <ajb> this is a block in the world
L1624[16:58:07] <howtonotwin> read that
L1625[16:59:38] <ajb> so what is the difference between block data and block state?
L1626[16:59:51] <howtonotwin> the data is what you store on disk
L1627[17:00:05] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1628[17:00:06] <howtonotwin> the state is an abstracted and better version of that data
L1629[17:00:53] <howtonotwin> i.e. blocks STORE some data as a metadata number, but in code you deal with blockstates
L1630[17:01:24] <ajb> but /blockdata does not get data from the meta
L1631[17:01:30] <howtonotwin> that is NBT data
L1632[17:01:35] <howtonotwin> from the TE
L1633[17:02:01] <howtonotwin> has literally NOTHING to do with state or meta.
L1634[17:02:49] <ajb> it can be used to store information about the state of blocks and you look at it with a command called /blockdata
L1635[17:02:58] <ajb> this is extremely confusing :)
L1636[17:03:03] <howtonotwin> no, it stores info on the tile entity
L1637[17:03:18] <howtonotwin> the name is unfortunate, ignore it
L1638[17:03:38] <ajb> it can be used to store information about the state of a single block in the world
L1639[17:03:41] <howtonotwin> /blockdata is a badly named command that modifies the data of a tile entity
L1640[17:04:02] <howtonotwin> block metadata is a number 0-15 that is stored for every block
L1641[17:04:22] <howtonotwin> block id is a number 0-4095 that stores the type of block
L1642[17:04:44] <howtonotwin> you DO know the difference between a TE and a plain old block, right?
L1643[17:05:04] <ajb> of course not
L1644[17:06:06] <howtonotwin> if(!fork()) exec("explain-it-like-im-five")
L1645[17:06:11] <howtonotwin> lol
L1646[17:06:13] <howtonotwin> jk
L1647[17:06:18] <ajb> i do know the ways that they are similar
L1648[17:06:27] <howtonotwin> A TE is an object that is attached to a position in the world
L1649[17:06:31] <ajb> they still have a block ID and metadata for example, even if it is hidden
L1650[17:06:42] <howtonotwin> e.g. TileEntityChest contains the inventory of a chest
L1651[17:07:00] ⇦ Quits: founderio (~Thunderbi@p200300C4E3D0C1002E8EC1B9768F9037.dip0.t-ipconnect.de) (Quit: founderio)
L1652[17:07:09] <howtonotwin> a block is stuff like grass that exists in the world
L1653[17:07:31] <shartte> the fun part about blocks is that their actual on-disk and on-wire state is always just their id (16 bit) + metadata (4 bit)
L1654[17:07:37] <howtonotwin> e.g. BlockChest contains logic for rightclick, open gui, place, comparator
L1655[17:07:52] <howtonotwin> TOGETHER, a TE AND a block are necessary to make a chest
L1656[17:08:35] <howtonotwin> if you somehow stripped the TE out of a chest, the block would still exist, but would do weird things and/or crash
L1657[17:08:41] <ajb> wait
L1658[17:08:49] <ajb> what it the difference between an object and an item?
L1659[17:09:02] <shartte> What I find interesting about the Java side: Your Block class? An instance of that doesn't represent a block in the world, but rather a *TYPE* of block
L1660[17:09:08] <howtonotwin> if you somehow stripped the block out of a chest, you'd still have the inventory data attached to an empty air block and that would also break
L1661[17:09:22] <howtonotwin> MC utilizes the flyweight/singleton pattern
L1662[17:09:24] <shartte> But for Tile Entites, an instance of your TE class actually represents a single TE in the world
L1663[17:09:51] <howtonotwin> Block, Item, and Potion are flyweights or singletons
L1664[17:10:00] <howtonotwin> Entity, TE, and PotionEffect are actual instances
L1665[17:10:17] <gigaherz> shartte: that's the whole purpose of them
L1666[17:10:17] <shartte> I don't know if i'd agree with that howtonotwin, but I wont be pedantic about the pattern names
L1667[17:10:36] <gigaherz> I believe mojang calls the world grid "cells" Tiles
L1668[17:10:50] <gigaherz> so a TileEntity is an entity that belongs to a tile
L1669[17:10:57] <gigaherz> as an entity, it's its own thing
L1670[17:11:04] <gigaherz> meanwhile, Block/Item are "managers"
L1671[17:11:20] <gigaherz> for blocks, the storage only contains id+meta
L1672[17:11:26] <gigaherz> for items, they exist only as ItemStacks
L1673[17:11:59] *** amadornes is now known as amadornes[OFF]
L1674[17:12:02] <gigaherz> just imagine if there was an instance of Block for each actual block: 16*16*256 instances per chunk
L1675[17:12:21] <howtonotwin> each one having to keep track of its state and position too
L1676[17:12:23] <gigaherz> the usual view radius is 12 chunks
L1677[17:12:36] <gigaherz> that means approximately 12*2+1 (the center one) chunks loaded at any one time
L1678[17:12:42] <gigaherz> eh
L1679[17:12:46] <howtonotwin> In simple terms: Computer -> Slagathor
L1680[17:12:48] <gigaherz> a circle of that diameter, I mean
L1681[17:13:25] <gigaherz> !!calc pi + 12.5 ^ 2
L1682[17:13:25] <gigaherz> gigaherz: Result(s): 159.3915927
L1683[17:13:26] <howtonotwin> And also: Supercomputer -> Pentium 5
L1684[17:13:39] <gigaherz> so you have approximately 160 chunks visible at any one time
L1685[17:13:47] <gigaherz> !!calc 160 * 16*16*256
L1686[17:13:47] <gigaherz> gigaherz: Result(s): 10485760
L1687[17:13:59] <gigaherz> you'd have over 10 million instances
L1688[17:14:08] <gigaherz> each instance knowing *at least* position + state
L1689[17:15:00] <shartte> i think we lost him
L1690[17:15:23] <gigaherz> or in other words: try replacing every single block in the world with a note block
L1691[17:15:27] <gigaherz> and see how laggy that gets ;P
L1692[17:15:42] <gigaherz> although that wouldn't be realistic, since TEs aren't stored in the world grid
L1693[17:15:46] <gigaherz> they are in a list/map
L1694[17:18:11] <shartte> If one thinks of Block objects more of BlockType objects, it may make it clearer. At least that's how it was for me.
L1695[17:18:25] <LordFokas> <gigaherz> !!calc 160 * 16*16*256
L1696[17:18:25] <LordFokas> <gigaherz> gigaherz: Result(s): 10485760
L1697[17:18:38] <LordFokas> Or right about "exactly 10 Mega"
L1698[17:18:55] <howtonotwin> *Mebi
L1699[17:18:59] <howtonotwin> :P
L1700[17:19:05] <LordFokas> yeah I thought about that
L1701[17:19:14] <LordFokas> but I wasn't sure how to put it
L1702[17:19:14] <gigaherz> I despise that term and notation
L1703[17:19:14] <gigaherz> ;P
L1704[17:19:17] <shartte> ajb: did we lose you completely?
L1705[17:19:22] <LordFokas> MiBlocks :p
L1706[17:19:23] <ajb> no
L1707[17:19:35] <ajb> but i am trying to find a way to ask a question that isn't comletely dumb
L1708[17:19:48] <shartte> ask the dumb question
L1709[17:19:49] <gigaherz> don't try too hard, it will end up sounding dumber
L1710[17:19:50] <gigaherz> ;p
L1711[17:19:51] <howtonotwin> ask dumb questions, get essays for answers :P
L1712[17:19:54] <LordFokas> asking dumb questions is what makes us less dumb
L1713[17:20:00] <gigaherz> there's no stupid questions except the ones that remain unasked
L1714[17:20:14] <ajb> okay. i'm looking at an ic2 luminator
L1715[17:20:27] <howtonotwin> there you all go being supportive and then here I am xD
L1716[17:20:29] <LordFokas> because, building on howtonotwin's answer, you get to read a few damn fine essays
L1717[17:20:42] <shartte> okay, what about the luminator?
L1718[17:21:02] <LordFokas> shartte, I'd guess it's not luminating properly :p
L1719[17:21:02] <ajb> waila says "Luminator: #4156/36", f3 says "ic2:te, facing: down, type: luminator_flat"
L1720[17:21:20] <shartte> yes
L1721[17:21:35] <ajb> /blockdata prints something that looks like json and doesn't seem to relate to any of those numbers
L1722[17:21:46] <shartte> i dont know about blockdata, to be honest
L1723[17:21:47] <shartte> what does that do
L1724[17:21:49] <howtonotwin> blockdata is TE data
L1725[17:21:49] <gigaherz> 4156 would be the internal block ID, 36 the encoded metadata corresponding to the blockstates
L1726[17:21:58] <gigaherz> F3 says the proper registry name
L1727[17:22:01] <gigaherz> and the blockstate information
L1728[17:22:02] <howtonotwin> blockdata is just a TERRIBLE TERRIBLE name
L1729[17:22:03] <ajb> when i turn the luminator on it's type changes to "luminator_flat_active"
L1730[17:22:05] <gigaherz> they are equivalent
L1731[17:22:06] <shartte> the blockstates might actually contain more information than is encodable in the meta
L1732[17:22:11] <gigaherz> xcept the numbers shouldn't be used for anything
L1733[17:22:19] <gigaherz> blockdata is just the TE encoded as NBT
L1734[17:22:21] <ajb> in order to make my shader know the luminator is turned on, i need to pass it a number
L1735[17:22:36] <shartte> oh boy. shaders :D
L1736[17:22:49] <gigaherz> ajb: if the /36 doesn't change
L1737[17:22:56] <LordFokas> you beat me to it shartte :p
L1738[17:22:57] <ajb> it doesn't
L1739[17:22:59] <gigaherz> then it's using Tileentities for storage
L1740[17:23:00] <shartte> i would be careful with the metadata....
L1741[17:23:04] <gigaherz> not meta values
L1742[17:23:13] <shartte> you can actually use both
L1743[17:23:18] <ajb> right. so f3 "type" is a blockstate
L1744[17:23:20] <howtonotwin> if you can access the blockstate, use on the property "type"
L1745[17:23:26] <ajb> how are blockstates related to tile entities?
L1746[17:23:34] <gigaherz> they aren't
L1747[17:23:35] <shartte> ajb: they aren't really
L1748[17:23:36] <gigaherz> xcept
L1749[17:23:41] <howtonotwin> however the modder makes the relate
L1750[17:23:42] <gigaherz> mc will call getActualState
L1751[17:23:49] <gigaherz> to allow blocks to augment their stored bits
L1752[17:23:50] <ajb> so ic2 is using both blockstates and tile entities
L1753[17:23:53] <shartte> dont forget about getExtendedState :P
L1754[17:23:53] <gigaherz> with data from neighbours and TEs
L1755[17:24:00] <shartte> although that doesn't show up on F3
L1756[17:24:05] <gigaherz> shartte: that's only for rendering, won't show up on the F3 screen ;p
L1757[17:24:06] <shartte> So in this case it's more likely getActualState
L1758[17:24:12] <shartte> yup
L1759[17:24:19] <gigaherz> ajb: basically, you can't trust the meta number at all
L1760[17:24:22] <shartte> I am using both a lot hehe
L1761[17:24:37] <shartte> ajb: So I am unfamiliar with the framework to get data into shaders, so I am not sure I can help you
L1762[17:24:43] <gigaherz> many many blocks use data from neighbours (fences and such)
L1763[17:24:47] <howtonotwin> if you can access the TE only, *carefully* figure out how the TE works :P
L1764[17:24:48] <gigaherz> and data from TEs (machine blocks and such)
L1765[17:24:52] <gigaherz> rather than meta values
L1766[17:24:59] <gigaherz> to differentiate models
L1767[17:25:08] <ajb> shartte: you put data into textures, or ints, or floats, or vectors and matrices composed of ints or floats
L1768[17:25:10] <gigaherz> so the ideal situation would be
L1769[17:25:12] <shartte> howtonotwin: so if he has a world object, and the position, he can just call getActualState and inspect the properties
L1770[17:25:14] <ajb> basically no strings
L1771[17:25:28] <gigaherz> ajb: each blockstate would have an index
L1772[17:25:29] <shartte> ajb: well yes, i am just not sure what you have access to when you have to pass the data to the shader
L1773[17:25:39] <gigaherz> within the blocks' blockstate structure
L1774[17:25:41] <ajb> shartte: a block
L1775[17:25:54] <shartte> ajb: well we established, the block class doesnt do much for you
L1776[17:25:57] <shartte> do you have a IBlockState instance?
L1777[17:26:02] <shartte> for the luminator in question?
L1778[17:26:25] <gigaherz> yeah you need the IBlockState in order to do anything useful
L1779[17:26:26] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 186 seconds)
L1780[17:26:45] <ajb> http://paste.debian.net/817302/ is what it does to put the block data into the vertex shader
L1781[17:27:03] <gigaherz> yep blockstate.getBlock
L1782[17:27:07] <gigaherz> that means you do have a blockstate
L1783[17:27:08] <ajb> oh you also have IBlockState blockState, BlockPos blockPos, IBlockAccess blockAccess
L1784[17:27:11] <shartte> okay since you're starting with a blockstate, you should actually be good
L1785[17:27:22] <shartte> so... the issue is, IC2 probably doesn't expose it's BlockState properties in the API
L1786[17:27:24] <shartte> At least that's my guess
L1787[17:27:30] <gigaherz> nono
L1788[17:27:44] <ajb> it must do, or how can it show it on F3?
L1789[17:27:45] <gigaherz> the issue is, IC2 doesn't use metadata bits to indicate which type of machine it is
L1790[17:27:54] <ajb> yes, that's the issue
L1791[17:27:58] <gigaherz> it will return an augmented state through getActualState
L1792[17:28:00] <gigaherz> and similarly
L1793[17:28:02] <gigaherz> MANY mods do that
L1794[17:28:06] <ajb> right
L1795[17:28:12] <shartte> it's not that much of an issue here raelly
L1796[17:28:13] <gigaherz> it's quite common to use the meta bits for rotation+powered
L1797[17:28:13] <shartte> ~really
L1798[17:28:17] <gigaherz> and leave the subtype to the TE
L1799[17:28:27] <gigaherz> so
L1800[17:28:28] <shartte> So, throwing micro-optimization of performance out of the window for a sec
L1801[17:28:37] <shartte> inspect blockstate.getProperties
L1802[17:28:39] <gigaherz> that's not what I'm getting at
L1803[17:28:41] <gigaherz> ;P
L1804[17:28:45] <shartte> each property in that has getName()
L1805[17:28:49] <gigaherz> what I was trying to say is
L1806[17:29:27] <howtonotwin> bigger problem: block.getRenderType(block.getDefaultState()).ordinal()
L1807[17:29:32] <gigaherz> you have an IBlockState, you could, during loading, assign each IBlockState a number, and pass that number to the shader
L1808[17:29:56] <shartte> as far as i can tell, he's only interested in luminators
L1809[17:30:01] <shartte> and only in the property active=false|true
L1810[17:30:05] <ajb> no, i am interested in every mod ever
L1811[17:30:09] <shartte> ooooh okay
L1812[17:30:20] <howtonotwin> should be block.getRenderType(blockState)
L1813[17:30:33] <shartte> what is your shader actually trying to do, ajb ?
L1814[17:31:01] <ajb> shartte: be able to apply it's effects to any block from any mod without having to recompile the shadermod
L1815[17:31:37] <shartte> well... you can serialize every blockstate (except the extended ones) to a string
L1816[17:31:46] <shartte> which is exactly what MC does for blockstate JSONs
L1817[17:31:56] <ajb> you can only put ints and floats into a shader
L1818[17:32:06] <shartte> Well, you need an external mapping
L1819[17:32:11] <gigaherz> we had most of that discussion yesterday ;P
L1820[17:32:11] <ajb> and texture samplers
L1821[17:32:39] <ajb> yes, so say i have an external mapping, what should that mapping look like?
L1822[17:32:56] <ajb> it should be able to select blocks based on block id, meta, tile entities, or blockstates?
L1823[17:33:03] <shartte> mod-id:block-id#state = shader_name { ... additional properties ... }
L1824[17:33:13] <shartte> where state = serialized block state
L1825[17:33:17] <gigaherz> ideally, "modname:blockname#variantstring": { shader info }
L1826[17:33:17] <shartte> as per blockstate JSON variants format
L1827[17:33:50] <gigaherz> where shader info would be the shader constants to pass on to the shader compiler
L1828[17:33:52] <ajb> difference between variant: and type: ?
L1829[17:34:00] <gigaherz> what's "type"?
L1830[17:34:08] <shartte> type is an IC2 property in your case
L1831[17:34:12] <shartte> it's completely generic
L1832[17:34:17] <ajb> well minecraft:stone can have variant: granite
L1833[17:34:17] <gigaherz> sounds like something specific to a mod ;P
L1834[17:34:20] <gigaherz> yep
L1835[17:34:24] <gigaherz> that's a blockstate property
L1836[17:34:30] <gigaherz> propertyname:propertyvalue
L1837[17:34:34] <gigaherz> sorted alphabetically
L1838[17:34:39] <ajb> where as minecraft:red_flower has type: houstonia
L1839[17:34:43] <gigaherz> that's how a variant string looks like
L1840[17:34:45] <ajb> and no variant
L1841[17:34:53] <gigaherz> yes and a furnace has
L1842[17:34:54] <ajb> this is according to F3
L1843[17:34:54] <gigaherz> facing:east
L1844[17:34:55] <howtonotwin> it depends on the block
L1845[17:35:04] <gigaherz> and a redstone lamp has powered:true
L1846[17:35:09] <howtonotwin> there is no standard
L1847[17:35:15] <gigaherz> each block defines its own properties
L1848[17:35:22] <shartte> ajb: variant is just the name MC uses for entries in its blockstate JSON
L1849[17:35:23] <gigaherz> the system is 100% generic
L1850[17:35:34] <gigaherz> what I'm saying is
L1851[17:35:35] <shartte> ajb: it's coincidence that they used the property-name "variant" for stone
L1852[17:35:36] <ajb> what about red_flower then?
L1853[17:35:43] <ajb> oh, i see
L1854[17:35:53] <gigaherz> minecraft already has code to obtain the string
L1855[17:36:02] <shartte> DefaultStateMapper has serialization logic in it i think
L1856[17:36:14] <shartte> or rather StateMapperBase
L1857[17:37:01] <gigaherz> then
L1858[17:37:22] <gigaherz> once you have that "key"
L1859[17:37:25] <gigaherz> you have to choose
L1860[17:37:27] <Niles> Hey... so i read over both docs, and am still confused as to what to do/where to put code
L1861[17:37:38] <gigaherz> the ideal situation would be for you to pass on compile-time constants to the shader compiler
L1862[17:37:46] <gigaherz> and be able to turn things on/off
L1863[17:37:58] <ajb> that won't work
L1864[17:38:04] <gigaherz> but an alternative would be to declare values manually
L1865[17:38:10] <howtonotwin> Niles: When you register your block, you give it a ResourceLocation, right?
L1866[17:38:11] <gigaherz> something like passing on fake blockid+meta
L1867[17:38:18] <gigaherz> those numbers can be 100% fake
L1868[17:38:21] <ajb> yes, that would work
L1869[17:38:22] <gigaherz> don't need to match ingame IDs
L1870[17:38:27] <ajb> that is what i plan to do
L1871[17:38:28] <gigaherz> in fact
L1872[17:38:32] <howtonotwin> of the form domain:path
L1873[17:38:32] <gigaherz> you don't WANT them to match ingame IDs
L1874[17:38:38] <gigaherz> since the ingame IDs change per-save
L1875[17:38:41] <Niles> yes.
L1876[17:38:49] <Niles> is that where i put file?
L1877[17:38:51] <gigaherz> so you'd end up with
L1878[17:38:53] <ajb> right, ideally instead of block id + meta it uses now, it would send a list of properties of the block
L1879[17:38:53] <Niles> a json file?
L1880[17:38:54] <howtonotwin> You place a blockstate JSON of in assets/domain/blockstates/patch.json
L1881[17:39:04] <howtonotwin> *patch -> path
L1882[17:39:10] <gigaherz> "modname:blockname#variantstring": { "id": 345, "meta": 10 }
L1883[17:39:15] <ajb> right
L1884[17:39:23] <gigaherz> and thne the shader could do
L1885[17:39:23] <howtonotwin> so minecraft:dirt is in assets/minecraft/blockstates/dirt.json
L1886[17:39:35] <gigaherz> if (id==345 && meta==10) { run this }
L1887[17:39:45] <ajb> right, the shaders already do that
L1888[17:39:48] <gigaherz> yep
L1889[17:40:00] <howtonotwin> if you read my docs on github, tell me what's unclear so I can fix it.
L1890[17:40:01] <ajb> and shadersmod even has a piece of code to load such a mapping file
L1891[17:40:05] <gigaherz> so that is probably the least intrusive solution
L1892[17:40:11] <Niles> So each block has its own json file?
L1893[17:40:18] <gigaherz> Niles: yes.
L1894[17:40:19] <howtonotwin> well, it depends
L1895[17:40:23] ⇦ Quits: Ferdz_TheWeeb (~Ferdz_The@24.225.201.205) (Quit: Leaving)
L1896[17:40:24] <ajb> but it's of the format "minecraft:stone=123"
L1897[17:40:26] <gigaherz> some blocks cheat and choose not to have one
L1898[17:40:30] <gigaherz> but generally speaking, yes.
L1899[17:40:40] <howtonotwin> once the game has a blockstate, it will find a IStateMapper
L1900[17:40:54] <gigaherz> ajb: you'll have to extend it
L1901[17:40:55] <ajb> but it builds a hash and then never uses it
L1902[17:41:00] <ajb> yes, indeed
L1903[17:41:07] <howtonotwin> and the IStateMapper is responsible for finding the ModelResourceLocation
L1904[17:41:14] <gigaherz> "minecraft:stone#type=diorite=123:45"
L1905[17:41:15] <Niles> ANd I would need to make a Property Integer object before making config?
L1906[17:41:18] <howtonotwin> but the default works as stated
L1907[17:41:23] <Niles> or whatever applies
L1908[17:41:32] <ajb> so in order to be compatible with every mod ever, i need to define a format that can match against blockid, meta, TE, and blockstates
L1909[17:41:33] <howtonotwin> you don't NEED a property
L1910[17:41:46] <howtonotwin> a blockstate without properties will default to the variant "normal"
L1911[17:42:02] <Niles> Ok... is there a video that explains this all?
L1912[17:42:14] <howtonotwin> nope, all of it is text
L1913[17:42:23] <Niles> S#!t
L1914[17:42:27] <howtonotwin> xD
L1915[17:42:31] <Niles> lol
L1916[17:42:35] <Niles> ik ur jk
L1917[17:42:44] <ajb> gigaherz: fun story. if you read every single page of the shadersmod forum megathread, there's a link to the source on about page 300 of 600
L1918[17:42:48] <gigaherz> ajb: no, don't match blockid and meta
L1919[17:42:51] <gigaherz> well meta maybe
L1920[17:42:53] <gigaherz> but
L1921[17:42:59] <howtonotwin> actually I really don't know of any videos on blockstates
L1922[17:43:01] <gigaherz> it would be best to always match against blockstates
L1923[17:43:04] <gigaherz> IMO
L1924[17:43:08] <Niles> ok ill search
L1925[17:43:11] <Niles> and report back
L1926[17:43:12] <howtonotwin> get out your audio synthesizer :P
L1927[17:43:14] <gigaherz> you should only accept two versions of the patterns
L1928[17:43:17] <ajb> gigaherz: it needs to be able to match against any part or parts
L1929[17:43:20] <gigaherz> minecraft:stone=125
L1930[17:43:24] <shartte> who knows! maybe they'll announce at minecon NO MORE BLOCKSTATES. WE'RE GOING META!
L1931[17:43:27] <gigaherz> which would ignore blockstates
L1932[17:43:32] <gigaherz> and pass on the meta value directly to the shader
L1933[17:43:34] <gigaherz> as it does now
L1934[17:43:35] <gigaherz> and
L1935[17:43:46] <gigaherz> minecraft:stone#type=diorite=125:14
L1936[17:43:53] <gigaherz> whih would match only that one subtype of stone
L1937[17:43:59] <gigaherz> and pass the provided meta value
L1938[17:44:07] <Snapples> What happens if I remove a mod from my pack that had oregen?
L1939[17:44:10] <gigaherz> and the way I would approach it is
L1940[17:44:18] <gigaherz> if an exact match exists
L1941[17:44:19] <gigaherz> prefer it
L1942[17:44:21] <Snapples> Will the blocks replaced with air or with something special?
L1943[17:44:28] <gigaherz> otherwise, try with just the block string name
L1944[17:45:06] <gigaherz> Snapples: I think there's a special thing which tolds the TE data, but the block itself becomes air
L1945[17:45:07] <howtonotwin> air, like all missing blocks
L1946[17:45:09] <gigaherz> holds*
L1947[17:45:25] <gigaherz> no idea if that TE data is recoverable, though
L1948[17:45:29] <gigaherz> and don't quote me
L1949[17:45:34] <gigaherz> I'm tired and could remember wrongly
L1950[17:45:38] <Snapples> I see.
L1951[17:45:42] <howtonotwin> if you want to fill in the ores, you can probably MCEdit them into stone
L1952[17:46:28] <ajb> gigaherz: the data that actually gets passed in is completely arbitrary if i don't care about backwards compatibility to old shaders, which to be honest i don't
L1953[17:46:52] <ajb> the problem is matching the mc data and using it to generate something useful to the shader
L1954[17:46:56] <Snapples> We don't mind having air pockets, but there seems to be some kind of issue where the blocks turn into some kind of solid "placeholder".
L1955[17:47:07] <ajb> and specifically understanding all the places a mod might store information about a block in the world
L1956[17:47:22] <Snapples> I'm not sure about that, tho, since I'm not the creator of the modpack I'm talking about.
L1957[17:47:30] <Snapples> Might be some mod-issue.
L1958[17:47:31] <Niles> https://www.youtube.com/watch?v=LlJ6v3R3Gt0
L1959[17:48:01] <howtonotwin> eeyeyeyyee that's for 1.8
L1960[17:48:08] <howtonotwin> please use his 1.10 series
L1961[17:48:27] <howtonotwin> https://www.youtube.com/watch?v=_UrGiXuf-dY and #4
L1962[17:48:35] <howtonotwin> my memory is now jogged :P
L1963[17:48:59] ⇨ Joins: liach (~liach@2605:e000:309e:3200:78ad:e49:3de0:84b9)
L1964[17:49:31] <Niles> Ok.
L1965[17:49:35] <shartte> hrm... once I am done porting I need to figure out how to detect unused textures in this mod, heh
L1966[17:49:35] <Niles> lol
L1967[17:50:01] <howtonotwin> If you're on *nix, check accesstimes
L1968[17:50:15] <shartte> hm, I am not. But good idea
L1969[17:50:20] <howtonotwin> idk if Windows does that
L1970[17:50:21] <ajb> gigaherz: the mapping file could in fact completely define the entire vec4 to be passed in, that way you could write a mapping file to give compatibility to old shaders
L1971[17:50:58] <shartte> ajb: Passing in block-types as uniforms to shaders as the only(?) way to distinguish blocks might not be a great idea anyway
L1972[17:50:58] ⇦ Quits: Kenny164 (~pkinney@host86-129-10-179.range86-129.btcentralplus.com) (Quit: Bye)
L1973[17:51:03] <shartte> since control flow in shaders is a performance problem
L1974[17:51:18] <shartte> if you were using shader compile time constants, it'd be less of a problem
L1975[17:51:23] <ajb> shartte: absolutely, but it's the way it's done now
L1976[17:51:33] <liach> block type or blockstate?
L1977[17:51:57] <ajb> block id and meta is what it passes in now
L1978[17:52:13] <liach> are you talking about 1.7
L1979[17:52:17] <ajb> no
L1980[17:52:29] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L1981[17:52:35] <liach> then which version are you talking about?
L1982[17:52:48] <shartte> ajb: i am not familiar with the shader infrastructure thats there. can you make compile-time constants configurable in your JSON and dynamically recompile based on that?
L1983[17:53:01] <shartte> and still offer arbitrary uniforms for legacy shaders?
L1984[17:53:02] <ajb> what json?
L1985[17:53:17] <howtonotwin> shartte: `fsutil behavior set DisableLastAccess 0` and then restart
L1986[17:53:33] <ajb> liach: any... the shadermod works the same in any version. yes, it's a problem...
L1987[17:53:33] <howtonotwin> don't know how to use that but it's there xD
L1988[17:54:15] <howtonotwin> shartte: http://www.groovypost.com/howto/microsoft/enable-last-access-time-stamp-to-files-folder-windows-7/
L1989[17:56:05] <howtonotwin> explorer.exe can search on the predicate of accesstime
L1990[17:56:12] <ajb> shartte: i don't understand how compile time constants would help. the entity data that is passed in currently is a vertex attribute
L1991[17:56:24] <shartte> ajb: it would only help for newer shaders
L1992[17:56:42] <ajb> but the data about a vertex is obviously per vertex...
L1993[17:56:45] <shartte> I mean someone could just specify different shader-files for different block-states in your config-file. that'd work too. but it's more work
L1994[17:56:56] <ajb> it already does that to an extent
L1995[17:57:10] <shartte> ajb: okay wait. how does that thing work. can it only bind one shader overall?
L1996[17:57:12] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L1997[17:57:24] <ajb> shartte: no it binds like 32 different shaders
L1998[17:57:44] <ajb> see https://github.com/sp614x/optifine/blob/master/OptiFineDoc/doc/shaders.txt
L1999[17:58:20] ⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L2000[17:58:40] <shartte> that is exactly what i meant though
L2001[17:58:42] <shartte> okay i see the problem
L2002[17:58:51] <shartte> minecraft's rendering pipeline is a shitshow for actual shader rendering hehehe
L2003[17:59:08] <shartte> yeah... i guess you wont have a choice but to bake all logic into the same shader to make it work with MC chunk rendering
L2004[17:59:57] <ajb> it is already somewhat split up... translucent vs solid vs cutout
L2005[18:00:17] <ajb> then in the translucent (water) shader it checks the block id to see if it is water or glass
L2006[18:00:19] ⇦ Quits: RichardG (~richardg8@201.37.243.191) (Read error: Connection reset by peer)
L2007[18:00:20] <shartte> well yes, but other than that, all blocks of a render-chunk get batched into a single draw call as far as i remember
L2008[18:00:28] ⇨ Joins: RichardG (~richardg8@201.37.243.191)
L2009[18:00:28] MineBot sets mode: +v on RichardG
L2010[18:00:29] <ajb> yes, they get put in a VBO
L2011[18:00:36] <shartte> so you can't switch out the shader for different types of blocks
L2012[18:00:58] <shartte> meaning, the shader for a certain render-type (i.e. solid) needs to be able to handle *all* types of blocks
L2013[18:01:09] <ajb> you probably could since shadermod seems to replace the whole render pipeline
L2014[18:01:33] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L2015[18:01:50] <shartte> it could probably use index buffers to group the draw calls by material (=shader) instead
L2016[18:01:55] <shartte> but no idea if it does that
L2017[18:02:38] <ajb> i still don't see how compile time constants help...
L2018[18:02:59] <shartte> well, they don't in your case
L2019[18:03:15] *** MrKickkiller is now known as MrKick|Away
L2020[18:03:22] <ajb> and i'd still need the remapping file to say "blockpattern: shader"
L2021[18:04:10] <ajb> and all along the problem has been how to define the blockpattern so it works with any mod
L2022[18:04:18] <ajb> the rest i can figure out :)
L2023[18:04:25] <shartte> well we did solve that problem already, didn't we
L2024[18:04:32] <ajb> i think so, yes
L2025[18:04:39] <ajb> if i can wrap my head around it
L2026[18:05:34] <ajb> is there an autodoc somewhere that lists all the function names and arguments and return types?
L2027[18:06:09] ⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read error: Connection reset by peer)
L2028[18:06:35] <shartte> ajb: Let's say you get modid:blockid#state from your config
L2029[18:06:52] <shartte> You should be able to pass that directly to new ModelResourceLocation( ... ) (which is kinda an abuse, but whatever)
L2030[18:07:08] <shartte> then you can pass *that* into Block.REGISTRY.getObject() to get the block instance for that block-id
L2031[18:07:39] <shartte> ah sorry, that might be Block.REGISTRY.getValue( ... )
L2032[18:07:46] <tterrag|ZZZzzz> use ForgeRegistries
L2033[18:08:25] <ajb> all i need to do is say "does this blockState i have match this pattern"
L2034[18:08:37] <ajb> i think
L2035[18:08:43] <shartte> ajb: block states are singletons. if you can get the IBlockState object that matches they key in your config
L2036[18:08:44] <tterrag|ZZZzzz> waht kind of pattern?
L2037[18:08:46] *** tterrag|ZZZzzz is now known as tterrag
L2038[18:08:54] <shartte> oh you want *patterns* now :P
L2039[18:09:11] <ajb> tterrag: a pattern invented specifically for this purpose
L2040[18:09:20] <tterrag> that doesn't really answer the question
L2041[18:09:28] <ajb> on the contrary, it does
L2042[18:09:45] <howtonotwin> a function magic: IBlockstate => Boolean
L2043[18:09:51] <ajb> right
L2044[18:10:02] <ajb> IBlockState, Pattern => boolean
L2045[18:10:38] <ajb> where pattern can match against any property which is unique to a single block in the world, no matter how it is stored
L2046[18:11:00] <shartte> Depending on how you do this, this might super-duper chunk rebuild performance
L2047[18:11:08] <shartte> erm... forgot the verb. kill
L2048[18:11:22] <ajb> i'm sure it could
L2049[18:11:38] <ajb> but at this stage, getting it to work at all would be a breakthrough :)
L2050[18:12:02] <shartte> so here's the thing though... depending on when you load your config, all possible block states for all blocks are already known
L2051[18:12:21] <ajb> yes, but isn't there rather a lot of them?
L2052[18:12:24] <shartte> so you could just build a HashSet of the ones that you want
L2053[18:12:29] <shartte> based on your config
L2054[18:12:32] ⇦ Quits: Niles (~textual@ool-44c3ad70.dyn.optonline.net) (Quit: My Mac Mini has gone to sleep. ZZZzzz…)
L2055[18:12:41] <ajb> like just block id and meta is already 65536
L2056[18:13:05] <shartte> and if you only do that once during startup, your matching could be a bit slower without much impact
L2057[18:14:43] <ajb> shartte: this code already exists (called at startup, but the hash is never used afaik) http://paste.debian.net/817384/
L2058[18:15:18] <ajb> the format is eg "minecraft:stone=123"
L2059[18:16:02] <ajb> so i want to do something similar, but i want the left hand side of the spec to be able to differentiate between ic2 luminators that are lit and unlit. and any other possible thing a mod could store
L2060[18:16:29] <shartte> you have to write something that can match partial block states
L2061[18:16:34] <shartte> which is a pain, so good luck ;-)
L2062[18:16:54] <tterrag> not really
L2063[18:17:00] <tterrag> divide it into properties
L2064[18:17:04] <tterrag> I already have something for that actually
L2065[18:18:05] <ajb> i guess it would be like "ic2:te#type=luminator_flat_active=123"
L2066[18:18:14] <tterrag> https://github.com/tterrag1098/BlendedOres/blob/1.9/src/main/java/com/tterrag/blendedores/config/ConfigHandler.java#L138
L2067[18:18:21] <ajb> er... but without reusing =
L2068[18:18:25] <tterrag> the Map<String, String> can be created however you want
L2069[18:18:26] <tterrag> I used json
L2070[18:18:37] <tterrag> "properties": { "foo" : "bar" }
L2071[18:19:31] <ajb> also it will have to check every block against every pattern every time the chunk is rebuilt
L2072[18:20:12] <howtonotwin> keep a HashMap of IBlockState to Boolean or something then
L2073[18:20:13] <shartte> ajb: you should just build a Map<IBlockState, Integer> when you load your config
L2074[18:20:21] <tterrag> ajb, ?? what
L2075[18:20:28] <tterrag> shartte, why?
L2076[18:20:43] <shartte> tterrag: he wants to associate int's to certain visual states of a block
L2077[18:20:50] <shartte> tterrag: so he can distinguish between them in a shader
L2078[18:20:56] <ajb> precisely
L2079[18:21:04] <tterrag> erm...metadata ?
L2080[18:21:19] <tterrag> or do you mean actual state
L2081[18:21:23] <shartte> actual
L2082[18:21:29] <ajb> i mean everything that could be considered state
L2083[18:21:30] <shartte> since he has to base it on what's actually visible
L2084[18:21:39] <tterrag> any given blockstate can give you all its properties. it would be quite easy to get a 1-1 mapping to ints
L2085[18:21:47] <ajb> so metadata, blockstate, TE... everything
L2086[18:21:52] <tterrag> ajb, it's impossible for anything beyond actual state
L2087[18:21:57] <tterrag> TE/extended have infinite states
L2088[18:22:03] <ajb> right
L2089[18:22:19] <ajb> but in practice they don't actually have infinite states because computers don't have infinite storage
L2090[18:22:20] <shartte> tterrag: in his case, i think he's content with what you see in F3 (as in, actual state)
L2091[18:22:32] <ajb> no, F3 isn't enough
L2092[18:22:36] <shartte> ajb: so for the stuff I am building right now, you would for example not be able to distinguish certain visible states
L2093[18:22:54] <ajb> it also needs to include what you see with /blockdata and also the block id+meta
L2094[18:22:57] <shartte> since I am using extended state
L2095[18:22:58] <tterrag> chisel blocks have a different state for every position in the world
L2096[18:23:01] <tterrag> that's as infinite as you get :)
L2097[18:23:23] <ajb> tterrag: okay but there must be some part of the state that is constant
L2098[18:23:39] <tterrag> of course. the block and variant
L2099[18:23:41] <howtonotwin> If I had a TE that counted a BigInt every time you clicked on it, I think 2^(2^32 - 1) (or something) is infinite enough
L2100[18:23:42] <ajb> i only need to be able to match against an arbitrary subset of the actual state
L2101[18:23:55] <tterrag> <ajb> no, F3 isn't enough
L2102[18:24:00] <tterrag> you're contradicting yourself now
L2103[18:24:02] <ajb> it isn't
L2104[18:24:07] <tterrag> F3 displays actual state
L2105[18:24:16] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 202 seconds)
L2106[18:24:20] <ajb> F3 doesn't display the block id+meta
L2107[18:24:48] <shartte> that is super irrelevant for what you are trying to do, ajb
L2108[18:25:14] <shartte> since - as you already figured out - there's more to the player-visible state of a block than block id and metadata
L2109[18:25:23] <ajb> there's more, yes
L2110[18:25:27] <shartte> actual state is probably as far as you'll get, honestly
L2111[18:25:32] <ajb> but the block id + meta is still there
L2112[18:25:32] <shartte> the stuff you see in F3
L2113[18:25:32] ⇦ Quits: Hgrebnednav (~Hgrebnedn@d8d874662.access.telenet.be) (Ping timeout: 384 seconds)
L2114[18:25:49] <ajb> also the item id + meta
L2115[18:26:11] <tterrag> blockstates implicitly contain the block
L2116[18:26:14] <tterrag> meta is irrelevant
L2117[18:26:43] <tterrag> meta is a save-time concept, no longer runtime
L2118[18:26:47] <ajb> i'll take your word for it
L2119[18:26:54] <ajb> this is what i am trying to understand
L2120[18:27:07] <tterrag> erase the idea of metadata at runtime from your mind
L2121[18:27:14] <ajb> which data is important, which data is actually just a different representation of something else?
L2122[18:27:15] <tterrag> blockstates have replaced that
L2123[18:27:42] <tterrag> ok. when you call world.getBlockState() you get the SAVED state of the block. i.e. all data that could be stored in a nibble
L2124[18:27:54] <tterrag> if you then call getActualState, you let the block fill in more properties based on world context
L2125[18:28:02] <tterrag> these properties are still finite
L2126[18:28:14] <howtonotwin> e.g. fence connections, redstone linkage
L2127[18:28:14] <tterrag> getExtendedState is forge added, and is used for rendering context. its states are NOT finite
L2128[18:28:26] <tterrag> you will never be able to serialize an extended state
L2129[18:28:35] <tterrag> (an arbitrary one, anyways)
L2130[18:28:50] ⇦ Quits: MalkContent (~MalkConte@p5B02D325.dip0.t-ipconnect.de) (Quit: Leaving)
L2131[18:28:51] <ajb> this isn't serialization, this is hashing. but yes i agree
L2132[18:29:14] <howtonotwin> e.g. Botania's platforms can camo as any other block, and it uses an extended state to store ANOTHER blockstate, which it camos as
L2133[18:29:53] <ajb> tterrag: so here's the thing that confuses me. shaders use meta to draw stained glass the right colour
L2134[18:29:57] <ajb> so meta clearly still exists
L2135[18:30:03] <ajb> and contains useful information
L2136[18:30:12] <tterrag> no they don't. they serialize the blockstate TO meta
L2137[18:30:41] <tterrag> meta is just part of the world save
L2138[18:30:50] <tterrag> each block position gets 16 bits of information to use
L2139[18:30:56] <howtonotwin> meta exists, yes, but you SHOULDN'T use it, because it has been replaced
L2140[18:30:57] ⇦ Quits: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net) (Remote host closed the connection)
L2141[18:31:00] <tterrag> 12 bits is dedicated to ID, the other 4 are extended data, i.e. "metadata"
L2142[18:31:02] <ajb> hmm. yes, you are right: int meta = block.getMetaFromState(blockState);
L2143[18:31:10] ⇨ Joins: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net)
L2144[18:31:16] <ajb> okay that explains a lot
L2145[18:31:27] <tterrag> (saving to disk LITERALLY involves the line (id << 12) | block.getMetaFromState(..)
L2146[18:31:30] <tterrag> )
L2147[18:31:45] <tterrag> not 12, 4
L2148[18:31:47] <tterrag> same idea
L2149[18:31:59] <ajb> yes i get you
L2150[18:32:38] <howtonotwin> erase the idea of metadata being useful from your mind. It has been totally replaced, is only relevant inside a few pieces of code, and you should use blockstates instead.
L2151[18:33:05] <howtonotwin> period
L2152[18:33:19] <ajb> okay
L2153[18:33:57] <ajb> and block/item IDs are covered by the string IDs
L2154[18:34:38] <ajb> so "minecraft:stone#variant:granite" fully encodes the same data i could have got from the id/meta stuff
L2155[18:34:46] <tterrag> IDs work on a table of object->string->int
L2156[18:34:51] <tterrag> yes ajb
L2157[18:34:56] <ajb> got it
L2158[18:35:12] <tterrag> #variant=granite just says that the property "variant" equals the value "granite"
L2159[18:35:21] <tterrag> which the block can serialize however it wants
L2160[18:36:42] <ajb> and every property in a blockstate is effectively an enum?
L2161[18:37:46] <howtonotwin> http://i.imgur.com/y1G5HiG.png
L2162[18:38:23] ⇨ Joins: Poker1st (Poker1st@ipv6.5.epsilon.elitebnc.org)
L2163[18:38:32] <howtonotwin> since there's a getAllowedValues method, basically yes
L2164[18:38:59] <howtonotwin> but you can have properties for any type, not just enums
L2165[18:39:44] <ajb> well, can you have a property that stores an arbitrary string?
L2166[18:40:33] <shadowfacts> > effectively an enum
L2167[18:40:44] <shadowfacts> yes in that it's one of a set of allowed values
L2168[18:40:49] <ajb> what is the most number of allowed values a property can have?
L2169[18:40:54] <howtonotwin> if you write an IProperty<String>
L2170[18:40:56] <howtonotwin> infinity
L2171[18:41:09] <howtonotwin> effectively: Your RAM
L2172[18:41:19] <shadowfacts> you could have an IProperty<String>, you'd just have to have a predetermined set of allowed values
L2173[18:41:54] <shartte> howtonotwin: IProperty#getAllowedValues
L2174[18:42:22] <shartte> nvm. you said that yourself,h eh
L2175[18:42:28] ⇦ Quits: IceDragon (~ThatGuy@69.160.123.111) (Quit: Thou hast been banish)
L2176[18:42:36] <howtonotwin> rofl
L2177[18:42:49] * howtonotwin is Tazz
L2178[18:42:54] <ajb> so internally the property is stored by indexing into the set of allowed values?
L2179[18:43:03] <howtonotwin> wat
L2180[18:43:16] <howtonotwin> no it's a Map<IProperty<?>, Object> I think
L2181[18:43:22] <howtonotwin> with casts
L2182[18:43:51] <howtonotwin> how would you even index into a set in the first place?
L2183[18:44:00] <ajb> good point
L2184[18:44:09] <ajb> i'm too stuck in my C ways
L2185[18:44:44] * howtonotwin contemplates telling ajb to write a haskell program just to watch him squirm
L2186[18:48:17] ⇨ Joins: MrIbby (~MrIbby@173.85.197.145)
L2187[18:48:27] ⇨ Joins: IceDragon (~ThatGuy@69.160.123.111)
L2188[18:54:30] <ajb> okay i read the block states doc again and i understand it now i think
L2189[18:55:24] ⇦ Quits: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net) (Remote host closed the connection)
L2190[18:56:41] <ajb> getBlockState, getMetaFromState and getStateFromMeta are all just an abstraction of the meta you keep telling me to forget, so they can only store at most 4 bits of data and i can inject that directly into the shader
L2191[18:56:46] ⇦ Quits: Dark (~MrDark@cpe-76-181-157-113.columbus.res.rr.com) (Read error: Connection reset by peer)
L2192[18:56:51] ⇨ Joins: Everseeking (~Everseeki@pool-100-6-106-71.pitbpa.fios.verizon.net)
L2193[18:56:59] <ajb> then i need to pattern match against the actual state for everything else
L2194[18:57:04] <ajb> does that sound right?
L2195[18:57:06] <shartte> *sigh*... no
L2196[18:57:17] <howtonotwin> getBlockState is a Good Thing (tm)
L2197[18:57:31] <shartte> > so they can only store at most 4 bits of data
L2198[18:57:33] <howtonotwin> getMetaFromState and getStateFromMEta are Bad Things (tm)
L2199[18:57:38] ⇨ Joins: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net)
L2200[18:57:45] <howtonotwin> use blockstates
L2201[18:57:57] <howtonotwin> and forget that metadata ever existed
L2202[18:58:00] <shartte> ajb: most of my blocks use block states, but getMetaFromState will always return 0
L2203[18:58:54] ⇨ Joins: Dark (~MrDark@cpe-76-181-157-113.columbus.res.rr.com)
L2204[18:58:59] <howtonotwin> Blockstates are indisputably better than meta. Period.
L2205[18:59:25] <howtonotwin> Meta is indisputably not meant to be directly used. Period
L2206[18:59:42] <tterrag> he can't exactly pass along a blockstate object to a shader
L2207[18:59:47] <ajb> it seems pointless to convert the meta into a blockstate and then convert it back into a number
L2208[18:59:55] <howtonotwin> no it is not
L2209[19:00:07] <howtonotwin> a blockstate can hold more data than a meta
L2210[19:00:15] <ajb> yes, more
L2211[19:00:20] <ajb> it can also not
L2212[19:00:32] *** cpw is now known as cpw|out
L2213[19:01:26] <howtonotwin> so?
L2214[19:01:29] <shartte> >then i need to pattern match against the actual state for everything else
L2215[19:01:33] <shartte> What is everything else?
L2216[19:01:36] <shartte> Could you elaborate?
L2217[19:02:16] <ajb> yes, here is an example. for stained glass i can just getMetaFromState and pass the value into the shader. not pattern matching needed
L2218[19:02:26] <ajb> in order to work with your blocks i need to do pattern matching
L2219[19:02:40] ⇦ Quits: Cisien (~Cisien@u18549070.onlinehome-server.com) (Remote host closed the connection)
L2220[19:02:46] <ajb> because their meta is 0 but they still have blockstates not stored in the meta
L2221[19:03:02] *** cpw|out is now known as cpw
L2222[19:03:07] <howtonotwin> you can also do state.getValue(COLOR).ordinal()
L2223[19:03:32] <tterrag> that's not a generic solution
L2224[19:03:39] <ajb> yes but then i have to have a special case for stained glass
L2225[19:03:50] <shartte> ajb: that would indeed work, yes
L2226[19:03:59] <shartte> although you'd have to explain that to your users/developers somehow
L2227[19:04:10] <shartte> and it might be less future proof, who knows
L2228[19:04:18] <ajb> i can pass a fairly large amount of data into the shader
L2229[19:04:23] <ajb> 64 bits i think
L2230[19:04:45] <tterrag> you have no guarantee that a blockstate will fit into 64 bits
L2231[19:04:46] <ajb> using up 4 for the meta would cover a large number of vanilla blocks, and also it is what the shadermod already does anyway
L2232[19:04:47] ⇦ Parts: Poker1st (Poker1st@ipv6.5.epsilon.elitebnc.org) (Leaving))
L2233[19:05:12] <ajb> i know, which is why i have to do pattern matching for blocks that don't just use the meta, in order to squash the data down into something more useful
L2234[19:05:20] <ajb> but there is no sense in doing that for blocks that only use meta
L2235[19:05:26] <ajb> like stained glass
L2236[19:06:19] <ajb> basically it would be the default behaviour for blocks that don't match a pattern - just do what it does now
L2237[19:06:58] ⇨ Joins: Cisien (~Cisien@u18549070.onlinehome-server.com)
L2238[19:07:04] <ajb> state.getValue(COLOR).ordinal() would be more flexible though
L2239[19:07:17] <ajb> since presumably many blocks have a colour property
L2240[19:07:23] <howtonotwin> that would actually be specific to glass
L2241[19:07:28] <shartte> ajb: most dont use the vanilla color property
L2242[19:07:33] <ajb> oh :(
L2243[19:07:34] <howtonotwin> even panes and normal glass don't share it
L2244[19:08:21] <howtonotwin> So the gist of what you have to do is build a magical function IBlockState => Integer?
L2245[19:08:44] <ajb> no, it doesn't have to hash every possible block state
L2246[19:09:07] <shartte> this is not hashing btw...
L2247[19:09:19] <howtonotwin> No, your shader requires you to turn you blockstates into ints so you can deal with them right?
L2248[19:09:29] <ajb> by hashing i mean return a unique value for every possible input
L2249[19:09:50] <shartte> ajb: well yes, you can return the same number for different block states
L2250[19:09:51] <ajb> howtonotwin: in a round about way, yes, but the ints don't have to be unique for every possible block state
L2251[19:10:06] <ajb> shartte: yes, that is why it isnt hashing
L2252[19:10:12] <ajb> it is just a mapping
L2253[19:10:24] <shartte> actually that has nothing to do with the term hashing :P
L2254[19:10:42] <howtonotwin> This mod is running in a forge env, right?
L2255[19:11:16] <ajb> yes
L2256[19:11:31] <ajb> well, some versions of it are
L2257[19:11:54] <howtonotwin> so you have scala.PartialFunction next to you, and even if you don't you can just copy necessary portions of it over, right?
L2258[19:12:27] <ajb> probably
L2259[19:13:39] <howtonotwin> so you can have a list of PartialFunction[IBlockState, Integer], where isDefinedAt determines whether your pattern matches, and apply actually turns the IBlockState into an Integer
L2260[19:14:05] <howtonotwin> these are a combination of your patterns and blockstate => int functions
L2261[19:14:38] <howtonotwin> you can then compose all these pfs into one with orElse
L2262[19:15:03] <howtonotwin> so basically this means you have a list of functions from IBlockState => integer
L2263[19:15:20] <howtonotwin> and each function also contains data about which IBlockStates it actually works on
L2264[19:16:04] <howtonotwin> and using orElse allows you chain them, so you check if the first one matches, if no, the second, etc., and then execute the first match to get an int
L2265[19:16:58] <ajb> nice
L2266[19:17:13] <howtonotwin> and the default behavior of using meta can be placed at the end by executing applyOrElse
L2267[19:17:42] <howtonotwin> so you'll have List<PartialFunction<IBlockState, Integer>> = <code and code>
L2268[19:18:04] <ajb> can i declare anonymous functions and stick them in a list?
L2269[19:18:14] <ajb> cos the idea is to load the patterns at runtime
L2270[19:18:24] <howtonotwin> and then you can reduce the list (idk how you right fold in java): list.fold(l::orElse)
L2271[19:18:26] <howtonotwin> yes
L2272[19:18:54] <howtonotwin> and when you want an int, finalFun.applyOrElse(state, defaultFunc)
L2273[19:19:29] <howtonotwin> where defaultFunc is the function that defaults to meta
L2274[19:19:49] ⇦ Quits: primetoxinz (~primetoxi@ip68-107-226-229.hr.hr.cox.net) (Remote host closed the connection)
L2275[19:20:56] <howtonotwin> now the main issue is that PartialFunction is a trait, which won't bode well for Java classes extending it
L2276[19:22:07] <howtonotwin> the easiest fix is to compile this as scala and use the resulting class instead of PartialFunction: abstract class MyPartialFunc[-A, +B] extends PartialFunction[A, B]
L2277[19:22:27] <howtonotwin> which creates the abstract class MyPartialFunc which java can now properly use
L2278[19:26:51] <PitchBright> this might be a dumb newbie question but... is there any property or method in blocks, that say when a player or entity is standing on top of the block? I'd like to make a block change into another block, when a player walks over it.
L2279[19:27:11] ⇦ Quits: Techno (~quassel@cpe-72-230-173-5.rochester.res.rr.com) (Remote host closed the connection)
L2280[19:27:36] ⇨ Joins: Techno (~quassel@cpe-72-230-173-5.rochester.res.rr.com)
L2281[19:28:23] <howtonotwin> I think there might be a method for entity collision
L2282[19:28:57] ⇨ Joins: moxiegrrl__ (~MoxieGrrl@173-23-172-139.client.mchsi.com)
L2283[19:28:59] <PitchBright> i've been muckin' around with onEntityCollision... I was under the impression that's when a player walks through a block (ie TallGrass)
L2284[19:29:30] <PitchBright> I can try it and see if it also kicks in, when a player is standing on top of the block. I just assumed it didn't.
L2285[19:29:38] <PitchBright> thanks mang
L2286[19:30:32] <ajb> ic2 has a charge pad that does stuff when you stand on it, so it must be possible
L2287[19:31:00] <ajb> although actually it might work be being not quite full height
L2288[19:31:35] ⇦ Quits: MoxieGrrl_ (~MoxieGrrl@173-23-172-139.client.mchsi.com) (Ping timeout: 206 seconds)
L2289[19:32:33] ⇦ Quits: liach (~liach@2605:e000:309e:3200:78ad:e49:3de0:84b9) (Ping timeout: 206 seconds)
L2290[19:33:34] ⇦ Quits: Chaoschaot234 (~Chaoschao@83-221-68-174.dynamic.primacom.net) (Quit: Nettalk6 - www.ntalk.de)
L2291[19:33:55] ⇨ Joins: MoxieGrrl_ (~MoxieGrrl@173-23-172-139.client.mchsi.com)
L2292[19:34:10] <tterrag> PitchBright: there is a block method for walking
L2293[19:34:15] <tterrag> onEntityWalking I think it was?
L2294[19:34:29] <PitchBright> OH! Sweet. Imma look at that then.
L2295[19:35:06] <PitchBright> yep... looks like you nailed it tterrag ... I'll muck around with it and see if I can make it do what I want it to. Thanks!
L2296[19:36:25] ⇦ Quits: moxiegrrl__ (~MoxieGrrl@173-23-172-139.client.mchsi.com) (Ping timeout: 206 seconds)
L2297[19:39:45] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 186 seconds)
L2298[19:40:57] ⇨ Joins: Poker1st (Poker1st@ipv6.5.epsilon.elitebnc.org)
L2299[19:41:29] ⇦ Parts: Poker1st (Poker1st@ipv6.5.epsilon.elitebnc.org) (Leaving))
L2300[19:41:44] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Ping timeout: 202 seconds)
L2301[19:42:07] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L2302[19:43:43] ⇨ Joins: MaelstromPhx (~maelstrom@2601:19b:702:1d03:1125:10ba:8c77:aec5)
L2303[19:45:16] <MaelstromPhx> Anyone know if an unauthenticated player will have a valid session ID?
L2304[19:47:41] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Read error: Connection reset by peer)
L2305[19:47:54] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L2306[19:52:41] ⇨ Joins: alekso56 (~znc@ti0107a400-1168.bb.online.no)
L2307[19:58:21] ⇦ Quits: MrIbby (~MrIbby@173.85.197.145) ()
L2308[20:09:05] ⇦ Quits: IceDragon (~ThatGuy@69.160.123.111) (Ping timeout: 186 seconds)
L2309[20:13:30] ⇦ Quits: Snapples (uid167569@2604:8300:100:200b:6667:1:2:8e91) (Quit: Connection closed for inactivity)
L2310[20:18:49] ⇦ Quits: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net) (Remote host closed the connection)
L2311[20:19:52] ⇦ Quits: MaelstromPhx (~maelstrom@2601:19b:702:1d03:1125:10ba:8c77:aec5) ()
L2312[20:24:37] ⇨ Joins: IceDragon (~ThatGuy@184.170.21.190)
L2313[20:30:16] ⇨ Joins: Maelstro_ (~maelstrom@2601:19b:702:1d03:b4c9:a867:e058:59fa)
L2314[20:37:16] ⇦ Quits: RichardG (~richardg8@201.37.243.191) (Ping timeout: 202 seconds)
L2315[20:46:20] ⇨ Joins: Dimitriye98 (~Dimitriye@c-73-252-165-178.hsd1.ca.comcast.net)
L2316[20:56:34] ⇦ Quits: Maelstro_ (~maelstrom@2601:19b:702:1d03:b4c9:a867:e058:59fa) ()
L2317[20:59:16] ⇨ Joins: CoolerExtreme__ (~CoolerExt@59.96.10.252)
L2318[21:04:23] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L2319[21:05:47] ⇨ Joins: Kodos (~Kodos@2602:306:ce20:6c30:50b5:22f4:a91a:9165)
L2320[21:18:36] ⇨ Joins: RichardG (~richardg8@201.37.243.191)
L2321[21:18:36] MineBot sets mode: +v on RichardG
L2322[21:23:08] ⇦ Quits: Nentify (uid14943@id-14943.highgate.irccloud.com) (Quit: Connection closed for inactivity)
L2323[21:32:28] ⇦ Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) (Read error: Connection reset by peer)
L2324[21:47:17] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L2325[22:12:23] <McJty> How do you disable the feature where you can right click on a stack and get half the items out?
L2326[22:12:31] <McJty> For a specific slot that is. Not globally
L2327[22:14:34] <McJty> Hmm actually I need to solve this differently
L2328[22:33:12] *** Vigaro is now known as V
L2329[22:33:38] *** V is now known as Vigaro
L2330[22:34:21] ⇨ Joins: Naiten (Naiten@77.34.24.241)
L2331[22:35:23] ⇨ Joins: aidancbrady (~aidancbra@res400d-128-61-102-197.res.gatech.edu)
L2332[22:35:38] ⇨ Joins: Lathanael (~Lathanael@p549619B2.dip0.t-ipconnect.de)
L2333[22:37:08] ⇦ Quits: Lathanael|Away (~Lathanael@p54961F32.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L2334[22:38:25] ⇦ Quits: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net) (Ping timeout: 186 seconds)
L2335[22:40:34] ⇦ Quits: CoolerExtreme__ (~CoolerExt@59.96.10.252) (Ping timeout: 206 seconds)
L2336[22:45:24] *** Vigaro is now known as V
L2337[22:46:55] ⇨ Joins: CoolerExtreme__ (~CoolerExt@59.96.10.252)
L2338[22:47:29] ⇨ Joins: agowa339 (~Thunderbi@p54918495.dip0.t-ipconnect.de)
L2339[22:50:44] ⇦ Quits: agowa338 (~Thunderbi@p54918ACA.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L2340[22:50:44] *** agowa339 is now known as agowa338
L2341[22:52:10] ⇦ Quits: CoolerExtreme__ (~CoolerExt@59.96.10.252) (Ping timeout: 206 seconds)
L2342[22:52:10] ⇦ Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Read error: Connection reset by peer)
L2343[22:53:15] ⇨ Joins: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net)
L2344[22:55:26] ⇨ Joins: CoolerExtreme__ (~CoolerExt@59.96.10.252)
L2345[22:55:40] *** tterrag is now known as tterrag|ZZZzzz
L2346[22:56:29] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L2347[22:57:00] ⇦ Quits: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net) (Ping timeout: 206 seconds)
L2348[23:00:49] ⇦ Quits: howtonotwin (~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net) (Ping timeout: 186 seconds)
L2349[23:00:52] ⇦ Quits: CoolerExtreme__ (~CoolerExt@59.96.10.252) (Ping timeout: 206 seconds)
L2350[23:06:49] ⇦ Quits: illy (~LordIllyo@2602:304:cf32:f980:d7b4:c6fb:fb09:5c82) (Remote host closed the connection)
L2351[23:10:11] ⇨ Joins: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de)
L2352[23:11:26] ⇨ Joins: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net)
L2353[23:18:30] ⇦ Quits: Dark (~MrDark@cpe-76-181-157-113.columbus.res.rr.com) (Ping timeout: 384 seconds)
L2354[23:20:12] ⇦ Quits: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net) (Ping timeout: 206 seconds)
L2355[23:20:53] ⇨ Joins: CoolerExtreme__ (~CoolerExt@59.96.10.252)
L2356[23:23:45] ⇦ Quits: MikrySoft (~mikrysoft@89-76-18-43.dynamic.chello.pl) (Ping timeout: 186 seconds)
L2357[23:25:48] *** cpw is now known as cpw|out
L2358[23:26:29] ⇦ Quits: CoolerExtreme__ (~CoolerExt@59.96.10.252) (Ping timeout: 206 seconds)
L2359[23:28:53] ⇨ Joins: Vasher (~Vasher@c-67-182-50-119.hsd1.ca.comcast.net)
L2360[23:34:18] ⇨ Joins: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net)
L2361[23:36:29] ⇨ Joins: Dark (~MrDark@cpe-76-181-157-113.columbus.res.rr.com)
L2362[23:42:14] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L2363[23:52:31] ⇦ Quits: Brokkoli (~Brokkoli@p5B23C6CF.dip0.t-ipconnect.de) (Quit: Die Sprache der Politik ist daf�r gemacht, dass L�gen wahr klingen und das T�ten angemessen wirkt. (George Orwell))
L2364[23:53:28] *** Abrar|gone is now known as AbrarSyed
L2365[23:56:05] ⇦ Quits: Vasher (~Vasher@c-67-182-50-119.hsd1.ca.comcast.net) (Remote host closed the connection)
<<Prev Next>> Scroll to Top