<<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)
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
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)
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
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
L333[03:12:23] <LexLap2> Thought it was
C
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
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
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:
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
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
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
:/
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
L582[08:27:55] <Tazz> thanks sham1
L583[08:28:04] <Tazz> your really driving
me to get Eschelle to compile to bins
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
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> ^
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...
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?
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
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)
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
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
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.
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
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
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.
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
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.
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
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
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)
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
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)
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
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)
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
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
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
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
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
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)
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.
L1959[17:48:01] <howtonotwin> eeyeyeyyee
that's for 1.8
L1960[17:48:08] <howtonotwin> please use
his 1.10 series
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
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
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
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
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"
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?
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)