<<Prev
Next>>
Scroll to Bottom
Stuff goes here
L1[00:12:22] ⇨
Joins: npe|office
(~NPExcepti@bps-gw.hrz.tu-chemnitz.de)
L2[00:14:44] ⇨
Joins: Hunterz
(~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L3[00:23:00] ⇨
Joins: elan_oots
(~elan_oots@104-186-40-156.lightspeed.iplsin.sbcglobal.net)
L4[00:26:47] ⇦
Quits: blood (unknown@ool-45734b88.dyn.optonline.net)
()
L5[00:40:52] ⇦
Quits: elan_oots
(~elan_oots@104-186-40-156.lightspeed.iplsin.sbcglobal.net) (Remote
host closed the connection)
L6[00:47:03] ***
PaleOff is now known as PaleoCrafter
L8[01:22:24] <quadraxis> one day i'll stop
clicking those channel links
L9[01:35:45] <ben_mkiv> is there kinda
multitasking in java so that 2 methods run at the same time?
L10[01:36:21] <PaleoCrafter> Java does have
threading, yes
L11[01:36:47] <ben_mkiv> but does minecraft
use it?
L12[01:38:24] <PaleoCrafter> somewhat.
Chunks are "pre-rendered" on a separate thread, for
instance
L13[01:38:31] <PaleoCrafter> networking
also happens separately
L14[01:38:39] <PaleoCrafter> but basically
all game logic is single-threaded
L15[01:38:47] <ben_mkiv> thanks, my problem
is that my item acts weired when getting charged by wireless
charger in the armorslot
L16[01:38:53] <ben_mkiv> while it works
fine in baubles slot or normal inventory
L17[01:39:08] <ben_mkiv> maybe some kind of
client/server desync then?!
L18[01:39:54] <PaleoCrafter> possibly
L19[01:39:57] <ben_mkiv> the problem seems
to be connected to the fact that im using power in the onUpdate()
method of my item
L20[01:40:06] <ben_mkiv> as when i only
consume every 2nd tick it kinda charges
L21[01:41:05] <ben_mkiv> the wireless
charger from enderio calls
player.inventoryContainer.detectAndSendChanges();
L22[01:41:11] <ben_mkiv> which probably
forces a client/server sync?
L23[01:44:24] <mezz> detect and send
changes is where the server decides if something has changed and it
should send a packet to the client to tell it
L24[01:45:03] <ben_mkiv> thanks
L25[01:45:11] <ben_mkiv> and onUpdate for
Items is called client and server side?
L26[01:45:13] ⇨
Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L27[01:45:16] <ben_mkiv> each tick
L29[01:45:34] <ben_mkiv> then i wonder
where they could desync at all :/
L30[01:45:35] ⇨
Joins: Cornelia
(~Nel@c-75-71-231-133.hsd1.co.comcast.net)
L31[01:46:13] <ben_mkiv> and why it looks
like its working when i dont consume energy each tick (which
everytime updates the items nbt)
L32[01:46:14] <mezz> this is a hard thing
to wrap your head around at first, but you should treat the server
as the logical game, and the client is just visual stuff.
L33[01:46:15] ⇦
Parts: Ordinastie (~Ordinasti@bronyville.me)
(Leaving))
L34[01:46:22] ⇨
Joins: Ordinastie (~Ordinasti@bronyville.me)
L35[01:46:59] <ben_mkiv> thats easy for me,
i wrote server/client stuff before, but not for mc
L36[01:47:03] <mezz> when you are looking
at a machine on the client, it is just a husk with lights and
buttons. the real machinery is happening on the server, and the
server just sends the minimal info to the client
L37[01:47:15] <mezz> okay that's good to
know
L38[01:47:30] <ben_mkiv> i want to consume
the power clientside, too. to avoid syncing all the time
L39[01:47:47] <ben_mkiv> uhm, but client
uses same tickrate as server, right?!
L40[01:47:55] <mezz> if you fake something
on the client like that, you should still send an update from the
server which overrides it
L41[01:48:08] <mezz> yes the tick rate is
the same
L42[01:48:40] <mezz> the server must be the
dominant authority in all things though, treat "consuming
power on the client" as just predicting what will happen
L43[01:49:06] <ben_mkiv> yep, thats what i
want to do, as said to keep sync packages at low rate
L44[01:49:16] <ben_mkiv> so they just do
the same on client/server
L45[01:49:38] <mezz> if you have a gui
open, feel free to update one packet every tick. a player can only
have one gui open
L46[01:50:17] <mezz> it's only worth
worrying about low rates for stuff like machines where there might
be 100s all the time
L47[01:50:53] <mezz> but for guis, the main
concern is maintaining the illusion that that the client is
perfectly client and up to date :)
L48[01:51:06] <mezz> is perfectly correct
and up to date*
L49[01:52:17] <ben_mkiv> as the user is
only able to see the charge when inventory is open, that would work
for my case
L50[01:52:31] <ben_mkiv> item doesnt
consume power when in main inventory
L51[01:52:41] <mezz> cool
L52[01:53:38] <ben_mkiv> so i would just
add the inventory sync call like enderio has it, and make my
consumepower stuff a serverside override
L53[01:53:46] <ben_mkiv> so it wouldnt be
called clientside
L54[01:53:48] <PaleoCrafter> dammit, just
had a confusion due someone meaning the book "It" rather
than the pronoun ._.
L55[01:54:30] <mezz> sounds good
L56[01:57:14] <mezz> when you say
"serverside override" it makes me nervous though. what
method are you using to make sure it only runs on the server?
L57[01:57:44] <ben_mkiv>
@SideOnly(Side.SERVER)
L58[01:57:53] <mezz> ok you cannot do
that
L59[01:57:53] <ben_mkiv> before i override
onUpdate() of the item
L60[01:58:03] <ben_mkiv> yea, it does
nothing now xD
L61[01:58:15] <ben_mkiv> oh wait
L62[01:58:19] <ben_mkiv> in baubles it
still works
L63[01:58:25] <ben_mkiv> but in armorslot
it wont consume power at all
L64[01:58:36] <ben_mkiv> but therefor it
charges xD
L65[01:58:42] <ben_mkiv> fudge
this...
L66[01:58:49] <mezz> you want something
like if (!world.isRemote) { //do server stuff }
L67[01:59:15] <mezz> using SideOnly server
really messes with things, especially singleplayer
L68[01:59:28] <mezz> you should basically
never need to use it
L69[01:59:31] <ben_mkiv> ok, so only call
the inventorysync serverside after consuming power
L70[02:02:42] <ben_mkiv> oh wait, now it
works, but only when i close inventory gui once...
L71[02:02:52] <ben_mkiv> i might have a
clue of whats going on
L72[02:04:26] ⇦
Quits: Neal (~Neal@47.146.41.184) (Ping timeout: 383
seconds)
L73[02:07:05] <ben_mkiv> so now when moving
the item from inventory to armorslot, i have to close the inventory
once to see that the item is charging
L74[02:07:46] <ben_mkiv> does the client
inventory sync to server on closing it?
L75[02:08:08] <ben_mkiv> or for every
change that is made
L76[02:09:20] <mezz> client actions like
clicks are sent immediately
L77[02:11:41] <mezz> I'm off to sleep, good
night o/
L78[02:11:48] <ben_mkiv> gn8 and thanks for
help :)
L79[02:17:12] <ben_mkiv> got it working,
even tho i dont understand what was going on -.-
L80[02:17:36] <ben_mkiv> but now it only
consumes energy serverside and sends a sync to the client
L81[02:23:21] ⇨
Joins: Noppes (~Noppes@ip56530f2e.direct-adsl.nl)
L82[02:26:53] ⇨
Joins: gigaherz|work (~gigaherz@84.89.63.25)
L83[02:27:59] ⇦
Quits: Dimtree (~dimtree@2002:4b6d:9995:0:3fc5:69d6:2cbe:9704)
(Quit: Peace)
L84[02:29:54] ⇨
Joins: SparkVGX (~SparkVGX@121.99.203.245)
L85[02:32:52] ⇨
Joins: Dimtree
(~dimtree@2002:4b6d:9995:0:3fc5:69d6:2cbe:9704)
L86[02:45:19] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 383
seconds)
L87[02:51:31] ⇨
Joins: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L88[03:01:35] ⇨
Joins: darkstone
(~blackgem@ip72-204-2-70.fv.ks.cox.net)
L89[03:01:40] <darkstone> Hello.
L90[03:01:48] <darkstone> Can I get support
here for Forge, or do I have to go somewhere else still?
L91[03:02:08] <ben_mkiv> ask your question,
either someone answers or not^
L92[03:02:11] <Backslash> darkstone, ask
your question and if someone has time he will answer ;)
L93[03:02:29] <darkstone> Thanks!
L94[03:02:52] <darkstone> So, I'm having a
problem with the Forge version for Minecraft 1.10.2.
L95[03:03:06] <darkstone> It's the newest
version that iChun's Portal Gun is updated to, so it's kinda
necessary that I use this version.
L96[03:03:21] <darkstone> However, though
it worked fine on my computer (without a hitch, etc) it's borking
on my friend's.
L97[03:03:39] <darkstone> Both of us are
Win7 64 bit, using the exact same Java version, exact same mods,
exact same Forge installer.
L98[03:04:14] <darkstone> But my friend's
Java 'stops working' and Windows 'can't find a solution' (as
always) about the same point in the logs every time.
L99[03:04:32] <darkstone> I tried switching
it to Java 6, which is also on the computer for a different
project, and it ran fine - but of course, the mods need java
8.
L100[03:04:56] <darkstone> Anyone have an
idea what could be the problem? I've been pounding Google into the
ground with searches and trying things, moving mods around, etc for
an hour.
L101[03:05:30] <xaero> "Java 'stops
working' and Windows 'can't find a solution' (as always) about the
same point in the logs every time." - it's necessary to expand
on this
L102[03:05:46] <darkstone> I'll try, but
the logs kinda went with the computer which went to another
room.
L103[03:06:38] <darkstone> okay, checking
my own logs I came up with the points it crashed on friend's.
L104[03:06:48] <darkstone> With mods in
the folder, it always crashed at: "[01:53:31] [Forge Version
Check/INFO] [ForgeVersionCheck]: [Forge] Found status: AHEAD
Target: null" or right after it.
L105[03:07:14] <darkstone> WITHOUT mods in
the folder, it was slightly different: crashed at "[01:53:45]
[Client thread/INFO]: Created: 512x512 textures-atlas"
L106[03:08:06] <darkstone> Mods btw were
Forestry (an unstable version for 1.10.2), Portal Gun and iChunUtil
by iChun. All for 1.10.2 and working fine on my computer.
L107[03:08:35] <Backslash> darkstone,
upload logs to pastebin and dont post them in pieces in the irc.
Its impossible to find problems this way.
L108[03:08:59] <darkstone> I do not HAVE
the logs. Friend left the room with the computer and is going to
bed. I could go ask for it but I dunno how well THAT'S gonna
go.
L109[03:09:05] <darkstone> Gimme a sec to
finish my sandwich.
L110[03:09:05] <gigaherz|work> darkstone:
what do you use as a launcher?
L111[03:09:19] <gigaherz|work> the modern
vanilla launchers all come with their own java runtime
included
L112[03:09:21] <darkstone> The older
Minecraft launcher. No matter what I do I can't make use of that
nwer thing
L113[03:09:28] <gigaherz|work> okay
then
L114[03:09:34] <gigaherz|work> there's a
known issue with newer versions of the runtime
L115[03:09:38] <gigaherz|work> and one of
the libraries mc uses
L116[03:09:52] <darkstone> the Java
runtime you mean?
L117[03:09:54] <gigaherz|work> something
like, anything newer than jre 1.8.0_51
L118[03:10:09] <darkstone> aha
L119[03:10:10] <darkstone> I have
180
L120[03:10:13] <gigaherz|work> will crash
if the computer uses an intel graphics card
L121[03:10:24] <gigaherz|work> but not
with nvidia or amd
L122[03:10:27] <darkstone> Which friend's
probably does. It's a laptopotato.
L123[03:10:27] <gigaherz|work> IIRC
L124[03:10:34] <gigaherz|work> yes then
it's probably running into that issue
L125[03:10:35] <darkstone> Mine's nvidia
so that makes sense.
L126[03:10:45] <gigaherz|work> if you
update to the latest version of the old launcher
L127[03:10:51] <gigaherz|work> or to the
new launcher
L128[03:10:54] <gigaherz|work> it should
fix itself
L129[03:11:06] <darkstone> I'm a LITTLE
confused
L130[03:11:14] <darkstone> This is with
the non-Minecraft java versions?
L131[03:11:23] <darkstone> I.e., those
that don't come with the new launcher.
L132[03:11:28] <gigaherz|work> hm?
L133[03:11:37] <darkstone> Well
L134[03:11:50] <darkstone> We're throwing
around mention of several different Java copies at 3:13 AM my time
so
L135[03:11:55] <gigaherz|work> oh
L136[03:11:58] <darkstone> I have no idea
which one you're saying has the problem and which doesn't
L137[03:12:28] <gigaherz|work> any
launcher exe released in the past year or 2
L138[03:12:40] <gigaherz|work> creates a
runtime folder next to it, with a working JRE
L140[03:13:24] <darkstone> ahh
L141[03:13:25] <gigaherz|work> you can get
the launcher from there
L142[03:13:33] <darkstone> could I
potentially fetch that jre and use it externally?
L143[03:13:38] <gigaherz|work> yes
L144[03:13:38] <darkstone> We tend to
launch Minecraft from cmd
L145[03:13:41] <darkstone> thanks :D
L146[03:14:47] <darkstone> I sadly won't
be able to test this until tomorrow
L147[03:15:04] <darkstone> If you see a
storm cloud approaching tomorrow, it's me under it
L148[03:15:52] ⇦
Quits: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Quit:
Javaschreiber)
L149[03:16:29] <darkstone> thanks
L150[03:18:01] <gigaherz|work> lol
L151[03:18:04] <gigaherz|work> and
np
L152[03:18:38] <ben_mkiv> darkstone, you
may want to take a look on multimc :>
L153[03:18:49] <ben_mkiv> imho best
launcher out there
L154[03:19:16]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L155[03:19:40] <ben_mkiv> provides
function to install forge/litemodloader, enable/disable mods,
define java stuff for each minecraftinstance
L156[03:19:51] <darkstone> nice!
L157[03:21:18] <darkstone> lol how did I
run out of memory with 8gb machine
L158[03:21:33] <SparkVGX> very easily in
this day and age
L159[03:22:22] <darkstone> yeaaah so far
not happy with the 1.10.2 versions of these mods.
L160[03:23:47] <darkstone> Anyone want a
NullPointerException? I have a good number of 'em here.
L161[04:04:54]
⇨ Joins: h5h77
(~h5h77@2a02:8108:4b40:907:922b:34ff:feae:b38b)
L162[04:23:42] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 186
seconds)
L163[04:26:21]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L164[04:37:06] <masa> can a model element
start below 0 or go over 16 in the model json?
L165[04:37:21] <masa> 16.01 seems to work
at least... not sure if that's valid though
L166[04:37:41] <Andrio> The range is
actually [-16, 32] I believe.
L167[04:37:46] <masa> I need an overlay
quad basically
L168[04:37:54] <masa> oh okay, cool
L169[04:38:08] <Andrio> I've had models
for redstone wire that extends above the block space.
L170[04:38:16] <Andrio> And mine cart
rails.
L171[04:39:44] <masa> yeah, -0.01 seems to
work
L172[04:39:49] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 198
seconds)
L173[04:40:01] <masa> cool, this thing
works then
L174[04:44:04] <masa> uhh, what... why
does the block hilight box not render over my custom model...
O_o
L175[04:47:41] <Ordinastie> it never did
?
L178[04:48:09] <Ordinastie> oh
L179[04:48:37] <Ordinastie> what layer
?
L180[04:48:43] <masa> notice how the
hilight box renders on top of the "overlay model" (the
colored corner) on the right, but not over the base of the
model
L181[04:50:28] <masa> the base model
should be on the SOLID layer, and the overlay is on CUTOUT
L182[04:51:41] <Ordinastie> yeah, that's
odd
L183[04:54:44] <gigaherz|work> it may be a
side-effect of how the multi-layer models work?
L184[04:55:04] <gigaherz|work> hmmm
L185[04:55:09] <gigaherz|work> is the
block's returned layer CUTOUT?
L186[04:55:12] <gigaherz|work> or
SOLID?
L187[04:55:17] <masa> hmm, wait, I have a
bug in the layer stuff... it rendes on all layers atm
L188[04:55:31] <Ordinastie> that's
probably why then
L189[04:55:41] <Ordinastie> translucent
layer blocking it
L190[04:55:42] <gigaherz|work> wait you
aren't using the forge-provided multi-layer model? then nevermind
;P
L191[05:25:29]
⇨ Joins: KGS
(~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L192[05:30:55] ⇦
Quits: SparkVGX (~SparkVGX@121.99.203.245) (Read error: Connection
reset by peer)
L193[05:53:53]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L194[06:01:21] ⇦
Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout:
186 seconds)
L195[06:02:21] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 204
seconds)
L196[06:09:41]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L197[06:21:55] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 198
seconds)
L198[07:11:56]
⇨ Joins: gigaherz_ (~gigaherz@84.89.63.25)
L199[07:13:48]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L200[07:14:12] ⇦
Quits: gigaherz|work (~gigaherz@84.89.63.25) (Ping timeout: 204
seconds)
L201[07:14:49] ⇦
Quits: RichardG (~richardg8@201.37.252.36) (Ping timeout: 204
seconds)
L202[07:21:15]
⇨ Joins: Nedelosk
(~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de)
L203[07:22:17] ⇦
Quits: gigaherz_ (~gigaherz@84.89.63.25) (Remote host closed the
connection)
L204[07:22:45]
⇨ Joins: gigaherz|work (~gigaherz@84.89.63.25)
L205[07:38:16] ⇦
Quits: MCPBot_Reborn (~MCPBot_Re@mcpbot.bspk.rs) (Remote host
closed the connection)
L206[07:38:44]
⇨ Joins: MCPBot_Reborn
(~MCPBot_Re@mcpbot.bspk.rs)
L208[07:41:15] <P3pp3rF1y> I don't see any
more details in info or debug, but can share those as well
L209[07:42:03] <gigaherz|work> can you
show your build.gradle?
L211[07:43:08] <P3pp3rF1y> I am pretty
sure that I was able to run setupDecW last time I made change
there
L212[07:43:20] <P3pp3rF1y> as otherwise I
wouldn't be able to port the mod to 1.12
L213[07:43:29] <gigaherz|work> yeah no
idea
L214[07:43:40] <gigaherz|work> that
build.gradle is way more complex than I can parse in my head
;P
L215[07:43:53] <gigaherz|work> maybe a
question for #forgegradle if that still exists ;p
L216[07:44:59] <P3pp3rF1y> yeah probably,
doesn't seem to be very active though
L217[07:46:47] <MCPBot_Reborn> [TEST CSV]
Pushing snapshot_20170925 mappings to Forge Maven.
L218[07:46:50] <MCPBot_Reborn> [TEST CSV]
Maven upload successful for mcp_snapshot-20170925-1.12.zip
(mappings = "snapshot_20170925" in build.gradle).
L219[07:47:01] <MCPBot_Reborn> Semi-live
(every 10 min), Snapshot (daily ~8:50 EST), and Stable (committed)
MCPBot mapping exports can be found here:
http://export.mcpbot.bspk.rs/
L220[07:47:43] <Ordinastie> P3pp3rF1y,
does --stacktrace show more ?
L221[07:51:11] ⇦
Quits: cpup (~cpup@32.218.113.5) (Ping timeout: 200
seconds)
L222[07:52:50]
⇨ Joins: cpup (~cpup@32.218.113.5)
L224[07:53:59] <P3pp3rF1y> similar with
debug and info, loads more stuff, but pretty much starts running
decompileMc and runs into the exception
L225[07:54:40] <P3pp3rF1y> it however
works on another project, but I fail to see a difference there,
because same versions (gradle/forgegradle/forge) and same mappings
don't work
L226[07:57:38] <ben_mkiv> btw. gigaherz i
somehow fixed my item charging problem by only consuming energy
serverside
L227[07:57:51] <ben_mkiv> also looks like
consuming energy clientside wasnt even necessary for
rendering
L228[07:59:13] <ben_mkiv> so a simple
if(world.isRemote) return; fixed it -.-
L229[08:11:35]
⇨ Joins: malte0811 (~malte@185.134.128.197)
L230[08:17:33] <gigaherz|work> heh
L231[08:18:52] <ben_mkiv> but i still have
no idea what happened :D
L232[08:19:28] <ben_mkiv> consumed energy
on both sides, and the wireless charger should have synced them by
calling player.inventoryContainer.detectAndSendChanges();
L233[08:19:54] <gigaherz|work> it may be
that since the client stack has also changed, mc gets
confused?
L234[08:20:05] <ben_mkiv> possible
L235[08:20:40] <ben_mkiv> as i store the
energy in the items NBT
L236[08:20:45] <ben_mkiv> maybe thats
confusing it
L237[08:21:23] <ben_mkiv> anyways i like
it more that only one side has to do the stuff for the same
result
L238[08:22:29]
⇨ Joins: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L239[08:23:39] ⇦
Quits: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
(Ping timeout: 200 seconds)
L240[08:26:24] ⇦
Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
(Quit: Leaving.)
L241[08:26:58]
⇨ Joins: Brokkoli
(~Brokkoli@p5B23CD11.dip0.t-ipconnect.de)
L242[08:46:40] ⇦
Quits: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de) (Remote
host closed the connection)
L243[09:00:30] ⇦
Quits: z0ttel (~z0ttel@reuenthal.z0ttel.com) (Quit: No Ping reply
in 180 seconds.)
L244[09:01:14] ⇦
Quits: ben_mkiv (~ben_mkiv@p4fed5fbd.dip0.t-ipconnect.de) (Ping
timeout: 200 seconds)
L245[09:11:10]
⇨ Joins: z0ttel (~z0ttel@reuenthal.z0ttel.com)
L246[09:25:56]
⇨ Joins: Raycoms
(~Raycoms@2804:14d:baa0:8d78:3690:fea5:eb51:dcd1)
L247[09:28:21] <Raycoms> Hi there
L248[09:28:42] <Raycoms> Checking if a
chunk is loaded is heavy or can I run that through a loop for like
100 locations easily?
L249[09:29:23] ⇦
Quits: Davnit (~Davnit@72-189-115-20.res.bhn.net) (Ping timeout:
186 seconds)
L250[09:36:50] <gigaherz|work> Raycoms:
it's not "heavy" but also not
"lightweight"
L251[09:37:10] <Raycoms> Heavier than
distanceSq? =D
L252[09:37:13] <gigaherz|work> if you run
it 100 times once, it's ok, if you run it 100 times per tick, it
may be a bit much
L253[09:37:19] <gigaherz|work> most
definitely
L254[09:37:28] <gigaherz|work> distanceSq
is literally just x*x + y*y + z*z
L255[09:37:41]
⇨ Joins: cpup- (~cpup@32.218.116.158)
L256[09:38:31] ⇦
Quits: cpup (~cpup@32.218.113.5) (Ping timeout: 204
seconds)
L257[09:38:57] <Raycoms> Okay thanks
=)
L258[09:39:31]
⇨ Joins: cpup (~cpup@32.218.116.158)
L259[09:41:49] ⇦
Quits: gigaherz|work (~gigaherz@84.89.63.25) ()
L260[09:42:46] ⇦
Quits: CoderPuppy (~cpup@32.218.113.5) (Ping timeout: 383
seconds)
L261[09:44:44]
⇨ Joins: vrackfall
(~chatzilla@cable-192.222.193.235.electronicbox.net)
L262[09:45:19] <vrackfall> H'llo someone
here???
L263[09:46:32]
⇨ Joins: SubThread
(~SubThread@185-157-160-44.pool.ovpn.com)
L264[09:47:58]
⇨ Joins: Artsicle (webchat@207.174.251.15)
L265[09:49:23] ⇦
Parts: Artsicle (webchat@207.174.251.15) ())
L266[09:51:34]
⇨ Joins: Artsicle (webchat@207.174.251.15)
L267[09:52:28] ⇦
Quits: Artsicle (webchat@207.174.251.15) (Client Quit)
L268[09:53:20] ⇦
Quits: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Quit:
Javaschreiber)
L269[09:53:35]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-11-148.dhcp.embarqhsd.net)
L270[09:56:39] <ghz|afk> vrackfall: jsut
ask the question
L271[09:56:48] <ghz|afk> so that others
have a chance to see it and can think of an answer
L272[09:58:43] <vrackfall> Ho, ok, so the
thing is, this is a modding question
L273[10:00:29] <ghz|afk> this is a modding
channel :P
L274[10:00:39] <ghz|afk> so you are in the
right place!
L275[10:04:13]
⇨ Joins: killjoy1
(~killjoy@2606:a000:1118:8030:9d52:ce96:d1fb:6c50)
L276[10:06:39]
⇨ Joins: ben_mkiv
(~ben_mkiv@p4FED5FBD.dip0.t-ipconnect.de)
L277[10:10:17] <vrackfall> Ok, perfect,
didn't know, tough that was the LHoM that was tke modding
channel
L278[10:10:34] ⇦
Quits: cpup (~cpup@32.218.116.158) (Ping timeout: 200
seconds)
L279[10:10:47] ⇦
Quits: cpup- (~cpup@32.218.116.158) (Ping timeout: 186
seconds)
L280[10:11:31] <vrackfall> So the question
is: I need help to finish the remake of a very special mode.
L281[10:12:40] <ben_mkiv> dont we
all?
L282[10:13:12] <vrackfall> Yup, so
L283[10:13:49] <vrackfall> The problem is,
I'm using a Forge event, that is called ModelBakeEvent I think,
into a void. And this void is calling a class that contains the
model.
L284[10:14:33]
⇨ Joins: Artsicle (webchat@207.174.251.15)
L285[10:16:05]
⇨ Joins: cpup (~cpup@32.218.116.202)
L286[10:16:06]
⇨ Joins: Davnit
(~Davnit@72-189-115-20.res.bhn.net)
L287[10:16:25] <malte0811> By
"void" you mean something like "public void
onModelBake(ModelBakeEvent e)"? That's usually called a
method. Void is the return type
L288[10:16:44]
⇨ Joins: CoderPuppy (~cpup@32.218.116.202)
L289[10:16:48]
⇨ Joins: Davnit_
(~Davnit@72-189-115-20.res.bhn.net)
L290[10:17:07] <vrackfall> Oh, ok, yup I
mean that
L291[10:17:26] <malte0811> And where is
the problem?
L292[10:17:34] <vrackfall> So as Isaid
this void is calling a class
L293[10:18:09] <vrackfall> Into this class
theres another method, but it's only variable is ENumFacing
L294[10:18:11] <malte0811> You can't
really call a class. Maybe make a gist/pastebin of the code?
L295[10:18:27] ⇦
Quits: Artsicle (webchat@207.174.251.15) (Ping timeout: 180
seconds)
L296[10:18:47] <vrackfall> Oh ok, I said
call, but it's maybe another name for what I want to do
L297[10:19:00] <vrackfall> ** Sending code
on gist **
L298[10:19:00] <ghz|afk> even more
important to show your code
L299[10:19:05] <ghz|afk> you can use gist
or pastebin
L300[10:19:16] ⇦
Quits: Davnit (~Davnit@72-189-115-20.res.bhn.net) (Ping timeout:
186 seconds)
L301[10:20:58] <vrackfall> Oh fuck the
code is on my other computer, wait
L302[10:21:17] <ghz|afk> welp ;p
L303[10:24:15] <busti> How do I make a
tileentity recieve game ticks nowadays?
L304[10:24:29] <malte0811> implement
ITickable
L305[10:26:27] <busti> Thank you. I was
not sure if it was the correct way to do it. I read something on
the Forums about making it tick only once per second or something.
Is there something that gives me that feature? I would like to save
cpu time if possible...
L306[10:27:50] <ghz|afk> no, but you can
use world.getTotalWorldtime() % 20
L307[10:28:04] <ghz|afk> or have an
internal cooldown
L308[10:28:08] <ghz|afk> so like
L309[10:28:26] <vrackfall> So, it's
keyboard buttons are broken and the mouse usb is broken too
L310[10:28:26] <ghz|afk> if(--cooldown
> 0) return; do work; cooldown = 20;
L311[10:28:30] <vrackfall> Crap
L312[10:28:55] <vrackfall> And I couldn,t
use my bluetooth mouse on it
L313[10:29:53] <ghz|afk> you could get the
HDD out of it and plug it to your current computer (unless you are
on a laptop and you don't have a sata-to-usb adapter)
L314[10:29:59] <busti> Thanks for the
suggestion, but that defies the purpose. I want to form a
multiblock and wanted to avoid checking for it being formed 20
times per second. But a null check is probably as efficient as
cheching a variable % 20 == 0
L315[10:30:29] <ghz|afk> busti: are the
other blocks of the multiblock yours also?
L316[10:30:32] <ghz|afk> or are you using
vanilla stuffs?
L317[10:30:36] <vrackfall> Hue I'm on my
laptop for now, and my other computer is a tower
L318[10:30:53] <ghz|afk> vrackfall: I
always keep a sata adapter around for cases like that ;P
L319[10:30:56] <ben_mkiv> remotedesktop
:>
L320[10:31:09] <ben_mkiv> or just use the
keyboard, mouses are overrated
L321[10:31:28] <ghz|afk> [17:32]
(vrackfall): So, it's keyboard buttons are broken [...]
L322[10:31:52] <ben_mkiv> busti if all of
the modblocks are yours you could implement a check on
blockplace/break for your blocks
L323[10:32:03] <ben_mkiv> that way you
only have the check when something is changed
L324[10:32:07] <ghz|afk> ^ yep that's wht
I asked ;p
L325[10:32:11]
⇨ Joins: h404bi (~h404bi@119.129.117.230)
L326[10:32:12] <ghz|afk> if you use
vanilla blocks
L327[10:32:19] ⇦
Quits: killjoy1 (~killjoy@2606:a000:1118:8030:9d52:ce96:d1fb:6c50)
(Read error: Connection reset by peer)
L328[10:32:19] <ghz|afk> a good way is to
have a "hammer" type item
L329[10:32:22] <ghz|afk> that triggers the
assembly
L330[10:32:44] <busti> Yes they are, but
the problem lies more in teading the multiblock across multiple
chunks
L331[10:32:59] <ben_mkiv> if i made a mod,
i would permit that :P
L332[10:33:01] <busti> *reading (from
nbt)
L333[10:33:11] <ghz|afk> my multiblocks
have one single master block
L334[10:33:14] <ghz|afk> that holds the
data
L335[10:33:18] <ghz|afk> and the rest are
just slaves
L336[10:33:25] <ghz|afk> that forward
stuff to the master
L337[10:34:17] <vrackfall> No key works on
the keyboard (it was in the basement because you had to get some
orange juice on it at the time). And my friend has ride with his
car on the USB plug of the mouse
L338[10:34:19] <busti> We plan on doing
that as well, but the problem is that it could potentially stretch
across a LOT of chunks...
L339[10:34:36] <vrackfall> LOOOOOOOLL
don't ask me how this happened
L340[10:34:41] <ghz|afk> so it's not just
a multiblock
L341[10:34:41] <busti> But yeah onTick
works I guess.
L342[10:34:45] <ghz|afk> it's a
megastructure ;P
L343[10:34:54] <busti> It is going to be a
conveyor belt
L344[10:35:00] <ghz|afk> ahh
L345[10:35:40] <ghz|afk> wouldn't it make
more sense to have a "short" limit like 16 or 32 long,
and then have a new conveyor start?
L346[10:35:53] <ghz|afk> IRL they work
like that ;P
L347[10:35:58] <vrackfall> So I'm trying
to plug the laptop on the tower harddrive, should I do that with
USB plug???
L348[10:36:18] <busti> We only store the
Items and their offsets in a shared object and increment the
overall offset every tick to be efficient
L349[10:36:30] <busti> That might be an
idea ?
L350[10:36:48] <ghz|afk> vrackfall:
what?
L351[10:37:02] <ben_mkiv> srsly for the
sake of servers dont allow such large structures
L352[10:37:08] <busti> Thank you
ghz|afk
L353[10:37:16] <ben_mkiv> they tend to
break on servers, as chunks run with different tick speeds or not
at all
L354[10:37:29] <vrackfall> Should I use
Usb to connect m laptop to the computer harddrive?
L355[10:37:38] <busti> ben_mkiv: The plan
is to only tick the master block anyways
L358[10:38:09] <ben_mkiv> you dont want to
render stuff on the belts?
L359[10:38:52] <vrackfall> OK ok I don't
have that I think, maybe in the basement
L360[10:39:07] <ghz|afk> if you haven't
bought one, you probably don't
L361[10:39:14] <ghz|afk> they don't give
those for free ;P
L362[10:39:21] <vrackfall> I'm goging to
fing that
L363[10:39:48] <vrackfall> Yup but maybe
with my backup hard drive
L364[10:39:50] <ben_mkiv> i have a bay for
sataharddisks :>
L367[10:40:28] <ghz|afk> but it sucked
badly
L368[10:40:37] <ben_mkiv> and some thing
like ghz linked for the 2,5" ones
L369[10:40:50] <ghz|afk> so the last one I
got
L370[10:40:53]
⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L371[10:40:56] <ghz|afk> is UASP
L372[10:41:09] <ghz|afk> (USB-attached
SCSI)
L373[10:42:02] <ben_mkiv> so i'm not the
only one who suffered from this crappy sata <=> usb
interfaces
L374[10:42:16] <ghz|afk> yeah
L375[10:42:19] <ben_mkiv> havent even used
it 5 times before it broke
L376[10:42:38] <Lord_Ralex> i have one of
those things as well, i rarely use it though, it did clone drives
fine
L377[10:42:41] <ghz|afk> there was a lot
of cheap crap devices
L378[10:42:42] <ben_mkiv> probably wasnt
hotswap safe, even tho they adverted it
L379[10:42:43] <ghz|afk> probably still
are
L380[10:42:49] <ghz|afk> but now you can
find generic UASP ones
L381[10:42:51] <ghz|afk> that work quite
well
L382[10:43:04] <ghz|afk> since UASP
removes the responsibility from the device
L383[10:43:22] <ghz|afk> all it does is
extract scsi commands from the usb packets
L384[10:43:29] <ghz|afk> and pack scsi
replies back into usb packets
L385[10:43:43] <ben_mkiv> i went for some
esata thing, so no more usb for me :X
L386[10:43:51] <ghz|afk> I tried
esata
L387[10:44:03] <ghz|afk> but esata without
an external power adapter doesn't really work
L389[10:44:20] <ghz|afk> and me current
case doesn't even have eSATA anymore
L390[10:44:21] <ben_mkiv> this and some
selfmade adapter from internal 5V to external connector
L391[10:44:25] <ghz|afk> USB3.0 has
displaced it
L392[10:48:46] <vrackfall> OH feew,
yesterday I send my code on discord to friend but it was in the
wrong discussion
L393[10:49:03] <vrackfall> So I don't need
anymore to acess my other computer
L394[10:49:14] <ghz|afk> heh
L395[10:49:19] <ghz|afk> it is a good time
to suggest
L396[10:49:24] <ghz|afk> you should get a
github repository
L397[10:49:28] <ghz|afk> and upload
it
L398[10:49:32] <ghz|afk> or if you don't
want the code public
L399[10:49:38] <ghz|afk> a bitbucket
private repository
L400[10:50:25] <vrackfall> Ok,
thanks
L401[10:50:54]
⇨ Joins: cpup- (~cpup@32.218.117.23)
L402[10:51:15]
⇨ Joins: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L403[10:51:46] ⇦
Quits: cpup (~cpup@32.218.116.202) (Ping timeout: 198
seconds)
L404[10:53:33] ⇦
Quits: CoderPuppy (~cpup@32.218.116.202) (Ping timeout: 198
seconds)
L405[10:54:18]
⇨ Joins: cpup (~cpup@32.218.117.23)
L406[10:57:42] <vrackfall> @ghz THe code,
please don't take it for your own
L408[10:58:04] <ghz|afk> don't worry
L409[10:58:09] <ben_mkiv> xD
L410[10:58:53] <vrackfall> Do you see what
is it's goal?
L411[10:59:09] <ghz|afk> can't say I
do
L412[10:59:12] <ghz|afk> can you try to
explain?
L413[10:59:16] <ghz|afk> although I will
have to leave soon
L414[10:59:24] <ghz|afk> so maybe someone
else will have to help you instead
L415[11:00:26] <vrackfall> Ok, so I'm
remaking completly the noCUbes mod to MC 1.11.2, without using ASM,
and with using a stric minimum of code from the guy that created
NoCubes
L416[11:01:05] <ben_mkiv> what is
nocubes?
L417[11:01:29] <vrackfall> ben_mkiv Google
is your friend
L418[11:02:44] <vrackfall> And now into
the getQuads method, the problem is I need to access the World,
BlockPos and another thing that I don't remember but I only have
access to the EnumFacing class, any idea?
L419[11:03:28] <malte0811> Do you know
about extended block states?
L420[11:03:41] <vrackfall> Hue no
L421[11:04:15] <malte0811> But you know
normal block states?
L422[11:04:23] <vrackfall> Yup
L423[11:04:35] <malte0811> Extended ones
are only for rendering
L424[11:04:49] <malte0811> but don't need
a finite list of possible states
L425[11:05:15] <malte0811>
IUnlistedProperty is one of the relevant classes here
L426[11:05:27] <vrackfall> Also, the thing
is I can't use EnumFacing to acess the BlockPos because it must be
the global pos of the block
L427[11:05:53] <malte0811> I know
L428[11:06:51] <malte0811> The IE wires
are an example of extended states and custom models, but they may
not be the easiest to understand since they are completely
undocumented
L429[11:07:28] <vrackfall> Ok, so should I
use something else?
L430[11:08:42] <malte0811> Actually, I see
you already have a custom model, so it should be fine, mostly. I'll
send you the relevant lines in a minute
L431[11:09:27] <vrackfall> Ok
L432[11:09:33] <ghz|afk> vrackfall: I
don't have time to go into detail, but I don't believe you will be
ableto use the model bake event for this
L433[11:09:35] <ben_mkiv> actually IE is
opensource, so it could be worse :>
L435[11:09:44] <ghz|afk> since the shape
of the block depends on the position in the world
L436[11:09:59] <ghz|afk> in fact, I'm not
sure you can even do it at all without injecting code into the
rendering system
L437[11:11:23] <malte0811>
getExtendedState gets both pos and world as a parameter, so it
should be possible IMO
L438[11:11:47] <ghz|afk> for his own
block, yes
L439[11:11:52] <vrackfall> Ok thanks, I'm
wathing what you made
L440[11:11:57] <ghz|afk> but if he wants
to edit the model for vanilla materials...
L441[11:12:30] <malte0811> Couldn't he
override the whole block?
L442[11:13:27] <vrackfall> The models
would be overridden for vanilla and mods blocks
L443[11:14:30] <ghz|afk> malte0811: I
suppose
L444[11:14:36] <ben_mkiv> wouldnt it be
enough to override the rendering method?
L445[11:14:54] <malte0811> You'll probably
need to inject code if you want to support modded blocks
L446[11:16:08] <vrackfall> I don't know,
go look at the ClientProxy to see how it's work, and you will see
that it's working for maybe every blocks of the game
L447[11:21:44] <malte0811> The problem is
that you need getExtendedState in the block class to pass the model
coords or anything like that
L448[11:22:45]
⇨ Joins: p455w0rd
(p455w0rd@c-98-220-249-33.hsd1.in.comcast.net)
L449[11:23:44] <vrackfall> Ok, maybe I
should make a team to finsih the mod, do you want to be his second
member?
L450[11:29:12] <malte0811> I don't have
enough time for my ideas as it is... So unfortunately no
L451[11:31:08] <vrackfall> Ok, for now I'm
reinstalling my forge workspace on my laptop, but after I'll be
trying to fix my code
L452[11:31:55] ⇦
Quits: psxlover (psxlover@athedsl-384709.home.otenet.gr) (Ping
timeout: 200 seconds)
L453[11:34:02]
⇨ Joins: McJty
(~jorrit@ptr-9197ufpe6rr1vo74j40.18120a2.ip6.access.telenet.be)
L454[11:36:19]
⇨ Joins: m5w
(~matthew@lawn-128-61-10-55.lawn.gatech.edu)
L455[11:38:51] <m5w> Hello. Is it possible
to subscribe more than one mod to the same event bus? I'd like to
deny all decoration events for tall grass but allow all others to
be handled normally (perhaps by another mod, such as Realistic
Terrain Generation).
L456[11:39:12]
⇨ Joins: psxlover
(psxlover@athedsl-384709.home.otenet.gr)
L457[11:40:04] <m5w> I'll use exceptions
for an analogy: can you "catch" an event and
re-"throw" it to the bus?
L458[11:40:20] ⇦
Quits: psxlover (psxlover@athedsl-384709.home.otenet.gr) (Read
error: Connection reset by peer)
L459[11:40:44] <barteks2x> if you don't
cancel the event, all mods that subsctibe to it will get the
event
L460[11:41:23] ***
PaleoCrafter is now known as PaleOff
L461[11:41:29] <m5w> ok, great.
L462[11:44:56]
⇨ Joins: psxlover
(psxlover@athedsl-384709.home.otenet.gr)
L463[11:46:46] ⇦
Quits: h5h77 (~h5h77@2a02:8108:4b40:907:922b:34ff:feae:b38b) (Quit:
Leaving)
L464[11:47:22] ⇦
Quits: sinkillerj (~sinkiller@nc-67-232-11-148.dhcp.embarqhsd.net)
(Ping timeout: 186 seconds)
L465[11:48:33] ⇦
Quits: Raycoms (~Raycoms@2804:14d:baa0:8d78:3690:fea5:eb51:dcd1)
(Remote host closed the connection)
L466[11:56:43] ⇦
Quits: m5w (~matthew@lawn-128-61-10-55.lawn.gatech.edu) (Quit:
WeeChat 1.4)
L467[11:57:40]
⇨ Joins: m5w
(~matthew@lawn-128-61-10-55.lawn.gatech.edu)
L468[12:01:37]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-11-148.dhcp.embarqhsd.net)
L469[12:01:49] ⇦
Quits: sinkillerj (~sinkiller@nc-67-232-11-148.dhcp.embarqhsd.net)
(Remote host closed the connection)
L470[12:04:46] ⇦
Quits: m5w (~matthew@lawn-128-61-10-55.lawn.gatech.edu) (Quit:
WeeChat 1.4)
L471[12:04:55]
⇨ Joins: Hgrebnednav
(~Hgrebnedn@d8d872a6e.access.telenet.be)
L472[12:05:12] ⇦
Quits: vrackfall
(~chatzilla@cable-192.222.193.235.electronicbox.net) (Ping timeout:
198 seconds)
L473[12:06:02]
⇨ Joins: m5w
(~matthew@2600:1005:b052:3194:444:2d15:2ed0:906)
L474[12:09:22] ⇦
Quits: m5w (~matthew@2600:1005:b052:3194:444:2d15:2ed0:906) (Client
Quit)
L475[12:09:33] ⇦
Quits: h404bi (~h404bi@119.129.117.230) (Read error: Connection
reset by peer)
L476[12:10:45]
⇨ Joins: m5w
(~matthew@lawn-128-61-10-55.lawn.gatech.edu)
L477[12:12:21]
⇨ Joins: h404bi (~h404bi@119.129.117.230)
L478[12:15:09]
⇨ Joins: Hgreb
(~Hgrebnedn@d8D872A6E.access.telenet.be)
L479[12:19:08]
⇨ Joins: Neal (~Neal@47.146.41.184)
L480[12:28:58] ⇦
Quits: m5w (~matthew@lawn-128-61-10-55.lawn.gatech.edu) (Quit:
WeeChat 1.4)
L481[12:35:12] ⇦
Quits: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Quit:
Javaschreiber)
L482[12:37:15] ⇦
Quits: h404bi (~h404bi@119.129.117.230) (Ping timeout: 186
seconds)
L483[12:50:02] ⇦
Parts: malte0811 (~malte@185.134.128.197) ())
L484[13:05:26]
⇨ Joins: Raycoms (~Raycoms@200.135.87.95)
L485[13:06:11] <Raycoms> Hey, does:
world.isAreaLoaded(pos, 10) guarantee that any position around the
radius of 10 is loaded even it might be in another chunk than
"pos" ?
L486[13:07:22] <McJty> In case of doubt
look at the source :-)
L487[13:09:18] <McJty> And the source says
yes
L488[13:14:55]
⇨ Joins: KGS
(~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L489[13:16:12] <Raycoms> Thanks
L490[13:17:53] ⇦
Quits: Hgreb (~Hgrebnedn@d8D872A6E.access.telenet.be) (Quit:
Leaving)
L491[13:19:50]
⇨ Joins: TomyLobo
(~TomyLobo@2a02:8109:87c0:20c:e478:f3df:741b:efd4)
L492[13:21:12] <barteks2x> that's kind of
the whole point of isAreaLoaded... it checks if an area in blocks
around a point is loaded
L493[13:21:31] <barteks2x> specifically,
all chunks that intersect the area
L494[13:21:36] <Raycoms> Yeah I was
discussing with someone that, but got told it doesn't do that, so I
wanted to get a third opinion
L495[13:21:51] ⇦
Quits: McJty
(~jorrit@ptr-9197ufpe6rr1vo74j40.18120a2.ip6.access.telenet.be)
(Quit: Leaving)
L496[13:28:55] <barteks2x> I want to write
a unit test for light propagator... and I'm trying to figure out a
way to test unspreading light
L497[13:29:09] <barteks2x> there is no way
I'm manually setting a spread light pattern
L498[13:30:07] <barteks2x> any idea how it
could be done?
L499[13:34:22] <ajb> why is manually
setting it a problem?
L500[13:34:32] <barteks2x> because there
is a lot of it to set
L501[13:35:13] <barteks2x> somewhere
between 30000 and 65000 in common cases
L502[13:35:24] <ajb> use a loop?
L503[13:35:56] <barteks2x> it's a diagonal
cube shape, the shape you get when you place a torch
L504[13:36:10] <ajb> octohedron?
L505[13:36:15] <barteks2x> yes
L506[13:36:33] <barteks2x> making a loop
to create it is near equivalent to writing the code that I'm trying
to test
L507[13:37:09] <ajb> you're trying to test
your own code?
L508[13:37:12] <barteks2x> yes
L509[13:37:21] <ajb> if so, break it down
into smaller units and test each one individually
L510[13:37:58] <barteks2x> It's already
the smallest testable thing. It's the thing that spreads out light
when you place a torch, and unspreads it when you remove
atorch
L511[13:38:08] <barteks2x> that's what I'm
trying to test. I'm rewriting this part of vanilla
L512[13:38:57] <barteks2x> and I already
have tests for almost everything
L513[13:39:07] <barteks2x> except of
removing light source
L514[13:39:25] <ajb> removing light source
should be easy to test
L515[13:39:43] <barteks2x> it's not
because you need to start with light values you getwhen you place a
torch
L516[13:39:43] <ajb> just have a world
with only one light source and remove it. if there's any light
anywhere, you have a bug...
L517[13:39:58] <barteks2x> you need to
crerate the light source and spread the light first
L518[13:40:12] <barteks2x> and to spread
the light I use exactly the same code that I'm trying to test
L519[13:40:15] <ajb> that's a separate
test
L520[13:40:25] <ajb> if that one passes
you don't need to test it again, just run it and assume it
works
L521[13:40:46] <barteks2x> I know how to
test it, but I have no way to first get a world with only one light
source that already has the light spread out
L522[13:41:03] <barteks2x> uh... but then
I can't test unspreading idependently
L523[13:41:22] <barteks2x> so if spreading
fails, I can't test unspreading
L524[13:41:42] <ajb> true enough, but if
spreading fails then fix it first
L525[13:41:53] <ajb> then you can test
unspreading...
L527[13:42:50] <ajb> that's a big
function
L528[13:43:09] <barteks2x> have you seen
World.checkLightFor?
L529[13:43:15] <barteks2x> it does the
same thing, just more broken
L530[13:43:44] <Ordinastie> does it have
to be that complicated ?
L531[13:44:04] <barteks2x> I tried to make
it simpler
L532[13:44:09] <barteks2x> I already
simplified it
L533[13:44:22] <barteks2x> it's already
simpler than vanilla one
L534[13:45:12] <ajb> hmm let me see if i
understand
L535[13:45:55] <ajb> there's two steps in
here
L536[13:46:08] <barteks2x> but good luck
separating them into function
L537[13:46:11] <ajb> one seems to decrease
the light
L538[13:46:38] <barteks2x> following light
spreading backwards to clear light
L539[13:46:52] <barteks2x> well, forwards,
but setting light to 0
L540[13:47:16] <ajb> the other one lights
it all again?
L541[13:48:01] <ajb> what state is kept
between the two?
L542[13:48:32] <barteks2x> when you remove
a torch the first one removed the light values
L543[13:48:46] <barteks2x> the second part
continues from the edges spreading light from other torches into
that area
L545[13:49:06] <barteks2x> the queue is
iterated over again, that's what resetIndex does
L546[13:49:24] <ajb> what does the first
one do when you add a torch?
L547[13:49:30] <barteks2x> nothing
L548[13:49:43] <ajb> why? (how does it
know to do nothing?)
L549[13:50:05] <barteks2x> because the
light source strength increased
L550[13:50:14] <barteks2x> and the first
part checks if it decreased
L551[13:50:30] <barteks2x> if
(blocks.getLightFor(type, pos) > emitted) {
L552[13:50:48] <ajb> hmm okay let me
recheck my assumptions
L553[13:51:12] <ajb> if the light source
is brighter than before, you simply add the extra light?
L554[13:51:19] <barteks2x> yes
L555[13:51:24] <ajb> if it's darker, you
have to clear all the light and recalculate it from all
sources?
L556[13:51:38] <barteks2x> just clear all
the light previously spread from that source
L557[13:51:56] <barteks2x> that's also
what vanilla does in world.checkLightFor but good luck
understanding THAT
L558[13:52:18] <ajb> what does it mean to
"clear" the light
L559[13:52:25] <ajb> i mean, there's a
light max brightness
L560[13:53:15] <barteks2x> first, there
are 2 kinds of light values: raw emitted light and stored light. It
just setsthe stored light to 0 and lets the next loop propagate it
back
L561[13:54:31] <barteks2x> anyway, what I
wanted is a way to test the part that clears the light. That after
removing already existing light source there is complete
darkness
L562[13:54:54] <barteks2x> I will probably
manually create "world" with light source with value 3
already spread out
L563[13:56:46] <ajb> all you can really do
is make a world, light it, and then visually check it is okay
L564[13:57:05] <ajb> once you've done
that, save the world lit and unlit, and then compare it with your
code output
L565[13:58:48] <barteks2x> It's in unit
tests. I specifically don't use vanilla World class here
L566[13:58:57] <barteks2x> so I can create
dummy implementations of things
L567[13:59:14] <ajb> that's fine
L568[13:59:48] <ajb> once you've confirmed
manually that the code works once, you can just check that the
output has not changed
L569[14:01:19] <barteks2x> I'm far from
getting it working ingame
L570[14:01:26] <barteks2x> and this code
actually is never used for blocklight
L571[14:01:35] <barteks2x> it's used for
skylight which is a whole new level of mess
L572[14:01:59] <barteks2x> that I'm in the
middle of rewriting for the fourth or so time
L573[14:02:06] <ajb> well, i don't know
how you can write a unit test if you can't manually confirm the
code works...
L575[14:03:40] <barteks2x> hamcrest
matcher for checking lighting consistency
L576[14:04:35]
⇨ Joins: vrackfall
(~chatzilla@cable-192.222.193.235.electronicbox.net)
L577[14:05:18] <barteks2x> Unit tests are
mostly sanity checks, if they succeed, I will then test ingame to
see if i missed anything
L578[14:06:06] <ajb> there's a school of
thought that says unit tests should test for specific corner cases
only
L579[14:06:58] <barteks2x> there is also a
thing called TDD that says you should write unit tests before
writing any other code
L580[14:07:10] <ajb> but in this case, you
can't
L581[14:07:35] <ajb> because the output is
too complex to analyze in isolation
L582[14:07:44] <barteks2x> I can't really
find one single right way to use unit tests, so I use them the way
that I find useful
L583[14:08:04] <barteks2x> and MC lighting
isn't too complex to analyze in isolation
L584[14:08:19] <ajb> in TDD, arent you
supposed to write the tests before the code itself?
L585[14:08:19] <Ordinastie> TDD is good on
paper but in practice, it's not really viable imo
L586[14:08:35] <barteks2x> And I'm not
saying I';m even trying to
L587[14:09:08] <barteks2x> Also, all my
unit tests do test for some specific case, but due to how the
internals work a single error causes many tests to fail
L588[14:09:30] <ajb> i would do it like
this: write the code, don't write any tests. if i see a lighting
glitch, write a test that reproduces it, and then fix it, but keep
the test
L589[14:09:36] <barteks2x> and next test
after this one will be for FirstLightProcessor, the thing that
updates lighting after generating a new 16x16x16 section
L590[14:10:35] ⇦
Quits: Neal (~Neal@47.146.41.184) (Ping timeout: 198
seconds)
L591[14:11:15] <ajb> you can also break
down what you're testing for. like, instead of testing that the
whole of the output is exactly correct or not, you can do stuff
like "i placed a torch in this chunk, it should affect the
light values in the neighbour chunk, so if the light values there
did not change at all, then fail"
L592[14:11:29] <barteks2x> the problem
with your approach is that real-world situations are usually so
insanely complex that isolating them to reproducible small tests
cses is near damn impossible
L593[14:11:43] <ajb> you say that but i
see light glitches all the time
L594[14:12:08] <ajb> mainly of the type i
just refered to above :)
L595[14:12:09] <barteks2x> in my mod or in
vanilla?
L596[14:12:14] <ajb> in vanilla
L597[14:13:20] <barteks2x> I also have a
very strict rules for behavior when interacting with other light
source, that vanilla doesn't have
L598[14:13:24] <barteks2x> this needs unit
tests
L599[14:13:32] <barteks2x> there is no
real way to test it ingame
L600[14:13:44] <ajb> what's the point of
it then?
L601[14:13:55] <ajb> if player can't tell
whether it works or not?
L602[14:14:14] <barteks2x> it's possible
to notice only when some blocks aren't updated yet
L603[14:14:24] <barteks2x> my version
doesn't have any of the vanilla self-correcting behavior
L604[14:14:41] <ajb> well, could you take
a brute force approach for the unit tests?
L605[14:14:52] <ajb> force every single
block to update
L606[14:14:52] <barteks2x> which is?
L607[14:15:04] <ajb> then compare result
to the actual algorithm
L608[14:15:16] <ajb> it would be slow, but
you don't use unit tests while playing, so that does not
matter
L609[14:15:38] <ajb> brute force approach
may be simpler to code then, and more likely to be correct
L612[14:27:28]
⇨ Joins: Subaraki
(~Subaraki@239.ip-158-69-59.net)
L613[14:27:35]
⇨ Joins: Raqbit (~Raqbit@239.ip-158-69-59.net)
L615[14:29:58] ⇦
Quits: Nedelosk
(~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de) (Ping
timeout: 200 seconds)
L616[14:34:53]
⇨ Joins: RichardG (~richardg8@201.37.252.36)
L617[14:34:54]
MineBot sets mode: +v on RichardG
L618[14:35:39] ⇦
Quits: vrackfall
(~chatzilla@cable-192.222.193.235.electronicbox.net) (Ping timeout:
198 seconds)
L619[14:45:45] ⇦
Quits: psxlover (psxlover@athedsl-384709.home.otenet.gr) (Read
error: Connection reset by peer)
L620[14:49:07]
⇨ Joins: psxlover
(psxlover@athedsl-384709.home.otenet.gr)
L621[15:18:04] ⇦
Quits: Raycoms (~Raycoms@200.135.87.95) (Quit:
Leaving)
L622[15:22:44]
⇨ Joins: PolarizedIons
(~Polarized@239.ip-158-69-59.net)
L623[15:35:40]
⇨ Joins: h404bi (~h404bi@119.129.117.230)
L624[15:42:08] ⇦
Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping
timeout: 204 seconds)
L625[15:43:43] ⇦
Quits: TomyLobo (~TomyLobo@2a02:8109:87c0:20c:e478:f3df:741b:efd4)
(Ping timeout: 198 seconds)
L626[15:43:43] ⇦
Quits: SubThread (~SubThread@185-157-160-44.pool.ovpn.com) (Quit:
Leaving)
L627[15:43:46]
⇨ Joins: MonkeyTyrant
(~MonkeyTyr@173.212.73.164)
L628[15:48:00] ⇦
Quits: MonkeyTyrant (~MonkeyTyr@173.212.73.164) (Client
Quit)
L629[15:53:43]
⇨ Joins: armctec (~Thunderbi@186.204.253.165)
L630[15:56:15] ⇦
Quits: Hgrebnednav (~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping
timeout: 198 seconds)
L631[15:56:16] ⇦
Quits: h404bi (~h404bi@119.129.117.230) (Ping timeout: 186
seconds)
L632[15:57:49] ⇦
Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read error:
Connection reset by peer)
L633[16:18:45]
⇨ Joins: founderio
(~founderio@200116b828844f00e511fe275884c3b6.dip.versatel-1u1.de)
L634[16:34:36] ⇦
Quits: Hunterz (~hunterz@62.182.234.189) (Quit:
Leaving.)
L635[16:39:33]
⇨ Joins: shambling
(~proto@97-89-242-134.static.plbg.ny.charter.com)
L636[16:39:49] <shambling> today is the
day of the weird random crashes from mod updates
L637[16:39:49] <shambling> lol
L638[16:42:38] <shambling> looks like a
foamfix incompat with something
L639[16:42:48] <shambling> lets update
that too shal lwe :P
L640[16:43:30] ⇦
Quits: foxy (~gravityfo@96-40-172-22.dhcp.mtpk.ca.charter.com)
(Ping timeout: 186 seconds)
L641[16:44:47] ***
Santa|afk is now known as SatanicSanta
L642[16:45:57]
⇨ Joins: foxy
(~gravityfo@96-40-172-22.dhcp.mtpk.ca.charter.com)
L643[16:46:46] <shambling> guess its the
compression mod, oh well
L644[16:48:14] ⇦
Quits: shambling (~proto@97-89-242-134.static.plbg.ny.charter.com)
(Quit: Leaving)
L645[16:57:18] ⇦
Quits: founderio
(~founderio@200116b828844f00e511fe275884c3b6.dip.versatel-1u1.de)
(Quit: Leaving.)
L646[17:03:24] ***
diesieben|away is now known as diesieben07
L647[17:06:34] <diesieben07> did
forgegradle break again? I am getting a hunk target failures with
setupDecompWorkspace
L648[17:17:15] <diesieben07> maybe I
should check github first, next time.
L649[17:31:30] <busti> Is there a class
commonly used throughout Minecraft / Forge for storing positions in
3D Space?
L650[17:31:46] <ghz|afk> BlockPos for
world grid coordinates
L651[17:32:02] <ghz|afk> Vec3d for flating
point positions
L652[17:33:09] <busti> Ah, that was its
name. Why did I even forget in the first place. Thanks gigaherz
:]
L653[17:34:25] <ghz|afk> floating*
L654[17:37:09] <ajb> hi ghz|afk
L655[17:38:20] <ajb> i did some more
investigation on optifine and found that it can't use the
"default" values of properties that are filled by
getActualState
L656[17:38:49] <ajb> even though they
exist in getBlockState with wrong values, it can't even see those
wrong values
L657[17:39:11] <ajb> so i conclude it
either doesn't use getBlockState, or there is some way it can tell
that those values have not been filled in yet
L658[17:41:44] <ghz|afk> that would make
no sense
L659[17:41:50] <ajb> why?
L660[17:41:50] <ghz|afk> unless it
compares them with .getDefaultState()
L661[17:41:59] <ghz|afk> but why go out of
the way to do that?
L662[17:42:06] <ghz|afk> it would seem
counter-productive
L663[17:42:23] <ajb> i dont know, but
these are the results that i have observed
L664[17:42:31] <ghz|afk> sure
L665[17:42:38] <ghz|afk> just pointing out
that it's confusing ;p
L666[17:42:49] <ajb> haha, yes, it
is
L667[17:44:13] <ajb> i can imagine it
doing something like 1. create a new default block state for the
block. 2. fill in the value it's looking for, 3 getMetaFromState,
4. remember the meta value and compare that directly to the
arrays
L668[17:44:52] <ajb> thus short circuiting
all the layers of abstraction
L669[17:46:42] <ajb> so block states are
immutable so step 1 and 2 are really 1 step
L670[17:48:46] <ajb> what does
getExtendedState do?
L671[17:49:16] <diesieben07> it's like
getActualState, but can return an extended blockstate and is
completely client-only
L672[17:49:34] <ajb> what is an extended
block state?
L673[17:49:35] <diesieben07> an extended
blockstate can have unlisted properties, which means they can have
any object as their value
L674[17:49:48] <LexMobile> !gf
field_175242_a
L675[17:50:00] <diesieben07> you can use
this to pass arbitrary objects to custom model
implementations
L676[17:50:22] <diesieben07> keep in mind
however that the model rendering happens on another thread, so the
object you use should be immutable or immutable-like
L677[17:50:49] <ajb> this sounds like it
is not at all related to what i'm doing
L678[17:51:06] <diesieben07> not sure what
you are doing, so idk :D
L679[17:51:25] <ajb> trying to figure out
how optifine's block matching code works
L680[17:51:33] <ajb> without being able to
actually see it
L681[17:51:56] <ghz|afk> apparently
there's some issue with the way optifine computes the blockstate
properties in order to choose which "id" it passes to the
shaders
L682[17:52:05] <ghz|afk> they don't always
match what's expected
L683[17:52:25] <ajb> it isn't just used
for shaders btw
L684[17:52:33] <ajb> it's used in other
places too
L685[17:52:48] <ajb> it's a generic
"block matching" algorithm
L686[17:52:48] <ghz|afk> ah
L687[17:52:55] <ajb> used in several
config files
L688[17:53:21] <ajb> the "remap these
block IDs for shaders" config file is just one :)
L689[17:54:40] <ghz|afk> if itw aqs me
doing the block matching
L690[17:54:47] <ghz|afk> I'd have a block
predicate builder
L691[17:55:00] <ghz|afk> composited from
property predicates
L692[17:55:01] <ghz|afk> like
L693[17:55:17] <ghz|afk> if you say match
"stone{variant=andesite}"
L694[17:55:47] <ghz|afk> it would create a
predicate that matches "block == stone &&
state.getValue(variant) == andesite"
L695[17:56:03] <ghz|afk> and then run that
at runtime as needed
L696[17:56:08] <ghz|afk> (maybe with some
kind of cache)
L697[17:56:23] <ghz|afk> if it was me
doing the block matching **
L698[17:57:46] <ajb> that's exactly what
it has
L699[17:58:06] <ajb> but it has limits
that aren't clearly defined
L700[17:58:28] <ajb> so i am trying to
understand exactly what they are by a process of elimination
L701[17:59:17] <ajb> the syntax for that
example would be stone:variant=andesite
L702[17:59:37] <ajb> and that example
would work correctly
L703[18:00:13] <ghz|afk> heh
L704[18:00:26] <ajb> furnace:facing=east
also works correctly
L705[18:00:29] <ghz|afk> I went for the
syntax that vanilla minecraft uses for commandblocks
L706[18:00:56] <ajb> but
ic2:te:facing=down does not, even though when you call
getBlockState on the block, you get facing=down
L707[18:01:18] <ghz|afk> hmmm
L708[18:01:22] <ghz|afk>
"ic2:te"
L709[18:01:28] <ajb> when you call
getActualState you'll get, for example facing=east instead, and
that also does not work
L710[18:01:29] <ghz|afk> maybe it's the
extra ":" that confuses it? ;P
L711[18:01:32] <ajb> no, it isn't
L712[18:01:43] <ajb> you can also say
minecraft:furnace:facing=east and it will work
L713[18:02:07] <ghz|afk> nevermind then
;p
L714[18:02:12] <ghz|afk> but yeah it's
getting late
L715[18:02:14] <ghz|afk> gotta sleep
L716[18:02:15] <ghz|afk> night!
L717[18:02:18] *
ghz|afk poofs
L718[18:02:19] <ajb> night :)
L719[18:03:00] ***
diesieben07 is now known as diesieben|away
L720[18:04:26]
⇨ Joins: gravityfox
(~gravityfo@96-40-172-22.dhcp.mtpk.ca.charter.com)
L721[18:08:43] ⇦
Quits: foxy (~gravityfo@96-40-172-22.dhcp.mtpk.ca.charter.com)
(Ping timeout: 383 seconds)
L722[18:10:20] ⇦
Quits: cpup (~cpup@32.218.117.23) (Ping timeout: 200
seconds)
L723[18:10:28]
⇨ Joins: cpup (~cpup@32.218.119.170)
L724[18:11:11] ⇦
Quits: cpup- (~cpup@32.218.117.23) (Ping timeout: 198
seconds)
L725[18:15:54]
⇨ Joins: CoderPuppy (~cpup@32.218.119.170)
L726[18:17:46]
⇨ Joins: foxy
(~gravityfo@96-40-172-22.dhcp.mtpk.ca.charter.com)
L727[18:19:01] ⇦
Quits: gravityfox
(~gravityfo@96-40-172-22.dhcp.mtpk.ca.charter.com) (Ping timeout:
186 seconds)
L728[18:21:57]
⇨ Joins: Akai
(sid40324@id-40324.charlton.irccloud.com)
L729[18:23:43] ⇦
Quits: ben_mkiv (~ben_mkiv@p4FED5FBD.dip0.t-ipconnect.de) (Ping
timeout: 198 seconds)
L730[18:27:31] ⇦
Quits: CoderPuppy (~cpup@32.218.119.170) (Ping timeout: 186
seconds)
L731[18:27:31] ⇦
Quits: cpup (~cpup@32.218.119.170) (Ping timeout: 186
seconds)
L732[18:31:48] ***
SatanicSanta is now known as Santa|afk
L733[18:33:30]
⇨ Joins: cpup (~cpup@32.218.119.208)
L734[18:34:04]
⇨ Joins: CoderPuppy (~cpup@32.218.119.208)
L735[18:34:48] ⇦
Quits: Subaraki (~Subaraki@239.ip-158-69-59.net) (Ping timeout: 204
seconds)
L736[18:34:56] ⇦
Quits: PolarizedIons (~Polarized@239.ip-158-69-59.net) (Ping
timeout: 186 seconds)
L737[18:35:26] ⇦
Quits: Raqbit (~Raqbit@239.ip-158-69-59.net) (Ping timeout: 204
seconds)
L738[18:37:24]
⇨ Joins: PolarizedIons
(~Polarized@239.ip-158-69-59.net)
L739[18:38:12]
⇨ Joins: Subaraki
(~Subaraki@239.ip-158-69-59.net)
L740[18:38:23]
⇨ Joins: Raqbit (~Raqbit@239.ip-158-69-59.net)
L741[18:46:06] ⇦
Quits: cpup (~cpup@32.218.119.208) (Ping timeout: 200
seconds)
L742[18:46:27] ⇦
Quits: CoderPuppy (~cpup@32.218.119.208) (Ping timeout: 200
seconds)
L743[18:51:37]
⇨ Joins: cpup (~cpup@32.218.119.251)
L744[18:52:14]
⇨ Joins: CoderPuppy (~cpup@32.218.119.251)
L745[18:55:06] ⇦
Quits: armctec (~Thunderbi@186.204.253.165) (Quit:
armctec)
L746[18:55:12] ***
Santa|afk is now known as SatanicSanta
L747[19:04:39]
⇨ Joins: cpup- (~cpup@32.218.112.51)
L748[19:05:01]
⇨ Joins: m5w
(~matthew@lawn-128-61-12-40.lawn.gatech.edu)
L749[19:05:32] ⇦
Quits: m5w (~matthew@lawn-128-61-12-40.lawn.gatech.edu) (Client
Quit)
L750[19:05:41]
⇨ Joins: m5w
(~matthew@lawn-128-61-12-40.lawn.gatech.edu)
L751[19:06:15] ⇦
Quits: cpup (~cpup@32.218.119.251) (Ping timeout: 186
seconds)
L752[19:06:42] ⇦
Quits: CoderPuppy (~cpup@32.218.119.251) (Ping timeout: 198
seconds)
L753[19:12:13]
⇨ Joins: cpup (~cpup@32.218.112.51)
L754[19:16:48]
⇨ Joins: CoderPuppy (~cpup@32.218.112.72)
L755[19:17:28] ⇦
Quits: cpup (~cpup@32.218.112.51) (Ping timeout: 200
seconds)
L756[19:19:33] ⇦
Quits: cpup- (~cpup@32.218.112.51) (Ping timeout: 204
seconds)
L757[19:23:00]
⇨ Joins: cpup (~cpup@32.218.112.72)
L758[19:31:57]
⇨ Joins: Neal (~Neal@47.146.41.184)
L759[19:32:30] ⇦
Quits: Subaraki (~Subaraki@239.ip-158-69-59.net) (Read error:
Connection reset by peer)
L760[19:32:39] ⇦
Quits: Raqbit (~Raqbit@239.ip-158-69-59.net) (Read error:
Connection reset by peer)
L761[19:33:01] ⇦
Quits: PolarizedIons (~Polarized@239.ip-158-69-59.net) (Read error:
-0x1: UNKNOWN ERROR CODE (0001))
L762[19:40:16]
⇨ Joins: Subaraki
(~Subaraki@239.ip-158-69-59.net)
L763[19:40:26]
⇨ Joins: Raqbit (~Raqbit@239.ip-158-69-59.net)
L764[20:00:18] ⇦
Quits: Brokkoli (~Brokkoli@p5B23CD11.dip0.t-ipconnect.de) (Ping
timeout: 383 seconds)
L765[20:21:36] ⇦
Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout:
186 seconds)
L766[20:22:25] ***
SatanicSanta is now known as Santa|afk
L767[20:24:22] <ajb> i'm trying to port a
mod to 1.12. it add an item and a recipe, so i'm trying to make it
use a json recipe
L768[20:25:15] <ajb> i wrote the json
file, put it in assets/modname/recipes and deleted the old recipe
code from the java source
L769[20:25:24] <ajb> unfortunately it does
not work
L770[20:25:34] <ajb> the item shows up in
game, but the recipe does not work
L771[20:26:19] <ajb> when it tries to
parse my json file it says
"com.google.gson.JsonParseException: Missing data for item
'minecraft:dirt'"
L772[20:26:36] <ajb> (i changed the recipe
to use nothing but dirt just to test)
L773[20:28:50] <ajb> hmmmmmmmmm it works
with "minecraft:gravel"
L774[20:28:55] <ajb> never mind then
L775[20:51:04] ⇦
Quits: Cornelia (~Nel@c-75-71-231-133.hsd1.co.comcast.net) (Ping
timeout: 183 seconds)
L776[20:51:07]
⇨ Joins: blood
(unknown@ool-45734b88.dyn.optonline.net)
L777[20:54:05] ⇦
Quits: Wastl2_ (~Wastl2@x4e34f366.dyn.telefonica.de) (Ping timeout:
204 seconds)
L778[20:55:15] ⇦
Quits: armed_troop
(~armedtroo@pool-71-175-52-228.phlapa.fios.verizon.net) (Ping
timeout: 200 seconds)
L779[20:56:42]
⇨ Joins: Wastl2
(~Wastl2@x4e34e50e.dyn.telefonica.de)
L780[21:06:22]
⇨ Joins: armed_troop
(~armedtroo@pool-71-175-52-228.phlapa.fios.verizon.net)
L781[21:09:48]
⇨ Joins: Cornelia
(~Nel@c-75-71-231-133.hsd1.co.comcast.net)
L782[21:12:34] <Hink> im trying to get a
gui button with a custom texture and it's not rendering
properly
L785[21:14:58] <ajb> so it's supposed to
have some kind of mouseover effect?
L786[21:15:21] <Hink> yes
L787[21:15:28] <Hink> hence the 20 px by
40px texture
L789[21:16:01] <ajb> so it's not cropping
the texture to the expected size?
L790[21:16:13] <ajb> so you get the
mouseover image underneath?
L792[21:17:32]
⇨ Joins: Brokkoli
(~Brokkoli@p2e5b1cd2.dip0.t-ipconnect.de)
L793[21:18:10] <ajb> according to the docs
the args are minU, minV, maxU, maxV
L794[21:18:25] <ajb> so last arg should be
this.height+i
L795[21:19:23] <ajb> it should work
correctly when the mouse is not over it though
L796[21:19:59] <Hink> yeah
L797[21:20:06] <Hink> where am i missing
this argument?
L798[21:20:18] <ajb>
this.drawTexturedModelRect
L799[21:20:46] <Hink>
this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, i,
this.width, this.height + i);
L801[21:21:14] <ajb> i believe so, based
on how the arguments are named, and assuming i am looking at the
correct version
L802[21:21:25] <ajb> of course this will
do nothing when i = 0
L804[21:21:47] <ajb> well it looks the
same
L805[21:21:52] <ajb> but what about when
mouse over?
L806[21:23:00] <Hink> even if i remove the
logic for the hover it still does the same thing with a static
texture
L807[21:23:06] ⇦
Quits: nallar
(~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net) (Quit: ZNC
- http://znc.in)
L808[21:23:38] <ajb> what if you specify
all the arguments manually
L809[21:23:49] <ajb> 0, 0, 20, 20
L810[21:24:15] <ajb> to me it looks like
it is stretching the texture and only rendering the top left
portion of it
L811[21:24:47]
⇨ Joins: nallar
(~nallar@cpc16-cani3-2-0-cust33.14-2.cable.virginm.net)
L813[21:25:43] <Hink> hmm
L814[21:26:57] <Hink> i think its
rendering a massive texture
L815[21:29:01] <ajb> i'm looking at the
built in GuiButtonImage
L816[21:29:51] <ajb> it does not use
drawTexturedModalRect the way i thought it should be used
L817[21:30:18] <ajb> last two arguments
really are the width and height
L818[21:31:17] <Hink> yes
L819[21:31:23] <Hink> hence why it became
tall
L820[21:31:52] <ajb> ah k, you didn't show
that screenshot
L821[21:32:17] <ajb> if you make the
button really big, does it show more of the texture? and is it your
texture?
L822[21:32:37] <ajb> alternatively what
happens if you draw a pink pixel in the top left of your
texture?
L823[21:33:49] <Hink> lets see
L825[21:36:34] <Hink> wtf
L826[21:36:37] <Hink> it's massive
L828[21:36:57] <ajb> can you try just
drawing 1 pixel, so we can see how stretched it is?
L829[21:37:08] <ajb> that might give a
clue who is stretching it
L830[21:37:47] <ajb> i have a feeling the
texture is being stretched to a square
L831[21:38:02] <ajb> so the single pixel
will be rendered twice as wide as it is tall
L832[21:38:13] <ajb> then your texture
coordinates end up wrong somehow
L833[21:38:53] <ajb> it actually looks
like 3:1 in the first screenshot
L834[21:43:20] <Hink> there seems to be
some sort of scaling issue
L836[21:43:33] <Hink> that a one pixel red
square in the top of the texture
L837[21:43:50] <Hink> maybe the texture is
somehow 20x?
L838[21:44:26] <Hink> is there some scale
thing im missing here and accidentally making the button 20 times
its size
L839[21:44:35] <ajb> i think i know what
is happening
L840[21:44:43] <ajb> it's not 20x
L841[21:44:52] <ajb> it's actually 20/250
and 40/250
L842[21:45:18] <ajb> your texture is
20x40, gl texture coordinates are floats between 0 and 1.0
L843[21:45:37] <ajb> so 0,0 to 1.0,1.0
would show the whole texture
L844[21:45:38] <Hink> yeah but im using
the method that is ints
L846[21:46:00] <ajb> yes, but it still has
to convert to floats to send to the GPU
L848[21:46:16] <ajb> so, if you go to the
implementation of that function
L849[21:46:27] <ajb> well, when i do that,
i'm on a different version
L850[21:46:54] <Hink> yeah it casts to
floating points
L851[21:47:00] <ajb> but what it does is
take the integer coorinates and multiplies them by
0.00390625F
L852[21:47:10] <ajb> which = divide by
250.0
L853[21:47:23] <Hink> yes
L854[21:47:26] <Hink> yes it does
L855[21:47:40] <Hink> what a mess
L857[21:47:41] <Hink> lol
L858[21:47:51] <ajb> so 20/250.0 = 0.08,
0.08*20 = 1.6 pixels
L859[21:48:25] <ajb> and for y you get 6.4
pixels
L860[21:48:37] <ajb> which is exactly the
amount of your texture which gets rendered
L861[21:48:46] <ajb> i have no idea how
this is *supposed* to work
L862[21:48:51] <ajb> but that's why you
see what you see :)
L863[21:49:29] <ajb> sorry for y it's
3.2... 40 * (20/250)
L864[21:51:48] <ajb> so... what you'll
need to do is take each integer texture coordinate, multiply by
250, then divide by the corresponding texture size
L865[21:53:46] <ajb> it will work out to
this.drawTexturedModalRect(this.xPosition, this.yPosition, 0,
0.5*i, 1.0, 0.5);
L866[21:54:31] <ajb> hmm sorry, that
should be this.drawTexturedModalRect(this.xPosition,
this.yPosition, 0, 125*i, 250, 125);
L867[21:55:35] <ajb> this whole thing is
crazy, but it's even more crazy that they used 250 and not a power
of two
L868[21:56:35] <ajb> if i try to look into
the code that actually calls this it's still obfuscated
L869[21:58:32] <ajb> basically it looks
like this code will only work in a sensible way if all the textures
are always 250x250
L870[22:02:17] <Hink> you must mean 256
because all the widgets are 256 by 256
L871[22:02:25] <ajb> maybe
L872[22:02:50]
⇨ Joins: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L873[22:02:51] <ajb> haha of course, 1/250
= 0.004 obviously :)
L874[22:03:02] <ajb> 1/256.0 =
0.00390625F
L875[22:03:07] <ajb> so it is a power of
two after all
L876[22:04:05] <Hink> yeah, i was thinking
250 would be weird
L877[22:04:20] <ajb> so that kinda makes
sense
L878[22:05:17] <ajb> it explains why hi
res texture packs work too, if they've followed this
everywhere
L879[22:05:55] <Hink> frickin uv
coordinate and floating points
L880[22:06:12] <ajb> this is why nobody
sensible writes games using raw opengl code
L881[22:06:31] <ajb> a good engine will
hide all this
L882[22:06:34] *
darkstone watches people seemingly run into the crazy rendering
system of Minecraft, and nods solenmly
L883[22:09:45]
⇨ Joins: McJty
(~jorrit@ptr-9197ufp7poavmolkniq.18120a2.ip6.access.telenet.be)
L884[22:10:58] ⇦
Quits: Sangar (~Sangar@2001:41d0:2:b7b9::) (Ping timeout: 204
seconds)
L885[22:10:58] ⇦
Quits: bochen415 (~bochen415@2a03:b0c0:1:a1::25e:e001) (Ping
timeout: 204 seconds)
L886[22:12:17]
⇨ Joins: bochen415
(~bochen415@2a03:b0c0:1:a1::25e:e001)
L887[22:15:13]
⇨ Joins: Sangar (~Sangar@2001:41d0:2:b7b9::)
L888[22:24:44] ⇦
Quits: Lathanael|Away (~Lathanael@p54960BA1.dip0.t-ipconnect.de)
(Ping timeout: 186 seconds)
L889[22:28:49] <darkstone> Is it normal
that 1.10.2's Forge logs something about
launchwrapper-1.12.jar?
L890[22:31:10]
⇨ Joins: Lathanael|Away
(~Lathanael@p54960392.dip0.t-ipconnect.de)
L891[22:34:51] ⇦
Quits: m5w (~matthew@lawn-128-61-12-40.lawn.gatech.edu) (Quit:
WeeChat 1.4)
L892[22:47:37] <LexMobile> yes, different
projects have different version numbers...
L893[22:48:11] <darkstone> so you're
saying this jar is referring to one of the mods I have installed,
not Forge or Minecraft itself.
L894[22:49:49] <LexMobile> No...
L895[22:49:52] <LexMobile> Its a
library
L896[22:50:00] <LexMobile> used by both
Vanilla, and Forge to run.
L897[23:20:20] ⇦
Quits: McJty
(~jorrit@ptr-9197ufp7poavmolkniq.18120a2.ip6.access.telenet.be)
(Quit: Leaving)
L898[23:27:33] <Corosus> ugghh,
AABB.expand become AABB.grow and AABB.addCoord became AABB.expand
and i didnt notice, which is why a lot of my stuff is broken
without me realizing
L899[23:27:57] <Corosus> method signature
the same, i wonder if theres a way to detect these kind of mcp
naming changes and alert you so theres no stealthy breaks
L901[23:30:06] <Corosus> ah neat
L902[23:30:42] <Corosus> yeah i found like
10 cases where im using the wrong one
L903[23:30:54] <mezz> dang
L904[23:30:57] <mezz> yeah that's
nasty
L905[23:31:24] <Corosus> i probably would
have gone insane with mini issues if it didnt break tornado entity
grabbing entirely, a big bug
L906[23:31:48] <mezz> gotta spread the
word about it
L907[23:32:37] <Corosus> o7
L908[23:34:00] <darkstone> Corosus:
tornado?
L909[23:34:07] <darkstone> what mod may
this be? it sounds interesting
L910[23:34:09] <Corosus> the mighty
spinny
L912[23:35:17] <darkstone> nice
L913[23:35:32] <darkstone> Particle-based
rain and snow - wow, how do you handle that? I'd think there'd be a
lot of lag.
L914[23:36:32] <Corosus> built in renderer
is fairly efficient, does decent for a few thousand, i have a WIP
shader based renderer that can do 100k no problem even on my 5 year
old gpu
L915[23:36:41] <darkstone> nice!
L916[23:36:50] <darkstone> I'll look into
that. My mom plays and I think she'd love more advanced
weather
L917[23:37:06] <Corosus> :>
L918[23:37:07] <darkstone> Does the
waterfall sound happen underground too?
L919[23:37:15] <darkstone> I.e. all
down-wards flowing water
L920[23:38:24] <darkstone> Also, was there
a version for 1.10.2? to go with Portal Gun
L921[23:38:34] <darkstone> and Dragon
Mounts also is still 1.10.2 Ithink...
L922[23:38:54] <Corosus> i recal it
does
L923[23:39:08] <Corosus> actually id
better make sure that still works...
L924[23:39:24] <darkstone> hehe
L925[23:39:46] <Corosus> yay it does
L926[23:40:10] <darkstone> hmmm
L927[23:40:21] <darkstone> There are two
1.10.2 jars here, a 'beta' and a release, but their dates are
confusing
L928[23:40:22] <Corosus> and yeah theres a
1.10.2
L929[23:40:28] <darkstone> which should I
get?
L930[23:40:42] <Corosus> hmm
L931[23:40:55] <Corosus> i should have
marked the latest release
L932[23:40:56] <Corosus> doing that
now
L933[23:41:35] <Corosus> bam
L934[23:41:40] *
darkstone F5
L935[23:42:10] <Corosus> if you are
downloading directly from site, get coroutil too
L936[23:42:31] <darkstone> Okay
L937[23:43:02] <darkstone> Does a specific
version of that go with a specific one of these two 1.10.2 jars?
Sorry for all the questions
L938[23:43:19] <darkstone> I usually have
to go through a lot more trouble to get a version I want lol
L939[23:44:42] <darkstone> Like, I'd
assume most recent for 1.10.2 on both except, one is a beta.
L940[23:45:35] <Corosus> latest of both
for 1.10.2 should do fine
L941[23:45:35] *
darkstone quiets
L942[23:45:39] <darkstone> so the
beta?
L943[23:45:39] <Corosus> was afk
L944[23:45:43] <Corosus> latest release
heh
L945[23:46:01] <darkstone> okay
L946[23:46:29] <darkstone> sorry, my brain
is not working 100% tonight
L947[23:47:34] <Corosus> ah, TIL
mods.curse.com lags behind for changes
minecraft.curseforge.com
L948[23:47:40] <Corosus> one shows release
one shows beta lol
L949[23:48:40] <Corosus> oh god, ZA has
bugs related to the mcp naming issue too
L950[23:48:44] <Corosus> UPDATES FOR
ALL
L951[23:50:28] <darkstone> bugs in a
jar
L952[23:50:41] *
darkstone dodges tomatos
L953[23:51:39] <tterrag> Corosus: that's
why CF is better :P
L954[23:52:05] <Corosus> i wish theyd
merge already
L955[23:52:13] <Corosus> double the
comments, double the fun
L956[23:53:54] <darkstone> Corosus: I'm
confused, are the storms only client-side?
L957[23:54:41] <Corosus> its fully
multiplayer
L958[23:54:49] <Corosus> does magic to
make everyone see the same more or less
L959[23:56:11] <darkstone>
excellent!