<<Prev
Next>>
Scroll to Bottom
Stuff goes here
L1[00:05:24] ⇨
Joins: AshIndigo
(~AshIndigo@188.29.164.211.threembb.co.uk)
L2[00:06:38] ⇨
Joins: Hunterz
(~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L3[00:13:51] ⇦
Quits: killjoy (~killjoy@71.65.228.225) (Read error: Connection
reset by peer)
L4[00:17:51] ⇦
Quits: AshIndigo (~AshIndigo@188.29.164.211.threembb.co.uk) (Quit:
Bye)
L5[00:21:32] ⇦
Quits: otho (~otho@191.189.97.98) (Remote host closed the
connection)
L6[00:29:22] ***
fry|sleep is now known as fry
L7[00:33:35] ⇨
Joins: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L8[00:34:17] ⇦
Quits: Abastro (~Abastro@175.117.182.109) (Ping timeout: 384
seconds)
L9[00:41:49] ***
tterrag is now known as tterrag|ZZZzzz
L10[00:42:28] ***
Darkevilmac is now known as DarkevilAway
L11[00:44:24] ⇦
Quits: Brokkoli (~Brokkoli@p5b23c07c.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))
L12[00:47:57] ⇦
Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Read error:
Connection reset by peer)
L13[00:55:40] ⇨
Joins: alekso56 (~znc@ti0107a400-1168.bb.online.no)
L14[01:00:33] ⇦
Quits: Alex_hawks
(~Alex_hawk@2001:8003:84cf:5b00:556f:1d28:5aef:ce10) (Read error:
Connection reset by peer)
L15[01:00:52] ⇨
Joins: Alex_hawks
(~Alex_hawk@2001:8003:84cf:5b00:556f:1d28:5aef:ce10)
L16[01:04:50] ***
minecreatr is now known as Mine|dreamland
L17[01:08:58] ⇨
Joins: l4mRh4X0r
(l4mRh4X0r@l4mrh4x0r.student.ipv6.utwente.nl)
L18[01:12:30] ⇨
Joins: AshIndigo
(~AshIndigo@188.29.164.211.threembb.co.uk)
L19[01:26:53] ⇦
Quits: Doty1154 (~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net)
(Read error: Connection reset by peer)
L20[01:31:09] ⇦
Quits: secknv (~secknv@2001:8a0:6c72:2a01:e1ad:ff48:b79e:85a)
(Quit: Leaving)
L21[01:31:48] ⇨
Joins: Naiten (Naiten@77.35.200.62)
L22[01:39:16] ⇨
Joins: ThePsionic (~ThePsioni@95.85.52.128)
L23[01:42:50] ⇦
Quits: workweaver (~awweaver@208.185.88.22) (Quit:
workweaver)
L24[01:46:44] ⇨
Joins: killjoy (~killjoy@71.65.228.225)
L25[01:53:15] ⇨
Joins: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L26[01:59:40] <MCPBot_Reborn> [TEST CSV]
Pushing snapshot_20161027 mappings to Forge Maven.
L27[01:59:43] <MCPBot_Reborn> [TEST CSV]
Maven upload successful for mcp_snapshot-20161027-1.10.2.zip
(mappings = "snapshot_20161027" in build.gradle).
L28[01:59:54] <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/
L29[02:05:21] ⇨
Joins: Zed_ (~Zed@host-92-20-246-59.as13285.net)
L30[02:05:57] ⇦
Quits: Zed (~Zed@host-2-96-98-212.as13285.net) (Ping timeout: 198
seconds)
L31[02:06:06] ⇨
Joins: Abastro (~Abastro@211.246.68.97)
L32[02:13:22] ⇨
Joins: Jezza (~Jezza@bps-gw.hrz.tu-chemnitz.de)
L33[02:18:33] ⇦
Quits: AshIndigo (~AshIndigo@188.29.164.211.threembb.co.uk) (Ping
timeout: 198 seconds)
L34[02:19:10] ***
AbrarSyed is now known as Abrar|gone
L35[02:27:27] ⇦
Quits: blood_ (unknown@ool-4574115b.dyn.optonline.net)
()
L36[02:32:29] ⇦
Quits: Naiten (Naiten@77.35.200.62) (Read error: Connection reset
by peer)
L37[02:43:39] <Subaraki> if i want to make
a pr, do i edit the forge or clean project ?
L38[02:43:53] <Ordinastie> you edit
forge
L39[02:44:05] <Ordinastie> and then
generate patches against the clean project
L40[02:44:11] <Ordinastie> and pr the
patches
L41[02:44:37] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 384
seconds)
L42[02:44:46] <Subaraki> hmkay
L43[02:44:56] <Subaraki> i'll ask later how
to do patches
L44[02:46:34] <Ordinastie> gradlew
genPatches iirc
L45[02:49:16] ⇦
Quits: Thefjong (~Thefjong@3e6b1b1c.rev.stofanet.dk) (Read error:
Connection reset by peer)
L46[02:49:45] ⇨
Joins: AshIndigo
(~AshIndigo@188.29.164.226.threembb.co.uk)
L47[02:50:38] ⇨
Joins: jordibenck (~jordi@86.89.212.184)
L48[02:56:21] ⇦
Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Read error:
Connection reset by peer)
L49[02:58:32] <Subaraki> k, nice
thanks
L50[02:58:56] <Subaraki> what would be a
good name for an event that is fired after setting rotation angles
for models ?
L51[02:59:05] <Subaraki> ModelRotationEvent
... ?
L52[02:59:25] <Subaraki>
ModelPostRotationEvent ?
L53[03:01:01] <AshIndigo> I would say post
rotation
L54[03:03:54] ⇨
Joins: alekso56 (~znc@ti0107a400-1168.bb.online.no)
L55[03:04:37] ⇨
Joins: abab9579 (~Abastro@175.117.182.109)
L56[03:05:51] <Subaraki> thanks AshIndigo
:)
L57[03:07:51] ⇦
Quits: Abastro (~Abastro@211.246.68.97) (Ping timeout: 384
seconds)
L58[03:21:49] ⇦
Quits: kinggoesgaming (uid23106@id-23106.tooting.irccloud.com)
(Quit: Connection closed for inactivity)
L59[03:23:57] ⇦
Quits: AstralSorcerer (~AstralSor@128.151.114.213) (Ping timeout:
198 seconds)
L60[03:26:35] ***
abab9579 is now known as Abastro
L61[03:33:13] <PitchBright> o/
L62[03:33:48] ⇨
Joins: Larry1123 (Larry1123@irc.larry1123.net)
L63[03:35:52] ***
Darkhax is now known as Darkhax_AFK
L64[03:38:25] <killjoy> why is ublock
showing ads blocked on the newtab page?
L65[03:52:03] ⇨
Joins: Snapples
(uid167569@2604:8300:100:200b:6667:1:2:8e91)
L66[03:52:54] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 186
seconds)
L67[03:54:33] ⇦
Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout:
198 seconds)
L68[03:57:10] ⇦
Quits: Subaraki
(~Artix@mf763-h01-176-150-102-154.dsl.sta.abo.bbox.fr) (Ping
timeout: 186 seconds)
L69[03:57:51] ⇨
Joins: Subaraki
(~Artix@mf763-h01-176-150-102-154.dsl.sta.abo.bbox.fr)
L70[03:59:08] <Subaraki> looks like the
hook is working !
L72[03:59:23] <Subaraki> hi PitchBright
o/
L73[04:01:57] ⇨
Joins: Larry1123 (Larry1123@irc.larry1123.net)
L74[04:02:47] ⇦
Quits: killjoy (~killjoy@71.65.228.225) (Ping timeout: 206
seconds)
L76[04:12:40] ⇨
Joins: AshIndigo_ (webchat@31.221.112.156)
L77[04:29:21] ⇨
Joins: gigaherz|work (~gigaherz@84.89.63.25)
L78[04:30:19] <gigaherz|work> So I have had
a sortof random thought stuck in my head today
L79[04:31:02] <gigaherz|work> wouldn't it
be possible to make the model baking and texture stitching more of
a "on-demand" operation, so that models and textures that
aren't actually referenced don't really get loaded
L80[04:32:06] <gigaherz|work> stitching
right now is an horribly slow operation, though, so maybe it
wouldn't be smooth enough to do asynchronously
L81[04:35:15] <Ordinastie> you want to lazy
stitch ?
L82[04:36:39] <gigaherz|work> not so much
want
L83[04:37:07] <gigaherz|work> as I think it
would be an improvement over what we have now -- maybe
L84[04:38:21] <gigaherz|work> it's hard to
find information about the topic, though
L85[04:38:48] ⇦
Quits: AshIndigo_ (webchat@31.221.112.156) (Ping timeout: 195
seconds)
L86[04:38:55] <gigaherz|work> apparently
"lazy stitching" is a common topic in embroidery ¬¬
L87[04:39:21] <Ordinastie> maybe because
it's not possible here :p
L88[04:39:43] <gigaherz|work> nah it is
possible
L89[04:40:42] <Ordinastie> you would need
to restitch every texture every time a new one is added
L90[04:40:58] <gigaherz|work> sortof
L91[04:41:37] <Ordinastie> "hey, here
is a slow process, let's make it so it does multiple times during
gameplay instead of once during startup" ><
L92[04:41:41] <gigaherz|work> you'd need a
stitching algorithm that can avoid uploading every single
texture
L93[04:41:55] <gigaherz|work> mc already
refreshes subrects of the atlas
L94[04:41:58] <gigaherz|work> for animation
purposes
L95[04:42:26] <Ordinastie> yes, but no
stitching is required there
L96[04:42:31] <gigaherz|work> the slow
operation would be "defragmenting" the altas to make room
for bigger textures, and resizing the atlas textures
L97[04:42:47] <Ordinastie> which is
pointless, just do it once
L98[04:42:53] ⇨
Joins: Emris (~Miranda@62.178.245.147)
L99[04:43:02] <gigaherz|work> yes ideally
you'd do it once, save the result
L100[04:43:15] <gigaherz|work> and then
reuse that same result so long as the assets haven't changed
L101[04:43:32] <Ordinastie> that's exactly
how it's done currently ><
L102[04:43:34] <gigaherz|work> (same mod
jars + same mc version + same resourcepack zips)
L103[04:43:36] <gigaherz|work> nono
L104[04:43:42] <gigaherz|work> ideally it
would REMEMBER FOR NEXT STARTUP
L105[04:43:48] <Ordinastie> ahh
L106[04:44:00] <gigaherz|work> but I was
thinking completely opposite
L107[04:44:02] <Ordinastie> so not lazy
stitching at all
L108[04:44:19] <gigaherz|work> the perfect
situation is that nothing changes, so there's no work to do
afterward
L109[04:44:20] <Subaraki> so, genPatches
has bee nstuck for an hour on 22% after finishing the first
build
L110[04:44:26] <Subaraki> :/
L111[04:44:48] <gigaherz|work> what Iwas
thinking was
L112[04:44:59] <Ordinastie> so yeah, you
could probably find a way to cache the atlas, but there is not much
point
L113[04:45:03] <gigaherz|work> for those
massive packs that take hours to start
L114[04:45:06] <Ordinastie> it doesn't
really take that long at startup
L115[04:45:11] <gigaherz|work> or for
people who keep adding new mods
L116[04:45:15] <Ordinastie> what takes
times are models
L117[04:45:44] <gigaherz|work> I was
thinking about what would it take to dynamically load assets
L118[04:45:44] <gigaherz|work> as in
L119[04:45:53] <gigaherz|work> to be able
to add new models and textures practically on the fly
L120[04:46:01] <gigaherz|work> and that's
where the dynamic atlas thought came from
L121[04:46:14] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 186
seconds)
L122[04:46:57] <gigaherz|work> train of
thought was: if you keep adding mods, there's a point at which you
just simply have too many models, too many textures, even though
you may only be using 1% of them at any one time
L123[04:47:15] <gigaherz|work> so being
able to load and unload models/textures, akin to how the game loads
and unloads chunks
L124[04:47:27] <gigaherz|work> would be
interesting for performance in big packs / long-running
servers
L125[04:47:48] <gigaherz|work> models are
easy: just add baked models to cache, and discard when out of
use
L126[04:47:57] <gigaherz|work> textures
not so much: need dynamic atlas
L127[04:48:12] <gigaherz|work> you need a
"texture heap" that you can restitch on the fly
L128[04:48:32] <gigaherz|work> which means
you'd need to switch from raw UV coords in the quads
L129[04:48:37] <gigaherz|work> to texture
ID + uv offset
L130[04:48:45] <gigaherz|work> which means
shaders
L131[04:48:48] <gigaherz|work>
anyhow
L132[04:48:50] <gigaherz|work>
lunchtime
L133[04:49:20] <fry> gigaherz|work: the
slow part would be "find all the baked models and update baked
uvs in all of them"
L134[04:49:29] <fry> (for the changed
textures)
L135[04:49:59] <gigaherz|work> fry: no,
you'd have a lookup table of sprite IDs, and compute the
offset/size on the fly, in a shader
L136[04:50:08] <gigaherz|work> bb in a
bit
L137[04:50:37] <fry> no shadres in opengl
1.5
L138[04:50:40] <fry> *shaders
L139[04:50:58] <fry> + dependent texture
reads slow things up
L140[04:51:45] <fry> a lot of things can
be done better with modern GL, but we don't have modern GL
L141[04:52:42] <fry> doing things
on-demand is always inherintly slower than precomputing, since you
at least need to check the existance flag, and branch depending on
that
L142[04:54:59] <Subaraki> halp ?
L144[04:55:06] <Subaraki> been stuck on
22% for over an hour
L145[04:55:42]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L146[04:57:57] <Subaraki> well
nevermind
L147[04:58:01] <Subaraki> it finally
don
L148[05:03:12] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 206
seconds)
L149[05:04:22] ⇦
Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Read error:
Connection reset by peer)
L150[05:08:38]
⇨ Joins: alekso56
(~znc@ti0107a400-1168.bb.online.no)
L151[05:16:53]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L152[05:20:22] <Subaraki> so, I was
thinking about making a pr for inventory tabs for the survival
inventory
L153[05:20:36] <Subaraki> so people can
finally hook into that, and everyone can use them
L154[05:20:41] <Subaraki> anyone care to
brainstorm with me ?
L155[05:21:34] <Subaraki> i was thinking
about a regular button with an icon that would open the gui
L156[05:21:46] <Subaraki> which would not
allow to redisplay the buttons
L157[05:22:29] <gigaherz|work> fry: sure,
that's why it's just speculative ;P
L158[05:22:31] <Subaraki> unless I make a
base implementation for a player inventory that other ivnentories
would have to implement or extend
L159[05:22:32] *
gigaherz|work is back
L160[05:23:26] <Subaraki> don't know if
that's accepatable though, giving the player inventory an
implementation
L161[05:31:14] <gigaherz|work> Subaraki:
I'd probably make it a... "UI Tabs API"
L162[05:31:27] <gigaherz|work> where you
can define "tab pages", and have an event for adding new
pages
L163[05:31:30] <Subaraki> an api ? no pr
?
L164[05:31:36] <gigaherz|work> nono, with
a PR
L165[05:31:39] <Subaraki> oh okay
L166[05:32:16] <gigaherz|work> but like,
something added to Guis that can declare tab groups, and then the
buttons switch between pages in the group
L167[05:32:30] <gigaherz|work> with an
event for adding new pages to the group
L168[05:32:38] ⇦
Quits: jordibenck (~jordi@86.89.212.184) (Ping timeout: 186
seconds)
L169[05:32:45] <gigaherz|work> so your own
custom Gui may add the tabs in initGui
L170[05:32:50] <gigaherz|work> but if you
want thirdparty tabs
L171[05:33:01] <gigaherz|work> they'd do
it from the gui event
L172[05:33:51] <Subaraki> if i understand
correctly, the tabs that you are suggesting, would be for the
modder gui's right ?
L173[05:33:54] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 183
seconds)
L174[05:36:24] *
Subaraki tries to tie his head around the idea
L175[05:36:27] *
Subaraki has trouble
L176[05:37:25] <Subaraki> so, an event to
which you add tabs
L177[05:37:42] <Subaraki> that will be
drawn when the player inventory is open ?
L178[05:37:49] <Subaraki> like, the
buttons
L179[05:38:24] <Subaraki> how would you
define a 'tab page' gigaherz|work ?
L180[05:38:34] <Subaraki> a tab page being
a gui right ?
L181[05:41:29] ⇦
Quits: ThePsionic (~ThePsioni@95.85.52.128) (Quit:
Leaving)
L182[05:44:28]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L183[05:45:20] <Subaraki> this is harder
then i thought it would be
L184[05:46:03]
⇨ Joins: Naiten (Naiten@77.34.168.132)
L185[05:57:24]
⇨ Joins: VikeStep (~VikeStep@101.184.243.180)
L186[06:00:47] <gigaherz|work> Subaraki:
yup, they'd be other GuiScreens
L187[06:01:06] <Subaraki> how do you
switch to them though ?
L188[06:01:26] <gigaherz|work> see what
.displayguiScreen does
L189[06:01:28] <Subaraki> on button click,
call the player.opengui ?
L190[06:01:44] <gigaherz|work> nono, this
is purely client-side
L191[06:01:48] <Subaraki> oh okay
L192[06:01:52] <Subaraki> but how about
the containers ?
L193[06:02:01] <gigaherz|work> that will
be one of the tricky things
L194[06:02:03] <Subaraki> looked at
guicreativeinventory
L195[06:02:07] <gigaherz|work> you'd need
a way to open multiple containers at once
L196[06:02:14] <gigaherz|work> but that's
not supported in mc
L197[06:02:25] <Subaraki> the guiinventory
gets changed with .displayguiscreen
L198[06:02:29] <gigaherz|work> so
maybe
L199[06:03:09] <gigaherz|work> you'd need
a MultiContainer extends Container + MultiGui extends GuiContainer
-- but that wouldn't work
L200[06:03:18] <Subaraki> no indeed
L201[06:03:48] <Subaraki> that's why i was
thinking about clicking a button that would just close this gui and
open the other one
L202[06:04:15] <Subaraki> but that would
mean that gui would need to display the rest of the buttons, to
create the illusion you're still in the same gui
L203[06:04:30] <Subaraki> which would lead
to making an interface that gui's would implement
L204[06:04:35] <gigaherz|work> yes all the
GuiScreens in a tabbed group
L205[06:04:38] <gigaherz|work> woudl share
the tablist
L206[06:04:54] <gigaherz|work> but each
one would be its own GuiScreen that would only be actively drawing
when selected
L207[06:04:59] <gigaherz|work> so in a
way
L208[06:05:04] <gigaherz|work> changing
tabs == changing screens
L209[06:05:08] <Subaraki> yeah
L210[06:05:16] <Subaraki> you cannot go
beside that
L211[06:05:25] <gigaherz|work> the issue
then is, how to handle multiple tabs having each its own Container
in the server
L212[06:05:59] <Subaraki> a packet ?
L213[06:06:08] <gigaherz|work> that SEEMS
the only way
L214[06:06:20] <Subaraki> button click =
send packet, which opens the gui player.opengui(datafromtab)
L215[06:06:38] <gigaherz|work> when you
click a tab, if it extends GuiContainer, send a packet to the
server, and wait for an answer
L216[06:06:41] <Subaraki> the interface
would need something like openMyGui() which calls the
player.opengui
L217[06:06:56] <gigaherz|work> how do they
handle it in mods?
L218[06:06:58] <Subaraki> or whatever the
player defines
L219[06:07:02] <gigaherz|work> like the
tabs for ticon or similar
L220[06:07:10] <gigaherz|work> what do
they do?
L221[06:07:11] <Subaraki> i did one
once
L222[06:07:13] <Subaraki> i sended a
packet
L223[06:07:21] <Subaraki> ticon does the
same
L224[06:07:24] <Subaraki> iirc
L225[06:07:30] <Subaraki> to github
!
L226[06:07:33] <gigaherz|work> aha
L227[06:07:43] <gigaherz|work> so at the
lower level
L228[06:07:55] <gigaherz|work> MC bahaves
as if a whole new gui was opened
L229[06:07:59] <gigaherz|work>
behaves*
L230[06:08:12] <gigaherz|work> the issue
in that case
L231[06:08:17] <gigaherz|work> is how to
"transfer" the tab group
L232[06:08:21] <Subaraki> yeah
L233[06:08:30] <gigaherz|work> how to
distinguish a tab switch from an actual gui change
L234[06:08:31] <Subaraki> that's why i was
thinking about an interface
L235[06:08:42] <Subaraki> or maybe an
annotation, @tabbed
L236[06:08:43] <Subaraki> or
something
L237[06:08:48] <gigaherz|work> no that
doesn't help
L238[06:09:19] <Subaraki> we could hook
into the actual opengui event ?
L239[06:09:27] <gigaherz|work> you still
can't distinguish properly between switching tabs, and switching
tab-groups
L240[06:09:41] <gigaherz|work> that's the
key here
L241[06:09:46] <Subaraki> what's the
difference ?
L242[06:09:56] <Subaraki> oh
L243[06:09:58] <Subaraki> tab groups
L244[06:10:00] <Subaraki> pages ?
L245[06:10:04] <gigaherz|work> okay this
is how I picture it
L246[06:10:07] <Subaraki> like a set of
tabs buttons ?
L247[06:10:17] <Subaraki> that's just
redrawing it ?
L248[06:10:37] <gigaherz|work> imagine the
ticon machines
L249[06:10:43] <gigaherz|work> which have
their "menu"
L250[06:10:50] <Subaraki> machines ?
L251[06:10:56] <gigaherz|work> the stencil
table, etc
L252[06:11:01] <Subaraki> yeah
L253[06:11:06] <gigaherz|work> in the new
version, you can switch between them
L254[06:11:07] <gigaherz|work> okay
L255[06:11:07] <Subaraki> but we don't
need tabs for that ?
L256[06:11:13] <gigaherz|work> wait
L257[06:11:36] <Subaraki> i was really
looking for an implementation for survival player inventory
L258[06:11:39] <gigaherz|work> i'm using
that as a current example of how people have done it
L259[06:11:55] <gigaherz|work> in
ticon
L260[06:11:57] <Subaraki> so added
inventories, or other gui's can be "bound" to the
player's
L261[06:11:59] <gigaherz|work> it knows
what's there
L262[06:12:11] <gigaherz|work> it knows
the order of the tabs, etc
L263[06:12:29] <gigaherz|work> in the
creative menu
L264[06:12:32] <gigaherz|work> it's also
something custom
L265[06:12:38] <gigaherz|work> the
creative gui has its own "thing" for tabs
L266[06:12:43] <Subaraki> yeah
L267[06:12:46] <gigaherz|work> so
L268[06:12:51] <gigaherz|work> the
"lazy" way
L269[06:13:05] <gigaherz|work> is to add
an API specifically and exclusively, for the survival inventory
gui
L270[06:13:15] <gigaherz|work> you
register new tabs
L271[06:13:20] <gigaherz|work> and it just
draws the buttons in order
L272[06:13:26] <gigaherz|work> opening new
GUIs whenever you switch between them
L273[06:13:36] <gigaherz|work> that's
easy
L274[06:13:44]
⇨ Joins: InusualZ
(~InusualZ@adsl-72-50-85-164.prtc.net)
L275[06:13:48] <gigaherz|work> you have
ONE list, known in advance
L276[06:13:56] <gigaherz|work> so you
don't have to transfer anything
L277[06:14:06] <gigaherz|work> switching
tabs == closing one gui and opening another, within the same
tick
L278[06:14:45] <gigaherz|work> but to me,
it would be a lot more useful to have a generic system,
L279[06:14:54] <gigaherz|work> something
that can be used by other mods
L280[06:15:12] <gigaherz|work> such as, if
you want to add a new tab on like... chests
L281[06:17:40] <Subaraki> i see yes
L282[06:18:36] <Subaraki> so multiple
lists ?
L283[06:18:45] <Subaraki> or bind lists to
an object
L284[06:18:54] <Subaraki> like a player or
a chest block ?
L285[06:19:59] <Ordinastie> make it a
cap
L286[06:20:26] <Subaraki> hastablist
gettablist
L287[06:20:53] <Subaraki> sounds like a
plan
L288[06:22:07] <gigaherz|work> sorry work
stuff
L289[06:22:09] <gigaherz|work> as I was
sayinfg
L290[06:22:12] <gigaherz|work> the issue
if it's generic
L291[06:22:21] <gigaherz|work> is how to
manage transferring this "tablist" over to other
GUIs
L292[06:22:33] <gigaherz|work>
because
L293[06:22:42] <gigaherz|work> the way to
create those tab lists, woudl probably be in the gui event
L294[06:23:03] <gigaherz|work> but it only
makes sense to compute that on the first opening of the gui
L295[06:23:17] <gigaherz|work> and you
should keep thesame tablist until the gui is fully dismissed -- not
just switching to another tab in the list
L296[06:23:25] <gigaherz|work> deciding
what constitutes a tab switch
L297[06:23:30] ⇦
Quits: AshIndigo (~AshIndigo@188.29.164.226.threembb.co.uk) (Ping
timeout: 183 seconds)
L298[06:23:33] <gigaherz|work> and what
needs to refresh the tablist contents
L299[06:23:35] <gigaherz|work> that's the
key here
L300[06:24:21] <Subaraki> why the refresh
though ?
L301[06:24:25] <Ordinastie> register a tab
for a gui class
L302[06:24:44] <Ordinastie> kinda force
other tabs to extend the vanilla one
L303[06:24:56] <Subaraki> if i have a
chest with a tab (which is 2 tabs, one vanilla chest, one that yo
uadded)
L304[06:25:03]
⇨ Joins: AshIndigo
(~AshIndigo@188.29.164.226.threembb.co.uk)
L305[06:25:05] <Subaraki> you just
register the tablist to the vanilla chest, and yours ?
L306[06:25:59] <Subaraki> if i want to add
a tab to the player inventory, i register the tablist to the
player, adding up to all the tabs eventually added
L307[06:26:02] <Ordinastie> meh, I don't
know, I'll never use vanilla guis anyway
L308[06:26:07] <Subaraki> and i register
the player's tablist to my gui
L309[06:26:34] <gigaherz|work> Subaraki:
so your proposal is that in my chest-gui
L310[06:26:38] <gigaherz|work> Id' do
like
L311[06:27:09] <gigaherz|work>
getTabList() {return vanillachest.getTabList();}
L312[06:27:17] <Subaraki> hastablist true
gettablist blocks.chest.getTablist
L313[06:27:20] <Subaraki> yeah
L314[06:27:40] <gigaherz|work> hmmm
L315[06:27:41] <Subaraki> if you do not
implement that, it's a "dead end"
L316[06:27:48] <Subaraki> which could be a
feature for some mods maybe
L317[06:27:59] <Subaraki> its a mutual
thing
L318[06:28:02] <gigaherz|work> so you'd
have this as a capability on the TileEntityChest?
L319[06:28:31] <Ordinastie> if you have it
as a cap, you can't have general gui tabs
L320[06:28:37] <Subaraki> don't know.
maybe we would need to make something like capabilities but for
gui's
L321[06:28:51] <gigaherz|work> that poses
its own set of problems, though
L322[06:29:15] <gigaherz|work> you'd need
something akin to the oreDictionary, maybe
L323[06:29:15] <Subaraki> hmm
L324[06:29:17] <Subaraki> like what
?
L325[06:29:42] <gigaherz|work> hmm OH
WAIT
L326[06:29:49] <Ordinastie> imo, registry
gui class -> tabs, when gui opens, check class, draw tabs (if
more than 1)
L327[06:29:50] <gigaherz|work> you can
actually have a GuiTabGroup registry
L328[06:30:16] <Subaraki> oh yeah
L329[06:30:17] <Subaraki> why not !
L330[06:30:28] <gigaherz|work> you'd still
have to inject it to vanilla guis
L331[06:30:32] <gigaherz|work> but
essentially
L332[06:31:09] <gigaherz|work> a GuiScreen
could have a getTabGroup() { return
DefaultTabGroups.SURVIVAL_PLAYER; }
L333[06:31:17] <gigaherz|work> and on
registration you could have
L334[06:31:34] <gigaherz|work>
DefaultTabGroups.SURVIVAL_PLAYER.addTabProvider(something)
L335[06:31:51] <Ordinastie> so much
complicated for nothing
L336[06:31:51] <gigaherz|work> not sure
about the "something"
L337[06:32:13] <Subaraki> i think i'm more
in the mindset of Ordinastie
L338[06:32:17] <gigaherz|work> Ordinastie:
that's what brainstorming is for
L339[06:32:26] <Subaraki> when opening a
gui, if hastabs, draw the gettablist
L340[06:32:28] <gigaherz|work> make it
big
L341[06:32:37] <gigaherz|work> then pick
at the unnecessary bits
L342[06:32:42] <gigaherz|work> until you
reduce it to be essential
L343[06:32:44] <Ordinastie> that's why
forge is full of shitty over complicated stuff
L344[06:33:13] <gigaherz|work> I don't see
how that would work, though
L345[06:33:23] <gigaherz|work> if you just
have tabs on the gui
L346[06:33:31] <gigaherz|work> and 3 mods
are adding tabs
L347[06:33:35] <gigaherz|work> how do they
know about the other mods?
L348[06:33:40] <Ordinastie> they
don't
L349[06:33:41] <Ordinastie> forge
does
L350[06:33:44] <gigaherz|work> HOW
L351[06:33:49] <gigaherz|work> who keeps
track of the tab list
L352[06:33:56] <Ordinastie> tabs are
registered
L353[06:33:58] <gigaherz|work>
where?
L354[06:34:05] <Ordinastie> in a registry
somewhere in forge
L355[06:34:11] <Subaraki> maybe just like
the creative tabs ?
L356[06:34:14] <gigaherz|work> how do you
decide which tabs show in which gui?
L357[06:34:24] <Ordinastie>
<Ordinastie> imo, registry gui class -> tabs, when gui
opens, check class, draw tabs (if more than 1)
L358[06:34:24] <Subaraki> creative tab
registry is easy and simple
L359[06:34:56] <Subaraki> an event that
fires in open gui event, which checks that ^
L360[06:35:18] <gigaherz|work> so wait,
you'd have a Registry<Class<? extends GuiScreen>,
TabList>
L361[06:35:32] <Subaraki> uh yeah, why
not
L362[06:35:37] <Ordinastie> TabList or
List<Tabs>
L363[06:35:41] <gigaherz|work> you still
need a way to "go back
L364[06:35:51] <gigaherz|work> so when you
are in GuiRpgSlots
L365[06:36:07] <gigaherz|work> you can
tell forge to still draw the tabs for
GuiInventoryPlayer.class
L366[06:36:31] <Ordinastie> good thing
there is a method for that kinda of check
L367[06:36:35] <Subaraki> thats why you
register both gui's with the same list
L368[06:36:43] <Subaraki> no ?
L369[06:36:44] <gigaherz|work> so you need
"Class<? extends GuiScreen> getTabProvider()"
L370[06:36:50] <gigaherz|work> on the
screen
L371[06:37:03] <Subaraki> what would be a
tabprovider though ?
L372[06:37:07] <gigaherz|work> Subaraki:
you'd share a reference?
L373[06:37:15] <gigaherz|work> hmm
L374[06:37:26] <Subaraki> as far as i
know, the tabs only work in one way
L375[06:37:35] <gigaherz|work> Subaraki:
okay let's see
L376[06:37:35] <Subaraki> when
drawn.
L377[06:37:44] <gigaherz|work> you are in
the survival inventory
L378[06:37:49] <Subaraki> so i don't think
we need a backward reference
L379[06:37:50] <Subaraki> yes
L380[06:37:51] <Subaraki> imagine
L381[06:37:51] <gigaherz|work> you see 3
tabs: Default, Mod 1, Mod 2
L382[06:37:55] <Subaraki> yes
L383[06:37:58] <gigaherz|work> you click
on Mod 1
L384[06:38:01] <Subaraki> yes
L385[06:38:04] <gigaherz|work> how does
forge know to draw the same list that it had before
L386[06:38:06] <Ordinastie> gigaherz|work,
class.isAssignableFrom
L387[06:38:07] <Subaraki> and you would
see default mod1 mod2
L388[06:38:20] <Subaraki> because you
registered the same list ?
L389[06:38:28] <gigaherz|work> so you'd
share a reference
L390[06:38:31] <Subaraki>
guiplayer/playerlist
L391[06:38:37] <Subaraki>
mygui/playerlist
L392[06:38:40] <Subaraki> yes
L393[06:38:54] <Ordinastie> no, like I
said : <Ordinastie> kinda force other tabs to extend the
vanilla one
L394[06:38:59] <gigaherz|work> no that's
BS
L395[06:39:06] <gigaherz|work> it's the
worst possible approach
L396[06:39:12] <Subaraki> why ?
L397[06:39:17] <gigaherz|work> I mean
Ordinastie's
L398[06:39:56] <Subaraki> unless you do
not use it, don't
L399[06:40:24] <Ordinastie> really
not
L400[06:40:39] <Ordinastie> 99% you'll
want to have the same context as the vanilla one anyway
L401[06:41:01] <gigaherz|work> not
really?
L402[06:41:17] <Ordinastie> tabs are
extremely simple with just an icon and a callback
L403[06:41:27] <Subaraki> all i see is me
wanting to add to the player inventory, and many mods do also
x)
L404[06:41:29] <gigaherz|work> I mean, in
most cases i have seen
L405[06:42:33] <gigaherz|work> we really
are not thinking of the same thing here, I think
L406[06:44:41] <Ordinastie> if really you
don't want that, then yes, a ITabbedGui interface that returns the
key for the registry is required
L407[06:45:11] <Ordinastie> interface of
the GuiScreen, that is checked in the ctro
L408[06:45:17] <Ordinastie>
*constructor
L409[06:46:24]
⇨ Joins: wundrweapon
(uid131782@id-131782.ealing.irccloud.com)
L410[06:46:33] ***
wundrweapon is now known as wundr|schook
L411[06:46:43] ***
wundr|schook is now known as wundr|school
L412[06:47:01] <Subaraki> so, interface
would be the best way to go ?
L413[06:47:25] <wundr|school> I've seen at
least like 30 different gitignores for Forge - which is best?
L414[06:47:36] <Subaraki> ?
L415[06:47:39] <Ordinastie> a tab class
you register, and a ITabbed interface for the GuiScreen
L416[06:48:40] <wundr|school> When pushing
forge mod to git, what gitignore is best to use
L417[06:49:42] <PitchBright> you would
tailor it to suit your needs
L418[06:51:49] <wundr|school> How
so?
L419[06:52:14] <PitchBright> you add the
things you don't want in your repo... to your gitignore...
L420[06:52:21]
⇨ Joins: Necro
(~Necro@p4FFCDC3E.dip0.t-ipconnect.de)
L421[06:53:23] <PitchBright> I use the
github app to do it, it's easy.
L422[06:55:40]
⇨ Joins: ThePsionic
(~ThePsioni@ip5457f909.direct-adsl.nl)
L423[06:57:52] <Subaraki> so, Ordinastie ,
gigaherz|work . i'll be starting of with an interface that needs a
tablist and a gui ? takes an item for the icon ?
L424[06:58:08] <Subaraki> and that will be
drawn on opening the registered gui ?
L425[07:00:16] <gigaherz|work> I'd
probably give it a drawIcon(x,y), and a onClick(), and I'd
implement a "standard" one which takes an ItemStack and
sends a packet to the server for switching tabs
L426[07:00:55] <Ordinastie> no default
impl for the tab
L427[07:01:36] <Ordinastie> *for the
onclick I meant
L428[07:02:45]
⇨ Joins: Hgrebnednav
(~Hgrebnedn@d8D872A6E.access.telenet.be)
L429[07:05:40] ⇦
Parts: wundr|school (uid131782@id-131782.ealing.irccloud.com)
())
L430[07:13:03] <Subaraki> for the packet i
would just use a simpleimplement ?
L431[07:13:14] <gigaherz|work> ordi thinks
you shouldn't have a packet
L432[07:13:18] <gigaherz|work> let the
mods implement it themselves
L433[07:13:31] <gigaherz|work> just do the
tablist
L434[07:13:37] <gigaherz|work> you can
always think about packets later
L435[07:13:41] <Ordinastie> tablist
?
L436[07:15:38] <gigaherz|work> ...?
L437[07:16:20] <gigaherz|work> the whole
purpose of the duscussion was to add a way to have mods add more
tabs to the survival inventory, so there has to be a list of tabs
somewhere
L438[07:16:44] <Ordinastie> it's just a
map
L439[07:17:03] <Ordinastie> or multimap
maybe
L440[07:17:04]
⇨ Joins: iari (~iari___@evana.futhark24.org)
L441[07:17:16] <AshIndigo> I dont know how
much I'm adding but looking at the creative tab code might be
useful
L442[07:17:53] <Subaraki> dot worry
AshIndigo
L443[07:17:59] <Subaraki> creative tabs
are lazy P:
L444[07:18:42] *
AshIndigo shrugs
L445[07:18:53] <Subaraki> i do have a map
Ordinastie/gig
L446[07:18:59] <Subaraki> gigaherz|work
*
L447[07:19:13] <Subaraki> the packets
would be for opening the other gui's ?
L448[07:19:25] <Ordinastie> don't bother
about other guis
L449[07:19:26] <Subaraki> in case if
there's a container
L450[07:19:45] <Subaraki> so people need
themselfs to send a packet in the onClick right ?
L451[07:19:46] <Ordinastie> it will be on
the modder to implement their onClick
L452[07:20:03] <Subaraki> what about the
default vanilla inventory though ?
L453[07:20:11] <Ordinastie> what about it
?
L454[07:20:21] <Subaraki> just thought
about that... i'll need to add a button for it
L455[07:21:01] <Ordinastie> if you find
tabs to be registered, draw a vanilla tab before them
L456[07:21:17] <Subaraki> yeah, but the
vanilal tab has to be able to be opened right ?
L457[07:21:25] <Subaraki> so i'll need to
send a packet for that
L458[07:22:51] <Subaraki> right ?
L459[07:32:07]
⇨ Joins: turmfalke (~turmfalke@93.206.3.92)
L460[07:34:36]
⇨ Joins: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
L461[07:38:48] ⇦
Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
(Remote host closed the connection)
L462[07:40:28] <Subaraki> so, what i have
now is a guitabs class, and a registry that takes a gui screen and
an array of guitabs
L463[07:40:46] <Subaraki> if the screen
already existed in the registry, merge the arrays
L464[07:40:58] <Subaraki> sounds fine to
me ...
L465[07:41:11] <Subaraki> now, to try and
draw the buttons on the screens ...
L466[07:41:12] <Ordinastie> I hope you
don't mean litteral array
L467[07:41:17] <Subaraki> uh
L468[07:41:19] <Ordinastie> also,
multimap
L469[07:41:24] *
Subaraki hides
L470[07:42:04] <Subaraki> okay, so
multimap with a list ?
L471[07:42:21]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-8-209.dhcp.embarqhsd.net)
L472[07:42:45]
⇨ Joins: gigaherz_
(~gigaherz@29.red-213-99-141.dynamicip.rima-tde.net)
L473[07:42:50] <Subaraki> what kind of
multimap ?
L474[07:44:56] ⇦
Quits: gigaherz|work (~gigaherz@84.89.63.25) (Ping timeout: 198
seconds)
L475[07:45:02] <Subaraki> why a multimap
Ordinastie ?
L476[07:45:16] <Subaraki> we don't have
duplicate keys
L477[07:45:29] <gigaherz_> he's thinking
Multimap<Class, Tab>
L478[07:45:35] <gigaherz_> so that
multiple tabs can be on the same class
L479[07:45:41] <Subaraki> aah
L480[07:45:50] ***
cpw is now known as cpw|out
L481[07:46:01] <Subaraki> i had
map<Class, Tab[]>
L482[07:46:11] <Ordinastie> :x
L483[07:46:12] <gigaherz_> yes, that's a
poor man's multimap
L484[07:46:15] <gigaherz_> ;P
L485[07:46:22] <Subaraki> oh ._.
L486[07:46:23] <gigaherz_> well no
L487[07:46:26] <Subaraki> im a poorman
:o
L488[07:46:32] <gigaherz_> a poor man's
multimap is Map<Key, List<Value>>
L489[07:46:35] <Ordinastie> ^
L490[07:46:49] <gigaherz_> <Key,
Value[]> is worse ,p
L491[07:46:51] <Subaraki> yeah well ._.
let's not say i was concidering that
L492[07:46:51] <gigaherz_> ;P*
L493[07:46:59] <Subaraki> so, a multimap
with class tab
L494[07:47:14] <Subaraki> and then when i
need to draw the buttons, i get every tab reference from the class
?
L495[07:47:20] <Subaraki> and i draw them
as they come
L496[07:47:24] <gigaherz_> I'm still
unconvinced by using the class as the key, but /shrug
L497[07:47:25] <Subaraki> so the order
never changes
L498[07:47:36] <Subaraki> it's one
aproach.
L499[07:47:46] <Ordinastie> gigaherz_,
what would you use as key ?
L500[07:47:57] <Subaraki> i don't think he
would use a map at all P:
L501[07:49:13] <Subaraki> multimaps are
interfaces though
L502[07:49:22] <Subaraki> need to find one
that isnt to instantiate it
L503[07:49:37] <gigaherz_>
ArrayListMultimap
L504[07:49:42] <Ordinastie> yes, you need
to find one
L505[07:49:49] <gigaherz_> since you want
to maintain order
L506[07:49:53] <Ordinastie> or wait for
gigaherz_ to mouth feed the answer as always
L507[07:50:22] <Subaraki> found it :)
ArrayListMultimap.create();
L508[07:52:17] <Subaraki> Type mismatch:
cannot convert from ArrayListMultimap<Object,Object> to
MultiMap<Class<? extends GuiScreen>,GuiTabs>
L509[07:52:19] <Subaraki> <_<
L510[07:52:31]
⇨ Joins: gigaherz|work (~gigaherz@84.89.63.25)
L511[07:52:35] <fry> every time you use
Class, you need to answer some questions: 1) do I need to create
instances of that class dynamically? 2) do I actually need to
differentiate between instances of different classes by their
class, or maybe something simpler like a return value of the method
will be enough?
L512[07:52:54] <fry> in most cases the
answer to both questions will be "no"
L513[07:53:39] <Subaraki> so the problem
is the class ?
L514[07:53:43] <Ordinastie> in our current
case, we just need a key
L515[07:53:51] <Subaraki> so guiscreen
?
L516[07:54:03] <fry> what does the key
represent? what's it used for?
L517[07:54:08] <gigaherz|work> the issue
at hand is how to identify which tabs belong on a tab group
L518[07:54:26] <fry> what's a tab
group?
L519[07:54:38] <Ordinastie> the key is
used to fetch the list of tabs to display on a gui
L520[07:54:46] <Ordinastie> could be
anything
L521[07:54:57] ⇦
Quits: gigaherz_
(~gigaherz@29.red-213-99-141.dynamicip.rima-tde.net) (Ping timeout:
183 seconds)
L522[07:55:13] <fry> so, semantically, you
have 1 "tab group" per gui? or multiple?
L523[07:55:14] <Ordinastie> benefits of a
the class is that all vanilla gui have one (obviously)
L524[07:55:15] <gigaherz|work> the list of
tabs that will show on a gui, and should remain consistent between
different tabbed screens of the same group
L525[07:55:29] <fry> everything in java
has a class, that's not a benefit of anything
L526[07:55:54] <gigaherz|work> N guis
-> 1 set of tabs
L527[07:55:58] <fry> what's a "group
of screens" then?
L528[07:56:03] <Ordinastie> what I mean is
that's it's something all guis have inherently
L529[07:56:17] <gigaherz|work> use
case:
L530[07:56:21] <Ordinastie> you don't have
to manually create keys for each types of vanilla guis
L531[07:56:33]
⇨ Joins: Cooler (~CoolerExt@45.249.156.23)
L532[07:56:37] <gigaherz|work>
GuiInventoryPlayer + GuiModArmorAdditions + GuiAnotherMod
L533[07:57:01] <Subaraki> found the
error
L534[07:57:10] <Subaraki> was giving the
wrong multimap
L535[07:57:16] <gigaherz|work> on one side
there's the registered tab buttons, and on the other side, the
GuiScreens that want to share the list of buttons
L536[07:57:57] <fry> so, conceptually, you
have a main container, that has tabs on one side, and current tab
contents on another side?
L537[07:58:00]
⇨ Joins: Tarig
(~Tarig@d4-50-187-60.try.wideopenwest.com)
L538[07:58:15] <gigaherz|work> so:
GuiScreen -> ? -> Collection<TabInfo>
L539[07:58:43] <gigaherz|work> no this is
for managing tabs like on the creative inventory, but for other
guis
L540[07:59:05] <fry> "gui" means
a lot of things at once, which isn't helping
L541[07:59:32] <Ordinastie> basically, the
point is, you can register a tab for any gui
L542[07:59:36] <fry> can you have nested
gui "widgets" with tabs in them?
L543[07:59:41] <gigaherz|work> no
L544[07:59:45] <gigaherz|work> just
top-level GuiScreens
L545[07:59:49] <fry> so, tabs are
top-level only
L546[07:59:59] <Subaraki> yeah
L547[08:00:20] <Ordinastie> if a tab is
supposed to open another gui, you want to be able to know which
tabs you're still supposed to have
L548[08:00:52] <fry> so, simplest model:
Map<GuiScreen, TabGroup>
L549[08:01:13] <fry> when you open
GuiScreen s, instead you display TabGroup of that GuiScreen
L550[08:01:27] <Ordinastie> which
"s" ?
L551[08:01:46] <Ordinastie> each time you
open that type of GuiScreen, the instance is differen
L552[08:01:47] <Ordinastie> t
L553[08:01:49] <fry> for all s
L554[08:02:05] <Ordinastie> so what's the
key ?
L556[08:02:28] <Ordinastie> and how you
get s when you register your tab ?
L557[08:02:36] <gigaherz|work> but the
GuiScreen is instantiated every time, through the GuiHandler
L558[08:02:37] <fry> s = this
L559[08:02:43] <Subaraki> GuiScreen.class
?
L560[08:03:09] <Subaraki>
if(openedGui.getClass instanceof map.value
L561[08:03:09] <Ordinastie> what you say
doesn't make sense
L562[08:03:11] <Subaraki> or rather
L563[08:03:19] <Subaraki>
map.get(openedGui.class)
L564[08:03:29] <fry>
map.get(openedGui)
L565[08:03:31] <fry> no class
L566[08:03:36] <gigaherz|work> that won't
work, fry
L567[08:03:40] <fry> why?
L568[08:03:44] <gigaherz|work> because the
Gui is instantiated every single time it opens
L569[08:03:45] <Subaraki> instances are
never the same
L570[08:03:52]
⇨ Joins: AshIndigo_ (webchat@31.221.112.156)
L571[08:03:55] <fry> why is that a
problem?
L572[08:04:03] <gigaherz|work> the tab
list would be registered during init
L573[08:04:05] <gigaherz|work> not every
single time
L574[08:04:08] <fry> why?
L575[08:04:16] <fry> what does it give
you?
L576[08:04:40] <Ordinastie> fry, then how
do you fill that map ?
L577[08:04:48] <Ordinastie> and when
L578[08:05:00] <fry> for example, in the
constructor
L579[08:05:11] <fry> or in the factory, if
guiscreens have a factory
L580[08:05:13] <gigaherz|work> that won't
work if you are adding tabs to the vanilla survival inventory
L581[08:05:20] <fry> or in taht
GuiHandler
L582[08:05:20] <gigaherz|work> which is
the usecase #1
L583[08:05:25] <fry> *that
L584[08:05:36] <Ordinastie> vanilla guis
don't have factories
L585[08:05:44] <fry> they have
constructors
L586[08:05:45] <Subaraki> how would i draw
the vanilla dab though ? it needs to be in front
L587[08:05:48] <Subaraki> tab *
L588[08:06:02] <Ordinastie> that answers
the "when", how about the "how" ?
L589[08:06:10] <fry> how what? :P
L590[08:06:17] <Subaraki> how to draw
them
L591[08:06:21] <Ordinastie> how do you
fill the map
L592[08:06:26] <Subaraki> i think we can
just inject the tabs in the button list ?
L593[08:06:28] <fry> map.add(this)
L594[08:06:32] <Subaraki> put
L595[08:06:36] <gigaherz|work> not
this
L596[08:06:42] <Subaraki> put actually.
guitabs.put(class, tab)
L597[08:06:44] <gigaherz|work> for other
mods that want to add tabs to an external inventory
L598[08:06:46] <Subaraki> its a
multimap
L599[08:06:54] <Ordinastie> fry,
map.add(this, ???);
L600[08:07:01] <Subaraki> put o.O
L601[08:07:04] <Ordinastie> how do you get
the "???"
L602[08:07:09] <Ordinastie> or put,
whatever
L603[08:07:13] <Subaraki> :p
L604[08:07:18] <fry> sorry,
map.put(this.getTabGroup(), this)
L605[08:07:30] <fry> the other way around
actually, yes
L606[08:07:43] <fry> map.put(this,
this.getTabGroup())
L607[08:07:45] <gigaherz|work> so we go
back to thebeginning: what does getTabGroup return?
L608[08:07:48] <Subaraki> where the
tabgroup is a class ?
L609[08:07:58] <fry> it's not a
class
L610[08:08:05] <fry> it's an object
L611[08:08:06] ⇦
Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Read error:
Connection reset by peer)
L612[08:08:09] <Subaraki> unless we define
beforehand what tabgroup (enum) goes t owhich class
L613[08:08:21] <fry> ResourceLocation
seems like a natural choice
L614[08:08:23] <Ordinastie> fry and
getTabGroup is what in your example ? list of tabs ?
L615[08:08:30] <fry> a key
L616[08:08:56] <Ordinastie> a key to fetch
the list of tabs ?
L617[08:09:00] <fry> whatever you want
"tab group" to mean
L618[08:09:03] <gigaherz|work> that was my
proposal: GuiScreen -> ResourceLocation ->
Collection<TabInfo>
L619[08:09:43] <Ordinastie> but the point
of using the class as key is to not have to manually define the
keys for every single one of the vanilla guis
L620[08:09:49] <Subaraki> ^
L621[08:09:55] <Subaraki> which brings me
to the point
L622[08:10:03] <gigaherz|work> you still
need a way to translate your custom Gui class, into the
key-class
L623[08:10:09] <Subaraki> i do have to
manually decide a tab for each vanilla inventory
L624[08:10:14] <Ordinastie> allows other
GuiScreen (like moded ones) to work too without explicit
support
L625[08:10:36] <Ordinastie> gigaherz|work,
just ask the key from the interface your Gui implement
L626[08:10:40] <Ordinastie> the ITabbed or
something
L627[08:10:49] <fry> by using the class,
you enforce "same class" = "same tab
group"
L628[08:10:58] <fry> which is not lways
the case
L629[08:11:04] <fry> *always
L630[08:11:25] <Ordinastie> not
really
L631[08:11:32] <fry> yes, really
L632[08:11:41] <Ordinastie> I just meant
class as "automatic key reference"
L633[08:12:02] <Ordinastie> it's just a
key that automatically exists
L634[08:13:00] <fry> having a method to
generate the key from the Class might be useful, forcing the key to
the the Class is not
L635[08:13:21] <Ordinastie> I forgot you
really hate simplicity :)
L636[08:13:31] <fry> and even with the
first alternative you need to be very careful about defining the
equality semantics
L637[08:13:32] <gigaherz|work> well
L638[08:14:09] <gigaherz|work> String
tabGroup = this.getClass().getName(); + getTabGroup +
setTabGroup
L639[08:14:21] <gigaherz|work>
Map<String, TabCollection>
L640[08:14:45] <gigaherz|work> that would
allow dynamically assigning tabs, automatic tab name for any class
that doesn't have special requirements
L641[08:15:18] <fry> again,
ResourceLocation is better than just String
L642[08:15:41] <fry> but what you really
want is probably a concrete TabGroup object
L643[08:16:39] <fry> which would have
something like switchToTab(n), drawTab(n), drawAllTabs(), or
whatever
L644[08:17:24]
⇨ Joins: alekso56
(~znc@ti0107a400-1168.bb.online.no)
L645[08:18:28] <Subaraki> fry, that would
imply the vanilla gui's to have the tabgroup as well ?
L646[08:18:36] <Subaraki> the tabs are
just buttons
L647[08:18:42] <Subaraki> or are supposed
to be just buttons
L648[08:19:12] <fry> whatever your root
object is, it's not a vanilla gui anymore
L649[08:19:36] <fry> since, as
gigaherz|work said, you can't have nested guis with tabs
L650[08:19:47] <gigaherz|work> ?
L651[08:20:00] <gigaherz|work> the idea
was to keep the gui objects as-is
L652[08:20:07] <gigaherz|work> and just
have a little hook to draw the tab buttons
L653[08:20:22] <gigaherz|work> and
clicking on a tab button would switch guis to the other one
L654[08:20:23] <Subaraki> so, injecting
the tabs in the guibuttons init
L655[08:21:04] <gigaherz|work> basically:
the same mods are doing already, just integrated and coordinated by
forge
L656[08:21:13] <fry> what list?
L657[08:21:21] <fry>
GuiScreen.buttonList?
L658[08:21:49] <fry> ah, read that
wrong
L659[08:21:53]
⇨ Joins: edr
(~edr@d-65-175-180-73.cpe.metrocast.net)
L660[08:22:42] <fry> why GuiButton?
L661[08:22:55] <Subaraki> easiest to
handle? idk
L662[08:23:02] <Subaraki> click the
button, change the screen
L663[08:24:35] <Subaraki> this would
implement adding a variable int as well to know which button was
last clicked, right ?
L664[08:24:44] <Subaraki> no
L665[08:24:53] <Subaraki> just highlight
the button that is active
L666[08:25:02] <fry> I don't see how
GuiButton's init have to do anything with the problem of adding a
tab list to any vanilla (or mod) gui
L667[08:25:26] <Subaraki> tabs in creative
tab are just textures drawn right
L668[08:25:32] <Subaraki> they are not
buttons
L669[08:25:47] <Subaraki> so i draw the
tabs in the screendraw
L670[08:25:57] <Subaraki> and detect
myself when the mouse is on them ?
L671[08:27:06] <fry> well, problem #1:
where do you draw the tab list?
L672[08:27:59] <fry> in other words: how
are you sure the gui doesn't use the screen space where you draw
the tab list?
L673[08:28:52] <Subaraki> i wanted to draw
them in the same fashion the creative tabs get drawn
L674[08:28:54] <Subaraki> up and
under
L675[08:29:05] <Subaraki> determined by
the size of the inventory
L676[08:29:29] <fry> size being
GuiScreen.width and .height?
L677[08:29:37] <Subaraki> no
L678[08:29:46] <Subaraki> that's the
screen width and height
L679[08:30:14] <fry> then how do you know
the size?
L680[08:30:50] <Subaraki> doesn't
guiscreen have the sizes stored somewhere ?
L681[08:30:56] <Subaraki> width/2 -
texsize/2
L682[08:30:59] <Subaraki> same for
height
L683[08:31:13] <gigaherz|work>
guiTop+guiHeight
L684[08:31:18] <gigaherz|work>
guiLeft+guiWidth
L685[08:31:20] <Subaraki> that's the
container
L686[08:31:29] <gigaherz|work> width and
height are the screen itself, not the gui
L687[08:31:38] <Subaraki> so, gui
container has protected int guiTop; and protected int
guiLeft;
L688[08:31:49] <gigaherz|work> so no, if
you don't have the gui* values, there's nothing to tell you how big
a gui is
L689[08:32:02] <fry> guiLeft and guiTop
are GuiContainer only
L690[08:32:08] <gigaherz|work> so you'd
need to cooperate with the Gui object, a "TabDrawingInfo"
of sorts
L691[08:32:22] *
Subaraki changes up code to class extends guicontainer
L692[08:32:25] <Subaraki> .3.
L693[08:32:33] <fry> stop changing the
code
L694[08:32:45] <fry> and spend a little
time thinking about things before touching it
L696[08:32:58] <Subaraki> i thought the
left and top where guiscreen
L697[08:32:59] <Subaraki> so
L698[08:33:04] <Subaraki> if someone wants
to make a tab
L699[08:33:08] <Subaraki> it'll have to be
a containe
L700[08:33:09] <fry> gigaherz|work: can't
find guiHeight
L701[08:33:10] <Subaraki> container
L702[08:33:18] <gigaherz|work> fry: hmm
guiX/guiY?
L703[08:33:28] <gigaherz|work> there's
somewhere where you specify the width/height
L704[08:33:29] <fry> ah, xSize
L705[08:33:32] <gigaherz|work>
right!
L706[08:33:35] <fry> + ySizr
L707[08:33:38] <fry> *ySize
L708[08:33:53] <gigaherz|work> they use
different naming conventions ;p
L709[08:34:04] <Subaraki> that's also
container though
L710[08:34:09] <fry> so, either you only
support GuiContainer, or you need a getSizeStuff(GuiScreen)
L711[08:34:44] <Subaraki> now that i think
of it
L712[08:34:50] <fry> but this is only a
small part of the design
L713[08:34:55] <Subaraki> why would anyone
want to add a gui to the player that is not a container ?
L714[08:35:07] <Subaraki> and people can
always make containers with no slots
L715[08:35:09] <Subaraki> right ?
L716[08:35:22] <Ordinastie> the whole
point of the system is to be able to add tabs to ANY guis
L717[08:35:28] <Ordinastie> not just
containers
L718[08:35:50] <fry> the problem is that
you didn't define "the whole point of the system"
L719[08:35:56] <Subaraki> the problem of
just screens is that they have no size definition
L720[08:35:59] <Subaraki> they vary. a
lot
L721[08:36:04] <fry> since you prefer
things to be "simple" :P
L722[08:36:12] <Subaraki> i myself have a
gui in my telepads mod that takes up the entire screen
L723[08:36:52] <Subaraki> i don't think
guiscreen's basics would suffice
L724[08:36:59] *
Subaraki sees people adding tabs to the pause menu
L725[08:37:06] <Subaraki> brrr, weird
visions
L726[08:37:13] ⇦
Quits: AshIndigo (~AshIndigo@188.29.164.226.threembb.co.uk) (Killed
(NickServ (GHOST command used by
AshIndigo_!webchat@31.221.112.156)))
L727[08:37:37] ⇦
Parts: AshIndigo_ (webchat@31.221.112.156) ())
L728[08:37:59]
⇨ Joins: AshIndigo (webchat@31.221.112.156)
L729[08:38:07] <gigaherz|work> Subaraki:
maybenot pause menu, but what about the book editor? ;P
L730[08:40:59] ⇦
Quits: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
(Quit: Pop!)
L731[08:42:55] <Subaraki> grrr
L732[08:42:56] <Subaraki> you're
right
L733[08:43:02] <Subaraki> now i see why
noone ever made them
L734[08:43:13] <gigaherz|work> I think at
this point
L735[08:43:18] <gigaherz|work> maybe it's
best to ignore "other GUIs"
L736[08:43:25] <Subaraki> how about i just
make tabs for the player inventory, and that's it ? ._.
L737[08:43:30] <gigaherz|work> and make a
tab system specifically only for the player inventory
L738[08:43:38] <gigaherz|work> see how
that works out
L739[08:43:39] <Subaraki> \o/
L740[08:43:42] <gigaherz|work> and once
you have that working
L741[08:43:45] <Subaraki> lets start with
that
L742[08:43:46] <gigaherz|work> see if it
can be generified
L743[08:44:01] <Subaraki> so
L744[08:44:03] <Subaraki> now
L745[08:44:09] <Subaraki> how to draw
those darned buttons ?
L746[08:44:16] <Subaraki> in
guicontainer
L747[08:44:19] <fry> and then I'll ask
question #2, and you rethink it again :P
L748[08:44:22] <Subaraki> do we draw them
as buttons or tabs ?
L749[08:45:11] <Subaraki> i think going
with buttons could be fun, the system draws it for us. but then we
would need a custon button
L750[08:45:31] <Subaraki> so, drawing
texture rectangles, with a different rectangle for the tab
selected
L751[08:45:37] <gigaherz|work> I have a
GuiCustomButton implementation on one of my mods
L752[08:45:42] <Subaraki> how do we get
the selected tab ?
L753[08:45:43] <gigaherz|work> that allows
oddly-sized buttons to work
L754[08:45:52] <gigaherz|work> but the tab
image itself
L755[08:45:57] <gigaherz|work> that I did
custom
L756[08:46:35] <Subaraki> lets do a custom
button
L757[08:46:37] <Subaraki> ?
L758[08:46:44] <gigaherz|work> dunno
L759[08:46:47] <Subaraki> me neither
L760[08:46:54] <fry> think about
"what I need"
L761[08:46:58] <gigaherz|work> and as for
how to get the selected tab, I don't know ,either
L762[08:47:03] <Subaraki> 6 on top, 6 on
the bottom
L763[08:47:09] <Subaraki> creative tabs
keep track of them
L764[08:47:14] <Subaraki> but its the same
gui
L765[08:47:44] <Subaraki> maybe the tab
should have the origin gui cached, so we can check that ?
L766[08:47:51] <Subaraki> like once, on
guiInit
L767[08:47:54] <Subaraki> so we draw it
differently
L768[08:48:00] <fry> "origin
gui"?
L769[08:48:12] <Subaraki> the gui the tab
is suppsoed to go to / is from
L770[08:48:37] <fry> so, is it true that
for each tab group you have a "master gui"?
L771[08:48:41] <fry> the "main
tab"?
L772[08:49:07] <Subaraki> no
L773[08:49:11] <Subaraki> i donth think
so
L774[08:49:15] <Subaraki> its a list of
tabs for a gui
L775[08:49:25] <Subaraki> there's no main
tab
L776[08:49:33] <fry> "for a
gui"?
L777[08:49:35] <Subaraki> the main is
determined by what you open first
L778[08:49:47] <Subaraki> its the illusion
of one gui
L779[08:49:56] ***
amadornes[OFF] is now known as amadornes
L780[08:50:01] <fry> "illusion"
is not a technical term :P
L781[08:50:12] <Subaraki> clicking a
button closes current gui, sends a packet (the author is suposed
to) and open your own gui
L782[08:50:34] <fry> from the outer layer,
the game has a current GuiScreen instance
L783[08:50:47] <Subaraki> lets say its the
player inventory
L784[08:50:49] <fry> there are multiple
choices you can have
L785[08:50:55] <Subaraki> the tabs ^
L786[08:50:58] <fry> 1) you keep the
current open tab there
L787[08:51:00] <Subaraki> which may or may
not be buttons
L788[08:51:07] <fry> 2) you keep the
"container" with all the tabs there
L789[08:51:11] ⇦
Quits: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de) (Remote
host closed the connection)
L790[08:51:51] <fry> 1 has less impact on
the current code
L791[08:52:06] <fry> 2 doesn't require any
external hooks for the rendering
L792[08:52:33] <fry> (and "tab
container" creation and management)
L793[08:52:56] <Subaraki> you can't mix
containers
L794[08:53:04] <Subaraki> if that's what
yo'ure implying
L795[08:53:09] <fry>
"mix"?
L796[08:53:25] <Subaraki> what's tab
container managment mean ?
L797[08:53:55] <fry> when you draw the tab
list, some data is accessed
L798[08:53:59] <fry> where does it come
from?
L799[08:55:35] <Subaraki> TabRegistry, a
MultiMap
L800[08:55:53] <Subaraki> public static
List<GuiTabs> getTabsForGui(Class< ? extends
GuiContainer> screen){
L801[08:56:21] <fry> here's that Class
again
L802[08:56:30] <Subaraki> yeah, still
didn't change it
L803[08:56:52] <Subaraki> switching on the
class is still better then on an instance imo
L804[08:58:05] <fry> again, what do you
want, semantically? you want to draw a "tab list" for a
currently open GuiContainer
L805[08:58:16] <Subaraki> yes
L806[08:58:41] <fry> the most natural way
in OO language to do that, is to have TabList getTabList() inside
GuiContainer :D
L807[08:59:04] <fry> TabList type may be a
bit different
L808[08:59:08] <fry> but that's the
general idea
L809[08:59:09] <Ordinastie> how do you
fill that list ? :)
L810[08:59:26] <Subaraki> ^
L811[08:59:27] <fry> that's a separate
question
L812[08:59:40] <fry> completely
independent of the getter "interface"
L813[08:59:52] <Ordinastie> that was
basically what I asked earlier :)
L814[09:00:13] <fry> answer depends on
what "tab list" is
L815[09:00:18] <Subaraki> Communication,
so forward, yet so complicated. Subaraki ~2016
L816[09:01:08] <Subaraki> for now, a tab
list, is a list of a class that is call GuiTabs that has an icon to
draw, and a onTabClicked button, for authors to send a packet in,
and open their inventory in said packet
L817[09:01:28] <fry> there's no "for
now", it's a fundamental design question :P
L818[09:01:47] <Ordinastie> just a list of
some Tab object
L819[09:01:51] <Subaraki> ^
L820[09:02:03] ⇦
Quits: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl) (Quit:
Leaving)
L821[09:02:04] <fry> and "what does
it do" is indeed a good way to define it
L822[09:02:04] <Ordinastie> with onClick,
and eventually infos about the drawing
L823[09:02:25] <fry> you just need to be a
little bit more careful than specifying a list of things your
current code does
L824[09:02:35] <Ordinastie> and that are
supplied by different mods
L825[09:02:47] <fry> and say instead
"what it needs to do"
L826[09:02:58] <Subaraki> what it needs to
do
L827[09:03:04] <fry> Ordinastie's
description is a bit better
L828[09:03:33] <Subaraki> display tabs in
the player inventory when clicked open people's inventories because
they addd the tab and all the tabs will also display in their
gui
L829[09:03:42] <fry> but "a
list" might not be precise enough :P
L830[09:03:58] <Ordinastie> implementation
detail? :p
L831[09:04:14] <Ordinastie> we only know
it has to support multiple tabs
L832[09:04:58] <fry> basic things: it has
a current tab, it can be rendered, current tab can be changed
L833[09:05:19] <Subaraki> and that those
tabs need to be drawn in the added gui's as well, as for to create
the illusion of one and only gui with real tabs, instead of
reopening gui's when clicking tabs :P
L834[09:05:25] <Ordinastie> tbh, I wasn't
even going that far
L835[09:05:35] <Ordinastie> not handling
the "current" state
L836[09:05:45] <Subaraki> current state
issue is solved though
L837[09:05:46] <Subaraki> to me.
L838[09:05:52] <fry> simplest realization
as an interface: int getCurrentTab(), void Draw(), void
setCurrentTab()
L840[09:06:14] <Ordinastie> interface
implemented by what ?
L841[09:06:20] <Subaraki> ^
L842[09:06:25] <Subaraki> a custom gui
could
L843[09:06:30] <Subaraki> player inventory
cannot
L844[09:06:33] <Subaraki> or better should
not
L845[09:06:41] <fry> the point is that
implementation is the implementation detail :P
L846[09:06:56] <fry> this is called
top-down design, I believe
L847[09:07:08] ⇦
Quits: AshIndigo (webchat@31.221.112.156) (Ping timeout: 195
seconds)
L848[09:07:08] <Subaraki> well, we bashed
in somewhere in the middle P:
L849[09:07:19] <fry> you can write
everything you need about the TabList using that interface
L850[09:07:24] <Subaraki> and now the top
is crushing us down
L851[09:07:27] <fry> (assuming it's
defined correctly)
L852[09:07:37] <Ordinastie> fry, so you
mean interface for the list :)
L853[09:07:48] <fry> "the list"?
:P
L854[09:07:50] <Subaraki> now lets imagine
we cannot use an interface
L855[09:07:58] <Ordinastie> the
"container" for the tabs
L856[09:07:58] <Subaraki> what do we do
then ?
L857[09:07:58] ***
Kolatra|away is now known as Kolatra
L858[09:08:37] <fry> what do you mean by
"can't use an interface"?
L859[09:08:58]
⇨ Joins: Elec332 (~Elec332@145.102.248.72)
L860[09:09:41] <Subaraki> i don't think I
should make a pr that makes the container gui implement an
interface for tabs ?
L861[09:09:58] <Subaraki> don't know if
it'll pass
L862[09:10:16] <fry> first of all, the
final implementation doesn't have to have an interface at all
L863[09:10:25] <fry> it's just a design
tool at this stage
L864[09:11:10] <fry> that can help you
find the right questions to ask
L865[09:11:18] <fry> for example: is
"void draw()" enough?
L866[09:11:40] <fry> or do you want each
"tab" to control the rendering of the tab
"icon"?
L867[09:12:17] <fry> a question that it
helps to answer: "do I need to know the length of the tab
list"? - current interface doesn't care about that
L868[09:12:20] <Ordinastie> I would keep
the draw, but have a default impl available that draws an
itemStack
L869[09:12:53] <Subaraki> i think the
itemstack is mandatory, just like the creative tabs
L870[09:13:08] <fry> the "default
impl" is an orthogonal question - "do I allow custom
implementations of this interface, or implement it myself once and
for all"?
L871[09:13:08] <Ordinastie> fuck that, I
hate that creative tabs forces you to use an item
L872[09:13:09] <Subaraki> and the draw
method could go in the tab itself, so you can call tab.draw ?
L873[09:13:19] <Subaraki> really
Ordinastie ?
L874[09:13:23] <gigaherz|work> creative
tabs requiring an item is one of the most annoying things
L875[09:13:28] <Subaraki> how would one
recognize one tab from another ?
L876[09:13:39] <gigaherz|work> I'd prefer
to be able to give it a resloc
L877[09:13:44] <gigaherz|work> for a
texture sprite
L878[09:13:51] <Subaraki> ah, that way
:)
L879[09:13:54] <Subaraki> good idea
L880[09:14:04] <Ordinastie> I'd even want
the tab to handle the whole drawing itself
L881[09:14:10] <fry> see, you start with
"what I need", you make an interface, you ask "is
that enough? what can I add? what can I remove?" :D
L882[09:14:27] <fry> that way you explore
the design space constructively
L883[09:14:36] <fry> instead of doing
something blindly :P
L884[09:14:43] <Ordinastie> fry, what is
enough is not necessarily what is convenient
L885[09:14:59] <fry> that's part of the
question
L886[09:15:16] <Subaraki> if(stackIcon !=
null) draw stack else draw resLoc
L887[09:15:22] <Ordinastie> the interface
should provide what is enough
L888[09:15:31] <Ordinastie> the default
impl is here for convenience
L889[09:15:32]
⇨ Joins: Koward
(~Koward@2a02:2788:7d4:4dd:c52e:c051:e8a2:4bfa)
L890[09:15:45] <gigaherz|work> I feel like
drawIcon(x,y) or just simply draw(x,y) would be best?
L891[09:15:50] <fry> again, interface at
the design level != java interface
L892[09:16:22] <Subaraki> then again, the
tabs would have the creative tab texture, so drawing the icon at a
certain position would allow what ?
L893[09:16:42] <fry> gigaherz|work: what
are (x,y)?
L894[09:17:12] <Subaraki> just in plain
center ? isn't that good ? where would you want to draw it apart
from in the center of the tab ?
L895[09:17:21] <fry> "draw" is
often too powerful anyway
L896[09:17:31] <fry> do you want to allow
arbitrary rendering code inside?
L897[09:17:36] <gigaherz|work> the gui
coordinates for either the edge of the tab, or the edge of the icon
assuming 16x16
L898[09:17:38] <Ordinastie> yes :p
L899[09:17:49] ⇦
Quits: Alex_hawks
(~Alex_hawk@2001:8003:84cf:5b00:556f:1d28:5aef:ce10) (Read error:
Connection reset by peer)
L900[09:17:58] <Ordinastie> gigaherz|work,
nah, you should assume 0, 0 for the current tab drawn
L901[09:18:00] <fry> so, is the size
fixed?
L902[09:18:15] <Subaraki> for a tab ? i'd
say yes
L903[09:18:22] <Subaraki> so we can fit 6
top, and 6 bottom
L904[09:18:23]
⇨ Joins: Alex_hawks
(~Alex_hawk@2001:8003:84cf:5b00:556f:1d28:5aef:ce10)
L905[09:18:25] <Subaraki> like
creative
L906[09:18:29] <fry> this is again a
design choice
L907[09:18:34] <Subaraki> or enough to
fill the vanilla gui texture
L908[09:18:40] <fry> which you need to
think about :P
L909[09:18:48]
⇨ Joins: AshIndigo
(~AshIndigo@188.29.164.226.threembb.co.uk)
L910[09:18:59] <Subaraki> then draw left
right buttons like the creative tab
L911[09:19:19] <Ordinastie> well, I
proposed a relatively simple and flexible solution, your choice,
imma continue my show :p
L912[09:19:33]
⇨ Joins: TTFT|Away
(~ttftcuts@2001:41d0:a:2dcf::)
L913[09:19:39] ***
TTFT|Away is now known as TTFTCUTS
L914[09:19:50] ⇦
Quits: Cooler (~CoolerExt@45.249.156.23) (Ping timeout: 186
seconds)
L915[09:20:16] <fry> good specification of
the draw method is something like this: "current GL state is
such that (0, 0) is top-left of the tab icon and (1, 1) is
bottom-right, z order is negative near positive far, background is
at z level 1"
L916[09:20:47] <fry> and, for example
"GL scissor state prevents rendering outside the icon
space"
L917[09:21:02] <fry> so you don't have to
worry about staying in the bounds
L918[09:21:30] <fry> this might now be
"simple"
L919[09:21:49] <fry> but it's better than
"undefined behaviour" :D
L920[09:22:08] <fry> if you don't think
about specification, your implementation becomes your
specification
L921[09:22:14] <fry> and you can't change
anything
L922[09:22:32] <Ordinastie> you can,
that's called refactoring :p
L923[09:22:47] <fry> define
refactoring
L924[09:23:48] <Ordinastie> RECODE
EVERYTHING! \o/
L925[09:23:57] <fry> or, better question:
is your definition of refactoring the same as the official
definition of refactoring?
L926[09:25:44] <gigaherz|work> refactor to
me means: apply transformations to the code which change the
layout/signatures, while trying to maintain referential
integrity
L927[09:25:45] <Subaraki> i'm tired
L928[09:25:48] <Subaraki> i'm
yawning
L929[09:25:55] <Subaraki> its only 4:30 in
the afternoon
L930[09:26:01] <fry> "Code
refactoring is the process of restructuring existing computer
code—changing the factoring—without changing its external
behaviour."
L931[09:26:20] <Subaraki> why have i ever
started trying to make a pr for inventory tabs ? ._.
L932[09:26:22] <Subaraki> no clue
L933[09:26:29] <Subaraki> im gonna take a
shower and nap
L934[09:26:33] <fry> "external
behaviour" is the specification :P
L935[09:26:38] <fry> (if you have
one)
L936[09:26:40] ***
Subaraki is now known as SubNap
L937[09:26:47] <fry> naps are good.
L938[09:27:40] <fry> and, if you don't
have a distinction between "implementation detail" and
"external behaviour", you can't refactor :P
L939[09:29:14]
⇨ Joins: Redfoxmoon
(~Red@177.92-221-236.customer.lyse.net)
L940[09:32:02] <AshIndigo> Crap I broke my
mod
L941[09:38:16] ⇦
Quits: AshIndigo (~AshIndigo@188.29.164.226.threembb.co.uk) (Killed
(NickServ (GHOST command used by
AshIndigo_!~AshIndigo@188.29.164.161.threembb.co.uk)))
L942[09:38:47]
⇨ Joins: AshIndigo_
(~AshIndigo@188.29.164.161.threembb.co.uk)
L943[09:39:16] <Katrix> Question, how
ready is the new config system?
L944[09:39:44] <gigaherz|work> how complex
are your configurations?
L945[09:40:09] <gigaherz|work> so far as I
know, it doesn't support having config categories at all
L946[09:40:26] <Katrix> Enable a bunch
(around maybe 20-30 of them) groups of items for the most
part
L947[09:40:29] <gigaherz|work> just maps
field names to keys
L948[09:40:49] <gigaherz|work> and has
support for a bunch of types
L949[09:41:32] <Katrix> In there a chance
that stuff might break with future Forge versions if I use it as it
it now?
L950[09:42:10]
⇨ Joins: TechnicianLP
(~Technicia@p4FE1C694.dip0.t-ipconnect.de)
L952[09:42:55] <Katrix> Also, isn' the
nested classes supposed to be kind of like the categories?
L953[09:44:39] <gigaherz|work> dunno
L954[09:44:43] <gigaherz|work> I haven't
actually used it yet
L955[09:44:55] <gigaherz|work> I just took
a look and it didn't seem to have what I needed
L957[09:46:22] <Katrix> That looks a bit
more complex yeah
L958[09:47:28] <Katrix> I'll give it a try
and see if it works
L959[09:49:57] ⇦
Quits: gigaherz|work (~gigaherz@84.89.63.25) ()
L960[09:51:44] ⇦
Quits: AshIndigo_ (~AshIndigo@188.29.164.161.threembb.co.uk) (Ping
timeout: 206 seconds)
L961[09:53:07]
⇨ Joins: ScottehBoeh (~ScottehBo@95.144.45.252)
L962[09:53:20] ⇦
Quits: Tarig (~Tarig@d4-50-187-60.try.wideopenwest.com) (Ping
timeout: 198 seconds)
L963[09:53:44] <TechnicianLP> is there
documentation on the new conifg system?
L964[09:53:53] <ScottehBoeh> I have a
guiOpen event, and I'm wanting it to cancel the player from opening
the Enchantment Table GUI (GuiEnchantment)
L965[09:54:09] <ScottehBoeh> I've got
""(event.gui instanceof GuiEnchantment)
{""
L966[09:54:16] <Katrix> For the Config
stuff, I guess just read the commit
L967[09:54:26] <ScottehBoeh> However, when
I set it to cancel, it crashes with "Attempted to cancel a
uncancelable event"
L968[09:54:36] <ScottehBoeh> Is there a
better way to go around canceling the player from opening an
Enchantment Table?
L969[09:55:35] *** V
is now known as Vigaro
L970[09:58:47] <TechnicianLP> you could
try closing the gui instead of canceling the event (depends on when
the event is fired)
L971[10:00:10]
⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L972[10:02:13] <Katrix> Ok, one thing is
crystal clear so far. It definitively support groups in the form of
nesting classes
L973[10:02:46] <Katrix> However, I can't
seem to get group comments to work
L974[10:03:24] <SubNap> ScottehBoeh,
there's two types of stopping an event
L975[10:03:27] <SubNap> either cancel
it
L976[10:03:33] <SubNap> or return
event.Stopped or something
L977[10:03:36] <SubNap> let me check
L978[10:04:06] <SubNap> result.deny
L979[10:04:33] <ghz|afk> HOME!
L980[10:04:37]
⇨ Joins: gr8pefish
(~gr8pefish@24-121-241-166.flagcmtk01.res.dyn.suddenlink.net)
L981[10:04:43] <SubNap> uhm, ScottehBoeh
it should be cancalable though
L982[10:04:47] ***
SubNap is now known as Subaraki
L983[10:04:52] ***
cpw|out is now known as cpw
L984[10:05:17] <ScottehBoeh> if (event.gui
instanceof GuiEnchantment) {
L985[10:05:17] <ScottehBoeh>
event.setCanceled(true);
L986[10:05:17] <ScottehBoeh> }
L987[10:05:21] <ScottehBoeh> Thats the
code I'm going for atm^^
L988[10:05:45] <ScottehBoeh> I crash when
running it. Let me get the Stacktrace
L989[10:06:28] <ScottehBoeh>
java.lang.IllegalArgumentException: Attempted to cancel a
uncancelable event
L990[10:06:31] <Subaraki> throw new
IllegalArgumentException("Attempted to cancel a non
cancellable event");
L991[10:06:38] <Subaraki> if the event is
not cancelable
L992[10:06:46] <Subaraki> but guiopenevent
is cancelable ... ?
L993[10:07:25] <ScottehBoeh> Ah!
L994[10:07:35] <ScottehBoeh> How stupid
can I get?
L995[10:07:40] <ScottehBoeh> I was using
the GuiScreenEvent.InitGuiEvent.Post
L996[10:07:41] <Subaraki> yes ?
L997[10:07:44] <Subaraki> <_<
L998[10:07:49] <ScottehBoeh> I'm too
blind, today.
L999[10:08:12] <ScottehBoeh> Working like
a charm!!
L1000[10:10:31]
⇨ Joins: Thefjong
(~Thefjong@3e6b1b1c.rev.stofanet.dk)
L1001[10:10:36] <Katrix> Here is the
config file that I created using the new system
L1002[10:10:45] <Katrix> Here is the
class
L1004[10:16:14] <ScottehBoeh> is there an
event for Chat? I'm gonna try to get the distance between the
sender and the receiver. Cancel it out if they're over a specific
distance
L1005[10:16:24] <ScottehBoeh> I looked
into ChatEvent, but I can't find anything related to the players or
their position.
L1006[10:17:16] <ScottehBoeh> Oh. Maybe
I've found it .
L1007[10:18:32]
⇦ Quits: Elec332 (~Elec332@145.102.248.72) (Ping timeout: 198
seconds)
L1008[10:21:35] ***
Vigaro is now known as V
L1009[10:21:45]
⇨ Joins: McJty
(~jorrit@d8D8721D2.access.telenet.be)
L1010[10:31:16]
⇦ Quits: Naiten (Naiten@77.34.168.132) (Read error:
Connection reset by peer)
L1011[10:32:02]
⇨ Joins: MalkContent
(~MalkConte@p5B02D538.dip0.t-ipconnect.de)
L1012[10:35:18]
⇦ Quits: Thefjong (~Thefjong@3e6b1b1c.rev.stofanet.dk) (Read
error: Connection reset by peer)
L1013[10:39:54] ***
diesieben|away is now known as diesieben07
L1014[10:44:34]
⇨ Joins: illy
(uid69226@id-69226.charlton.irccloud.com)
L1015[10:45:03] <illy> morning o/
L1016[10:45:25] <TangentDelta> Hi!
L1017[10:48:38]
⇨ Joins: ThePsionic
(~ThePsioni@ip5457f909.direct-adsl.nl)
L1018[10:48:40] <blood|wrk> why aren't
fluid events cancellable?
L1019[10:48:56] <blood|wrk> at least in
the internal classes, event is never checked if cancelled
L1020[10:52:08]
⇨ Joins: Elec332 (~Elec332@145.102.248.72)
L1021[10:56:32] <TangentDelta> Can it be
overriden?
L1022[10:56:57]
⇦ Quits: Jezza (~Jezza@bps-gw.hrz.tu-chemnitz.de) (Remote
host closed the connection)
L1023[11:03:14] <blood|wrk> Do all fluid
mods call FluidTank.drain ?
L1024[11:03:17] <blood|wrk> if they are
draining
L1025[11:03:27] <blood|wrk> or do some
override this functionality and not call super?
L1026[11:03:48] <blood|wrk> i need to
protect against mods that attempt to drain liquid
L1027[11:04:11] <blood|wrk> i already
prevent the drain but if mod doesnt know it should NOT drain, it
just dupes the liquid
L1028[11:12:51]
⇦ Quits: Elec332 (~Elec332@145.102.248.72) (Read error:
Connection reset by peer)
L1029[11:15:59] ***
Abrar|gone is now known as AbrarSyed
L1030[11:18:55] <Necro> blood|wrk: Mods
don't call FluidTank#drain but IFluidTank#drain of which
FluidTank#drain is just an implementation. If you want to prevent
draining you have to override IFluidTank#drain to return
null.
L1031[11:20:10] <gr8pefish> Hmm, I
thought that adding a layer to a player would trigger vanilla code
to update nearby players that that player has layerx, so update it
visually in multiplayer, but that does not seem to be the case.
Basically. Player -> myLayer -> works for *that* individual
client -> other people can't see it though. Anyone know how to
fix this (code can be linked)
L1032[11:23:02] <Subaraki> yes
gr8pefish
L1033[11:23:10] <Subaraki> depending on
what determines that renders the layer on the player
L1034[11:23:15] <Subaraki> send that info
to the tracked players
L1035[11:24:46] <gr8pefish> It's a
capability (that is synced to the client also), so that should be
easy. Where/what is the tracked players (field in world/player/etc,
I don't know)?
L1036[11:26:00]
⇨ Joins: Intektor
(~Intektor@p5B275568.dip0.t-ipconnect.de)
L1037[11:27:14] <Intektor> anyone knows
how to use Quaternion in rotation? I need yaw pitch and roll
L1038[11:28:07] <Subaraki> gr8pefish,
just send it to the server :)
L1039[11:28:12] <Subaraki> should be
fine
L1040[11:28:50]
⇨ Joins: Noppes
(~Noppes@ip56530f2e.direct-adsl.nl)
L1041[11:30:43]
⇨ Joins: KGS
(~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L1042[11:32:37] <gr8pefish> Subaraki, I'm
sorry, I guess I don't follow. Send what to the server? The
capability itself is already on the server player. Here's an
example. Steve used my item, so he has my capability. The
particular item renders on his back (it's a backpack), so when he
presses f5 to go to 3rd person view he can see that backpack. But
Sue, another player on the server who is standing right next to
Steve, cannot see the
L1043[11:32:38] <gr8pefish> backpack. She
can see her own, but not other people's (same with Steve). Both
Steve's and Sue's capabilities are synced on their respective
client and server players (95% sure, could be the cause of this,
but I don't think so), yet this is still happening. So what packet
exactly do I need to send?
L1044[11:33:15] <Subaraki> okay
L1045[11:33:23] <Subaraki> then send a
packet to all nearby players :)
L1046[11:33:30]
⇦ Quits: Zed_ (~Zed@host-92-20-246-59.as13285.net) (Ping
timeout: 183 seconds)
L1047[11:34:51] <diesieben07> ugh, java
needs import as...
L1048[11:36:54] <Subaraki> like
sendtoallaround or sendtodimension
L1049[11:37:03] <Subaraki> or send a
packet to a player when you start tracking him
L1050[11:37:06] <gr8pefish> So
packetHandler.handler.sendToAllAround(myPacketToUpdateClientCap,
someParamIHaveToFigureOut)
L1051[11:37:07] <Subaraki>
startrackingevent
L1052[11:37:17] <Subaraki> yeah, that
sounds like a plan as well
L1053[11:37:28] <gr8pefish> AH yeah I was
looking at startTrackingEvent, is that a better way to go about
it?
L1054[11:37:39] <Subaraki> the target
point is you
L1055[11:37:46] <Subaraki> i think
so
L1056[11:37:53] <Subaraki> don't know if
it works if the player is already tracked
L1057[11:37:57] <Subaraki> try
sendtodimension ?
L1058[11:38:10] <Subaraki> will update
all players in that current dimension
L1059[11:38:10] <tterrag|ZZZzzz>
gr8pefish: yes, use the tracking event
L1060[11:38:16] <Subaraki> doesn't sound
like a good idea though
L1061[11:38:24] ***
Subaraki is now known as SubShop
L1062[11:38:25] <tterrag|ZZZzzz> no
L1063[11:38:30] <gr8pefish> Alright, I'll
look into the tracking event, thanks
L1064[11:38:31] <tterrag|ZZZzzz> just use
the tracking event and send to individual players
L1065[11:38:48]
⇨ Joins: Zed
(~Zed@host-92-16-145-159.as13285.net)
L1066[11:39:39]
⇨ Joins: brandon3055
(~Brandon@122-129-151-31.dynamic.ipstaraus.com)
L1067[11:41:54]
⇨ Joins: Jezza (~Jezza@92.206.4.86)
L1069[11:56:45]
⇦ Quits: Koward
(~Koward@2a02:2788:7d4:4dd:c52e:c051:e8a2:4bfa) (Ping timeout: 183
seconds)
L1070[11:57:50] <TangentDelta> I'm kind
of an idiot when it comes to java. Do I need to call
super.blah(args) in my overriden block functions? Like, on
breakBlock, do I need to have super.breakBlock? IT seems to work
perfectly fine without it, and I don't know why it would need to
call it from its parent class.
L1071[11:58:09] <tterrag|ZZZzzz>
gr8pefish: no
L1072[11:58:28] <tterrag|ZZZzzz> You are
sending the info of the player they are tracking, to the
tracker
L1073[11:58:42] <tterrag|ZZZzzz> So you
want to check that the target has the capability
L1074[11:58:47] <tterrag|ZZZzzz> er
L1075[11:58:54] <tterrag|ZZZzzz> The
tracker*
L1076[11:59:23] <tterrag|ZZZzzz> and send
a packet to their client to update the target
L1077[11:59:33] ***
tterrag|ZZZzzz is now known as tterrag|away
L1078[11:59:42] <TangentDelta> I also
finally got block states working!
L1079[12:00:11] <tterrag|away>
TangentDelta: depends on the method. generally you should call
super
L1080[12:00:24] <tterrag|away> Other
times you may want the parent behavior to never run
L1081[12:00:54] <TangentDelta> So, since
my block extends a custom "BlockBase", does the call get
passed along to "Block" from my
"BlockBase"?
L1082[12:01:18] <TangentDelta> I'd guess
yes since I don't override the method in my
"BlockBase".
L1083[12:02:16] <TangentDelta> So when I
call super.blah do I want to pass the args out exactly as they came
in?
L1084[12:02:17] <tterrag|away> yes
L1085[12:02:31] <tterrag|away> again, it
depends
L1086[12:02:36] <tterrag|away> Think
about what you are doing
L1087[12:02:42] <TangentDelta> Is there a
rule of thumb to go by?
L1088[12:02:48] <tterrag|away> and what
the parent class is doing
L1089[12:03:03] <TangentDelta> Ah.
L1090[12:06:10] <TangentDelta> I think I
see now. So if the parent method, Block.breakBlock, does extra
things then I'd want to call super.
L1091[12:06:25]
⇨ Joins: SquareWheel
(~SquareWhe@s0106687f7463986c.ok.shawcable.net)
L1092[12:07:16] <TangentDelta> Well, say
all I have is removeTileEntity. Minecraft might be smart enough to
remove the block from the world, but it's just good practice to
call the parent method to be sure.
L1093[12:08:37] <McJty> removeTileEntity
will not even remove the block
L1094[12:08:42] <McJty> It will just
remove the tile entity
L1095[12:09:43] <tterrag|away> The real
question is why you'd even override that method
L1096[12:11:15] <TangentDelta> I don't
need to. It already does it for me.
L1097[12:11:22] <TangentDelta> It's gone
now.
L1098[12:11:47] <TangentDelta> Well, I'll
keep it if I ever need to do something extra, like notify other
control blocks of an array change.
L1100[12:13:31] <gr8pefish>
nt/ServerEventHandler.java#L49-L49
L1102[12:14:54] <Intektor> with ffmpeg,
is it possible to stream the mc.framebuffer?
L1103[12:15:06] <tterrag|away> Your
packet needs to be extended to target other players on the
client
L1104[12:15:10]
⇦ Quits: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl)
(Quit: Leaving)
L1105[12:15:29] <tterrag|away> You need
to update the info about thee target on the tracker's client
L1106[12:16:20] <tterrag|away> The
tracker is the only "real" player in this situation. He
also already knows everything about himself
L1107[12:16:34] <tterrag|away> You are
trying to tell the tracker about the target
L1108[12:17:14] <gr8pefish> so
sendTo(SomePacketThatHasInfoAboutTheTarget, tracker) then?
L1109[12:17:34] <tterrag|away> yes
L1111[12:18:47] <tterrag|away> Old code
that used IEEP but same concept
L1112[12:19:24] <gr8pefish> Sweet thanks,
some concrete code example (even if it isn't perfect) really
helps
L1113[12:19:38]
⇦ Quits: MalkContent
(~MalkConte@p5B02D538.dip0.t-ipconnect.de) (Ping timeout: 206
seconds)
L1114[12:30:00]
⇨ Joins: MalkContent
(~MalkConte@p5B02D538.dip0.t-ipconnect.de)
L1115[12:34:15]
⇨ Joins: Girafi
(~Girafi@0x555178eb.adsl.cybercity.dk)
L1116[12:37:13]
⇨ Joins: Vazkii (~Vazkii@62.28.200.62)
L1117[12:41:51]
⇨ Joins: secknv
(~secknv@2001:8a0:6c73:3001:856d:b759:19d8:30f6)
L1118[12:44:17]
⇦ Quits: Intektor (~Intektor@p5B275568.dip0.t-ipconnect.de)
(Read error: Connection reset by peer)
L1122[12:49:13] <gr8pefish> wowo I can't
type
L1124[12:56:16] <tterrag|away> Well for
one make sure to use the scheduler
L1125[12:56:29] <tterrag|away> Otherwise,
idk. debug your packet and see what happens
L1126[12:58:41] <blood|wrk> Necro: do
mods check if fluid events are cancelled? seems like most dont even
bother firing events
L1127[12:59:10] ***
AbrarSyed is now known as Abrar|gone
L1128[12:59:17] <gr8pefish> Alright, yeah
that's fine, I can debug as long as I am on the right track
:)
L1129[13:00:55] <gr8pefish> thanks again
for the assistance!
L1130[13:01:09]
⇨ Joins: Intektor
(~Intektor@p5B275568.dip0.t-ipconnect.de)
L1131[13:01:37] <Intektor> I have to
stream the minecraft picture to my android device with a minimum
lag, any ideas?
L1132[13:02:44] <ghz|afk> implement some
protocol like WebRTC
L1133[13:03:06] <Intektor> what does that
do?
L1134[13:03:10] <ghz|afk> (or well,
whatever protocol they use in the WebRTC API)
L1135[13:03:17] <ghz|afk> WebRTC is an
API for javascript
L1136[13:03:33] <ghz|afk> to be able to
do realtime communications (video conferencing, livestreaming and
such)
L1138[13:05:04] <ghz|afk> maybe
L1139[13:05:23] <ghz|afk> maybe RTSP has
more existing libraries
L1140[13:05:55] <ghz|afk> or really, open
a socket and start sending pictures.
L1141[13:06:23] <Intektor> I tried
L1142[13:06:48] <Intektor> but writing
2MB of data every rendering tick didn't go to well
L1143[13:07:05] <ghz|afk> well not
RAW
L1144[13:07:09] <ghz|afk> at least
compress as jpg
L1145[13:07:10] <ghz|afk> XD
L1146[13:07:12] <Intektor> I did
L1147[13:07:15] <Intektor> thats the
problem
L1148[13:07:25] <Intektor> I used that
jcodec shit
L1149[13:07:48] ***
Abrar|gone is now known as AbrarSyed
L1150[13:08:06] <ghz|afk> so wait, you
got something to display on the phone at least?
L1151[13:09:29] <Intektor> a media
player
L1152[13:09:39] <Intektor> I have to
convert it to vr later
L1153[13:09:47] <Intektor> but right now
I just want the frames on my phone
L1154[13:10:11] <Intektor> my phone has a
screen though :D
L1155[13:10:17] <ghz|afk> oh VR, that
makes it a bit more annoying too
L1156[13:10:35] <ghz|afk> since you'll
want as much resolution as possible
L1157[13:10:41] <Intektor> yes
L1158[13:10:48] <ghz|afk> so you want a
good codec
L1159[13:10:56] <Intektor> very
true
L1160[13:11:07] ***
Mine|dreamland is now known as minecreatr
L1161[13:11:56] <ghz|afk> which means you
need both a codec that can encode in realtime fast (gpu
acceleration seems like a good bonus)
L1162[13:12:04] <ghz|afk> and a good
streaming protocol to go along with it
L1163[13:12:13] <Intektor> that would be
perfect
L1164[13:12:28]
⇨ Joins: alexiy (~alexiy@ip-118-203.zb.lv)
L1165[13:12:33] <TangentDelta>
Wait...does MC have VR support natively now?
L1166[13:12:43] <Intektor> no
L1167[13:12:52] <TangentDelta>
Okay.
L1168[13:13:34] <ghz|afk> the best java
mc has is 3d anaglyph
L1169[13:13:56] <Intektor> and even that
sucks
L1170[13:14:07] <ghz|afk> for proper VR
you need to render two half-cubes
L1171[13:14:16] <ghz|afk> then apply a
fisheye projection
L1172[13:14:34] <ghz|afk> and then send
the two images side by side to the VR device
L1174[13:15:49] <ghz|afk> someone did a
rtsp server
L1175[13:16:01] <ghz|afk> I don't know if
you can feed a random video stream into it
L1176[13:16:14] <ghz|afk> or it has to be
a specific format
L1177[13:17:12] <Intektor> what exactly
do you mean with two half cubes?
L1178[13:17:37] <ghz|afk> well that's how
you normally do a fisheye projection
L1179[13:17:45] <ghz|afk> you render a
half-cubemap
L1180[13:17:56] <ghz|afk> and then feed
that to a fisheye shader
L1181[13:18:41] <Intektor> cant you just
feed the google vr sdk a picture and it does the job?
L1182[13:19:08] <ghz|afk> no idea
L1183[13:19:17] <Intektor> or isnt that
proper vr?
L1184[13:19:31] ***
Darkhax_AFK is now known as Darkhax
L1186[13:20:53] <ghz|afk> maybe you can
process it from a standard frame
L1188[13:22:54]
⇨ Joins: xcube (~xcube16@216.38.32.2)
L1189[13:23:43] <xcube> Is there a way to
put life cycle events outside the main mod class?
L1190[13:24:29] <ghz|afk> nope, that's
what the main mod class is for
L1191[13:24:34] <ghz|afk> if you remove
the lifecycle events from it, it's useless
L1192[13:26:42] <ghz|afk> out of
curiosity, where would you have wanted those lifecycle
events?
L1193[13:27:05] <ghz|afk> (I can guess
what the reply will be, but I'm curious ;P)
L1194[13:27:14] <xcube> I wanted to put
one in a proxy
L1195[13:27:33] <xcube> I can just call
the proxy form the mod class
L1196[13:27:44] <xcube> But it was worth
asking
L1197[13:28:11] <Intektor> ghz|afk, do
you know if there is any good HEVC or h264 library, with
documentation
L1198[13:28:41] <ghz|afk> apaprently they
don't use fisheye, they use a barrel distorrtion on a rectangular
projection
L1199[13:28:42] <ghz|afk> meh.
L1200[13:28:50] <ghz|afk> Intektor: no, i
have 0 experience with those topics
L1201[13:29:33]
⇦ Parts: alexiy (~alexiy@ip-118-203.zb.lv)
(Leaving))
L1202[13:30:08] <xcube> Intektor: You
reminded me of an idea I had... A screenshot mode that would
capture the next x number of seconds and put it in a gif or
something
L1203[13:30:33] <ghz|afk> there's apps
for that ;P
L1204[13:30:46] <xcube> Ya, but a
minecraft mod would be cool
L1205[13:31:04] <ghz|afk> that woiuld be
more interesting is a mod that "saves" the last X
seconds, so that you can make a gif after the fact
L1206[13:31:04] <ghz|afk> ;P
L1207[13:31:57] <xcube> That is a good
idea also, but the overhead might be stressful on lower end
systems
L1208[13:32:34] <ghz|afk> ofc
L1209[13:33:34] <gr8pefish> tterrag|away,
regarding the PlayerEvent.StartTracking, via debugging, the target
entity (event.getTarget()) never seems to be called for a player. I
can get it to call for e.g. entitySkeleton, etc, but not for the
other player on the server. Am I misunderstanding the event on a
fundamental level, or is that odd behaviour?
L1210[13:38:20]
⇦ Quits: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 198
seconds)
L1211[13:44:05] <ghz|afk> LOL
L1212[13:44:08] <ghz|afk> found a bug in
mc
L1213[13:44:40] <ghz|afk> I went to the
nether
L1214[13:44:49] <ghz|afk> and after
arriving, there was the weird sound
L1215[13:44:51] <ghz|afk> which was a bit
too loud
L1216[13:44:55] <ghz|afk> so I went to
lower the volume
L1217[13:45:04] <ghz|afk> and after
unpausing, it started playing from the beginning
L1218[13:50:07] <blood|wrk> anyone know
IC2 player's github name?
L1219[13:50:10] <blood|wrk> need to ask
him a question
L1220[13:56:49] ***
diesieben07 is now known as diesieben|away
L1221[13:57:42]
⇦ Quits: mallrat208 (~mallrat20@107-145-175-135.res.bhn.net)
(Read error: Connection reset by peer)
L1222[13:59:47] <Aroma1997> if it's a IC2
related question, I might also be able to help you...
L1223[14:01:14] <blood|wrk> it has to
deal with the code (tracking down an issue with Sponge/IC2) not
sure where the problem lies
L1224[14:01:35] <Aroma1997> what issue
would that be?
L1226[14:01:43] <blood|wrk> NPE in that
comment
L1227[14:03:10] <Aroma1997> umm, that is
a bug of an addon not using the IC2 api correctly
L1228[14:03:23] ***
diesieben|away is now known as diesieben07
L1229[14:03:28] <blood|wrk> would you be
able to respond to that ticket?
L1230[14:03:42] <Aroma1997> in one of the
later builds of IC2, that was changed to log instead of crash
L1231[14:03:52] <Aroma1997> and it'+s
most likely calculator causing that crash
L1232[14:04:07] <blood|wrk> ah so the
pack is just using a bugged build?
L1233[14:04:13] <Aroma1997> yes
L1234[14:04:22] <blood|wrk> k if you dont
mind, could you respond with what you said?
L1235[14:04:27] <Aroma1997> sure
L1236[14:04:29] <blood|wrk> I assume you
work on IC2 with player?
L1237[14:04:36] <Aroma1997> yes
L1238[14:04:38] <blood|wrk> k
thanks
L1239[14:04:42] <Aroma1997> np
L1240[14:06:44]
⇨ Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L1241[14:15:18]
⇨ Joins: AshIndigo
(~AshIndigo@188.29.164.11.threembb.co.uk)
L1242[14:19:20]
⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
(Ping timeout: 384 seconds)
L1243[14:19:21]
⇦ Quits: gr8pefish
(~gr8pefish@24-121-241-166.flagcmtk01.res.dyn.suddenlink.net)
(Quit: I'm gone)
L1244[14:21:55]
⇦ Quits: Necro (~Necro@p4FFCDC3E.dip0.t-ipconnect.de) (Ping
timeout: 206 seconds)
L1245[14:32:55]
⇨ Joins: fivestang (fivestang@shell.xshellz.com)
L1246[14:38:45] <ScottehBoeh> xD Can I
show you guys something funny?
L1247[14:38:59] <ScottehBoeh> I was
messing around with the Hurt event and it looks like you're giving
a player a slap across the face
L1249[14:49:27]
⇦ Quits: p455w0rd (~p455w0rd@172.76.203.10) ()
L1250[14:57:55]
⇦ Quits: VikeStep (~VikeStep@101.184.243.180) (Read error:
Connection reset by peer)
L1251[14:59:07]
⇨ Joins: Shambling
(~Joseph@24-181-186-74.dhcp.nwtn.ct.charter.com)
L1252[15:01:24] <Shambling> boni are you
still actively developing harvest tweaks? Or do you consider it a
finished mod baring minecraft revisions?
L1253[15:03:04] <Shambling> and baring
him being elsewhere, what is the best way to debug a config file
not being update when you have all permission levels set correctly?
I'm having issues with one mod not generating the config file for
blocks (harvesttweaks) and would like to debug it before submitting
something to the issue tracker
L1254[15:03:43] <Shambling> I'm thinking
its one mod in particular causing a crash state, but without
constant output to a log file its hard to see if an exception is
thrown
L1255[15:05:24]
⇨ Joins: LexLap2
(~LexManos@50-196-5-249-static.hfc.comcastbusiness.net)
L1256[15:05:24]
MineBot sets mode: +o on LexLap2
L1257[15:06:43] <Shambling> meh maybe it
is logged, I'll have to remote into the desktop and check and see
if I can find it
L1258[15:06:48] <Shambling> sorry for
bothering anyone
L1259[15:06:51]
⇨ Joins: ThePsionic
(~ThePsioni@ip5457f909.direct-adsl.nl)
L1260[15:10:54]
⇦ Quits: LexLap
(~LexManos@50-196-5-249-static.hfc.comcastbusiness.net) (Ping
timeout: 384 seconds)
L1261[15:14:47] ***
Drullkus is now known as DrullAFKus
L1262[15:17:42]
⇦ Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Read
error: Connection reset by peer)
L1263[15:19:45]
⇦ Quits: McJty (~jorrit@d8D8721D2.access.telenet.be) (Quit:
Leaving)
L1264[15:23:43] <blood|wrk> Aroma1997:
around?
L1265[15:23:49] <Aroma1997> yes
L1266[15:24:01] <blood|wrk> question, do
you guys fire drain/fill events before doing it?
L1267[15:24:14] <blood|wrk> i want to
protect ic2 but i dont see a feasible option other than ASM
L1268[15:24:35] <blood|wrk> firing an
event would be the easiest as i can just cancel if needed
L1269[15:25:22] <blood|wrk> so Player A
is attempting to drain water/lava from a protected area. Currently,
the water/lava is prevented from draining but IC2 will still copy
the data into the pump
L1270[15:25:37] <blood|wrk> thus being
able to dupe whatever it attempts to drain
L1271[15:27:07]
⇨ Joins: alekso56
(~znc@ti0107a400-1168.bb.online.no)
L1272[15:27:39] <Aroma1997> pump stuff is
a bit broken right now. It's already on my todo-list to
rewrite
L1274[15:28:59] <blood|wrk> could you at
least fire these events?
L1275[15:29:13] <blood|wrk> and if
cancelled, avoid the logic
L1276[15:29:19] <blood|wrk> that would
help my end alot
L1277[15:29:35] <blood|wrk>
FluidFillingEvent and FluidDrainingEvent
L1278[15:29:56] <blood|wrk> hrmm i guess
the FluidSpilledEvent also
L1279[15:31:41] <Aroma1997> sure
L1280[15:31:49]
⇨ Joins: otho (~otho@191.189.97.98)
L1281[15:32:04] <Aroma1997> if I
remember...
L1282[15:32:08] <blood|wrk> excellent!
that will make alot of hermitpack servers happy
L1283[15:32:18] <blood|wrk> the ones that
use Sponge/GriefPrevention
L1284[15:32:37] <blood|wrk> let me know
when you add it so I can handle it in Sponge
L1285[15:33:42] ***
minecreatr is now known as Mine|away
L1286[15:35:18]
⇨ Joins: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L1287[15:38:41]
⇦ Quits: Hgrebnednav (~Hgrebnedn@d8D872A6E.access.telenet.be)
(Ping timeout: 384 seconds)
L1288[15:41:06] <Aroma1997> might take a
couple of weeks though, as I'm currently quite busy
L1289[15:43:30] <blood|wrk> is ic2 open
source?
L1290[15:43:37] <blood|wrk> because i can
easily PR a fix
L1291[15:47:06] <Aroma1997> no, it's
not
L1292[15:50:43]
⇦ Quits: Shambling
(~Joseph@24-181-186-74.dhcp.nwtn.ct.charter.com) (Read error:
Connection reset by peer)
L1293[15:50:48]
⇦ Quits: xcube (~xcube16@216.38.32.2) (Remote host closed the
connection)
L1294[15:59:20]
⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping
timeout: 198 seconds)
L1295[16:00:11]
⇨ Joins: founderio
(~Thunderbi@p200300C4E3C1510048AC93732E3A608E.dip0.t-ipconnect.de)
L1296[16:01:37]
⇨ Joins: KGS
(~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L1297[16:02:31]
⇦ Quits: illy (uid69226@id-69226.charlton.irccloud.com)
(Quit: Connection closed for inactivity)
L1298[16:03:25]
⇦ Quits: founderio
(~Thunderbi@p200300C4E3C1510048AC93732E3A608E.dip0.t-ipconnect.de)
(Client Quit)
L1299[16:04:59] ***
fry is now known as fry|sleep
L1300[16:20:56]
⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping
timeout: 198 seconds)
L1301[16:21:09]
⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Quit:
Leaving.)
L1302[16:21:10] ***
V is now known as Vigaro
L1303[16:24:23]
⇦ Quits: TechnicianLP
(~Technicia@p4FE1C694.dip0.t-ipconnect.de) (Ping timeout: 183
seconds)
L1304[16:30:53]
⇨ Joins: gr8pefish
(~gr8pefish@24-121-241-166.flagcmtk01.res.dyn.suddenlink.net)
L1305[16:31:47]
⇦ Quits: brandon3055
(~Brandon@122-129-151-31.dynamic.ipstaraus.com) (Read error:
Connection reset by peer)
L1306[16:36:12] ***
AshIndigo is now known as AshIndigo-Sleeping
L1307[16:39:10]
⇦ Quits: otho (~otho@191.189.97.98) (Quit:
Leaving)
L1308[16:39:32]
⇦ Quits: RichardG (~richardg8@201.37.241.91) (Ping timeout:
198 seconds)
L1309[16:40:22] <TangentDelta> Is there
any penalty for going out and talking to another tile entity
several times per tick?
L1310[16:41:15]
⇦ Quits: Vazkii (~Vazkii@62.28.200.62) (Read error:
Connection reset by peer)
L1311[16:41:26]
⇦ Quits: auenf (David@DC-24-199.bpb.bigpond.com) (Ping
timeout: 182 seconds)
L1312[16:41:47] <ghz|afk> TangentDelta:
this is programming
L1313[16:42:01] <ghz|afk> each function
call has a cost, each line of code has a cost
L1314[16:42:04] <ghz|afk> it's just
rather small
L1315[16:42:11] <ghz|afk> so it depends
on how many "several" is
L1316[16:42:36]
⇨ Joins: auenf (David@DC-24-199.bpb.bigpond.com)
L1317[16:43:21] <TangentDelta> Well,
probably a thousand times. I'd probably be better off writing it
all at the end of the tick.
L1318[16:43:51] <ghz|afk> uhm
L1319[16:43:57] <ghz|afk> what are you
doing? ;P
L1320[16:44:02] <SquareWheel> That sounds
like a lot.
L1321[16:44:07] <ghz|afk> a thousand
times per tick sounds like a look
L1322[16:44:09] <ghz|afk> lot*
L1323[16:44:19] <ghz|afk> so it may be
best if you explain your situation ;P
L1324[16:44:55] <TangentDelta> Making a
65EL02 compatible CPU.
L1325[16:45:16] <ghz|afk> uhh
L1326[16:45:26] <ghz|afk> how does that
translate to a thousand tileentities?
L1327[16:45:34] <ghz|afk> are you
implementing each component as an actual block?
L1328[16:45:57] <ghz|afk> or wait, do you
just mean like, the same tileentity, but more than 20 cycles per
second?
L1329[16:46:23] <TangentDelta> I'd like
to. I could just have the main CPU inventory all attached RAM
blocks and build it all internally.
L1330[16:46:30] <TangentDelta> Yes.
L1331[16:46:32] <ghz|afk> I feel like you
may be approaching it wrong
L1332[16:46:50] <ghz|afk> the way I'd do
that is
L1333[16:47:00] <ghz|afk> when you have a
block change
L1334[16:47:09] <ghz|afk> (a
ram/cpu/whatever block is added or removed)
L1335[16:47:14] <ghz|afk> update the
internal machine structure
L1336[16:47:19] <TangentDelta>
Yeah.
L1337[16:47:24] <ghz|afk> but keep the
entire thing centralised
L1338[16:47:30] <ghz|afk> just sharing a
"model"
L1339[16:47:42] <ghz|afk> (structure
model, not in graphical terms)
L1340[16:47:51] <TangentDelta> That's the
direction I'll try to head in.
L1341[16:47:58] <ghz|afk> so that all of
them have access to notify the structure of the changes
L1342[16:48:10] <ghz|afk> I wrote a graph
library designed to keep track of nodes in a network
L1343[16:48:19] <ghz|afk> but it may not
be as useful in your case
L1345[16:48:47] <ghz|afk> at least it may
give you an idea of how I approach it
L1346[16:48:50] <TangentDelta> I could
limit reads/writes to just the end of the tick. For things like
redstone I/O control.
L1347[16:49:45] <SquareWheel> I'm no
expert here so take ghz's word over mine. But if it's a complex
computer it might be worth threading separately.
L1348[16:50:10] <SquareWheel> Tying it to
Minecraft tick updates seems like it'd lead to iffy
performance.
L1349[16:50:29] <ghz|afk> well it's ok to
simulate 1/20th of a second at a time
L1350[16:50:33] <ghz|afk> for internal
computing
L1351[16:50:55] <SquareWheel> I wonder
how OpenComputers/ComputerCraft handle it. Or TIS-3D for that
matter.
L1352[16:51:00] <ghz|afk> just so long as
you don't drive the actual machine at 1 cycle per tick
L1353[16:52:08] <SquareWheel> I'm
thinking about input too. Infrequent updates would feel laggy when
typing, if that's the input method.
L1354[16:52:29] <SquareWheel> Or just
client-side it and sync on updates.
L1355[16:52:51] <ghz|afk> hmm input is
basically client-side
L1356[16:52:58] <ghz|afk> the GUI isn't
bound to the tick rate
L1357[16:53:01]
⇦ Quits: jackmcbarn (jackmcbarn@gateway.insomnia247.nl) (Ping
timeout: 192 seconds)
L1358[16:55:00]
⇨ Joins: RichardG (~richardg8@201.37.241.91)
L1359[16:55:00]
MineBot sets mode: +v on RichardG
L1360[16:55:35] <ghz|afk> input probably
makes the most sense the way they do it in terminals
L1361[16:55:42] <ghz|afk> rather than
send keys to the server and wait for them to show up on
screen
L1362[16:55:46] <TangentDelta> The 65EL02
operates at 20KHz. It looks like it runs 1000 instructions per
tick.
L1363[16:55:47] <ghz|afk> you use local
echo
L1364[16:56:33] <SquareWheel> Yeah. That
was always an issue with CC. Doing it client-side then just syncing
would feel much smoother.
L1365[16:56:37] <ghz|afk> local echo can
work in two ways, buffered, or unbuffered. if buffered, the input
is only sent when pressing enter
L1366[16:56:57] <ghz|afk> if unbuffered,
then you assume the terminal will work eventually
L1367[16:57:04] <ghz|afk> and just avoid
the feeling of lag
L1368[16:57:11] <TangentDelta> Yeah. I'll
probably just use a standard keyboard buffer for keyboard
input.
L1369[16:58:47] <TangentDelta> Hey, I
have a working block! I can actually move onto the fun stuff
now!
L1370[16:59:00] <ghz|afk> :)
L1371[16:59:45]
⇨ Joins: Vaht
(~Tahg@pool-71-248-165-18.bstnma.fios.verizon.net)
L1372[16:59:45]
MineBot sets mode: +v on Vaht
L1373[17:00:38]
⇦ Quits: Tahg
(~Tahg@pool-71-248-165-18.bstnma.fios.verizon.net) (Ping timeout:
186 seconds)
L1374[17:01:27] <TangentDelta> Every time
I start modding again, I have to take some time and relearn a lot
of the stuff.
L1375[17:03:35]
⇦ Quits: Actuarius (~Actuarius@195.91.246.187) (Read error:
Connection reset by peer)
L1376[17:04:03]
⇨ Joins: Shambling
(~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com)
L1377[17:04:14]
⇨ Joins: Actuarius (~Actuarius@195.91.246.187)
L1378[17:04:14]
MineBot sets mode: +v on Actuarius
L1379[17:04:21]
⇨ Joins: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
L1380[17:04:25]
⇦ Quits: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl)
(Quit: Leaving)
L1381[17:06:15] <Shambling> is there a
way to run a java debugger live in the background on an actual live
version of minecraft?
L1382[17:10:10] <howtonotwin> I'd assume
you'd attach a debugger to it just like any other Java
program.
L1383[17:12:03]
⇦ Quits: RichardG (~richardg8@201.37.241.91) (Ping timeout:
206 seconds)
L1384[17:12:10] <howtonotwin> But
"actual live version" is a bit unclear; what exactly do
you want?
L1385[17:12:47] <howtonotwin> (Also, were
you the one that was reading my docs? Any glaring errors?)
L1386[17:13:00] <diesieben07> you need
some command line args when launching the JVM
L1387[17:13:05] <diesieben07> and then
you can attach the debugger
L1388[17:13:18] <diesieben07> usually
your IDE should give you the needed arguments when you create a
"Remote" launch configuratin
L1389[17:15:16] <howtonotwin> Attaching
this to the opts should work
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n"
L1390[17:15:31] <howtonotwin> You'll get
a port number that you can then attach e.g. JDB to.
L1391[17:16:27] <diesieben07> ehhh
no
L1392[17:16:32] <diesieben07> JDB is THE
debugging API
L1393[17:16:39] <diesieben07> you attach
something TO jdb ;)
L1394[17:16:43] <kenzierocks> visualvm
:D
L1395[17:16:47] <kenzierocks> or eclipse,
or intellij
L1396[17:16:49] <kenzierocks> or
whatever
L1397[17:16:59] <kenzierocks> visualvm is
not really a debugger for code tho
L1398[17:17:00] <howtonotwin> you can
spec the port directly with "address=127.0.0.1:port"
added to the list of options to the switch.
L1399[17:17:55]
⇨ Joins: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L1400[17:20:04]
⇨ Joins: p455w0rd (~p455w0rd@172.76.203.10)
L1401[17:26:21] <gr8pefish> howtonotwin,
do you have any experience with the PlayerEvent.StartTracking
event? (trying to update a visual aspect of a capability to nearby
players)
L1402[17:26:51] <howtonotwin> No,
sorry.
L1403[17:26:51]
⇦ Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Read
error: Connection reset by peer)
L1404[17:27:30] <Shambling> I've got a
very weird error with a mod not exporting configs, and I'm trying
to find out what mod is causing the conflict
L1405[17:27:38] <gr8pefish> alright, no
problem
L1406[17:27:44] *
gr8pefish digs deeper into mc source code
L1407[17:27:47] <Shambling> as I've had
it work with the "all the mods" modpack, but not with the
one I am building
L1408[17:27:51]
⇨ Joins: alekso56
(~znc@ti0107a400-1168.bb.online.no)
L1409[17:29:18] <howtonotwin> you and
MCPBot will probably have a very intimate relationship for the
following few hours :P
L1410[17:29:25] <Shambling> know of any
similar mods that you could poke around in their source code? maybe
someone has good documentation thats done similar
L1411[17:29:38] <howtonotwin> though why
not do a search for the combination of mods that causes the
issue?
L1412[17:31:06] <Shambling> I've been
going through and reducing mod and forge versions already
howtonotwin
L1413[17:31:34] <Shambling> I've had this
harvesttweaker mod working before for allthemods, and my pack is
basically that, minus any mods that don't really fit a steampunk
theme
L1414[17:31:40] ***
amadornes is now known as amadornes[OFF]
L1415[17:31:58] <howtonotwin> Do say that
you're doing some kind of binary search and it isn't one by one
:P
L1416[17:33:06] <Shambling> it takes 5
minutes to load the whole thing, why I was looking to see if
something was thrown from the mod during login
L1417[17:33:18] <Shambling> I want to
capture the file generation time, and see what class is
failing
L1418[17:33:30] <Shambling> as the logs
basically just say the same as with the working pack
L1419[17:33:40] <Shambling> hell I went
so far as to create a new instance in-case the folder was messed
up
L1421[17:34:32] <Shambling> it looks like
the clientside implementation of those events were not working in
the past, and I don't see it as 'fixed' just 'closed'
L1422[17:35:00] <Shambling> or are you
doing this for a server side mod? in that case, nm
L1423[17:35:58] <gr8pefish> Nah it isn't
just server side. Thanks for the link, I'll investigate it.
L1424[17:36:43] <howtonotwin> They don't
need client impls, because that's equivalent to the entity actually
leaving the world for the client. (according to the comments on the
issue)
L1425[17:37:35] <howtonotwin> or
joining
L1426[17:37:55] <gr8pefish> ^ Yup. The
issue I'm running into is that it doesn't seem to be firing for
other players, just other entities (i.e. EntitySkeleton), so that's
what I'm trying to breakpoint debug atm
L1427[17:37:59] <kenzierocks> yep
L1428[17:38:13] <kenzierocks> hmm, it
should
L1429[17:38:30] <kenzierocks> all other
players are is just an entity
L1430[17:39:23] <gr8pefish> Yup, that's
what I thought. But breakpoint iterating it only gives ItemEntity
(a dropped egg), a creepr, a skeleton, a pig, etc. but not the
other player (that is definitely in view).
L1431[17:40:19] <kenzierocks> you mean
EntityItem :P
L1432[17:40:23] ***
Darkhax is now known as Darkhax_AFK
L1433[17:41:12] <gr8pefish> yeah, that
one :P Entities work but not EntityPlayers
L1434[17:41:18] <Shambling> alright, so
step one is removing any mods that don't add blocks and see if it
works
L1435[17:41:34] <Shambling> I'm thinking
roguelike dungeons or similar mod that adds unbreakable
superblocks
L1436[17:41:52] <Shambling> or
notenoughwands with the block protection
L1437[17:41:57] <howtonotwin> why would
that have anything to do with anything?
L1438[17:42:16] <Shambling> in case its
iterating through all the blocks and hitting one it has no failsafe
for
L1439[17:43:23] <Shambling> i've looked
at the source and the logs, and honestly I think its just my
computer at this point :P
L1440[17:43:47] <howtonotwin> You said
nothing about iterating all blocks before ._. (But wouldn't such a
failure throw an exception? If it doesn't add a failsafe that does
:D)
L1441[17:44:04] <Shambling> I've seen the
logs, it does throw a log for blocks that it has a failsafe
for
L1442[17:44:04] <howtonotwin> I say
"failSAFE"
L1443[17:44:08] <Shambling> and I've seen
it safely bypass those
L1444[17:44:22] <Shambling> just not for
this pack I'm trying to build lol
L1445[17:44:44] <howtonotwin> logging
blocks that it succeeds on but not those it fails on seems like a
terrible idea to me...
L1446[17:45:17] <Shambling> no no, its
logging the ones it bypasses. I just don't see any difference
between any of the failed ones. i.e. nothing that stands out and
says "hey, thats why it didn't gen the config"
L1447[17:45:37] <Shambling> so I'm going
to try removing some of the newer mods that weren't in the pack I
know it worked on
L1448[17:46:19]
⇦ Quits: [NK]Ghost (~GFt@72.64.90.31) ()
L1449[17:46:19] <Shambling> actually I'm
doing this all wrong, every block lists its mod, I'll check look at
the config and see which mods are missing
L1450[17:46:31] <Shambling> and try
removing those
L1451[17:47:00] <kenzierocks> gr8pefish:
how are you checking for players clientside
L1452[17:47:16] <kenzierocks>
EntityPlayer, EntityPlayerSP, or EntityPlayerMP?
L1454[17:48:50] <kenzierocks>
EntityPlayer should work
L1455[17:50:02] <gr8pefish> Hmm. It
doesn't; the code never reaches the following line.
L1456[17:50:34]
⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read
error: Connection reset by peer)
L1457[17:50:53] <kenzierocks> but it does
hit 52?
L1458[17:51:43] <howtonotwin> Why debug
just your event handler? Debug the thing actually posting the event
too.
L1459[17:52:34] <gr8pefish> howtonotwin,
that's what I have been doing for the last hour or so. It seems it
is never called with a player there either, so now I am debugging
the previous call...
L1460[17:53:07] <howtonotwin> watchpoint
the list of tracked entities?
L1461[17:53:29] <howtonotwin> see if the
thing that starts tracking entities has a guard for players or
something
L1462[17:54:17] <gr8pefish> Yeah it jumps
around a bit, so I'm just diving down the rabbit hole looking for
exactly that ^
L1463[17:58:14]
⇨ Joins: Brokkoli
(~Brokkoli@p5B23C07C.dip0.t-ipconnect.de)
L1464[17:59:30]
⇨ Joins: killjoy (~killjoy@71.65.228.225)
L1465[18:06:08]
⇦ Quits: iari (~iari___@evana.futhark24.org) (Quit:
Leaving)
L1466[18:09:39] <kenzierocks> gr8pefish:
i got EntityPlayerMP tracked in an event handler
L1468[18:10:18] <gr8pefish> gah, what am
I doing then? Can I see your code you used to test that? Or is it
pure debugger stuff?
L1469[18:10:29] <gr8pefish> also, dev
environment I'm guessing?
L1471[18:10:50] <kenzierocks> dev
yes
L1472[18:11:16] <kenzierocks> also
MinecraftForge.EVENT_BUS.register(this);
L1474[18:12:14] <gr8pefish> yeah I may
have switched the tracker and trackee
L1476[18:12:48]
⇦ Quits: Jezza (~Jezza@92.206.4.86) (Ping timeout: 384
seconds)
L1477[18:12:52] <kenzierocks> no, that
looks right
L1478[18:13:03] <gr8pefish> I don't test
for that thing, and your output did. The javadoc wording was
ambiguous, so I may have switched the two.
L1479[18:13:16] <kenzierocks> for what
thing
L1480[18:13:27] <gr8pefish> I'm trying to
search for getTarget instanceOf EntityPlayer
L1481[18:13:30] ***
Darkhax_AFK is now known as Darkhax
L1482[18:13:39] <kenzierocks> that's
right
L1483[18:14:14] <gr8pefish> oh derp, I
should really read the whole output string
L1484[18:14:32] <gr8pefish> hmm, I must
be messing up somewhere
L1485[18:15:15] ***
diesieben07 is now known as diesieben|away
L1486[18:15:38] <Shambling> well I found
my culprit
L1487[18:15:49] <Shambling> unfortunately
its railcraft... and railcraft really fits with this pack
L1488[18:16:12] <Shambling> so... make
modpack... don't add railcraft, generate config, edit blocks,
re-add railcraft. lol
L1489[18:17:51] <Shambling> does
railcraft do something weird with blocks and harvest levels?
L1490[18:17:54]
⇦ Quits: Abastro (~Abastro@175.117.182.109) (Ping timeout:
384 seconds)
L1491[18:18:04]
⇨ Joins: Abastro (~Abastro@110.70.54.120)
L1492[18:19:42] <Shambling> hell maybe
its just reaching a max number of errors because of railcraft and
fails to generate the config then. Who knows *shrug*
L1493[18:26:31]
⇨ Joins: Waterpicker
(~Waterpick@2602:306:35ba:ca40:f08b:a8cd:ffbc:12b9)
L1494[18:26:35] <Waterpicker>
Hello.
L1495[18:27:11] <Waterpicker> Does anyone
know how to fix an idea work environment if minecraft forge sudden
removes itself form the library list
L1496[18:27:30] <ghz|afk> it should be
enough to click the blue refresh arrow on the gradle panel
L1497[18:27:40] <ghz|afk> if not, then
rerun setupDecompWorkspace -- it is much faster if it can reuse
cached values
L1498[18:28:40] <Shambling> now that I
know the mod that causes this, I suppose I should submit a bug
report on boni's tracker :\
L1499[18:28:51] <Shambling> damned if I
know the incompatible code :p
L1500[18:31:52] <ghz|afk> night ppl
L1501[18:31:54] *
ghz|afk poofs
L1502[18:32:26] <Waterpicker> there we
go.
L1503[18:32:37] <Waterpicker> It was
because I was trying to compile a compiled jar
L1504[18:32:45] <Waterpicker> swtiched it
to runtime and fixed. :D
L1505[18:37:21] <TangentDelta> Aww...the
game just freezes up when I accidentally teleport myself to the
integer overflow value.
L1506[18:37:39] <TangentDelta> And
Minecraft stole my mouse cursor. Interesting...
L1507[18:39:33] ***
tterrag|away is now known as tterrag
L1508[18:46:32]
⇦ Quits: ScottehBoeh (~ScottehBo@95.144.45.252) (Quit:
Leaving)
L1510[19:03:42] <gr8pefish>
entHandler.java#L54
L1512[19:04:37] <kenzierocks> what do you
mean consistently update
L1513[19:05:36] <killjoy> why are you
testing the class instead of using Instanceof
L1514[19:06:23] <gr8pefish> oops, relic
of testuign code
L1515[19:07:34] <gr8pefish> consistently
update: It updates on login just fine. If my player has the cap it
shows the extra layer, and if the player doesn't it doesn't. But if
the player uses my item to update the capability then it doesn't
update on the player watching that (i.e. the extra layer doesn't
change, it doesn't appear or disappear)
L1516[19:07:34]
⇦ Quits: itachi1706 (~itachi170@doserver.itachi1706.com)
(Ping timeout: 206 seconds)
L1517[19:07:52] <kenzierocks> why would
that change anything in the tracker
L1518[19:08:15] <kenzierocks> that sounds
like you need to send a packet or something
L1519[19:08:38]
⇨ Joins: itachi1706
(~itachi170@doserver.itachi1706.com)
L1520[19:09:25]
⇦ Quits: Emris (~Miranda@62.178.245.147) (Read error:
Connection reset by peer)
L1521[19:09:49] <gr8pefish> I am sending
a packet already in the tracker. My question is if I need to send
another one manually every time the cap changes (i.e.
updateWatchers or something), because that doesn't seem to be
covered already by the startTracking code (as I thought it might
have).
L1522[19:10:10] <kenzierocks> why would
that be covered by *start* tracking
L1523[19:10:39] <kenzierocks> i can
understand the tracking code maybe doing something, but you only
start tracking an entity when it comes into your range
L1524[19:11:48] <gr8pefish> It wasn't the
best assumption by me. I thought, for some reason, it would add it
to a list of watchers automatically and update via vanilla built in
stuff.
L1525[19:12:32] <kenzierocks> it
does
L1526[19:12:53] <kenzierocks> but it
doesn't call start tracking every time it does an update
L1527[19:14:22] <gr8pefish> So I'm
guessing there is an event or method that I need to
override/subscribe to in order to update? Or is it ismply just
sending my packet.toAllAround() evey time my capability
changes?
L1528[19:14:48] <kenzierocks> use the
entity tracker
L1529[19:15:01] <kenzierocks> it has
methods for sending packets to players tracking an entity
L1530[19:17:23]
⇨ Joins: abab9579 (~Abastro@175.117.182.109)
L1531[19:17:26] <gr8pefish> [Only if you
have an IDE open] How do I get to the EntityTracker class from a
player (seeing as it isn't static)?
L1532[19:18:05] <kenzierocks>
WorldServer.getEntityTracker
L1533[19:19:30] <gr8pefish> thanks!
L1534[19:23:38]
⇦ Quits: Abastro (~Abastro@110.70.54.120) (Ping timeout: 384
seconds)
L1535[19:27:33]
⇦ Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Read
error: Connection reset by peer)
L1536[19:28:59] <gr8pefish> Do I have to
implement a <Class implements Packet> instead of the normal
<Class implements IMessage> (i.e. simpleimpl) for this?
L1537[19:29:48]
⇦ Quits: killjoy (~killjoy@71.65.228.225) (Ping timeout: 206
seconds)
L1538[19:31:08]
⇨ Joins: jackmcbarn
(jackmcbarn@gateway.insomnia247.nl)
L1539[19:32:57] ***
Mine|away is now known as minecreatr
L1540[19:33:17] <kenzierocks> no
L1541[19:33:27] <kenzierocks> you can get
a packet somehow
L1542[19:33:32] <kenzierocks> i dont
remember exactly how
L1543[19:34:16] <gr8pefish> so somehow
get a packet from the IMessage, and pass that to [public void
sendToAllTrackingEntity(Entity entityIn, Packet<?>
packetIn)]
L1544[19:34:34] <kenzierocks> yea
L1545[19:34:59] <kenzierocks> you havea
SimpleNetworkWrapper, yea?
L1546[19:35:05] <kenzierocks>
getPacketFrom(IMessage message)
L1547[19:35:50] <gr8pefish> oh nice,
that's easy, thank you!
L1548[19:36:35]
⇨ Joins: alekso56
(~znc@ti0107a400-1168.bb.online.no)
L1549[19:40:43]
⇦ Quits: sinkillerj
(~sinkiller@nc-67-232-8-209.dhcp.embarqhsd.net) (Quit:
またね)
L1550[19:42:49] <gr8pefish> It's
beautiful! finally :)
L1551[19:43:07] <gr8pefish> kenzierocks,
you rock, thanks so much for all the help!
L1552[19:43:17] <kenzierocks> no
problem
L1553[19:46:56] <gr8pefish> It's not
perfect (it seems to update a little oddly, the extra layer jumps
around some), but it's so much better than it was earlier
L1554[19:57:04] <TangentDelta> I totally
forgot that you have to break switch statements and just wasted an
hour only to figure that out...
L1555[19:57:47]
⇦ Quits: Shambling
(~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com) (Quit:
Leaving)
L1556[19:58:39] <kenzierocks> sounds like
a bad case of brain farts
L1557[19:59:10] <TangentDelta> Well, now
I have a world-stepping object which will make building the machine
architecture easier...
L1558[20:00:49] <TangentDelta>
Mmm...
L1559[20:03:15] <TangentDelta> I think
I'll just make a simple algorithm to test for all connected
computer blocks and build the architecture accordingly. I was going
to have a linear backplane coming off the back (like in RP2) but
that's not very flexible.
L1560[20:15:43]
⇦ Quits: Intektor (~Intektor@p5B275568.dip0.t-ipconnect.de)
(Ping timeout: 206 seconds)
L1561[20:18:12]
⇦ Quits: edr (~edr@d-65-175-180-73.cpe.metrocast.net) (Read
error: Connection reset by peer)
L1562[20:21:14] ***
Vigaro is now known as V
L1563[20:49:17]
⇨ Joins: Cooler (~CoolerExt@45.249.156.23)
L1564[21:02:07]
⇦ Quits: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 206
seconds)
L1565[21:03:18]
⇦ Quits: Dries007 (~DriesZNC@abrarsyed.com) (Ping timeout:
186 seconds)
L1566[21:03:32]
⇦ Quits: Reika (~Reika@reika.kalseki.mods.abrarsyed.com)
(Ping timeout: 198 seconds)
L1567[21:04:02]
⇨ Joins: Cojo
(~Cojo@cpe-2606-A000-4C46-8D00-4156-6A71-27F0-A9C5.dyn6.twc.com)
L1568[21:04:03]
⇦ Quits: Girafi (~Girafi@0x555178eb.adsl.cybercity.dk) (Read
error: Connection reset by peer)
L1569[21:04:03]
⇦ Quits: Wuppy (~wuppyZNC@abrarsyed.com) (Ping timeout: 206
seconds)
L1570[21:04:24]
⇦ Quits: diesieben|away
(~diesieben@2001:19f0:6400:8965:5400:ff:fe07:8777) (Ping timeout:
182 seconds)
L1571[21:04:24]
⇦ Quits: Kolatra (~Kolatra@abrarsyed.com) (Ping timeout: 182
seconds)
L1572[21:04:24]
⇦ Quits: AbrarSyed (~AbrarSyed@ipv6.abrarsyed.com) (Ping
timeout: 182 seconds)
L1573[21:07:05]
⇨ Joins: Tahgtahv
(~Tahg@pool-71-248-165-18.bstnma.fios.verizon.net)
L1574[21:07:05]
MineBot sets mode: +v on Tahgtahv
L1575[21:07:24]
⇦ Quits: luacs1998 (~sayuka@abrarsyed.com) (Ping timeout: 384
seconds)
L1576[21:07:27]
⇨ Joins: SeargeDP
(~Searge@c83-250-150-134.bredband.comhem.se)
L1577[21:07:36]
⇨ Joins: AforAnonymous
(bitch2k@dyn-050-043.vix2.mmc.at)
L1578[21:08:13]
⇨ Joins: Abrar|gone
(~AbrarSyed@ipv6.abrarsyed.com)
L1579[21:08:13]
MineBot sets mode: +o on Abrar|gone
L1580[21:08:43] ***
Abrar|gone is now known as AbrarSyed
L1581[21:09:36]
⇦ Quits: Redfoxmoon (~Red@177.92-221-236.customer.lyse.net)
(Ping timeout: 384 seconds)
L1582[21:09:37]
⇦ Quits: progwml6 (~progwml6@104.168.20.187) (Ping timeout:
384 seconds)
L1583[21:09:37]
⇦ Quits: Meow-J (~Meow-J@45.32.34.121) (Ping timeout: 384
seconds)
L1584[21:09:37]
⇦ Quits: Zidane
(~Zidane@e3-1270v3.bl-ash0.1.1.2.10.k8.securedservers.com) (Ping
timeout: 384 seconds)
L1585[21:09:37]
⇦ Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout:
384 seconds)
L1586[21:09:37]
⇦ Quits: MCPBot_Reborn (~MCPBot_Re@mcpbot.bspk.rs) (Ping
timeout: 384 seconds)
L1587[21:09:37]
⇨ Joins: droidicus_
(uid120579@id-120579.brockwell.irccloud.com)
L1588[21:09:42]
⇨ Joins: Reika
(~Reika@reika.kalseki.mods.abrarsyed.com)
L1589[21:09:46]
⇨ Joins: tfox83_
(sid47177@2604:8300:100:200b:6667:3:0:b849)
L1590[21:10:10]
⇨ Joins: diesieben|away
(~diesieben@abrarsyed.com)
L1591[21:10:11]
⇦ Quits: Chais
(~Chais@62-178-210-212.cable.dynamic.surfer.at) (Ping timeout: 384
seconds)
L1592[21:10:11]
⇦ Quits: smbarbour
(~smbarbour@c-73-211-171-154.hsd1.il.comcast.net) (Ping timeout:
384 seconds)
L1593[21:10:31]
⇨ Joins: DUX
(~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de)
L1594[21:10:37] ***
diesieben|away is now known as diesieben07
L1595[21:10:44]
⇦ Quits: abab9579 (~Abastro@175.117.182.109) (Ping timeout:
384 seconds)
L1596[21:10:45]
⇦ Quits: nekosune (~BNCClient@darkmatter.spacetechnology.net)
(Ping timeout: 384 seconds)
L1597[21:10:45]
⇦ Quits: Keridos|away (~Keridos@ironhide.stw-bonn.de) (Ping
timeout: 384 seconds)
L1598[21:10:45]
⇦ Quits: Hobbyboy (Hobbyboy@hobbyboy.co.uk) (Ping timeout:
384 seconds)
L1599[21:10:45]
⇦ Quits: shadowfacts (shadowfact@is.aww.moe) (Ping timeout:
384 seconds)
L1600[21:10:46]
⇨ Joins: Wuppy (~wuppyZNC@abrarsyed.com)
L1601[21:11:18]
⇦ Quits: KomradeSpectre
(~Darwin@d47-69-240-161.try.wideopenwest.com) (Ping timeout: 384
seconds)
L1602[21:11:18]
⇦ Quits: bochen415 (~bochen415@2a03:b0c0:1:a1::25e:e001)
(Ping timeout: 384 seconds)
L1603[21:11:19]
⇦ Quits: tfox83 (sid47177@id-47177.charlton.irccloud.com)
(Ping timeout: 384 seconds)
L1604[21:11:19]
⇦ Quits: cppchriscpp
(~cppchrisc@c-76-24-45-127.hsd1.nh.comcast.net) (Ping timeout: 384
seconds)
L1605[21:11:19] ***
AforAnonymous is now known as lolinternet
L1606[21:11:19] ***
tfox83_ is now known as tfox83
L1607[21:11:30]
⇦ Quits: Techno
(~quassel@cpe-72-230-173-5.rochester.res.rr.com) (Network
ban)
L1608[21:11:55]
⇦ Quits: alekso56 (~znc@ti0107a400-1168.bb.online.no) (Ping
timeout: 384 seconds)
L1609[21:11:55]
⇦ Quits: Brokkoli (~Brokkoli@p5B23C07C.dip0.t-ipconnect.de)
(Ping timeout: 384 seconds)
L1610[21:11:55]
⇦ Quits: secknv
(~secknv@2001:8a0:6c73:3001:856d:b759:19d8:30f6) (Ping timeout: 384
seconds)
L1611[21:11:55]
⇦ Quits: core (~core@ilya.xxx) (Ping timeout: 384
seconds)
L1612[21:11:55]
⇦ Quits: Blarghedy (~Blarghedy@50-90-115-148.res.bhn.net)
(Ping timeout: 384 seconds)
L1613[21:11:55]
⇦ Quits: Cypher121 (~Cypher121@fox.cypher.coffee) (Ping
timeout: 384 seconds)
L1614[21:11:55]
⇦ Quits: barteks2x
(barteks2x@it.is.your.corrupt.we.claim.panicbnc.org) (Ping timeout:
384 seconds)
L1615[21:11:55]
⇦ Quits: Aroma1997 (~Aroma1997@104.131.97.244) (Ping timeout:
384 seconds)
L1616[21:11:55]
⇦ Quits: Skuli (~Skuli@107.170.86.178) (Ping timeout: 384
seconds)
L1617[21:12:26]
⇦ Quits: Vaht
(~Tahg@pool-71-248-165-18.bstnma.fios.verizon.net) (Ping timeout:
384 seconds)
L1618[21:12:26]
⇦ Quits: AshIndigo-Sleeping
(~AshIndigo@188.29.164.11.threembb.co.uk) (Ping timeout: 384
seconds)
L1619[21:12:26]
⇦ Quits: SubShop
(~Artix@mf763-h01-176-150-102-154.dsl.sta.abo.bbox.fr) (Ping
timeout: 384 seconds)
L1620[21:12:26]
⇦ Quits: Searge (~Searge@c83-250-150-134.bredband.comhem.se)
(Ping timeout: 384 seconds)
L1621[21:12:26]
⇦ Quits: phroa (phroa@173.254.236.155) (Ping timeout: 384
seconds)
L1622[21:12:26]
⇦ Quits: amadornes[OFF] (~amadornes@framez.is.wtfcool.com)
(Ping timeout: 384 seconds)
L1623[21:12:26]
⇦ Quits: md_5 (~md_5@marius.md-5.net) (Ping timeout: 384
seconds)
L1624[21:12:26]
⇦ Quits: Chunkr (~~@ns383244.ip-46-105-102.eu) (Ping timeout:
384 seconds)
L1625[21:12:26]
⇦ Quits: tterrag (~tterrag@tterrag.com) (Ping timeout: 384
seconds)
L1626[21:12:26]
⇦ Quits: TvL2386 (~tom@143.176.221.37) (Ping timeout: 384
seconds)
L1627[21:12:26]
⇦ Quits: DemonWav (~DemonWav@69.197.179.106) (Ping timeout:
384 seconds)
L1628[21:12:26]
⇦ Quits: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca) (Ping
timeout: 384 seconds)
L1629[21:12:26]
⇦ Quits: Sephiroth (Sephiroth@sephiroth.ws) (Ping timeout:
384 seconds)
L1630[21:12:26]
⇦ Quits: droidicus
(uid120579@id-120579.brockwell.irccloud.com) (Ping timeout: 384
seconds)
L1631[21:12:26]
⇦ Quits: Raqbit (~Raqbit@vauff.me) (Ping timeout: 384
seconds)
L1632[21:12:26]
⇦ Quits: Kuraron
(~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de) (Ping
timeout: 384 seconds)
L1633[21:12:26]
⇦ Quits: PolarizedPumpkin (~Polarized@vauff.me) (Ping
timeout: 384 seconds)
L1634[21:12:27]
⇦ Quits: HiddenKnowledge (~HiddenKn@93.ip-158-69-206.net)
(Ping timeout: 384 seconds)
L1635[21:12:27]
⇦ Quits: mafrasi2 (~quassel@2a01:4f8:130:6426::2) (Ping
timeout: 384 seconds)
L1636[21:12:27]
⇦ Quits: ghac
(~ghac@static.102.152.243.136.clients.your-server.de) (Ping
timeout: 384 seconds)
L1637[21:12:27]
⇦ Quits: I9hdkill
(~quassel@static.102.152.243.136.clients.your-server.de) (Ping
timeout: 384 seconds)
L1638[21:12:27]
⇦ Quits: Tazz (socks@ds003.info) (Ping timeout: 384
seconds)
L1639[21:12:27] ***
droidicus_ is now known as droidicus
L1640[21:12:45]
⇨ Joins: DemonWav (~DemonWav@69.197.179.106)
L1641[21:12:57]
⇨ Joins: I9hdkill
(~quassel@static.102.152.243.136.clients.your-server.de)
L1642[21:12:57]
⇨ Joins: ghac
(~ghac@static.102.152.243.136.clients.your-server.de)
L1643[21:13:31]
⇨ Joins: Brokkoli
(~Brokkoli@p5b23c07c.dip0.t-ipconnect.de)
L1644[21:13:47]
⇨ Joins: Blarghedy
(~Blarghedy@50-90-115-148.res.bhn.net)
L1645[21:13:52]
⇨ Joins: bochen415 (~bochen415@139.59.172.186)
L1646[21:14:02]
⇨ Joins: progwml6 (~progwml6@104.168.20.187)
L1647[21:14:12]
⇨ Joins: Cypher121
(~Cypher121@fox.cypher.coffee)
L1648[21:14:18]
⇨ Joins: core (~core@ilya.xxx)
L1649[21:14:19]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L1650[21:14:20]
⇨ Joins: Hobbyboy (Hobbyboy@hobbyboy.co.uk)
L1651[21:14:31]
⇨ Joins: Skuli (~Skuli@107.170.86.178)
L1652[21:14:31]
⇨ Joins: Kolatra
(~Kolatra@2001:19f0:6400:8965:5400:ff:fe07:8777)
L1653[21:14:39]
⇨ Joins: barteks2x
(barteks2x@it.is.your.corrupt.we.claim.panicbnc.org)
L1654[21:14:49]
⇨ Joins: nekosune
(~BNCClient@darkmatter.spacetechnology.net)
L1655[21:14:51]
⇨ Joins: HiddenKnowledge
(~HiddenKn@93.ip-158-69-206.net)
L1656[21:14:51]
⇨ Joins: md_5 (~md_5@marius.md-5.net)
L1657[21:14:52]
⇨ Joins: Aroma1997 (~Aroma1997@104.131.97.244)
L1658[21:14:59]
⇨ Joins: PolarizedIons (~Polarized@vauff.me)
L1659[21:15:19]
⇨ Joins: smbarbour
(~smbarbour@c-73-211-171-154.hsd1.il.comcast.net)
L1660[21:15:34]
⇨ Joins: phroa (phroa@phroa.net)
L1661[21:15:34]
⇨ Joins: Chais (~Chais@62.178.210.212)
L1662[21:15:40]
⇨ Joins: Sephiroth (Sephiroth@sephiroth.ws)
L1663[21:15:54]
⇨ Joins: MCPBot_Reborn
(~MCPBot_Re@mcpbot.bspk.rs)
L1664[21:16:00]
⇨ Joins: tterrag (~tterrag@tterrag.com)
L1665[21:16:47]
⇨ Joins: Keridos|away
(~Keridos@ironhide.stw-bonn.de)
L1666[21:17:04]
⇨ Joins: amadornes[OFF]
(~amadornes@framez.is.wtfcool.com)
L1667[21:17:04]
MineBot sets mode: +v on amadornes[OFF]
L1668[21:17:17]
⇨ Joins: Corosus
(~Corosus@135-23-126-120.cpe.pppoe.ca)
L1669[21:17:29]
⇨ Joins: Raqbit (~Raqbit@vauff.me)
L1670[21:17:41] ***
amadornes[OFF] is now known as amadornes
L1671[21:24:19]
⇦ Quits: MalkContent
(~MalkConte@p5B02D538.dip0.t-ipconnect.de) (Quit:
Leaving)
L1672[21:29:17]
⇦ Quits: Cooler (~CoolerExt@45.249.156.23) (Quit:
Leaving)
L1673[21:34:08]
⇦ Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout:
195 seconds)
L1674[21:35:51]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L1675[21:43:12]
⇦ Quits: Waterpicker
(~Waterpick@2602:306:35ba:ca40:f08b:a8cd:ffbc:12b9) (Ping timeout:
206 seconds)
L1676[21:48:19]
⇨ Joins: Abastro (~Abastro@175.117.182.109)
L1677[21:49:02]
⇨ Joins: AshIndigo
(~AshIndigo@188.29.164.11.threembb.co.uk)
L1678[22:02:46] ***
DarkevilAway is now known as Darkevilmac
L1679[22:07:51]
⇦ Quits: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
(Remote host closed the connection)
L1680[22:14:10]
⇦ Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout:
183 seconds)
L1681[22:16:25]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L1682[22:20:57]
⇨ Joins: killjoy (~killjoy@71.65.228.225)
L1683[22:26:40]
⇦ Quits: Abastro (~Abastro@175.117.182.109) (Ping timeout:
384 seconds)
L1684[22:28:10]
⇨ Joins: McJty
(~jorrit@d8d8721d2.access.telenet.be)
L1685[22:29:01]
⇨ Joins: killjoy1 (~killjoy@71.65.228.225)
L1686[22:29:03]
⇨ Joins: cpup (~cpup@32.218.115.160)
L1687[22:29:36]
⇦ Quits: killjoy (~killjoy@71.65.228.225) (Ping timeout: 206
seconds)
L1688[22:30:24] <killjoy1> I hadn't used
this alt in so long it expired
L1689[22:30:41] <kenzierocks>
riperoni
L1690[22:33:22]
⇨ Joins: illy
(uid69226@id-69226.charlton.irccloud.com)
L1691[22:33:55]
⇨ Joins: octylFractal
(webchat@ip98-182-24-67.sb.sd.cox.net)
L1692[22:34:13]
⇦ Quits: octylFractal (webchat@ip98-182-24-67.sb.sd.cox.net)
(Client Quit)
L1693[22:45:31]
⇨ Joins: mallrat208
(~mallrat20@107-145-175-135.res.bhn.net)
L1694[22:53:32]
⇦ Quits: mallrat208 (~mallrat20@107-145-175-135.res.bhn.net)
(Quit: Leaving)
L1695[22:55:30]
⇦ Quits: Lathanael|Away
(~Lathanael@p549601DB.dip0.t-ipconnect.de) (Ping timeout: 183
seconds)
L1696[22:56:34]
⇦ Quits: auenf (David@DC-24-199.bpb.bigpond.com) (Remote host
closed the connection)
L1697[22:57:32]
⇨ Joins: auenf (David@DC-24-199.bpb.bigpond.com)
L1698[22:57:34]
⇨ Joins: Lathanael|Away
(~Lathanael@p549615D9.dip0.t-ipconnect.de)
L1699[22:58:41]
⇨ Joins: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L1700[23:00:27]
⇨ Joins: Doty1154
(~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net)
L1701[23:05:26]
⇨ Joins: secknv
(~secknv@2001:8a0:6c73:3001:856d:b759:19d8:30f6)
L1702[23:11:59]
⇨ Joins: npe|office
(~NPExcepti@bps-gw.hrz.tu-chemnitz.de)
L1703[23:17:59]
⇨ Joins: blood_
(unknown@ool-4574115b.dyn.optonline.net)
L1704[23:22:48] ***
Darkevilmac is now known as DarkevilAway
L1705[23:27:35]
⇨ Joins: AstralSorcerer
(~AstralSor@128.151.114.13)
L1706[23:31:29] <blood_> williewillus: im
troubleshooting a bug with Botania/Sponge protection, can you tell
me how I can attach a bore lens to a mana blaster
L1707[23:33:37]
⇦ Quits: Brokkoli (~Brokkoli@p5b23c07c.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))
L1708[23:35:20]
⇦ Quits: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 198
seconds)
L1709[23:35:51]
⇦ Quits: Cojo
(~Cojo@cpe-2606-A000-4C46-8D00-4156-6A71-27F0-A9C5.dyn6.twc.com)
(Quit: If we wish to explore, if we wish to see what's over the
next hill, wonders unfold before us; all we have to do is want it
enough.)
L1710[23:38:29]
⇨ Joins: Abastro (~Abastro@119.206.230.176)
L1711[23:44:34]
⇦ Quits: cpup (~cpup@32.218.115.160) (Ping timeout: 183
seconds)
L1712[23:48:43]
⇦ Quits: LexLap2
(~LexManos@50-196-5-249-static.hfc.comcastbusiness.net) (Ping
timeout: 183 seconds)
L1713[23:49:05]
⇨ Joins: LexLap2
(~LexManos@50-196-5-249-static.hfc.comcastbusiness.net)
L1714[23:49:05]
MineBot sets mode: +o on LexLap2
L1715[23:49:51]
⇦ Quits: McJty (~jorrit@d8d8721d2.access.telenet.be) (Quit:
Leaving)