<<Prev
Next>>
Scroll to Bottom
Stuff goes here
L1[00:04:46] ⇦
Quits: cpup (~cpup@32.218.115.132) (Ping timeout: 204
seconds)
L2[00:06:43] ⇨
Joins: Mitchellbrine
(uid38456@id-38456.ealing.irccloud.com)
L3[00:11:55] ⇨
Joins: Hgrebnednav_
(~Hgrebnedn@d8D872A6E.access.telenet.be)
L4[00:12:00] ⇨
Joins: cpup (~cpup@32.218.115.132)
L5[00:17:30] ⇦
Quits: Hgreb (~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping
timeout: 383 seconds)
L6[00:21:51] ⇦
Quits: Cornelia (~Nel@c-75-71-231-133.hsd1.co.comcast.net) (Ping
timeout: 200 seconds)
L7[00:28:28] ⇨
Joins: Hunterz (~hunterz@62.182.234.189)
L8[00:36:58] ***
TTFTCUTS is now known as TTFT|Away
L9[00:37:49] ***
SatanicSanta is now known as Santa|afk
L10[00:49:19] ⇨
Joins: Doty1154
(~Doty1154@2601:648:8000:134f:9145:94b4:c65:d7fb)
L11[00:51:55] ⇦
Quits: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp) (Ping
timeout: 200 seconds)
L13[01:08:29] ⇨
Joins: Umbraco
(~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L14[01:13:55] <mezz> quadraxis, I'm looking
at it right now
L15[01:14:07] <mezz> honestly it's hard for
me to see what they even intended to do there...
L16[01:14:58] <mezz> are they trying to
show a different toast every 5 seconds?
L17[01:15:57] <quadraxis> the toast is
supposed to be up for 5 seconds
L18[01:16:10] <quadraxis> and it should
show the whole list of items in that time
L19[01:16:15] <mezz> so they want it to
cycle through all the values in 5 seconds, ok
L20[01:16:29] <mezz> that's really...
easy
L22[01:17:46] <mezz> there aren't enough
milliseconds in 5 seconds to display everything when we have more
than 5000 displaying
L23[01:18:07] <mezz> so I guess we can just
cap it... the whole idea is silly
L24[01:18:51] ⇦
Quits: Uristqwerty
(~chatzilla@modemcable128.165-177-173.mc.videotron.ca) (Ping
timeout: 201 seconds)
L25[01:18:55] <kashike> extending the time
not an option?
L26[01:19:19] <mezz> there's a bunch of
5000L hard-coded and I don't want to blow up the patch too
big
L27[01:19:23] <quadraxis> doing max(value,
1) is proabably the easiest fix
L28[01:20:03] <mezz> I'm thinking min(5000,
this.recipesOutputs.size()) for the denominator
L29[01:20:12] <mezz> so it'll show the
first 5000?
L30[01:20:12] <tterrag> mezz: I think just
using 5000D would fix it
L31[01:20:19] <tterrag> instead of
5000L
L32[01:20:24] <tterrag> it's already
downcasted to int
L33[01:20:32] <kashike> "a
bunch"
L34[01:20:34] <kashike> 2
L35[01:20:37] <kashike> :P
L36[01:20:39] <mezz> gross, but that might
work
L37[01:20:51] <quadraxis> how would the %
work in that case
L38[01:21:02] <tterrag> modulo works fine
with floating point
L39[01:23:00] ⇦
Quits: Doty1154 (~Doty1154@2601:648:8000:134f:9145:94b4:c65:d7fb)
(Read error: Connection reset by peer)
L40[01:23:56] ⇦
Quits: cpup (~cpup@32.218.115.132) (Ping timeout: 204
seconds)
L41[01:25:26] <mezz> a / (b / c) == a * c /
b
L42[01:25:57] <mezz> I think that would be
the right way to write it
L43[01:26:00] <quadraxis> yes the way it's
written is dumb
L44[01:26:20] ⇨
Joins: cpup (~cpup@32.218.115.132)
L45[01:26:39] <quadraxis> it's done
'backwards' due to the integer division
L46[01:30:57] <mezz> I think it should
still work fine if we reorder it
L47[01:31:02] <quadraxis> basically: (delta
/ 5000) * size
L48[01:31:12] <mezz> yeah
L49[01:31:37] <quadraxis> and then made to
be a valid index for get()
L50[01:31:39] <mezz> I think (delta * size)
/ 5000 is best for int division
L51[01:34:07] <mezz> maybe get overflow if
we have a billion recipes but I'm not sure we care as long as it's
not crashing
L52[01:34:43] <kashike> if there's a
billion recipes the sanity of mod developers/modpack developers
should be questioned
L54[01:35:54] <McJty> You can do that
calculation with long
L55[01:35:59] <McJty> And then convert the
end result to int
L56[01:36:01] ⇨
Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L57[01:36:05] <mezz> yeah
L58[01:37:46] <mezz> going to do a sanity
test and then push the fix
L59[01:38:34] <McJty> For some weird reason
my Lost City mod got several reports of people crashing in
RecipeToast
L60[01:38:42] <McJty> Claiming it to be
caused by the worldgen
L61[01:38:50] <McJty> As that mod doesn't
even have items or blocks. Let alone recipes :-)
L62[01:38:55] <mezz> that's extremely
weird
L63[01:40:48] <mezz> I got a bug report
today from someone with 100s of mods, saying JEI caused the server
to crash on a certain version of forge. dunno how they got to that
conclusion...
L64[01:41:40] <kashike> it's obviously
JEI's fault
L65[01:41:43] <kashike> who else could it
be?
L66[01:42:34] ⇨
Joins: iari (~iari___@evana.futhark24.org)
L67[01:43:34] ⇦
Quits: Hgrebnednav_ (~Hgrebnedn@d8D872A6E.access.telenet.be) (Ping
timeout: 204 seconds)
L68[01:46:37] ⇦
Quits: KnightMiner
(~KnightMin@adsl-75-5-73-47.dsl.emhril.sbcglobal.net) (Quit:
Leaving)
L69[01:51:54] ⇦
Quits: McJty (~jorrit@94-224-152-129.access.telenet.be) (Quit:
Leaving)
L70[02:00:03] <MCPBot_Reborn> [TEST CSV]
Pushing snapshot_20170708 mappings to Forge Maven.
L71[02:00:07] <MCPBot_Reborn> [TEST CSV]
Maven upload successful for mcp_snapshot-20170708-1.12.zip
(mappings = "snapshot_20170708" in build.gradle).
L72[02:00:17] <MCPBot_Reborn> Semi-live
(every 10 min), Snapshot (daily ~3:00 EST), and Stable (committed)
MCPBot mapping exports can be found here:
http://export.mcpbot.bspk.rs/
L73[02:01:03] ⇨
Joins: Unh0ly_Tigg
(~Robert@c-24-21-196-226.hsd1.or.comcast.net)
L74[02:03:44] <Unh0ly_Tigg> So, I tried to
launch a dev environment, with forge 2395, mcp snapshot 20170704,
and I got an error "java.lang.ClassNotFoundException:
net.minecraftforge.fml.common.Loader" I'm fairly certain that
I set up forge correctly...
L75[02:04:07] <Unh0ly_Tigg> Does anyone
know what might be going on?
L76[02:04:13] <TechnicianLP> mdk?
L77[02:04:29] <TechnicianLP> anyways: did
you try refreshing the gradle project?
L78[02:04:52] <Unh0ly_Tigg> manually
updated my build.gradle with the new versions of
forge/forgegradle/mcp, and everything compiles fine
L79[02:05:17] <Unh0ly_Tigg> I'm currently
re-running the eclipse gradle task, to make sure that's not
something I missed.
L80[02:05:34] <TechnicianLP> if you changed
versions, you have to rerun setupDecompWOrkspace
L81[02:05:42] <Unh0ly_Tigg> I had already
done that.
L82[02:06:12] <Unh0ly_Tigg> I must have
forgotten to run the eclipse task.
L83[02:06:37] <Unh0ly_Tigg> actually
L84[02:06:46] <Unh0ly_Tigg> it's erroring
out because of ASM...
L85[02:06:55] <Unh0ly_Tigg> "Caused
by: java.lang.NoSuchMethodError:
org.objectweb.asm.Handle.isInterface()Z"
L86[02:07:08] <Unh0ly_Tigg> in the
Remapper...
L87[02:07:42] <quadraxis> asm
version?
L88[02:07:50] <Unh0ly_Tigg> eclipse says
5.2
L89[02:08:30] <quadraxis> is there an asm
version given in the stacktrace
L90[02:08:44] <Unh0ly_Tigg> stacktrace says
5.2
L91[02:08:50] <quadraxis> hmm
L92[02:08:52] <TechnicianLP> can we have to
log is a better question ...
L94[02:12:34] <Unh0ly_Tigg> it's saying
that ASMs own code is referring to code that ASM doesn't
have...
L95[02:13:23] <kashike> at
org.objectweb.asm.ClassReader.a(Unknown Source)
~[asm-5.0.4.jar:5.0.4]
L96[02:13:28] <kashike> two asm jars on
classpath? :p
L97[02:13:34] <kashike>
s/jars/versions
L98[02:13:38] <Unh0ly_Tigg> -_-
L99[02:14:39] <Unh0ly_Tigg> I have a
library called rembulan referred to in my dependencies, it
implements Lua 5.3 by compiling lua code to java bytecode.
L100[02:14:41] <Unh0ly_Tigg> with
asm...
L101[02:15:00] <kashike> there you
go
L102[02:15:50] <Unh0ly_Tigg> and removing
the 5.0.4 asm from the classpath fixed it.
L103[02:15:53] <Unh0ly_Tigg> Thanks
guys
L104[02:18:24] <TechnicianLP> i hope you
know what youre doing ... (at least if the lua is untrusted
...)
L105[02:18:45]
⇨ Joins: Cornelia
(~Nel@c-75-71-231-133.hsd1.co.comcast.net)
L106[02:20:58] <Unh0ly_Tigg> it will be
sandboxed.
L107[02:21:43] <TechnicianLP2> by the
jvm?
L108[02:21:49] <Unh0ly_Tigg> by me.
L109[02:21:55] <kashike> have fun with
that
L110[02:22:22] <Unh0ly_Tigg> the way the
library works, I just have to remove certain tables, and poof lua
has no file access.
L111[02:23:03] <Unh0ly_Tigg> as it is, if
you want to refer to lua in other neighboring files, you have to
tell the library how to find those files.
L113[02:24:35] <TechnicianLP2> iirc
computercraft "chrooted" its computers (and had pretty
much changed al default libs)
L114[02:24:54] <Unh0ly_Tigg> yeah, that's
the sort of thing I plan to do.
L115[02:25:16] <Unh0ly_Tigg> at least to
the degree that I need to sandbox it.
L116[02:27:57]
⇨ Joins: Noppes
(~Noppes@ip56530f2e.direct-adsl.nl)
L117[02:33:40] ⇦
Quits: Mitchellbrine (uid38456@id-38456.ealing.irccloud.com) (Quit:
Connection closed for inactivity)
L118[02:38:11] <Unh0ly_Tigg> Alright,
while trying to load up a debug mode world, I get an error of
"java.lang.ClassCastException:
net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage$ServerHello
cannot be cast to
net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage$ModList"
I really don't like the look of that.
L119[02:40:11]
⇨ Joins: c64cosmin (kiwiirc@79.114.70.53)
L120[02:40:59] ⇦
Quits: Upthorn
(~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net) (Read
error: Connection reset by peer)
L121[02:41:13]
⇨ Joins: Upthorn
(~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net)
L122[02:43:10] ⇦
Quits: c64cosmin (kiwiirc@79.114.70.53) (Client Quit)
L123[02:57:08] <TechnicianLP> is there a
way to use a BitSet in conjunction with objects registered to a
registry? (i could upcast the IFOrgeRegistry i get from the Builder
to get access to the getID functions - but that seems off
....)
L124[02:58:02] <tterrag> do you mean
downcast?
L125[02:58:25] <tterrag> also, if you need
to access the IDs, you're probably doing it wrong
L126[03:08:22] ⇦
Quits: smbarbour (~smbarbour@c-73-211-171-154.hsd1.il.comcast.net)
(Read error: Connection reset by peer)
L127[03:08:42]
⇨ Joins: Hgrebnednav_
(~Hgrebnedn@ptr-908g3orwgp3d6kwd1cf.18120a2.ip6.access.telenet.be)
L128[03:08:48] ⇦
Quits: Upthorn
(~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net) (Read
error: Connection reset by peer)
L129[03:09:03]
⇨ Joins: Upthorn
(~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net)
L130[03:12:42] <TechnicianLP> TLDR: i want
to use a bitset as every player needs to have a boolean for each
object registered to the registry - therefore i need some way to
uniquely identify them (ids dont have to be consistent across
restarts though) - ForgeRegistry has unique ids, IForgeRegistry is
returned by the builder -> upcast (or is there a better way
...)
L131[03:14:02] <Ordinastie> registries are
not really for that
L132[03:14:10] <Ordinastie> why do you
want to use one ?
L133[03:16:12] <TechnicianLP> well i could
use a HashMap<ResourceLocation, <Type>> instead
...
L134[03:32:33] ⇦
Quits: Shawn|i7-Q720M
(~shawn156@c-71-205-36-210.hsd1.co.comcast.net) (Read error:
Connection reset by peer)
L135[03:48:58] ⇦
Quits: cpup (~cpup@32.218.115.132) (Ping timeout: 204
seconds)
L136[03:54:15] ⇦
Quits: iari (~iari___@evana.futhark24.org) (Ping timeout: 201
seconds)
L137[04:01:53]
⇨ Joins: Nedelosk
(~Nedelosk@ip-178-203-0-245.hsi10.unitymediagroup.de)
L138[04:04:43] ⇦
Quits: TechnicianLP2 (~AndChat59@p4FE1C061.dip0.t-ipconnect.de)
(Quit: Bye)
L139[04:28:27]
⇨ Joins: c64cosmin (kiwiirc@79.114.70.53)
L140[04:46:34] <ghz|afk> has anyone
encountered in 1.12 a situation where pistons (or some other block)
disappear and become "air", xcept you can't place
anything where that empty space is?
L141[04:50:19] <ghz|afk> ah wait
L142[04:50:25] <ghz|afk> there's a mod in
this pack that replaces pistons
L143[04:50:28] <ghz|afk> I'll get rid of
it
L144[04:57:17] <ghz|afk> didn't fix it, so
I went and /setblock'd them back into existance
L145[04:57:33] <ghz|afk> no idea what was
in those blocks, but it was invisible and had no collider and
wasn't replaceable
L146[04:57:52] <TechnicianLP> could it
have been dummyblocks?
L147[04:58:24] <ghz|afk> I suppose, but I
would expect a creative player to be able to interact with
them
L148[05:03:42] ⇦
Quits: Nedelosk
(~Nedelosk@ip-178-203-0-245.hsi10.unitymediagroup.de) (Ping
timeout: 204 seconds)
L149[05:20:02]
⇨ Joins: Nedelosk
(~Nedelosk@ip-178-203-0-245.hsi10.unitymediagroup.de)
L150[05:21:22] ***
PaleOff is now known as PaleoCrafter
L151[05:24:21] ⇦
Quits: afdw (~afdw@80.80.195.13) (Ping timeout: 200
seconds)
L152[05:25:27] <capitalthree> I just made
the best minecraft mod, I am happy with myself.
L153[05:25:41] <ghz|afk> what does it
do?
L154[05:25:45] <capitalthree> well second
best after flamingo I guess
L155[05:26:03] <capitalthree> ghz|afk:
it's what I've been working my ass off on for the last week...
makes it so that dropped items do various things when
despawning
L156[05:26:11] <ghz|afk> ah
L157[05:26:25] <ghz|afk> like those mods
with self-planting saplings?
L158[05:26:45]
⇨ Joins: KGS
(~KGS@h-158-174-9-249.NA.cust.bahnhof.se)
L159[05:27:03] <capitalthree> that does
happen, yeah
L160[05:27:10] <capitalthree> but if
anything it's a side-effect
L161[05:27:17] <capitalthree> it's more
for accidentally griefing yourself
L162[05:27:23] <capitalthree> if you dig a
tunnel with a full inventory, it fills itself back in
L163[05:28:16] <Unh0ly_Tigg> Well
L164[05:28:19] <capitalthree> it's largely
for amusement but I could see it being a fun challenge
L165[05:28:31] <capitalthree> an incentive
to make sure you are careful to pick stuff up
L166[05:28:48] <Unh0ly_Tigg> you just
convinced me to never install that mod, because I never want that
particular incident to happen...
L167[05:29:19] <capitalthree> haha
L168[05:29:24] <capitalthree> all that
silliness is turned off by default
L169[05:29:33] <capitalthree> normally
it's a mod for configuring dropped item despawn timers
L170[05:29:36] <capitalthree> so you
should still install it!
L172[05:30:14] <Unh0ly_Tigg> Why would I
need to configure despawn timers?
L173[05:30:47] <capitalthree> well the
default config, for example, makes blocks mined by a player or
dropped from a mob killed by a player, last longer than other
ones
L174[05:30:56] <capitalthree> and stuff
from player death lasts an hour before despawning
L175[05:31:17] <capitalthree> I find it a
good way to reduce the time pressure to get your stuff, without
lagging the server with too many dropped items
L176[05:32:22] <capitalthree> and the
various conditions are customizable, so eg you could make
everything use the vanilla default timer except on player death, or
whatnot
L177[05:32:25] <Unh0ly_Tigg> if I could
configure 1 thing in regards to dropped items, where those items
are there not due to players, I'd make it so that chickens never
lay eggs, and remove tallgrass and flowers from generating drops
when their supporting blocks have been removed due to terrain
gen.
L178[05:32:33] <Unh0ly_Tigg> 2
things*
L179[05:33:02] <capitalthree> well one
thing you can do is keep everything at the default 5 minute timer,
but put eggs and feathers on the crap tier and give it an even
lower timer
L180[05:33:05] <capitalthree> like 1
minute
L181[05:33:53] <Unh0ly_Tigg> I'd also make
it so the inventory system works like diablo 3 when it comes to
player death (you keep your items, but anything that can take
damage, takes 10% damage)
L182[05:33:59] <capitalthree> I dunno if
there would be a way to detect items dropped right at terrain gen
but that's an interesting idea
L183[05:34:20] <capitalthree> if I can
figure out how to distinguish those items, then I would be
interested in adding that as another configurable timer, and you
can set it to 0 if you want them to insta-despawn
L184[05:34:43] <capitalthree> lingering
loot isn't about player respawn behavior but I think there are mods
that do that
L185[05:35:05] <Unh0ly_Tigg> I'm just
tired of going around, and seeing seeds and whatnot sitting there
because "hey, this would be a good place to put a water
pool"
L186[05:35:25] <capitalthree> hehe... you
must be easily annoyed
L187[05:35:50] <capitalthree> oh and
lingering loot also gives items a visual indication when they are
about to despawn
L188[05:35:52] <Unh0ly_Tigg> I've been
seeing it because people don't order their terraingen handlers
right.
L189[05:36:07] <capitalthree> ahh so you
don't mean from vanilla?
L190[05:36:19] <Unh0ly_Tigg> no, vanilla
doesn't have that issue.
L191[05:36:33] <Unh0ly_Tigg> because in
that regard, vanilla does it better than mods do.
L192[05:36:38] <capitalthree> ok
L193[05:36:46] <capitalthree> but it does
still generate hovering sand no? xD
L194[05:37:04]
⇨ Joins: afdw (~afdw@80.80.200.219)
L195[05:37:04] <Unh0ly_Tigg> I want to be
able to restructure the terraingen system, so that folliage
*always* happens last.
L196[05:37:21] <capitalthree> anyways you
don't have to like my mod... hopefully somebody somewhere will
:P
L197[05:37:35] <capitalthree> I just feel
so free now that I put out a release. I've been coding too
obsessively
L198[05:37:41] <Unh0ly_Tigg> hovering sand
is fine, it's terrain being removed, causing folliage to drop
items, when it could have been prevented.
L199[05:37:43] <capitalthree> on the
hardcore mode features that most people won't even want to turn on
xD
L200[05:37:49] <capitalthree> because it's
funny to watch
L201[05:38:05] <capitalthree> why is
hovering sand fine?
L202[05:38:22] <Unh0ly_Tigg> because it
doesn't generate un-needed entities
L203[05:38:39] <Unh0ly_Tigg> all those
items that get dropped, use up tick time...
L204[05:39:20] <Unh0ly_Tigg> also, going
through the world with a magnet, and all of a sudden having my
inventory full of random seeds and flowers and whatnot.
L205[05:39:35]
⇨ Joins: MonkeyTyrant
(~MonkeyTyr@blk-212-75-47.eastlink.ca)
L206[05:39:37] <capitalthree> sounds nice
to me. free flowers and seeds...
L207[05:40:36] <Unh0ly_Tigg> I'm fine with
just going and breaking them manually to get seeds and flowers. I'm
not fine with just finding them laying on the ground, because of
miss-ordered terraingen events firing.
L208[05:41:42] ⇦
Quits: MonkeyTyrant (~MonkeyTyr@blk-212-75-47.eastlink.ca) (Client
Quit)
L209[05:48:17] ⇦
Quits: Unh0ly_Tigg (~Robert@c-24-21-196-226.hsd1.or.comcast.net)
(Read error: Connection reset by peer)
L210[05:51:33]
⇨ Joins: Unh0ly_Tigg
(~Robert@c-24-21-196-226.hsd1.or.comcast.net)
L211[05:51:55] <Unh0ly_Tigg> welp,
internet dropped for a minute there.. -_-
L212[05:52:15] <kashike> rip
L213[05:56:21] ⇦
Quits: Unh0ly_Tigg (~Robert@c-24-21-196-226.hsd1.or.comcast.net)
(Ping timeout: 201 seconds)
L214[06:03:32] ***
MrKick|Away is now known as MrKickkiller
L215[06:17:00] <capitalthree> well unh0ly
does have me curious now, is there a way to detect the age of a
chunk since generation?
L216[06:17:20] <capitalthree> if so I
could detect items that break from generation and remove them
L217[06:21:22]
⇨ Joins: Unh0ly_Tigg
(~Robert@c-24-21-196-226.hsd1.or.comcast.net)
L218[06:21:30] <Unh0ly_Tigg> ugh
L219[06:21:36] <Unh0ly_Tigg> my modem
sucks
L220[06:22:04] <capitalthree> oh hey
L221[06:31:33]
⇨ Joins: Cast0077
(~Cast0077@24-151-30-78.dhcp.nwtn.ct.charter.com)
L222[06:48:52]
⇨ Joins: Brokkoli
(~Brokkoli@p5B23C80C.dip0.t-ipconnect.de)
L223[07:01:04] ⇦
Quits: Backslash_
(~Backslash@ip-178-200-132-119.hsi07.unitymediagroup.de) (Quit:
Leaving)
L224[07:03:14]
⇨ Joins: Backslash
(~Backslash@ip-178-200-132-119.hsi07.unitymediagroup.de)
L225[07:07:14] ⇦
Quits: h5h77 (~h5h77@2a02:8108:4b40:907:922b:34ff:feae:b38b)
(Remote host closed the connection)
L226[07:07:47] ⇦
Quits: Meronat (uid190493@id-190493.highgate.irccloud.com) (Quit:
Connection closed for inactivity)
L227[07:11:21]
⇨ Joins: Hubry (~Hubry@pip9.t19.ds.pwr.wroc.pl)
L228[07:20:45] <ghz|afk> ah nice
L229[07:20:51] <ghz|afk> saw this article
linked from a tweet
L231[07:20:57] <ghz|afk> has a nice
"license compatibility diagram"
L232[07:30:06] ⇦
Quits: MCDis (~MCDis@68.ip-158-69-220.net) ()
L233[07:30:19]
⇨ Joins: MCDis (~MCDis@68.ip-158-69-220.net)
L234[07:30:33]
⇨ Joins: cpup (~cpup@32.218.118.13)
L235[07:35:53] ⇦
Quits: cpup- (~cpup@32.218.115.132) (Ping timeout: 383
seconds)
L236[07:35:57] <ghz|afk> hahahaha
oops.
L237[07:36:07] <ghz|afk> I
"deactivated" my villager breeder by mistake
L238[07:36:18] <ghz|afk> by removing all
the white-coats
L239[07:36:22] <ghz|afk> and killing all
the non-farmers
L240[07:36:25] <ghz|afk> problem is
L241[07:36:34] <ghz|afk> all the farmers
have full inventories -- they can't catch the food others
throw
L242[07:41:00] ⇦
Quits: Nedelosk
(~Nedelosk@ip-178-203-0-245.hsi10.unitymediagroup.de) (Read error:
Connection reset by peer)
L243[07:41:10] ⇦
Quits: KGS (~KGS@h-158-174-9-249.NA.cust.bahnhof.se) (Ping timeout:
186 seconds)
L244[07:43:51]
⇨ Joins: CoderPuppy (~cpup@32.218.118.29)
L245[07:44:01] <TechnicianLP> yay for the
unused "const" keyword ...
L246[07:47:31] <ghz|afk> hm?
L247[07:47:41] ⇦
Quits: Hunterz (~hunterz@62.182.234.189) (Remote host closed the
connection)
L248[07:47:43] <ghz|afk> ah, java has a
reserved "const" keyword they never used?
L249[07:47:58] ⇦
Quits: cpup (~cpup@32.218.118.13) (Ping timeout: 383
seconds)
L250[07:48:15] <PaleoCrafter> yep, similar
to goto
L251[07:48:21] <TechnicianLP> basically
yes ...
L252[07:48:29] <ghz|afk> that's
silly...
L253[07:48:33] <capitalthree> I wish we
had goto!
L254[07:48:45] <ghz|afk> they use
"final" to mean both "can't inherit" and
"can't write"
L255[07:48:51] <ghz|afk> while they have
const already as a reserved keyword?
L256[07:49:03] <TechnicianLP> label32:
capitalthree we have gotot!; break label32;
L257[07:49:30] <capitalthree> I thought
break only breaks to the *end* of a named block
L258[07:49:51] <ghz|afk> well
L259[07:49:54] <ghz|afk> there's two uses
of goto:
L260[07:49:58] <ghz|afk> 1. ensuring
cleanup on exist
L261[07:50:00] <ghz|afk> exit*
L262[07:50:12] <ghz|afk> 2.
breaking/continuing outer loops in a nested loop
L263[07:50:20] <ghz|afk> #1 is solved by
finally
L264[07:50:29] <ghz|afk> #2 by labeled
breaks/continues
L265[07:52:57] <capitalthree> 1 is handled
by finally blocks
L266[07:53:03] <capitalthree> wait
L267[07:53:07] <capitalthree> I should
read all the stuff before opening my mouth
L268[07:53:08] <capitalthree> xD
L269[07:53:34] <ghz|afk> XD
L270[07:54:33] <capitalthree> anyways
yeah... basically my ideal goto, would only go forwards, and
wouldn't let you skip over a variable declaration or initial
assignment
L271[07:54:57] <capitalthree> you're right
that it's not necessary
L272[07:55:04] <capitalthree> but if those
rules are imposed I don't think it would get out of hand
L273[07:55:15] <capitalthree> and makes
some things slightly shorter :P
L274[07:55:20] <ghz|afk> well C# has
proper fully-fledged goto
L275[07:55:22] <ghz|afk> and it works just
fine
L276[07:55:30] <ghz|afk> I haven't seen
much code abusing it
L277[07:55:45] <PaleoCrafter> have you
seen much code *using* it? :P
L278[07:55:50] <capitalthree> I should
learn the C#
L279[07:55:57] <ghz|afk> not much no
;P
L280[07:56:19] <ghz|afk> capitalthree:
yup
L281[07:56:23] <ghz|afk> best language
ever, IMO
L282[07:56:26] <ghz|afk> or rather
L283[07:56:29] <capitalthree> it seems
pretty good
L284[07:56:41] <ghz|afk> best
imperative-objectoriented high-level language
L285[07:56:46] <capitalthree> hehe
L286[07:56:59] <capitalthree> so what is
your favorite jvm language?
L287[07:57:07] <TechnicianLP> java!
L288[07:57:12] <ghz|afk> haven't looked at
alternatives
L289[07:57:20] <ghz|afk> I just write
java
L290[07:57:25] <capitalthree> fair
enough
L291[07:57:29] <capitalthree> java
works
L292[07:57:35] <ghz|afk> but like
L293[07:57:40] <capitalthree> kotlin is
sexy :P
L294[07:57:43] <ghz|afk> the two most
people talk about...
L295[07:57:46] <ghz|afk> kotlin has
"fun" as a keyword
L296[07:57:49] <ghz|afk> so it's off the
list
L297[07:57:51] <capitalthree> XD
L298[07:58:01] <capitalthree> fun
hater
L299[07:58:03] <ghz|afk> and the other
one... I can't even remember the name right now
L300[07:58:06] <capitalthree> scala
L301[07:58:10] <ghz|afk> that
L302[07:58:12] <ghz|afk> it's too
functional
L303[07:58:14] <capitalthree> I also want
to try a mod in ceylon
L304[07:58:30] <TechnicianLP> what do you
guys think of go? (on of my friends keeps recommending it to me
....)
L305[07:58:31] <capitalthree> scala is
*idiomatically* functional but you can write java in scala
basically
L306[07:58:41] <capitalthree>
TechnicianLP: it's a toy. it does not support generics
L307[07:58:59] <ghz|afk> TechnicianLP:
well it uses "func", so that's ok
L308[07:59:16] <capitalthree> ok I can't
handle this nonsense this late at night xD
L309[07:59:18] <capitalthree>
goodnght
L310[07:59:30] <ghz|afk> that's all I know
about it
L311[07:59:38] <capitalthree> that's all
you seem to concern yourself with
L312[07:59:38] <ghz|afk> so i can't give a
proper opinion about the language itself
L313[08:00:58] <PaleoCrafter> judging the
language simply based on that keyword is really just weird xD
L314[08:01:23] <PaleoCrafter> like... you
don't even notice the "fun" anymore when you get used to
it
L315[08:01:26] <ghz|afk> it's really just
a joke
L316[08:01:39] <ghz|afk> there are other
things that keep me away from it
L317[08:01:48] <ghz|afk> #1 is simply
Ican't be bothered to learn a new langauge right now
L318[08:01:58] <ghz|afk> so I make
excuses
L319[08:02:09] <TechnicianLP> ^ same for
me
L320[08:02:34] <ghz|afk> the truth is, I'd
just want java to adopt more C# or C++ concepts into it
L321[08:02:47] <PaleoCrafter> it's slowly
getting there :P
L322[08:02:56] <ghz|afk> starting with
variable inference, valuetypes, and tuple (de)construction
L323[08:02:57] <capitalthree> is that not
what kotlin is o_o ffs
L324[08:03:12] <capitalthree> oh well for
the latter two you'd want scala I guess
L325[08:03:50] <PaleoCrafter> Kotlin does
have destructuring
L326[08:03:56] <capitalthree> oh
cool
L327[08:04:01] *
TechnicianLP mixes names and spits out
"scatlin"
L328[08:04:03] <capitalthree> with
when?
L330[08:04:26] <Unh0ly_Tigg> I want pseudo
operator overload so that things like "list += element"
does the same thing as "list.add(element)"
L331[08:04:31] <Unh0ly_Tigg> in java
L332[08:04:33] <PaleoCrafter> not sure if
it's name-based or only for data classes
L333[08:04:36] <capitalthree> Unh0ly_Tigg:
kotlin does that
L334[08:04:46] <capitalthree> anyways it's
understandable to not want to learn a new language, but keep your
mind open, because you might be surprised how easy it is to learn
kotlin from knowing java.
L335[08:04:52] <Unh0ly_Tigg> capitalthree,
"in java"
L336[08:05:07] <capitalthree> Unh0ly_Tigg:
kotlin is a drop-in replacement for java
L337[08:05:14] <ghz|afk> one funny thing
is
L338[08:05:24] <ghz|afk> I don't like when
languages use "name: type" ordering
L339[08:05:27] <capitalthree> Unh0ly_Tigg:
I want a pony but I want it to be my cat. don't just give me a
pony, that's cheating
L340[08:05:34] <ghz|afk> but I'm the first
one to use that when typing a formal description
L341[08:05:35] <Unh0ly_Tigg> I know that,
but I want all jvm based languages to be able to support it
natively.
L342[08:05:51] <ghz|afk> I think the
reason is, when I write a formal description, I want
readability
L343[08:05:54] <ghz|afk> but when I code,
I want to be done quick
L344[08:06:09] <capitalthree> Unh0ly_Tigg:
well I don't know what's stopping oracle but I'm not waiting
around, the better java exists today
L345[08:06:25] <capitalthree> ghz|afk:
what's quicker than omitting most of your ascriptions?
L346[08:06:51] <capitalthree> did you just
admit that you find kotlin and scala more readable but you don't
care?
L347[08:07:11] <ghz|afk> I guess
L348[08:07:38] <Unh0ly_Tigg> the main
reason operator overloading doesn't exist in java (javac compiles
string addition to use StringBuilder) is because the original
language designers didn't want it.
L349[08:08:29]
⇨ Joins: Raycoms
(~Raycoms@2804:d57:1b08:b00:d2fa:5cd2:eba4:9a53)
L350[08:08:46] <Raycoms> Is there a way to
obtain information about all players which were on the server until
now?
L351[08:09:17] <capitalthree> Unh0ly_Tigg:
the thing is, having a predefined set of operators that proxy to a
predefined set of methods, isn't operator overloading
L352[08:09:48] <capitalthree> well hmm
kotlin's page calls it operator overloading I guess
L353[08:09:56] <capitalthree> but it's
nothing like scala where any symbol can be turned into
anything
L354[08:09:57] <Unh0ly_Tigg> Raycoms,
there *is* a folder somewhere on the server that contains all the
player inventory data files, you might be able to scape the file
names for uuids.
L355[08:10:16] <ghz|afk> let's say there's
3 levels of operator overloading
L356[08:10:19] <Unh0ly_Tigg> Raycoms, it
might be somewhere in the world savedata.
L357[08:10:29] <ghz|afk> the basic level,
is just syntax sugar for "add" etc methods using standard
names
L358[08:10:37] <capitalthree> the
operators in kotlin have fixed semantics and you just get to define
them. which is quite nice because it keeps things simple and
consistent but still gives a lot of flexibility to make prettier
code
L359[08:10:37] <Raycoms> But isn't there
any method, I mean minecraft reads it somehow as well. So a file
reader shouldn't be necessary?
L360[08:10:45] <ghz|afk> the intermediate
level, uses symbols like "operator +"
L361[08:11:07] <ghz|afk> and the advanced
level, allows arbitrary symbols as names for methods
L362[08:11:17] <ghz|afk> and allows
calling those symbols with infix/prefix notation
L363[08:11:17] <capitalthree> so level 1
is kotlin, level 3 is scala
L364[08:11:26] <ghz|afk> and level 2 is
C++ and C#
L365[08:12:05] <ghz|afk> it's
understandable for any compiler programmer to never want to ever
touch any level 3 syntax
L366[08:12:23] <ghz|afk> (it's a mess when
there's arbitrary precedence ordering)
L367[08:12:25] <capitalthree> Raycoms: if
I knew details I'd help, but if nobody knows offhand, just try to
examine how minecraft interacts with those files
L368[08:12:27] <Unh0ly_Tigg> I want level
1, but with the operator keyword from level 2, so you can control
when a method is an operator overload.
L369[08:12:39] <capitalthree> and then
find the best place to hook into the code to get the info you want
without doing file i/o yourself
L370[08:13:00] <immibis> though then you
have to remember if the * operator is called mul or mult or
multiply
L371[08:13:03] ⇦
Quits: immibis (~chatzilla@122-59-207-252.jetstream.xtra.co.nz)
(Quit: ChatZilla 0.9.92-rdmsoft [XULRunner
35.0.1/20150122214805])
L372[08:13:07] <ghz|afk> Unh0ly_Tigg: java
would use annotations then?
L373[08:13:17] <ghz|afk> @Operator public
int add(A, B)
L374[08:13:37] <Unh0ly_Tigg> I would want
this to be a modifier on the method.
L375[08:13:41] <Unh0ly_Tigg> not an
annotation
L376[08:13:46] <ghz|afk> this in turn
would allow IDEs to use external annotations
L377[08:13:53] <capitalthree> I disagree,
there should be no special declaration that it's an operator
L378[08:13:54] <ghz|afk> to add that
feature to 3rdparty / old classes
L379[08:14:02] <capitalthree> a + b should
be straight-up syntactic sugar for a.add(b), end of
L380[08:14:33] <capitalthree> a's type
either has a .add accepting b's type, or not
L381[08:14:36] <ghz|afk> that's my feeling
too, capitalthree
L382[08:14:39] <capitalthree> if so, it's
used, if not, compile error
L383[08:14:43] <PaleoCrafter> list + item
feels weird though
L384[08:14:53] <Unh0ly_Tigg> list +=
item
L385[08:15:02] <capitalthree> list ::
item
L386[08:15:13] <PaleoCrafter> item :: list
if anything :P
L387[08:15:23] <capitalthree> isn't it
item : list?
L388[08:15:30] <PaleoCrafter> it is
L389[08:15:36] <Unh0ly_Tigg> vertex *=
matrix
L390[08:15:41] <ghz|afk> result = [
list... , item ] / [ item, list... ]
L391[08:15:50] <Unh0ly_Tigg> or matrix *=
vertex, to be more accurate
L392[08:15:58]
⇨ Joins: MWisBest
(~MWisBest@140.74-213-213.cellcom.com)
L393[08:16:02] <ghz|afk> that's how
coffeescript does splicing
L394[08:16:32] <capitalthree>
PaleoCrafter: anyways sometimes prepend isn't what you want but
yeah
L395[08:17:09] <capitalthree> point is,
there are a lot of very easy solutions so these problems that get a
lot of mileage
L396[08:17:17] <PaleoCrafter> of course,
but : is cons is prepend :P
L397[08:17:22] <capitalthree> oracle has
been very slow to bother with making improvements to the
language
L398[08:17:32] <capitalthree> so that's
why I'm happier on other jvm langs
L399[08:17:42] <capitalthree> but you guys
*are* getting improvements on java, and you have the other langs to
thank for that too
L400[08:17:56] <capitalthree> so even if
you stay on java, you should be happy scala exists, because that
pressure is probably why you have lambdas :P
L401[08:18:09] ⇦
Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Ping timeout:
200 seconds)
L402[08:18:31]
⇨ Joins: Unnoen
(~Unnoen@60-242-93-115.static.tpgi.com.au)
L403[08:20:40] <Unnoen> I don't suppose
this would be a place to ask for some help with modding?
L404[08:20:49] <TechnicianLP> ASK!
L405[08:20:51] <PaleoCrafter> it is
exactly the place to ask for help :P
L406[08:20:55] <TechnicianLP> -caps
L407[08:21:28] <Unnoen> New to Java, not
to programming. To get into it I thought I'd make a simple mod that
would take an item and spit out all the raw materials needed.
L408[08:21:32] <Raycoms> I want to get all
gameProfiles of all players which have been online since the server
wa created
L409[08:21:44] <Unh0ly_Tigg> was there
something changed in 1.12, where if a block only has 1 property, it
automatically uses registry_name#variant=value instead of
registry_name#property_name=value ?
L410[08:21:59] <Unnoen> Trying to find out
how to get the ingredients of an item, can't seem to find much
help
L411[08:21:59] <PaleoCrafter> not that I
know of
L412[08:22:12] <Unh0ly_Tigg>
CraftingManager
L413[08:22:25] <Unh0ly_Tigg> search list
of IRecipe instances
L414[08:23:01] <Raycoms>
FMLCommonHandler.instance().getMinecraftServerInstance().getPlayerList().getAllProfiles()
works for offline players?
L415[08:23:12] <Unh0ly_Tigg> downcast to
recipe types, that should allow you to find inputs to recipes
L416[08:23:24] <capitalthree> Unnoen:
that's not as easy as you think
L417[08:23:35] <Unnoen> Alright, I'll have
a look into that then, thanks a tonne
L418[08:23:49] <capitalthree> basically
the recipes are just a non-organized pile of rules for taking
ingredients, matching, and creating an output
L419[08:23:52] <Unnoen> Yeah I know it
might not be so easy with recursion and fun stuff
L420[08:24:03] <capitalthree> you're going
to have to analyze the recipes in order to build a dependency
graph
L421[08:24:10] <Unnoen> Ahh. I see.
L422[08:24:19] <capitalthree> not saying
you can't do it, but it's not straightforward and there will be
weird edge cases
L423[08:24:34] <capitalthree> a lot of
attempts have been made to do autocrafting mods that figure out
what recipes to do to get a result
L424[08:24:40] <capitalthree> and i've
seen some cool attempts but nothing perfect
L425[08:24:51] <capitalthree> so if you do
a good job on this kind of analysis it could be *very* useful for
cool mods
L426[08:24:55] <Unnoen> I'm fine with a
few edge cases, It's really just something to do to get my head
around MC modding and Java
L427[08:25:06] <capitalthree> it will be a
fun project if it doesn't overwhelm you
L428[08:25:13] <capitalthree> also have
you heard of kotlin?
L429[08:25:25] <Unnoen> Can't say I
have
L430[08:25:33] <capitalthree> it's a jvm
language that is basically like better java with less
boilerplate
L431[08:25:36] <Unh0ly_Tigg> Raycoms, what
version of minecraft are you on? because in 1.12, PlayerList
doesn't have a getAllProfiles method
L432[08:25:37] <capitalthree> and more
nice features that other languages have
L433[08:25:57] <capitalthree> with perfect
compatibility with java, so minecraft modding in it is
painless
L434[08:26:01] <Unnoen> Ooooh, might have
a look into it
L435[08:26:09] <capitalthree> it has type
inferrence if you're used to that
L436[08:26:10] <TechnicianLP> capital: i
think he should get to know java before he tries alternative
jvmlanguages ...
L437[08:26:12] <capitalthree> what
languages do you come from?
L438[08:26:19] <capitalthree>
TechnicianLP: he's not new to programming :P
L439[08:26:43] <Unh0ly_Tigg> "New to
Java, not to programming." to be correct.
L440[08:26:44] <capitalthree> ultimately
you'll be learning java at the same time
L441[08:26:53] <capitalthree> you can't do
much minecraft modding without reading through the minecraft source
code
L442[08:27:02] <Unnoen> I come from mostly
scripting/high-level but have dabbled in many
L443[08:27:02] <capitalthree> but writing
kotlin is much more pleasant :D
L444[08:27:23] <Raycoms> 1.10 atm
L445[08:28:00] <ghz|afk> auto-crafting on
1.12 is probably a lot easier than any older version
L446[08:28:00] <Unnoen> I think I might
stick to Java for now
L447[08:28:08] <ghz|afk> exclusing custom
recipes with dynamic outputs, of course
L448[08:28:11] <ghz|afk> escluding*
L449[08:28:20] <capitalthree> ahh did the
recipe system improve?
L450[08:28:28] <ghz|afk> IRecipe now has
getIngredients()
L451[08:28:34] <capitalthree> oh
nice.
L452[08:28:36] <PaleoCrafter> I don't see
anything wrong with only learning to *write* a different JVM
language and only learning to understand Java
L453[08:28:37] <ghz|afk> so *any* recipe
can provide its inputs
L454[08:28:38] <Unnoen> Yeah I heard that
the recipe system for 1.12 was a lot better
L455[08:28:53] <Unnoen> Oh, it just has a
straight method to get ingredients?
L456[08:28:58] <ghz|afk> yup
L457[08:29:00] <capitalthree>
PaleoCrafter: people also have an irrational fear of polyglot
situations
L458[08:29:03] <Unh0ly_Tigg> I recently
saw something about how to add new recipe types and reference them
in json, something about a factories.json file, does anyone know
where I might re-find this information?
L459[08:29:15] <ghz|afk> returns a list of
Ingredient object
L460[08:29:21] <ghz|afk> where each
ingredient has getMatchingStacks
L461[08:29:23] <Raycoms> Unh0ly_Tigg only
seems to list online players
L463[08:29:28] <ghz|afk> to get the list
of ItemStacks it can accept
L464[08:29:28] <Unnoen> I was going to
develop for 1.10 as my server runs that but maybe I should just go
to 1.12 then
L465[08:29:32] <ghz|afk> XD
L466[08:29:35] <ghz|afk> try 1.12
first
L467[08:29:45] <PaleoCrafter>
capitalthree, well, it *is* a lot nicer to have everything nice and
tidy in one language :P
L468[08:29:45] <ghz|afk> it's going to be
a much more pleasant experience
L469[08:29:51] <Unnoen> Yeah, should
always dev for the latest version
L470[08:30:02] <ghz|afk> I have a WIP
magic mod
L471[08:30:04] <ghz|afk> Elements of
Power
L472[08:30:06] <capitalthree>
PaleoCrafter: yeah but it should be kotlin and not java
L473[08:30:15] <ghz|afk> which allows
deconstructing items into the basic magical essences
L474[08:30:19] <ghz|afk> (one-way
operation)
L475[08:30:20] *
TechnicianLP thinks th opposite
L476[08:30:25] <Raycoms> We dev for 1.10 -
1.12, so we dev in 1.10 and then port forward
L477[08:30:28] <Unh0ly_Tigg> PaleoCrafter,
that's close, but what I saw didn't mention having multiple recipes
in the same json file.
L478[08:30:30] <ghz|afk> and up to
1.11
L479[08:30:35] <ghz|afk> I had a big pile
of mess
L480[08:30:51] <ghz|afk> for handling
ShapedRecipes, ShapelessRecipes, ShapedOreRecipe,
ShapelessOreRecipe
L481[08:30:52] <ghz|afk> separately
L482[08:30:56] <ghz|afk> with reflection
involved
L483[08:30:58] <PaleoCrafter>
capitalthree, it should really be Scala, but can't have everything
I guess :P
L484[08:31:00] <ghz|afk> and manually
handling oreDictionary
L485[08:31:07] <ghz|afk> I deleted
everything
L486[08:31:09] <PaleoCrafter> Unh0ly_Tigg,
multiple recipes in the same JSON aren't a thing
L487[08:31:13] <Unnoen> Reflection and ASM
still elude me
L488[08:31:15] <ghz|afk> and replaced it
with one single method to get all the inputs
L489[08:31:15] <capitalthree>
PaleoCrafter: yeah good point :P
L490[08:31:29] <ghz|afk> like 2000 lines
of code turned into 100ish
L491[08:31:31] <Unnoen> I don't want to
even touch those until I have a better understanding
L492[08:31:39] <ghz|afk> yeps then 1.12 is
your better choice
L493[08:31:43] <Unh0ly_Tigg> PaleoCrafter,
oh, thought the _constants.json was something else...
L494[08:31:45] <capitalthree>
PaleoCrafter: I'm not that demanding... at the end of the day, once
java gets proper type inferrence, I'll stop grumbling when I work
in java code
L495[08:31:45] <ghz|afk> because before
1.12, you'd have had to use reflection.
L496[08:31:54] <PaleoCrafter> ah, no, the
constants are just for defining reusable ingredients
L497[08:32:11] <ghz|afk> hey btw
people
L498[08:32:14] <ghz|afk> is there some
parachute mod?
L499[08:32:20] <ghz|afk> I mean, a good
one
L500[08:32:26] <capitalthree> we have
elytra now :o
L501[08:32:27] <ghz|afk> that lets you
control falling speed and direction
L502[08:32:37] <ghz|afk> not just some
random slowfall-as-an-item
L503[08:32:50] <ghz|afk> I have
OpenGliders installed
L504[08:32:57] <ghz|afk> but you can't
"dive"
L505[08:33:04] <ghz|afk> there's no way to
choose to fall faster
L506[08:33:17] <capitalthree> Unnoen:
don't touch asm if you can possibly help it
L507[08:33:21] <Unh0ly_Tigg> will I still
have to manually sync custom recipe types S->C?
L509[08:33:39] <ghz|afk> Unh0ly_Tigg:
forge WANTS to do s->c sync
L510[08:33:42] <ghz|afk> but not yet
L511[08:33:44] <Unnoen> Yeah I know, ASM
is evil, etc etc :P
L512[08:34:03] <Unh0ly_Tigg> ok, I'd love
for that to be implemented while we're still in 1.12.
L513[08:34:10] <capitalthree> Unnoen: can
I plug my mods? :P I have a server backup mod and a mod for
controlling dropped item despawn timers, that you might like if you
are a server admin
L514[08:34:17] <Unh0ly_Tigg> instead of
waiting for 1.13
L515[08:34:29] <ghz|afk> PaleoCrafter: I
suspect this is going to be inthe "slowfall as an item"
category
L516[08:34:34] <ghz|afk> but I'm going to
check
L517[08:34:48] <PaleoCrafter> ghz|afk,
there also is my WIP magic mod which allows you to slow your fall
given there's metal under you xD
L518[08:34:54]
⇨ Joins: armctec (~Thunderbi@177.140.144.214)
L519[08:35:03] <Unnoen> Sure, at the
moment I'm content with the config of the server but you never know
when something breaks and you need a backup
L520[08:35:24] <ghz|afk> PaleoCrafter:
well my wip magic mod has a "cushion" spell which you can
throw downward to create a cloud of soft material that slows you
down progressively
L521[08:35:28] <Unnoen> (as in mod backup
- I do have backups on the server. That would be silly)
L522[08:35:40] <PaleoCrafter> heh
L523[08:35:48] <ghz|afk> but this is a
rustic experience
L524[08:35:53] <ghz|afk> I don't want
magic in it just yet
L526[08:36:07] <capitalthree> ahh well
this backs up the entire server... mods, configs, world
L528[08:36:27] <capitalthree> (also both
are open source, one in scala, one in kotlin, if you are curious
:P)
L529[08:36:34] <Unnoen> I have a cronjob
that does a full backup every day and an incremental every 2
hours
L530[08:36:49] <capitalthree> BTFU takes
incremental backups very 5 minutes and prunes them
logarithmically
L531[08:36:57] <capitalthree> *every
L532[08:37:10] <capitalthree> and they're
hardlinked snapshot-style backups
L533[08:37:12] <Unnoen> Might have a looky
at it, thanks
L534[08:37:16] <capitalthree>
welcome!
L535[08:37:29] <ghz|afk> PaleoCrafter:
reading more into it, seems the parachute has steering, maybe
that's a decent mod after all... installing it
L536[08:37:49] <capitalthree> I'm still
confused how what ghz|afk described is different from elytra
L537[08:37:55] <PaleoCrafter> yep, just
looking at the images suggests that at least a little effort has
gone into it
L538[08:38:06] <Unh0ly_Tigg> I need to
figure out a mod to allow me to locally save basic chunk data from
multiplayer servers, so that I can personally save maps.
L539[08:38:36] <ghz|afk> [15:32]
(capitalthree): we have elytra now :o
L540[08:38:41] <capitalthree> oooh I saw
one once Unh0ly_Tigg
L541[08:38:42] <ghz|afk> elytra will be
mine one day
L542[08:38:46] <ghz|afk> but this is a
rustic playthrough
L543[08:38:51] <ghz|afk> I haven't killed
a single enderman yet
L544[08:39:06] ⇦
Quits: armctec (~Thunderbi@177.140.144.214) (Client
Quit)
L545[08:39:11] <capitalthree> ahhh so what
you want is a *cheaper* parachute!
L546[08:39:28] <ghz|afk> it's not about
price, it's about risk of death trying to acquire it
L547[08:39:52] <ghz|afk> the cost of entry
for elytra is WAY too high for me ;P
L548[08:40:00] <capitalthree> aw I
see
L550[08:40:18] <capitalthree> awesomely
this is still being maintained it seems!
L551[08:40:20] <capitalthree> and open
source :D
L552[08:40:36] <Unnoen> 4xstring, 3xwool
in a recipe should be a basic parachute that just slows falling so
you take no damage
L554[08:40:56]
⇨ Joins: z0ttel (~z0ttel@reuenthal.z0ttel.com)
L555[08:40:58] <Raycoms> It works great
when he is online
L556[08:41:01] <Unnoen> different coloured
wool then change the parachute colours. magic
L557[08:41:48] <Unh0ly_Tigg> capitalthree,
while that mod looks like it does what I'd want it to, I don't want
to do base edits, or use liteloader.
L558[08:42:02] <capitalthree> oh dang I
didn't notice that part
L559[08:42:18] <capitalthree> fair enough
Unh0ly_Tigg. the good news is it's open source so it might be
possible to port to forge
L560[08:42:21] <capitalthree> I
dunno
L561[08:42:31] <capitalthree> later I'll
try it and see if it's hard to combine with forge
L562[08:43:35] ⇦
Quits: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
(Ping timeout: 186 seconds)
L563[08:45:40]
⇨ Joins: cpup (~cpup@32.218.118.182)
L564[08:46:30] ⇦
Quits: Unnoen (~Unnoen@60-242-93-115.static.tpgi.com.au) (Quit:
Leaving)
L565[08:46:40] <ghz|afk> ehm
L566[08:46:45] <ghz|afk> this parachute
mod is WAY too fancy
L567[08:46:53] <ghz|afk> also seems to
have infinite flight XD
L568[08:47:00] <ghz|afk> press spacebar
-> fly up
L569[08:47:16] ⇦
Quits: CoderPuppy (~cpup@32.218.118.29) (Ping timeout: 204
seconds)
L570[08:47:19] <Unh0ly_Tigg> lol, didn't
disable it while in the air...
L571[08:47:38] <ghz|afk> tyhe mod
supposedly has a concept of hot air currents
L572[08:47:40] <ghz|afk> when on top of
lava
L573[08:47:44]
⇨ Joins: Unnoen
(~Unnoen@60-242-93-115.static.tpgi.com.au)
L574[08:47:47] <ghz|afk> but it seems like
everything is hot air or something
L575[08:49:43] ⇦
Quits: Unnoen (~Unnoen@60-242-93-115.static.tpgi.com.au) (Client
Quit)
L576[08:49:51] <ghz|afk> it's not a bad
mod
L577[08:49:55] <ghz|afk> but it feels
completely out of place
L578[08:50:00] <Unh0ly_Tigg> so, custom
block class, has enum property with name "type", game
wants to use "variant" as property name... how do I fix
this?
L579[08:50:05] <ghz|afk> it has a HUD with
compass and stuff in it
L580[08:50:12] <Unh0ly_Tigg> and please
don't say IStateMapper
L581[08:50:25] <ghz|afk> Unh0ly_Tigg:
hm?
L582[08:51:16] <ghz|afk> can you show your
property declaration?
L584[08:52:27] <ghz|afk> and the
statemapper is looking for variant?
L585[08:52:48] <Unh0ly_Tigg> let me run
the client to get the error and stacktrace
L586[08:53:30] <Unh0ly_Tigg> ...
L587[08:53:39] <Unh0ly_Tigg> it's using
the vanilla stone variant names...
L588[08:53:42] <Unh0ly_Tigg> not
mine.
L589[08:53:45] <ghz|afk> uhm
L590[08:54:32] <Unh0ly_Tigg> Exception
loading model for variant modid:stone#variant=stone for blockstate
"modid:stone[variant=stone]"
L591[08:55:00] <Unh0ly_Tigg> there's also
smooth_diorite, and whatnot
L592[08:55:10] ***
TTFT|Away is now known as TTFTCUTS
L593[08:55:17] <PaleoCrafter> does it
display correctly in the debug screen?
L594[08:55:27] <Unh0ly_Tigg> debug
screen?
L595[08:55:57] <Unh0ly_Tigg> oh
L596[08:56:26] <Unh0ly_Tigg> well, I had
this working in 1.11.2, but porting to 1.12 seemed to mess it
up.
L597[08:57:20] <PaleoCrafter> you didn't
accidentally import the Vanilla class, did you? :P
L598[08:57:49] <Unh0ly_Tigg> WHY HAST THOU
FORSAKEN ME?! argh
L599[08:58:31] <Unh0ly_Tigg> umm,
"net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage$ServerHello
cannot be cast to
net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage$ModList"
well then
L600[08:59:42] <Unh0ly_Tigg> so, fixed the
import.
L601[08:59:53] <Unh0ly_Tigg> no more
missing variant errors
L602[09:00:18] <ghz|afk> lol
L603[09:01:06] <Unh0ly_Tigg> and the
blocks aren't showing up in the creative tab I have set up...
L604[09:01:26] <ghz|afk> are you replacing
vanilla stone?
L605[09:01:34] <Unh0ly_Tigg> nope
L606[09:01:45] <ghz|afk> ah so you just
happen to have the same class name
L607[09:01:46] <ghz|afk> ;P
L608[09:01:52] <Unh0ly_Tigg>
BlockStone
L609[09:01:55] <Unh0ly_Tigg> yeah...
L610[09:02:33] <Unh0ly_Tigg> the wonders
of wildcard imports
L611[09:03:40]
⇨ Joins: Noppes
(~Noppes@ip56530f2e.direct-adsl.nl)
L612[09:03:50] <ghz|afk> lol Shadow of
Mordor is still 4eur, AND can be played free until the end of
sunday
L613[09:04:01] <ghz|afk> they REALLY want
people to try out the original game and but the new one
L614[09:04:02] <ghz|afk> XD
L615[09:04:21] <ghz|afk> and buy*
L616[09:05:21] <Unh0ly_Tigg> with
@ObjectHolder isn't it supposed to be that if I use it on a type,
it affects all uses of it on fields within that type to implicitly
be the domain used in the type's annotation?
L617[09:05:51] <ghz|afk> wat?
L618[09:06:07] <ghz|afk> OH you mean if
you put @ObjectHolder on a class ,it fills in the fields
L619[09:06:11] <ghz|afk> maybe, I haven
ever used it that way
L620[09:06:18] <ghz|afk> maybe it broke
with the registry rewrite
L621[09:06:45]
⇨ Joins: CoderPuppy (~cpup@32.218.119.15)
L622[09:06:56]
⇨ Joins: mcmaur (~mcmaur@93.37.55.197)
L623[09:07:19] <Raycoms> Is there a way to
give a block a random recipe?
L624[09:08:06] <ghz|afk> random in what
sense?
L625[09:08:21] <Unh0ly_Tigg> well,
according to a simple log of the class name of the value of the
block field, it is the right instance.
L626[09:08:33] <Unh0ly_Tigg> so,
@ObjectHolder still works.
L627[09:08:48] <Raycoms> I have a set of
textures, I want those textures to be used randomly everytime the
state is placed
L628[09:09:58] <Unh0ly_Tigg> there was
something about one of the options for grass, that allows the top
face to be in different rotations, might be able to use that.
L629[09:10:09] <ghz|afk> Raycoms: ah so
not random recipe, but random texture
L630[09:10:11] <ghz|afk> yes that's
possible
L631[09:10:28] <Raycoms> oh sorry, I have
to much things in my brain
L632[09:10:34] <Raycoms> yes random
texture, my goodness
L633[09:10:39] <PaleoCrafter> just look at
the grass blockstates definition, yeah
L634[09:10:40] <ghz|afk> I can't tell you
exactly how, but I have seen it ;P
L635[09:11:58] <PaleoCrafter> you may
provide multiple models per variant by just wrapping them in an
array
L636[09:12:47] <Raycoms> at the grass
blockstate or at the grass model? The blockstate is quite
simple
L637[09:13:02] ⇦
Quits: cpup (~cpup@32.218.118.182) (Ping timeout: 383
seconds)
L638[09:15:09] <PaleoCrafter> it *is*
simple :P
L639[09:16:37] <Raycoms> because the grass
blockstate doesn't tell anything about the texture
L640[09:16:38] <Raycoms> or random
L641[09:17:12] <PaleoCrafter> see that
"snowy=false" variant?
L642[09:17:43] <PaleoCrafter> it's an
array of objects rather than just an object, the game will choose a
definition randomly
L643[09:17:55] <PaleoCrafter> it doesn't
do anything about the texture because it literally just rotates the
model
L644[09:19:12] <Raycoms> so It randomly
assigns the "snowy variant" to vary it?
L645[09:19:32] <Raycoms> So if I have 7
different textures, I need 7 variants?
L646[09:21:13] <Unh0ly_Tigg> when a
variant (unique set of property values) is an array of model
references, instead of just 1 reference, then it picks
randomly.
L647[09:21:59] <Unh0ly_Tigg> I know why my
block isn't showing up in inventory...
L648[09:22:26] <Unh0ly_Tigg> I never put
@SubscribeEvent on the method I use to register items...
L649[09:22:47] <Raycoms> Hmm but I have to
store those values in metadata if I want it to have the same
texture on restart right?
L650[09:22:54] <Raycoms> So facing + 7
values doesn't fit in there
L651[09:23:10] <PaleoCrafter> no
L652[09:23:26] <PaleoCrafter> the random
texture is based on the position in-world
L653[09:23:46] <PaleoCrafter> iirc
L654[09:24:59] <Raycoms> I'm so confused
right now
L655[09:25:12] <PaleoCrafter> ...
L656[09:25:40] <Raycoms> Like if I just
offer various variants it will choose any of them at random?
L657[09:25:46] <PaleoCrafter> yes
L658[09:28:11] ⇦
Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping
timeout: 200 seconds)
L659[09:28:46] <Raycoms>
https://pastebin.com/vwWNzT8i that's what I have
until now, if I want several textures for the blockrackfullsingle
variant I have to make a model with differen texture for
each?
L660[09:33:41] <Raycoms> I have this
texture "2":
"minecolonies:blocks/rack/shelfTexture1", (from 1-7) I
want it random
L661[09:33:48] ⇦
Quits: portablejim
(~portablej@n1-41-149-115.bla2.nsw.optusnet.com.au) (Remote host
closed the connection)
L662[09:34:39]
⇨ Joins: howtonotwin
(~howtonotw@173-219-99-170.com.sta.suddenlink.net)
L663[09:34:52] <howtonotwin> A fully
defined variant in a list inherits from the defaults block
L664[09:35:49] <howtonotwin> Put anything
common in the defaults and then do variants: { iwantthisrandom: [{
textures: {}}, { textures: {}}] }
L665[09:36:59] <howtonotwin> Oh sorry I
misread... Just do variants: blockrackfullsingle: [{ model: xxx,
textures: ... }, etc.]
L666[09:37:34] <Raycoms> I remove the
texture part of the model then?
L667[09:37:38] <Raycoms> or does it
override it?
L668[09:37:48] <howtonotwin>
overrides
L669[09:38:21] <Raycoms> If the model is
the same for all do I have to write model everytime anyway?
L670[09:38:32] <howtonotwin> yes
L671[09:39:24] <howtonotwin> Also I
suggest using saner texture variable names
L672[09:39:48] <howtonotwin> "2"
isn't very descriptive and someone is gonna get confused
L673[09:39:59] ⇦
Quits: mcmaur (~mcmaur@93.37.55.197) (Quit: Leaving)
L674[09:40:35] <Raycoms> Ah, yeah, I'll
tell our modelerer =D
L675[09:41:00] <howtonotwin> You have a
modelerer that makes modelers that makes models? Cool!
L676[09:41:38] <Raycoms> Its his Dad
L677[09:41:39] <Raycoms> =)
L679[09:41:43] <Raycoms> Like this?
L680[09:42:19] <howtonotwin> Almost
L681[09:42:26] <howtonotwin> No need to
duplicate ALL of the textures
L682[09:42:41] <howtonotwin> Textures are
overrides on an entry-by-entry basis
L683[09:42:43] <Raycoms> Yay that's what I
wanted to ask
L684[09:43:08] <howtonotwin> If the inner
model defines vars a and b and you want to override just b there is
no need to redefine a
L685[09:44:20] <Raycoms> I thought I had
to override the complete texture array
L686[09:44:34] <howtonotwin> That would be
insane :P
L687[09:45:03] <Raycoms> Its still Mojang,
isn't it?
L688[09:45:07] <howtonotwin> I honestly
wouldn't have been surprised if Mojang DID do that
L689[09:46:00] <ghz|afk> well they did do
that
L690[09:46:01] ⇦
Quits: Chais (~Chais@62.178.210.212) (Read error: Connection reset
by peer)
L691[09:46:03] <ghz|afk> with
transforms
L692[09:46:08] <ghz|afk> or actually
L693[09:46:13] <ghz|afk> transforms in
blockstates are forge
L694[09:46:23] ⇦
Quits: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp) (Ping
timeout: 383 seconds)
L695[09:46:25] <ghz|afk> but
"display" in the model json
L696[09:46:42] <ghz|afk> I can't remember
if it overrides all or just the defined ones
L697[09:47:46] <howtonotwin> Oh waaait
you're doing variants { variant { xxx [{}] } }?
L698[09:47:52] <howtonotwin> I'm not sure
if that will work
L699[09:48:00] <howtonotwin> You can try,
but it might just explode
L700[09:48:22] <ghz|afk> it should
work
L701[09:48:24] <Raycoms> its
exploding
L702[09:48:25] <ghz|afk> it's in the spec
;p
L703[09:48:32] <howtonotwin> welp
L704[09:48:39] <ghz|afk> no wait
L706[09:48:44] <ghz|afk> it's int he spec
for full variant strings
L707[09:48:46] <ghz|afk> not the split
ones
L708[09:49:02] <howtonotwin> Oh
dear...
L709[09:49:11] <howtonotwin> Your workload
just got multiplied by 4
L710[09:49:28] <Raycoms> I don't like the
sound of that
L711[09:49:41] <howtonotwin> You need to
define full variants, including the rotation thingy
L712[09:49:46] <howtonotwin> Actually more
like 6
L713[09:50:08]
⇨ Joins: Chais (~Chais@62.178.210.212)
L714[09:50:15] <Raycoms> You mean I have
to put the rotation in every variant as well? =/
L715[09:50:45] <ghz|afk> it would appear
you ahve to use vanilla-style variant strings, so yes
L716[09:51:04] <howtonotwin> So now you do
{ variants { "facing=x,variant=xxx": [{}, {}, ...],
"facing=y,variant=xxx": [], ..., facing: { ... },
variant: { ... } } }
L717[09:51:55] <howtonotwin> You can still
use the property-value mergy feature for the other variants, but
you need to define full variant strings for
variant=blockrackfull
L718[09:52:49] <howtonotwin> Can someone
PR forge to make variants { variant { x [{}] } } work?
L719[09:53:33]
⇨ Joins: cpup (~cpup@32.218.119.122)
L720[09:54:32] <Raycoms> Ah man, you mean
I need to make that whole thingy for each facing?
L721[09:54:37] <howtonotwin> yep
L722[09:54:49] <howtonotwin> You can
probably script it together somehow
L723[09:55:40] ⇦
Quits: CoderPuppy (~cpup@32.218.119.15) (Ping timeout: 204
seconds)
L724[09:56:43] <Raycoms> They really
employed their vista team in minecraft didn't they
L725[09:56:57] <howtonotwin> Totally
L726[09:57:30] <PaleoCrafter> howtonotwin,
I don't think that's really feasible
L727[09:57:56] <howtonotwin> The PR?
L728[09:57:59] <PaleoCrafter> yep
L729[09:58:28] <PaleoCrafter> the random
model stuff is its own model
L730[09:58:41] <ghz|afk> why would it not
be? it just has to compute the different permutations
L731[09:58:54] <howtonotwin> ^
L732[09:58:59] <ghz|afk> "p1": {
"v1": [ a,b,c ] } },
L733[09:59:08] <ghz|afk> "p2": {
"v2": [ d,e,f ] } },
L734[09:59:11] <ghz|afk> would simply
combine into
L735[09:59:29] <PaleoCrafter> fry,
thoughts? :P
L736[09:59:35] <ghz|afk>
"p1=v1,p2=v2": [ ad, ae, af, bd,be, bf, cd,ce,cf ]
L737[10:00:49] <Raycoms> su
L738[10:00:54] <PaleoCrafter> what about
the "v2": { blargh } case? will it be added as an
additional random part, will it be applied to all of the random
ones, if the latter, what takes precedence?
L739[10:00:55] <howtonotwin> I think most
of the block state deser stuff is private so it gives a lot of
wiggle room anyway
L740[10:00:55] <Raycoms> Sorry
L741[10:01:05] <howtonotwin> All of the
random
L742[10:01:16] <ghz|afk> PaleoCrafter: all
of them.
L743[10:01:19] <ghz|afk> permutated
together
L744[10:01:21] <howtonotwin> It's just
another level to the Cartesian product forge already computes
L745[10:01:48] <ghz|afk> no precedences
needed
L746[10:02:20] <PaleoCrafter> tbh I don't
know how exactly the Forge blockstates work, but I'd assume there
is *some* reason fry hasn't implemented this initially
L747[10:02:25] <ghz|afk> the combination
of two property-value pairs is an array of random choices with the
complete cartesian product of all the choices of each value
L748[10:02:33] <ghz|afk> probably because
it's boring to code ;P
L749[10:03:38] <ghz|afk> are there weights
on the random variants?
L750[10:03:42] <howtonotwin> No
L751[10:03:49] <PaleoCrafter> you can
specify weights afaik
L752[10:03:58] <ghz|afk> wait no it would
still work just fine, ad.weight = a.weight * d.weight
L753[10:04:08] <ghz|afk> the probability
works out naturally
L754[10:04:11] <howtonotwin> Wait
weights?
L755[10:04:17] *
howtonotwin rereads spec
L758[10:04:33] <ghz|afk> yup
L759[10:04:35] <howtonotwin> woops
L760[10:04:45] <howtonotwin> I have a
documentation PR to update
L761[10:05:15] <ghz|afk> either way, not
an issue, total weight = product(all weights)
L762[10:07:55] <PaleoCrafter> something
that isn't feasible that way would be using one property to define
the models and another one for the textures (so like... you want to
have 3 random models each with an associated texture which depends
on a different property)
L763[10:08:24] <PaleoCrafter> that'd
require [a,b,c] and [d,e,f] being interpreted as [a&d, b&e,
c&f]
L764[10:09:04] <howtonotwin> If they're
defined on different properties they should be independent
L765[10:09:09] <ghz|afk> yep
L766[10:09:33] <ghz|afk> if you have
random arrays, each random array should be taken
independently
L767[10:09:55] <ghz|afk> it wouldn't make
sense to have all of the random arrays be paired item by item
L768[10:10:14] <PaleoCrafter> some people
might interpret it like that :P
L769[10:10:32] <PaleoCrafter> imo the
"just add the randoms together" makes less sense
L770[10:10:35] <howtonotwin> That's a
documentation problem ?
L771[10:10:56] <PaleoCrafter> and matching
it item by item might ultimately be much more useful
L772[10:11:18] <howtonotwin> It makes no
sense to allow interdependencies between properties because that
doesn't make semantic sense
L773[10:11:24]
⇨ Joins: Uristqwerty
(~chatzilla@modemcable128.165-177-173.mc.videotron.ca)
L774[10:11:27] <howtonotwin> Oh wait
no
L775[10:11:30] <howtonotwin> I see what
you mean
L776[10:11:43] <PaleoCrafter> you
basically already have "interdependencies" between
properties anyway
L777[10:12:17] <howtonotwin> Well if that
interpretation is "infeasible," as you said, then the
only recourse is the product way
L778[10:12:25] <howtonotwin> So the point
is moot
L779[10:12:59] <PaleoCrafter> I didn't
think that much about it when I claimed it was infeasible, that was
more of a gut feeling xD
L780[10:13:03] ⇦
Quits: Spottedleaf (~Spottedle@d75-155-207-106.bchsia.telus.net)
(Killed (NickServ (GHOST command used by
Spottedleaf_)))
L781[10:13:07]
⇨ Joins: Spottedleaf
(~Spottedle@d75-155-207-106.bchsia.telus.net)
L782[10:13:39] ⇦
Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Ping timeout:
200 seconds)
L783[10:14:26] <howtonotwin> Principle of
Least Surprise: Forge already does Cartesian products on the
prop-val level, so it makes sense to do it too on the val-rand
level. Anything else is just too complicated semantically and
implementation-wise.
L784[10:14:27] <PaleoCrafter> I mean,
another way (which might even be more inline with the cartesian
product anyways) would be to create the product of all the
properties
L785[10:14:47] <PaleoCrafter> oh
wait
L786[10:14:55] <PaleoCrafter> damn, I read
ghz' example wrong xD
L787[10:15:00] <howtonotwin> xD
L788[10:15:27] <PaleoCrafter> I read it as
[a,b,c] and [d,e,f] being combined as [a,b,c,d,e,f] for some reason
>.>
L789[10:15:52] <howtonotwin> That's ++,
not *, silly :P
L790[10:16:09] <PaleoCrafter> yeah, which
is why I thought it made less sense xD
L791[10:17:27] <ghz|afk> ^_^
L793[10:18:05] <ghz|afk> yeah because
forgeblockstatev1.java does not check if it's an array
L794[10:18:09] <ghz|afk> it expect and
object and asks for one
L795[10:18:26] <howtonotwin> Yeah that's
the "I'm a very simple format and cannot handle even a µg of
complexity" error ?
L796[10:18:46] <PaleoCrafter> I guess this
would warrant Forge blockstates v2, might as well add variables and
stuff in there xD
L797[10:19:01] <howtonotwin> V2 would be
too much I think
L798[10:19:05] <howtonotwin> It's not a
major change
L799[10:19:19] <ghz|afk> it sounds
perfectly incremental to me
L800[10:19:23] <ghz|afk> meaning it
wouldn't break any existing file
L801[10:19:27] <ghz|afk> so it shouldn't
need a v2
L802[10:19:31] <Raycoms> Okay, this means
that our mod will add this feature only in 1.12 and only after
someone made a pr for it =D
L803[10:19:32] <PaleoCrafter> that's more
of a "I'm a very simple parser and can't provide you with more
meaningful errors" error :P
L804[10:19:33] <howtonotwin> But that's a
problem for the PR comments anyway :P
L805[10:19:48] <PaleoCrafter> I just want
more features in the blockstates :P
L806[10:20:24] <PaleoCrafter> Raycoms, you
can generate the full variants yourself :P
L807[10:21:12] <Raycoms> Too much work for
that small feature and I have a masters thesis to deliver =D
L808[10:21:32] <Raycoms> But thanks for
the help anyway
L809[10:21:33] <ghz|afk> tbh, IMO between
forge blockstates, and the vanilla conditional states
L810[10:21:44] <ghz|afk> the thing should
be changed to an actual scripting language
L811[10:21:45] <ghz|afk> ;p
L812[10:21:58] <howtonotwin> I mean why
not
L813[10:22:09] <howtonotwin> We already
have a scripting language compiler bundled with Forge ?
L814[10:22:20] <PaleoCrafter> just adopt
that "Turing complete" JSON thingy :P
L815[10:22:33] <ghz|afk> no that's
horribly, I was thinking more like what gradle uses ;P
L816[10:22:41] <ghz|afk> which can look a
lot like data ;P
L817[10:22:41] <howtonotwin> Scalahas you
beat with Turing complete types ?
L818[10:23:17] <PaleoCrafter> Forge ain't
shipping Scala for much longer :P
L819[10:23:19] <howtonotwin> Also Turing
complete JSON
L820[10:23:20] <howtonotwin> ?
L821[10:23:23] *
howtonotwin is intrigued
L822[10:23:25] <PaleoCrafter> and it
shouldn't have shipped the compiler in the first place
L823[10:23:33] <howtonotwin> And thank god
for that :D
L825[10:24:07] <ghz|afk> this?
L827[10:24:09] <PaleoCrafter> yep
L828[10:24:35] <PaleoCrafter>
unfortunately I couldn't find an archived version of that
post
L829[10:25:29] <howtonotwin> Oh well
L830[10:25:31] <ghz|afk> yeah me
neither
L831[10:26:24] <ghz|afk> there's a comment
there
L832[10:26:28] <ghz|afk> I wonder why they
didn't use plain JSON arrays and a lisp interpreter, so much
structure seems unnecessary.
L833[10:27:12] <howtonotwin> I wonder
whether that JSON is more confusing that BCL
L835[10:27:18] <howtonotwin> *BLC
L836[10:27:20] <ghz|afk> apparently this
is how it looked like
L839[10:28:22] <Ivorius> PaleoCrafter:
Haha fucking 5.
L841[10:28:30] <Ivorius> That alone is
worth it
L842[10:28:30] <ghz|afk> some other links
there
L843[10:28:31] <ghz|afk> ;P
L844[10:28:35] <PaleoCrafter> What?
L846[10:28:54] <PaleoCrafter> oh yeah
xD
L847[10:29:09] <PaleoCrafter> never ran
into that myself, but I guess y'all noobs did :P
L848[10:29:48] <Ivorius> I'm not even
gonna answer to that
L849[10:30:01] <ghz|afk> I have a couple
times chosen the wrong item from the list when auto-importing
Arrays
L850[10:44:50] <ghz|afk> so
L851[10:45:00] <ghz|afk> we were
talkingabout turing-complete json earlier
L852[10:45:01]
⇨ Joins: Nedelosk
(~Nedelosk@ip-178-203-0-245.hsi10.unitymediagroup.de)
L853[10:45:05] <ghz|afk> I wrote
this...
L854[10:45:11] <ghz|afk> warning: it may
break people's mind
L855[10:45:15] <ghz|afk> or cause eye
bleeding
L857[10:45:27] <howtonotwin> I understand
continuations. My mind cannot be broken further ?
L858[10:45:28] <ghz|afk> it's not quite
what I was thinking when I started
L859[10:46:17] <howtonotwin> I rescind
that statement. Maybe you've found a new way to break minds.
L860[10:46:20] <ghz|afk> so basically
instead of a programming language, I ended up with a JSON AST
L861[10:46:25] <howtonotwin> Also lol
"assignation"
L862[10:46:31] <howtonotwin> I think
that's "assignment" :P
L863[10:46:54] <ghz|afk> 2. the allocation
or attribution of someone or something as belonging to
something.
L864[10:46:54] <ghz|afk> "this
document explains the principles governing the assignation of
lexical units to lexemes"
L865[10:47:14] <howtonotwin> I stand
corrected
L866[10:47:28] <ghz|afk> while
assignment
L867[10:47:29] <ghz|afk> 2. the allocation
of someone or something as belonging to a particular group or
category.
L868[10:47:29] <ghz|afk> "the
assignment of individuals to particular social
positions"
L869[10:47:53] <ghz|afk> so dunno ;P
L870[10:48:13] <ghz|afk> to be honest, in
spanish it's "assignación", hence me using that word
;P
L871[10:48:52] <ghz|afk> but yeah,
json-encoded AST :/
L872[10:49:02] <howtonotwin> I wonder if
you could write a Binary Lambda Calculus interpreter for this. That
would be amazing in a terrible way.
L873[10:50:01] ⇦
Quits: Davnit (~Davnit@72.189.115.20) (Read error: Connection reset
by peer)
L874[10:50:49]
⇨ Joins: Davnit
(~Davnit@72-189-115-20.res.bhn.net)
L875[10:53:27] <ghz|afk> added a
"MEMBERS" field, it didn't feel right to have the method
directly next to the metadata
L876[11:00:49] ⇦
Quits: howtonotwin
(~howtonotw@173-219-99-170.com.sta.suddenlink.net) (Quit: acpid:
disrupt_irc: Commencing sleep...)
L877[11:01:57] <ghz|afk> btw
L878[11:01:57] <ghz|afk> [17:45]
(howtonotwin): I understand continuations. My mind cannot be broken
further ?
L879[11:02:30] <ghz|afk> I sortof
"invented" continuations before I knew what they
were
L880[11:02:49]
⇨ Joins: SotS
(~sots@ip-84-119-140-62.unity-media.net)
L881[11:02:51] <ghz|afk> that is, they
existed long before that
L882[11:03:00]
⇨ Joins: howtonotwin (~howtonotw@173.219.99.170)
L883[11:03:07] <ghz|afk> oh whoops
L884[11:03:14] <ghz|afk> [18:01]
(ghz|afk): btw
L885[11:03:14] <ghz|afk> [18:01]
(ghz|afk): [17:45] (howtonotwin): I understand continuations. My
mind cannot be broken further ?
L886[11:03:14] <ghz|afk> [18:02]
(ghz|afk): I sortof "invented" continuations before I
knew what they were
L887[11:03:15] <ghz|afk> [18:02]
(ghz|afk): that is, they existed long before that
L888[11:03:41] <ghz|afk> but I was
learning something on either javascript or C# or whatever
L889[11:03:58] <howtonotwin> Gory
details?
L890[11:04:02] <ghz|afk> and I was
thinking about how it would be possible to keep the function on a
variable and pass it around
L891[11:04:11] <SotS> Good evening
everyone
L892[11:04:22] <ghz|afk> and use that as a
way to continue executing things
L893[11:04:32] <howtonotwin> Hello
o7
L894[11:05:15] <ghz|afk> I don't remember
the exact context, but chances are the situation lend itself to
that
L895[11:05:15] <ghz|afk> ;P
L896[11:05:25] <ghz|afk> anyhow, gotta go,
need some groceries
L897[11:05:25] <howtonotwin> Did it
explode?
L898[11:05:38] <howtonotwin> Bye!
L899[11:05:46] <ghz|afk> many times, but I
eventually got things working
L900[11:05:51] <ghz|afk> or gave up
L901[11:05:52] <ghz|afk> can't
remember
L902[11:05:54] <SotS> I just recently
updated my project from 1.10 to 1.11 and now i have a lot of
unmapped/obfuscurated methods in my environment. is there a way to
fix that?
L903[11:06:05] *
ghz|afk poofs
L904[11:06:48] <howtonotwin> SotS you need
to update your mcp mappings
L905[11:07:08] <SotS> I merely updated the
forge version in my buidlscript and re-ran setupdecomworkspace and
eclipse commands
L906[11:07:20] <SotS> ah wich command
would i use for that?
L907[11:07:38] <howtonotwin> There's an
mcp_mappings line in the build file
L908[11:07:41] <howtonotwin> Update
it
L909[11:07:46] <howtonotwin> !latest
1.11.2
L910[11:08:00] <howtonotwin> ... is the
bot dead?
L911[11:08:44] <SotS> is there an easy way
to find your latest mapping number?
L912[11:09:52] ⇦
Quits: howtonotwin (~howtonotw@173.219.99.170) (Killed (NickServ
(GHOST command used by
howtonotwin_!~howtonotw@2600:380:a07f:f46:8917:245f:a0f1:fb86)))
L913[11:09:52] <SotS> nvm found one
L914[11:10:06] <SotS> so i guess redo the
setup commands eh?
L915[11:14:50] ⇦
Quits: An_Angry_Brit (~AngryBrit@90.207.39.6) (Ping timeout: 204
seconds)
L916[11:15:07]
⇨ Joins: howtonotwin
(~howtonotw@2600:380:a07f:f46:8917:245f:a0f1:fb86)
L917[11:15:37] <howtonotwin> Yeah redo
them
L918[11:16:05] <howtonotwin> Sorry,
connection went haywire
L919[11:16:12]
⇨ Joins: An_Angry_Brit
(~AngryBrit@90.197.166.16)
L920[11:18:17]
⇨ Joins: Noppes
(~Noppes@ip56530f2e.direct-adsl.nl)
L921[11:18:41]
⇨ Joins: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L922[11:20:21] <SotS> huh
L923[11:20:30] <SotS> now im missing all
the sources?
L924[11:20:33] <SotS> whut
L925[11:20:46] <howtonotwin> What
indeed
L926[11:20:53] <howtonotwin> Try again and
pray
L927[11:21:30] <SotS> trying
again...
L928[11:22:10] <howtonotwin> Do you have
something in the dependencies block by chance?
L929[11:22:22] <SotS> phew...fixed
L930[11:22:42] <howtonotwin> Oh, well
there ya go
L931[11:22:50] <SotS> i do have JEI but it
said before it was missing the forge binaries
L932[11:23:27] <howtonotwin> If it works
then it works :P
L933[11:23:30] <howtonotwin> Good
luck
L934[11:24:25] <SotS> and a shitload of
unresolved names just popped up XD
L935[11:24:31] <SotS> thanks to ne new
mappings
L936[11:24:35]
⇨ Joins: Meronat
(uid190493@id-190493.highgate.irccloud.com)
L937[11:26:39] ⇦
Quits: Hubry (~Hubry@pip9.t19.ds.pwr.wroc.pl) (Quit:
Leaving)
L938[11:26:44]
⇨ Joins: williewillus
(~williewil@cpe-24-28-24-13.austin.res.rr.com)
L939[11:27:07] <williewillus> is
RegistryEvent.Register<IRecipe> fired before or after your
mod's jsons load?
L940[11:28:28] ⇦
Quits: Unh0ly_Tigg (~Robert@c-24-21-196-226.hsd1.or.comcast.net)
(Quit: Leaving)
L941[11:31:01] <SotS> huh what is the
newer equivalent of getChunk().getChunkCoordIntPair()
L942[11:31:18] <SotS> just chunk.xposition
and chunk.zPosition?
L943[11:31:47] <howtonotwin> I'd guess
so
L944[11:32:32] <SotS> ah getPos works
too
L945[11:35:01] ⇦
Quits: howtonotwin
(~howtonotw@2600:380:a07f:f46:8917:245f:a0f1:fb86) (Quit:
Pop)
L946[11:37:49]
⇨ Joins: killjoy
(~killjoy@cpe-174-109-175-105.nc.res.rr.com)
L947[11:39:10]
⇨ Joins: howtonotwin
(~howtonotw@75-110-22-15.gvllcmtk01.res.dyn.suddenlink.net)
L948[11:39:48] <SotS> ok the registry is
playing tricks on me...
L949[11:41:06] <SotS> it says im
registering a name for an item twice...even tho the 2 items in
question use a compleely different name each...
L950[11:41:22]
⇨ Joins: CoderPuppy (~cpup@32.218.119.122)
L951[11:44:41] <ghz|afk> SotS:
setRegistryName?
L952[11:53:55] ⇦
Quits: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com)
(Read error: Connection reset by peer)
L953[11:56:42] ⇦
Quits: williewillus (~williewil@cpe-24-28-24-13.austin.res.rr.com)
(Quit: Leaving)
L954[12:03:54] ⇦
Quits: Matthew (~matt@irc.prenger.co) (Quit: ZNC 1.6.5 - http://znc.in)
L955[12:06:32]
⇨ Joins: Matthew (~matt@irc.prenger.co)
L956[12:09:44]
⇨ Joins: airbreather
(~airbreath@d149-67-99-43.nap.wideopenwest.com)
L957[12:15:00] ⇦
Quits: SotS (~sots@ip-84-119-140-62.unity-media.net) (Ping timeout:
204 seconds)
L958[12:19:55] <PaleoCrafter> dang, missed
willie :/
L959[12:24:35]
⇨ Joins: ThatGuyThomas_
(webchat@76-247-2-26.lightspeed.hstntx.sbcglobal.net)
L960[12:28:01]
⇨ Joins: h5h77
(~h5h77@2a02:8108:4b40:907:922b:34ff:feae:b38b)
L961[12:28:07] ***
Clank[Away] is now known as Clank
L962[12:28:30] <quadraxis> poke him on tf
discord?
L963[12:28:53] <PaleoCrafter> TF?
L964[12:29:03] <quadraxis> twilight
forest
L965[12:29:34] <PaleoCrafter> ah, thanks,
will try
L966[12:48:45]
⇨ Joins: Hubry (~Hubry@pip9.t19.ds.pwr.wroc.pl)
L967[12:50:37] ⇦
Quits: ThatGuyThomas_
(webchat@76-247-2-26.lightspeed.hstntx.sbcglobal.net) (Quit: Web
client closed)
L968[12:52:04] ⇦
Quits: ghz|afk (gigaherz@140.red-88-8-165.dynamicip.rima-tde.net)
(Remote host closed the connection)
L969[12:52:14] ⇦
Quits: AbrarSyed (~AbrarSyed@ipv6.abrarsyed.com) (Quit: All things
are trivial once you've mastered them.)
L970[12:52:15] ⇦
Quits: diesieben07 (~diesieben@abrarsyed.com) (Quit: ZNC - http://znc.in)
L971[12:52:15] ⇦
Quits: Kolatra (~Kolatra@abrarsyed.com) (Quit: ~If you keep my
secret, this strawberry is yours~)
L973[12:52:15] ⇦
Quits: x3n0ph0b3 (~x3n0ph0b3@abrarsyed.com) (Quit: ZNC - http://znc.in)
L974[12:54:21]
⇨ Joins: Abrar|gone
(~AbrarSyed@ipv6.abrarsyed.com)
L975[12:54:21]
MineBot sets mode: +o on Abrar|gone
L976[12:54:49] ***
Abrar|gone is now known as AbrarSyed
L977[12:54:54] ⇦
Quits: Raycoms (~Raycoms@2804:d57:1b08:b00:d2fa:5cd2:eba4:9a53)
(Ping timeout: 204 seconds)
L978[12:55:12]
⇨ Joins: diesieben|away
(~diesieben@abrarsyed.com)
L979[12:55:27]
⇨ Joins: gigaherz
(gigaherz@140.red-88-8-165.dynamicip.rima-tde.net)
L980[12:55:39] ***
diesieben|away is now known as diesieben07
L981[12:55:52]
⇨ Joins: Wuppy (~wuppyZNC@abrarsyed.com)
L982[12:56:13]
⇨ Joins: x3n0ph0b3 (~x3n0ph0b3@abrarsyed.com)
L983[13:03:25] ⇦
Quits: Cast0077 (~Cast0077@24-151-30-78.dhcp.nwtn.ct.charter.com)
(Quit: Poof)
L984[13:29:22]
⇨ Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L985[13:35:38]
⇨ Joins: PieGuy128
(~PieGuy128@mtrlpq5031w-lp130-01-76-65-40-109.dsl.bell.ca)
L986[13:46:24]
⇨ Joins: Doty1154
(~Doty1154@2601:648:8000:134f:5dda:d22b:b64e:9f3a)
L987[13:47:47]
⇨ Joins: MonkeyTyrant
(~MonkeyTyr@blk-212-75-47.eastlink.ca)
L988[13:47:55] ⇦
Quits: MonkeyTyrant (~MonkeyTyr@blk-212-75-47.eastlink.ca) (Client
Quit)
L989[13:49:30] ⇦
Quits: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
(Ping timeout: 383 seconds)
L990[13:59:43] ⇦
Quits: howtonotwin
(~howtonotw@75-110-22-15.gvllcmtk01.res.dyn.suddenlink.net) (Quit:
acpid: disrupt_irc: Commencing sleep...)
L991[14:08:42]
⇨ Joins: howtonotwin
(~howtonotw@75-110-22-15.gvllcmtk01.res.dyn.suddenlink.net)
L992[14:24:51] <howtonotwin> /quit
Pop!
L993[14:24:57] <howtonotwin> ...
L994[14:25:00] ⇦
Quits: howtonotwin
(~howtonotw@75-110-22-15.gvllcmtk01.res.dyn.suddenlink.net) (Quit:
Pop!)
L995[14:27:45] <gigaherz> fail ^
L996[14:29:39] ⇦
Quits: h5h77 (~h5h77@2a02:8108:4b40:907:922b:34ff:feae:b38b) (Quit:
Leaving)
L997[14:46:08] <LexMobile> !gc
GuiRecipeBook
L998[14:49:23] <LexMobile> !gm
func_193944_d
L999[14:49:33] <LexMobile> !gm
func_194210_a
L1000[14:49:46]
⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Ping
timeout: 201 seconds)
L1001[14:50:05]
⇦ Quits: Upthorn
(~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net) (Read
error: Connection reset by peer)
L1002[14:50:19]
⇨ Joins: Upthorn
(~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net)
L1003[15:02:38]
⇨ Joins: Noppes
(~Noppes@ip56530f2e.direct-adsl.nl)
L1004[15:11:00]
⇨ Joins: Gil
(uid147942@id-147942.hathersage.irccloud.com)
L1005[15:12:42] ***
amadornes[OFF] is now known as amadornes
L1006[15:18:03]
⇨ Joins: KGS
(~KGS@h-158-174-9-249.NA.cust.bahnhof.se)
L1007[15:21:12]
⇦ Quits: CoderPuppy (~cpup@32.218.119.122) (Ping timeout: 204
seconds)
L1008[15:21:50]
⇨ Joins: CoderPuppy (~cpup@32.218.119.122)
L1009[15:24:02]
⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
(Quit: Leaving)
L1010[15:26:55]
⇨ Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L1011[15:27:47]
⇦ Quits: Meronat (uid190493@id-190493.highgate.irccloud.com)
(Quit: Connection closed for inactivity)
L1012[15:33:11]
⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
(Ping timeout: 186 seconds)
L1013[15:45:02]
⇨ Joins: MonkeyTyrant
(~MonkeyTyr@blk-212-75-47.eastlink.ca)
L1014[16:04:07]
⇦ Quits: Willis (Willis@107.161.160.241) (Ping timeout: 186
seconds)
L1015[16:10:08]
⇨ Joins: Meronat
(uid190493@id-190493.highgate.irccloud.com)
L1016[16:18:22]
⇦ Quits: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net) (Ping timeout: 383
seconds)
L1017[16:19:16]
⇨ Joins: howtonotwin
(~howtonotw@75-110-22-15.gvllcmtk01.res.dyn.suddenlink.net)
L1018[16:19:24]
⇨ Joins: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net)
L1019[16:20:05] <howtonotwin> How do I
get Forge to find the test mods on IDEA?
L1020[16:20:17] <howtonotwin> I have the
run config set to use Forge_test
L1022[16:20:35] <howtonotwin> And the
module has a dep on Forge_main + contains all the test
sources
L1024[16:20:59] <howtonotwin> thx
L1025[16:30:54]
⇦ Quits: An_Angry_Brit (~AngryBrit@90.197.166.16) (Ping
timeout: 201 seconds)
L1026[16:32:48]
⇨ Joins: An_Angry_Brit
(~AngryBrit@90.194.221.185)
L1027[16:39:44]
⇦ Quits: Hgrebnednav_
(~Hgrebnedn@ptr-908g3orwgp3d6kwd1cf.18120a2.ip6.access.telenet.be)
(Ping timeout: 204 seconds)
L1028[16:43:20]
⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read
error: Connection reset by peer)
L1029[17:04:26]
⇦ Quits: CoderPuppy (~cpup@32.218.119.122) (Ping timeout: 204
seconds)
L1030[17:10:55]
⇨ Joins: CoderPuppy (~cpup@32.218.119.122)
L1031[17:15:45] <howtonotwin> Which Pair
is the Pair to use?
L1032[17:15:47]
⇨ Joins: Kolatra (~Kolatra@abrarsyed.com)
L1033[17:16:54] <PaleoCrafter> I think
most stuff uses the Guava one
L1034[17:17:35] <howtonotwin> err
L1035[17:17:40] <howtonotwin> I don't see
a guava one
L1036[17:17:51] <PaleoCrafter> huh... I
thought that was a thing xd
L1037[17:18:19] <PaleoCrafter> oh, the
apache commons one
L1038[17:18:20] <kashike> apache commons
lang3
L1039[17:18:27] <howtonotwin> Alright,
thanks
L1040[17:18:35] <kashike>
alternatively
L1041[17:18:41] <kashike> Map.Entry with
AbstractMap.SimpleEntry
L1042[17:19:17] <c64cosmin> o/ hello
people, can someone explain what is the purpose of the name, suffix
parameters in DimensionType.register(name, suffix, id, class,
keepLoaded);
L1043[17:19:42] <howtonotwin> Also, can I
use parallelStream or should I just stick to the plain one
L1044[17:19:53] <howtonotwin> This is in
forge code btw
L1045[17:20:14]
⇦ Quits: CoderPuppy (~cpup@32.218.119.122) (Ping timeout: 201
seconds)
L1046[17:20:49] <kashike> c64cosmin: name
is a friendly name (generally all lowercase)
L1047[17:20:54] <kashike> suffix is used
for the villages file
L1048[17:21:00] <kashike>
villages_{suffix}
L1049[17:23:27] <c64cosmin> what is
usually stored in that file?
L1051[17:28:10] <c64cosmin> so it serves
the purpose of giving that file name a suffix to allow players to
add villages in any other dimension
L1052[17:28:22] <c64cosmin> and the name
seems to be used only in the System.out.println
L1053[17:29:02] <c64cosmin> thanks
@kashike
L1054[17:29:48] <kashike> name is used by
net.minecraft.world.DimensionType#byName as well
L1055[17:30:03] <kashike> which is used
by advancements
L1056[17:32:56] <c64cosmin> missed that
one
L1057[17:35:05]
⇦ Quits: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net) (Ping timeout: 190
seconds)
L1058[17:36:50]
⇨ Joins: Umbraco
(~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L1059[17:37:00]
⇨ Joins: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net)
L1060[17:45:05]
⇨ Joins: KnightMiner
(~KnightMin@adsl-75-5-73-47.dsl.emhril.sbcglobal.net)
L1061[17:47:26]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-12-107.dhcp.embarqhsd.net)
L1062[17:55:07]
⇦ Quits: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net) (Ping timeout: 204
seconds)
L1063[17:56:32]
⇨ Joins: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net)
L1064[17:59:01]
⇨ Joins: Shambling
(~Shambling@97-89-242-134.static.plbg.ny.charter.com)
L1065[18:08:58]
⇨ Joins: CoderPuppy (~cpup@32.218.119.122)
L1067[18:17:50] ***
PaleoCrafter is now known as PaleOff
L1068[18:18:17]
⇦ Quits: MonkeyTyrant (~MonkeyTyr@blk-212-75-47.eastlink.ca)
(Quit: Leaving)
L1069[18:23:47]
⇨ Joins: cpup- (~cpup@32.218.114.199)
L1070[18:25:30]
⇦ Quits: cpup (~cpup@32.218.119.122) (Ping timeout: 204
seconds)
L1071[18:26:08]
⇦ Quits: CoderPuppy (~cpup@32.218.119.122) (Ping timeout: 204
seconds)
L1072[18:27:06]
⇨ Joins: cpup (~cpup@32.218.114.199)
L1073[18:32:52]
⇦ Quits: Hubry (~Hubry@pip9.t19.ds.pwr.wroc.pl) (Quit: I
should be going to bed I think...)
L1074[18:39:28]
⇦ Quits: Shambling
(~Shambling@97-89-242-134.static.plbg.ny.charter.com) (Quit:
Leaving)
L1075[18:39:34]
⇨ Joins: CoderPuppy (~cpup@32.218.114.210)
L1076[18:39:44]
⇨ Joins: cpup| (~cpup@32.218.114.210)
L1077[18:43:14]
⇦ Quits: cpup- (~cpup@32.218.114.199) (Ping timeout: 204
seconds)
L1078[18:45:18]
⇦ Quits: cpup (~cpup@32.218.114.199) (Ping timeout: 383
seconds)
L1079[18:48:07]
⇦ Quits: Nedelosk
(~Nedelosk@ip-178-203-0-245.hsi10.unitymediagroup.de) (Read error:
Connection reset by peer)
L1080[18:53:20] ***
amadornes is now known as amadornes[OFF]
L1081[18:57:15]
⇦ Quits: CoderPuppy (~cpup@32.218.114.210) (Ping timeout: 200
seconds)
L1082[18:59:28]
⇨ Joins: immibis
(~chatzilla@122-59-207-252.jetstream.xtra.co.nz)
L1083[18:59:48]
⇦ Quits: cpup| (~cpup@32.218.114.210) (Ping timeout: 383
seconds)
L1084[19:02:48]
⇨ Joins: cpup (~cpup@32.218.114.218)
L1085[19:03:41]
⇨ Joins: bms_
(~bms_@cpe-76-188-199-137.neo.res.rr.com)
L1086[19:03:52] <bms_> Hi.
L1087[19:06:00] ***
MrKickkiller is now known as MrKick|Away
L1088[19:06:47]
⇨ Joins: CoderPuppy (~cpup@32.218.114.218)
L1089[19:07:46] <capitalthree> hi!
L1090[19:08:54] <bms_> How are you?
L1091[19:09:39]
⇨ Joins: GenerousGuava
(~GenerousG@p4FDCCA55.dip0.t-ipconnect.de)
L1092[19:13:11] <capitalthree> great! I
released version 3.0 of my mod yesterday
L1093[19:13:18] <capitalthree> how are
you?
L1094[19:17:08] <bms_> Nice. I’m doing
fine. Working on an entity for mine. Was fine until I tried
applying capabilities.
L1095[19:19:39] <capitalthree> ah, I
haven't really learned those yet
L1096[19:19:40] <capitalthree> what
happened?
L1097[19:20:23] <GenerousGuava>
capabilities really arent that hard once you understand what they
are
L1098[19:24:56]
⇦ Quits: CoderPuppy (~cpup@32.218.114.218) (Ping timeout: 383
seconds)
L1099[19:25:42]
⇨ Joins: CoderPuppy (~cpup@32.218.114.218)
L1100[19:26:51]
⇦ Quits: PieGuy128
(~PieGuy128@mtrlpq5031w-lp130-01-76-65-40-109.dsl.bell.ca) (Quit:
Leaving)
L1101[19:29:05] <bms_> Well, I have
everything written (presumably) correctly for 1.12. JSON recipes
and the registry system both work. The entity even worked before I
gave it the capability. Basically, there’s a console log of errors
everytime anything attempts to spawn it. It doesn’t crash though,
it simply doesn’t spawn. My capability is supposed to store the max
health value, plus a few other statistics about the entity. I need
these to be variable
L1102[19:29:05] <bms_> I set them in a
custom constructor, but when I go to set the health I get the
error. I’ll pull up a report.
L1103[19:32:09] <GenerousGuava> im trying
to do some performance optimisation on my multiblock cause it's
causing more lag than it probably should.
L1104[19:32:42] <GenerousGuava> i also
just noticed a huge issue with my tank level renderer, it slows
minecraft down more and more until I close the screen. need to
figure that one out
L1106[19:35:53] <GenerousGuava> ok part
of it is the tanklevel itself but it seems the drawHoveringText()
method slows it down to an absolute crawl
L1107[19:36:08] <bms_> I think it must be
some small mistake or misunderstanding in my capability code, but I
can’t find anything that stands out to me.
L1109[19:36:49] <GenerousGuava> not so
ideal
L1110[19:36:56] <GenerousGuava> ill take
a look at your logs
L1111[19:37:11] <bms_> Oh dear.
L1112[19:37:14] <bms_> Thank you!
L1113[19:40:50] <GenerousGuava> well for
one you need to default to super in your getCapability and
hasCapability methods.
L1114[19:41:06] <bms_> Alright, I can fix
that.
L1115[19:41:38] <howtonotwin> Hey do any
of you know of a mod that has a lot of complicated blockstate
files?
L1116[19:41:40] <GenerousGuava> you also
normally want to put hasCapability and getCapability in your
TileEntity
L1117[19:42:18] <bms_> Okay.
L1119[19:43:02] <bms_> Thanks!
L1120[19:43:22]
⇦ Quits: bms_ (~bms_@cpe-76-188-199-137.neo.res.rr.com)
(Quit: bms_)
L1122[19:46:22] <howtonotwin> Chances are
there's a few interesting ones in there ?
L1124[19:46:41] <howtonotwin> Can I use
that mod to test out my PR for forge?
L1125[19:46:57] <GenerousGuava> PR?
L1126[19:48:42] <howtonotwin> I changed
something about how block states deserialize
L1127[19:48:52] <howtonotwin> Want to
make sure it doesn't break backcompat
L1128[19:49:33] <howtonotwin> I want to
allow variants { prop { value [{ ... }, { ... }, ...] } } to
work
L1129[19:50:17] <GenerousGuava> right, im
just using rotation and model changes though, no advanced
transforms or anything
L1130[19:50:26] <GenerousGuava> and
custom properties
L1131[19:50:59] <howtonotwin> Do you have
a submodes anywhere?
L1132[19:51:04] <howtonotwin>
*submodel
L1133[19:51:10] <howtonotwin> I'm extra
worried about those
L1134[19:51:28] <GenerousGuava>
unfortunately not, but should be able to just use something like
the vanilla fence for that
L1135[19:52:07] <howtonotwin> Those
aren't submodels ? But good idea, I'll just rewrite the blockstate
for it and see if it works
L1136[19:52:24] <GenerousGuava> oh yea
thats multipart models :P
L1137[19:54:36] <GenerousGuava> do you
happen to know if submodels work with OBJs btw? i was trying to
find info on that but no luck and I don't really want to dig
through the entire blockstate code for it :P
L1138[19:55:48] <GenerousGuava> it would
really help lower the amount of obj files I need to have lying
around
L1139[20:05:16] <howtonotwin> blockstates
care nothing for the contained models
L1140[20:05:22] <howtonotwin>
GenerousGuava, ^
L1141[20:05:52] <howtonotwin> They all
behave same because blockstates are meant to be generic
L1142[20:06:09] <howtonotwin> Therefore,
submodes will work because there is no reason for it not to
L1143[20:06:13] <howtonotwin>
*submodels
L1144[20:06:16] <GenerousGuava> so the
parser just redirects it to groups then I'm guessing?
L1145[20:07:10] <GenerousGuava> it would
save me from having to use 6-16 objs for each of my multiblocks
:P
L1146[20:07:39] <howtonotwin> no that's
not how it works
L1147[20:07:52] <howtonotwin> All models
are internally represented as implementors of IModel
L1148[20:08:06] <howtonotwin> All IModels
can be baked into IBakedModels
L1149[20:08:49] <GenerousGuava> i
see
L1150[20:08:54] <howtonotwin> The
blockstates deser into IModels that load the other IModels and bake
them (all completely generic) and then return the geometry of those
models when asked
L1151[20:12:09] <GenerousGuava> so how
does it get the submodels off the baked model?
L1152[20:13:57] <howtonotwin> The
blockstate IModel loads the submodel IModel. When the BS IModel is
baked it bakes all the SM IModels with it. Those SM IBakedModels
are responsible for providing their own geometry. The BS
IBakedModel just takes that geometry, transforms it as required,
and throws it in with the rest of the quads being readied for
render.
L1154[20:17:39]
⇨ Joins: xampp
(~xampp@c-68-41-245-181.hsd1.mi.comcast.net)
L1155[20:18:20] <GenerousGuava> ooh neat,
that kind of in depth explanation was exactly what i was looking
for and couldnt find
L1156[20:18:21] <GenerousGuava>
thanks
L1157[20:19:19] <howtonotwin> np
L1158[20:21:10] <GenerousGuava> ill have
to read it later though, right now i need to figure out why my
fluid content tooltip causes minecraft to drop to about half fps
:P
L1159[20:22:38] <howtonotwin> At least
you can still measure it in fps and don't need to use spf ;P
L1160[20:23:04] <GenerousGuava> :D
L1161[20:23:29] <GenerousGuava> this is
the first time im using jvisualvm
L1162[20:23:33] <GenerousGuava> pretty
damn useful tool
L1163[20:27:35]
⇦ Quits: KGS (~KGS@h-158-174-9-249.NA.cust.bahnhof.se) (Ping
timeout: 186 seconds)
L1165[20:32:43] <GenerousGuava> is
drawGradientRect really expensive?
L1166[20:33:37] <howtonotwin> I have
absolutely no idea
L1167[20:34:30] <howtonotwin> But I do
admire your accurate naming of those constants
L1168[20:35:28] <GenerousGuava> xD The
code is just copied off OpenModsLib :P I plan on changing it to my
own similar rendering once I get close to a release
L1169[20:35:30] <capitalthree> XD
L1170[20:36:26] <kashike> so we've got
GenerousGuava
L1171[20:36:32] <kashike> now we need
GenerousApacheCommons
L1172[20:36:45] <GenerousGuava> :D
L1173[20:38:14] <GenerousGuava> btw its a
shame OpenModsLib is abandoned now. I did mostly recreate it in my
own FruityLib
L1174[20:38:21] <GenerousGuava> that
library was fucking gorgeous
L1175[20:38:48] <kashike> link?
L1176[20:38:54] <GenerousGuava> mostly in
the gui system and the config/registration system
L1178[20:40:20]
⇦ Quits: MWisBest (~MWisBest@140.74-213-213.cellcom.com)
(Ping timeout: 383 seconds)
L1180[20:41:56] <kashike> neat
L1181[20:43:15] <howtonotwin> I'm always
torn between the neatness of annotations and all the reflective
hackiness that's behind them :P
L1182[20:43:44] <GenerousGuava> yea the
library code that makes all that work is some really hacky
reflection :P
L1183[20:43:58] <howtonotwin> Of course,
I use Scala's mixin traits for my blocks and items and THOSE things
use invokespecial so I can't talk :P
L1184[20:44:22] <GenerousGuava> but
that's something you need to do once and then you can use really
neat abstracted stuff in your business logic
L1185[20:46:10] <GenerousGuava> the sync
system works in a similar way, you just need to instantiate your
syncable values with a wrapper class and call sync every once in a
while
L1186[20:46:27] <GenerousGuava> the rest
is handled in the framework classes
L1187[20:46:47] <capitalthree>
howtonotwin: what mods do you do in scala?
L1188[20:47:21] <capitalthree> my scala
mod's not a content mod so I haven't messed with that stuff
L1189[20:48:25] <howtonotwin> I haven't
released it yet :P
L1190[20:49:29] <howtonotwin> The way I'm
doing registration is that the parts of an item/block someone may
want to inherit gets put into a trait, and then I do object
BlockXXX extends BlockMod with SomeBehavior { mostly rendering
stuff specific to the block }
L1191[20:49:47] <GenerousGuava> ive never
messed with scala :P
L1192[20:50:25] <howtonotwin> And then in
my main mod class I pass a list of blocks into the register event
and I use some magic to get the models registered
automatically
L1193[20:50:41] <GenerousGuava> seems
like you could do something similar with forge capabilities
L1194[20:51:13] <howtonotwin>
GenerousGuava, if you're happy with Kotlin, stay there ? Scala is
far from a pretty language, because it's been revised so much, but
it's incredibly nice if you know how to work it
L1195[20:51:30] <howtonotwin> Say, does
kotlin have something like scale's Dynamic?
L1196[20:51:46] <capitalthree>
howtonotwin: yeah that seems pretty neat
L1197[20:51:46] <howtonotwin> Basically
it's methodMissing but statically typed
L1198[20:51:50] <capitalthree> the usual
boilerplate for doing that is annoying.
L1199[20:52:12] <howtonotwin> I have a
system to use it for NBT but it's been foiled by a compiler bug
:P
L1200[20:52:18] <GenerousGuava> im not
quite sure what you mean by methodMissing
L1201[20:52:25] <capitalthree> I don't
even know about scala's dynamic o_o
L1202[20:52:35] <howtonotwin> Ok so let
x: SomeType with Dynamic
L1203[20:52:44] <capitalthree> but
personally I'm a huge fan of both kotlin and scala and will
encourage anyone using java to check out either one
L1204[20:52:49] <howtonotwin> Now do
x.blah
L1205[20:52:53] <capitalthree> as for
switching between scala and kotlin I don't have a strong opinion, I
have a mod in each
L1206[20:53:07] <capitalthree> I think
scala is better overall and kotlin is better at working seamlessly
alongside java code
L1207[20:53:18] <howtonotwin> If x
doesn't have a blah field, then scalac implicitly makes that into
x.selectDynamic("blah")
L1208[20:53:42] <GenerousGuava> i
see
L1209[20:53:53] <GenerousGuava> kind of
like C# dynamic then
L1210[20:53:55] <capitalthree> oh
interesting. no I don't think so. also that uses jvm reflection
right?
L1211[20:54:04] <howtonotwin> And also
x.blah("foo") ~~>
x.applyDynamic("blah")("foo") and x.blah = foo
~~> x.updateDynamic("blah")(foo)
L1212[20:54:06] <howtonotwin> No to
both
L1213[20:54:06] <capitalthree> I hope
you're only doing stuff like that at init and not
continuously
L1214[20:54:30] <howtonotwin> It's
statically typed, it's just a compile time code rewrite
L1215[20:54:42] <howtonotwin> It's
structural types that incur the reflection
L1216[20:54:44] <capitalthree> oh? so it
can make your compile fail?
L1217[20:54:48] <howtonotwin> Yes
L1218[20:55:16] <capitalthree> I am very
confused right now xD
L1219[20:55:22] <howtonotwin> If you have
applyDynamic(name: String)(arg: Int) but do x.blah("foo")
it'll yell at you for String when expected Int
L1220[20:55:23] <capitalthree> I'm used
to writing everything in a very static way
L1221[20:55:31] <howtonotwin> It IS
static ?
L1222[20:55:33] <GenerousGuava> seems
kind of pointless to me but I guess I can see it used when dealing
with NBT
L1223[20:55:36] <howtonotwin> It's just
like implicits
L1224[20:55:56] <howtonotwin> You don't
write the implicit args, but the compiler sticks them in if it
notices it
L1225[20:56:07] <capitalthree> but if
"blah" doesn't exist, what happens?
L1226[20:56:26] <GenerousGuava> wait so
its aliases basically?
L1227[20:56:29] <capitalthree> or wait,
is applyDynamic just a function you define that can do whatever
with that string?
L1228[20:56:32] <howtonotwin> yes
L1229[20:56:35] <capitalthree> ok I'm
sorry I get it now
L1230[20:56:48] <capitalthree> so it's
only slow if you take that string and then do reflection yourself
or something
L1231[20:56:50] <GenerousGuava> well
kotlin has operator overloads that can do pretty much the same
things
L1232[20:56:58] <howtonotwin>
capitalthree, yeah
L1233[20:57:12] <capitalthree> I gotta be
honest, I find that kinda cheesy and odd
L1234[20:57:27] <GenerousGuava> I can see
some cases where it can do more than kotlin though
L1235[20:57:28] <capitalthree> I mean in
kotlin I use extension functions but at least they're still
actually functions with fixed names
L1236[20:57:44] <capitalthree> no
question it can do more than kotlin
L1237[20:58:09] <GenerousGuava> it does
seem a bit odd to me :P
L1238[20:58:11] <capitalthree> I'd have
to play around with that though. it seems like it would confuse
me
L1239[20:58:14] <howtonotwin> It's use is
locked down a lot, so it can't bork anything it isn't meant to.
It's really just nice sugar for things like NBT :P
L1240[20:58:16] <capitalthree> but maybe
not when I get used to it
L1242[20:58:32] <capitalthree> it seems
like the biggest risk is accidentally making a call to a function
that *is* defined
L1243[20:58:50] <GenerousGuava> I'll just
stick with Kotlin though personally
L1244[20:58:53] <GenerousGuava> it just
looks so neat
L1245[20:59:03] <capitalthree>
GenerousGuava: personally I think it's a better fit for minecraft
modding
L1246[20:59:14] <capitalthree> I have
found the null safety stuff in kotlin to make code interacting with
minecraft's engine a LOT shorter
L1247[20:59:34] <capitalthree> but if I
build a webapp I go straight to scala
L1248[20:59:35] <GenerousGuava> and I
used to code mostly in C# so I'm used to a lot of the added
concepts like the collection modifiers and delegates
L1249[21:00:12] <howtonotwin> Whatever
you do btw, do not look at the collection library method sigs until
you are prepared
L1250[21:00:38] <GenerousGuava> I also
really like how Kotlin automatically uses multithreading on all the
collection methods
L1251[21:01:04] <GenerousGuava> I know
how hacky they look, I looked into LINQ once :P
L1252[21:01:12] <howtonotwin> Oh really?
Doesn't that incur overhead sometimes?
L1253[21:01:16] <primetoxinz> there an
itemstack nbt match in vanilla or forge somewhere?
L1254[21:01:25] <primetoxinz> match
method*
L1255[21:01:35] <GenerousGuava> I think
it has proper optimisations on it to prevent that but I haven't
really looked at it much
L1256[21:01:48] <GenerousGuava> I know
theres asSequence() which forces it to do it in a single
thread
L1257[21:02:12] <primetoxinz> oh, nvm
found it
L1258[21:02:31] <howtonotwin> Scala lets
you coll.par and coll.seq, but most people just stick to the seq
ones
L1259[21:03:19] <capitalthree> the thing
that's great about kotlin is it's born from the best static
analysis tools. a lot of its features are actually based on doing
escape analysis and stuff like that, eg, the flow typing
L1260[21:03:34] <capitalthree> so I have
no doubt it auto parallelizes simple numeric things with no side
effects but leaves the rest alone
L1261[21:04:04] <GenerousGuava> yea I
have no doubt JetBrains did that properly :P
L1262[21:04:20] <howtonotwin> That is
rather cool
L1263[21:04:27] <capitalthree> the reason
I switched to kotlin was not much more complicated than "I've
been trusting these people to keep me from shooting myself in the
foot in java, so might as well"
L1264[21:04:37] <GenerousGuava> they're
pretty much my favourite company in existance :D IntelliJ PHPStorm
ReSharper, every IDE I use is by them
L1265[21:04:46]
⇨ Joins: Wastl2_
(~Wastl2@x4e34c733.dyn.telefonica.de)
L1266[21:04:47] <howtonotwin> Meanwhile,
in Scala the price of the coll lib is sigs like def map[B, That](f:
E => B)(implicit cbf: CanBuildFrom[Repr, B, That]): That // I
think that's pretty close to what it really is
L1267[21:05:28]
⇦ Quits: Wastl2 (~Wastl2@x4e34c888.dyn.telefonica.de) (Ping
timeout: 383 seconds)
L1268[21:05:29] <capitalthree> my only
actual gripe with scala collections, in the context of minecraft
modding, is that they are not cross compatible and you have to do
some converting to deal with java code
L1269[21:06:00] <GenerousGuava> well the
reason I switched to kotlin was mainly that I like learning new
stuff and it seemed like an interesting language
L1270[21:06:13] <howtonotwin> hail
collections.JavaConverters._, our Dark Lord :P
L1271[21:06:14] <GenerousGuava> and as I
used it more and more I realised how amazing it was
L1272[21:11:00] <capitalthree> yeah I do
also like learning new languages
L1273[21:11:20] <capitalthree> and I've
noticed most people's main reason for *not* trying kotlin or scala
isn't that they have a credible reason to think it's not better,
but they're afraid of the learning curve
L1274[21:11:32] <capitalthree> that's why
I tend to recommend kotlin over scala for java coders. almost no
learning curve
L1275[21:11:44] <capitalthree> but nobody
believes me when I tell them how easily they will learn it :P
L1276[21:13:13] <capitalthree> I guess,
compared to java, kotlin feels like it fixes about 80% of the stuff
that scala fixes, but does it with extreme elegance and keeping
things much closer to java
L1277[21:15:05] <capitalthree> like...
scala really feels like a different language. kotlin just feels
like a fantasy land where oracle didn't half-ass java 8.
L1278[21:16:04] <howtonotwin> lol
L1279[21:16:29] <howtonotwin> Where does
Groovy fit in then?
L1280[21:16:38] <capitalthree> uhh...
good enough for build systems I guess
L1281[21:16:43] <capitalthree> if someone
makes a mod in groovy I will cry
L1282[21:16:54] <GenerousGuava> :D
L1283[21:17:10] <howtonotwin> Generous
has 2 gs in their name.
L1284[21:17:17] <howtonotwin> I nominate
them to do it
L1285[21:17:23] <capitalthree> don't dooo
it!
L1286[21:17:31] <capitalthree> go for
ceylon
L1287[21:17:43] <capitalthree> when I do
my 3rd mod it will be ceylon
L1288[21:17:57] <howtonotwin> No write it
in lambda calculus and convert it to JVM with Caramel
L1289[21:18:08] <capitalthree> gonna make
a minecraft mod in every other static jvm language available before
I do java, and hopefully I don't have to get to the dynamic
ones
L1290[21:18:50] <howtonotwin> At this
rate they're probably going to make JVM langs faster than you can
use them :P
L1291[21:19:11] <capitalthree> ok
good
L1292[21:19:35] <capitalthree> I spent
years of my life doing java, and kotlin is such a beautiful drop-in
replacement for java that it seems unjustifiable to ever write more
java code
L1293[21:19:51] <capitalthree> (of
course, I will surely write plenty, when I make contributions to
other mods, because people get butthurt if you insert a kotlin file
into their mod)
L1294[21:20:28] <capitalthree> ceylon
really does seem quite good. very similar design aesthetic to
kotlin, but more biased towards java-like syntax
L1295[21:20:34] <GenerousGuava> I do use
Java for low level byte/bit manipulation since kotlin is weird when
it comes to that
L1296[21:20:58] <capitalthree> I tried to
sell the people on it who complained about pointless syntax things
in kotlin (like fun, or the type ascriptions)
L1298[21:21:04] <capitalthree> but it's a
hard sell since I don't know ceylon yet myself
L1299[21:21:14] <howtonotwin> I hear it
has union types
L1300[21:21:15] <GenerousGuava> and for
my holder classes because I don't want to annotate every single
field with @JvmStatic
L1301[21:21:20] <capitalthree> oh that
makes sense
L1302[21:21:25] <capitalthree> if you
really want to deal with primitive types it makes sense
L1303[21:21:40] <howtonotwin> Honestly a
sane implies of sum types that doesn't involve Miles Sabin level
typehackage is a major plus
L1304[21:21:40] <capitalthree>
GenerousGuava: dude you are supposed to make a companion
object
L1305[21:21:43] <capitalthree> not use
@JvmStatic
L1306[21:21:44] <capitalthree> :P
L1307[21:21:53] <howtonotwin> *impl
L1308[21:22:06] <GenerousGuava> i know
how companion objects work
L1309[21:22:12] <GenerousGuava> but since
1.1 they compile into singletons
L1310[21:22:18] <GenerousGuava> which
dont work well with reflection
L1311[21:22:28] <capitalthree> ohh
ok
L1312[21:22:34] <howtonotwin> How does
kotlin desugar those btw?
L1313[21:22:39] <capitalthree> you
shouldn't need to do reflection on your own code >_>
L1314[21:22:52] <GenerousGuava> well for
my item registrations i do :P
L1315[21:23:09] <capitalthree> there's no
way to handle this through the type system?
L1316[21:23:16] <howtonotwin> Scala turns
object A into class A$ and static field A$.MODULE$
L1317[21:23:39] <howtonotwin> If Kotlin
does companions like Scala then no
L1318[21:23:53] <GenerousGuava> not
really, no. I could look for the companion object and then get my
fields with that reference, but that would make it incompatible
with Java
L1319[21:24:12] <GenerousGuava> howtowin
@JvmStatic or companion objects?
L1320[21:24:19] <howtonotwin>
companions
L1321[21:24:29] <GenerousGuava> well pre
1.1 they just turned into static methods/fields
L1322[21:24:37] <GenerousGuava> now they
turn into a static field called Companion
L1323[21:24:47] <GenerousGuava> then all
the members are part of the Companion class
L1324[21:24:58] <capitalthree> why
*don't* they just turn into static methods/fields anymore?
L1325[21:25:02] <capitalthree> that seems
simple enough
L1326[21:25:05] <GenerousGuava> dont ask
me :P
L1327[21:25:29] <howtonotwin> In scala it
automatically generates forwarders for methods that are
static
L1328[21:25:38] <howtonotwin> It's done
so you can pass the object around like any other
L1329[21:25:39] <GenerousGuava>
@JvmStatic forces it to generate a static field in the main
class
L1330[21:25:56] <GenerousGuava> or method
obviously
L1331[21:26:12]
⇨ Joins: matthewprenger (~matt@irc.prenger.co)
L1332[21:26:27] <howtonotwin> oh does
kotlin have something like scale's single access principle? (Or
whatev it's called)
L1333[21:26:34]
⇨ Joins: Shawn|i7-Q720M
(~shawn156@c-71-205-36-210.hsd1.co.comcast.net)
L1334[21:26:36] <howtonotwin> There is no
such thing as a public field in scala
L1335[21:27:01] <howtonotwin> A public
field is sugar for a private field and a getter/setter with the
names field and field_=
L1336[21:28:47] <GenerousGuava> yup
L1337[21:28:55] <GenerousGuava> it
generates the getters and setters on compile
L1338[21:29:08] <GenerousGuava> you can
add get() and set() to fields too to execute custom logic
L1339[21:29:53] <GenerousGuava> oh and it
turns java getters/setters to property accessors
L1340[21:30:18] <howtonotwin> I really
don't know why that isn't implemented in Scala
L1341[21:31:22] <GenerousGuava> this is
why the collections api is so amazing. I was able to write my
getwidth function for a tooltip like this
L1342[21:31:27] <GenerousGuava> text.map
{ fontRenderer.getStringWidth(it) }.max()!!
L1343[21:32:00] <GenerousGuava> the !! is
declare not null :P
L1344[21:32:36] <howtonotwin> scala says
text.map(fontRenderer.getStringWidth).max, which is basically the
exact same :P
L1345[21:33:19] <howtonotwin> I think
Java is the only JVM lang at this point that can't do it that
elegantly
L1346[21:33:24] <GenerousGuava> yea
:D
L1347[21:33:37] <howtonotwin> I mean it
has streams but it implies .stream() and .collect() :P
L1348[21:33:46] <GenerousGuava> even
though they nicked Lambdas from C# in Java 8
L1349[21:34:43] <GenerousGuava> yea its
such a roundabout way of doing it. guess thats what you have to do
though in a language without extension methods
L1350[21:34:59]
⇨ Joins: Flashfire
(~Samuel@d24-36-3-248.home1.cgocable.net)
L1351[21:35:13] <Flashfire> How can I
make a custom item overlay (like enchantment effect) in 1.12?
L1352[21:35:16] <Flashfire> Is it even
possible?
L1354[21:36:29] ***
matthewprenger is now known as Matthew
L1355[21:41:15] <GenerousGuava> i dont
know a whole lot about rendering stuff
L1356[21:41:46] <Flashfire> I need access
to GL rendering for a custom item
L1357[21:42:14] <Flashfire> Can't seem to
find a way to do that in 1.8+
L1358[21:47:47]
⇦ Quits: Meronat (uid190493@id-190493.highgate.irccloud.com)
(Quit: Connection closed for inactivity)
L1359[21:48:07] <GenerousGuava> havent
done any kind of special item rendering so dont know much about
that
L1360[21:50:44]
⇦ Quits: Gil (uid147942@id-147942.hathersage.irccloud.com)
(Quit: Connection closed for inactivity)
L1361[21:53:16] <howtonotwin> Flashfire,
you can do it, but you need some TESR hackery.
L1362[21:53:29] <Flashfire> Oh
really?
L1363[21:53:42]
⇨ Joins: Arthur
(webchat@pool-74-96-192-21.washdc.fios.verizon.net)
L1364[21:53:42] <Flashfire> I'm fine with
hackery, just need an example of something similar
L1365[21:53:50] <howtonotwin> Step 1) Get
a custom IBakedModel for the item that returns true from
isBuiltInRenderer
L1366[21:53:53] <Flashfire> Better than
making a new set of textures for every itme
L1367[21:54:23] <howtonotwin> Step 2)
call ForgeHooksClient.registerTESRItemStack
L1368[21:54:34] <howtonotwin> Step 3) Use
that TESR to render things
L1369[21:55:07] <Flashfire> Cool
L1370[21:55:19] <howtonotwin> Oh wait I
just realized another way :P
L1371[21:55:27] <Flashfire> Listening
(watching)
L1372[21:55:36] <howtonotwin> Items
models can have layers
L1373[21:55:58] <Flashfire> JSON models
can't do GL blending stuff tho
L1374[21:56:07] <Flashfire> Though it'd
be nice if they could
L1375[21:56:25] <Flashfire> I need to
show parts of this texture only when it's touching the lower
layer's non-transparent pixels
L1376[21:56:44] <howtonotwin> Yeah no
that's gonna be a mess
L1377[21:57:13] <howtonotwin> Another
thing you can do is hook TextureStitchEvent and inject your normal
texture with the glint overlaid on it
L1378[21:57:13] <Flashfire> How do I get
the custom baked model?
L1379[21:57:16] <Flashfire> Custom model
class?
L1380[21:57:27] <howtonotwin> Yes, the
whole model shebang
L1381[21:57:31] <Flashfire> Yeah I could
do that, would that be more expensive?
L1382[21:57:39] <Flashfire> The
texturestichevent thing
L1383[21:57:43] <howtonotwin> no
L1384[21:57:59] <howtonotwin> it'd be a
normal atlas texture and a normal static model like everything
else
L1385[21:58:15] <Flashfire> Hmm
L1386[21:58:21] <Flashfire> How would I
add stuff to it?
L1387[21:58:32] <howtonotwin> I haven't
researched the texture system much so I can't say much
L1388[21:58:42] <howtonotwin> You handle
texturestitchevent and that's all I know
L1389[21:58:44] <Flashfire> Do you know
that it's possible though?
L1390[21:58:46]
⇦ Quits: Elec0
(~Elec0@2605:e000:2d86:4f00:a5b8:e1c0:222a:7a78) (Quit:
Leaving)
L1391[21:58:47] <Flashfire> Oh ok
L1392[21:58:54] <howtonotwin> Probably is
possible though
L1393[21:59:01] <Flashfire> Sounds like
that method might be expensive
L1394[21:59:06] <howtonotwin> It
isn't
L1395[21:59:09] <Flashfire> If I'm
evaluating individual pixels
L1396[21:59:42] <GenerousGuava> your gpu
does that anyways with GL blending
L1397[21:59:47] <howtonotwin> Probably
less expensive than a TESR
L1398[22:00:17] <Flashfire> So having the
frame of my layer and the frame of my item and blending the pixels
would be reasonable?
L1399[22:00:26] <GenerousGuava> pretty
sure you can use OpenGL to blend the textures and then create a new
atlas sprite from thre result
L1400[22:00:29] <Flashfire> I mean, one
by one
L1401[22:00:36] <Flashfire> Oh
really?
L1402[22:00:47] <Flashfire> Not sure how
I'd do that with TextureAtlasSprite
L1403[22:01:06] <GenerousGuava> Well I'm
not sure about the details
L1404[22:01:16] <howtonotwin> Yeah this
is way out of my league now ? You can search GitHub for TAS and see
what pops up
L1405[22:01:28] <GenerousGuava> it was
just an idea since OpenGL would use your GPU to blend the textures
instead of your CPU
L1406[22:01:31] <howtonotwin> Or ping
fr.y if you really must
L1407[22:01:32] <GenerousGuava> and that
would be loads faster
L1408[22:02:05] <Flashfire> The GPU thing
would be cool
L1409[22:03:02] <GenerousGuava> yea I
don't know a whole lot about OpenGL but I'm sure you can find some
stuff on google
L1410[22:03:15] <GenerousGuava> it's a
pretty damn popular graphics library after all
L1411[22:03:40] <Flashfire> It doesn't
know what textureatlassprite is though
L1412[22:03:44] <Flashfire> Which is why
I'm not sure
L1413[22:04:31] <GenerousGuava> no what
I'm saying is load the sprite into OpenGL, blend it, then bake the
result into a TextureAtlasSprite
L1414[22:04:45] <Flashfire> "load
the sprite into openGL" is where I don't know how to do
it
L1415[22:05:09] <GenerousGuava> yea me
neither but I figure that stuff must be on google
L1416[22:05:17] <Flashfire> I've been
looking
L1417[22:05:34] <Flashfire> Not seeing
anything on TextureAtlasSprite + GL
L1418[22:06:08] <GenerousGuava> oh you
mean that part
L1419[22:06:17] <GenerousGuava> just look
through that code
L1420[22:06:30] <GenerousGuava> it has to
load it into OpenGL on render, so it must be in there
somewhere
L1421[22:07:01]
⇨ Joins: ARuther
(~pvtgeekho@pool-74-96-192-21.washdc.fios.verizon.net)
L1422[22:07:24]
⇦ Quits: Arthur
(webchat@pool-74-96-192-21.washdc.fios.verizon.net) ()
L1423[22:08:36] <ARuther> I'm trying to
learn how to use Forge 1.12 but all the tutorials I find are out of
date, any advice?
L1424[22:08:51] <Flashfire> 1.11.2 is
practically the same
L1425[22:08:53] <Flashfire> 1.10.2
even
L1426[22:09:02] <ARuther> I was using the
Shadowfacts tutorial, but I saw the GameRegistry.register is no
longer used
L1427[22:09:14] <Flashfire> Forge
registries you have to use
L1428[22:09:15] <ARuther> And I don't
know enough about modding/forge to figure out how to use
RegistryEvents
L1429[22:09:20] <Flashfire> They are
events
L1430[22:09:24] <Flashfire> I can link
you my mod that does it
L1431[22:09:34] <ARuther> That would be
helpful
L1433[22:10:15] <Flashfire> My init
classes have a @SubcribeEvent method that is called on the register
event in the parameter
L1434[22:10:21] <Flashfire> That's how
stuff is registered now
L1435[22:10:38] <ARuther> Is
@SubscribeEvent a Forge-specific thing?
L1436[22:10:42] <Flashfire> Yes
L1437[22:10:45] <Flashfire> I believe
so
L1438[22:10:45] <ARuther> Ah OK
L1439[22:10:59] <ARuther> I know my way
around Java/programming in general, but all this Forge stuff is new
to me
L1440[22:11:09] <Flashfire> It works with
the event bus
L1442[22:11:36] <Flashfire>
inecraftForge.EVENT_BUS.register(my class instance with the
subscribe event methods)
L1444[22:12:05] <howtonotwin> Flashfire,
it's probably easier to use @EventBusSubscriber with static
handlers
L1445[22:12:22] <ARuther> How would I
modify this portion of the tutorial to work in 1.12?
L1447[22:12:23] <Flashfire> Wasn't aware
of that
L1448[22:12:38] <ARuther> ModItems uses
GameRegistry.register
L1449[22:12:53] <Flashfire> Just the
registration events change
L1450[22:12:57] <howtonotwin> Ignore all
the stuff he does for registration and use what that doc page
says
L1451[22:12:59] <Flashfire> Plus 1.12
handles recipes as jsons
L1452[22:13:02] <howtonotwin> The Item
itself is good
L1453[22:13:05] <howtonotwin> ^ and
that
L1454[22:13:17] <ARuther> Sorry, I'm
having trouble keeping up
L1455[22:13:21] <howtonotwin> I still
don't know how that's done so don't ask me ;P
L1456[22:13:34] <ARuther> I'm not very
familiar with Forge or Minecraft's code in general
L1458[22:13:55] <howtonotwin> I don't
like tutorials because they force patterns on you
L1459[22:14:30] <ARuther> I was reading
through the docs, but when I got to the registries page I was
lost
L1460[22:14:38] <capitalthree> I like
having a pattern forced on me, as long as it's the best
L1461[22:14:41] <howtonotwin> Oh no, I
wrote that page
L1462[22:14:50] <ARuther> Honestly it
seems kind of frontloaded, I was trying to read through it and got
lost
L1463[22:14:53] <ARuther> Ah sorry!
L1464[22:14:58] <capitalthree> intellij
regularly tells me "hey rewrite your code like this", and
I always end up liking it
L1465[22:15:04] <ARuther> tbh I am a try
first and figure out why later sort of person
L1466[22:15:16] <howtonotwin> No,
criticism is good :P
L1467[22:15:16] <ARuther> So I had
planned to follow a tutorial and then figure out what it was doing
after the fact
L1468[22:15:25] <Flashfire> I did
that
L1469[22:15:31] <Flashfire> Sure took me
a while to get used to modding tho
L1470[22:15:32] <howtonotwin> Oh then you
just want to look at an open source mod
L1471[22:15:41] <howtonotwin> Botania is
good
L1472[22:15:44] <Flashfire> I just made a
little of everything you can make
L1473[22:15:51] <Flashfire> Now I just
copy and paste mostly
L1474[22:15:57] <ARuther> I've looked at
existing mods but it's hard to know where to start looking
from
L1475[22:16:08] <ARuther> If there was a
REALLY basic mod I could look through that'd be nice
L1476[22:16:11] <ARuther> Is Botania like
that?
L1477[22:16:14] <Flashfire> No
L1478[22:16:16] <GenerousGuava> haha
no
L1479[22:16:19] <Flashfire> Botania is
super complex
L1480[22:16:20] <ARuther> Well
shoot
L1481[22:16:29] <howtonotwin> The entry
points are the RegistryEvents and everything in the @Mod
class
L1482[22:16:30] <Flashfire> Mine is
fairly basic
L1483[22:16:35] <ARuther> Yeah, reading
through some source code top to bottom is just going to confuse me
more I think
L1484[22:16:47] <Flashfire> I don't have
the guaranteed best practices tho
L1485[22:16:52] <ARuther> Flashfire, I'm
pretty lost just looking at ModBlocks
L1486[22:16:57] <capitalthree> I have
really basic mods but probably too basic :P
L1487[22:17:09] <ARuther> I don't think
too basic is possible for me right now
L1488[22:17:12] <capitalthree> no blocks
added
L1489[22:17:15] <Flashfire> Every mod
with custom blocks has something like ModBlocks
L1490[22:17:21] <capitalthree> but if you
want, Lingering Loot and BTFU
L1491[22:17:24] <ARuther> Yeah, but I
can't figure out what each line is doing
L1492[22:17:28] <ARuther> Thanks
capitalthree
L1493[22:17:38] <capitalthree> I'm on a
portable device but they both have github linked from curse
L1494[22:17:45] <ARuther> I'm sure I can
find them
L1495[22:18:03] <howtonotwin> Not every
mod has ModBlocks ? I don't, at least
L1496[22:18:06] <Flashfire> createBlocks
initializes block instances that can be accessed at any time after
intiialization
L1497[22:18:09] <capitalthree> lingering
loot is probably a better choice, btfu doesn't do that much with
the minecraft engine
L1498[22:18:14] <ARuther> Flashfire, I
see you have onRegisterBlocks, and I see what it's basically doing,
but I can't relate that to what's going on in my tutorial
L1499[22:18:21] <capitalthree> my mods
don't add *any* blocks or items
L1500[22:18:28] <capitalthree> they're
server admin tools mainly
L1501[22:18:33] <Flashfire> 1.12 has
moved where registration happens to within that event
L1502[22:18:44] <Flashfire> It's doing
the same thing in a different way
L1503[22:18:58] <ARuther> Yeah, so how
would I change ModItems (from the mod tutorial) to reflect
that?
L1504[22:19:12] <Flashfire> It would help
if you looked at my commit from old to new
L1505[22:19:13] <howtonotwin> ARuther,
would it be useful if the 2nd-4th paras of registries page were
moved to an "Internals" subheader?
L1506[22:19:17] <Flashfire> Hold on ill
link it
L1507[22:19:26] <ARuther> Good idea
Flashfire
L1509[22:19:50] <Flashfire> This is how I
changed from GameRegistry.register
L1510[22:19:56] <Flashfire> But I also
removed a bunch of bad practices lol
L1511[22:20:18] <ARuther> howtonotwin, I
feel like the second paragraph is pretty important too, since it
has the example
L1512[22:20:26] <ARuther> But yeah, the
third and fourth are very low-level
L1513[22:20:55] <howtonotwin> Yeah I
think I ignored the fact that you're told what.a registry is before
you know events and blocks
L1514[22:21:06] <ARuther> Your first
paragraph is very clear, but it really only tells me that I need to
register stuff, not how to do it or where it falls
L1515[22:21:18] <ARuther> I feel like a
very broad overview of what parts there are in a mod would be a
good place to start
L1516[22:21:36] <ARuther> Like, I see the
registerBlocks example but I'd have no idea where to put it
L1517[22:21:54] <howtonotwin> That's
probably meant for "Structuring Your Mod"
L1518[22:22:19] <howtonotwin> Yeah I'll
note that I need to fix those pages then
L1519[22:22:23] <ARuther> Right, but that
seems to just cover naming conventions
L1520[22:22:37] <howtonotwin> That file
probably needs an overhaul
L1521[22:22:49] <Flashfire> Stuff you can
add to a mod for example is like: Blocks, Items, Entities, Tile
Entities, World Generators
L1522[22:23:06] <Flashfire> So things I
have an Init class for
L1523[22:23:22] <howtonotwin> It's all
the reflection that Forge uses. Too many entry points to be
sane
L1524[22:23:33] <Flashfire> All mods need
a main file though
L1525[22:23:41] <Flashfire> And
proxies
L1526[22:23:45] <Flashfire> One for
client one for server
L1527[22:23:48] <ARuther> Like, literally
a file named "main", or just the file that has the
@Mod
L1528[22:23:54] <ARuther> Oh yeah, and
CommonProxy/ClientProxy
L1529[22:23:57] <howtonotwin> Also not
all mods need proxies
L1530[22:24:00] <Flashfire> You should
call it what your mod is called
L1531[22:24:03] <Flashfire> The main
class
L1532[22:24:06] <ARuther> Gotcha,
yeah
L1533[22:24:15] <ARuther> Wasn't sure if
you meant like a public static void main or something
L1534[22:24:16] <Flashfire> And yeah just
needs @Mod
L1535[22:24:23] <ARuther> Yeah the
tutorial explained that
L1536[22:24:24] <Flashfire> Nah there's
none of that in forge
L1537[22:24:36] <ARuther> Yeah, didn't
think so
L1538[22:24:51] <Flashfire> Also for
actual graphics to appear you need associated "assets"
for your custom stuff
L1539[22:24:57] <Flashfire> Usually json
files
L1540[22:25:22] <ARuther> Does IRC have a
nice way of posting code snippets?
L1541[22:25:26] <Flashfire> There are
blockstates for blocks, models for both blocks and items, but
blocks also have a second model for when it's actually in the
world
L1542[22:25:31] <howtonotwin> No, just
use pastebin
L1543[22:25:34] <ARuther> k
L1544[22:25:34] <Flashfire> Just link to
pastebin
L1545[22:25:37] <Flashfire> brb
L1546[22:25:41] <howtonotwin> Actually
use hastebin
L1547[22:25:45] <howtonotwin> It looks
nicer
L1548[22:26:14] <howtonotwin> (If you use
hasten PLEASE set the file extension so you don't get a Java file
highlighted as C)
L1549[22:26:25] <ARuther> Good advice,
thanks
L1551[22:26:31] <Flashfire> Back
L1552[22:26:37] <ARuther> So the ModItems
script is meant to basically register an instance of each new Item
added by the mod?
L1553[22:26:43] <howtonotwin> yes
L1554[22:26:48] <ARuther> OK
L1555[22:26:58] <howtonotwin> Read that
models doc when you have everything else and are just polishing
up
L1556[22:27:10] <ARuther> Will do
L1557[22:27:21] <Flashfire> Also
L1558[22:27:32] <Flashfire> You will want
to get the vanilla source for reference on stuff
L1559[22:27:38] <Flashfire> Especially
json models
L1561[22:27:50] <ARuther> I think I can
access that via Referenced Libraries?
L1562[22:27:52] <ARuther> I'm using
Eclipse
L1563[22:27:52] <Flashfire> It's created
somewhere in your gradle cache
L1564[22:27:59] <Flashfire> I just used a
java decompiler
L1565[22:28:00] <howtonotwin> ARuther,
yep
L1566[22:28:06] <ARuther> Cool
L1567[22:28:21] <GenerousGuava> Should be
linked anyways in IntelliJ
L1568[22:28:27] <howtonotwin> The jar is
just a zip though; you can extract the assets to your desktop or
something too.
L1569[22:28:34] <GenerousGuava> so you
can just search for classes with ctrl+N
L1570[22:28:36] <Flashfire> ...TRUE
L1571[22:28:39] <Flashfire> lol
L1572[22:28:43] <capitalthree> once you
do setupDecompWorkspace
L1573[22:29:50] <ARuther> So instead of
calling GameRegistry.register on each item I want to register, I
just need to call event.getRegistry().register on each item from
within the SubscribeEvent method?
L1574[22:30:02] <Flashfire> Yeah
L1575[22:30:05] <ARuther> *the method
with @SubscribeEvent above it
L1576[22:30:05] <ARuther> OK
L1577[22:30:07] <ARuther> Great
L1578[22:30:07] <Flashfire> Does the same
thing
L1579[22:30:34] <GenerousGuava> So it
should be easy enough to port over my reflection insanity to 1.12
then :P
L1580[22:30:43] <Flashfire> Yeah
L1581[22:30:51] <GenerousGuava> I can
just register my ConfigProvider as an event handler
L1582[22:30:57] <Flashfire> I remember
1.8 -> 1.9 being awful
L1583[22:31:00] <Flashfire> It's been
easier since then
L1584[22:31:15] <Flashfire> I never had
to deal with 1.7.10 tho
L1585[22:31:16] <howtonotwin> ARuther,
there's a registerAll you can do instead of repeatedly calling
register but they're the same
L1586[22:31:18] <Flashfire> That's the
worst
L1587[22:31:29] <Flashfire> ^ I did not
know that lol
L1588[22:31:33] <GenerousGuava> I had to
port some 1.7.10 code to 1.11.2
L1589[22:31:35] <GenerousGuava> that was
a nightmare
L1590[22:31:37] <Flashfire> Ugh
L1591[22:31:41] *
howtonotwin is sorry for GenerousGuava
L1592[22:31:45]
⇦ Quits: sinkillerj
(~sinkiller@nc-67-232-12-107.dhcp.embarqhsd.net) (Quit:
またね)
L1593[22:31:46] <GenerousGuava> most of
the library code was unrelated to MC though
L1594[22:31:50] <GenerousGuava> luckily
:P
L1595[22:31:53] <Flashfire> Well that's
good
L1596[22:32:09] <Flashfire> Still can't
figure out that GL ting
L1597[22:32:22] <Flashfire> Might try the
TESR route
L1598[22:32:43] <GenerousGuava> cant find
where its loading the texture?
L1599[22:32:47] <Flashfire> Yeah
L1600[22:32:52] <Flashfire> Not sure what
method it would be
L1601[22:32:59] <Flashfire> Is it
bindtexture?
L1602[22:33:10] <Flashfire> I see that a
lot
L1603[22:33:26] <GenerousGuava> thats an
abstracted method but yea
L1604[22:33:32] <Flashfire> Oh
L1605[22:33:44] <GenerousGuava>
itextureobject
L1606[22:33:45] <Flashfire> Can I do that
from texturestitchevent?
L1607[22:33:53] <GenerousGuava> thats
where it gets the GlTextureId from
L1608[22:34:06] <GenerousGuava> there
must be some way to get one from the atlassprite
L1609[22:34:19] <Flashfire> Too bad
atlassprite doesn't extend that
L1610[22:34:45] <GenerousGuava>
itextureobject is something different
L1611[22:35:02] <GenerousGuava>
bindTexture just wraps the creation of a SimpleTexture() which
extends that
L1612[22:35:42] <GenerousGuava> once you
have the GlTextureId you can use TextureUtil.bindTexture(id)
L1613[22:35:51] <Flashfire> I can just
use my resource location though
L1614[22:35:53] <Flashfire> Can I
not?
L1615[22:35:56]
⇦ Quits: howtonotwin
(~howtonotw@75-110-22-15.gvllcmtk01.res.dyn.suddenlink.net) (Quit:
Good day to you!)
L1616[22:35:56] <GenerousGuava> no
L1617[22:36:06] <Flashfire> Oh
L1618[22:36:20] <GenerousGuava> but you
should be able to get an ItextureObject from the atlas sprite
L1619[22:36:26] <Flashfire> Only works
with minecraft domain?
L1620[22:36:41] <GenerousGuava> no any
domain
L1621[22:36:54] <Flashfire> Then why
can't I use a resource location
L1622[22:37:25] <GenerousGuava> well you
could load both textures from the resource location and then
convert the blended result to a textureatlassprite
L1623[22:37:42] <ARuther> OK so this is a
total stab in the dark but this does not appear to be
working:
L1625[22:37:52] <GenerousGuava> the
tricky part at that point is the actual blending in OpenGL
L1626[22:38:03] <Flashfire> You need to
register your class
L1627[22:38:06] <Flashfire> In the event
bus
L1628[22:38:13] <GenerousGuava> you need
to write a GLSL shader and execute that somehow
L1629[22:38:15] <Flashfire> Do it in
commonproxy
L1630[22:38:23] <GenerousGuava> I've
never worked with low level drawing like that
L1631[22:38:23] <Flashfire> Do I?
D:
L1632[22:38:26] <Flashfire> I've never
done that
L1633[22:38:43] <GenerousGuava> GLSL is
just a shader language that gets compiled into GPU compatible
code
L1634[22:38:49] <ARuther> What do you
mean by "Event Bus"?
L1635[22:38:49] <GenerousGuava> its not
too hard
L1636[22:39:04] <ARuther> I've written in
GLSL before, it's kind of a pain until you get used to it
L1637[22:39:07] <ARuther> Then it's just
math
L1638[22:39:12] <GenerousGuava> yea
L1639[22:39:22] <GenerousGuava> for
something as simple as texture blending it should be easy
enouh
L1640[22:39:43] <Flashfire> ARuther look
in my mod's commonproxy
L1641[22:39:44] <capitalthree> the events
are the main thing that passes control to your code
L1643[22:39:58] <Flashfire> You need to
register the instances of classes containing those methods
L1644[22:39:59] <capitalthree> and the
event bus is for listening to (and initiating) global events
L1645[22:40:39] <Flashfire> Hm
L1646[22:40:47] <Flashfire> Not sure how
to bind stuff to that
L1647[22:40:57] <Flashfire> Got an
example?
L1648[22:41:05] <ARuther> Ah OK, so add
MinecraftForge.EVENT_BUS.register(new ModItems()); to
preInit?
L1649[22:41:21] <Flashfire> Yeppers
L1650[22:41:32] <GenerousGuava> I sadly
don't maybe look up how to run shaders in OpenGL
L1651[22:41:37] <GenerousGuava> I need to
work on my mod for a bit :P
L1652[22:41:47] <Flashfire> Alright
L1653[22:41:59] <ARuther> I've got a
preInit that looks exactly like that in my Main class, does it need
to be in CommonProxy?
L1654[22:42:02] <Flashfire> I'm not even
sure what my overlay will look like yet
L1655[22:42:26] <Flashfire> I believe it
does, not fully sure
L1656[22:42:38] <Flashfire> Because code
runs on both client and server
L1657[22:42:48] <Flashfire> Both client
and common proxy have preinit
L1658[22:42:52] <Flashfire> So there's 2
versions running
L1659[22:43:02] <Flashfire> If you have
server code run on the client you'll crash on a dedicated
server
L1660[22:43:21] <GenerousGuava> The other
way around :P
L1661[22:43:32] <ARuther> The mod I
followed put preInit, Init, and postInit in the Main class
L1662[22:43:36] <Flashfire> Sorry my bad,
client code run on the server
L1663[22:43:42] <ARuther> I added the
EVENT_BUS line to that preInit and it worked
L1664[22:43:43] <Flashfire> Mine has that
too
L1665[22:43:43] <ARuther> so idk
L1666[22:44:07] <Flashfire> They call
proxy.preInit, init etc though
L1667[22:44:20] <ARuther> Oh, I see, you
call the Proxy's method within the Main's method
L1668[22:44:20] <Flashfire> So you
actually access the proxy init methods through your main class's
init methods
L1669[22:44:21] <ARuther> gotcha
L1670[22:44:26] <ARuther> Yeah, that
makes sense, OK
L1671[22:45:01] <ARuther> Also, dumb
question, why don't I see a "Materials" tab on my
creative menu in game?
L1672[22:45:23] <Flashfire> Come to think
of it
L1673[22:45:25] <Flashfire> Neither do
I
L1674[22:45:28] <Flashfire> It's a 1.12
change
L1675[22:45:30] <Flashfire> Idk if it's a
bug
L1676[22:45:32] <ARuther> Huh, OK
L1677[22:46:12] <ARuther> Stuff like Iron
Ingot shows up in the Miscellaneous tab
L1678[22:46:37] <Flashfire> I'm still
registering stuff to materials tab tho
L1679[22:46:46] <Flashfire> Materials tab
isn't gone from forge code so maybe it is a bug
L1680[22:47:51]
⇨ Joins: Lathanael
(~Lathanael@p54960F83.dip0.t-ipconnect.de)
L1681[22:47:53] <GenerousGuava> hmm I
think I have a leak in my tank level display
L1682[22:47:56]
⇦ Quits: Lathanael|Away
(~Lathanael@p54960036.dip0.t-ipconnect.de) (Ping timeout: 383
seconds)
L1683[22:48:06] <Flashfire> I might be
lazy with the overlay
L1684[22:48:10] <GenerousGuava> since MC
gets slower and slower
L1685[22:48:15] <Flashfire> I just want
to make a custom enchantment for my items
L1686[22:48:27] <GenerousGuava>
wait
L1687[22:48:28] <Flashfire> Like, not an
enchantment
L1688[22:48:32] <Flashfire> A custom
enchantment type
L1689[22:48:36] <GenerousGuava> have you
looked at how MC handles enchantments?
L1690[22:48:39] <Flashfire> That only
works for these items
L1691[22:48:45] <Flashfire> And has a
different overlay
L1692[22:50:09] <GenerousGuava> i just
looked at the vanilla code
L1693[22:50:38] <Flashfire> What would be
cool is a method that returns a resource location for the
overlay
L1694[22:50:46] <Flashfire> And all
vanilla enchantments return the default
L1695[22:50:49] <GenerousGuava> if
(stack.hasEffect())
L1696[22:50:49] <GenerousGuava> {
L1697[22:50:49] <GenerousGuava>
this.renderEffect(model);
L1698[22:50:49] <GenerousGuava> }
L1699[22:51:00] <GenerousGuava> you would
need a coremod i think
L1700[22:51:06] <Flashfire> What
class
L1701[22:51:11] <Flashfire> Also I know
nothing of coremods lol
L1702[22:51:18] <GenerousGuava> use ASM
to inject into renderItem() in the RenderItem class
L1703[22:51:26] <Flashfire> ASM?
L1704[22:51:28] <GenerousGuava> and add
your own check
L1705[22:51:39] <Flashfire> Never used
that I don't think
L1706[22:51:40] <GenerousGuava> look up
ASM tutorials its not that hard :P
L1707[22:51:45] <killjoy> ASM is evil
voodoo magic
L1708[22:51:50] <GenerousGuava> its just
a library for editing ByteCode
L1709[22:52:00] <killjoy> It's also the
best thing that's happened to modded minecraft
L1710[22:52:02] <Flashfire> Oh this is
cool
L1711[22:52:15] <Flashfire> I've needed
this hundreds of times lol
L1712[22:52:15] <GenerousGuava> so you
can inject your own function call inside the function
L1713[22:52:17] <capitalthree> the best
thing and the worst thing
L1714[22:52:23] <GenerousGuava> its good
and bad
L1715[22:52:27] <GenerousGuava> you
should avoid it
L1716[22:52:29] <killjoy> bad in the
wrong hands
L1717[22:52:34] <GenerousGuava> but in
this case its the only real option
L1718[22:52:34] <capitalthree> it's good
if you *really* need it
L1719[22:52:41] <capitalthree> but every
time I thought I needed it, unascribed helped me find a way that I
didn't
L1720[22:52:47] <Flashfire> Should be
safe if I only want to render a custom effect for my own custom
enchantment
L1721[22:52:48] <Flashfire> Right?
L1722[22:53:05] <GenerousGuava> I think
so
L1723[22:53:06] <killjoy> I would like to
go though my mixins and see what I really need
L1724[22:53:30] <killjoy> I have one
which intercepts a call to GlStateManager
L1725[22:53:50] <Flashfire> So I need to
make a coremod?
L1726[22:53:54] <GenerousGuava> you can
just inject your code into renderItem in that class
L1727[22:53:58] <GenerousGuava> im
checking something real quick
L1728[22:54:00] <Flashfire> Can someone
summarize what a coremod is
L1729[22:54:12] <GenerousGuava> theres a
check for model.isBuiltInRenderer()
L1730[22:54:18] <Flashfire> o.O
L1731[22:54:24] <killjoy> a coremod is a
mod that modifies minecraft's core
L1732[22:54:27] <GenerousGuava> so you
might be able to add a custom renderer
L1733[22:54:45] <killjoy> compared to a
coremod, regular mods are just plugins
L1734[22:54:47] <Flashfire> Custom
renderer would be cool
L1735[22:55:03] <Flashfire> I didn't know
you could do what coremods do at all lol
L1736[22:55:09] <Flashfire> I've been
limiting myself
L1737[22:55:21] <GenerousGuava> oh I see
it's part of the model
L1738[22:55:29] <killjoy> There's one
thing you need to do before tackling the task of making a
coremod
L1739[22:55:29] <GenerousGuava> well you
should limit yourself
L1740[22:55:30] <Flashfire> Item
model?
L1741[22:55:39] <GenerousGuava> coremods
are dangerous and should be avoided at all costs
L1743[22:55:44] <Flashfire> Good to
know
L1744[22:56:02] <Flashfire> Ain't nobody
got time for that
L1745[22:56:04] <Flashfire> lol
L1746[22:56:15] <GenerousGuava> so the
RenderItem takes in an IBakedModel
L1747[22:56:17] <Flashfire> I'll keep as
reference tho
L1748[22:56:39] <killjoy> A good chunk of
that document is white matter
L1749[22:56:41] <GenerousGuava> if you
can override the Model you can make it return false on
model.isBuiltInRenderer()
L1750[22:57:18] <GenerousGuava>
nevermind
L1751[22:57:26] <Flashfire> Doesn't
work?
L1752[22:57:35] <GenerousGuava> even
custom models still have their rendering hardcoded
L1753[22:57:40] <Flashfire> Ah
L1754[22:57:50] <GenerousGuava> so you do
need a coremod
L1755[22:58:01] <killjoy> ask yourself
something first.
L1756[22:58:08] <killjoy> Can you
generify it and get it added to forge?
L1757[22:58:17] <GenerousGuava> yea that
would be the ideal way
L1758[22:58:26] <GenerousGuava> but for
an immediate solution a coremod is the only way
L1759[22:58:35] <Flashfire> Do I have to
know exactly how it would be done?
L1760[22:58:39] <Flashfire> Or can I just
suggest it
L1761[22:58:51] <GenerousGuava> well if
you suggest it itll probably take ages to get adapted
L1762[22:59:26] <GenerousGuava> one thing
I could think of is to add a renderEffects() hook to Items
L1763[22:59:36] <GenerousGuava> but
then.. hmm
L1764[22:59:42] <GenerousGuava> I'd have
to think about how to do that
L1765[22:59:45] <GenerousGuava> since
forge doesnt
L1766[22:59:53] <GenerousGuava> want you
to use low level rendering
L1767[22:59:58] <Flashfire> Hm
L1768[23:00:30] <GenerousGuava> if you
look at RenderItem.renderEffect its full of low level stuff
L1769[23:00:56] <Flashfire> I'm wondering
if I should just avoid the effect thing for now
L1770[23:01:03] <GenerousGuava> Actually
looking at each function call its not that low level
L1771[23:01:09] <Flashfire> I just want
an indication from my item icon that it's been upgraded in a
certain way
L1772[23:01:28] <Flashfire> Thought a
render effect would be cool though
L1773[23:01:55] <GenerousGuava> well you
could definately get that added to forge though
L1774[23:02:03] <Flashfire> Yeah
L1775[23:02:21] <GenerousGuava> youd just
need to figure out how to properly abstract it
L1776[23:02:31] <GenerousGuava> and then
forge can add the hook inside renderItem()
L1777[23:02:40] <Flashfire> Why don't I
see this method you speak of
L1778[23:02:43] <killjoy> RenderItem
wasn't good enough for me
L1782[23:03:52] <Flashfire> My code
doesn't have that?
L1783[23:05:00] <GenerousGuava> wait that
would actually work
L1784[23:05:03] <GenerousGuava> what
killjoy did
L1785[23:05:14] <GenerousGuava> adding a
custom layer
L1786[23:05:19] <Flashfire> Nvm was
limiting myself to .java
L1787[23:05:30] <Flashfire> Oh
killjoy
L1788[23:05:32] <Flashfire> You made
that
L1789[23:05:36] <killjoy> updated
L1790[23:05:37] <Flashfire> My mod
conflicts with yours xD
L1791[23:05:42] <killjoy> cool!
L1792[23:05:52] <Flashfire> We both
replace the player's armor render class
L1793[23:05:56] <killjoy> If your mod
changes the playermodel, I would expect that
L1794[23:05:59] <Flashfire> How can we
resolves this
L1795[23:06:02] <Flashfire>
resolve*
L1796[23:06:05] <killjoy> we dont'
L1797[23:06:08] <Flashfire> lol
L1798[23:06:28] <Flashfire> All mine does
is make mine able to have animated armour
L1799[23:06:35] <killjoy> I need to
replace nearly all the layers
L1800[23:06:48] <killjoy> animated
armor?
L1801[23:06:50] <Flashfire> Yes
L1802[23:06:51] <killjoy> like
textures?
L1803[23:06:53] <Flashfire> Mhm
L1804[23:06:57] <Flashfire> Using
multiple images
L1805[23:07:06] <Flashfire> based on
world time
L1806[23:07:06] <killjoy> Wouldn't that
be in the model?
L1807[23:07:22] <GenerousGuava> cant you
bind an animated texture to the model?
L1808[23:07:28] <Flashfire> I couldn't
find a way
L1809[23:07:33] <Flashfire> Single images
don't work
L1810[23:07:48] <Flashfire> Could I do a
property override on armour model?
L1811[23:07:54] <Flashfire> I wouldn't
think so
L1812[23:08:05] <GenerousGuava> minecraft
supports animated textures
L1813[23:08:05] <killjoy> forge has a
hook for it
L1814[23:08:24] <GenerousGuava> but i
think killjoy might know more since hes actually done this stuff
:P
L1815[23:08:35] <Flashfire> Animated
entity textures I've never seen
L1816[23:08:50] <killjoy> doesn't
optifine add that?
L1817[23:08:58] <Flashfire> I guess the
wither shield is an animated layer though
L1818[23:09:10] <Flashfire> Not sure if
it uses a single image
L1819[23:09:19] <GenerousGuava> well take
a look at it :P
L1820[23:10:07] <Flashfire> Oh
L1821[23:10:15] <Flashfire> Single image
but all fitting into one frame size bc it's small
L1822[23:10:24] <Flashfire> I have 36
frames so nope
L1823[23:10:52] <killjoy> Is that normal
for you?
L1824[23:10:59] <Flashfire> Having 36
frames?
L1825[23:11:02] <killjoy> yes
L1826[23:11:03] <Flashfire> Yes
L1828[23:11:43] <Flashfire> All these
(except diamond rod) have 36 frames
L1829[23:12:03] <killjoy> Oh, I thought
you meant fps
L1830[23:12:08] <Flashfire> Haha
L1831[23:12:13] <killjoy> You're thinking
of icons
L1832[23:12:16] <killjoy> or
sprites
L1833[23:12:34] <GenerousGuava> where did
you find that wither texture that fits into one frame?
L1834[23:12:37] <Flashfire> Yeah and I
need armour with 36 frames without replacing the player model if
possible
L1835[23:12:42] <Flashfire> Yes I
did
L1836[23:12:43] <GenerousGuava> i dont
see the shield in here
L1837[23:12:48] <Flashfire> Mine cannot
possibly fit into one frame
L1838[23:13:14] <Flashfire> Entities
don't work with mcmeta so needs to be multiple images i think
L1839[23:13:30] <GenerousGuava> ah I
see
L1840[23:13:35] <GenerousGuava> well you
could use shaders maybe
L1841[23:13:48] <Flashfire> Is that
possible?
L1842[23:13:49] <GenerousGuava> I think
you can apply a custom shader to the player rendering
L1843[23:14:03] <GenerousGuava> I see
shaders in the assets folder
L1844[23:14:07] <GenerousGuava> so should
be able to add custom ones
L1845[23:14:55] <Flashfire> If only I
knew the first thing about shaders : P
L1846[23:14:57] <GenerousGuava> i just
looked for "Hooks"
L1847[23:15:06] <GenerousGuava> and CCLib
adds an EntityRendererHooks class
L1848[23:15:27] <Flashfire> What is
cclib
L1849[23:15:33] <GenerousGuava>
CodeChickenLib
L1850[23:15:36] <GenerousGuava> jsut
about every mod uses it
L1851[23:15:39]
⇦ Quits: Brokkoli (~Brokkoli@p5B23C80C.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))
L1852[23:15:42] <Flashfire> Mine doesn't
lol
L1853[23:15:47] <Flashfire> I don't use
any libs
L1854[23:15:52] <GenerousGuava> well
complex mods usually use it
L1855[23:15:55] <Flashfire> Except
default of course
L1856[23:15:59] <killjoy> some mods use
it
L1857[23:16:05] <Flashfire> How do I add
it?
L1858[23:16:21] <Flashfire> I mean, so
it's included with my jar
L1859[23:16:29] <killjoy> it uses a
dependency resolver
L1860[23:16:32] <GenerousGuava> no you
have to add it through maven
L1861[23:16:42] <Flashfire> Never used
maven : P
L1862[23:16:44] <GenerousGuava> compile
"codechicken:CodeChickenLib:${config.minecraft_version}-${config.CCLIB_version}:deobf"
L1863[23:16:51] <GenerousGuava> inside
your build.gradle dependencies
L1864[23:16:56] <Flashfire> Wow
thanks
L1865[23:17:11] <Flashfire> And I just
need to download the source so it works in the IDE?
L1866[23:17:18] <Flashfire> Or will
gradle handle that on setupdecompworkspace
L1867[23:17:27] <GenerousGuava> one
sec
L1868[23:17:31] <covers1624> It will auto
download the source
L1869[23:17:37] <GenerousGuava> I need to
find all the relevant stuff in my files :P
L1870[23:18:10] <Flashfire> Cool
L1871[23:18:11] <GenerousGuava>
gradle.properties needs all the variables in that bit of code
L1872[23:18:12] <GenerousGuava>
CCLIB_version=2.7.0+
L1873[23:18:17] <GenerousGuava> and all
the others
L1874[23:18:21] <Flashfire> Looking
forward to checking out this library
L1875[23:18:23] <GenerousGuava> depending
on your versions obv
L1876[23:18:31] <covers1624> 3.0.0 for
1.11 3.1.0 for 1.12
L1877[23:18:39] <Flashfire>
${config.CCLIB_version}
L1878[23:18:42] <Flashfire> I have to set
this up right
L1879[23:18:45] <killjoy> what does ccl
even provide?
L1880[23:18:47] <GenerousGuava> this one
in your repo
L1881[23:18:48] <GenerousGuava> maven
{
L1882[23:18:48] <GenerousGuava> name 'CB
Maven'
L1884[23:18:48] <GenerousGuava> }
L1885[23:19:11] <GenerousGuava> you need
to put CCLIB_VERSION=2.7.0+ in your gradle.properties
L1886[23:19:19] <Flashfire> Thanks
L1887[23:19:30] <GenerousGuava> I think I
use a custom loader for my config
L1888[23:19:44] <GenerousGuava> in
default its just $CCLIB_VERSION i think
L1890[23:20:37] <killjoy> no
L1891[23:20:40] <killjoy> don't use
that!
L1892[23:20:47] <GenerousGuava> why
not?
L1893[23:20:59] <killjoy>
gradle.properties is done automatically
L1894[23:21:13] <GenerousGuava> I know I
said worst case scenario :P
L1895[23:21:20] <GenerousGuava> this
aliases it as config
L1896[23:21:30] <killjoy> worst case:
update gradle :)
L1897[23:21:45] <killjoy> you could just
use ext.config = ext
L1898[23:21:47] <GenerousGuava> i just
copied it out of Draconic Evolution
L1899[23:21:58] <GenerousGuava> I don't
know muhc about gralde :P
L1901[23:22:26] <killjoy> That's using
build.properties
L1902[23:22:33] <killjoy> which does not
auto-import
L1903[23:22:39] <GenerousGuava>
right
L1904[23:22:43] <covers1624> Ah, close
enough :D
L1905[23:22:43] <Flashfire> > Could
not get unknown property 'config' for object of type
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
L1906[23:22:47] <Flashfire> Wat
L1907[23:22:51] <GenerousGuava> I just
tend to copy my gradle stuff from other mods :P
L1908[23:23:10] <Flashfire> Won't accept
config vars in dependencies?
L1909[23:23:16] <killjoy> just use
gradle.properties and access it using ext
L1910[23:23:18] <GenerousGuava> yea
replace all the ${config.somethign} with ${something}
L1911[23:23:24] <Flashfire> Ok ty
L1912[23:23:33] <killjoy> it's good habit
to use ext.something
L1913[23:23:46] <killjoy> mainly in the
buildscript
L1914[23:23:53] <Flashfire> ext?
L1915[23:24:01] <killjoy> maybe you have
a property named build.number
L1916[23:24:06] <Flashfire> Is that
something you type?
L1917[23:24:14] <killjoy> you can't
access that by calling build.number because task build has no
property number
L1918[23:24:26] <Flashfire> Yeah removing
config didn't help ; P
L1919[23:24:28] <killjoy> ext is a
property container
L1920[23:24:43] <covers1624> Flashfire,
If you have any questions about CCL feel free to pm me, im the
maintainer.
L1921[23:25:02] <Flashfire> Thank
you
L1922[23:25:05] <GenerousGuava> well use
${ext.something} then
L1923[23:25:09] <Flashfire> I will
L1924[23:25:39] <Flashfire> Cannot get
property 'minecraft_version' on extra properties extension as it
does not exist
L1925[23:25:52] <Flashfire> Do I have to
put this in my gradle.properties manually
L1926[23:25:56] <killjoy> is it in your
gradle.properties?
L1927[23:25:59] <Flashfire> Nope
L1928[23:26:05] <GenerousGuava> yea you
have to add it to your gradle.properties
L1929[23:26:06] <killjoy> it needs to
be
L1930[23:26:09] <Flashfire> Ok
L1931[23:26:16] <killjoy> the mc-dev
intellij plugin will set this up for you
L1932[23:26:20] <Flashfire> So 1.12 is
all it needs to be?
L1933[23:26:31] <killjoy> don't forget to
use 2.3 as the forgegradle version
L1934[23:26:42] <GenerousGuava> if you
make a habit of putting all versions inside your gradle.properties
youll rarely have to touch your build.gralde
L1935[23:27:49] <GenerousGuava>
ext.something doesnt seem to work for me
L1936[23:27:55] <GenerousGuava>
Error:(47, 0) Cannot get property 'minecraft_version' on extra
properties extension as it does not exist
L1937[23:27:55] <GenerousGuava> <a
href="openFile:D:\OneDrive\Coding\JavaProjects\MyMods\FruityLib\build.gradle">Open
File</a>
L1938[23:27:56] <Flashfire> > Cannot
get property 'minecraft_version' on extra properties extension as
it does not exist
L1939[23:28:02] <Flashfire> ext doesn't
work for me yeah
L1940[23:28:47] <GenerousGuava> any idea
what might be causing that?
L1941[23:28:58] <GenerousGuava> I dont
know much about gradle I just copy from other mods :P
L1942[23:29:01] <killjoy> possibly
gradle.properties.txt
L1943[23:29:51] <Flashfire> Also should I
be using compile
"codechicken:CodeChickenLib:${ext.minecraft_version}-${ext.CCLIB_version}:deobf"
or deobfCompile
"codechicken:CodeChickenLib:${ext.minecraft_version}-${ext.CCLIB_version}"
L1944[23:30:09] <GenerousGuava> I can
never get the latter to work for me
L1945[23:30:14] <Flashfire> Ok
L1946[23:30:26] <Flashfire> But yeah ext
doesn't work and config doesn't work
L1947[23:30:39] <GenerousGuava> maven
yells at me cause it cant find
deobf.codechicken:CodeChickenLib
L1948[23:31:00] <GenerousGuava> :deobf at
the end works perfectly fine
L1949[23:31:18] <killjoy> using
deobfCompile?
L1950[23:31:23] <GenerousGuava> yea
L1951[23:31:24] <covers1624> You need to
specify :universal if you want to use deobfCompile
L1952[23:31:32] <GenerousGuava> ah i
see
L1953[23:31:38] <covers1624> well for CCL
atleast
L1954[23:31:40] <Flashfire> Is that the
better option?
L1955[23:31:44] <Flashfire> Or same
thing
L1956[23:31:52] <covers1624> avoids mcp
mapping conflicts
L1957[23:31:58] <Flashfire> Cool
L1958[23:32:03] <covers1624> CCL uses
what ever mappings forge uses.
L1959[23:32:13] <covers1624> so sometimes
it can be a little out of date
L1960[23:32:14] <killjoy> Those are
always outdated
L1961[23:32:25] <GenerousGuava> well I
still have the issue of ext not working :P
L1962[23:32:26] <killjoy> Last time it
updated, it was outdated
L1963[23:32:27] <covers1624> yeah.. side
effect of my dev env..
L1964[23:32:37] <Flashfire> deobfCompile
it is
L1965[23:32:45] <covers1624> yep
L1966[23:32:47] <killjoy> GenerousGuava,
use the mc-dev intellij plugin
L1967[23:33:14] <Flashfire> Now if only I
could figure out how to access my config xD
L1968[23:33:16] <GenerousGuava> I have a
plugin called Minecraft Development
L1969[23:33:18] <GenerousGuava> is that
the one?
L1970[23:33:27] <killjoy> yes.
L1971[23:33:32] <killjoy> Use that to
create a new minecraft project
L1972[23:33:47] <covers1624> Flashfire,
are you working with 1.12 or 1.11?
L1973[23:33:50] <Flashfire> 1.12
L1974[23:33:58] <GenerousGuava> Well I'd
rather not redo all my setup for the multi module project :P
L1975[23:34:09] <GenerousGuava> think ill
stick with the manual config load
L1976[23:34:15] <covers1624> the version
stated before for ccl was incorrect, 3.1.0.+ for 1.12 ccl.
L1977[23:34:22] <Flashfire> Thanks
L1978[23:34:44] <Flashfire> Would've
caused issues xD
L1980[23:35:34] <GenerousGuava> and use
config instead of ext
L1981[23:35:54] <Flashfire> Or I could
just put them in
L1982[23:36:01] <Flashfire> Not sure
which is worse
L1983[23:36:05] <GenerousGuava> so it's
working for you now?
L1984[23:36:08] <Flashfire> Not yet
L1985[23:36:14] <GenerousGuava> oh I get
what you mean
L1986[23:36:20] <GenerousGuava> this bit
of code is super simple
L1987[23:36:28] <Flashfire> killjoy says
it's bad so idk
L1988[23:36:30] <GenerousGuava> just
paste it right above your project.version etc
L1989[23:36:44] <GenerousGuava> its just
a tiny bit of extra code thats run on build :P
L1990[23:36:47] <Flashfire> Ok
L1991[23:37:02] <GenerousGuava> and as
you could see CCLib uses it too
L1992[23:37:05] <killjoy> And I'm saying
it's not needed
L1993[23:37:13] <Flashfire>
"project.ext"
L1994[23:37:18] <Flashfire> Should I just
use that?
L1995[23:37:20] <killjoy> gradle will
automatically import gradle.properties
L1996[23:37:27] <GenerousGuava> I know it
shouldn't be
L1997[23:37:34] <GenerousGuava> but its
not working for either of us
L1998[23:37:35] <killjoy> when in doubt,
project.
L1999[23:37:58] <killjoy> many other
objects have their own ext, so you might be accessing that
L2000[23:38:00] <Flashfire> Nope
L2001[23:38:02] <Flashfire> Did not work
lol
L2002[23:38:09] <killjoy> have a github
repo?
L2003[23:38:15] <Flashfire> Yes
L2005[23:39:01] <killjoy> Can you
pusH?
L2006[23:39:12] <killjoy> (find a level
that fits me)
L2007[23:39:19] <Flashfire> What do you
mean?
L2008[23:39:26] <Flashfire> Commit my
current unfinished changes?
L2009[23:39:37] <killjoy> to a new branch
if you like
L2010[23:39:51] <Flashfire> I'd rather
not tbh
L2011[23:39:55] <GenerousGuava> damn new
minecraft project takes forever
L2012[23:40:04] <GenerousGuava> is it
doing setupDecompWorkspace?
L2013[23:40:14] <killjoy> yes
L2014[23:40:18] <GenerousGuava> that
explains it :P
L2015[23:42:10] <Flashfire> A problem
occurred evaluating root project 'spectritemod-1.12'.
L2016[23:42:10] <Flashfire> > Supplied
String module notation
'codechicken:CodeChickenLib:[:]-[:]:universal' is invalid. Example
notations: 'org.gradle:gradle-core:2.2',
'org.mockito:mockito-core:1.9.5:javadoc'.
L2017[23:42:18] <Flashfire> Even the
extra code is blanking out my property values
L2018[23:42:29] <killjoy> looks like an
empty map
L2019[23:42:48] <killjoy> [:] is the
toString() of an empty map
L2020[23:43:01] <Flashfire> Well my
properties are in there
L2021[23:43:18] <killjoy> you know that
you can use $minecraft.version, right?
L2022[23:43:30] <Flashfire> Didn't know I
could use that here
L2023[23:43:50] <killjoy> as long as
you've set it
L2024[23:45:06] <Flashfire> Forget the
properties for now
L2025[23:45:14] <Flashfire> Ill just set
the cclib part in the line
L2026[23:45:28] <Flashfire> > Could
not find any matches for codechicken:CodeChickenLib:1.12-3.1.0+ as
no versions of codechicken:CodeChickenLib are available.
L2027[23:45:40] <Flashfire>
covers1624
L2028[23:45:44] <covers1624> err
L2029[23:45:45] <covers1624> one
sec
L2030[23:45:57] <covers1624> 0.+ not
0+
L2031[23:46:01] <Flashfire> Thanks
L2032[23:46:25] <Flashfire> Same error
tho
L2033[23:46:37] <covers1624> probably not
the same
L2034[23:46:40] <covers1624> post it
again
L2035[23:46:47] <Flashfire> A problem
occurred configuring root project 'spectritemod-1.12'.
L2036[23:46:48] <Flashfire> > Could
not resolve all dependencies for configuration
':deobfCompile'.
L2037[23:46:48] <Flashfire> > Could
not find any matches for codechicken:CodeChickenLib:1.12-3.1.0.+ as
no versions of codechicken:CodeChickenLib are available.
L2038[23:47:10] <covers1624> post your
deobfCompile line
L2039[23:47:21] <Flashfire> deobfCompile
"codechicken:CodeChickenLib:$minecraft.version-3.1.0.+:universal"
L2040[23:47:44] <GenerousGuava> i got it
to work now
L2041[23:47:51] <GenerousGuava> using
project.something
L2042[23:47:53] <GenerousGuava> instead
of ext.something
L2043[23:47:55] <Flashfire> Nice
L2044[23:48:39] <covers1624> Oh, do you
have the repo added?
L2045[23:48:54] <GenerousGuava> i did
post the repo :P
L2046[23:49:00] <GenerousGuava> maven
{
L2047[23:49:00] <GenerousGuava> name 'CB
Maven'
L2049[23:49:00] <GenerousGuava> }
L2050[23:49:00] <Flashfire> I suppose I
don't
L2052[23:49:52] <Flashfire> Cool,
thanks
L2053[23:50:42] <GenerousGuava> did
groovy really name it's string class GString?
L2054[23:50:42] <Flashfire> Welp
L2055[23:50:44] <Flashfire> Worked
L2056[23:50:48] <Flashfire> Oh come
on
L2057[23:50:51] <GenerousGuava> did no
one ever say that out loud? :P
L2058[23:50:56] <Flashfire> They had to
have known what they were doing
L2059[23:52:20] <GenerousGuava> btw I
just noticed a decent enough advantage to using Kotlin over
Java
L2060[23:52:40] <GenerousGuava> since you
don't need to write Java code you can just compile to Java 6
L2061[23:52:57] <Flashfire> I guess that
is an advantage
L2062[23:53:03] <GenerousGuava> which
means more compatiblity
L2063[23:53:20] <Flashfire> Too bad mc
1.12 is java 8 only
L2064[23:53:23] <Flashfire> So no
diff
L2065[23:53:34] <GenerousGuava> I just
remembered cause I saw the whole 1.8 thing in my build.gradle
:P
L2066[23:53:43] <GenerousGuava> fair
enough :P
L2067[23:53:54] <GenerousGuava> I think
everyone has Java 8 at this point anyways
L2068[23:54:04] <covers1624> J8 is
amazing
L2069[23:54:38] <Flashfire> stream
ftw
L2070[23:54:43] <GenerousGuava> pff
L2071[23:55:03] <GenerousGuava> kotlin
has the exact same thing as stream but for all iterables :P
L2072[23:55:20] <Flashfire> Also what
replaces mainConfigGuiClass in gui factory
L2073[23:55:24] <Flashfire> I updated
forge and it's gone
L2074[23:55:49] <covers1624> you just
return a new instance of your config gui class
L2075[23:56:02]
⇨ Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L2076[23:56:23] <GenerousGuava> I dont
even know what the config GUI is :P
L2077[23:56:24] <Flashfire> The whole
method is gone though, where do I return it
L2078[23:56:37] <covers1624> the new
method that was added
L2079[23:57:17] <Flashfire> I'm not
seeing it
L2081[23:57:57] <Flashfire> Oh I'm
already using that
L2082[23:58:16] <Flashfire> Not in the
same way though
L2083[23:58:17] <covers1624> right was
added in 1.11 at some stage, then the old method was nuked in
1,12