<<Prev
Next>>
Scroll to Bottom
Stuff goes here
L1[00:27:02] ⇦
Quits: McJty (~jorrit@d8d872a26.access.telenet.be) (Quit:
Leaving)
L2[01:40:48] <MCPBot_Reborn> [TEST CSV]
Pushing snapshot_20170829 mappings to Forge Maven.
L3[01:40:51] <MCPBot_Reborn> [TEST CSV]
Maven upload successful for mcp_snapshot-20170829-1.12.zip
(mappings = "snapshot_20170829" in build.gradle).
L4[01:41:02] <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/
L5[02:05:31] ⇨
Joins: gigaherz|work (~gigaherz@84.89.63.25)
L6[02:08:49] ***
AbrarSyed is now known as Abrar|gone
L7[02:30:11] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 383
seconds)
L8[03:05:37] ⇨
Joins: ben_mkiv
(~ben_mkiv@p4FED5270.dip0.t-ipconnect.de)
L9[03:19:29] ⇨
Joins: abab9579 (~Abastro@175.223.45.229)
L10[03:22:29] ⇨
Joins: Spottedleaf
(~Spottedle@node-1w7jr9qqos9g0tb6qbaszzfyd.ipv6.telus.net)
L11[03:23:34] ⇦
Quits: Abastro (~Abastro@143.248.189.20) (Ping timeout: 383
seconds)
L12[03:24:27] ⇨
Joins: Larry1123 (Larry1123@irc.larry1123.net)
L13[03:24:54] ⇦
Quits: ben_mkiv (~ben_mkiv@p4FED5270.dip0.t-ipconnect.de) (Remote
host closed the connection)
L14[03:25:26] ⇨
Joins: Abastro (~Abastro@143.248.189.20)
L15[03:30:14] ⇨
Joins: A1b3 (~Abastro@143.248.242.203)
L16[03:31:37] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 183
seconds)
L17[03:31:45] ⇦
Quits: abab9579 (~Abastro@175.223.45.229) (Ping timeout: 383
seconds)
L18[03:32:26] ⇦
Quits: armed_troop (~armedtroo@108.4.200.66) (Ping timeout: 200
seconds)
L19[03:33:07] ⇨
Joins: armed_troop (~armedtroo@108.4.200.66)
L20[03:36:05] ⇦
Quits: Abastro (~Abastro@143.248.189.20) (Ping timeout: 383
seconds)
L21[03:37:02] ⇦
Quits: A1b3 (~Abastro@143.248.242.203) (Ping timeout: 383
seconds)
L22[03:45:11] ⇨
Joins: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L23[03:46:18] ⇨
Joins: ben_mkiv
(~ben_mkiv@p4FED5270.dip0.t-ipconnect.de)
L24[03:46:33] <ben_mkiv> anyone familiar
with doRenderLayer() from LayerRenderer?
L25[03:47:05] <ben_mkiv> why is allways
0.0625 passed as scale argument for rendering the player?
L26[03:52:52] ⇦
Quits: Upthorn
(~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (Ping
timeout: 200 seconds)
L27[03:59:43] ⇨
Joins: Hgrebnednav
(~Hgrebnedn@d8d872a6e.access.telenet.be)
L28[04:00:33] <TechnicianLP> because the
playermodel is pretty big if not scaled down ...
L29[04:02:38] <ben_mkiv> but all
helpermethods are using the default scale :/
L30[04:03:35] <ben_mkiv> i dont get my
glasses aligned on the player, they allways move way to far/short
when leaning the playerhead
L31[04:04:30] <ben_mkiv> also, every source
i looked at uses another method to align/render their stuff, hard
to tell whats the way to go xD
L32[04:30:12] ⇨
Joins: Larry1123 (Larry1123@irc.larry1123.net)
L33[04:33:21] ⇨
Joins: gigaherz_ (~gigaherz@84.89.63.25)
L34[04:34:29] ⇦
Quits: gigaherz|work (~gigaherz@84.89.63.25) (Ping timeout: 186
seconds)
L35[04:37:58] ⇨
Joins: gigaherz|work (~gigaherz@84.89.63.25)
L36[04:38:44] ⇦
Quits: gigaherz_ (~gigaherz@84.89.63.25) (Ping timeout: 186
seconds)
L37[04:41:55] ⇦
Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout:
186 seconds)
L38[04:56:58] ⇨
Joins: Brokkoli
(~Brokkoli@p5B23CD11.dip0.t-ipconnect.de)
L39[05:10:02] ⇨
Joins: npe|office
(~NPExcepti@bps-gw.hrz.tu-chemnitz.de)
L40[05:22:42] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 204
seconds)
L41[05:26:41] ⇨
Joins: killjoy
(~killjoy@2606:a000:1118:825b:a99f:7d33:5a71:a880)
L42[05:33:30] ⇨
Joins: Larry1123 (Larry1123@irc.larry1123.net)
L43[05:41:00] ⇨
Joins: MonkeyTyrant (~MonkeyTyr@24.215.118.74)
L44[05:52:00] <ben_mkiv> like seriously, is
there any rig related way to get positions from the player to
render stuff?
L45[05:52:21] <ben_mkiv> like i want to
render something on the head and pick the current
headscale/rotation/etc as reference from somewhere?
L46[05:53:46] <gigaherz|work> no there
isn't a real place to do that
L47[05:53:59] <gigaherz|work> unless your
item is an armor item
L48[05:54:02] <ben_mkiv> im getting crazy
trying to align my glasses
L49[05:54:04] <ben_mkiv> it is an armor
item
L50[05:54:11] <ben_mkiv> but it should
render in baubles slot
L51[05:54:15] <ben_mkiv> thats what i write
the renderer for
L52[05:54:34] <ben_mkiv> it works and looks
fine in armor helmet slot, so i have no idea why i cant get it
working fine with baubles, too
L53[05:54:44] <gigaherz|work> if you have
an armor item
L54[05:54:49] <gigaherz|work> you can
override getArmorModel
L55[05:54:55] <gigaherz|work> which lets
you provide a custom ModelBiped
L56[05:55:00] <gigaherz|work> for which you
can override the rendering code
L57[05:55:11] <ben_mkiv> hm, actually im
using the armormodel which minecraft provides me
L58[05:55:17] <ben_mkiv> guess its the same
it uses internal for armor render
L59[05:57:27] ⇦
Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
(Quit: Leaving.)
L60[06:00:06] <ben_mkiv> looking at some
other mods source, cosmetic armor reworked for example replaces the
armor with the stuff to render as pre render event
L61[06:00:32] <ben_mkiv> and swaps back
after render xD
L62[06:00:56] <ben_mkiv> and gigaherz,
actually thats what i do
L63[06:02:29] <gigaherz|work> sorry I don't
have the time right now to go deeper into the issue (being at work
and all), maybe someone else can help
L64[06:03:59] <ben_mkiv> no problem
L65[06:05:30] <ben_mkiv> guess you are
talking about stuff like armorModel.bipedHead,
armorModel.bipedLeftArm?
L66[06:07:42] <gigaherz|work> I was talking
about getArmorModel's Modelbiped getting the right values for the
current pose
L67[06:08:07] <gigaherz|work> while a
custom model rendering outside of the normal model code would have
to calculate those values separately
L68[06:08:09] <ben_mkiv> so i apply the
rotation/pitch i get as args when dorenderlayer is called to the
armormodel?
L69[06:08:17] <ben_mkiv> instead of
translating in GL space by myself?
L70[06:08:31] <gigaherz|work> nono, I
didn't imply any of that
L71[06:08:44] <ben_mkiv> ah wait
L72[06:08:57] <ben_mkiv> when i fetch the
model it is posed allready?
L73[06:09:05] <gigaherz|work> I was just
saying that getArmorModel "just works" -- anything
outside of that was out of the scope of my sentence ;P
L74[06:09:16] <ben_mkiv> oh
L75[06:09:18] <ben_mkiv> not for me
L76[06:09:34] <gigaherz|work> I don't
remember if it's posed before getArmorModel, or the returned
ModelBiped gets the values afterward
L78[06:09:52] <ben_mkiv> which only comes
close to the result i want to archive
L79[06:10:03] <ben_mkiv> but i think its
basicly what you're talking about
L80[06:10:15] <ben_mkiv> model =
ForgeHooksClient.getArmorModel(mc.thePlayer, new ItemStack(new
OpenGlassesItem()), EntityEquipmentSlot.HEAD, new
ModelBiped());
L81[06:10:41] <ben_mkiv> thats called only
once when setting up the class as the data doesnt change^
L82[06:12:50] <gigaherz|work> yeah no what
you are doing is the complete opposite to what I was talking
about
L83[06:13:02] <ben_mkiv> lol, shit
L84[06:13:08] <gigaherz|work> like
L85[06:13:10] <gigaherz|work> what i meant
is
L86[06:13:24] <gigaherz|work> if you are
trying to draw a custom model for one of the standard equipment
slots
L87[06:13:32] <ben_mkiv> nono
L88[06:13:39] <gigaherz|work> then using
getArmorModel and returning a custom ModelBiped "just
works"
L89[06:13:42] <gigaherz|work> but th at's
not your case
L90[06:13:50] <gigaherz|work> you are
adding a new rendering layer, for custom items
L91[06:13:56] <ben_mkiv> yea
L92[06:14:11] <ben_mkiv> thats what i need
for the item in a baubles slot
L93[06:15:04] <ben_mkiv> does
getArmorModel() use any scale factor?
L94[06:15:11] <ben_mkiv> maybe that just
messes up everything
L95[06:15:17] <gigaherz|work> hmm
L98[06:16:05] <ben_mkiv> yea you are
creating the model on your own, while i rely on the model created
by ItemArmor
L99[06:16:18] <gigaherz|work> yep
L100[06:17:15] <gigaherz|work> but the
logic should be equivalent: you ask the item for a model, give it
the pose, and render
L101[06:17:44] <ben_mkiv> thats what i
thought, but its allways off a bit, and i cant explain by math why
its even working actually xD
L102[06:17:46] <gigaherz|work> as I said,
I don't have the time to go line by line
L103[06:17:52] <ben_mkiv> like i set scale
0.1F for the model and it looks scaled fine
L104[06:17:58] <ben_mkiv> but it doesnt
make sense for me xD
L105[06:18:49] <ben_mkiv>
this.livingEntityRenderer.getMainModel()).bipedBody.postRender(0.0625F);
L106[06:18:52] <ben_mkiv> can you explain
this short?
L107[06:19:40] <gigaherz|work> this is
used in vanilla to translate to the position of the hand
L108[06:19:43] <gigaherz|work> for like,
drawing items
L109[06:19:54] <gigaherz|work> I'm using
with the body "part", instead of an arm part
L110[06:20:07] <gigaherz|work> so that the
belt is located relative to the body part
L111[06:20:21] <gigaherz|work> regardless
of the rotation of the player
L112[06:20:35] <ben_mkiv> so it does all
the transforms and also applies sneak translation?
L113[06:20:43] <ben_mkiv>
translations^
L114[06:21:10] <gigaherz|work> not
fully
L115[06:21:20] <gigaherz|work> i had to
translate 0.2F upward while sneaking
L116[06:21:30] <gigaherz|work> search for
"sneaking" in the code
L117[06:24:13] ⇦
Quits: cpup (~cpup@32.218.114.160) (Ping timeout: 200
seconds)
L118[06:30:01]
⇨ Joins: cpup (~cpup@32.218.117.186)
L119[06:36:13] ⇦
Quits: MonkeyTyrant (~MonkeyTyr@24.215.118.74) (Quit:
Leaving)
L120[06:37:39] <ben_mkiv> gigaherz, seems
like you can set isSneak on the armormodel before the postRender
and it applies the sneak translation on its own
L121[06:37:46] <gigaherz|work> ah
nice
L122[06:37:48] <ben_mkiv> model.isSneak =
player.isSneaking();
L123[06:37:50] <gigaherz|work> I'll look
into that
L124[06:44:39] ⇦
Quits: Uristqwerty
(~chatzilla@modemcable128.165-177-173.mc.videotron.ca) (Read error:
Connection reset by peer)
L125[07:07:06]
⇨ Joins: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L126[07:34:14]
⇨ Joins: Nedelosk
(~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de)
L127[07:44:51]
⇨ Joins: Xilef11 (kiwiirc@137.122.145.101)
L128[07:49:56] ⇦
Quits: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de) (Remote
host closed the connection)
L129[08:10:09] <ben_mkiv> yay
L130[08:10:16] <ben_mkiv> when it finally
works \o/
L131[08:10:49] <gigaherz|work> nice
L132[08:10:55] <ben_mkiv> the magic is
that doRenderLayer gets degres as Yaw/pitch values, while the biped
model uses radians
L134[08:11:37] <ben_mkiv> also the method
looks pretty sweet now :P
L135[08:11:44] <ben_mkiv> no confusing
translations anymore
L136[08:12:24] <ben_mkiv> ah, sneaking
code isnt working, probably needs some additional postrender for
body
L137[08:32:02]
⇨ Joins: airbreather
(~airbreath@d149-67-99-43.nap.wideopenwest.com)
L138[08:44:35]
⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L139[08:48:01]
⇨ Joins: williewillus
(~williewil@rrcs-67-78-117-195.sw.biz.rr.com)
L140[08:51:00] ⇦
Quits: Aroma1997 (~Aroma1997@i.am.aroma1997.org) (Quit: ZNC -
http://znc.in)
L141[09:01:58]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-15-185.dhcp.embarqhsd.net)
L142[09:10:27]
⇨ Joins: Cast0077_
(~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
L143[09:14:02]
⇨ Joins: Aroma1997
(~Aroma1997@my.name.is.something.along.the.lines.of.aroma1997.org)
L144[09:17:12] ⇦
Quits: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com)
(Ping timeout: 195 seconds)
L145[09:32:04]
⇨ Joins: malte0811
(~malte0811@p4FDE5519.dip0.t-ipconnect.de)
L146[09:37:07]
⇨ Joins: airbreather
(~airbreath@d149-67-99-43.nap.wideopenwest.com)
L147[09:47:20]
⇨ Joins: Upthorn
(~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L148[09:47:20] ⇦
Quits: Chais (~Chais@62.178.210.212) (Read error: Connection reset
by peer)
L149[09:48:32] <ben_mkiv> well... finally
xD
L150[09:50:05] ⇦
Quits: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Quit:
Javaschreiber)
L151[09:50:26]
⇨ Joins: Chais
(~Chais@62-178-210-212.cable.dynamic.surfer.at)
L152[09:52:17]
⇨ Joins: Hgreb
(~Hgrebnedn@d8D872A6E.access.telenet.be)
L153[09:54:44] ⇦
Quits: Hgrebnednav (~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping
timeout: 200 seconds)
L154[10:09:00] ⇦
Quits: gigaherz|work (~gigaherz@84.89.63.25) (Remote host closed
the connection)
L155[10:12:48] <Subaraki> is there a
packet for bow pullback ?
L156[10:13:27] <Subaraki> i'm experiencing
out of sync pullback data on my custom bow
L157[10:13:55] <Subaraki> which is
preventing me from firing correctly at visual cues
L158[10:15:09] ⇦
Quits: psxlover (psxlover@athedsl-4415372.home.otenet.gr) (Read
error: Connection reset by peer)
L159[10:19:39] ***
Santa|afk is now known as SatanicSanta
L160[10:19:46]
⇨ Joins: psxlover
(psxlover@athedsl-4415372.home.otenet.gr)
L161[10:20:23] ⇦
Quits: Nedelosk
(~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de) (Read error:
Connection reset by peer)
L162[10:21:39] ⇦
Quits: Cast0077_ (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
(Quit: Poof)
L163[10:24:25] <Subaraki> i've found code
that syncs the usage of items
L164[10:24:43] <Subaraki> why though is it
desyncing server side on vanilla forge ?
L165[10:24:50] <Subaraki> (outside of
dev)
L166[10:25:28] <Subaraki> here's
code
L168[10:28:11]
⇨ Joins: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L169[10:30:17] <williewillus> you're
saying it works properly in dev?
L170[10:30:22] <williewillus> / in
SP?
L171[10:30:27] <williewillus> or it
doesn't work always
L172[10:37:38]
⇨ Joins: CoderPuppy (~cpup@32.218.118.153)
L173[10:38:26] ⇦
Quits: cpup (~cpup@32.218.117.186) (Ping timeout: 204
seconds)
L174[10:57:51] ⇦
Quits: Cornelia (~Nel@c-75-71-231-133.hsd1.co.comcast.net) (Ping
timeout: 383 seconds)
L175[11:02:47]
⇨ Joins: MalkContent
(~MalkConte@p4FDCE2EE.dip0.t-ipconnect.de)
L176[11:07:00] <Subaraki> williewillus, it
works in dev singleplayer
L177[11:07:19] <Subaraki> if i use the mod
in my minecraft game, it's completely desync
L178[11:07:54] <ghz|afk> does it break in
LAN mode?
L179[11:19:12]
⇨ Joins: Nedelosk
(~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de)
L180[11:20:48] <Subaraki> when I stop
using the bow and check the log (i've added some debug code) , the
game says that the client is on like 2.6 pullback, while the server
is only on 1.3
L181[11:21:18] <Subaraki> test 2 :
L182[11:21:19] <Subaraki> 4.0C? true
L183[11:21:19] <Subaraki> 1.25C?
false
L184[11:21:29] <Subaraki> ^ c being short
for client
L185[11:21:34] <Subaraki> no idea, let me
try if it works in lan
L186[11:22:48]
⇨ Joins: h5h77
(~h5h77@2a02:8108:4b40:907:922b:34ff:feae:b38b)
L187[11:26:56] <Subaraki> lan started,
1.95 client pullback, 0.4 server
L188[11:26:58] <Subaraki> nope :/
L189[11:39:15] ⇦
Parts: malte0811 (~malte0811@p4FDE5519.dip0.t-ipconnect.de)
())
L190[11:45:44] ⇦
Quits: sinkillerj (~sinkiller@nc-67-232-15-185.dhcp.embarqhsd.net)
(Remote host closed the connection)
L191[11:59:41]
⇨ Joins: Cornelia
(~Nel@c-75-71-231-133.hsd1.co.comcast.net)
L192[12:00:31] ***
PaleOff is now known as PaleoCrafter
L193[12:00:52] ⇦
Quits: Spottedleaf
(~Spottedle@node-1w7jr9qqos9g0tb6qbaszzfyd.ipv6.telus.net) (Ping
timeout: 383 seconds)
L194[12:03:49] <Subaraki> ghz|afk, any
idea why there's such a big desync issue ?
L195[12:07:03] <ghz|afk> nope
L196[12:07:29] <barteks2x> so wait it
works in dev but not when running from launcher?
L197[12:08:15] <barteks2x> or does it
desync only on dedicated server?
L198[12:08:48] <ben_mkiv> glRotatef(0.25,
1, 1, 1) rotates all axis by 90�?
L199[12:09:07] <ben_mkiv> for GL11^
L200[12:09:19] <PaleoCrafter> uhm,
no
L201[12:09:38] <PaleoCrafter> it rotates
around the (1,1,1) vector by 0.25°
L202[12:09:40] <PaleoCrafter> :P
L203[12:10:29]
⇨ Joins: Noppes
(~Noppes@ip56530f2e.direct-adsl.nl)
L204[12:11:19]
⇨ Joins: cpup (~cpup@32.218.118.205)
L205[12:11:20] <barteks2x> you need to
have 3 rotatef lines to rotate around all o axis
L206[12:11:42] ⇦
Quits: CoderPuppy (~cpup@32.218.118.153) (Ping timeout: 204
seconds)
L207[12:11:59] <barteks2x> glRotatef(0.25,
1, 0, 0); glRotatef(0.25, 0, 1, 0), glRotatef(0.25, 0, 0, 1), and
the result also in some way depends on order but I'm not exactly
surehow
L208[12:13:13] <PaleoCrafter> yeah, you
can get into a gimbal lock with these functions, but I also don't
really know what a possible sequence would be :P
L209[12:13:29] <ben_mkiv> so the vector
basicly works like the pivot point?
L210[12:13:39] <ben_mkiv> it rotates the
whole mesh around it?
L211[12:14:06] <barteks2x> it rotates
around a vector, if it's (1, 0, 0) it's around X axis
L212[12:24:47]
⇨ Joins: Raycoms (~Raycoms@200.135.87.183)
L213[12:25:12] <Subaraki> barteks2x, it
doesnt work in singleplayer
L214[12:25:16] <Subaraki> havent tried
dedicated server yet
L215[12:25:24] <barteks2x> but it does
work in dev?
L216[12:25:27] <Subaraki> yeah
L217[12:25:36] <barteks2x> then the
bytecode must be different somewhere
L218[12:26:50] ⇦
Quits: cpup (~cpup@32.218.118.205) (Ping timeout: 204
seconds)
L219[12:26:58] <barteks2x> it's issue with
sync of vanilla item or your item?
L220[12:28:21]
⇨ Joins: cpup (~cpup@32.218.118.216)
L221[12:29:57]
⇨ Joins: McJty
(~jorrit@d8d872121.access.telenet.be)
L222[12:46:58] ⇦
Quits: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
(Ping timeout: 186 seconds)
L223[12:48:12] <Raycoms> !latest
L224[12:48:16]
⇨ Joins: Spottedleaf
(~Spottedle@node-1w7jr9qqos9g1scsom0y7ds5h.ipv6.telus.net)
L225[12:48:20]
⇨ Joins: CoderPuppy (~cpup@32.218.118.222)
L226[12:48:29] <Subaraki> barteks2x, my
own
L227[12:48:42] <Subaraki> trying to
replace the entire code with the regular bow code and checking if
it changes anything
L228[12:48:53] ⇦
Quits: cpup (~cpup@32.218.118.216) (Ping timeout: 204
seconds)
L229[12:50:55] <Raycoms> does the startup
log say anything? and are the forge versions equal?
L230[12:53:32]
⇨ Joins: TomyLobo
(~TomyLobo@2a02:8109:87c0:20c:48d3:46b:3a65:efa8)
L231[12:57:50] <Subaraki> nope
L232[12:57:54] <Subaraki> yes
L233[12:58:01] <Subaraki> both 1.12
L234[12:58:51] <barteks2x> the same 1.12
forge version?
L235[13:00:34]
⇨ Joins: cpup (~cpup@32.218.118.233)
L236[13:01:58] <Subaraki> yes
L237[13:02:13] <Subaraki> and it shoudln't
need to matter
L238[13:02:28] <Subaraki> people shouldn't
be needing the exact same version as i code under to have a working
bow
L239[13:03:13] <barteks2x> I know it's
very unlikely but you aren
L240[13:03:15] <Ordinastie> I guess that's
a debugger is useful
L241[13:03:25] <barteks2x> t using a more
than 1MB network packet right?
L242[13:03:25] <Ordinastie> *why
L243[13:04:30] <barteks2x> because in the
end the sync has to go throuygh network
L244[13:04:50] <barteks2x> are you
actually receiving the rong values from packet?
L245[13:05:17] <williewillus> long item
usage is handled through vanilla packets i thought
L246[13:05:47] ⇦
Quits: CoderPuppy (~cpup@32.218.118.222) (Ping timeout: 383
seconds)
L247[13:06:03] <PaleoCrafter> killjoy,
lovely review right there, 8/8, m8
L248[13:06:33] <barteks2x> also one of the
resons sometimes coremods are useful: you can add debug code to
vanilla
L249[13:09:58]
⇨ Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L250[13:10:45] ⇦
Quits: MalkContent (~MalkConte@p4FDCE2EE.dip0.t-ipconnect.de)
(Quit: Leaving)
L251[13:16:16] <killjoy> single line
comment, not review :)
L252[13:16:41] <killjoy> That's some
awfully complex debug code
L253[13:23:45] <Subaraki> barteks2x,
pullback time / item usage is handled by miencraft itself in a data
manager
L254[13:23:54] <Subaraki> im just puzzled
why it would even desync
L255[13:31:58] <williewillus> barteks2x:
or just use breakpoints + "evaluate and print" :P
L256[13:32:19] <barteks2x> but you can't
do that in obfuscated environment
L257[13:32:24] <barteks2x> and in
pefrformance sensitive code
L258[13:32:44] <barteks2x> and when the
behavior you are debugging changes when you add such
breapoints
L259[13:33:00] <barteks2x> I had to do all
of the above
L260[13:40:34]
⇨ Joins: malte0811
(~malte0811@p4FDE5519.dip0.t-ipconnect.de)
L261[13:42:02] ⇦
Quits: Raycoms (~Raycoms@200.135.87.183) (Remote host closed the
connection)
L262[13:43:18] ⇦
Quits: bilde2910 (bilde2910@178.51-174-170.customer.lyse.net) (Ping
timeout: 383 seconds)
L263[13:43:49]
⇨ Joins: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net)
L264[13:54:33] ⇦
Quits: williewillus (~williewil@rrcs-67-78-117-195.sw.biz.rr.com)
(Quit: Leaving)
L265[13:56:16] ⇦
Quits: bilde2910 (bilde2910@178.51-174-170.customer.lyse.net) (Ping
timeout: 190 seconds)
L266[13:58:16]
⇨ Joins: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net)
L267[13:59:27] ***
diesieben|away is now known as diesieben07
L268[13:59:55]
⇨ Joins: Cast0077
(~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
L269[14:09:13] ***
Abrar|gone is now known as AbrarSyed
L270[14:14:44] ⇦
Quits: McJty (~jorrit@d8d872121.access.telenet.be) (Quit:
Leaving)
L271[14:24:54] <Subaraki> hmm
L272[14:25:05] <Subaraki> with the bow
code, the timer is getting really borked as well
L273[14:25:09] <Subaraki> nothing changed
there
L274[14:25:19]
⇨ Joins: Uristqwerty
(~chatzilla@modemcable128.165-177-173.mc.videotron.ca)
L275[14:32:12] ⇦
Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping
timeout: 183 seconds)
L276[14:46:43] ⇦
Quits: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Quit:
Javaschreiber)
L277[14:50:29] <barteks2x> it became
annoying enough that I'm going to attempot to fix the packet
splitting netty spam...
L278[14:54:00] <barteks2x> any way to
create Weakhashmap<Object, [Stacktrace]> mappings from
breakpoint...?
L279[14:54:26] <diesieben07>
intellij?
L280[14:54:29] <barteks2x> yes
L281[14:54:54] <barteks2x> I want to be
able to remember wherre a particular method has been called before
the problematic call
L282[14:55:15] <ghz|afk> hmm so I was
having another of my "mod ideas" that I'm not really
going to program myself
L283[14:55:17] <diesieben07> put
"someStaticWeakHashMapField.put(<key>, new
Exception().getStackTrace())" into "evaluate and
log" of the breakpoint
L284[14:55:41] <diesieben07> it will spam
the console a bit, though
L285[14:55:50] <barteks2x> it
shouldn';t
L286[14:55:57] <barteks2x> because
getStackTrac shouldn't print it
L287[14:56:07] <diesieben07> yes, but
intellj will log "undefined"
L288[14:56:07] <Subaraki> ghz|afk, tell
me
L289[14:56:11] <ghz|afk> one of the things
that sortof annoys me of mc, is that mobs spawn randomly wherever
certain conditions are met
L290[14:56:11] <diesieben07> or whatever
put returns
L291[14:56:16] <Subaraki> ive got an idea
myself, but i'm discouraged to do it alone
L292[14:56:28] <ghz|afk> and I was
wondering of how it could possibly work
L293[14:56:33] <ghz|afk> that mobs can
still spawn in places
L294[14:56:39] ***
SatanicSanta is now known as Santa|afk
L295[14:56:54] <Subaraki> define places
?
L296[14:56:54] <ghz|afk> but it isn't
random spawning
L297[14:57:01] <ghz|afk> that's the key
;P
L298[14:57:05] <Subaraki> oh
L299[14:57:09] <barteks2x> the method is
called *a lot*
L300[14:57:11] <Subaraki> so random
spawning that isnt random ?
L301[14:57:17] <ghz|afk> so what I was
thinking is
L302[14:57:26] <ghz|afk> instead of
generating only normal dirt
L303[14:57:35] <ghz|afk> just like how
fortresses generate silverfish egg blocks
L304[14:57:50] <ghz|afk> each dirt block
would have a chance to be a "bone deposit"
L305[14:57:56] <ghz|afk> with different
density levels
L306[14:58:08] <diesieben07> barteks2x,
alternatively, make some static method that always returns
"true" but also puts stuff in the map, then call that
from within "Condition"
L307[14:58:29] <ghz|afk> and during night,
if the block is within 2 blocks from the surface
L308[14:58:33] <ghz|afk> and the surface
block is dark enough
L309[14:58:36] <Subaraki> oooh
L310[14:58:42] <Subaraki> that's actually
a ncie idea :o
L311[14:58:44] <ghz|afk> it would
"spend" one of the density levels
L312[14:58:49] <barteks2x> put returns the
previous value
L313[14:58:52] <ghz|afk> in exchange for
spawning a skeleton or zombie
L314[14:59:00] <ghz|afk> brb
L315[14:59:02] <barteks2x> so I can always
add it as condition and do map.put(whatever) == null || true
L316[14:59:19] <diesieben07> that
works
L317[14:59:39] ⇦
Quits: Hunterz (~hunterz@62.182.234.189) (Quit:
Leaving.)
L318[14:59:50] <barteks2x> or I can
disable suspend and just add == null
L319[14:59:51] <LexMobile> So basically
you want to remove natural spawning, and you want to make mob
spawners with fuel.
L321[15:01:51] <barteks2x> why netty is
such a hard thing to debug...
L322[15:02:18] <Subaraki> sounds logic for
zombies and skeletons
L323[15:02:27] <Subaraki> what about
creepers though ?
L324[15:02:30] <Subaraki> and spiders
?
L325[15:02:32] <LexMobile> cuz its a
clusterfuck of black magic wrapped in 30 layers of
redirection
L326[15:03:00] <killjoy> just point
towards the witch so we can burn it
L327[15:03:07] <Subaraki> *should look
into mob spawning*
L328[15:03:13] <LexMobile> Creepers have a
chance of being spawned around lava!
L329[15:03:23] <killjoy> well they don't
explode when on fire
L330[15:03:33] <Subaraki> ? ._. why would
the game need to be so specific about that xD
L331[15:03:34] <Subaraki> lightlevels
?
L332[15:03:38] <Subaraki> doubt it
L333[15:03:46] <Subaraki> but i do see
what you mean
L334[15:04:33] <barteks2x> and now I need
to figure out why a runnable has been added twice...
L335[15:08:20] ⇦
Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read error:
Connection reset by peer)
L336[15:10:26] <Subaraki> send packet
twice ?
L337[15:11:06] <barteks2x> or... just
called twice?
L338[15:13:04]
⇨ Joins: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L339[15:13:11] <ghz|afk> back
L340[15:13:12] ⇦
Quits: Nedelosk
(~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de) (Read error:
Connection reset by peer)
L341[15:13:15] <ghz|afk> : So basically
you want to remove natural spawning, and you want to make mob
spawners with fuel.
L342[15:13:37] <ghz|afk> I guess you can
think of it that way
L343[15:13:50] <ghz|afk> I suppose it is
an accurate way of describing it
L344[15:15:20] <ghz|afk> that only works
for zombies and skeletons, though (lore-wise)
L345[15:15:32] <ghz|afk> for creepers, I'd
have something like alien eggs
L346[15:15:38] <ghz|afk> randomly
generated around the world
L347[15:15:45] <ghz|afk> in small
clusters
L348[15:16:09] <Subaraki> spiders ?
L349[15:16:19] <Subaraki> spider web eggs
or so :P
L350[15:16:21] <ghz|afk> same
L351[15:16:28] <ghz|afk> creepers and
spawners -> egg clusters
L352[15:16:32] <Subaraki> enderman can
just appear
L353[15:16:35] <ghz|afk> skeletons and
zombies -> bone deposits
L354[15:16:38] <Subaraki> they teleport
from the end
L355[15:16:43] <ghz|afk> endermen ->
dimensional rifts
L356[15:16:51] <Subaraki> nice idea
L357[15:16:56] <Subaraki> do the rifts
spawn at night ?
L358[15:17:01] <Subaraki> or do they stay
in palce?
L359[15:17:06] <Subaraki> sounds like a
fun mod altogether.
L360[15:17:12] <ghz|afk> the idea would
be, that you should be able to "clean" an area
L361[15:17:16] <Subaraki> you could make
your area mob free if you wanted
L362[15:17:20] <Subaraki> haha xD
L363[15:17:21] <ghz|afk> and stop all
spawning without requiring torches
L364[15:17:46] <ghz|afk> either by digging
out all the spawns, or by covering them up with a few layers of
stuff
L365[15:17:47] <ghz|afk> ;P
L366[15:18:11] <Subaraki> maybe you could
cause some to get up while building your house and managing
terrain
L367[15:18:24] <Subaraki> also, cleaning
the area could be a pita though
L368[15:18:26]
⇨ Joins: Abastro (~Abastro@110.35.38.113)
L369[15:18:31] <Subaraki> how on earth are
you going to locate them ?
L370[15:18:33] <ghz|afk> it would have to
be
L371[15:18:36] <ghz|afk> ;P
L372[15:18:45] <Subaraki> also, if you'd
stay long enough, the mobs wouldn't spawn when depeleted
L373[15:18:58] <Subaraki> depleting the
fuel after x days *
L374[15:19:02] <ghz|afk> yup
L375[15:19:10] <ghz|afk> that's the only
drawback
L376[15:19:26] <ghz|afk> you could just
pillar up, and AFK for a few days
L377[15:19:27] <ghz|afk> ;P
L378[15:19:42] <ghz|afk> unless the mobs
are harder to kill
L379[15:19:44] <barteks2x> anything wrong
with this? ForgeHooks.DBG.containsKey(inPacket) ||
ForgeHooks.DBG.put(inPacket, new Exception()) != null as a debug
breakpoiint condition
L380[15:19:54] <barteks2x> it triggers on
ever packet sent
L381[15:20:06] <ghz|afk> the undead could
drop bone fragments that "infect" the ground and create a
new bone deposit
L382[15:20:17] <ghz|afk> the creepers and
spiders could lay eggs
L383[15:20:27] <ghz|afk> the endermen
could create new rifts randomly while teleporting around
L384[15:20:30] <barteks2x> and DBG is
WeakHashMap
L385[15:21:03] <ghz|afk> so if you stay in
an area without killing
L386[15:21:06] <ghz|afk> you'd make things
WORSE not better
L387[15:21:40] <Ordinastie> but then, why
would you ever fight them ?
L388[15:22:40] <killjoy> !version
L389[15:22:50] <ghz|afk> to clean up your
area, ofc
L390[15:23:10] <ghz|afk> also, I'd make
biome variants with harder challenges
L391[15:23:16] <Ordinastie> oh
"without killing"
L392[15:23:18] <Ordinastie> I
misread
L393[15:23:54] <ghz|afk> like
"ominous roofed forest" -> extra spider egg clusters
and cobwebs on trees
L394[15:24:08] <ghz|afk> "bone
plains" -> extra bone reposits
L395[15:24:27] <ghz|afk> and things like
that
L396[15:24:42] <ghz|afk> deposits*
L397[15:25:49] ***
PaleoCrafter is now known as PaleOff
L398[15:29:13] <barteks2x> this is
unfixable...
L399[15:29:24] <barteks2x> f**ing
netty
L400[15:29:57] <barteks2x>
MessageToMessageEncoder is using the same proomise for all objects
returned from encoder
L401[15:30:50] <diesieben07> how so? It
shouldn't...
L402[15:31:33] <diesieben07> it should use
the promise that's passed in
L403[15:31:51] <diesieben07> which quite
often is the re-used "void promise" of the channel, but
you can pass your own if you want to.
L404[15:32:03]
⇨ Joins: Dark
(~MrDark@2607:fcc8:d48b:eb00:e14e:529f:a468:4c39)
L405[15:32:39] <barteks2x> and how does it
deal with reusing the same void promise?
L406[15:32:46] <barteks2x> because it just
keeps using one instance of it
L407[15:32:55] <diesieben07> yes, thats
the nature of the void promise
L408[15:33:15] <barteks2x> normally when
promise is marked as success twice, it shows warning
L409[15:33:16] <diesieben07> it's the
promise that is used if you call write on the channel without the
need for an acutal "usable" promise
L410[15:33:20] <barteks2x> how the void
one deals with it
L411[15:33:42] <diesieben07> afaik there
are checks for isVoidPromise in many places
L412[15:33:45] <diesieben07> it's special
cased
L413[15:34:32] ***
darkevilmac is now known as darkevilmac|nope
L414[15:35:56] <barteks2x> hm... it seems
to ctx.newPromise
L415[15:36:39] ⇦
Parts: darkevilmac|nope (~darkevilm@omega.infra.surgeplay.com)
())
L416[15:36:45]
⇨ Joins: darkevilmac
(~darkevilm@omega.infra.surgeplay.com)
L417[15:36:48] <diesieben07> when needed,
yes
L418[15:38:32] <barteks2x> so you know far
more about netty than I do... and yet it's me debugging the
issue
L419[15:38:34] <barteks2x> WHY
L420[15:39:08] <Ordinastie> I sense some
frustration here :p
L421[15:39:28] <ghz|afk> now? he's been
frustrated one way or another for months
L422[15:39:28] <ghz|afk> ;P
L423[15:39:50] ⇦
Quits: Waterpicker
(~Waterpick@2602:306:35ba:ca40:e5da:280d:5efe:f4eb) (Quit:
Leaving)
L424[15:40:15] <diesieben07> i dont know
the issue :P
L425[15:40:23] <diesieben07> also, i HATE
working with netty
L426[15:41:06]
⇨ Joins: KGS
(~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L427[15:41:51] <barteks2x> it's forge
reusing the same promise
L428[15:41:55] <barteks2x> in
NetworkDispatcher
L429[15:42:09] <barteks2x> for
(Packet<INetHandlerPlayClient> pkt : parts) ctx.write(pkt,
promise);
L430[15:43:56] <diesieben07> yep, thats
broken
L431[15:44:16] <diesieben07> you need to
create a bulk promise for the individual parts
L432[15:44:24] <diesieben07> and then
resolve the passed-in promise when they are all done
L433[15:44:32] <barteks2x> ...what?
L434[15:45:00] <diesieben07> i typed like
i thought there... let me rephrase
L435[15:45:04] <diesieben07> create a
promise for every part
L436[15:45:19] <diesieben07> then when
they are all done, fulfill the promise that write() gets as
parameter
L437[15:45:23] <barteks2x> in
MessageToMessageEncode netty just creates new promise for all
messages except the last one, and uses the passed in promise for
the last one
L438[15:45:27] <barteks2x> it's ugly to do
it in java
L439[15:45:30] <barteks2x> but it does
that
L440[15:45:54] <diesieben07> that would
work, actually
L441[15:46:04] <diesieben07> you can just
use void promises for them all, except the last one
L442[15:46:12] ⇦
Parts: malte0811 (~malte0811@p4FDE5519.dip0.t-ipconnect.de)
())
L443[15:46:17] <barteks2x> which is what
netty doesif it's a void promise
L444[15:46:22] <barteks2x> but forge
doesn't use void promise here
L445[15:46:28] <barteks2x> and it's for
huge packets anyway
L446[15:46:29] <diesieben07> it needs to
;)
L447[15:46:36] <barteks2x> so not like
memory pressure is an issue
L448[15:46:47] <diesieben07> packets are
send sequentially, so if the last one is completed, they are all
complete
L449[15:46:56] <diesieben07> so you can
ignore the completion callback for all but the last one
L450[15:47:00] <barteks2x> it kinds relies
on TCP
L451[15:47:03] <diesieben07> i.e. use void
promise for all but the last one
L452[15:47:07] <barteks2x> but it's lot
like anyone will change it, right?
L453[15:47:12] <diesieben07> no, the netty
pipeline is sequential
L454[15:47:20] <diesieben07> what happens
on the wire, after netty, might not be
L455[15:47:25] <diesieben07> but that's
not what the promise refers to
L456[15:47:46] <barteks2x> so even if I
tried to use udp, netty would make it work like tcp...?
L457[15:47:58] <diesieben07> No.
L458[15:48:05] <diesieben07> the packets
would leave netty in order
L459[15:48:14] <diesieben07> but after
netty comes the OS' network stack adn the actual network
L460[15:48:17] <diesieben07> which can
reorder stuff
L461[15:48:18] <barteks2x> oh right
because it's not the receiving end...
L462[15:48:28] <diesieben07> btu the
promise fires when the packet leaves netty
L463[15:48:58] <barteks2x> so should I
basically copy the netty logic which uses void promise only if the
passsed in one os void, or just use void always for the messages in
between?
L464[15:49:21] <diesieben07> i would say
always void except for the last one, and for the last one use
"promise"
L465[15:49:24] <diesieben07> that should
work
L466[15:50:03] <barteks2x> then why netty
doesn't do it that way?
L467[15:50:28] <barteks2x> I just don't
want to break stuff in a way I won't notice
L468[15:50:32] <diesieben07> where
exactly.
L469[15:50:34] <diesieben07> file and line
please
L470[15:50:52] <barteks2x>
MessageToMessageEncoder likes 116 to 128
L471[15:50:58] <barteks2x> *lines
L472[15:51:25] <barteks2x> it uses void
one only if the passed in one is already void
L473[15:51:38] <barteks2x> (actually why
doesn't forge use MessageTomessageEncoder here?)
L474[15:51:57] <Corosus> trying to setup
the inventory variant within my forge_marker marked blockstate file
for a block, is there an easy way to reference the handheld item
model? doing just 'handheld' doesnt work since its looking from
within the models/block domain
L475[15:52:13] <barteks2x> it basically
reimplements MessageToMessageEncoder badly
L476[15:52:24] <Corosus> the vanilla one
that is, a workaround is to make my own handheld model and put in
my own domain within models/block but id rather avoid that
L477[15:52:45] <diesieben07> barteks2x, i
dont know why they do that... seems unnecessary
L478[15:53:15] <barteks2x> maybe the
reason being "there could be some code that relied on the old
behavior"?
L479[15:53:42] <barteks2x> which seeing
what kind of breaking changes netty did to forge seems like a
stupid reason
L480[15:53:45] <diesieben07> i really
don't know, the promise they create is not used at all
L481[15:53:46] <diesieben07> so...
idk
L482[15:54:01] <barteks2x> how is it not
used?
L483[15:54:14] <diesieben07> well, there
are no listeners being installed on it
L484[15:54:28] <diesieben07> so it's just
tracking the result of the operation, but nobody is listening
L485[15:54:46] <diesieben07> unless, well,
ok, some handler down the line might rely on the promise being able
to accept listeners
L486[15:54:50] <barteks2x> couldn't
ctx.newPromise add listener to it?
L487[15:54:57] <barteks2x> some strange
implementation of it
L488[15:55:08] <barteks2x> well, that
could be the case
L489[15:55:09] <diesieben07> you can't
make a custom context
L490[15:55:20] <diesieben07> but a handler
later in the pipeline
L491[15:55:29] <barteks2x> right, some
handler later doen the list might rely on it not being void
L492[15:55:36] <diesieben07> yeah
L493[15:55:41] <diesieben07> in forge...
that is probably not the cast
L494[15:55:47] <diesieben07> so you can
just use the void promise
L495[15:56:53] <barteks2x> whatever way I
think to do it in java, it feels ugly
L496[15:57:16] <barteks2x> unless I rely
on List.get() being fast
L497[15:57:51] <ghz|afk> List.get and
List.add are fast
L498[15:57:57] <diesieben07> not
always.
L499[15:57:58] <barteks2x> ArrayList.get
is fast
L500[15:58:02] <barteks2x>
LinkedList.get() isn;'t
L501[15:58:03] <diesieben07> if it's a
LinkedList, it's not fast at all
L502[15:58:06] <ghz|afk> right
L503[15:58:16] <ghz|afk> I forgot that
LinkedList is also a List
L504[15:58:21] <ghz|afk> (it isn't in
C#)
L505[15:58:26] <diesieben07> but forge is
the one creating the list
L506[15:58:29] <barteks2x> C# is weird
then
L507[15:58:34] <diesieben07> so... it's an
ArrayList, always.
L508[15:58:46] <ghz|afk> nah, in C#, List
is ArrayList
L509[15:58:51] <ghz|afk> and List
implements IList
L510[15:58:57] <diesieben07> oh god
L511[15:59:06] <diesieben07> C# naming
convetions... please kill me
L512[15:59:08] <ghz|afk> but LinkedList
does not inherit from List or IList
L513[15:59:35] <ghz|afk> it IS an
ICollection<T>
L514[16:00:04] <ghz|afk> but
"list" is assumed to have O(1) access and addition to the
end
L515[16:00:24] <ghz|afk> whiel LinkedList
explicitly exposes LinkedListNode instances with .Next and
.Previous
L516[16:00:45] <ghz|afk> and has special
methods like AddBefore, AddAfter
L517[16:00:47] <barteks2x> C# namind
conversions aren't that bad
L518[16:01:04] <ghz|afk> I like the I
prefix
L519[16:01:12] <ghz|afk> even in
java
L520[16:01:13] <diesieben07> to each their
own
L521[16:01:18] <diesieben07> but... please
no
L522[16:01:21] <ghz|afk> so you know that
ISomething goes after implement
L523[16:01:23] <barteks2x> after reading
MC codefor so long, I just got used to writing it way too
much
L524[16:01:24] <ghz|afk> while Something
goes after extends
L525[16:01:25] <ghz|afk> ;p
L526[16:01:52] <diesieben07> the fact that
there is extends and implements is terrible :P
L527[16:01:55] <ghz|afk> (C# doesn't have
extends/implements, it's all just ... class Asdf : Base,
Interface1, Interface2, ... )
L528[16:02:05] <barteks2x> and this way
(almost?) all of my interfaces are ISomething...
L529[16:02:07] <diesieben07> see, there
you go
L530[16:03:41] <killjoy> at least kotlin
requires () on extending classes
L531[16:04:10] <diesieben07> it requires
you to call the constructor ;)
L532[16:04:15] <killjoy> mhm
L533[16:05:31] ⇦
Quits: bilde2910 (bilde2910@178.51-174-170.customer.lyse.net) (Ping
timeout: 204 seconds)
L534[16:07:21]
⇨ Joins: bilde2910
(bilde2910@178.51-174-170.customer.lyse.net)
L535[16:10:42] <barteks2x> so testing if
it works and if it does - I will submit another PR
L536[16:12:21] <ghz|afk> I like the way
superclass constructors are done in C#
L537[16:12:42] <ghz|afk> just like how
java's super() class must be first on the constructor
L538[16:12:48] <ghz|afk> C# goes one step
further
L539[16:13:01] <ghz|afk> ClassName( args):
base(args)
L540[16:13:02] <ghz|afk> {}
L541[16:13:04] <ghz|afk> or
L542[16:13:09] <ghz|afk> ClassName( args):
this(args) {}
L543[16:13:16] <ghz|afk> for constructors
in the same class
L544[16:13:26] <barteks2x> the java way
seems more flexible here
L545[16:13:35] <ghz|afk> how so= you can't
put anything before super ;P
L546[16:13:47] <barteks2x> but you can put
sifferent super() in different constructors
L547[16:13:53] <ghz|afk> so can you in
C#
L548[16:14:00] <diesieben07> oh so thats
where kotlin got it from :D
L549[16:14:03]
⇨ Joins: MonkeyTyrant (~MonkeyTyr@24.215.118.74)
L550[16:14:07] <ghz|afk> ClassName(a,b,c)
: base(a,c) {}
L551[16:14:13] <Lord_Ralex> ClassName
(arg1, arg2) : base(arg1) {d something with args}
L552[16:14:15] <ghz|afk> ClassName(d,e) :
base(d,1) {}
L553[16:14:18] <barteks2x> and you can
call static methods to get argument for super(), not sure about
C#
L554[16:14:38] <ghz|afk> you can put any
expression inside the base call
L555[16:14:53] <barteks2x> I guess
anything involving "this" dosn't count
L556[16:14:58] <ghz|afk> ClassName(a,b,c)
: base(Math.sin(a * c) + 1) {}
L557[16:15:28] <ghz|afk> (which is really
Math.Sin in C# -- titlecase)
L558[16:16:27] <ghz|afk> and yeah, you
can't use "this" before the start of the code block
L559[16:16:36] <ghz|afk> so no
base(this.X)
L560[16:17:46] <ghz|afk> the one thing I
don't know if I like more or not
L561[16:17:50] <ghz|afk> are generic type
constraints
L562[16:18:04] <ghz|afk> java has <?
extends X> and such
L563[16:18:23] <ghz|afk> C# has class
Blah<T> where T: something
L564[16:18:41] <ghz|afk> noting that
":" is C#'s equivalent of extends/implements
L565[16:18:48] <ghz|afk> so it reads
like
L566[16:19:03] <ghz|afk> "where T
(extends or implements) something"
L567[16:19:12] <barteks2x> does it allow
something like "allow all primitives"?
L568[16:19:18] <ghz|afk> T: struct
L569[16:19:23] <ghz|afk> allows primitives
and enums and structs
L570[16:19:25] <ghz|afk> basically all
valuetypes
L571[16:20:54] <ghz|afk> due to
reification, it has "default(T)" as a construct to be
substituted by the default value of the given type
L572[16:21:16] <ghz|afk> so ref types
would be null, numbers would be 0, enums would be the first element
in the list
L573[16:21:39] ⇦
Quits: MonkeyTyrant (~MonkeyTyr@24.215.118.74) (Quit:
Leaving)
L574[16:21:57] <ghz|afk> structs have a
strong implicit parameterless constructor, that fills all fields
with their default values
L575[16:22:08] <ghz|afk> and any
alternative constructor MUST assign all values
L576[16:23:02] <ghz|afk> working with
structs has one very annoying side-effect
L577[16:23:16] <ghz|afk> list_of_struct[0]
returns a copy of the value
L578[16:23:20] <ghz|afk> so
L579[16:23:27] <barteks2x> I really hope
java value types become a thing before MC java modding dies
L580[16:23:27] <ghz|afk>
list_of_struct[0].X = 1 is illegal
L581[16:23:40] <ghz|afk> because it can
never assign the value
L582[16:23:52] <ghz|afk> since it's a
purely temporary copy
L583[16:24:19] <barteks2x> so how do you
modify ones in arrays?
L584[16:24:26] <ghz|afk> you assign it
again
L585[16:24:45] ⇦
Quits: Javaschreiber
(~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Quit:
Javaschreiber)
L586[16:24:48] <ghz|afk> or use a method
with ref parameter
L587[16:24:50] <barteks2x> I just hope
their JIT optimizes it to something sensible
L588[16:24:55] <ghz|afk> like
L589[16:25:03] <ghz|afk> SetX(ref
list_of_struct[0], 1)
L590[16:25:04] <diesieben07> barteks2x, it
does ;)
L591[16:25:26] <diesieben07> java value
types are gonna be hella cool
L592[16:25:28] <ghz|afk> or it can be a
method on the struct
L593[16:25:34] <ghz|afk> since
"this" is byref even in structs
L594[16:25:50] <ghz|afk> so
L595[16:25:55] <ghz|afk>
list_of_struct[0].SetX(1)
L596[16:25:56] <ghz|afk> does work
L597[16:26:01] <ghz|afk> iirc...
L598[16:26:19] <ghz|afk> I'm now doubting
myself ;p
L599[16:27:19] <diesieben07> in java
values will always be completey immutable, i like that :D
L600[16:27:35] <ghz|afk> even in local
variables?
L601[16:27:48] <ghz|afk> so you won't be
able to do
L602[16:27:50] <diesieben07> well, i am
talking about the jvm side of things
L603[16:27:54] <ghz|afk> valuestruct x;
x.y=1; ?
L604[16:27:58] <diesieben07> the language
side is not done yet at all
L605[16:28:04] <ghz|afk> ah
L606[16:28:09] <diesieben07> on the jvm,
you always have to create a copy when you assign something
L607[16:28:15] <diesieben07> it will
probably work with locals
L608[16:28:20] <ghz|afk> right
L609[16:28:54] <ghz|afk> how are they
going to implement it?
L610[16:29:08] <ghz|afk> I have always
imagined structs not existing as local variables
L611[16:29:08] <diesieben07> well, there
is only very basic prototypes
L612[16:29:15] <ghz|afk> and just being a
whole bunch of separate values
L613[16:29:16] <ghz|afk> like
L614[16:29:20] <diesieben07> but afaik
they are just unpacked into registers
L615[16:29:21] <ghz|afk>
method(Vector2)
L616[16:29:29] <ghz|afk> would be in
practice
L617[16:29:33] <ghz|afk>
method(float,float)
L618[16:29:41] <ghz|afk> just the metadata
would say "nono, this is a Vector2!"
L619[16:29:57] <diesieben07> yes, but that
transformation needs to happen at runtime
L620[16:30:00] <diesieben07> not at
compile time
L621[16:30:06] <diesieben07> otherwise all
breaks loose with separate compilation
L622[16:30:20] <ghz|afk> right the
definition of Vector2 could change
L623[16:30:22] <barteks2x> so PR
submitted
L624[16:30:25] <ghz|afk> and the code
should continue working
L625[16:30:28] <diesieben07> yep
L626[16:30:38] <ghz|afk> so the JVM would
have to break apart the structs
L627[16:30:43] <diesieben07> thats what
they do in java afaik, the jvm transforms the method
signatures
L628[16:30:53] <ghz|afk> but the bytecode
would need dedicated valuetype instructions
L629[16:30:54] <diesieben07> so the values
just get passed broken up in registers
L630[16:30:58] <diesieben07> yep
L631[16:31:32] <diesieben07> where things
get problematic is fields
L632[16:31:33] <ghz|afk> I do suppose
C/C++ doesn't need that treatment
L633[16:31:38] <ghz|afk> but C#/Java
would
L634[16:31:55] <diesieben07> because
fields have "this is one thing" guarantees, i.e. you
don't get partial values
L635[16:32:05] <diesieben07> so you can't
just explode a Vec2 into two float fields
L636[16:32:21] <ghz|afk> not if they are
immutable
L637[16:32:22] <ghz|afk> ;p
L638[16:32:34] <ghz|afk> if each sub-field
is mutable separately, you could do it
L639[16:32:37] <diesieben07> the fields
dont have to be immutable
L640[16:32:50] <diesieben07> but if its
just two float fields, assignment is no longer atomic
L641[16:32:53] <ghz|afk> since
class.field1.field2 = 0
L642[16:32:57] <ghz|afk> is partial
modification
L643[16:33:02] <ghz|afk> and it could be
downconverted to
L644[16:33:07] <ghz|afk>
class.field1_field2 = 0
L645[16:33:23] <diesieben07> true, but
what if you do class.field = someLocalVar
L646[16:33:26] <ghz|afk> ah right
L647[16:33:33] <ghz|afk> assigning the
entire thing needs to become atoming
L648[16:33:34] <ghz|afk> atomic*
L649[16:33:43] <ghz|afk> so the jvm would
in that case need to have transactional field assignment
L650[16:33:49] <ghz|afk> push a copy of
the old value on the stack
L651[16:33:52] <ghz|afk> replace all
fields
L652[16:33:52] <diesieben07> that, or
locks, or... something
L653[16:34:00] <ghz|afk> if exception,
rollback
L654[16:34:27] <ghz|afk> hmmm
L655[16:34:27] <diesieben07> its not just
that
L656[16:34:35] <ghz|afk> you can't assure
atomicity in concurrency
L657[16:34:36] <diesieben07> you would
also have to guarantee that no other thread sees the half
value
L658[16:34:38] <ghz|afk> you just
can't
L659[16:34:47] <ghz|afk> C# doesn't even
try to
L660[16:34:49] <diesieben07> you can, wiht
locks
L661[16:34:58] <ghz|afk> it has
Interlocked.Exchange and such
L662[16:34:59] <diesieben07> but you
probably wont get that with "normal" value fields
L663[16:35:00] <barteks2x> well, assigning
an integer is atomic
L664[16:35:02] <ghz|afk> for
concurrency
L665[16:35:04] <ghz|afk> yes
L666[16:35:09] <ghz|afk> but assigning a
long in 32bit OS can't be
L667[16:35:18] <diesieben07> in java it
is.
L668[16:35:22] <diesieben07> afaik
L669[16:35:25] <ghz|afk> it can't be
L670[16:35:30] <diesieben07> they insert
locks then
L671[16:35:35] <diesieben07> they have to
implement the JMM
L672[16:35:37] <ghz|afk> I mean,
cpu-wise
L673[16:35:40] <diesieben07> yeah
L674[16:35:46] <ghz|afk> java would have
to use locks or interlocked operations
L675[16:36:00] <barteks2x> iirc it's not
for long
L676[16:36:09] <ghz|afk> but interlocked
exchanges on 64bit values are SLOW
L677[16:36:21] <barteks2x> in java logna
assignment is not defined as atomic
L678[16:36:21] <ghz|afk> on 32bit
cpu
L679[16:36:30] <barteks2x> by
specification it's not atomic at all
L680[16:36:47] <ghz|afk> that would make
more sense
L681[16:36:56] <ghz|afk> I would expect
structs to also not be atomic
L682[16:36:59] <ghz|afk> it would be
terribly slow
L683[16:37:37] <diesieben07> i didnt know
long and double really did that
L685[16:38:06] <ghz|afk> this agrees
L686[16:38:27] <ghz|afk> "Assignments
to volatile longs and doubles are guaranteed to be
atomic"
L687[16:38:32] <diesieben07> yes
L688[16:38:37] <ghz|afk> I assume that
means "volatile long" has implicit interlocks
L689[16:39:04] <diesieben07> it does
something to ensure atomicity
L690[16:39:10] <diesieben07> which on
64bit is probably not much
L691[16:39:30] <ghz|afk> yeah on x64, it's
"free"
L692[16:39:35] <ghz|afk> on x86/32 it
isn't
L693[16:40:08] <barteks2x> and making java
work on 16bit anything would be near impossible :D
L694[16:40:18] <diesieben07> not
really
L695[16:40:21] <diesieben07> just hella
slow
L696[16:40:42] <ghz|afk> depends on the
cpu features really
L697[16:40:50] <ghz|afk> on 16bit x86, it
would be horrible
L698[16:40:58] <ghz|afk> other cpu
architectures may have "chained locking"
L699[16:41:04] <ghz|afk> the way x86 locks
work
L700[16:41:11] <ghz|afk> is that each cpu
core has a "lock" signal
L701[16:41:18] <ghz|afk> if the lock
signal is active
L702[16:41:28] <ghz|afk> the address in
the address bits is considered locked
L703[16:41:35] <ghz|afk> and other cpus
wanting to access the smae address will stall
L704[16:41:42] <ghz|afk> until the lock
signal goes inactive
L705[16:41:51] <ghz|afk> so it's VERY
limited
L706[16:41:52] <ghz|afk> ;P
L707[16:42:10] <ghz|afk> and doesn't
protect against random context switching
L708[16:42:22] <ghz|afk> (unless lock also
disables interrupts, but I don't remember that being the
case)
L709[16:43:19] <ghz|afk> ah no I was
wrong
L711[16:43:29] <ghz|afk> LOCK# causes ANY
memory access to stall
L712[16:43:35] <ghz|afk> if it happens to
a shared memory location
L713[16:43:53] <ghz|afk> ah, but newer
cpus don't just use the LOCK# signal
L714[16:44:01] <ghz|afk> and may have an
internal inter-core signaling
L715[16:44:18] <barteks2x> Does OS even
allow yout o use LOCK?
L716[16:44:23] <ghz|afk> sure
L717[16:44:27] ***
AbrarSyed is now known as Abrar|gone
L718[16:44:29] <ghz|afk> that's how
InterlockedExchange and such are implemented
L719[16:44:42] <ghz|afk> "lock xchg
reg, [mem]"
L720[16:44:47]
⇨ Joins: KklyAq
(~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L721[16:45:02] <ghz|afk> that is nice and
easy for data widths supported by the cpu registers
L722[16:45:11] <ghz|afk> but atomic access
can't be ensured if you need bigger access
L723[16:45:24] <ghz|afk> hence why 64bit
atomics are slow on 32bit cpu
L724[16:46:22] <Subaraki> okay so, arrows
created with the itemarrow's createArrow render particle effects on
relogging, while I use regular arrows
L725[16:46:46] <ghz|afk> aren't regular
arrows crated differently?
L726[16:47:00] <ghz|afk> I thought
ItemArrow#createArrow is specific to tipped arrows
L727[16:47:10] <Subaraki> nah
L728[16:47:12] <Subaraki> this.potion =
PotionTypes.EMPTY;
L729[16:47:18] <Subaraki>
this.customPotionEffects.clear();
L730[16:47:30] <Subaraki> else if
(stack.getItem() == Items.ARROW)
L731[16:47:33] <Subaraki> ^
L732[16:47:36] <ghz|afk> it still creates
EntityTippedArrow
L733[16:47:40] <ghz|afk> isntead of
EntityArrow
L734[16:47:41] <Subaraki> it has a check
for arrows, and one for tipped arrows
L735[16:48:25] <ghz|afk> OOOOH
L736[16:48:28] <ghz|afk> tricky
bastards
L737[16:48:36] <ghz|afk> EntityArrow is
now SpectralArrow
L738[16:48:46] <ghz|afk> EntityTippedArrow
adopted normal arrows also
L739[16:48:51] <Subaraki> yeah
L740[16:49:26] <Subaraki> EntityArrow
being a common denominator though, if you want to check for
anything that is a projectile arrow, you can check for
EntityArrow
L741[16:49:28] <ghz|afk> gotta make an
issue at the mcpbot repository
L742[16:49:29] <Subaraki> includes all of
them
L743[16:50:11]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-15-185.dhcp.embarqhsd.net)
L744[16:50:15] ⇦
Quits: KklyAq (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp) (Ping
timeout: 204 seconds)
L745[16:50:46] <Subaraki> ghz|afk, both
spectral and tipped arrows extend EntityArrow
L746[16:50:51] <Subaraki> what are you on
about ?
L747[16:51:16] <ghz|afk> i'm looking at
1.12
L748[16:51:29] <Subaraki> me too
L749[16:51:36] <Subaraki> public class
EntitySpectralArrow extends EntityArrow
L750[16:51:39] <ghz|afk> wait you are
right
L751[16:51:47] <Subaraki> public class
EntityTippedArrow extends EntityArrow
L752[16:52:12] <ghz|afk> hmmm
L753[16:52:13] <ghz|afk> right
L754[16:52:14] <Subaraki> its just a
common class that handles all the flying and rendering etc...
L755[16:52:16] <ghz|afk>
EntityArrow.registerFixesArrow(fixer,
"SpectralArrow");
L756[16:52:17] <ghz|afk> I saw that
L757[16:52:22] <ghz|afk> and I assumed
wrongly
L758[16:52:23] <ghz|afk> ;p
L759[16:52:28] <Subaraki> happens to the
best =)
L760[16:52:29] <ghz|afk> I'm tired I
should go to sleep
L761[16:52:36] <Subaraki> good idea
xD
L762[16:52:40] <Subaraki> talking of
which
L763[16:52:47] <Subaraki> i heard sleeping
in a hammock is better then sleeping in a bed
L764[16:52:51] <Subaraki> gonna try that
asap
L765[16:52:56] <Subaraki> when i buy
myself a hammock
L766[16:53:00] <Subaraki> (bought one for
the gf)
L767[16:53:44] <Subaraki> its really
comfy
L768[16:53:53] <Subaraki> and the naps you
take in it are a blessing
L769[16:54:09] <Subaraki> and the position
you have in it is way more comfartable then laying down flat on
your back
L770[16:54:18] <Subaraki> lol,
com-fart-able
L771[16:54:27] <Subaraki> comfortable
*
L772[16:57:06]
⇨ Joins: VoxelBuster
(~VoxelBust@pool-108-36-247-130.phlapa.fios.verizon.net)
L773[16:57:09] <VoxelBuster> hi all
L774[17:00:27] <Subaraki> hiya
L775[17:00:53] <VoxelBuster> i have an
issue with fluids in my 1.12 mod im working on
L776[17:00:55] ***
diesieben07 is now known as diesieben|away
L777[17:01:27] ⇦
Quits: Actuarius (~Actuarius@195.91.246.187) (Ping timeout: 383
seconds)
L778[17:01:58]
⇨ Joins: Actuarius (~Actuarius@195.91.246.187)
L779[17:02:19] <Subaraki> aaaah
L780[17:02:19] <Subaraki> yes
L781[17:02:20] <Subaraki> fluids
L782[17:02:24] <Subaraki> never worked
with them ._.
L783[17:02:28] <Subaraki> what's the issue
though ?
L784[17:02:32] <VoxelBuster> yeah missing
textures
L785[17:02:36] <VoxelBuster> but no
texture errors
L786[17:02:44] <VoxelBuster> thats the odd
part
L787[17:03:03] <VoxelBuster> i have my
blockstate json files and mcmeta files in place too
L788[17:03:22] <Subaraki> texture probably
exist
L789[17:03:26] <Subaraki> and are in the
correct path
L790[17:03:26] <VoxelBuster> yes
L791[17:03:31] <Subaraki> is the block
being correctly registered ?
L792[17:03:34] <VoxelBuster> pretty
sure
L793[17:03:47] <Subaraki> we're going to
need to see some code
L794[17:03:52] <VoxelBuster> yes because
it shows up in my creative tab and the bucket shows up too
L795[17:04:03] <Subaraki> i mean the
renderer
L796[17:04:05] <Subaraki> anyway
L798[17:04:26] <VoxelBuster> just
pushed
L799[17:04:31] <Subaraki> can you pastebin
the state, the registery code, both for rendering and game, and
then also the item json ?
L800[17:04:57] <VoxelBuster> yeah hold
on
L801[17:05:47] <VoxelBuster> so that one
file i linked you too handles all 3 fluids
L802[17:06:12] <VoxelBuster> and the
rendering
L804[17:06:50] <Subaraki> not sure if you
need the forge marker per-sé
L805[17:07:23] <VoxelBuster> its what i
saw in a tutorial
L806[17:07:28] <VoxelBuster> im pretty new
to modding
L807[17:07:44] <barteks2x> stupid discord
just made me waste 15 minutes explaining something to someone that
he tirned out to already knoe because it showed me screenshot
previews in the wrong order...
L808[17:07:45] <VoxelBuster> i didnt see
much for renderers so my rendering code is probably whats
wrong
L809[17:08:38] <Subaraki> missing textures
is always a pain
L810[17:08:49] <Subaraki> i myself didnt
register blocks in the way you do yet
L811[17:08:54] <Subaraki> but the
forgemarker might be a start
L812[17:09:11] <Subaraki> you don't need
them, unless you render some kind of subparts some way iirc
L813[17:09:17] <VoxelBuster> oh yeah they
removed gameregistry.register
L814[17:09:20] <VoxelBuster> and ok
L815[17:11:03] <VoxelBuster> yeah still
no
L816[17:11:18] <VoxelBuster> removed the
forge_marker line on all 3 blockstate files
L817[17:14:12] <Subaraki> *cant remember
if i have any blocks*
L818[17:14:14] <Subaraki> i might have
one
L819[17:14:15] <Subaraki> just a sec
L820[17:14:31] <VoxelBuster> i got all of
my generic items and blocks working
L821[17:14:35] <VoxelBuster> just not
fluids
L822[17:14:48] <VoxelBuster> or tile
entities for that matter but ill worry about that later
L823[17:15:32] <Subaraki> tile entities
are just blocks really
L824[17:15:41] <Subaraki> with an entity
bound to them
L825[17:15:48] <Subaraki> shouldn't be any
different from regular blocks
L826[17:15:54] <Subaraki> unless specifics
modify the model
L827[17:16:00] <VoxelBuster> yeah i know
but i had mine extend the furnace TE
L828[17:16:06] <Subaraki> bad idea
L829[17:16:14] <VoxelBuster> yeah i
learned that the hard way
L830[17:16:16] <Subaraki> that's vanilla
code
L831[17:16:22] <VoxelBuster> gonna have to
rewrite it now
L832[17:16:31] <Subaraki> you'd be better
of recreating a furnace but with capabilities
L833[17:16:41] <VoxelBuster> woo more
tutorials
L834[17:16:46] <VoxelBuster> anyway
fluids
L835[17:17:09] <VoxelBuster>
actually
L836[17:17:22] <VoxelBuster> im going to
go grab some food real quick and then ill be back
L837[17:28:32] ⇦
Quits: MikrySoft (~kvirc@89-76-18-43.dynamic.chello.pl) (Ping
timeout: 183 seconds)
L838[17:31:10] <Subaraki> how do i check
for pvp ?
L839[17:32:49] <Subaraki>
this.capabilities.disableDamage
L840[17:32:51] <Subaraki> found it
L841[17:35:17] <VoxelBuster> i have
returned
L842[17:39:22] <VoxelBuster> all of the
fluids behave like fluids but they render like normal blocks with
missing textures
L843[17:44:50] <VoxelBuster> so i also
have my ModFluids.renderFluids() method firing in init not preInit
because putting it in preInit causes an NPE. Would this affect
it?
L844[17:48:35] <VoxelBuster> for whatever
reason the registry event queue doesnt actually fire until the
preInit method finishes, so my methods in ModFluids get run out of
order
L845[17:50:53] ⇦
Quits: TomyLobo (~TomyLobo@2a02:8109:87c0:20c:48d3:46b:3a65:efa8)
(Ping timeout: 195 seconds)
L846[17:51:11] ⇦
Quits: VoxelBuster
(~VoxelBust@pool-108-36-247-130.phlapa.fios.verizon.net)
()
L847[17:53:52] <Corosus> disableDamage
isnt for pvp, thats for creative/spec no damage, use
MinecraftServer.enablePvp probably
L848[17:54:15] <Corosus> err
MinecraftServer.pvpEnabled
L849[17:55:29]
⇨ Joins: VoxelBuster
(~VoxelBust@pool-108-36-247-130.phlapa.fios.verizon.net)
L850[17:58:47] <VoxelBuster> AH
L851[17:58:49] <VoxelBuster> i got
it
L852[17:59:02] <VoxelBuster> the ItemBlock
still has a missing texture
L853[17:59:10] <VoxelBuster> but the fluid
itself renders correctly
L854[17:59:36] <VoxelBuster> the model
loader has to run in preinit so i had it fire in
ModFluids.registerItems()
L855[18:00:12] <VoxelBuster> The player
should not be able to obtain the fluid block anyway in game so the
itemblock missing the texture doesnt really matter
L856[18:02:38] <VoxelBuster> actually only
the first one renders correctly
L857[18:02:42] <VoxelBuster> the rest are
still broken
L858[18:03:21] <VoxelBuster> thats quite
strange
L859[18:06:57] <VoxelBuster> any idea on
that?
L860[18:10:41] ⇦
Quits: auenf (David@CPE-139-168-163-14.lns10.woo.bigpond.net.au)
(Ping timeout: 186 seconds)
L862[18:13:52] ⇦
Quits: Abrar|gone (~AbrarSyed@ipv6.abrarsyed.com) (Quit: All things
are trivial once you've mastered them.)
L863[18:13:52] ⇦
Quits: diesieben|away (~diesieben@abrarsyed.com) (Quit: ZNC -
http://znc.in)
L864[18:13:52] ⇦
Quits: x3n0ph0b3 (~x3n0ph0b3@2001:19f0:6400:8965:5400:ff:fe07:8777)
(Quit: ZNC - http://znc.in)
L865[18:14:01] <Subaraki> no sorry
:/
L866[18:14:27] <VoxelBuster> it would be
nice if there was missing model errors
L867[18:14:45] <VoxelBuster> is there a
way i can see more debug output?
L868[18:15:44]
⇨ Joins: Abrar|gone
(~AbrarSyed@ipv6.abrarsyed.com)
L869[18:15:44]
MineBot sets mode: +o on Abrar|gone
L870[18:16:12] ***
Abrar|gone is now known as AbrarSyed
L871[18:16:29] ⇦
Quits: Spottedleaf
(~Spottedle@node-1w7jr9qqos9g1scsom0y7ds5h.ipv6.telus.net) (Ping
timeout: 383 seconds)
L872[18:16:35]
⇨ Joins: diesieben|away
(~diesieben@abrarsyed.com)
L873[18:17:02] ***
diesieben|away is now known as diesieben07
L874[18:18:15]
⇨ Joins: Wuppy (~wuppyZNC@abrarsyed.com)
L875[18:18:26]
⇨ Joins: x3n0ph0b3
(~x3n0ph0b3@2001:19f0:6400:8965:5400:ff:fe07:8777)
L876[18:20:32] <VoxelBuster> yep model
errors dont even show in debug or trace level logging
L877[18:21:32]
⇨ Joins: auenf
(David@CPE-60-229-37-95.lns7.ken.bigpond.net.au)
L878[18:26:06] ⇦
Quits: sinkillerj (~sinkiller@nc-67-232-15-185.dhcp.embarqhsd.net)
(Ping timeout: 383 seconds)
L879[18:27:18] ⇦
Quits: fscan (~fscan@shodan.chilicode.com) (Ping timeout: 204
seconds)
L880[18:29:44] <VoxelBuster> okay the
"forge_marker": 1, line is actually needed
L881[18:38:08] <LexMobile> Anyone here
wanna work on some ideas that require gui work?
L882[18:40:36] ⇦
Quits: VoxelBuster
(~VoxelBust@pool-108-36-247-130.phlapa.fios.verizon.net)
()
L883[18:41:38] <tterrag> what kind of work
>.>
L884[18:41:44] <tterrag> s/work/gui
work/
L885[18:42:10] <LexMobile> re working the
advancements screen.
L886[18:42:33] <LexMobile> I had a thought
last night on how to solve the issues like kill_a_mob and
kill_all_mobs
L887[18:42:42] <tterrag> I'm not
familiar
L889[18:45:34] <LexMobile> The problem
with kill_all_mobs is that they want it to trigger after killing
all vanilla mobs, and all modded mobs.
L890[18:46:06] <LexMobile> When I am
thinking is we break it into
kill_all_mobs_[Minecraft|Thaumcraft|Forestry] advancements.
L891[18:46:46] <LexMobile> And then the
kill_all_mobs have a AND criteria list of 'has advancement:
kill_all_mobs_minecraft' tc..forestry... etc..
L892[18:48:18] <LexMobile> But,
visualizing that is a bit weird. Because as it sits the
advancements are just one long chain. A->B->C, we need to
rework the advancements GUI to be A->B->C, but when you click
on B, it loads B.a and B.b
L893[18:50:07] <LexMobile> And we'd have
to have some form of signal to distinguish between "AND"
and "OR" requirements. Example being the different
between kill_all and kill_a, They are essentially the same, except
kill_a is 'Any Vanilla | Any Thamcraft | Any Forestry' and kill_all
is 'All Vanilla && All Thaumcraft && All
Forestry'
L894[18:54:15] ⇦
Quits: eyamaz (~sid40777@id-40777.brockwell.irccloud.com) (Read
error: Connection reset by peer)
L895[18:54:24] ⇦
Quits: TamasHenning (uid154987@id-154987.ealing.irccloud.com) (Ping
timeout: 204 seconds)
L896[18:54:29] <tterrag> hm
L897[18:54:35]
⇨ Joins: eyamaz
(sid40777@id-40777.brockwell.irccloud.com)
L898[18:54:37] <tterrag>
advancements/achievements have never really supported multiple
parents
L899[18:54:40] <tterrag> that might be
confusing
L900[18:54:52]
⇨ Joins: TamasHenning
(uid154987@id-154987.ealing.irccloud.com)
L901[18:56:16] <LexMobile> Its not
multiple parents
L902[18:56:18] ⇦
Quits: kashike (kashike@is.sleeping.in.the.kingdom.of.kandarin.xyz)
(Ping timeout: 204 seconds)
L903[18:56:24] <LexMobile> its multiple
requirements{children}
L904[18:56:35] <LexMobile> err not
children, just requirements.
L905[18:56:40] <tterrag> just multiple
criteria
L906[18:56:47] <tterrag> so the question
is how to display multiple criteria?
L907[18:57:15] <LexMobile> yes
L908[18:57:34] ⇦
Quits: Techokami (Techokami@znc.theender.net) (Ping timeout: 204
seconds)
L909[18:58:47] <LexMobile> Im not quite
sure how to lay it out or anything.
L910[18:59:14]
⇨ Joins: kashike
(kashike@is.sleeping.in.the.kingdom.of.kandarin.xyz)
L911[18:59:35]
⇨ Joins: Techokami (Techokami@znc.theender.net)
L912[19:03:21] <tterrag> yeah that's a
tricky one
L913[19:20:32]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-15-185.dhcp.embarqhsd.net)
L914[19:31:30] ⇦
Quits: CorexTech
(~edmonds@99-108-142-68.lightspeed.sntcca.sbcglobal.net) (Read
error: Connection reset by peer)
L915[19:31:44]
⇨ Joins: CorexTech
(~edmonds@99-108-142-68.lightspeed.sntcca.sbcglobal.net)
L916[19:46:22] ⇦
Quits: Brokkoli (~Brokkoli@p5B23CD11.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))
L917[19:46:35]
⇨ Joins: VoxelBuster
(~VoxelBust@pool-108-36-247-130.phlapa.fios.verizon.net)
L918[19:46:53] <VoxelBuster> new
problem
L919[19:47:09] <VoxelBuster> biome manager
not registering biomes?
L920[19:55:03] ⇦
Quits: ben_mkiv (~ben_mkiv@p4FED5270.dip0.t-ipconnect.de) (Ping
timeout: 183 seconds)
L921[20:06:30] ⇦
Quits: VoxelBuster
(~VoxelBust@pool-108-36-247-130.phlapa.fios.verizon.net)
()
L922[20:13:17] ⇦
Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout:
186 seconds)
L923[20:22:51]
⇨ Joins: abab9579 (~Abastro@110.70.46.220)
L924[20:25:20]
⇨ Joins: A1b3 (~Abastro@110.35.38.113)
L925[20:28:15] ⇦
Quits: Abastro (~Abastro@110.35.38.113) (Ping timeout: 383
seconds)
L926[20:29:42] ⇦
Quits: abab9579 (~Abastro@110.70.46.220) (Ping timeout: 383
seconds)
L927[20:30:51]
⇨ Joins: Abastro (~Abastro@175.223.20.250)
L928[20:32:03]
⇨ Joins: killjoy1
(~killjoy@cpe-174-109-175-105.nc.res.rr.com)
L929[20:35:14] ⇦
Quits: killjoy (~killjoy@2606:a000:1118:825b:a99f:7d33:5a71:a880)
(Ping timeout: 204 seconds)
L930[20:35:28] ⇦
Quits: A1b3 (~Abastro@110.35.38.113) (Ping timeout: 383
seconds)
L931[20:54:09] ⇦
Quits: Wastl2_ (~Wastl2@x4e341244.dyn.telefonica.de) (Read error:
Connection reset by peer)
L932[20:56:16]
⇨ Joins: abab9579 (~Abastro@110.35.38.113)
L933[20:59:31]
⇨ Joins: Wastl2
(~Wastl2@x4e34cadf.dyn.telefonica.de)
L934[21:00:57] ⇦
Quits: Abastro (~Abastro@175.223.20.250) (Ping timeout: 383
seconds)
L935[21:04:13] ⇦
Quits: auenf (David@CPE-60-229-37-95.lns7.ken.bigpond.net.au) (Ping
timeout: 204 seconds)
L936[21:08:19] ⇦
Quits: h5h77 (~h5h77@2a02:8108:4b40:907:922b:34ff:feae:b38b)
(Remote host closed the connection)
L937[21:09:41]
⇨ Joins: auenf (David@120.154.78.136)
L938[21:23:48]
⇨ Joins: Waterpicker
(~Waterpick@2602:306:35ba:ca40:b18d:6f90:9c7e:e5d6)
L939[21:36:06] ⇦
Quits: Dark (~MrDark@2607:fcc8:d48b:eb00:e14e:529f:a468:4c39) (Read
error: Connection reset by peer)
L940[21:38:22] ⇦
Quits: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
(Quit: Poof)
L941[21:42:53]
⇨ Joins: McJty
(~jorrit@d8D872121.access.telenet.be)
L942[21:50:52] ⇦
Quits: Luck (~Luck@unlucky.lucko.me) (Ping timeout: 204
seconds)
L943[21:51:09]
⇨ Joins: Luck (~Luck@unlucky.lucko.me)
L944[22:04:56]
⇨ Joins: KnightMiner
(~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L945[22:17:17]
⇨ Joins: Dark
(~MrDark@2607:fcc8:d48b:eb00:80f4:79f9:46d7:697e)
L946[22:21:03] <KnightMiner> Is there a
clean way to get side clicked in onBlockPlacedBy? I want to use it
for setting TE data as the TE does not exist in onBlockPlaced
L947[22:22:03] <Ordinastie> you could do
it in the item
L948[22:24:31] <KnightMiner> I guess thats
an option, I was hoping to avoid a custom itemBlock though
L949[22:24:53] <KnightMiner> But can I
gaurentee the item use is after the block TE is created?
L950[22:26:03] <KnightMiner> Oh wait, I
see no method to overrride without completely rewriting block
placement logic
L951[22:26:42] <Ordinastie> if only there
was a way to call the original logic
L952[22:27:37]
⇨ Joins: Abastro (~Abastro@110.70.47.75)
L953[22:28:47] <KnightMiner> Oh yes, if
only. A super method would be great, wouldn't it
L954[22:29:15]
⇨ Joins: A1b3 (~Abastro@175.223.18.125)
L955[22:29:47] <Ordinastie> alternatively,
depending on what you need, you could make the side dependant data
of your block into the block state directly
L956[22:29:51] <Ordinastie> if
possible
L957[22:29:55] <KnightMiner> You are aware
the passed in position is calculated by onItemUse
L958[22:30:25] ⇦
Quits: abab9579 (~Abastro@110.35.38.113) (Ping timeout: 383
seconds)
L959[22:30:37] <KnightMiner> Not really
something that would work in the blockstate itself, its used to
determine how the block should connect to prior blocks of the type
rather than how the block is shaped directly
L960[22:30:43]
⇨ Joins: abab9579 (~Abastro@112.166.159.23)
L961[22:31:09] <Ordinastie> and no,
onItemUse receives everything as params
L962[22:31:32] <KnightMiner> It handles
replaceable. Still a bit cleaner than handling my own hit vector
though
L963[22:31:36]
⇨ Joins: Spottedleaf
(~Spottedle@node-1w7jr9qqos9g16yjwryoxkl5m.ipv6.telus.net)
L964[22:31:42] <Ordinastie> ah right
L965[22:32:00] <KnightMiner> I guess
custom itemblock it is
L966[22:32:25] <KnightMiner> Not a fan of
running it twice, but its just on block placement so the loss is
minimal
L967[22:32:43] <Ordinastie> running it
twice ?
L968[22:34:16] ⇦
Quits: Abastro (~Abastro@110.70.47.75) (Ping timeout: 383
seconds)
L969[22:34:26] <Ordinastie> actually,
override placeBlockAt
L970[22:34:38] <Ordinastie> that's
probably better
L971[22:35:42] ⇦
Quits: A1b3 (~Abastro@175.223.18.125) (Ping timeout: 383
seconds)
L972[22:36:23] ⇦
Quits: abab9579 (~Abastro@112.166.159.23) (Read error: Connection
reset by peer)
L973[22:38:05] <KnightMiner> Oh yeah, then
I dont need to calculate replaceable position again
L974[22:38:25] <KnightMiner> Like, they
could have literally passed in the facing argument from there into
onBlockPlacedBy...
L975[22:38:49] <Ordinastie> they don't
need it so they don't pass it
L976[22:39:05] <Ordinastie> they really
don't care about conveniance for mods
L977[22:51:59] ⇦
Quits: Lathanael|Away (~Lathanael@p54960939.dip0.t-ipconnect.de)
(Ping timeout: 186 seconds)
L978[22:58:03]
⇨ Joins: Lathanael|Away
(~Lathanael@p549607A5.dip0.t-ipconnect.de)
L979[23:13:46] ⇦
Quits: McJty (~jorrit@d8D872121.access.telenet.be) (Quit:
Leaving)
L980[23:30:33] ⇦
Quits: KnightMiner
(~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Quit:
Leaving)
L981[23:43:39]
⇨ Joins: Abastro (~Abastro@143.248.192.46)
L982[23:48:04] ⇦
Quits: Rokiyo (~Rokiyo@101.167.173.217) (Ping timeout: 204
seconds)
L983[23:55:13]
⇨ Joins: Rokiyo (~Rokiyo@101.167.173.217)