<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:00:49] <SquareWheel> This is a problem for Future-Me. Night night.
L2[00:06:29] *** TTFTCUTS is now known as TTFT|Away
L3[00:12:01] ⇨ Joins: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L4[00:12:08] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 194 seconds)
L5[00:30:01] ⇨ Joins: TimRiker (~TimRiker@216.49.186.122)
L6[00:30:36] ⇦ Quits: TimRiker (~TimRiker@216.49.186.122) (Client Quit)
L7[00:38:42] ⇨ Joins: Fendirain (~Fendirain@2605:e000:121d:1d0:c9fc:3c1d:ee5:6788)
L8[00:44:58] ⇨ Joins: King_Hual (adam@thefoxbox.xyz)
L9[00:47:46] ⇦ Quits: kinggoesgaming (uid23106@id-23106.tooting.irccloud.com) (Quit: Connection closed for inactivity)
L10[00:50:13] ⇦ Quits: Brokkoli (~Brokkoli@p5B23C6BC.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))
L11[01:16:24] ⇨ Joins: VikeStep (~VikeStep@192.43.96.58.static.exetel.com.au)
L12[01:20:40] ⇨ Joins: Naiten (Naiten@5.143.104.112)
L13[01:28:58] ⇨ Joins: Hgrebnednav_ (~Hgrebnedn@d8d872a6e.access.telenet.be)
L14[01:34:46] ⇨ Joins: MoxieGrrl (~MoxieGrrl@173-23-172-139.client.mchsi.com)
L15[01:39:37] ⇦ Quits: Fendirain (~Fendirain@2605:e000:121d:1d0:c9fc:3c1d:ee5:6788) (Quit: Leaving)
L16[01:39:39] *** Darkevilmac is now known as DarkevilAway
L17[01:40:26] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 180 seconds)
L18[01:44:00] ⇦ Quits: AstralSorcerer (~AstralSor@128.151.114.44) (Ping timeout: 194 seconds)
L19[01:45:08] ⇨ Joins: jandal (~quassel@li951-76.members.linode.com)
L20[01:49:26] ⇦ Quits: blood (unknown@ool-45741267.dyn.optonline.net) (Read error: Connection reset by peer)
L21[01:59:09] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L22[02:00:03] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20170120 mappings to Forge Maven.
L23[02:00:07] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20170120-1.11.zip (mappings = "snapshot_20170120" in build.gradle).
L24[02:00:27] <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/
L25[02:09:21] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 384 seconds)
L26[02:10:46] ⇨ Joins: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de)
L27[02:23:26] ⇨ Joins: iari (~iari___@tyaralin.shadowdrake.eu)
L28[02:29:32] <killjoy> https://www.youtube.com/watch?v=mmkYl8lJxyA
L29[02:30:15] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L30[02:39:05] ⇨ Joins: founderio (~Thunderbi@p200300C4E3C0FA00F4BAA8E8C502ECA2.dip0.t-ipconnect.de)
L31[02:42:10] ⇨ Joins: Ashindigo_ (uid202308@id-202308.hathersage.irccloud.com)
L32[02:52:46] ⇦ Quits: killjoy (~killjoy@cpe-76-182-16-229.nc.res.rr.com) (Ping timeout: 206 seconds)
L33[02:57:14] ⇨ Joins: Noppes (~Noppes@ip56530f2e.direct-adsl.nl)
L34[03:15:58] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 206 seconds)
L35[03:27:01] ⇨ Joins: ThePsionic (~Psi@ip5457f909.direct-adsl.nl)
L36[03:30:23] ⇦ Quits: immibis (~chatzilla@125-237-220-104.jetstream.xtra.co.nz) (Ping timeout: 384 seconds)
L37[03:32:24] ⇦ Quits: Cale (~cale@2607:fea8:98e0:7e6:60b5:318f:1025:ea55) (Ping timeout: 206 seconds)
L38[03:33:33] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L39[03:38:52] ⇨ Joins: Sangar (~Sangar@cil.li)
L40[03:50:46] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 206 seconds)
L41[03:51:04] ⇦ Quits: illy (~anthony@cpe-174-97-121-242.cinci.res.rr.com) (Quit: WeeChat 1.7)
L42[03:51:57] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L43[04:03:52] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L44[04:12:24] ⇨ Joins: LordSkittles_ (~LordSkitt@101.191.24.47)
L45[04:13:19] <LordSkittles_> Is there a crafting event?
L46[04:13:51] <ghz|afk> there's an event for when the player is about to pick up an item from a crafting table, yes
L47[04:14:12] <ghz|afk> PlayerEvent.ItemCraftedEvent
L48[04:14:19] <LordSkittles_> Exactly what I am looking for, thanks!
L49[04:15:18] <ghz|afk> if you use intellij for coding, you could have used the find symbol dialog
L50[04:15:35] <ghz|afk> or the search everywhere popup (double-shift)
L51[04:15:50] <ghz|afk> and then you can enter "CraftEvent" and it will show you all the class names that contain 'Craft' and 'Event' in them
L52[04:17:44] <SparkVGX> like
L53[04:21:13] <ghz|afk> ?
L54[04:21:14] <ghz|afk> https://dl.dropboxusercontent.com/u/743491/CraftEvent.PNG
L55[04:21:23] <SparkVGX> nono
L56[04:21:25] <SparkVGX> sorry
L57[04:21:40] <SparkVGX> like as in liking a thing on fb
L58[04:21:48] <SparkVGX> or thumbs up
L59[04:22:01] <SparkVGX> sorry about that ^_^;;
L60[04:22:36] <ghz|afk> oh, ?
L61[04:23:06] <SparkVGX> yes! that one
L62[04:26:41] <Ordinastie> !gm func_149674_a
L63[04:27:06] <Ordinastie> !gm func_149674_a 1.7.10
L64[04:27:24] <Ordinastie> !gm func_147454_a
L65[04:27:27] <Ordinastie> !gm func_147454_a 1.7.10
L66[04:30:08] ⇦ Quits: Alex_hawks (~Alex_hawk@2001:8003:854b:7600:15cf:d644:c0c6:cd37) (Read error: Connection reset by peer)
L67[04:30:58] ⇨ Joins: Alex_hawks (~Alex_hawk@2001:8003:854b:7600:15cf:d644:c0c6:cd37)
L68[04:32:40] ⇦ Quits: ThePsionic (~Psi@ip5457f909.direct-adsl.nl) (Quit: Leaving)
L69[04:33:50] ⇦ Quits: Zaggy1024 (~Zaggy1024@184-100-117-30.mpls.qwest.net) (Ping timeout: 206 seconds)
L70[04:42:49] <Ordinastie> god I hate that
L71[04:43:03] <Ordinastie> in a crash report, I notice the jar name doesn't match the one I uploaded
L72[04:43:12] <SparkVGX> ouch :c
L73[04:43:30] <Ordinastie> that means dumb people downloading mods on fucking shitty sites that rehost and renames jars -_-
L74[04:44:15] *** Denyol[Away] is now known as Denyol
L75[04:45:33] <Denyol> Hey Im trying to make a container and Im very confused as how to set out the slots, I can't seem to find a good guide that works with any number of slots and determining their position, any help is greatly appreaciated
L76[04:46:52] <ghz|afk> Denyol: the position is based on your GUI texture
L77[04:47:05] <ghz|afk> it's literally the pixel positions of the top-left edge of each of the slot "pictures"
L78[04:47:38] ⇦ Quits: LordSkittles_ (~LordSkitt@101.191.24.47) (Quit: Leaving)
L79[04:47:46] <ghz|afk> example:
L80[04:47:47] <ghz|afk> https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/resources/assets/elementsofpower/textures/gui/essentializer.png
L81[04:48:11] <ghz|afk> the octagons in there are not real slots
L82[04:48:15] <ghz|afk> but the rest
L83[04:48:15] <ghz|afk> https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/essentializer/gui/ContainerEssentializer.java#L28
L84[04:48:21] <Denyol> yes
L85[04:48:25] <ghz|afk> I took the pixel positions
L86[04:48:27] <ghz|afk> and wrote them down
L87[04:48:43] <Denyol> so for the first slot at the top on the left
L88[04:49:14] <Denyol> how would you do that in code, for adding that slot?
L89[04:49:23] <ghz|afk> what do you mean?
L90[04:49:33] <Denyol> in your image
L91[04:49:45] <ghz|afk> the image I made it in paint.net
L92[04:49:48] <SparkVGX> Denyol, perhaps you should look at the minecraft code for a chest
L93[04:49:50] <Denyol> how would you determine the slot code for adding that square one on the left
L94[04:49:55] <ghz|afk> well
L95[04:50:01] <ghz|afk> let's take the one on the top area, leftmost one
L96[04:50:09] <ghz|afk> if I open this png in paint.net
L97[04:50:10] <Denyol> SparkVGX: ive seen many code examples, I just dont understand it
L98[04:50:44] <ghz|afk> if I open this png in paint.net, and select the gray pixels
L99[04:51:02] <Denyol> its 6 to the left, the first one
L100[04:51:15] <ghz|afk> I get "Selection top left: 8, 56. Bounding rectangle size: 16 x 16"
L101[04:51:16] <SparkVGX> double tap shift and search for containerfurnace. Right at the top it has the "add slot to container" thing, with the inventory slot number, then the x y position of those on the png you use for the gui, then a
L102[04:51:23] <ghz|afk> that 8, 56
L103[04:51:27] <ghz|afk> is the coord you write in code
L104[04:51:40] <ghz|afk> addSlotToContainer(new SlotContainerIn(tileEntity, 1, 8, 56));
L105[04:51:53] <ghz|afk> the 1 is the slot index within the inventory object
L106[04:52:04] <ghz|afk> and the 8, 56
L107[04:52:07] <Denyol> but for a "new Slot", is SlotContainerIn yoru custom slot?
L108[04:52:09] <ghz|afk> are the pixel coords of the slot in the image
L109[04:52:13] <ghz|afk> yes it extends Slot
L110[04:52:24] <ghz|afk> because I have restrictions to what can be put in it
L111[04:52:25] <Denyol> is the 56 from the top corner?
L112[04:52:30] <ghz|afk> yes
L113[04:52:34] <ghz|afk> including the border
L114[04:53:03] <Denyol> ok, so If I want to add my custom slot, what would I do, ill upload the picture of it now
L115[04:53:44] <Denyol> http://imgur.com/a/665cm
L116[04:53:54] <ghz|afk> that's why I like paint.net: https://dl.dropboxusercontent.com/u/743491/Slot.PNG
L117[04:54:15] <Denyol> mac preview can count pixels, i use that
L118[04:54:23] <ghz|afk> aha
L119[04:54:38] <ghz|afk> so, you have only one slot, which means the index will be 0
L120[04:54:43] <Denyol> yes
L121[04:54:53] <ghz|afk> and your slot is apparently centered, so your x will be somewhere around 80?
L122[04:54:58] <ghz|afk> and your Y somewhere around 44
L123[04:55:05] <ghz|afk> so you would have
L124[04:55:15] <ghz|afk> addSlotToContainer(new Slot(inventory, 0, 80, 44));
L125[04:55:18] <Denyol> so Slot() takes an inventory
L126[04:55:27] <Denyol> should I use the TE's inventory for that slot?
L127[04:55:29] <ghz|afk> "inventory,0" is the reference to the slot
L128[04:55:36] <ghz|afk> 80,44 the position in the gui
L129[04:56:22] <ghz|afk> yes
L130[04:56:25] <ghz|afk> if you use IItemHandler
L131[04:56:28] <ghz|afk> you'll do
L132[04:56:32] <Denyol> ok so I have "addSlotToContainer(new Slot(tileEntity, 0, 82, 43));"
L133[04:56:37] <ghz|afk> addSlotToContainer(new SlotItemHandler(inventory, 0, 80, 44)); instead
L134[04:56:45] <Denyol> for the first slot, now for the player inventory?
L135[04:56:48] <ghz|afk> yes
L136[04:56:53] <ghz|afk> I like to have that in a separate function
L137[04:56:57] <ghz|afk> because it's easier to manage
L138[04:57:01] <ghz|afk> what I do for the player inventory
L139[04:57:06] <ghz|afk> is reuse the code from like, the furnace
L140[04:57:11] <ghz|afk> and then I try it out
L141[04:57:16] <Denyol> ok
L142[04:57:18] <ghz|afk> and measure how many pixels out of place it is
L143[04:57:28] <ghz|afk> and adjust the Y positions based on that
L144[04:57:38] <ghz|afk> so like, in my copy
L145[04:57:38] <ghz|afk> https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/essentializer/gui/ContainerEssentializer.java#L35
L146[04:57:55] <ghz|afk> the "94 + i * 18" part
L147[04:58:04] <ghz|afk> if your top side is higher or lower
L148[04:58:08] <ghz|afk> it may be a number different than 95
L149[04:58:16] <Denyol> "ghz|afk: I like to have that in a separate function" what was it with a seperate function?
L150[04:58:26] <ghz|afk> didyou see the link I just pasted?
L151[04:58:37] <Denyol> remind me please...
L152[04:58:38] <ghz|afk> I ahve bindPlayerInventory
L153[04:58:43] <ghz|afk> [11:57] (ghz|afk): https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/essentializer/gui/ContainerEssentializer.java#L35
L154[04:58:44] <ghz|afk> this
L155[04:58:45] <Denyol> oh yes the player inventory
L156[04:58:55] <Denyol> i thought you meant the tile entities inventory
L157[04:59:00] <ghz|afk> nono
L158[04:59:06] <ghz|afk> [11:56] (Denyol): for the first slot, now for the player inventory?
L159[04:59:06] <ghz|afk> [11:56] (ghz|afk): yes
L160[04:59:06] <ghz|afk> [11:56] (ghz|afk): I like to have that in a separate function
L161[04:59:15] <ghz|afk> I was answering the player inventory part ;p
L162[04:59:20] <Denyol> ok thx
L163[04:59:36] <Denyol> do you have a GUIHandler class, I wanna look at it, mine is not working
L164[04:59:49] <Denyol> found it
L165[05:02:20] <ghz|afk> :)
L166[05:02:51] <ghz|afk> are you registering it?
L167[05:02:51] <ghz|afk> https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/ElementsOfPower.java#L217
L168[05:03:06] <Denyol> yeh its registered
L169[05:03:51] ⇦ Quits: iari (~iari___@tyaralin.shadowdrake.eu) (Quit: Leaving)
L170[05:04:12] ⇨ Joins: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L171[05:04:22] <Denyol> the "addSlotToContainer(new Slot(inventory, j + i * 9 + 9" part, what are the 9s for?
L172[05:04:54] <ghz|afk> that's the slot number
L173[05:05:02] <Denyol> oh yeh
L174[05:05:08] <ghz|afk> the 3 main rows are 9+
L175[05:05:12] <ghz|afk> the hotbar i 0..9
L176[05:05:20] <ghz|afk> so each row is 9, and it starts on the 9th
L177[05:05:21] <Denyol> ok
L178[05:05:24] <ghz|afk> so i*9 + 9
L179[05:08:11] <Denyol> ok i understand now allot more, thankyou
L180[05:10:37] *** Denyol is now known as Denyol[Away]
L181[05:11:34] ⇦ Quits: shadekiller666 (~shadekill@adsl-108-71-39-199.dsl.lsan03.sbcglobal.net) (Quit: Leaving)
L182[05:20:53] ⇦ Quits: turmfalke (~turmfalke@p20030056CF6033ED4C47F31045D8D5CC.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L183[05:31:05] ⇨ Joins: turmfalke (~turmfalke@p20030056CF6033D08014C58975AC59DC.dip0.t-ipconnect.de)
L184[05:39:51] ⇨ Joins: Koward (~Koward@2a02:2788:294:590:5fe:e59e:4ae7:59b0)
L185[05:40:32] ⇦ Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a) (Remote host closed the connection)
L186[05:40:36] <Koward> Is their anyway to change what interact() does on a vanilla entity ? Or should I just replace it at spawn ?
L187[05:41:04] <Ordinastie> there should be an event somewhere
L188[05:41:53] <ghz|afk> PlayerInteractEvent.Entity?
L189[05:44:41] <Tencao> Can someone explain how ArmorProperties even works in ISpecialArmor, no matter what I do I just cant seem to get the damage reduction right
L190[05:45:09] <ghz|afk> never used it but
L191[05:45:13] <ghz|afk> from reading the javadocs
L192[05:45:23] <ghz|afk> the armor properties are obtained from all equipped armor
L193[05:45:48] <ghz|afk> and the armor piece with the highest priority value has a chance to absorb some(or all) of the damage
L194[05:46:12] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L195[05:48:26] <Tencao> Yeah I read that bit, and if they all have the same priority the damage is split evenly, but the absorb ratio just doesn't seem to work right
L196[05:48:28] <Koward> Thanks
L197[05:53:20] <ghz|afk> #311097
L198[05:53:20] <ghz|afk> QDB: Latest Approved Quotes
L199[05:53:20] <ghz|afk> <photo> i poured my root beer into a square cup and now all i have is beer. please advise.
L200[05:55:58] <SparkVGX> ba dun tish
L201[05:57:03] <ghz|afk> Baron Tiss.
L202[05:58:02] <Barteks2x> I need a horizontal scrollbar on my taskbar...
L203[05:58:36] <ghz|afk> lol
L204[05:58:43] <ghz|afk> or a bigger monitor
L205[05:58:50] <ghz|afk> or you need to close stuff
L206[05:58:51] <ghz|afk> ;P
L207[05:58:52] <Barteks2x> not possible on thjis laptop
L208[05:59:00] <Barteks2x> (bigger monitor that is)
L209[05:59:01] <ghz|afk> can't plug an external monitor?
L210[05:59:06] <Ordinastie> you need to better organized ? :p
L211[05:59:09] <ghz|afk> not even hdmi?
L212[05:59:14] <Barteks2x> I don't have too much abailable space
L213[05:59:22] <ghz|afk> ah, sucks
L214[05:59:27] <Barteks2x> and using external monotoor with builtin keyboard is awkward
L215[05:59:59] <Barteks2x> because I wouldn't be looking in the same direction as my hand
L216[06:00:03] <Barteks2x> *hads
L217[06:00:05] <Barteks2x> **hands
L218[06:00:16] <ghz|afk> unless you hang the monitor on the wall, and the laptop is below it ;P
L219[06:00:30] <Barteks2x> I have a window above my desk
L220[06:00:35] <ghz|afk> ouch ;p
L221[06:01:01] <ghz|afk> i have a nice big 160x80 desk
L222[06:01:08] <ghz|afk> (cm)
L223[06:01:11] <Barteks2x> (fortunately that window is in just the right direction that I almost never see sun through it)
L224[06:01:27] ⇨ Joins: Cast0077 (~Cast0077@24-181-179-41.dhcp.nwtn.ct.charter.com)
L225[06:02:21] <Barteks2x> I blame gimp for my mess, it has separate window for each open thing, + 2 windows that are there always
L226[06:03:01] <Barteks2x> and my bad USB in my phone, each time it reconnnects it opens new file browser
L227[06:04:14] <SparkVGX> How do I set a block in a position? I've run down the rabbit hole with block states, but am getting very confused >,< lol
L228[06:05:32] <Barteks2x> world.setBlockState?
L229[06:05:49] <SparkVGX> I'm having trouble getting the block state argument
L230[06:06:37] <Barteks2x> Blocks.BLOCK_NAME.getDefaultState if you want vannilla block default state, not sure what is the right way to use more complicated states. I would need to look at some code I last touched months ago
L231[06:07:50] <SparkVGX> there we go thank you. My misunderstanding was that I thought I could just call my block class
L232[06:07:58] <SparkVGX> rather then my registered block
L233[06:08:36] <Barteks2x> In some of my code I found this: Blocks.TALLGRASS.getDefaultState().withProperty(BlockTallGrass.TYPE, tallGrassType);, so i guess that would be how you use properties, but I would like to know if there is a simpler way
L234[06:09:14] <SparkVGX> my block is a very simple one, literally just exists as a check, with no extra features or tile entity
L235[06:10:36] <Barteks2x> at some point you probably will need more complicated states
L236[06:15:07] <ghz|afk> Barteks2x: you use gimp in multi-window mode? ewh.
L237[06:15:19] <Barteks2x> wait, there is single window mode?
L238[06:15:24] <ghz|afk> since 2.8
L239[06:15:30] <ghz|afk> makes it slightly tolerable
L240[06:15:59] <Barteks2x> why it's not the default?
L241[06:16:03] <ghz|afk> http://www.omgubuntu.co.uk/wp-content/uploads/2011/08/Screen-Shot-2011-08-22-at-22.01.02.jpg
L242[06:16:05] <ghz|afk> no idea.
L243[06:16:44] <Barteks2x> I remember I saw single-window version once, but it was on windows a few years ago and I got it from some CD with many other programs
L244[06:17:10] *** fry|sleep is now known as fry
L245[06:17:11] <Barteks2x> and somehow I didn't even think to try to find it
L246[06:17:18] <ghz|afk> therewas a fork of gimp some time ago
L247[06:17:21] <fry> much more tolerable than paying $30 a year for photoshop :P
L248[06:17:21] <ghz|afk> that added a custom UI
L249[06:17:24] <ghz|afk> but it wasn't free
L250[06:17:28] <SparkVGX> I do have other blocks with more complicated states, but the current thing I'm doing is auto placing blocks for a multi-structure
L251[06:17:44] <ghz|afk> but then the project actually got its own single-window mode a few years ago
L252[06:17:55] <ghz|afk> I still hate the app
L253[06:18:15] <ghz|afk> (I don't like the structure of the tools and menus and such
L254[06:18:17] <Barteks2x> Well, I remember the windows single window onweI got for free in loke 2007
L255[06:18:21] <Barteks2x> or 2008-2009
L256[06:18:35] <ghz|afk> did you find the menu option for single-window?
L257[06:19:37] <Barteks2x> trying to find it
L258[06:20:10] <ghz|afk> Window -> Single-Window mode
L259[06:20:27] <fry> windows, but yes :P
L260[06:20:32] <fry> (at least it's Windows for me)
L261[06:20:37] <ghz|afk> eh yeah
L262[06:20:38] <Barteks2x> this is much better, better than the windows thing from 2007/8
L263[06:20:52] <Barteks2x> that windows version from 2007/8 was basically nested windows
L264[06:20:57] <ghz|afk> heh
L265[06:20:59] <ghz|afk> MDI?
L266[06:21:04] <Barteks2x> what is MDI?
L267[06:21:26] <ghz|afk> multiple-document interface
L268[06:21:33] <ghz|afk> the windows feature where you can have nested windows
L269[06:21:37] <Barteks2x> probably something like that
L270[06:21:51] <ghz|afk> https://i-msdn.sec.s-msft.com/dynimg/IC430480.png
L271[06:21:51] <Barteks2x> I may still be able to find it when I get back home
L272[06:22:06] <Barteks2x> tha's basically what it was
L273[06:22:17] <ghz|afk> yeah
L274[06:22:24] <ghz|afk> that was a nice feature in the 90s
L275[06:22:37] <ghz|afk> it has been mostly repalced by docking UIs with tabs
L276[06:22:38] <Barteks2x> when I installed it, I literally thought it's cheating, it's not single window
L277[06:22:55] <ghz|afk> my grandpa uses this music editing program
L278[06:22:58] <ghz|afk> which is built on MDI
L279[06:23:22] <ghz|afk> http://www.gvox-encore.at/musictime/mutime400.jpg
L280[06:23:36] <ghz|afk> https://screenshots.en.sftcdn.net/en/scrn/66000/66574/encore-6.jpg
L281[06:23:43] <ghz|afk> I imagine it was like that
L282[06:23:47] <Barteks2x> I remember somethign that used this kind of interface in windows 3.11, but no idea what is was (or windows 95?)
L283[06:24:05] <ghz|afk> yes it was a feature of windows 3.x
L284[06:24:10] <ghz|afk> and it was carried over to 9x and then NT
L285[06:29:55] <Naiten> How to I disable this white antialiasing on entity? http://i.imgur.com/zQZESur.png http://i.imgur.com/grZ2ovO.png
L286[06:30:34] <Barteks2x> I was once wondering if it would be possible to use something like cuda for terrain generation... maybe at some point I would try to make a mod for it
L287[06:30:40] <ghz|afk> does it disappear if you turn mipmaps off?
L288[06:30:47] <ghz|afk> Barteks2x: sure it would
L289[06:31:10] <ghz|afk> it would just need an implementation of the noise algorithm done in cuda/opencl, which is quite easy
L290[06:31:23] <ghz|afk> and then you send off a task to generate a grid of values
L291[06:31:27] <ghz|afk> and boom, you get terrain back
L292[06:32:10] <Naiten> ghz|afk, yep
L293[06:32:13] <Naiten> it does
L294[06:32:48] <Barteks2x> I'm more interested in making population work on something like this
L295[06:33:54] <Barteks2x> because the basic terrain shape generation would actually be simple. Population would be complete opposite of simple
L296[06:36:42] <Naiten> ghz|afk, how do I disable mipmaps for entity? google doesn't seem to be helpful
L297[06:36:43] <ghz|afk> Naiten: that sounds then like your texture is missing the lower mipmaps, then
L298[06:36:49] <Naiten> uh
L299[06:36:56] <Naiten> And what do I do about it?
L300[06:37:37] <ghz|afk> not sure
L301[06:38:22] <ghz|afk> how do you load the texture?
L302[06:38:31] <ghz|afk> I suppose you are using bindTexture(resloc)?
L303[06:38:39] <Barteks2x> Is it safe to reference a class that directly references client-only code in if(world.isRemote)?
L304[06:38:48] <ghz|afk> no
L305[06:39:01] <ghz|afk> the if doesn't matter
L306[06:39:09] <ghz|afk> if you reference it, it will cause the class to try to load
L307[06:39:13] <Barteks2x> it's not referencing client class directly
L308[06:39:15] <ghz|afk> which will cause load failures in the server
L309[06:39:17] <Naiten> I'm stitching it and binding block something
L310[06:39:25] <ghz|afk> ah
L311[06:39:31] <ghz|afk> then MAYBE
L312[06:39:34] <ghz|afk> but not sure
L313[06:39:47] <ghz|afk> Naiten: uhm
L314[06:39:54] <ghz|afk> if you are stitching, then it should NOT cause those issues :/
L315[06:40:00] <ghz|afk> are you enabling texture filtering?
L316[06:40:14] <Naiten> whre?
L317[06:40:28] <ghz|afk> then no. XD
L318[06:40:38] <ghz|afk> yeah the screens don't look like there's texture filtering
L319[06:40:48] <ghz|afk> yeah no idea
L320[06:40:50] <Barteks2x> Specifically, I have ClientHandler class which handles packets sent from server to client, and it would be referenced in World class (in world mixin)
L321[06:40:53] <ghz|afk> maybe fry has some better input
L322[06:40:53] <ghz|afk> ;p
L323[06:41:22] <Naiten> Э_Э
L324[06:44:55] <Naiten> Є_Є
L325[06:45:06] ⇨ Joins: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L326[06:46:39] <Naiten> Ѳ_Ѳ
L327[06:47:16] <ghz|afk> €_€
L328[06:48:06] <ghz|afk> it's funny how "$_$" feels like someone thinking "I want that.", while "€_€" looks like someone thinking "I hate you for having that"
L329[06:49:29] <Tencao> So what does £_£ mean
L330[06:50:04] <quadraxis> I feel superior from having that?
L331[06:51:17] <quadraxis> δ_δ
L332[06:55:19] <SparkVGX> worldObj.setBlockState(gemPos, ModBlocks.gemStoneBlock.getDefaultState());
L333[06:55:24] ⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout: 206 seconds)
L334[06:55:27] <SparkVGX> Is this the correct way to place a block in the world?
L335[06:55:39] <Ordinastie> yes
L336[06:55:49] <Ordinastie> if the state you want to place is the default one
L337[06:57:32] <SparkVGX> excellent thank you :)
L338[06:59:13] ⇨ Joins: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L339[07:05:19] <SparkVGX> https://gist.github.com/SparkVGX/4866120e6f0c59920d5d2b7f28860631
L340[07:05:38] <SparkVGX> I am having issues getting entities to move on activation
L341[07:05:54] <SparkVGX> It doesn't seem to be picking up my player
L342[07:06:05] <Ordinastie> SparkVGX, http://www.oracle.com/technetwork/java/codeconventions-135099.html
L343[07:09:04] <SparkVGX> While I appreciate that you are trying to help, I do believe you would be more helpful if you pointed out what specifically I was doing wrong that required a link to a web page about naming conventions.
L344[07:09:48] <Ordinastie> field/variable should not start with a capital letter
L345[07:10:45] <ghz|afk> (or methods, or packages -- only class names get to be TitleCased in java)
L346[07:12:32] <ghz|afk> SparkVGX: Idon't see anything specifically wrong
L347[07:14:07] ⇨ Joins: marcoslater (~marcoslat@znc.marcoslater.com)
L348[07:15:31] ⇨ Joins: ThePsionic (~Psi@ip5457f909.direct-adsl.nl)
L349[07:16:35] <SparkVGX> It seems like it is not picking up any entities, despite using the parent Entity.class as what it is searching for
L350[07:32:41] <SparkVGX> Seems like I had something wrong with my AxisAlignedBB, so I changed to this and is now working
L351[07:32:58] <SparkVGX> https://gist.github.com/SparkVGX/81785e57ad8325387d350c539bc38bc3
L352[07:33:04] <SparkVGX> Thanks for your help everyone :)
L353[07:38:37] ⇦ Quits: VikeStep (~VikeStep@192.43.96.58.static.exetel.com.au) (Quit: Leaving)
L354[07:40:46] ⇦ Quits: SparkVGX (~SparkVGX@121.99.203.245) (Quit: This quit message was sponsored by Pepsi. Just as good as coke, we promise!)
L355[07:47:48] ⇦ Quits: Naiten (Naiten@5.143.104.112) (Quit: Leaving)
L356[07:49:49] ⇦ Quits: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com) (Quit: brb)
L357[07:57:55] ⇨ Joins: PitchBright (~PitchBrig@cpe00fc8d8a3ce3-cm00fc8d8a3ce0.cpe.net.cable.rogers.com)
L358[07:58:26] ⇦ Quits: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp) (Ping timeout: 180 seconds)
L359[08:13:47] *** amadornes[OFF] is now known as amadornes
L360[08:15:25] ⇦ Quits: Koward (~Koward@2a02:2788:294:590:5fe:e59e:4ae7:59b0) (Ping timeout: 384 seconds)
L361[08:22:34] ⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L362[08:35:00] ⇨ Joins: fatguylaughing (~fatguylau@worx01.meridian-ds.com)
L363[08:35:51] ⇦ Quits: Cast0077 (~Cast0077@24-181-179-41.dhcp.nwtn.ct.charter.com) (Quit: Poof)
L364[08:39:13] ⇦ Quits: Alex_hawks (~Alex_hawk@2001:8003:854b:7600:15cf:d644:c0c6:cd37) (Read error: Connection reset by peer)
L365[08:39:41] ⇨ Joins: Alex_hawks (~Alex_hawk@2001:8003:854b:7600:15cf:d644:c0c6:cd37)
L366[08:42:31] *** PaleOff is now known as PaleoCrafter
L367[08:45:59] ⇦ Quits: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de) (Remote host closed the connection)
L368[08:55:15] <blood|wrk> Flamegoat: 11 194 ms * 159 ms be50-7.bhs-3a-a9.qc.ca [198.27.73.94]
L369[08:55:39] <blood|wrk> this route is single handedly obliterating forge server stability
L370[08:55:48] <blood|wrk> the hop right before reaching the server
L371[08:55:55] <blood|wrk> can noone contact wherever this is hosted to fix it?
L372[08:56:56] <blood|wrk> 12 12 ms 12 ms 12 ms cerberus.minecraftforge.net [158.69.55.219]
L373[08:56:59] <blood|wrk> next hop is fine
L374[08:58:35] <Corosus> looks like a clear cut case of blame canada
L375[08:58:49] <kashike> https://gist.github.com/kashike/44cdaa030e3ac638c6f88f9e5255fb89
L376[09:00:29] ⇨ Joins: kinggoesgaming (uid23106@id-23106.tooting.irccloud.com)
L377[09:01:22] <blood|wrk> kashike: it's terrible from US -> CA
L378[09:01:38] <Ordinastie> https://gist.github.com/Ordinastie/6644938ddc1c0177596f64b47de54ef7
L379[09:01:59] <blood|wrk> ok that is even better, FR -> CA still shit
L380[09:02:18] <blood|wrk> just need to get rid of that horrible route to fix the issue
L381[09:02:56] <kashike> good luck with that :P
L382[09:04:08] ⇨ Joins: Schwowsers (~Schwowser@pool-108-2-77-251.phlapa.fios.verizon.net)
L383[09:04:47] <blood|wrk> not up to me, its up to the host to fix that
L384[09:05:52] <blood|wrk> kashike: show me a ping time to that route
L385[09:06:06] <blood|wrk> so i can see how much packet loss you are getting
L386[09:06:16] <kashike> which route? the be50?
L387[09:06:37] <kashike> if so, you can't ping that
L388[09:06:47] <kashike> if you mean cerberus, i will
L389[09:08:31] <blood|wrk> ah yea they dont accept pings ok
L390[09:08:37] <blood|wrk> can only trace it then
L391[09:09:45] <kashike> blood|wrk: https://gist.github.com/kashike/92089068498266a0869885c67076cc78
L392[09:09:51] <kashike> pinging from within the same datacentre
L393[09:09:53] <kashike> lol
L394[09:10:05] <blood|wrk> 3 be50-5.bhs-3b-a9.qc.ca (198.27.73.96) 215.199 ms be50-5.bhs-3a-a9.qc.ca (198.27.73.92) 241.418 ms 176.775 ms
L395[09:10:11] <blood|wrk> really bad
L396[09:10:13] <kashike> its most likely vac
L397[09:10:45] <blood|wrk> got some special people handling that data center
L398[09:10:55] <kashike> https://www.ovh.com/ca/en/anti-ddos/
L399[09:14:21] ⇦ Quits: Blarghedy (~Blarghedy@50-90-115-148.res.bhn.net) (Ping timeout: 384 seconds)
L400[09:16:34] <blood|wrk> lol OVH needs to fix that then
L401[09:16:37] <blood|wrk> so bad
L402[09:17:04] <Ordinastie> do we have an idea for the ration of moded player vs vanilla players ?
L403[09:17:28] <Ordinastie> *ratio
L404[09:18:41] <blood|wrk> vanilla has way more
L405[09:18:52] <Ordinastie> I assume so, but how much more ?
L406[09:19:03] <blood|wrk> check mcstats or something
L407[09:19:04] <Ordinastie> like I'm hearing someone say 95-5 %
L408[09:22:08] <Barteks2x> is there any way to send data to client when joining server and have the world accessible when receiving that packet clientside?
L409[09:22:51] <Barteks2x> *when joining world, not server
L410[09:25:15] *** TTFT|Away is now known as TTFTCUTS
L411[09:25:53] ⇦ Quits: Searge|mojang (~Searge@h-85-24-130-18.na.cust.bahnhof.se) (Read error: Connection reset by peer)
L412[09:27:31] ⇨ Joins: Searge|office (~Searge@h-85-24-130-18.na.cust.bahnhof.se)
L413[09:28:36] <Barteks2x> PlayerChangedDimensionEvent would *almost* work, it's not fired when first joining the world
L414[09:33:28] <Barteks2x> PlayerLoggedInEvent together with PlayerChangedDimensionEvent will probably work
L415[09:39:33] <Quetzi> 95-5 probably isn't far off if you are including all platforms
L416[09:39:49] <bartman> ovh is usually ontop of things like that... and it looks like they were http://status.ovh.com/?do=details&id=14332
L417[09:40:12] <bartman> great host for the moneies
L418[09:41:27] <blood|wrk> Barteks2x: https://github.com/MinecraftForge/MinecraftForge/blob/1.11.x/src/main/java/net/minecraftforge/event/entity/EntityJoinWorldEvent.java#L31
L419[09:42:01] <Barteks2x> Someone is writing PR, he told me client world isn't created when that's fired
L420[09:42:23] <Barteks2x> no idea how it's even possible
L421[09:43:16] <kashike> https://github.com/MinecraftForge/MinecraftForge/blob/1.11.x/patches/minecraft/net/minecraft/world/World.java.patch#L216
L422[09:46:29] <Barteks2x> that looks like it should be created clientside
L423[09:47:21] <bartman> whoops that was last friday heh owell its a needle and a haystack on that site
L424[09:55:54] <Barteks2x> "java.lang.ClassNotFoundException: cubicchunks.asm.CubicChunksCoreModnet.malisis.core.asm.MalisisCorePlugin" wat. How did it happen? O.o
L425[09:56:21] <Ordinastie> from where ?
L426[09:56:31] <Ordinastie> oh
L427[09:56:34] <Ordinastie> you forgot the ,
L428[09:56:42] <Ordinastie> in your prog arg
L429[09:57:00] <Barteks2x> my arguments only specify -Dfml.coreMods.load=cubicchunks.asm.CubicChunksCoreMod
L430[09:57:34] <Ordinastie> then that's weird :s
L431[09:57:35] ⇦ Quits: mrcantstandya (~mrcantsta@pool-96-253-61-220.prvdri.fios.verizon.net) (Read error: Connection reset by peer)
L432[09:58:09] ⇦ Quits: flappy (~flappy@a88-113-154-4.elisa-laajakaista.fi) (Ping timeout: 206 seconds)
L433[09:58:34] <Barteks2x> wait... [16:58:11] [main/ERROR] [FML]: Coremod MalisisCorePlugin: Unable to class load the plugin cubicchunks.asm.CubicChunksCoreModnet.malisis.core.asm.MalisisCorePlugin
L434[09:58:44] <Barteks2x> wait, no, nevermind
L435[09:58:48] <Barteks2x> I misinterpreted it
L436[09:59:19] <Ordinastie> breakpoint it, see how it gets the classname
L437[10:00:10] <Barteks2x> the commandline is clearly "/opt/oracle-jdk-bin-1.8.0.112/bin/java -Dfml.coreMods.load=cubicchunks.asm.CubicChunksCoreMod -Dmixin.env.compatLevel=JAVA_8" (saw it in log) but then it says "Found a command line coremod : cubicchunks.asm.CubicChunksCoreModnet.malisis.core.asm.MalisisCorePlugin"
L438[10:01:00] <Ordinastie> are you sure the command line is the actual one that runs?
L439[10:03:50] <Barteks2x> in GradleStartCommon String __malisis_coremodProp = System.getProperty("fml.coreMods.load", "");__malisis_coremodProp += "net.malisis.core.asm.MalisisCorePlugin";System.setProperty("fml.coreMods.load", __malisis_coremodProp);
L440[10:04:05] <Barteks2x> this is exactly as it's written
L441[10:04:09] <Barteks2x> ForgeGradle issue?
L442[10:04:25] <Ordinastie> well, it makes sense
L443[10:04:43] <Ordinastie> if you simply add the string as is, it won't add the ","
L444[10:04:54] <Ordinastie> is it even required though ?
L445[10:05:00] <Barteks2x> GradleStartCommon isn't something I control, and it used to work fine
L446[10:05:01] <Ordinastie> like, you're using the jar right ?
L447[10:05:28] <Barteks2x> it should be using the jar
L448[10:05:36] <Ordinastie> shouldn't it find the plugin by itself ?
L449[10:06:44] <Barteks2x> I'm not adding that to commandline args mysekf
L450[10:07:01] <Barteks2x> I don't even know how GradleStartCommon is created
L451[10:07:14] <Ordinastie> what is even GradleStartCommon ?
L452[10:07:58] <Barteks2x> it's something from ForgeGradle
L453[10:08:50] <Barteks2x> part of what GradleStart uses, and GradleStart contains main()
L454[10:09:52] <Ordinastie> but I don't have that
L455[10:10:36] <Ordinastie> is it generated because when you do genIntellijRuns or something ?
L456[10:11:27] <Barteks2x> it was probably me using outdated ode of my mod + not really up to date forgegradle + the fact that I didn't look atbthe code on this laptop for >1 month
L457[10:11:51] <Barteks2x> That's what I will blame if setupDecompWorkspace after git pull fixes it
L458[10:12:46] <Barteks2x> Gradle refuses to work at all
L459[10:19:39] <Barteks2x> and I can't use gradle because can't connect to files.minecraftforge.net...
L460[10:19:51] <Barteks2x> any idea when it's going to be fixed?
L461[10:20:35] <Barteks2x> I can't connect through browser, but gradle can't connect
L462[10:22:41] <Barteks2x> I hate when I can't build my project when something with network goes wrong...
L463[10:26:32] ⇨ Joins: Naiten (Naiten@5.143.6.140)
L464[10:28:48] ⇨ Joins: IceDragon (~ThatGuy@184.170.9.82)
L465[10:30:24] <Barteks2x> does files.minecraftforge.net actually work now?
L466[10:35:28] <Barteks2x> wtf? Now there doesn't seem to be any connection issues but it still fails to find mixingradle and grgit
L467[10:36:39] ⇨ Joins: OrionOnline (~OrionOnli@dslb-094-220-193-006.094.220.pools.vodafone-ip.de)
L468[10:36:54] <OrionOnline> Heey guys
L469[10:37:33] ⇦ Quits: Alex_hawks (~Alex_hawk@2001:8003:854b:7600:15cf:d644:c0c6:cd37) (Read error: Connection reset by peer)
L470[10:39:40] ⇨ Joins: Alex_hawks (~Alex_hawk@101.186.48.200)
L471[10:41:16] ⇨ Joins: BlueMonster (~BlueMonst@cpc23-telf11-2-0-cust237.16-1.cable.virginm.net)
L472[10:41:30] ⇨ Joins: Brokkoli (~Brokkoli@p5B23C6BC.dip0.t-ipconnect.de)
L473[10:44:10] <OrionOnline> I have a Question regarding annotations and the ASMDataTable
L474[10:45:04] <OrionOnline> If i have a custom anotation somewhere. Do i need to register it with the ASMDataTable system somewhere so it is picked up
L475[10:45:21] <OrionOnline> Or can i grab the type simply during loading?
L476[10:47:20] <Ordinastie> https://github.com/Ordinastie/MalisisCore/blob/1.11/src/main/java/net/malisis/core/MalisisCore.java#L187
L477[10:49:55] ⇨ Joins: Alex_hawks|Alt (~Alex_hawk@2001:8003:8523:bb00:ed85:9d3e:e4c9:9631)
L478[10:50:21] <Barteks2x> I don't even know what it is that makes ./gradlew build/setupDecopWorkspace fail
L479[10:55:47] ⇦ Quits: Alex_hawks (~Alex_hawk@101.186.48.200) (Ping timeout: 384 seconds)
L480[11:05:25] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 384 seconds)
L481[11:06:03] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L482[11:32:51] <Shawn|i7-Q720M> that was a beautiful inaugural speech
L483[11:34:54] ⇨ Joins: thomas15v (~thomas15v@149.56.143.158)
L484[11:37:59] <Naiten> Can I bake models outside the Render class?
L485[11:38:07] <PaleoCrafter> sure
L486[11:38:21] <Naiten> I can load .obj models outside, but baking gives me purple checkers
L487[11:38:37] <Naiten> Is it done in init()?
L488[11:38:39] <PaleoCrafter> well, you can't do it anywhere
L489[11:38:49] <PaleoCrafter> not everybody has your same setup, what's init? :P
L490[11:39:34] <Naiten> wem
L491[11:39:36] <Naiten> er,
L492[11:39:40] <Naiten> erm!
L493[11:39:41] <Naiten> FMLInitializationEvent
L494[11:39:47] <Naiten> as it should be?
L495[11:39:54] <PaleoCrafter> should work there, methinks
L496[11:40:00] <PaleoCrafter> let's bug fry
L497[11:40:01] ⇨ Joins: williewillus (~williewil@cpe-24-28-24-13.austin.res.rr.com)
L498[11:40:02] * PaleoCrafter runs
L499[11:40:15] <Naiten> every mod has preInit, init and postInit, or i lost it somewhere?
L500[11:40:21] <PaleoCrafter> williewillus might know, too (when baking models can be done)
L501[11:40:27] * williewillus chases PaleoCrafter
L502[11:40:31] <williewillus> what's the question?
L503[11:41:11] <PaleoCrafter> Naiten, it's just that not everybody names the methods that same way since only the argument matters :P
L504[11:41:21] <PaleoCrafter> and "init" is a very generic method name
L505[11:41:30] <Naiten> -.-
L506[11:41:32] <PaleoCrafter> Can I bake models outside the Render class?
L507[11:41:33] <PaleoCrafter> <PaleoCrafter> sure
L508[11:41:33] <PaleoCrafter> <Naiten> I can load .obj models outside, but baking gives me purple checkers
L509[11:41:33] <PaleoCrafter> <Naiten> Is it done in init()?
L510[11:41:35] <PaleoCrafter> ^ williewillus
L511[11:41:42] <PaleoCrafter> first question obviously was Naiten :P
L512[11:42:07] <Naiten> williewillus, i want to bake .obj model outside Render.doRender()
L513[11:42:15] <williewillus> use ModelBakeEvent :P
L514[11:42:20] <Naiten> ah
L515[11:42:27] <williewillus> it's fired after all "normal" loading and baking is finished
L516[11:42:37] <williewillus> and you can perform arbitrary substitution/insertion into the MRL -> IBakedModel map
L517[11:43:18] <williewillus> if you're doing that though make sure you manually stitch whatever textures your model is using since usually the normal loading system takes care of that
L518[11:43:23] <Naiten> And can I load .obj during MBE?
L519[11:43:28] <williewillus> you can do whatever
L520[11:43:41] <williewillus> MBE gives you the big MRL -> IBakedModel map
L521[11:43:46] <williewillus> you can put whatever you want in
L522[11:44:56] <Naiten> can't I put model in a field in my class?
L523[11:45:28] <williewillus> you can do that too, but then you're responsible for detecting resource reloads and invalidating it/rebaking as needed
L524[11:45:32] <williewillus> MBE fires every resource reload
L525[11:45:39] <Naiten> oh yeah, it works
L526[11:47:09] <Naiten> i guess baking six models during doRender() was the reason for fps drop
L527[11:59:16] ⇨ Joins: Zaggy1024 (~Zaggy1024@184-100-92-96.mpls.qwest.net)
L528[12:03:40] ⇦ Quits: cpup (~cpup@32.218.118.122) (Ping timeout: 194 seconds)
L529[12:03:50] ⇨ Joins: cpup (~cpup@32.218.118.122)
L530[12:06:01] <Naiten> williewillus, C:
L531[12:06:45] <williewillus> ?
L532[12:10:01] ⇦ Quits: Cooler (~CoolerExt@45.249.156.16) (Ping timeout: 384 seconds)
L533[12:11:06] ⇦ Quits: Ashindigo_ (uid202308@id-202308.hathersage.irccloud.com) (Quit: Connection closed for inactivity)
L534[12:15:09] <Naiten> you're helpful c:
L535[12:18:22] <ghz|afk> Naiten: why do you think I cache the baked models in my ModelHandle thingy?
L536[12:18:35] <Naiten> no idea
L537[12:18:48] <ghz|afk> [18:47] (Naiten): i guess baking six models during doRender() was the reason for fps drop
L538[12:18:52] <PaleoCrafter> lol
L539[12:18:56] <ghz|afk> ...
L540[12:21:51] <Naiten> haha, jk
L541[12:22:06] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L542[12:22:32] <PaleoCrafter> the joke is, you in fact were baking 10 models xD
L543[12:30:02] <Naiten> why 10?
L544[12:31:03] <Naiten> When you optimize it all http://i.imgur.com/nVYOZsd.png
L545[12:31:14] <Naiten> https://pp.vk.me/c638522/v638522135/280dc/BfmacPV1x68.jpg
L546[12:32:07] ⇨ Joins: shadekiller666 (~shadekill@adsl-108-71-39-199.dsl.lsan03.sbcglobal.net)
L547[12:32:36] <PaleoCrafter> I made a joke about your joke...
L548[12:33:02] <shadekiller666> so now that i have a mod that allows me to thoroughly test the OBJLoader, i'm discovering little annoyances with its usage
L549[12:36:20] <ghz|afk> my only annoyance with the way I use it
L550[12:36:32] <ghz|afk> is that the texture references in my blockstates look like "#Name":"something"
L551[12:36:42] <ghz|afk> while banilla json models are "Name":"something
L552[12:36:47] <williewillus> yeah # isn't supposed to be in the name
L553[12:36:49] <ghz|afk> the # in vanilla is only used on the right
L554[12:36:59] <ghz|afk> to mean "reference this other name"
L555[12:37:05] <ghz|afk> it's not part of the material name per se
L556[12:37:23] <PaleoCrafter> I think you've got fry to blame for that :P
L557[12:37:46] <ghz|afk> maybe
L558[12:37:56] <ghz|afk> it's still my only annoyance ;P
L559[12:38:04] <ghz|afk> that said
L560[12:38:12] <ghz|afk> I do not make use of parts or visibility
L561[12:38:17] <ghz|afk> oh wait
L562[12:38:40] <ghz|afk> one missing feature I'd love to have: color IDs, for using obj models with IItemColor/IBlockColor
L563[12:39:03] <PaleoCrafter> I even remember seeing a commit like "make the # required for consistency's sake"
L564[12:39:06] ⇦ Quits: Techno (~quassel@cpe-72-230-173-5.rochester.res.rr.com) (Ping timeout: 206 seconds)
L565[12:39:09] <PaleoCrafter> consistency with *what*? xD
L566[12:39:18] <ghz|afk> lol
L567[12:39:35] <ghz|afk> I guess consistency with the broken implementation in b3d?
L568[12:39:55] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L569[12:40:10] <ghz|afk> wow great start
L570[12:40:10] <ghz|afk> http://motherboard.vice.com/read/all-references-to-climate-change-have-been-deleted-from-the-white-house-website
L571[12:46:29] <williewillus> hence the rush to archive literally everything that'll possibility get "book-burned"
L572[12:50:43] ⇨ Joins: flappy (~flappy@194.111.119.63)
L573[12:58:45] ⇦ Quits: cpup (~cpup@32.218.118.122) (Ping timeout: 384 seconds)
L574[12:58:57] ⇨ Joins: cpup (~cpup@32.218.118.122)
L575[13:00:36] ⇨ Joins: Jezza (~Jezza@92.206.161.17)
L576[13:01:50] ⇦ Quits: ThePsionic (~Psi@ip5457f909.direct-adsl.nl) (Read error: Connection reset by peer)
L577[13:02:26] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 180 seconds)
L578[13:04:30] *** Mine|dreamland is now known as minecreatr
L579[13:10:56] ⇦ Quits: Naiten (Naiten@5.143.6.140) (Ping timeout: 180 seconds)
L580[13:12:33] ⇨ Joins: TechnicianLP (~Technicia@p4FE1C5C6.dip0.t-ipconnect.de)
L581[13:12:37] *** gAway2002 is now known as g
L582[13:17:27] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping timeout: 384 seconds)
L583[13:19:37] ⇨ Joins: Ashindigo_ (uid202308@id-202308.hathersage.irccloud.com)
L584[13:23:15] *** MrKick|Away is now known as MrKickkiller
L585[13:26:01] ⇨ Joins: killjoy (~killjoy@cpe-76-182-16-229.nc.res.rr.com)
L586[13:36:05] ⇦ Quits: cpup (~cpup@32.218.118.122) (Ping timeout: 206 seconds)
L587[13:38:00] ⇨ Joins: Nanobird (~Nano@173-81-227-67.chstcmtk03.res.dyn.suddenlink.net)
L588[13:39:07] <Nanobird> o/ I'm trying to follow the documentation in https://mcforge.readthedocs.io/en/latest/concepts/registries/#registries to change away from GameRegistry, and I can't quite understand how to hook into the event before preInit. Is there an example somewhere?
L589[13:39:25] ⇨ Joins: Techno (~quassel@cpe-72-230-173-5.rochester.res.rr.com)
L590[13:40:08] ⇨ Joins: cpup (~cpup@32.218.115.253)
L591[13:42:22] <Nanobird> It mentions using @Mod.EventBusSubscriber, so I put that on my registration class.. and nothing. Would prefer the annotation method. So.. >.>?
L592[13:45:59] ⇦ Quits: Schwowsers (~Schwowser@pool-108-2-77-251.phlapa.fios.verizon.net) (Remote host closed the connection)
L593[13:47:55] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L594[13:49:03] ⇨ Joins: Schwowsers (~Schwowser@pool-108-2-77-251.phlapa.fios.verizon.net)
L595[13:49:24] ⇦ Quits: cpup (~cpup@32.218.115.253) (Ping timeout: 194 seconds)
L596[13:55:22] ⇨ Joins: cpup (~cpup@32.218.116.3)
L597[13:56:02] *** diesieben|away is now known as diesieben07
L598[14:00:41] <diesieben07> Nanobird, if you want to keep registering for events manually, you must do it in your mod class constructor
L599[14:00:51] <diesieben07> but @EventBusSubscriber should work, show the class you tried to use it on?
L600[14:01:03] <ghz|afk> you have to make the events static
L601[14:01:11] <ghz|afk> that's the big "catch" of @Mod.EventButSubscriber
L602[14:01:18] <ghz|afk> it only works for static handlers
L603[14:01:21] <ghz|afk> and not for instance ones
L604[14:01:36] <diesieben07> true
L605[14:01:44] <diesieben07> but i think it mentions that in the docs
L606[14:01:49] <ghz|afk> @Mod.EventBusSubscriber calls "bus.register(TheClass.class)"
L607[14:01:53] <Nanobird> ...it does not
L608[14:01:55] <Nanobird> http://pastebin.com/PRXKzLDs
L609[14:02:09] <ghz|afk> STATIC handlers
L610[14:02:09] <diesieben07> yeah the methods need to be static
L611[14:02:47] <diesieben07> the section on @EventBusSubscriber is called "Automatically Registering Static Event Handlers"
L612[14:02:50] <diesieben07> so yes, it is mentioned.
L613[14:03:03] ⇦ Quits: BlueMonster (~BlueMonst@cpc23-telf11-2-0-cust237.16-1.cable.virginm.net) (Quit: Goodbye)
L614[14:03:09] <diesieben07> it also says the equivalent "manual" registration
L615[14:03:16] <diesieben07> which clearly shows the *class* being registered
L616[14:04:12] ⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Quit: Leaving.)
L617[14:04:16] <Nanobird> Ah.
L618[14:04:43] <Nanobird> See, the example snippet on that one doc page doesn't show a static method, just a public void one.
L619[14:04:50] <Nanobird> That's what tripped me up. Works now.
L620[14:05:04] <diesieben07> the section about static event handlers shows a static one...
L621[14:05:17] <Nanobird> https://mcforge.readthedocs.io/en/latest/concepts/registries/#registering-things
L622[14:06:06] <diesieben07> well... but that assumes you understand events
L623[14:06:11] <diesieben07> which means you read the event docs :P
L624[14:07:02] <Nanobird> True! But it's been a little while. Yes, my derp, but perhaps a link or something on that section would be helpful.
L625[14:07:51] <diesieben07> yeah, we should have like a "Prerequisites" thing in the intro for other pages that are required before that one
L626[14:07:55] <Nanobird> Something something blame copy-pasta.
L627[14:08:02] ⇦ Quits: TTFTCUTS (~ttftcuts@ns3366511.ovh.net) (Ping timeout: 194 seconds)
L628[14:08:36] <Nanobird> Anyway, since when did that recommendation change to use events? I've been using GameRegistry foreeeever.
L629[14:08:55] <diesieben07> i think it was sometime during early 1.11 dev
L630[14:09:08] <Nanobird> Ah, okay. Quite recent then.
L631[14:09:19] <diesieben07> the idea is to go from you telling the registry when you want to register things to the registry asking you when it's ready
L632[14:09:51] <diesieben07> to make it so you as a modder don't have to think as much about "wait, this one in preInit now, or was it init?"
L633[14:09:51] <Nanobird> Which is nice. Avoids races and stuff and cleans up code.
L634[14:10:03] <diesieben07> you just subscribe to the proper event, which fires when the registry is ready.
L635[14:10:08] <diesieben07> whenever that may be.
L636[14:18:38] ⇦ Quits: Alex_hawks|Alt (~Alex_hawk@2001:8003:8523:bb00:ed85:9d3e:e4c9:9631) (Read error: Connection reset by peer)
L637[14:22:28] *** PaleoCrafter is now known as PaleOff
L638[14:22:55] <cpw> yeah, that's right diesieben07
L639[14:23:05] <cpw> it'll expand greatly, hopefully in 12
L640[14:23:35] <diesieben07> <3
L641[14:25:49] *** PaleOff is now known as PaleoCrafter
L642[14:26:53] <PaleoCrafter> cpw, I think I've found an issue with the modlist JSON :P
L643[14:28:02] <PaleoCrafter> also, diesieben07, if and when we start building the docs ourselves, I bet there's a markdown plugin for that :P
L644[14:28:52] <Nanobird> is ITileEntityProvider a thing, still?
L645[14:29:19] <PaleoCrafter> you don't need it
L646[14:31:20] <ghz|afk> it is, but it should be avoided
L647[14:31:27] <ghz|afk> even in 1.7.10, it wasn't needed
L648[14:31:27] <diesieben07> paleo, wait, you can't do that with readthedocs?
L649[14:31:36] <diesieben07> why are we using that ... thing
L650[14:31:40] <ghz|afk> the "right" way is to override hasTileEntity/createTileEntity
L651[14:31:40] <PaleoCrafter> well, we kinda do
L652[14:31:48] <PaleoCrafter> but it's kinda roundabout
L653[14:31:59] <PaleoCrafter> kinda
L654[14:33:01] <diesieben07> i am not sure i follow you. http://i.imgur.com/3vNMzmT.jpg
L655[14:34:07] <PaleoCrafter> lol
L656[14:34:22] <cpw> PaleoCrafter, you're using it?!!!
L657[14:34:26] <PaleoCrafter> I am :P
L658[14:34:43] <cpw> heh
L659[14:34:46] <cpw> novelty
L660[14:34:48] <PaleoCrafter> inspired by you setting up SF3, btw :P
L661[14:34:48] <PaleoCrafter> https://github.com/PaleoCrafter/CurseSync
L662[14:34:56] <cpw> nice
L663[14:35:09] <cpw> turns a curse modpack into a modlist?
L664[14:35:41] <PaleoCrafter> basically, yes
L665[14:37:13] <PaleoCrafter> but either it's my app or the modlist stuff, but if I use it with my modpack, something appears to break and clients can't connect anymore
L666[14:38:49] <PaleoCrafter> btw, diesieben07, what I mean by "roundabout" (way) is that you need a file like this https://github.com/PaleoCrafter/Documentation/blob/new-brand-theme/python-requirements.txt which you then need to *manually* specify in the rtd settings
L667[14:39:35] <diesieben07> to add a List of links?!
L668[14:39:46] <PaleoCrafter> you can add the list manually, of course
L669[14:39:59] <diesieben07> what's wrong with that?
L670[14:40:15] <diesieben07> I mean, it's not like the prerequisites can somehow be generated by code
L671[14:40:21] <diesieben07> it's just a list of things to read before
L672[14:40:25] <PaleoCrafter> but a markdown plugin would allow automating it a bit :P
L673[14:40:42] <PaleoCrafter> could have it be in a separated, styled box etc
L674[14:40:48] <diesieben07> ah
L675[14:40:52] <diesieben07> i guess so, yeah
L676[14:42:10] ⇨ Joins: iari (~iari___@tyaralin.shadowdrake.eu)
L677[14:42:18] <PaleoCrafter> seeing that branch of the docs reminds me that I still need Flamegoat to set up the assets server <.<
L678[14:46:21] <LexManos> assets?
L679[14:46:28] <LexManos> still need hium to do the forum migration...
L680[14:46:32] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L681[14:47:47] <PaleoCrafter> well, I don't want to duplicate the stylesheets all over the place and adding them into the forums is kinda meh (only accessible via a webinterface)
L682[14:48:20] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L683[14:58:18] *** Abrar|gone is now known as AbrarSyed
L684[14:59:21] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L685[15:05:01] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 206 seconds)
L686[15:10:18] ⇨ Joins: Redrield (~Redrield@when.will.i.stop.getting.kicked.for.botspam.redrield.com)
L687[15:11:01] <Redrield> Does anyone know how pixelmon registers recipes? I'm trying to use sponge to intercept their recipe registrations and I can't find them
L688[15:11:28] ⇨ Joins: immibis (~chatzilla@125-237-220-104.jetstream.xtra.co.nz)
L689[15:17:00] ⇦ Quits: Renari (~Renari@70.44.82.160.res-cmts.bgr.ptd.net) (Read error: Connection reset by peer)
L690[15:17:11] ⇨ Joins: ThePsionic (~Psi@ip5457f909.direct-adsl.nl)
L691[15:18:46] <shadekiller666> ghz|afk, support for colorIDs in mtl files?
L692[15:19:21] <shadekiller666> so instead of "Kd r g b" you want "Kd colorID"?
L693[15:26:34] *** cpw is now known as cpw|out
L694[15:29:11] ⇦ Quits: Hgrebnednav_ (~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping timeout: 206 seconds)
L695[15:38:33] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 384 seconds)
L696[15:47:21] ⇦ Quits: Chais (~Chais@62-178-210-212.cable.dynamic.surfer.at) (Quit: ZNC - http://znc.in)
L697[15:49:10] ⇨ Joins: Chais (~Chais@62.178.210.212)
L698[15:55:18] *** PaleoCrafter is now known as PaleOff
L699[15:56:54] ⇦ Quits: fatguylaughing (~fatguylau@worx01.meridian-ds.com) (Quit: fatguylaughing)
L700[16:09:18] <williewillus> !gm IBlockAccess.notifyBlockUpdate
L701[16:09:26] <williewillus> !gm IWorldEventListener.notifyBlockUpdate
L702[16:09:48] <williewillus> !gm World.notifyBlockUpdate
L703[16:10:01] <williewillus> !gm World.setBlockState
L704[16:16:44] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L705[16:17:31] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 206 seconds)
L706[16:19:26] ⇦ Quits: TechnicianLP (~Technicia@p4FE1C5C6.dip0.t-ipconnect.de) (Ping timeout: 180 seconds)
L707[16:23:49] ⇨ Joins: ScottehBoeh (~ScottehBo@95.144.45.222)
L708[16:23:53] <ScottehBoeh> so i'm playing around with GL11
L709[16:23:56] <ScottehBoeh> anyone know how to outline text?
L710[16:24:11] <ScottehBoeh> actually.. What I mean is, do you know a class I can refer to
L711[16:27:51] ⇦ Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 384 seconds)
L712[16:27:59] <williewillus> outline?
L713[16:28:20] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L714[16:28:27] <ScottehBoeh> I'm wanting to have a neat black outline around my text
L715[16:28:46] ⇨ Joins: bilde2910 (bilde2910@178.51-174-170.customer.lyse.net)
L716[16:30:38] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Read error: Connection reset by peer)
L717[16:31:06] ⇦ Quits: Ashindigo_ (uid202308@id-202308.hathersage.irccloud.com) (Quit: Connection closed for inactivity)
L718[16:34:38] ⇨ Joins: AstralSorcerer (~AstralSor@128.151.114.249)
L719[16:34:39] ⇦ Quits: GrygrFlzr (~GrygrFlzr@2001:41d0:a:6287::6) (Ping timeout: 384 seconds)
L720[16:44:57] ⇨ Joins: sinkillerj (~sinkiller@nc-67-232-15-221.dhcp.embarqhsd.net)
L721[16:52:48] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 206 seconds)
L722[16:54:23] ⇨ Joins: ALM (~austin@2601:481:c202:cfcf:34c5:a258:34a3:89ea)
L723[16:55:03] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 384 seconds)
L724[16:56:28] ⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read error: Connection reset by peer)
L725[16:57:46] ⇦ Quits: bilde2910 (bilde2910@178.51-174-170.customer.lyse.net) (Ping timeout: 195 seconds)
L726[16:59:19] ⇨ Joins: bilde2910 (bilde2910@178.51-174-170.customer.lyse.net)
L727[17:18:45] ⇦ Quits: Chais (~Chais@62.178.210.212) (Quit: ZNC - http://znc.in)
L728[17:20:34] ⇨ Joins: Chais (~Chais@62-178-210-212.cable.dynamic.surfer.at)
L729[17:21:09] ⇨ Joins: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L730[17:22:11] ⇨ Joins: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L731[17:25:27] <SquareWheel> So I asked last night about a problem I had, but am still having trouble.
L732[17:25:38] <SquareWheel> My custom EntityItem only seems to save with the world when created on the client, but not the server. Which is weird.
L733[17:25:53] <williewillus> client has nothing to do with saving
L734[17:25:54] <williewillus> show code
L735[17:25:56] ⇦ Quits: KnightMiner (~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping timeout: 180 seconds)
L736[17:26:34] <SquareWheel> https://github.com/WesCook/Microbes/blob/master/src/main/java/ca/wescook/microbes/items/ItemMoldyBread.java#L55-L62
L737[17:26:50] <SquareWheel> Version on github is currently saving on server only. But the item is not syncing when the world is reloaded.
L738[17:27:29] <diesieben07> don't check for isRemote in that method
L739[17:27:39] <diesieben07> the client has to create the entity as well, right?
L740[17:27:50] <SquareWheel> I wasn't really sure, honestly.
L741[17:28:09] <SquareWheel> So that's how I had it at first. But the issue still exists that the item doesn't save.
L742[17:28:09] <diesieben07> well, you just return null on the client, which means the client can never have an entity of your item
L743[17:28:19] <diesieben07> define "doesn't save"
L744[17:28:48] <SquareWheel> If I reload the world, it forgets the item existed. Unless I explicitly only load it on the client-side.
L745[17:28:53] <SquareWheel> And I know that's weird.
L746[17:29:02] <diesieben07> are you talking about the item entity?
L747[17:29:05] <SquareWheel> Yes
L748[17:29:11] <SquareWheel> The thrown item on the ground.
L749[17:29:12] <williewillus> then you're not saving the entity properly
L750[17:29:12] <diesieben07> did you register your entity?
L751[17:29:18] <williewillus> show the custom entity
L752[17:29:34] <SquareWheel> I'm just playing around with that now. Registering it seems to break rendering, but otherwise it behaves the same.
L753[17:29:43] <diesieben07> define "break rendering".
L754[17:29:55] ⇦ Quits: ALM (~austin@2601:481:c202:cfcf:34c5:a258:34a3:89ea) (Quit: My MacBook has gone to sleep. ZZZzzz…)
L755[17:30:01] <SquareWheel> It doesn't render at all when registered, unless I only return it on the client.
L756[17:30:05] <williewillus> well, not registering it means it....doesn't get registered
L757[17:30:08] <williewillus> so obviously it wuoldn't save
L758[17:30:11] <williewillus> :P
L759[17:30:25] <williewillus> it's all undefined behaviour at this point if it's not registered
L760[17:30:43] <SquareWheel> Okay, I wasn't really sure about that. I thought inheriting it might be enough.
L761[17:30:49] <diesieben07> no
L762[17:30:59] <SquareWheel> Let me push my changes with the item registration.
L763[17:31:03] <diesieben07> how would it? the server has no way to tell the client "spawn EntityMouldyBread" if you don't register it.
L764[17:31:20] <diesieben07> ah also your entity is missing a constructor that only takes a World
L765[17:31:32] <diesieben07> that means the client can never spawn it and it can never be recreated from disk
L766[17:31:40] <SquareWheel> Well that sounds related.
L767[17:31:55] <SquareWheel> So I need two constructors on that guy?
L768[17:32:03] <diesieben07> Yes.
L769[17:32:08] <williewillus> every entity needs a WOrld only constructor
L770[17:32:11] <diesieben07> ^
L771[17:32:24] <williewillus> (dumb they haven't made a factory type thing yet but whatever)
L772[17:32:28] <SquareWheel> That's probably what's causing my problems then.
L773[17:33:00] <diesieben07> well, making this a factory is pretty ugly without java 8 where you could do MyEntity::new
L774[17:34:50] <SquareWheel> When registering an entity, it takes IDs. Are there any rules to picking one? It seems to be separate from the vanilla Minecraft pool of IDs.
L775[17:35:14] ⇨ Joins: ALM (~austin@2601:481:c202:cfcf:5439:6450:b230:599e)
L776[17:35:52] <SquareWheel> The missing constructor was the problem. Lordy, I never would have worked that out myself.
L777[17:35:56] <williewillus> for the int ids? just unique within the mod
L778[17:35:57] <diesieben07> registerModEntity's IDs are ally ours
L779[17:36:01] <diesieben07> start at 0 and go up
L780[17:36:13] <SquareWheel> Alright, that's good to know.
L781[17:36:58] <SquareWheel> Super glad to see that bug resolved. Much thanks.
L782[17:37:43] <diesieben07> god this game is so broken... https://youtu.be/5geqTtoO6Mk?t=117
L783[17:38:36] <williewillus> wait what about that was broken? :P
L784[17:38:40] <williewillus> entities can travel through portals
L785[17:38:43] <diesieben07> yes
L786[17:38:49] <diesieben07> but the pearl travels through
L787[17:38:55] <diesieben07> then hits something on the other side
L788[17:39:00] <SquareWheel> Chunk was loaded on the other side, maybe?
L789[17:39:03] <williewillus> yes
L790[17:39:07] <williewillus> but who said it can't do that? :P
L791[17:39:09] <diesieben07> then teleports the player to those coords int he original dimension
L792[17:39:18] <williewillus> what do you mean?
L793[17:39:27] <diesieben07> enderpearl thrown through portal in the nether
L794[17:39:31] <diesieben07> travels to overworld
L795[17:39:32] <SquareWheel> Ah. So the pearl updates coords, but not dimension.
L796[17:39:35] <williewillus> oh lol
L797[17:39:35] <diesieben07> hits something in the overworld
L798[17:39:38] <diesieben07> with overworld coords
L799[17:39:48] <diesieben07> then teleports player (still in the nether) to the overworld coords, but in the nether
L800[17:39:50] <diesieben07> wihtout any conversion
L801[17:40:05] <SquareWheel> I guess that makes sense. They wouldn't expect the pearl to be in a different dimension than the player.
L802[17:40:16] <diesieben07> yes, it makes sense for a bug
L803[17:40:17] <diesieben07> but still:D
L804[17:40:41] <diesieben07> took me a while to understand it, too
L805[17:40:52] <SquareWheel> Pretty clever use of mechanics actually.
L806[17:40:58] <diesieben07> "mechanics" D
L807[17:40:59] ⇦ Quits: williewillus (~williewil@cpe-24-28-24-13.austin.res.rr.com) (Quit: Leaving)
L808[17:41:08] <diesieben07> lol i broke his mind
L809[17:43:06] <ghz|afk> shadekiller666: sorry went out for dinner
L810[17:43:14] <ghz|afk> [22:18] (shadekiller666): ghz|afk, support for colorIDs in mtl files?
L811[17:43:14] <ghz|afk> [22:19] (shadekiller666): so instead of "Kd r g b" you want "Kd colorID"?
L812[17:43:27] <ghz|afk> you know how json models have the tintIndex?
L813[17:43:35] <shadekiller666> kinda
L814[17:43:44] <shadekiller666> i know that there is a key for it
L815[17:43:46] <ghz|afk> in item models it's based on layer, layer0 has tintIndex=0, etc
L816[17:43:50] <ghz|afk> in block models
L817[17:43:54] <shadekiller666> ok
L818[17:43:56] <ghz|afk> each face can have a tintIndex value in the json
L819[17:44:12] <shadekiller666> ok
L820[17:44:56] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 180 seconds)
L821[17:44:59] <shadekiller666> doing that per-face would be a bit tricky with regards to how the user would denote which faces have what tintIndex
L822[17:45:06] <ghz|afk> obj has no means to indicate that a subpart should be tintIndex!=0
L823[17:45:15] <ghz|afk> yeah I wouldn't do it per-face
L824[17:45:54] <ghz|afk> but it would be interesting if it could be done per-material
L825[17:45:59] <ghz|afk> so like in the mtl
L826[17:46:06] <ghz|afk> a... "tint_Kd"
L827[17:46:22] <ghz|afk> or in customData
L828[17:47:33] <shadekiller666> i could add a tint_Kd key to the mtl parser, would be more inclined to add it via custom data, or maybe a special case of Kd
L829[17:49:05] <shadekiller666> i've thought about adding custom keys to obj/mtl files for the obj loader to use (the obj spec states that unrecognized/supported commands should be ignored), but idk if its the best idea
L830[17:50:17] ⇨ Joins: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
L831[17:50:30] <ghz|afk> problem with using custom data
L832[17:50:38] <ghz|afk> is that it only takes effect in one file
L833[17:50:52] <ghz|afk> while a tint_Kd would be shared by all the users of the .obj
L834[17:50:55] <Falconerd> Does anyone know any good examples of using the Capability system for a specific mod fuel? IE Mana, Life Points, etc. Looking for something with less abstraction than most of the well known mods seem to have in their source
L835[17:51:23] <shadekiller666> ghz|afk, true
L836[17:52:05] <diesieben07> Falconerd, you mean you want to make your own? or you are trying to use one of those?
L837[17:52:24] <Falconerd> I mean I want to make my own
L838[17:52:34] * diesieben07 finally figured out how to properly to the IRC formattings and is overusing them
L839[17:52:45] <Falconerd> Not sure how to reply in that format
L840[17:52:46] <Falconerd> Lol
L841[17:52:48] <diesieben07> :D
L842[17:53:09] <diesieben07> that was /me, the formattings depend on your client
L843[17:53:26] <Falconerd> I think I get how to attach the capabilities but I don't like being so unclear on what I'm actually doing
L844[17:53:26] <diesieben07> as for the capability, you can look at the forge energy stuff as an example, which is based on just a number
L845[17:53:37] <Falconerd> Ahh, cool
L846[17:53:41] <shadekiller666> right now i'm trying to rework the group visibility configuration handling, i've used it a fair bit recently
L847[17:53:46] <Falconerd> I used Tesla as my example mostly
L848[17:53:51] <shadekiller666> and noticed some places where it could be improved
L849[17:54:08] <diesieben07> that should be fine, too, but I haven't used that personally
L850[17:54:29] <ghz|afk> Falconerd: it may be a good idea to understand what capabilities really ARE, first
L851[17:54:33] <Falconerd> I will definitely take a look at forge energy
L852[17:54:36] <Falconerd> Yeah, that's what I want to know
L853[17:54:41] <ghz|afk> well then
L854[17:54:42] <Falconerd> I've read the forge documentation on them
L855[17:54:48] <ghz|afk> capabilities are interfaces.
L856[17:54:59] <ghz|afk> the capability system allows interfaces to be exposed dynamically
L857[17:55:07] <diesieben07> (you can use concrete classes as well, but ... don't)
L858[17:55:17] <ghz|afk> hasCapability -> "do you have the interface represented by this Capability object?"
L859[17:55:22] <Falconerd> right
L860[17:55:30] <ghz|afk> getCapability -> "give me the instance of the interface represented by this Capability object"
L861[17:55:41] <ghz|afk> now
L862[17:55:51] <ghz|afk> the Capability object, is a key to identify the interface
L863[17:56:11] <ghz|afk> (so as to not throw around explicit "ISomething.class")
L864[17:56:20] ⇨ Joins: SparkVGX (~SparkVGX@121.99.203.245)
L865[17:56:24] <ghz|afk> and also contains helpers for the user of the interface
L866[17:56:25] <ghz|afk> such as
L867[17:56:31] <ghz|afk> .getDefaultInstance()
L868[17:56:34] <ghz|afk> .readNBT
L869[17:56:36] <ghz|afk> .writeNBT
L870[17:56:50] <ghz|afk> which are helpers for instantiating, serializing and deserializing
L871[17:56:54] <Falconerd> right, so everything can be done through the capabilities?
L872[17:57:05] <ghz|afk> if the interface allows it, yes
L873[17:57:17] <ghz|afk> you can have the user of the capability be completely agnostic to what the capability does
L874[17:57:21] <ghz|afk> or which class it is
L875[17:57:31] <Falconerd> getCapability(KEY, null).readNBT for example?
L876[17:57:33] <ghz|afk> it's just a Capability<?>
L877[17:57:35] <ghz|afk> no
L878[17:57:39] <Falconerd> nope okay
L879[17:57:39] <ghz|afk> the Capability instance
L880[17:57:40] <ghz|afk> is the one like
L881[17:57:45] ⇦ Quits: iari (~iari___@tyaralin.shadowdrake.eu) (Quit: Leaving)
L882[17:57:50] <ghz|afk> CapabilityEnergy.ENERGY
L883[17:57:57] <Falconerd> right
L884[17:57:58] <ghz|afk> the one that you declare with @CapabilityInject
L885[17:58:03] <ghz|afk> so you can do like
L886[17:58:15] <ghz|afk> CapabilityEnergy.ENERGY.writeNBT(myInstance
L887[17:58:20] <Falconerd> ahh
L888[17:58:28] <Falconerd> and the instance would be from getCapability?
L889[17:58:31] <ghz|afk> no
L890[17:58:39] <ghz|afk> that's the responsability of the tileentity/entity/itemstack
L891[17:58:41] <ghz|afk> to manage them
L892[17:58:45] <Falconerd> okay
L893[17:58:52] <ghz|afk> myInstance would be RETURNED from getCapability
L894[17:58:54] <ghz|afk> when others request it
L895[17:59:02] <Falconerd> i see
L896[17:59:03] <Falconerd> okay
L897[17:59:03] <ghz|afk> did you use any old-style APIs?
L898[17:59:04] <ghz|afk> like RF?
L899[17:59:18] <Falconerd> IFluidHandler is about it
L900[17:59:22] <ghz|afk> you know how, in order to know if a TE can receive energy
L901[17:59:24] <ghz|afk> you have to do
L902[17:59:34] <ghz|afk> if (tileEntity instanceof IEnergyReceiver) {
L903[17:59:36] <Falconerd> yes
L904[17:59:42] <ghz|afk> receiver = (IEnergyReceiver)tileEntity;
L905[17:59:43] <ghz|afk> }
L906[17:59:47] <ghz|afk> okay with capabilities that becomes
L907[18:00:05] <ghz|afk> if (tileEntity.hasCapability(ENERGY, currentSide)) {
L908[18:00:10] <Falconerd> oooh
L909[18:00:13] <Falconerd> i see
L910[18:00:16] <ghz|afk> receiver = tileEntity.getCapability(ENERGY, currentSide);
L911[18:00:18] <ghz|afk> }
L912[18:00:29] <Falconerd> right
L913[18:00:33] <Falconerd> that makes sense now
L914[18:00:43] <diesieben07> actually you might want to just call getCapability directly, since it will return null if the cap is not supported. bit fewer checks
L915[18:00:57] <ghz|afk> diesieben07: that's bad practice and against the design contract
L916[18:00:57] <ghz|afk> ;P
L917[18:01:04] <diesieben07> no... no it's not.
L918[18:01:19] <diesieben07> "Returns null when {@link #hasCapability(Capability, EnumFacing)} would return false."
L919[18:01:23] <diesieben07> from getCapability
L920[18:01:24] <Falconerd> well you have been very helpful, thank you
L921[18:02:15] <ghz|afk> hmm
L922[18:02:16] <ghz|afk> I see
L923[18:02:19] <ghz|afk> that's new in 1.11
L924[18:02:25] <diesieben07> no it's not.
L925[18:02:26] <diesieben07> :P
L926[18:02:27] <ghz|afk> it wasn't described like that in the 1.10.2 javadocs
L927[18:02:32] <ghz|afk> I just checked ;P
L928[18:02:53] <ghz|afk> ICapabilityProvider#getCapability has a copypasta of hasCapability ;p
L929[18:03:13] ⇨ Joins: Shambling (~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com)
L930[18:03:23] <diesieben07> well, ok
L931[18:03:24] <ghz|afk> anyhow
L932[18:03:27] <diesieben07> the original javadoc was senseless...
L933[18:03:45] <ghz|afk> Falconerd: as I was saying, that's just one side of the equation
L934[18:03:51] <ghz|afk> I can explain more, if you want or need ;P
L935[18:03:51] <Falconerd> alrighty
L936[18:04:01] <Falconerd> if you feel up to it that'd be great
L937[18:04:09] <ghz|afk> yeah so
L938[18:04:20] <ghz|afk> you understand how to query capabilities, now
L939[18:04:24] <ghz|afk> there's 2 things left
L940[18:04:30] <ghz|afk> how to expose them from your own TE/Entity
L941[18:04:36] <ghz|afk> and how to create a new capability
L942[18:05:01] <ghz|afk> I know your use case is the last one, but it works out better that way, so that you have the previous concepts clear
L943[18:05:06] <ghz|afk> so
L944[18:05:22] <ghz|afk> in order to provide capabilities, there's ICapabilityProvider
L945[18:05:23] <Falconerd> yep i prefer to understand what i'm doing instead of just making things work
L946[18:05:24] <Falconerd> thanks
L947[18:05:46] <ghz|afk> TileEntities, Entities, and ItemStacks implement this interface by default
L948[18:05:53] <ghz|afk> and anyone inheriting it through them
L949[18:06:25] <Falconerd> which means any TEs I make will have that interface
L950[18:06:29] <ghz|afk> for a capability that you implement in your own class (TE or Entity only -- you can't extend ItemStacks)
L951[18:06:41] <ghz|afk> you will want to override those two methods
L952[18:06:47] <ghz|afk> hasCapability, and getCapability
L953[18:06:56] <Falconerd> right
L954[18:07:09] <ghz|afk> in them, you will want to check if the requested capability is one that you handle
L955[18:07:19] <ghz|afk> and if not, you want to delegate to super
L956[18:07:25] <Falconerd> like this, for example? https://hastebin.com/cuhidujivo.java
L957[18:07:43] <ghz|afk> this is important, because calling super enables others from attaching capabilities to objects
L958[18:07:49] <Falconerd> right
L959[18:08:02] <ghz|afk> for an external object you don't control
L960[18:08:04] ⇨ Joins: illy (uid69226@id-69226.highgate.irccloud.com)
L961[18:08:07] <ghz|afk> you can't just override the methods
L962[18:08:26] <ghz|afk> but forge has an event, AttachCapabilitiesEvent
L963[18:08:32] <ghz|afk> which can be used to detect objects being constructed
L964[18:08:33] <illy> Beep
L965[18:08:38] <ghz|afk> boop
L966[18:08:44] <ghz|afk> so
L967[18:08:49] <ghz|afk> AttachCapabilitiesEvent.Entity
L968[18:08:58] <ghz|afk> would be called for each entity that gets constructed
L969[18:09:01] <ghz|afk> well
L970[18:09:05] <ghz|afk> AttachCapabilitiesEvent<Entity>
L971[18:09:09] <Falconerd> isn't that deprecated?
L972[18:09:10] <Falconerd> right
L973[18:09:14] <ghz|afk> using the new generic-aware version
L974[18:09:30] <ghz|afk> so this lets you attach not capabilities
L975[18:09:33] <ghz|afk> but ICapabilityProviders
L976[18:09:46] <ghz|afk> which can be augmented with INBTSerializable
L977[18:09:50] ⇨ Joins: TTFTCUTS (~ttftcuts@ns3366511.ovh.net)
L978[18:09:58] <ghz|afk> (ICapabilitySerializable does this implicitly)
L979[18:10:09] <ghz|afk> if you need to save and load data (which happens usually)
L980[18:10:14] <ghz|afk> so in short
L981[18:10:17] <ghz|afk> if you have your own object
L982[18:10:35] <ghz|afk> you will instantiate the interface
L983[18:10:37] *** diesieben07 is now known as diesieben|away
L984[18:10:48] <ghz|afk> and then implement hasCapability + getCapability + writeToNBT + readFromNBT
L985[18:10:56] <ghz|afk> and if you attach to other people's objects
L986[18:11:05] <ghz|afk> you will implement ICapabilitySerializable<NBTSomething>
L987[18:11:12] <Falconerd> right okayu
L988[18:11:20] <shadekiller666> if i may chime in, where would one get the equivalent CapabilityEnergy.ENERGY to use in those two methods if they're trying to support an energy api? would it be gotten from the api in question?
L989[18:11:20] <ghz|afk> which contains hasCapability + getCapability + serializeNBT + deserializeNBT
L990[18:11:23] <ghz|afk> so effectively the same
L991[18:11:48] <ghz|afk> shadekiller666: yes that is my next point
L992[18:11:49] <ghz|afk> now
L993[18:12:05] <ghz|afk> so as I said, you have the capability, and I have been throwing that word around
L994[18:12:15] <ghz|afk> there's two ways to get the capaiblity instance
L995[18:12:33] <ghz|afk> either you use an existing field from the API, or
L996[18:12:41] <ghz|afk> you declare your own field with @CapabilityInject
L997[18:12:52] <ghz|afk> they WILL contain the same instance reference
L998[18:13:06] <ghz|afk> because the capability registry takes care of assigning all the fields to the same object instance
L999[18:13:07] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L1000[18:13:10] <ghz|afk> so
L1001[18:13:16] <ghz|afk> since accessing local statics is quicker
L1002[18:13:27] <ghz|afk> it is recommended that users of a capability get their own field for this
L1003[18:13:30] <ghz|afk> like so:
L1004[18:13:38] <ghz|afk> @CapabilityInject(TheInterface.class)
L1005[18:13:46] <ghz|afk> Capability<TheInterface> THE_CAP;
L1006[18:14:04] <ghz|afk> eh I mean
L1007[18:14:05] <Falconerd> right
L1008[18:14:07] <ghz|afk> public static Capability<TheInterface> THE_CAP;
L1009[18:14:08] <ghz|afk> ;P
L1010[18:14:15] <ghz|afk> so from then on
L1011[18:14:20] <shadekiller666> TheInterface.class being the interface from the api that would be implemented by TEs or Entities
L1012[18:14:21] <shadekiller666> ?
L1013[18:14:25] <ghz|afk> yes
L1014[18:14:30] <ghz|afk> then
L1015[18:14:35] <ghz|afk> in your hasCapability you would see
L1016[18:14:43] <ghz|afk> if (capability == THE_CAP) return true;
L1017[18:14:49] <ghz|afk> super.hasCapabilty(capability, face);
L1018[18:14:49] <ghz|afk> }
L1019[18:14:56] <ghz|afk> or in getCapability
L1020[18:15:05] <ghz|afk> if (capability == THE_CAP) return (T)myinstance;
L1021[18:15:22] <ghz|afk> THE_CAP in this case, serves as an identifier
L1022[18:15:32] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L1023[18:16:00] <shadekiller666> what does @CapabilityInject do on methods?
L1024[18:16:06] <ghz|afk> on methods
L1025[18:16:11] <ghz|afk> they will have a Capability parameter
L1026[18:16:19] <ghz|afk> and upon registration of the capability
L1027[18:16:27] <ghz|afk> all the methods get called with the same exact object instance
L1028[18:16:31] <ghz|afk> that would be assigned to the fields
L1029[18:16:48] <shadekiller666> oh, so it would be used as an initializer
L1030[18:17:18] <ghz|afk> yes, it's useful as a way for mods to have classes that ONLY get loaded when a capability is present
L1031[18:17:43] <ghz|afk> so they can enable those features only if the capaiblity exists
L1032[18:17:55] <ghz|afk> without causing loading errors
L1033[18:18:59] <ghz|afk> so, that's two down
L1034[18:19:03] <Falconerd> okay
L1035[18:19:05] <ghz|afk> we have seen how to query capabilities on objects
L1036[18:19:15] <ghz|afk> and how to expose capabilities from things
L1037[18:19:26] <ghz|afk> that leaves one: how to create a new capability
L1038[18:19:57] <ghz|afk> now I'll start with: this is NOT how to design your API, that's a separate thing enterely
L1039[18:20:19] <ghz|afk> so I will pretend that you already have an interface ready and you just want to declare it as a capability
L1040[18:20:26] <Falconerd> cool
L1041[18:20:37] <ghz|afk> so let's call it IFalcon
L1042[18:21:27] <ghz|afk> declaring a new capability revolves around one single thing: calling CapabilityManager.register
L1043[18:21:36] <ghz|afk> this function takes 3 parameters
L1044[18:21:45] <ghz|afk> 1. the class of the interface, like IFalcon.class
L1045[18:21:57] *** amadornes is now known as amadornes[OFF]
L1046[18:22:10] <ghz|afk> (this is needed in order to find the relevant methods and call @CapabilityInject and such)
L1047[18:22:30] <ghz|afk> 2. an IStorage helper, which is used to give the capability the writeNBT and readNBT
L1048[18:22:46] <ghz|afk> in this helper, you would implement the algorithm for serializing and deserializing
L1049[18:23:13] <ghz|afk> you can choose to have your interface extend INBTSerializable itself
L1050[18:23:19] <ghz|afk> and then this helper would just forward the calls
L1051[18:23:29] <ghz|afk> but the way it's designed gives you the freedom to not do that
L1052[18:23:34] <Falconerd> i see
L1053[18:23:41] <ghz|afk> you can instead, keep the capability completely separate from serialization
L1054[18:23:57] <shadekiller666> how do you do that without knowing exactly what will be in the implementation?
L1055[18:24:17] <ghz|afk> you need a "contract" for it
L1056[18:24:24] ⇦ Quits: ThePsionic (~Psi@ip5457f909.direct-adsl.nl) (Quit: Leaving)
L1057[18:24:44] <ghz|afk> more on this later
L1058[18:24:48] <ghz|afk> the third parameter
L1059[18:24:58] <ghz|afk> is a factory
L1060[18:25:23] <ghz|afk> this factory is supposed to create new instances of the reference implementation
L1061[18:25:37] <ghz|afk> this reference implementation, would provide a ready-to-use instance
L1062[18:25:43] <Falconerd> right, so that's what this is https://github.com/Darkhax-Minecraft/Tesla/blob/1.10.2/src/main/java/net/darkhax/tesla/api/implementation/BaseTeslaContainer.java
L1063[18:25:46] <ghz|afk> that is able to do its function, without requiring coder intervention
L1064[18:26:02] <ghz|afk> yes
L1065[18:26:08] <ghz|afk> and for the case of IItemHandler
L1066[18:26:19] <ghz|afk> the default implementation is an ItemStackHandler, constructed with slotCount=1
L1067[18:26:34] <ghz|afk> so with this, you can use THE_CAP.getDefaultInstance()
L1068[18:26:42] <Falconerd> ahh
L1069[18:26:44] <ghz|afk> and if the capability is implemented correctly
L1070[18:26:52] <ghz|afk> you will obtain a working instance of your interface
L1071[18:27:04] <ghz|afk> now
L1072[18:27:08] <ghz|afk> back to the IStorage
L1073[18:27:18] <ghz|afk> the design contract for capabilities says that
L1074[18:27:29] <ghz|afk> IStorage is only required to support serialization and deserialization of default instances
L1075[18:27:32] <ghz|afk> it can do more
L1076[18:27:34] <ghz|afk> but it's not required to
L1077[18:27:53] <ghz|afk> in the case of IItemHandler
L1078[18:27:58] <ghz|afk> the IStorage for it
L1079[18:28:05] <ghz|afk> can save and load any IItemHandlerModifiable
L1080[18:28:14] <ghz|afk> no matter if it's ItemStackHandler, or your own custom class
L1081[18:28:20] ⇦ Quits: founderio (~Thunderbi@p200300C4E3C0FA00F4BAA8E8C502ECA2.dip0.t-ipconnect.de) (Ping timeout: 202 seconds)
L1082[18:28:27] <ghz|afk> so long as it's IItemHandler and IItemHandlerModifiable, you can use the IStorage methods with it
L1083[18:28:32] <ghz|afk> similarly
L1084[18:28:52] <ghz|afk> other APIs can state their restrictions
L1085[18:28:57] <ghz|afk> on what can and can't use IStorage
L1086[18:29:09] <ghz|afk> just make it clear on your design and write it down on your documentation
L1087[18:29:15] <ghz|afk> now
L1088[18:29:23] ⇨ Joins: LordSkittles_ (~LordSkitt@101.191.24.47)
L1089[18:29:43] <ghz|afk> if you call CapabilityManager.register(IFalcon.class, new FalconSerializer(), new FalconFactory());
L1090[18:29:57] <LordSkittles_> Is there still two ways you can register events
L1091[18:30:07] <ghz|afk> this will add the capability to the internal registry
L1092[18:30:23] <LordSkittles_> Through Minecraft forge and fml?
L1093[18:30:24] <ghz|afk> and immediately afterward, it will run all the @CapabilityInjects
L1094[18:30:28] <LordSkittles_> or is the FML way gone
L1095[18:30:36] <ghz|afk> LordSkittles_: no, FML uses the forge bus now
L1096[18:30:56] <ghz|afk> you can still call the FML one, but it returns the same exact bus as forge's
L1097[18:30:58] <LordSkittles_> Ok. then my event isn't firing for some reason XD
L1098[18:31:04] <ghz|afk> show code ;P
L1099[18:31:15] <LordSkittles_> lemme submit hold on
L1100[18:31:29] <ghz|afk> Falconerd: let me know if you have any doubts ;P
L1101[18:31:40] <ghz|afk> I'm bored so I can also help you design the interface if you want ;P
L1102[18:31:42] <Falconerd> you have been immensely helpful
L1103[18:31:43] <Falconerd> thank you
L1104[18:32:05] <Falconerd> i can tidy up the repo and show you what i've got so far from looking at other implementations if you like
L1105[18:32:07] <LordSkittles_> https://bitbucket.org/SkittleLord/arcane-mastery/src/781827cdaf5096c37e1c7223120ba1978bf942de/src/main/java/lordskittles/arcanemastery/com/core/event/EventPestleCrafting.java?fileviewer=file-view-default
L1106[18:32:31] <shadekiller666> so if someone wanted to add functionality to the interface, would they extend the capability factory?
L1107[18:32:46] <shadekiller666> like BaseTeslaContainer for instance
L1108[18:32:57] <ghz|afk> no you can't extend other people's capabilities
L1109[18:33:28] <ghz|afk> well
L1110[18:33:39] <ghz|afk> you CAN extend the class
L1111[18:33:48] <ghz|afk> this is java, the capability system doesn't change the language
L1112[18:34:13] <ghz|afk> the factory is only a way to obtain reference implementations
L1113[18:34:18] <ghz|afk> it's not meant for extending or anything
L1114[18:34:21] <ghz|afk> example:
L1115[18:34:28] *** diesieben|away is now known as diesieben07
L1116[18:34:36] <ghz|afk> IItemHandler comes with ItemStackHandler as a reference implementation
L1117[18:34:38] <ghz|afk> but by itself
L1118[18:34:40] <ghz|afk> it's not enough
L1119[18:34:49] <ghz|afk> if you want to make use of it in a TileEntity
L1120[18:35:01] <ghz|afk> you will most probably need markDirty() to be called whenever a slot changes
L1121[18:35:07] <ghz|afk> so that comparators can update their value
L1122[18:35:37] <ghz|afk> (and other machines like that)
L1123[18:35:38] <diesieben07> LordSkittles_, why are you even using that event for that?
L1124[18:36:07] <ghz|afk> so in the end
L1125[18:36:18] <LordSkittles_> I want the item to damage upon crafting similar to the quartz knife in AE2 diesieben07
L1126[18:36:34] <ghz|afk> a common IItemHandler looks like this: https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/generator/TileGenerator.java#L42,L59
L1127[18:36:38] <diesieben07> i know what you are trying to do
L1128[18:36:44] <ghz|afk> you use the reference code
L1129[18:36:45] <diesieben07> but that doesn't answer my questino
L1130[18:36:55] <ghz|afk> but override onContentsChange to be able to call markDirty
L1131[18:37:07] <diesieben07> just use getContainerItem/hasContainerItem in the Item calss
L1132[18:37:09] <ghz|afk> and if needed, override insert/extract to filter the contents
L1133[18:37:23] <LordSkittles_> Because I thought that was the way I was supposed to do it diesieben07.
L1134[18:37:33] <diesieben07> well, it's not
L1135[18:37:45] <diesieben07> most people do it this way, but it's buggy and unnecessarily complicated
L1136[18:37:58] <shadekiller666> so if i'm a tile entity that is able to provide power to machines in the Tesla system, i would ask my neighbors if they have Tesla's energy cap, then ask for their instance of that cap
L1137[18:38:02] <LordSkittles_> What would you suggest then?
L1138[18:38:17] <shadekiller666> and then i would call the appropriate methods on the instance returned
L1139[18:38:32] <ghz|afk> yes
L1140[18:38:43] <ghz|afk> or as diesieben07 pointed out
L1141[18:38:48] <ghz|afk> you don't really NEED hasCapability
L1142[18:38:50] <ghz|afk> you can just do
L1143[18:39:06] <ghz|afk> consumer = te.getCapability(TESLA_CONSUMER,side);
L1144[18:39:20] <ghz|afk> if (consumer != null) consumer.giveEnergy(1000);
L1145[18:39:20] <diesieben07> LordSkittles_, hasContainerItem / getContainerItem in the Item class, like I said
L1146[18:39:23] <ghz|afk> -- or whatever
L1147[18:39:23] <shadekiller666> right, but you'd then need a null check
L1148[18:39:32] <shadekiller666> so its either check before, or check after :P
L1149[18:39:37] <ghz|afk> well
L1150[18:39:43] <ghz|afk> hasCapability will probably take longer than a nullcheck does
L1151[18:39:49] <shadekiller666> true
L1152[18:39:58] <ghz|afk> since it could potentially have more than one capability attached
L1153[18:40:05] <shadekiller666> and i can see null checks being needed anyway
L1154[18:41:18] <ScottehBoeh> is there a legit rul against gun mods? :o
L1155[18:41:27] <ScottehBoeh> because I REALLY wanted to show this realistic animation I implemented
L1156[18:41:33] <ghz|afk> I don't think so
L1157[18:41:45] <ghz|afk> I jsut dislike guns on principle, but I'm ok with people making gun mods
L1158[18:41:47] <ghz|afk> I just won't use them
L1159[18:42:32] <ScottehBoeh> https://www.youtube.com/watch?v=O2xp9P_GnTs
L1160[18:42:35] <ScottehBoeh> Slow-motion :D
L1161[18:42:46] <ScottehBoeh> basically the weapon has a little shake to it now, like a real gun would have
L1162[18:42:47] <Falconerd> ghz|afk, https://github.com/Falconerd/Eitr is the repo, the relevant files are in 'api' and 'capability' and the TileEntity i'm testing on is in 'block/harvester'
L1163[18:43:22] ⇨ Joins: VikeStep (~VikeStep@192.43.96.58.static.exetel.com.au)
L1164[18:43:46] <ghz|afk> ScottehBoeh: make the big guns actually have recoil that hurts the player ;P
L1165[18:43:54] <Falconerd> ScottehBoeh, I also don't like guns but you have done a good job
L1166[18:43:59] <ghz|afk> and the even biggerguns actually push you backward
L1167[18:43:59] <ghz|afk> ;P
L1168[18:44:07] <ScottehBoeh> xD not a bad idea
L1169[18:44:26] <Falconerd> personally i think less realistic guns in MC could be alright
L1170[18:44:36] <Falconerd> like... think nuclear throne
L1171[18:44:42] <Falconerd> if you know that game
L1172[18:44:58] <Falconerd> anyway that's off topic
L1173[18:45:04] <Falconerd> what's this gun modification table you've got?
L1174[18:45:12] <ScottehBoeh> That would be awesome tho :D
L1175[18:45:13] <Falconerd> you can add different parts?
L1176[18:46:19] <Falconerd> question, does the recoil actually effect the bloom?
L1177[18:47:47] <Falconerd> ScottehBoeh, just looking at your tank, looks pretty sick
L1178[18:48:19] <shadekiller666> dang it
L1179[18:48:41] <ScottehBoeh> not my tank :D
L1180[18:48:57] <ScottehBoeh> the arms were coded in by Prototype, I positioned them and implemented animations etc
L1181[18:49:06] <ScottehBoeh> Tanks etc were modeled by Flan/War_monger
L1182[18:49:10] <Falconerd> ah, well
L1183[18:49:18] <shadekiller666> having trouble improving the OBJLoader because of functionality that is left over from the early stages of its development...
L1184[18:49:30] <Falconerd> i reckon i could use guns and stuff in MC if it was a themed modpack
L1185[18:49:36] <Falconerd> multiplayer
L1186[18:49:42] ⇨ Joins: Blarghedy (~Blarghedy@50-90-115-148.res.bhn.net)
L1187[18:50:54] <shadekiller666> not sure if i want to rewrite this entire bit, or add stuff to it to make it work
L1188[18:53:49] <Nanobird> Quick (maybe) question: The forge registries. Will that handle server-client data sync automatically, or easily?
L1189[18:54:09] ⇦ Quits: Shambling (~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com) (Quit: Leaving)
L1190[18:55:24] ⇦ Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) ()
L1191[18:56:44] ⇨ Joins: Aurilux (~Aurilux@64-126-82-209.dyn.everestkc.net)
L1192[18:56:53] *** diesieben07 is now known as diesieben|away
L1193[18:57:05] <ghz|afk> Nanobird: the internal IDs in the registers do get synchronized on connect
L1194[18:57:21] <ghz|afk> but I don't think it syncs anything else
L1195[18:57:43] <ghz|afk> (and you shouldn't rely on those IDs for anything but networking)
L1196[18:58:37] <ScottehBoeh> Falconerd it is in a themed mod/modpack :D
L1197[18:58:52] <Falconerd> sweet
L1198[18:59:18] <ScottehBoeh> Spent ages making props for it
L1199[18:59:19] <ScottehBoeh> https://www.youtube.com/watch?v=HXJL0YUWN8w
L1200[18:59:28] <ScottehBoeh> I REALLY need to tidy up the code tho
L1201[18:59:55] <Falconerd> where is this server based?
L1202[18:59:56] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 180 seconds)
L1203[19:00:03] <ScottehBoeh> Russian Occupied America
L1204[19:00:09] <ScottehBoeh> There's a long story behind it
L1205[19:00:21] <Falconerd> i meant the physical server for decimation, is there a public one?
L1206[19:00:29] <ScottehBoeh> Yeah there's a server list embed
L1207[19:00:30] <Falconerd> or is it download the pack and make your own kind of deal?
L1208[19:00:36] <Falconerd> ah
L1209[19:01:25] ⇦ Quits: LordSkittles_ (~LordSkitt@101.191.24.47) (Quit: Leaving)
L1210[19:02:31] <Falconerd> all my external libraries in intellij have disappeared
L1211[19:02:37] <Falconerd> really need to be more careful wtih git
L1212[19:08:09] <Falconerd> ghz|afk, I've saved all that information in a gist and would like to make a clear explanation for other people to read. Would you mind proofing it? I'll probably do it when I successfully get things working
L1213[19:09:09] <ghz|afk> if you leave the link around, I'll try to look
L1214[19:09:23] <ghz|afk> my energy disappeared XD
L1215[19:09:23] <Falconerd> Sweet, cheers
L1216[19:09:29] <Falconerd> all good, you've helped me a lot
L1217[19:09:33] <ghz|afk> (it's 2am ;P)
L1218[19:09:38] <Falconerd> ah
L1219[19:09:59] <Falconerd> i forgot you are from spain
L1220[19:10:23] <ghz|afk> it's ok, I don't expect anyone to remember those things ;P
L1221[19:10:54] <Falconerd> wow if i google "github falconerd" i get a repo before my profile
L1222[19:21:20] ⇦ Quits: OrionOnline (~OrionOnli@dslb-094-220-193-006.094.220.pools.vodafone-ip.de) (Ping timeout: 194 seconds)
L1223[19:28:23] ⇨ Joins: Ashindigo_ (uid202308@id-202308.hathersage.irccloud.com)
L1224[19:39:26] ⇦ Quits: ScottehBoeh (~ScottehBo@95.144.45.222) (Read error: Connection reset by peer)
L1225[19:46:28] ⇨ Joins: RebelKeithy (~RebelKeit@173-240-139-59.pool.dsl.nctc.com)
L1226[19:50:19] <SparkVGX> does anyone have some examples of different mods that have teleporters which link between two locations only?
L1227[19:52:25] ⇦ Quits: Jezza (~Jezza@92.206.161.17) (Ping timeout: 384 seconds)
L1228[19:53:42] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:a963:53e7:a3fd:34cb)
L1229[19:58:19] ⇨ Joins: OrionOnline (~OrionOnli@dslb-084-063-143-136.084.063.pools.vodafone-ip.de)
L1230[20:07:20] ⇦ Quits: Aurilux (~Aurilux@64-126-82-209.dyn.everestkc.net) (Quit: Leaving)
L1231[20:08:55] <Falconerd> ghz|afk, I've got something working! Woo
L1232[20:09:31] <Falconerd> Thanks again
L1233[20:12:57] ⇨ Joins: Naiten (Naiten@81.2.48.12)
L1234[20:20:51] ⇨ Joins: Cooler (~CoolerExt@2406:5600:59:d356:f1c2:b7:a726:df9a)
L1235[20:36:02] ⇦ Quits: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp) ()
L1236[20:37:52] <SquareWheel> Can a TE be updated manually by scheduling infrequent updates? Would like to avoid ITickable for performance reasons.
L1237[20:38:02] ⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout: 206 seconds)
L1238[20:41:51] ⇦ Quits: Naiten (Naiten@81.2.48.12) (Read error: Connection reset by peer)
L1239[20:44:06] <SquareWheel> I guess I could disable ITickable, and do scheduleUpdate() with the block, then somehow communicate that to the TE. Would that be faster with the overhead of communication?
L1240[20:44:26] <Falconerd> I actually want to know the answer to that as well
L1241[20:47:26] <Falconerd> Anyone know of a Waila fork for 1.11?
L1242[20:47:33] <Falconerd> or an alternative
L1243[20:47:49] <SparkVGX> TheOneProbe?
L1244[20:48:36] <Falconerd> awesome cheers
L1245[20:49:45] <TehNut> https://minecraft.curseforge.com/projects/hwyla
L1246[20:50:11] <Falconerd> ahh
L1247[20:51:02] <SparkVGX> I didn't know about that one ^_^ Thank you TehNut
L1248[20:51:11] <Falconerd> yah, thanks
L1249[20:51:16] <TehNut> It has builtin capability support
L1250[20:51:29] <TehNut> for things like IFluidHandler, IEnergyStorage, and IItemHandler
L1251[20:52:02] <Falconerd> i wonder how adding custom capabilities will go
L1252[20:52:13] <Falconerd> i won't worry about that too much until later
L1253[20:52:25] <SparkVGX> What mod are you working on?
L1254[20:52:31] <Falconerd> my own
L1255[20:52:38] <Falconerd> uhh
L1256[20:52:40] <SparkVGX> :P I know, but what is it
L1257[20:52:42] <Falconerd> not released or known
L1258[20:52:50] <SparkVGX> ahh sekrit mod
L1259[20:52:56] <Falconerd> https://github.com/Falconerd/Eitr
L1260[20:52:58] <Falconerd> not secret
L1261[20:53:02] <Falconerd> just relearning forge
L1262[20:53:15] <Falconerd> last time i modded was 1.7 and all i did was make super efficient pipes
L1263[20:53:51] <Falconerd> ghz just explained capabilities to me for an hour
L1264[20:53:54] <Falconerd> which was really helpful
L1265[20:54:04] ⇦ Quits: Nanobird (~Nano@173-81-227-67.chstcmtk03.res.dyn.suddenlink.net) (Ping timeout: 194 seconds)
L1266[20:54:19] <SparkVGX> He did the same for me last year lol
L1267[20:57:04] <SparkVGX> I'm getting a weird de-sync issue on player death, that only happens when I teleport my player way up in the air. The player dies, then on respawn, can't receive new chat messages and has to relog
L1268[20:57:16] <Falconerd> how strange
L1269[20:57:25] <SparkVGX> then they are back where they died, with the same items, and duplicate items around them from when they died before
L1270[20:58:56] ⇦ Quits: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com) (Quit: Poof)
L1271[21:00:13] <SparkVGX> Hmmm... seems to happen if I fly up high enough and then switch back to survival. Desyncs before hitting the ground it seems, then logging back in puts player back above ground, very close to die again, but doesn't desync that time
L1272[21:00:27] <SparkVGX> I'm going to chalk that one up to a vanilla bug >.>
L1273[21:03:10] ⇦ Quits: Wastl2 (~Wastl2@x4e350d5b.dyn.telefonica.de) (Ping timeout: 194 seconds)
L1274[21:05:48] ⇨ Joins: Wastl2 (~Wastl2@x4e349239.dyn.telefonica.de)
L1275[21:08:48] ⇦ Quits: IceDragon (~ThatGuy@184.170.9.82) (Ping timeout: 194 seconds)
L1276[21:11:26] ⇦ Quits: flappy (~flappy@194.111.119.63) (Ping timeout: 180 seconds)
L1277[21:12:07] ⇦ Quits: OrionOnline (~OrionOnli@dslb-084-063-143-136.084.063.pools.vodafone-ip.de) (Read error: Connection reset by peer)
L1278[21:12:14] ⇨ Joins: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L1279[21:18:47] ⇦ Quits: Cooler (~CoolerExt@2406:5600:59:d356:f1c2:b7:a726:df9a) (Quit: Leaving)
L1280[21:25:52] ⇨ Joins: IceDragon (~ThatGuy@173.225.247.176)
L1281[21:32:44] ⇦ Quits: sinkillerj (~sinkiller@nc-67-232-15-221.dhcp.embarqhsd.net) (Quit: またね)
L1282[21:39:28] ⇨ Joins: icynewyear (~icynewyea@mars.c4.io)
L1283[21:39:56] ⇦ Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 180 seconds)
L1284[21:54:27] ⇨ Joins: TangentDelta (~tangentde@c-68-37-224-83.hsd1.mi.comcast.net)
L1285[22:00:53] ⇦ Quits: SparkVGX (~SparkVGX@121.99.203.245) (Quit: This quit message was sponsored by Pepsi. Just as good as coke, we promise!)
L1286[22:24:41] ⇨ Joins: McJty (~jorrit@94-224-154-146.access.telenet.be)
L1287[22:31:06] ⇦ Quits: Ashindigo_ (uid202308@id-202308.hathersage.irccloud.com) (Quit: Connection closed for inactivity)
L1288[22:36:27] ⇦ Quits: Lathanael|Away (~Lathanael@p54961943.dip0.t-ipconnect.de) (Ping timeout: 206 seconds)
L1289[22:41:54] ⇨ Joins: Lathanael|Away (~Lathanael@p5496169F.dip0.t-ipconnect.de)
L1290[23:04:30] ⇦ Quits: PolarizedIons (~Polarized@vauff.me) (Ping timeout: 194 seconds)
L1291[23:05:06] ⇨ Joins: flappy (~flappy@a88-113-154-4.elisa-laajakaista.fi)
L1292[23:05:17] ⇨ Joins: PolarizedIons (~Polarized@vauff.me)
L1293[23:07:58] ⇦ Quits: Subaraki (~Subaraki@vauff.me) (Ping timeout: 194 seconds)
L1294[23:08:59] ⇦ Quits: RandomX45 (~random@2601:44:8802:2060:9d64:c07e:12a6:8b1e) (Quit: [Sein] Sein is just strong enough to throw it. [Prospero] but now you've dented the poor companion cube, you monster.)
L1295[23:19:43] ⇦ Quits: bilde2910 (bilde2910@178.51-174-170.customer.lyse.net) (Ping timeout: 189 seconds)
L1296[23:21:53] ⇨ Joins: bilde2910 (bilde2910@178.51-174-170.customer.lyse.net)
L1297[23:27:53] *** AbrarSyed is now known as Abrar|gone
L1298[23:34:20] ⇦ Quits: flappy (~flappy@a88-113-154-4.elisa-laajakaista.fi) (Quit: /0)
L1299[23:36:08] ⇦ Quits: IceDragon (~ThatGuy@173.225.247.176) (Ping timeout: 194 seconds)
L1300[23:36:56] ⇨ Joins: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L1301[23:47:27] <killjoy> IDEA is messing up my buildscript
L1302[23:47:44] <killjoy> It keeps wanting to put this at the top of the script. import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy
L1303[23:47:45] <killjoy> import net.md_5.specialsource.Jar
L1304[23:49:20] <Barteks2x> And it really is the groovy buildscript?
L1305[23:49:33] <killjoy> named build.gradle
L1306[23:49:45] <Barteks2x> usually nothing happens automatically in IDEA in buildscript
<<Prev Next>> Scroll to Top