<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:24:39] ⇨ Joins: Ipsis (Ipsis!~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L2[00:31:44] ⇨ Joins: Unh0ly_Tigg (Unh0ly_Tigg!~Unh0ly_Ti@c-24-21-196-226.hsd1.or.comcast.net)
L3[00:48:29] ⇦ Quits: Brokkoli (Brokkoli!~Brokkoli@p2e5b1e0e.dip0.t-ipconnect.de) (Read error: -0x7880: SSL - The peer notified us that the connection is going to be closed)
L4[01:02:33] ⇨ Joins: Galaxtone (Galaxtone!~IceChat9@cable-54-120.sssnet.com)
L5[01:07:06] ⇦ Quits: c233 (c233!~c233@164.40.197.152) (Read error: Connection reset by peer)
L6[01:07:35] ⇨ Joins: c233 (c233!~c233@164.40.197.152)
L7[01:15:39] ⇦ Quits: nallar (nallar!~nallar@cpc134854-cani4-2-0-cust141.know.cable.virginm.net) (Ping timeout: 207 seconds)
L8[01:27:26] ⇨ Joins: ben_mkiv (ben_mkiv!~ben_mkiv@p4FED560A.dip0.t-ipconnect.de)
L9[01:42:41] ⇦ Quits: Doty1154 (Doty1154!~Doty1154@2601:648:8000:134f:2806:83e5:ae7c:142f) (Read error: Connection reset by peer)
L10[01:54:47] ⇦ Quits: RichardG (RichardG!~richardg8@201.37.246.64) (Ping timeout: 186 seconds)
L11[01:54:57] ⇨ Joins: RichardG (RichardG!~richardg8@201.37.246.64)
L12[01:54:57] MineBot sets mode: +v on RichardG
L13[02:00:03] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20171229 mappings to Forge Maven.
L14[02:00:07] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20171229-1.12.zip (mappings = "snapshot_20171229" in build.gradle).
L15[02:00:17] <MCPBot_Reborn> Semi-live (every 10 min), Snapshot (daily ~3:00 EST), and Stable (committed) MCPBot mapping exports can be found here: http://export.mcpbot.bspk.rs/
L16[02:01:11] ⇦ Quits: Neal (Neal!~Neal@47.146.41.184) (Ping timeout: 200 seconds)
L17[02:33:30] <SparkVGX> heya, whats the forge gradle channel?
L18[02:38:50] <Ordinastie> #ForgeGradle
L19[02:39:28] <SparkVGX> oops lol, excellent thank you
L20[02:51:31] ⇨ Joins: auenf (auenf!~David@120.154.64.171)
L21[02:54:05] ⇦ Quits: McJty (McJty!~jorrit@ptr-9197ufqkddqqq88rsr5.18120a2.ip6.access.telenet.be) (Quit: Leaving)
L22[03:18:31] <ghz|out> [09:33] (SparkVGX): heya, whats the forge gradle channel?
L23[03:18:51] <SparkVGX> ?
L24[03:18:52] <ghz|out> reminded me of some movie my sister used to watch all the time, where the kids ask "what's the number for 9-1-1?"
L25[03:18:59] <SparkVGX> :P
L26[03:19:32] * billy calls 4-1-1 to get the number to 9-1-1
L27[03:20:37] <SparkVGX> i tried /join forgegradle before i asked, but its case sensitive and i didn't realise xD
L28[03:21:06] <Ordinastie> I hate that, watching a show, thinkin I recognize a voice, but can't find info anywhere about it :/
L29[03:21:58] <Ordinastie> (Space Suit IA voice in Dr Who S10E05)
L30[03:30:59] <ghz|out> http://www.imdb.com/title/tt6250146/ ? :P
L31[03:31:09] <Ordinastie> yes
L32[03:31:34] <ghz|out> Space Corpse (uncredited)
L33[03:31:34] <ghz|out> Mickey Lewis Mickey Lewis ...
L34[03:31:46] <ghz|out> Clem So ...
L35[03:31:46] <ghz|out> The White Haired Corpse (uncredited)
L36[03:31:54] <Ordinastie> I've checked already
L37[03:32:39] <Ordinastie> don't even really care about the name, I just need to know where I heard her before
L38[03:32:52] <Ordinastie> or whow I'm confusing her with
L39[03:49:19] <ghz|out> GAH
L40[03:49:30] <ghz|out> why's tortoisegitmerge so horribly slow >_<
L41[03:50:24] <ghz|out> apparently someone says disabling the ribbon UI fixes the problem ¬¬
L42[03:52:26] <ghz|out> yup WAY faster without ribbon
L43[03:52:33] <ghz|out> which is annoying...
L44[04:04:31] <ghz|out> !gm Slot.onSlotChange
L45[04:10:03] <SparkVGX> disabling the ribbon actually improved the speed? How much of their cpu allowance was being taken by that lol
L46[04:11:29] <ghz|out> well
L47[04:11:34] <ghz|out> apparently it's an issue with the image scaling
L48[04:11:51] <ghz|out> which happens due to the ribbon being hidpi-aware
L49[04:12:05] <ghz|out> why that is so slow, no idea
L50[04:12:24] <ghz|out> but it adds some 5 seconds to the startup time of the merge app
L51[04:12:47] <ghz|out> for something that used to be near-instant before the latest windows 10 big update
L52[05:10:32] ⇦ Quits: MCDis (MCDis!~MCDis@2607:5300:100:200::3fc) ()
L53[05:10:49] ⇨ Joins: MCDis (MCDis!~MCDis@tterrag.com)
L54[05:13:14] ⇦ Quits: alekso56 (alekso56!~cax@2001:464b:c21a:0:745d:45ff:fe3b:a098) (Ping timeout: 383 seconds)
L55[05:21:27] ⇦ Quits: Arcanitor (Arcanitor!~DaMachina@40.112.138.169) (Ping timeout: 383 seconds)
L56[05:32:41] ⇨ Joins: Raycoms (Raycoms!~Raycoms@2804:14d:baa0:9612:211:f974:13b9:be92)
L57[05:34:10] ⇨ Joins: DaMachinator (DaMachinator!~DaMachina@40.112.138.169)
L58[05:34:28] ⇦ Quits: MCDis (MCDis!~MCDis@tterrag.com) ()
L59[05:34:49] ⇨ Joins: MCDis (MCDis!~MCDis@tterrag.com)
L60[05:36:15] ⇦ Quits: MCDis (MCDis!~MCDis@tterrag.com) (Client Quit)
L61[05:36:31] ⇨ Joins: MCDis (MCDis!~MCDis@tterrag.com)
L62[06:18:45] <Raycoms> Hi everyone, I just noticed that blockStates don't work very well in lists with contains
L63[06:18:57] <Raycoms> what is the second best option, blockState.getBlock().getRegistryName ?
L64[06:19:50] ⇨ Joins: Cast0077 (Cast0077!~Cast0077@24-151-30-78.dhcp.nwtn.ct.charter.com)
L65[06:20:05] <ghz|out> what is the purpose of it?
L66[06:20:47] <Raycoms> I want to store all ores I extracted from the oredict in a static list so my miner can check if its a ore and doesn't have to calc the whole oredict again
L67[06:20:56] <Raycoms> I do this calc on each restart, since people might add a new mod
L68[06:21:18] <Raycoms> But, atm a player reported 100k ores in his list, since the blockStates did not respond to the contains
L69[06:27:21] ⇨ Joins: Hunterz (Hunterz!~hunterz@62.182.234.189)
L70[06:29:25] *** PaleOff is now known as PaleoCrafter
L71[06:40:52] <ghz|out> Raycoms: what ... just how many oredict entries are there...
L72[06:41:01] <ghz|out> oredict should be fast
L73[06:41:15] <ghz|out> wait
L74[06:41:18] <ghz|out> blockstates...
L75[06:41:38] <ghz|out> are you taking the blocks from the oredict, then computing a list of their blockstates?
L76[06:41:44] <Raycoms> Yes
L77[06:42:00] <ghz|out> why not just use.... the blocks
L78[06:44:52] <Raycoms> Because someone told me not to...
L79[06:45:00] <ghz|out> I mean
L80[06:45:10] <ghz|out> instead of taking the entire list of blockstates and putting it into a list
L81[06:45:15] <ghz|out> which is a horrible idea
L82[06:45:37] <ghz|out> you should be storing the most generic thing possible
L83[06:45:47] ⇨ Joins: Nedelosk (Nedelosk!~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de)
L84[06:46:02] <ghz|out> so, in 99% of the cases
L85[06:46:08] <ghz|out> a block of ores will always be ores
L86[06:46:25] <ghz|out> if a mod is mixing ore and non-ore into the same block, only differentiated by blockstate, that's kindof silly
L87[06:46:33] <ghz|out> and you should slap the modder that did that
L88[06:47:09] <ghz|out> (specially with 1.13 incoming, which goes the complete opposite way)
L89[06:48:06] <ghz|out> but even then, I believe this is the kind of thing that deserves having something in the config, to specify some conditions, per block
L90[06:49:31] <ghz|out> like, if the config is json, you could have something like: "oreConditions": { "weirdmod:blockname" : [{"property1":"value1","property2":"value2",...} {second alternative}, {third alternative}, ...]
L91[06:49:48] <ghz|out> then in the code check only those properties that are explicitly required to distinguish an ore from a non-ore
L92[06:51:12] <ghz|out> then you would just go by the Block instance
L93[06:51:21] <ghz|out> map<Block, Predicate>
L94[06:51:54] <ghz|out> where the Predicate would be some object containing the info from the config, which would return "true" if no config is provided, meaning it defaults to "any variant is an ore"
L95[06:52:21] <ghz|out> and you could even have this config include known mods
L96[06:52:30] <ghz|out> and only load the entries from the config that exist in the loaded modpack
L97[06:58:46] ⇦ Quits: ben_mkiv (ben_mkiv!~ben_mkiv@p4FED560A.dip0.t-ipconnect.de) (Ping timeout: 186 seconds)
L98[06:59:49] ⇦ Quits: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93) (Read error: Connection reset by peer)
L99[07:01:29] ⇨ Joins: ssblur (ssblur!~Thunderbi@cpe-65-184-138-23.ec.res.rr.com)
L100[07:08:36] <Raycoms> Ahh thanks, yeah will definitely go back to blocks
L101[07:25:41] ⇨ Joins: alekso56 (alekso56!~cax@ti0107a400-1663.bb.online.no)
L102[07:27:35] ⇦ Quits: Cast0077 (Cast0077!~Cast0077@24-151-30-78.dhcp.nwtn.ct.charter.com) (Ping timeout: 186 seconds)
L103[07:49:15] ⇨ Joins: ben_mkiv (ben_mkiv!~ben_mkiv@p4FED560A.dip0.t-ipconnect.de)
L104[07:54:38] ⇨ Joins: MonkeyTyrant (MonkeyTyrant!~MonkeyTyr@142.163.129.161)
L105[07:57:18] ⇦ Quits: MonkeyTyrant (MonkeyTyrant!~MonkeyTyr@142.163.129.161) (Client Quit)
L106[07:59:21] ⇦ Quits: Raycoms (Raycoms!~Raycoms@2804:14d:baa0:9612:211:f974:13b9:be92) (Remote host closed the connection)
L107[08:15:12] ⇨ Joins: MonkeyTyrant (MonkeyTyrant!~MonkeyTyr@142.163.129.161)
L108[08:15:24] ⇦ Quits: MonkeyTyrant (MonkeyTyrant!~MonkeyTyr@142.163.129.161) (Client Quit)
L109[08:34:14] ⇦ Quits: Dark (Dark!~MrDark@2607:fcc8:d48b:eb00:44dc:8d25:260b:c2fd) (Ping timeout: 186 seconds)
L110[08:37:45] <ghz|out> lol at @Nonnull being an actual github username
L111[08:37:46] <ghz|out> https://github.com/MinecraftForge/MinecraftForge/pull/4633/commits/ed5a175dfdfeaa0a5f62f69391df3079d1fc66b6
L112[08:38:20] <Lord_Ralex> null is too
L113[08:50:37] ⇦ Quits: ssblur (ssblur!~Thunderbi@cpe-65-184-138-23.ec.res.rr.com) (Quit: ssblur)
L114[09:01:28] <TechnicianLP> i think those guys have notifications disabled by now ...
L115[09:32:20] ⇨ Joins: Raycoms (Raycoms!~Raycoms@2804:14d:baa0:9612:211:f974:13b9:be92)
L116[09:33:17] ⇦ Quits: Keridos (Keridos!~Keridos@static.56.72.76.144.clients.your-server.de) (Quit: ZNC - http://znc.in)
L117[09:33:40] ⇨ Joins: Keridos (Keridos!~Keridos@static.56.72.76.144.clients.your-server.de)
L118[09:35:40] ⇨ Joins: quadraxis (quadraxis!~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L119[09:47:28] ⇨ Joins: immibis (immibis!~chatzilla@122-60-111-246.jetstream.xtra.co.nz)
L120[09:58:27] <ben_mkiv> is there a way to access the materiallib of a wavefront object model within ModelLoaderRegistry?
L121[10:00:47] <ben_mkiv> or is the whole registry just to create IModels?
L122[10:02:40] <ben_mkiv> same question about the object groups
L123[10:11:53] ⇦ Quits: mallrat208 (mallrat208!~mallrat20@107.145.144.41) (Ping timeout: 194 seconds)
L124[10:32:33] <TechnicianLP> you should not need to do that - the whole point of it that once you ask the MLR for an IModel you dont have to care about which model it is (and it could technically no longer be a obj-model due to resourcepacks)
L125[10:33:26] <TechnicianLP> if you need to change materials you can specify which one to use before backing it
L126[10:35:41] ⇨ Joins: h404bi (h404bi!~h404bi@119.129.112.62)
L127[10:36:13] <ben_mkiv> its about entities
L128[10:36:16] <ben_mkiv> and animation
L129[11:10:48] <ghz|out> ben_mkiv: no you can't access the details, just specify data through the customdata, or in the IModelState during baking
L130[11:11:49] <ben_mkiv> thanks
L131[11:11:58] <ben_mkiv> guess ill just use the objloader then
L132[11:12:13] <PaleoCrafter> uhm... what is it exactly that you need?
L133[11:12:14] <ben_mkiv> as it looks like to support reading the groups
L134[11:12:28] <PaleoCrafter> you can modify which groups to display through the IModelState
L135[11:12:32] <ben_mkiv> i want to apply different rotations to some groups
L136[11:12:40] <ben_mkiv> also their rotation?
L137[11:12:46] <PaleoCrafter> I think so, yes
L138[11:12:54] <PaleoCrafter> let me find my code
L139[11:12:58] <ben_mkiv> ok, i'll look into IModelState first
L140[11:13:10] <PaleoCrafter> it's a little weird
L141[11:13:20] <ben_mkiv> the whole minecraft codebase is
L142[11:13:20] <ben_mkiv> xD
L143[11:13:47] <PaleoCrafter> but if you're in an entity anyways, why not just bake with the required groups enabled separately and then normally rotate that?
L144[11:13:51] <ben_mkiv> well IModelState is just an interface with one function
L145[11:14:06] <PaleoCrafter> if you define the rotation with the state, you'd constantly have to rebake
L146[11:14:13] <PaleoCrafter> that function is used weirdly, though :P
L147[11:14:22] <ben_mkiv> well the question is how would i access lower left arm for example
L148[11:14:57] <ben_mkiv> when i just cache all modelparts with the forge objloader and use custom rendercode i can allign them as i want to
L149[11:15:05] <ghz|out> ben_mkiv: if you want to animate, you should be using b3d animations, not obj parts
L150[11:15:16] <ghz|out> the obj loader is NOT designed for this
L151[11:15:16] <ben_mkiv> whats their advantage?
L152[11:15:24] <ghz|out> b3d can CONTAIN ANIMATIONS
L153[11:15:24] <ben_mkiv> do they have poses?
L154[11:15:28] <ghz|out> yes
L155[11:15:35] <ghz|out> well
L156[11:15:45] <ghz|out> I don't know what "poses" means in this context
L157[11:15:57] <ben_mkiv> actually im using custom posecode with easing for smooth stuff
L158[11:16:09] <ben_mkiv> but all parts are seperate obj model files, which is annoying to update
L159[11:16:19] <PaleoCrafter> B3D does have skeletal animations
L160[11:16:36] <ghz|out> the idea with b3d is that you rig and animate in blender
L161[11:16:36] <PaleoCrafter> which Forge supports pretty much completely, afaik
L162[11:16:44] <ghz|out> and use the b3d exporter to save the model WITH the animations
L163[11:16:54] <ghz|out> and then you declare an animation state machine
L164[11:17:07] <ghz|out> and provide the animation system with a place to hold the animation state
L165[11:17:14] <ben_mkiv> well if this works as you say it would save me tons of work i guess
L166[11:17:24] <ghz|out> I can't tell you the exact steps and code to use
L167[11:17:29] <ghz|out> because I have never managed it myself
L168[11:17:32] <ben_mkiv> know any mod that uses it?
L169[11:18:00] <ghz|out> nope, I have no idea if anyone has managed to make it work :P
L170[11:18:05] <ghz|out> I *think* so
L171[11:18:06] <ben_mkiv> xD
L172[11:18:08] <ghz|out> but I don't know anything by name
L173[11:18:17] <ghz|out> forge has some example/test files for it
L174[11:18:17] <ben_mkiv> yea, but i like the idea of custom pose code more
L175[11:18:26] <ben_mkiv> allows me some tweaks like fuzzyness
L176[11:18:47] <ghz|out> uhm I don't know that it allows THAT kind of customization
L177[11:19:12] <ghz|out> the animation sequences would be embedded into the b3d file and played as they were designed in the modelling program
L178[11:19:33] <ben_mkiv> which ends up as static animation xD
L179[11:19:58] <ben_mkiv> nah i want my sneak code for example call strechtleg(left, -1)
L180[11:20:23] <ben_mkiv> and it'll rotate the parts with some fuzz but still fit the -1F distance
L181[11:20:36] <illy|Laptop> I forgot about the animation state machine... is there any documentation on that thing...
L182[11:20:41] <PaleoCrafter> lel
L183[11:20:47] <ghz|out> illy|Laptop: the example code in the repository.
L184[11:20:50] <PaleoCrafter> "documentation" is a word utterly foreign to fry :P
L185[11:20:55] <ghz|out> I have never seen anyone document it
L186[11:21:01] <ghz|out> and fry's stance was "just read the code"
L187[11:21:11] <illy|Laptop> >.>
L188[11:21:16] <PaleoCrafter> there's a grammar for ASMs, but that's about it
L189[11:21:33] <ben_mkiv> and for what it looks like, as its for a entity with custom render code... is it really wrong to just use the OBJLoader and bypass modelregistry?
L190[11:21:53] <PaleoCrafter> yes.
L191[11:21:54] <PaleoCrafter> :P
L192[11:22:00] <ghz|out> vanilla embeds the models in java code
L193[11:22:06] <ghz|out> anything is better than that :P
L194[11:22:20] <ben_mkiv> just wondering if i miss some important thing
L195[11:22:23] <illy|Laptop> sadly that was reminds me of the olden days where men were men and didnt have a mod loader... *sudders*
L196[11:22:24] <ben_mkiv> before starting to code xD
L197[11:22:41] ⇨ Joins: Hgrebnednav (Hgrebnednav!~Hgrebnedn@d8d872a6e.access.telenet.be)
L198[11:22:46] <PaleoCrafter> I can't find my IModelState using code right now, I might've never even committed it xD
L199[11:22:59] <ben_mkiv> but telling me to use it
L200[11:23:04] <ben_mkiv> :P
L201[11:23:20] <PaleoCrafter> it's the way you're supposed to do it >.>
L202[11:24:10] <ghz|out> I want to take this chance to remember my 2013 attempt at modding (mc 1.4.7)
L203[11:24:11] <ghz|out> https://github.com/gigaherz/ElementsOfPower/blob/430ea584b8f19b6956509c323dd1be51cf8e4832/src/minecraft/gigaherz/elementsofpower/models/ModelStaff.java
L204[11:24:16] <ghz|out> and my approach at loading obj models
L205[11:24:16] <ghz|out> :P
L206[11:24:31] <PaleoCrafter> I think you had to return a present identity transform if you want to *hide* a part xD
L207[11:25:00] <ben_mkiv> i'll stick to the OBJLoader :P
L208[11:25:14] <PaleoCrafter> hell nah
L209[11:25:24] <PaleoCrafter> you're gonna do this properly
L210[11:25:29] <ben_mkiv> lol
L211[11:25:32] <ghz|out> XD
L212[11:26:04] <PaleoCrafter> right, a present Optional for some weird ass reason will *hide* the part
L213[11:26:14] <PaleoCrafter> 'cause why not
L214[11:26:30] ⇦ Quits: quadraxis (quadraxis!~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 186 seconds)
L215[11:26:58] <ben_mkiv> the thing is... i need to see it work in action
L216[11:27:52] <ben_mkiv> to me it looks like making changes to the IModel needs rebaking it
L217[11:28:18] ⇦ Quits: MikrySoft (MikrySoft!~mikrysoft@89-71-101-248.dynamic.chello.pl) (Ping timeout: 383 seconds)
L218[11:28:24] <ghz|out> yes
L219[11:28:26] <ghz|out> it does.
L220[11:28:31] <ghz|out> every time you want to make ANY change
L221[11:28:34] <ghz|out> you need to re-bake
L222[11:28:38] <ben_mkiv> thats nuts
L223[11:28:42] <PaleoCrafter> that's why I said bake the parts but manually do the rotation ._.
L224[11:28:46] <ben_mkiv> i can do the transforms at rendertime
L225[11:28:47] <ghz|out> but that's how the animation system works
L226[11:28:55] <ben_mkiv> or on cpu and pass that matrix to opengl
L227[11:28:56] <ghz|out> every frame, it applies the skeleton in cpu
L228[11:29:05] <PaleoCrafter> eh, not really, ghz|out
L229[11:29:07] <ghz|out> and sends the pre-transformed vertices to the rendering code
L230[11:29:52] <ghz|out> everything ends up going to the tesellator, which just knows quads, so in order to apply the animation, it has to transform each vertex beforehand
L231[11:30:24] <ben_mkiv> actually my way is to store rotation etc on each part/bone
L232[11:30:42] <ben_mkiv> at rendertime it fetches a matrix4 with all those rotation/translations applied
L233[11:30:51] <ben_mkiv> and passes that to opengl, where i just have to render the parrt
L234[11:30:57] <ben_mkiv> -r
L235[11:31:30] <ben_mkiv> but that using seperate objfiles for each part and using the modelregistry
L236[11:31:48] <PaleoCrafter> take a look at AnimationModelBase, methinks
L237[11:31:59] <ben_mkiv> is that forge or vanilla code?
L238[11:32:17] <PaleoCrafter> Forge
L239[11:32:31] <ghz|out> forge -- vanilla knows nothing about animated models.
L240[11:33:15] <ben_mkiv> its stirked in IDEA
L241[11:33:22] <ben_mkiv> striked... deprecated?
L242[11:33:36] <PaleoCrafter> read the comment above the class, it's just not working entirely correctly xD
L243[11:33:51] <ben_mkiv> yea, just noticed the annotation
L244[11:33:55] <ben_mkiv> but look at this rendercode....
L245[11:34:01] <ben_mkiv> i'm not going to use that xD
L246[11:34:09] <PaleoCrafter> ... it's for inspiration
L247[11:34:14] <ghz|out> PaleoCrafter: you'll notice it bakes each frame :P
L248[11:34:29] <PaleoCrafter> yeah, I misremembered that xD
L249[11:34:51] <PaleoCrafter> I wonder how the heck that is performing so well xD
L250[11:34:58] <ben_mkiv> i can tell you
L251[11:35:01] <ben_mkiv> because no one uses it
L252[11:35:03] <ben_mkiv> :D
L253[11:35:04] <ghz|out> well, mc models have few quads
L254[11:35:16] <ghz|out> so re-baking a few dozen quads per frame isn't that much
L255[11:35:35] <ghz|out> I'm sure you'd notice it, though, if you tried to use the animation system on a less sparse block
L256[11:35:38] <PaleoCrafter> ah, actually, it's not entirely rebaking for TEs
L257[11:35:38] <ghz|out> or entity
L258[11:36:29] <ben_mkiv> actually i've read that for newer opengl its adviced to use shaders for transitions/rotations
L259[11:36:31] <PaleoCrafter> and fry spammed a shitton of his engine thingy in a world without a considerable impact, that should've taken a toll
L260[11:37:09] <ben_mkiv> so i wonder how that improves perfomance when using buffered models all the time, and just doing the transformation on gpu
L261[11:37:29] <ghz|out> "newer"
L262[11:37:41] <ghz|out> mc uses ancient opengl
L263[11:37:46] <ghz|out> not just old, ancient.
L264[11:37:53] <ben_mkiv> yea, but that made it easy to get into it
L265[11:37:56] <ghz|out> gl3.0 is from like what... 2005?
L266[11:38:10] <ben_mkiv> well isnt it gl11 calls most of the time?
L267[11:38:23] ⇨ Joins: mallrat208 (mallrat208!~mallrat20@107.145.144.41)
L268[11:38:24] <ghz|out> Release date: August 11, 2008
L269[11:38:43] <ghz|out> MOST functions are in GL11
L270[11:38:48] <ghz|out> but only because they happen to be in GL11
L271[11:39:01] <ghz|out> mc prefers to use VBOs these days
L272[11:39:04] <ghz|out> which are opengl 2.0
L273[11:39:16] <ben_mkiv> VBOs depend on shaders?
L274[11:40:06] <ghz|out> no
L275[11:40:20] <ghz|out> they are just a more efficient way to store geometry
L276[11:40:32] <ghz|out> since VBOs can be stored in the gpu, and reused multiple times
L277[11:40:41] <ben_mkiv> oh ok, so they do transforms on gpu, too
L278[11:41:05] <ghz|out> well the GlStateManager.translate and such do change the opengl matrix, which is applied on gpu
L279[11:41:18] <ghz|out> the only thing that transforms on cpu is the forge model system :P
L280[11:41:28] <ben_mkiv> and my code actually
L281[11:41:40] <ghz|out> and the main reason is that when you provide a model for a block or item
L282[11:41:43] <ghz|out> you don't have access to opengl
L283[11:42:15] <ghz|out> the tesellator just gathers things into a VBO and sends it to the gpu
L284[11:50:23] ⇨ Joins: Commoble (Commoble!~Commoble@mnpl-04-3331.dsl.iowatelecom.net)
L285[11:56:07] <Raycoms> I guess rotation + 6 states = no way =/
L286[11:56:16] <ghz|out> ?
L287[11:56:29] <ghz|out> if you mean in metadata, in 1.12 or earlier, nope
L288[11:56:47] <Raycoms> I have a slab which is supposed to work like a stair (recognize the connecting blocks and adapt to it) but it can have 4 rotations as well
L289[11:56:48] <ghz|out> you'd have to use a tileentity, or make it more than one block "id"
L290[11:57:29] <Commoble> wait
L291[11:57:39] <Commoble> Recognizing the connecting blocks and adapting to them can be done without metadata
L292[11:57:48] <Commoble> in fact actual stairs will do that
L293[11:58:11] <ghz|out> eh yes
L294[11:58:14] <ghz|out> getActualState
L295[11:58:19] <ghz|out> you don't need the metadata for that
L296[11:58:57] <Raycoms> Hmm, I think that'll be the only way, I'll still use all 4*6 states right? I'll just not load it from or to meta
L297[11:59:15] <Commoble> Right, you'd only use the meta for the rotation
L298[11:59:31] <Raycoms> actually the rotation also depends on the connecting blocks
L299[11:59:49] <Commoble> If you take the connecting blocks away, will the rotation change?
L300[11:59:53] <Commoble> er, if you break them
L301[12:00:06] <Raycoms> possible
L302[12:00:07] <ghz|out> yes you can use WAY more than 16 states
L303[12:00:11] <ghz|out> just not store them in metadata :P
L304[12:00:19] <ghz|out> just be reasonable
L305[12:00:26] <ghz|out> 1 million state combinations = bad
L306[12:00:37] <ghz|out> all the variants are computed at load time, metadata or not
L307[12:02:12] ⇨ Joins: moony (moony!~moony@tx-76-4-59-100.dhcp.embarqhsd.net)
L308[12:02:26] <Commoble> if you're using one million state combinations you might want to look into a tileentity instead
L309[12:02:48] <ghz|out> or a redesign of the mod
L310[12:02:48] <ghz|out> :P
L311[12:03:04] <ghz|out> I started working on a mod to overhaul the entire concept of "tree" in minecraft
L312[12:03:08] <ghz|out> a while ago
L313[12:03:17] <ghz|out> and I soon realized
L314[12:03:36] <Commoble> trees are vindictive sons of bitches
L315[12:03:38] <ghz|out> a branch block... with leaves/no leaves... 6 thickness values... 6 rotations...
L316[12:03:45] <ghz|out> that's already over 200 combinations
L317[12:03:50] ⇨ Joins: McJty (McJty!~jorrit@ptr-9197ufp7ob5npudm4ha.18120a2.ip6.access.telenet.be)
L318[12:04:11] <ghz|out> but I wanted to connect with neighbouring branch blocks
L319[12:04:27] <ghz|out> so I had to also store each neighbour's thickness, not just the blocks' own
L320[12:04:34] <ghz|out> that meant 6 thickness values PER FACE
L321[12:04:46] <ghz|out> 2 * 6 * 6 * 6^6
L322[12:04:48] <ghz|out> !!calc 2 * 6 * 6 * 6^6
L323[12:04:48] <ghz|out> ghz|out: Result(s): 3359232
L324[12:04:53] <ghz|out> a bit much :P
L325[12:05:00] <Commoble> oh that's handy
L326[12:05:30] <ghz|out> yeh that's why I keep it around :P
L327[12:05:43] <ghz|out> wrote an expression parser a while ago, and I was thinking "what do I use it for?"
L328[12:05:55] <ghz|out> decided to interface it with my mirc client
L329[12:06:50] * Commoble wonders about the overhead cost of making each tree a tileentity
L330[12:07:08] <ghz|out> depends if it's ticking
L331[12:07:12] <ghz|out> I thought of making them entities
L332[12:07:33] <ghz|out> but those can't even have a static model :P
L333[12:07:51] <ghz|out> one of the ideas I had was to make the trees grow
L334[12:07:58] <ghz|out> and have a "health"
L335[12:08:15] <ghz|out> which on reaching 0, would make the tree turn into X wood + Y sticks + Z leaf blocks
L336[12:08:26] <ghz|out> depending on how big it was
L337[12:09:06] <Commoble> "You strike the tree with your diamond axe! It explodes in a shower of gore!"
L338[12:11:11] <ghz|out> so yeah
L339[12:11:32] <ghz|out> my second idea, was to make each branch block explicitly connect to a bigger branch block
L340[12:11:40] <ghz|out> so that when you break the bigger branch
L341[12:11:50] <ghz|out> all the smaller branches facing it, would also pop off
L342[12:11:59] <ghz|out> a bit like the chorus plant does now
L343[12:12:10] <ghz|out> (but I was writing that code years before that :P)
L344[12:13:35] <ghz|out> the results aren't bad
L345[12:13:59] <ghz|out> if sharex will finish uploading...
L346[12:14:25] <ghz|out> hmm imgur is dead?
L347[12:14:41] <Commoble> imgur works for me
L348[12:16:03] ⇦ Quits: Lynndis (Lynndis!~Lynn@c-75-71-231-133.hsd1.co.comcast.net) (Ping timeout: 207 seconds)
L349[12:16:40] <ghz|out> maybe they disallow remote uploads now
L350[12:16:45] <ghz|out> sharex isn't working anymore :P
L351[12:22:57] <IoP> imgur was having serious problems earlier
L352[12:23:18] <IoP> I had to upload image with curl because browser was getting 504s
L353[12:24:32] <ghz|out> maybe they are being DDoS'd
L354[12:28:06] ⇦ Quits: Ordinastie (Ordinastie!~Ordinasti@bronyville.me) (Quit: -)
L355[12:29:25] <Commoble> I've been using puush for short-term uploads
L356[12:36:57] ⇨ Joins: parzivail (parzivail!~parzivail@162-199-87-109.lightspeed.jcvlfl.sbcglobal.net)
L357[12:37:18] <parzivail> are 1.7.10 questions basically taboo at this point?
L358[12:37:38] <PaleoCrafter> they have been for more than a year, yes :P
L359[12:37:50] <ghz|out> people are less annoyed by them than they were in 2015 :P
L360[12:38:01] <ghz|out> but also people have had more time to forget
L361[12:38:42] <ghz|out> the general stance isthat this channel is for the actively supported versions
L362[12:39:08] <ghz|out> which at this point would be 1.12.2, a bit of 1.11.2, and can stretch down to 1.10.2 but just barely
L363[12:39:21] <parzivail> great. regardless, so I'm trying to get an IMultipartEntity to be mountable but I can't figure out when they're actually spawned into the world. if you spawn the parent entity, the children are _created_ but obviously not spawned in on both sides because you can mount them only after a world reboot
L364[12:39:31] <ghz|out> so on the upside, you'll be slapped around for 1.17.10 about as much as for 1.8.9 :P
L365[12:39:57] <ghz|out> eh, no idea about multipart entities
L366[12:40:03] <Raycoms> is there a way to generate a blockState?
L367[12:40:05] <ghz|out> so I couldn't answer even if you asked for 1.12.2 :P
L368[12:40:10] <ghz|out> Raycoms: "generate"?
L369[12:40:29] <ghz|out> block.getDefaultState().withProperty(...).withProperty(...)...
L370[12:40:39] <Raycoms> In the world
L371[12:40:45] <ghz|out> place?
L372[12:40:51] <ghz|out> world.setBlockState(...)
L373[12:40:52] <Commoble> setBlockState?
L374[12:40:54] <Raycoms> Yeah, but outside of the code =P
L375[12:40:59] <Commoble> wut
L376[12:41:04] <ghz|out> chat command, /setblock ?
L377[12:41:20] <ghz|out> but
L378[12:41:22] <Raycoms> how do I define the blockState with this? Besides metadata?
L379[12:41:24] <Commoble> what exactly are you trying to do?
L380[12:41:29] <ghz|out> if you want to type the list of properties
L381[12:41:33] <ghz|out> that's only on 1.12 or maybe 1.11
L382[12:41:39] <Raycoms> I'm on 1.12 =)
L383[12:41:47] <ghz|out> then check the official wiki for /setblock
L384[12:43:59] <Raycoms> kk ty
L385[12:44:33] <Commoble> You can only set the block ID and the metadata; everything else that defines a block's state comes from neighboring blocks (like the connectivity of stairs)
L386[12:45:06] <ghz|out> nay you can /setblock weird stuff
L387[12:45:12] <ghz|out> nah*
L388[12:45:17] <ghz|out> but it won't "stick"
L389[12:46:30] <parzivail> more abstract question, then: if you were to create some fashion of a vehicle with multiple child entities which would be seats that could each support one player sitting on them, how would you go about implementing that? my current method is spawn the parent, which delegates spawning to it's children, from which the children save a reference to their parent, but it's very flaky
L390[12:47:52] <ghz|out> hmmm the parent should probably know the children, so that when it moves, it can immediately update the position of the children
L391[12:50:18] <parzivail> right, i have an array in the parent which has the children, and it loops over the children each onUpdate. my sticking point is that, when EntityDragon does it, it never spawns in the children, they just kinda exist in a world-detached state where the parent (dragon) updated them each tick. that wouldn't be optimal i feel for having a player ride atop them since they're not actually spawned entities in the
L392[12:50:18] <parzivail> world. not entirely sure how that works. I am implementing `Entity[] getParts()` though
L393[12:50:53] <ghz|out> yeah dunno
L394[12:51:07] <parzivail> the mystery continues
L395[12:52:35] *** Santa|afk is now known as SatanicSanta
L396[12:52:37] ⇨ Joins: Hgreb (Hgreb!~Hgrebnedn@d8D872A6E.access.telenet.be)
L397[12:54:57] ⇦ Quits: Hgrebnednav (Hgrebnednav!~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping timeout: 200 seconds)
L398[12:58:03] <parzivail> are entity IDs static between world loads?
L399[12:59:31] <parzivail> don't think so. that may be my problem
L400[13:05:39] <ghz|out> there should be a persistent ID
L401[13:13:07] ⇨ Joins: KGS (KGS!~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L402[13:13:16] <parzivail> yeah, just found that
L403[13:17:51] ⇨ Joins: MikrySoft (MikrySoft!~mikrysoft@89-77-131-219.dynamic.chello.pl)
L404[13:18:02] ⇨ Joins: Neal (Neal!~Neal@47.146.41.184)
L405[13:25:01] ⇦ Quits: Nedelosk (Nedelosk!~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
L406[13:26:10] ⇨ Joins: Nedelosk (Nedelosk!~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de)
L407[13:29:06] ⇦ Quits: MikrySoft (MikrySoft!~mikrysoft@89-77-131-219.dynamic.chello.pl) (Killed (NickServ (GHOST command used by MikrySo5)))
L408[13:35:11] ⇨ Joins: quadraxis (quadraxis!~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L409[13:41:22] <PaleoCrafter> https://streamable.com/79ppx jesus christ, using armatures is really annoying
L410[13:42:12] <Ivorius> You said it
L411[13:42:21] <Ivorius> I mean, better than vertices :P
L412[13:42:25] <PaleoCrafter> sure
L413[13:44:15] ⇨ Joins: sww1235 (sww1235!~sww1235@ferrari.cs.colostate.edu)
L414[13:44:51] <PaleoCrafter> I can't remember, should it ease in when opening the drawer or when closing it? xD
L415[13:46:02] <ghz|out> I have seen drawers that do both :P
L416[13:46:08] <PaleoCrafter> heh
L417[13:46:38] <Ivorius> Considering it's a human motion
L418[13:46:41] <parzivail> i'd say ease out for opening, ease in for closing
L419[13:46:59] <Ivorius> I'd say ease in for both
L420[13:47:01] <PaleoCrafter> I feel like opening it should probably ease out, since you forcefully pull at it and then get slower to hit the right spot xD
L421[13:48:40] <ghz|out> I think ease-out on both
L422[13:51:04] <PaleoCrafter> lol
L423[13:51:22] <PaleoCrafter> let's see how ease out opening and ease in closing looks
L424[13:52:30] <parzivail> because i know i just push drawers and let them close on their own
L425[13:52:37] <parzivail> they're goin pretty quick when they finally close
L426[13:58:28] <PaleoCrafter> bah, the stupid thing about the armatures for Vanilla models is that you can't pass in 1 to get the final frame of a clip
L427[14:04:49] ⇦ Quits: McJty (McJty!~jorrit@ptr-9197ufp7ob5npudm4ha.18120a2.ip6.access.telenet.be) (Quit: Leaving)
L428[14:05:18] <ghz|out> parzivail: they make drawer guides that brake the drawer, these days
L429[14:05:36] <parzivail> yeah, the fancy soft-close ones
L430[14:05:45] <PaleoCrafter> none of those soft close shenanigans for this :P
L431[14:06:09] <parzivail> uNrEaLiStiC dWaWeR ExPeCtAtIoNs
L432[14:06:16] <parzivail> drawer*
L433[14:06:47] <ghz|out> well
L434[14:06:50] <ghz|out> if you ease-out on the closing
L435[14:06:55] <ghz|out> it would be sortof-softclose
L436[14:08:01] <PaleoCrafter> https://streamable.com/2rb80 god that's annoying
L437[14:08:30] <ghz|out> >_<
L438[14:09:05] <PaleoCrafter> I've got no clue where the hell that stuttering is coming from
L439[14:09:14] <parzivail> Welcome to Minecraft (TM)
L440[14:09:16] <ghz|out> it's not stuttering
L441[14:09:33] <ghz|out> either the animation loops for one frame before resetting to the final state
L442[14:09:43] <ghz|out> or the animation ends and resets to the original state, before applying the new state
L443[14:10:02] <PaleoCrafter> since it's not always the case, I assume I'm getting some weird double precision error here
L444[14:10:06] <PaleoCrafter> or rather, float
L445[14:10:28] <ghz|out> scale the animation progress by .99 or something :P
L446[14:10:35] <PaleoCrafter> I'm already doing that :P
L447[14:10:40] ⇨ Joins: Brokkoli (Brokkoli!~Brokkoli@p2E5B1E0E.dip0.t-ipconnect.de)
L448[14:10:43] <PaleoCrafter> apparently 0.99 is still too close to 1 xD
L449[14:10:51] <ghz|out> unless that's the cause :P
L450[14:11:00] <PaleoCrafter> hm?
L451[14:11:10] <parzivail> try removing the scale
L452[14:11:17] <ghz|out> I mean maybe it takes "too long" or whatever
L453[14:11:19] <parzivail> see if the scale is the issue itself
L454[14:11:23] <PaleoCrafter> nah, the clip can't handle 1s
L455[14:11:51] <PaleoCrafter> it does t - floor(t) to normalize the progress to a 0..1 space
L456[14:12:25] <PaleoCrafter> if I scale by 0.9, I don't get any flickering
L457[14:12:33] ⇨ Joins: Lynndis (Lynndis!~Lynn@c-75-71-231-133.hsd1.co.comcast.net)
L458[14:12:53] <parzivail> ah, that's because 1 - floor(1) is 0, which i assume is the original state of the animation
L459[14:12:58] <PaleoCrafter> yep
L460[14:13:01] <Commoble> aye
L461[14:13:14] <ghz|out> ewh.
L462[14:13:17] <parzivail> try using another method to normalize, like dividing t by the length or soemthing
L463[14:13:19] <parzivail> something*
L464[14:13:25] <ghz|out> hmmm
L465[14:13:28] <PaleoCrafter> I'm not controlling the normalization ^^
L466[14:13:36] <PaleoCrafter> but I've already found a ton to PR for the animation system xD
L467[14:13:37] <parzivail> who is?
L468[14:13:41] <ghz|out> can you set it to automatically move to a new animation state after it's done with that one?
L469[14:13:55] <PaleoCrafter> that's what the animation state machine is doing, yes
L470[14:14:12] <ghz|out> so, can't you move it to an animation state that has the "1s" frame repeated forever?
L471[14:14:33] <PaleoCrafter> that's what I'm doing :P
L472[14:14:41] <PaleoCrafter> the problem is that the transition animation hits the 1 frame
L473[14:14:48] <ghz|out> hmmm
L474[14:14:55] <ghz|out> then it isn't working the way I would expect :P
L475[14:15:02] <PaleoCrafter> well, it sorta kinda is
L476[14:15:06] <parzivail> is this state machine part of forge?
L477[14:15:09] <PaleoCrafter> yep
L478[14:15:34] <parzivail> gah, this is why i'm sticking with 1.7.10, it's all DIY
L479[14:15:50] <parzivail> don't have to wait for fixes for broken systems
L480[14:16:13] <Commoble> er, you can DIY things in 1.12 too
L481[14:16:15] <ghz|out> in exchange, every mod ends up slightly broken in a somewhat different way from the others
L482[14:16:16] <ghz|out> :P
L483[14:16:18] ⇦ Quits: Hunterz (Hunterz!~hunterz@62.182.234.189) (Read error: Connection reset by peer)
L484[14:16:35] <parzivail> <enter lex like the koolaid man to kick me for badmouthing his system>
L485[14:16:43] <ghz|out> and getting them all to behave correctly at the same time, is something hell would reject as "too extreme" :P
L486[14:16:55] * parzivail shrugs
L487[14:17:08] <Commoble> I DIY the spinny blades in this https://puu.sh/yPzH9/ff21e1e23d.webm
L488[14:17:11] <PaleoCrafter> I guess we could add a special case for when t == 1.0
L489[14:17:21] <ghz|out> IMO
L490[14:17:39] <ghz|out> the animation clip should support [0,1] just fine
L491[14:17:52] <ghz|out> ... when not looping
L492[14:17:53] <parzivail> seems like [0,1) right now though
L493[14:18:05] <ghz|out> so "1-floor(1)" should only apply if the clip is set to loop
L494[14:18:11] <parzivail> with the t-floor(t) system supporting that
L495[14:18:12] <ghz|out> if not, it should remain in the last state
L496[14:18:28] <PaleoCrafter> yeah
L497[14:18:37] <ghz|out> do the clips have a loop mode?
L498[14:18:46] <PaleoCrafter> they do, yes
L499[14:18:59] <ghz|out> iirc it's common for model animations to have "none, wrap-around, ping-pong"
L500[14:19:47] <PaleoCrafter> well, that ain't the case here :P
L501[14:19:52] <PaleoCrafter> it's none and wrap-around, pretty much
L502[14:19:58] <PaleoCrafter> see MBJointClip
L503[14:20:02] <ghz|out> so floor should only be used in wrap-around mode, and not the others :P
L504[14:20:24] <ghz|out> in the other modes, clamp(value, 0, 1)
L505[14:21:02] <ghz|out> yeah
L506[14:21:28] <ghz|out> if (loop) time -= Math.floor(time); else time = MathHelper.clamp(time,0,1)
L507[14:21:29] ⇦ Quits: moony (moony!~moony@tx-76-4-59-100.dhcp.embarqhsd.net) (Ping timeout: 194 seconds)
L508[14:21:35] <PaleoCrafter> eh...
L509[14:21:52] <ghz|out> I mean that's what I would do :P
L510[14:21:59] <PaleoCrafter> the passed in values aren't guaranteed to be out of [0,1] in non-looping mode
L511[14:22:20] <ghz|out> ??
L512[14:22:34] <PaleoCrafter> like, you could also pass values from [2,3]
L513[14:22:37] <ghz|out> time seems to be assumed to be 0..1
L514[14:23:01] <ghz|out> int length = loop ? var.samples.length : (var.samples.length - 1);
L515[14:23:01] <ghz|out> float timeScaled = time * length;
L516[14:23:18] <PaleoCrafter> well, that's after the time -= floor(time) line :P
L517[14:23:28] <ghz|out> yes
L518[14:23:33] <ghz|out> so it assumes that it will always be 0..1
L519[14:23:37] <PaleoCrafter> yeah, *there*
L520[14:23:38] <ghz|out> if you pass 3.5
L521[14:23:44] <ghz|out> it means 0.5 in the third loop
L522[14:23:47] <ghz|out> the progress is still 0.5
L523[14:24:00] <PaleoCrafter> but you can pass 3.5 without looping
L524[14:24:08] <ghz|out> then it SHOULD stay in the last frame
L525[14:24:09] <ghz|out> forever
L526[14:24:43] ⇦ Quits: Ipsis (Ipsis!~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 383 seconds)
L527[14:25:04] <ghz|out> note that it clamps the time right after that
L528[14:25:41] <parzivail> is there a correct way to store a reference to another entity in NBT? i can save but not load UUIDs from NBT between worldloads. it's like the UUIDs aren't persistent?
L529[14:25:52] <ghz|out> and the time value isn't used anywhere else
L530[14:25:58] <ghz|out> so even if you just cancel the floor
L531[14:26:02] <ghz|out> it still ends up clamped
L532[14:26:05] <PaleoCrafter> I'm talking about the callers, though
L533[14:26:05] <ghz|out> that said
L534[14:26:08] <ghz|out> the clamp is meaningless
L535[14:26:19] <ghz|out> since there's already another one there
L536[14:26:25] <ghz|out> so, if (loop) time -= Math.floor(time);
L537[14:26:33] <ghz|out> without the "else" part, would do exactly the same as what I said
L538[14:26:55] <PaleoCrafter> *assuming* time is in [0,1], yes
L539[14:27:05] <ghz|out> yes, because that's what makes sense
L540[14:27:52] <ghz|out> wait, something just clicked
L541[14:28:00] <ghz|out> can a clip with loop=false
L542[14:28:21] <ghz|out> be used to play 3.5 loops by specifying it has to run for 3.5 times the animation length?
L543[14:28:35] <ghz|out> because the code doesn't feel that way
L544[14:28:39] <ghz|out> but people might abuse it
L545[14:28:44] <PaleoCrafter> you can use it that way, yes
L546[14:28:54] <ghz|out> this line
L547[14:28:54] <ghz|out> int length = loop ? var.samples.length : (var.samples.length - 1);
L548[14:29:00] <PaleoCrafter> there's nothing higher up the pipeline that would restrict it
L549[14:29:01] <ghz|out> makes me fairly certain it's NOT supposed to be used that way
L550[14:29:27] <ghz|out> since the condition reads in a way that expects non-looping "1.0" to be the last frame of the animation
L551[14:29:32] <ghz|out> instead of the first frame of the next loop
L552[14:29:39] <ghz|out> meaning a non-looping 3.5x clip
L553[14:29:48] <ghz|out> would be intrinsically different than a looping 3.5x clip
L554[14:30:41] <ghz|out> so I strongly believe, anyone using values > 1 in a non-looping clip, and expecting it to wrap around
L555[14:30:47] <ghz|out> is doing it wrong, and abusing a bug :P
L556[14:31:05] <PaleoCrafter> eh
L557[14:31:21] <Commoble> parzivail: Yes, check the call hierarchy for Entity.ridingEntity in eclipse, it should lead you to something
L558[14:31:37] <parzivail> good call, thanks
L559[14:31:55] <ghz|out> parzivail: regarding the UUIDs
L560[14:32:00] <ghz|out> the entity may not have been loaded YET
L561[14:32:22] <ghz|out> each of the entities should notify eachother
L562[14:32:25] <ghz|out> that they have been loaded
L563[14:32:39] <ghz|out> so that no matter the order, they will eventually find everyone else
L564[14:32:45] <parzivail> right
L565[14:33:13] <PaleoCrafter> god, that code really reads quite awfully: (int)Math.round(Math.floor(timeScaled)) xD
L566[14:33:28] <parzivail> why round a floor before inting it?
L567[14:33:34] <parzivail> it's already floored
L568[14:33:46] <ghz|out> someone had precision errors
L569[14:33:50] <ghz|out> and wanted really badly to fix them
L570[14:33:57] <parzivail> good lord
L571[14:34:05] <ghz|out> (I guess)
L572[14:34:08] <PaleoCrafter> lol
L573[14:34:13] <PaleoCrafter> both rounding and flooring are superfluous, since timeScaled is assumed to be positive anyways
L574[14:35:27] <ghz|out> and it could just be a float clamp, with a cast to int afterward...
L575[14:36:36] <parzivail> "assumed to be positive" yeah but neither floor nor round changes the sign
L576[14:37:31] <PaleoCrafter> floor always rounds to the next *smaller* integer, i.e. floor(-0.5) == -1, while (int) -0.5 == 0
L577[14:37:40] <PaleoCrafter> so flooring and casting to int behave differently for negatives
L578[14:37:56] <ghz|out> true
L579[14:38:00] <parzivail> good point
L580[14:38:13] <PaleoCrafter> but like I said, they're assumed to be positive, anyways
L581[14:38:22] <PaleoCrafter> otherwise other parts would explode
L582[14:39:26] <PaleoCrafter> anyways, I mitigated my issue by scaling the progress by 0.9 and adding an extra sample with the same value as the last one to the animations
L583[14:40:41] <PaleoCrafter> now I only need to sync the whole darn thing properly, add a block for the animation and implement an in-world recipe book >.>
L584[14:40:42] <PaleoCrafter> xD
L585[14:41:20] <parzivail> ghz|out: ridingEntity is saved to NBT in writeToNBT(NBTTagCompound) but is not read from NBT in readFromNBT(NBTTagCompound)?
L586[14:41:24] <PaleoCrafter> oh, right, and investigate why the hell the animated part isn't properly rotated after a reload ._.
L587[14:41:47] <parzivail> rather, should have tagged Commoble:
L588[14:44:35] <Commoble> in 1.12, it's read in AnvilChunkLoader
L589[14:45:59] <parzivail> ah, i see
L590[14:57:55] <Raycoms> My block edges are flimmering a bit, like an old pc, what could that be?
L591[14:59:43] <ghz|out> what?
L592[15:00:23] <Raycoms> flickering
L593[15:00:23] <Raycoms> sorry
L594[15:00:58] <immibis> Raycoms: z-fighting?
L595[15:01:08] <Raycoms> z-fighting?
L596[15:01:33] ⇦ Quits: h404bi (h404bi!~h404bi@119.129.112.62) (Read error: Connection reset by peer)
L597[15:01:52] <Commoble> z-fighting is when you have two planes occupying exactly the same space, and you see flickering between their two textures
L598[15:01:52] <immibis> it's when you have two polygons (quads/tris) drawn in exactly the same place
L599[15:02:21] <immibis> so small rounding errors basically cause randomness in which one gets considered in front. you usually see weird patterns of one then the other that flicker if you move the camera
L600[15:03:28] <Raycoms> Ah, probably it, is there a way to fix that in the code?
L601[15:03:40] <Commoble> don't generate two planes in the same place
L602[15:04:10] <Commoble> or if you have to, then don't draw a texture on one of them
L603[15:05:13] <Raycoms> I didn't create neither the model nor the texture
L604[15:05:48] <Raycoms> Our item and block modeler did that
L605[15:05:48] <immibis> then it's the fault of whoever did, presumably
L606[15:05:59] <immibis> tell them not to put overlapping things
L607[15:06:09] <Commoble> slap them and tell them to fix it, then
L608[15:06:11] <immibis> there's no good reason to do it anyway
L609[15:06:15] <immibis> so they shouldn't
L610[15:06:23] <Raycoms> Not sure if it is that, because it happens with all 6 models
L611[15:07:18] <immibis> do you have a screenshot?
L612[15:07:25] <Commoble> or a gif or a video
L613[15:08:05] <Raycoms> the screenshot doesn't show the flickering, and the video, damnit, would a jar work? =P
L614[15:09:10] <immibis> does it look like there's two different textures mangled together, or flickering between each other? if not then it probably isn't z-fighting
L615[15:09:51] <parzivail> if neither a video nor a screenshot shows the flickering (since both record exactly what's onscreen) are you sure it's not your monitor?
L616[15:10:51] <Raycoms> No, video would show it, but would need a lot of time to make and upload etc
L617[15:11:21] <Commoble> If you already have the recorder and editor handy and a place to upload it it'd take less than five minutes
L618[15:11:55] <parzivail> do you have Gyazo?
L619[15:12:01] <parzivail> it does gifs
L620[15:12:09] <Raycoms> No, I unfortunately don't
L621[15:12:42] <parzivail> it's free
L622[15:12:51] <Raycoms> for linux?
L623[15:14:27] <Raycoms> okay, I just noticed, it's z-fighting probably
L624[15:15:12] <parzivail> curl -s https://packagecloud.io/install/repositories/gyazo/gyazo-for-linux/script.deb.sh | sudo bash
L625[15:15:12] <parzivail> ; sudo apt-get install gyazo
L626[15:16:03] <Raycoms> https://cdn.discordapp.com/attachments/377848352684900356/396411049693413380/unknown.png
L627[15:16:17] <Raycoms> the two pixels on the left and right side of the top model thingy
L628[15:17:41] ⇦ Quits: Hanii (Hanii!~textual@2a00:23c4:484:d100:c844:c45e:3ac7:d17a) (Quit: Textual IRC Client: www.textualapp.com)
L629[15:18:57] <parzivail> https://gyazo.com/8136ea716fa409e135183577435b7108 i'm mounted, but i can still move? never had this happen before
L630[15:24:33] <ghz|out> [22:15] (parzivail): curl -s https://packagecloud.io/install/repositories/gyazo/gyazo-for-linux/script.deb.sh | sudo bash
L631[15:24:43] <ghz|out> isnt' that like... "how to get hacked" material
L632[15:24:44] <ghz|out> :P
L633[15:24:52] <Galaxtone> Does anyone know a download link to miner's basic that actually works?
L634[15:25:13] <PaleoCrafter> hm... is there a method that's called when a TE is "ready" nowadays?
L635[15:25:26] <PaleoCrafter> like... NBT is read and world is set
L636[15:25:31] <ghz|out> Galaxtone: doesn't seem like ith as been updated since 1.8
L637[15:25:31] <ghz|out> https://bedrockminer.jimdo.com/mods/miner-s-basic/
L638[15:25:40] <parzivail> ghz|out: *shrug* that was from the install page for that guy's port
L639[15:25:41] <Galaxtone> yah that's fine.
L640[15:26:18] <Galaxtone> but I checked and the adf.ly links lead to copy.com which has been removed as of jan 1, 2016
L641[15:26:30] <ghz|out> ah
L642[15:26:45] <ghz|out> this is probably the wrong place to ask, then
L643[15:26:57] <ghz|out> we tend to discourage people from following those tutorials
L644[15:27:12] <Galaxtone> well do you know anything like it?
L645[15:27:13] <ghz|out> since they have been shown to teach outdated, or even outright wrong things
L646[15:27:52] <ghz|out> not really, I haven't used many tutorials for modding
L647[15:27:52] <parzivail> what's Miner's Basic?
L648[15:27:57] <ghz|out> apparently a library
L649[15:28:04] <parzivail> huh
L650[15:28:06] <ghz|out> with helpers to make the tutorials easier to understand
L651[15:28:12] <Galaxtone> It's a library mod that adds utilities that help with modding
L652[15:28:39] <Galaxtone> *Insert strikethrough on the word "library"*
L653[15:28:42] <parzivail> in the long run it's just better to roll your own libs unless you're doing xmod compat with stuff like CoFH
L654[15:29:08] <ghz|out> "Miner's Basic" would be an awesome name for a dialect of the BASIC programming language
L655[15:29:23] <parzivail> maybe for an in-mc language
L656[15:29:34] <ghz|out> I was introduced to programming on an old Amstrad CPC464, using Amstrad BASIC 1.1
L657[15:29:37] <Galaxtone> It sounds like it adds BASIC into minecraft.
L658[15:29:51] <Galaxtone> that whould be cool
L659[15:29:57] <ghz|out> 5 REM This is a program
L660[15:30:09] <Commoble> the old redpower mod added FORTRAN into minecraft
L661[15:30:19] <ghz|out> 10 TAKE item, UP
L662[15:30:22] <Commoble> good times
L663[15:30:28] <ghz|out> 20 PLACE item, NORTH
L664[15:30:38] <ghz|out> 30 goto 10
L665[15:30:45] <ghz|out> ^ block placer implementation
L666[15:31:01] <parzivail> did you know that REM-style comments actually made programs slower? at runtime the interpreter still had to traverse that line, tokenize it, and move on to the next line
L667[15:31:03] <Galaxtone> I wonder if anyone's tried to make a redpower mod for newer versions of minecraft that has EXACTLY the same everything.
L668[15:31:17] <parzivail> it literally discouraged comments
L669[15:31:22] <ghz|out> heh
L670[15:31:23] <Commoble> project red is similar
L671[15:31:26] <ghz|out> Galaxtone: yes
L672[15:31:29] <ghz|out> dunno the progress
L673[15:31:38] <ghz|out> but there's at least 1 "active" project doin exactly that
L674[15:31:41] <parzivail> is redpower dead?
L675[15:31:47] <ghz|out> "yes"
L676[15:31:54] <parzivail> wasn't that team CoFH?
L677[15:31:58] <ghz|out> the author ragequit minecraft
L678[15:32:00] <Galaxtone> yah but it doesnt have "everything" and doesnt even have compatibility with supported mods after 1.7.10
L679[15:32:06] <ghz|out> and decided to build a whole game around the redpower mechanics
L680[15:32:06] <Commoble> Eloraam got a job and a wife and a baby and left modding a long time ago
L681[15:32:36] <ghz|out> then we got Project Red, which was inspired on it
L682[15:32:37] <Galaxtone> oh really? ghz, what's it called?
L683[15:32:50] <ghz|out> and BluePower that tried to make it more faithful to the original
L684[15:32:56] <ghz|out> Galaxtone: it was meant to be called "RedPower" iirc :P
L685[15:33:05] <ghz|out> I don't think it was released
L686[15:33:18] <Galaxtone> but was the game ever rele- oh, sad. that'd be cool
L687[15:33:39] <ghz|out> http://www.eloraam.com/
L688[15:33:43] <ghz|out> yep still the same 2015 post
L689[15:34:21] <parzivail> ghz|out: see that gyazo i posted?
L690[15:34:23] <Galaxtone> the same kinda-hard-to-read font
L691[15:35:05] <ghz|out> parzivail: sorry no idea how riding works
L692[15:35:14] <parzivail> ah, shame
L693[15:36:06] <Galaxtone> I wonder if anyone's trying to remake that standalone game
L694[15:37:56] <Galaxtone> Wait, then what's this about? https://twitter.com/TheRealEloraam/status/937934292277186561
L695[15:38:02] <Galaxtone> It's this month.
L696[15:38:14] <ghz|out> oh nice
L697[15:38:18] <ghz|out> so it's still in progress
L698[15:39:08] <Galaxtone> well it looked kinda-blocky in all the recent tweets with a snapshot of "progress"
L699[15:39:21] <Galaxtone> is that just the way his standalone game looks or is that minecraft?
L700[15:39:28] <Commoble> her
L701[15:39:38] <Galaxtone> ah right sorry it's been a long time
L702[15:39:57] <Commoble> and that's her game
L703[15:40:06] <Galaxtone> nice.
L704[16:00:46] ⇨ Joins: h404bi (h404bi!~h404bi@119.129.118.20)
L705[16:09:51] ⇦ Quits: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de) (Remote host closed the connection)
L706[16:10:09] ⇨ Joins: Kuraron (Kuraron!~DUX@HSI-KBW-46-223-0-70.hsi.kabel-badenwuerttemberg.de)
L707[16:38:37] ⇦ Quits: armed_troop (armed_troop!~armedtroo@pool-108-2-113-105.phlapa.fios.verizon.net) (Ping timeout: 200 seconds)
L708[16:44:52] <Raycoms> Strange
L709[16:45:02] <Raycoms> I get this here: https://cdn.discordapp.com/attachments/272390836577107968/396433365978578954/2017-12-29_20.23.30.png for my block when the smooth lightning is off
L710[16:47:18] <PaleoCrafter> https://streamable.com/bnvfd whelp
L711[16:52:20] <Raycoms> Yeah turning off smooth lightning messes my block up
L712[16:52:24] <Raycoms> is there a way to fix that?
L713[16:53:12] <PaleoCrafter> jebus, that's a fancy block :P
L714[16:53:28] <PaleoCrafter> but I couldn't tell you off the top of my head what would cause that
L715[16:56:15] <Raycoms> the block mainly behaves like an half slab
L716[17:00:30] <quadraxis> did you set useNeighborBrightness ?
L717[17:01:26] <Raycoms> no
L718[17:05:17] <quadraxis> well, that's something to start with
L719[17:05:53] <quadraxis> vanilla sets it for it's own blocks by looping through the initial block registry, it's weird
L720[17:06:49] <Raycoms> okay, ty, let me try
L721[17:11:47] ⇦ Quits: ben_mkiv (ben_mkiv!~ben_mkiv@p4FED560A.dip0.t-ipconnect.de) (Ping timeout: 194 seconds)
L722[17:15:21] <Raycoms> quadraxis worked perfectly
L723[17:28:58] ⇨ Joins: williewillus (williewillus!~williewil@cpe-24-28-24-13.austin.res.rr.com)
L724[17:29:02] <williewillus> !dcc
L725[17:35:37] ⇦ Quits: Hgreb (Hgreb!~Hgrebnedn@d8D872A6E.access.telenet.be) (Ping timeout: 194 seconds)
L726[17:49:28] ⇨ Joins: Hanii (Hanii!~textual@2a00:23c4:484:d100:69b2:d88d:9997:4df1)
L727[17:57:48] ⇦ Quits: Hanii (Hanii!~textual@2a00:23c4:484:d100:69b2:d88d:9997:4df1) (Quit: Textual IRC Client: www.textualapp.com)
L728[18:01:25] *** SatanicSanta is now known as Santa|afk
L729[18:04:58] ⇦ Quits: Raycoms (Raycoms!~Raycoms@2804:14d:baa0:9612:211:f974:13b9:be92) (Quit: Leaving)
L730[18:07:00] ⇦ Quits: williewillus (williewillus!~williewil@cpe-24-28-24-13.austin.res.rr.com) (Quit: Leaving)
L731[18:09:55] ⇨ Joins: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93)
L732[18:34:36] ⇨ Joins: lp (lp!~lp@66.109.211.167)
L733[18:35:55] <lp> is this channel OK for general discussion of forge and mods or just for support?
L734[18:36:51] <ghz|out> it's recommended to use the forums, but right now it's quite busy so no one will mind
L735[18:36:56] <ghz|out> eh
L736[18:36:58] <ghz|out> it's quite idle**
L737[18:37:47] <ghz|out> also this is for modding help, not even support :P
L738[18:37:47] <lp> ah
L739[18:38:14] ⇨ Joins: moony (moony!~moony@tx-76-4-59-100.dhcp.embarqhsd.net)
L740[18:52:54] ⇨ Joins: ScottehBoeh (ScottehBoeh!~ScottehBo@2.29.64.81)
L741[18:53:00] <ScottehBoeh> Hello, happy holidays
L742[18:53:14] <ScottehBoeh> What would be the best way of checking if a Player can see a block at a specific axis
L743[18:53:20] <ghz|out> hello, thanks :)
L744[18:53:37] <ghz|out> hmm not sure what you mean by specific axis
L745[18:53:45] <ghz|out> you mean if the player can see the east face?
L746[18:54:30] <ScottehBoeh> I want to cancel the rendering of a model at a specific X/Y/Z depending on if the player can actually see it or not
L747[18:54:49] <ScottehBoeh> Say there's a brick wall in the way, It wouldn't render the model
L748[18:55:25] <Commoble> Oooh, I remember doing this for a TESR
L749[18:55:36] <Commoble> can't remember offhand how
L750[18:55:41] <ScottehBoeh> Oh please do remember :(
L751[18:56:07] <quadraxis> have you thought about third-person camera views here?
L752[18:56:17] <ScottehBoeh> If third person I'll just cancel the check
L753[18:56:19] <ScottehBoeh> and have it render properly
L754[18:56:26] <Commoble> oh, might not even have been a TESR
L755[18:57:29] <ScottehBoeh> I remember canEntityBeSeen from wayyyy back
L756[18:57:38] <Commoble> try block.shouldSideBeRendered, it's a client-side function
L757[18:57:53] <Commoble> check BlockPortal for an example
L758[18:58:02] <ghz|out> that won't update dynamically, though
L759[18:58:11] <ghz|out> onyl when a neighbouring block is updated
L760[18:58:25] <ghz|out> or someone requires a "re-meshing" of the chunk
L761[18:58:29] <ghz|out> requests*
L762[18:58:29] <quadraxis> that just prevents rendering the 'inside' faces of transparent/translucent blocks
L763[18:58:40] <Commoble> are blocks even rendered when you're not looking at them
L764[18:58:45] <ghz|out> per-chunk
L765[18:58:52] <ghz|out> or rather
L766[18:58:56] <ghz|out> per sub-mesh
L767[18:59:07] <quadraxis> 16^3 sections
L768[18:59:08] <ScottehBoeh> I could create a raytrace
L769[18:59:11] <quadraxis> for block models
L770[18:59:17] <quadraxis> which are culled
L771[18:59:19] <ghz|out> there's also the cave stuff
L772[18:59:47] <ghz|out> where it tries to skip drawing the inside of a cave if it's not visible from the current location
L773[19:00:02] <ghz|out> but I don't know how that works exactly
L774[19:00:06] <ghz|out> either way
L775[19:00:14] <ghz|out> ScottehBoeh: is your block a TESR, or a static model?
L776[19:00:20] <ScottehBoeh> TESR
L777[19:00:25] <ghz|out> okay then
L778[19:00:28] <ghz|out> since you are in the client
L779[19:00:40] <ScottehBoeh> Can't I raytrace from player to the te? If it returns null I cancel rendering?
L780[19:00:43] <ghz|out> you could in theory raytrace
L781[19:00:55] <ScottehBoeh> (or return before rendering I mean)
L782[19:01:00] <ghz|out> if it returns null, *or another block*
L783[19:01:01] <ghz|out> but
L784[19:01:05] <ghz|out> that might not be too fast
L785[19:01:12] ⇨ Joins: Doty1154 (Doty1154!~Doty1154@2601:648:8000:134f:1940:fb24:c30f:f3d5)
L786[19:01:13] <ScottehBoeh> I suppose
L787[19:01:15] <ghz|out> imagine one raytrace per block
L788[19:01:22] <ghz|out> per frame
L789[19:01:24] <Commoble> and it'd be more than one raytrace per block too
L790[19:01:28] <ghz|out> for each instance of your block
L791[19:01:46] <Commoble> because sometimes one side will be visible and the other won't be and vice-versa
L792[19:01:46] <ghz|out> a more reasonable approach would be occlusion queries
L793[19:01:58] <ghz|out> where you ask the GPU if a certain pixel would be drawn or not
L794[19:02:07] <ghz|out> but those aren't the fastest thing ever, either
L795[19:02:21] <ghz|out> eh I mean
L796[19:02:32] <ghz|out> where you ask the gpu HOW MANY pixels would be drawn for a drawing command
L797[19:03:02] <ghz|out> (zero/any/all)
L798[19:09:28] <ghz|out> https://github.com/MinecraftForge/MinecraftForge/pull/4633#issuecomment-354519062
L799[19:10:17] <ghz|out> ^ opinions welcome :P
L800[19:21:41] <ScottehBoeh> Eyyy
L801[19:21:52] <ScottehBoeh> I've managed to optimize players a bit
L802[19:21:53] <ScottehBoeh> https://imgur.com/a/8uAVU
L803[19:22:05] <ScottehBoeh> I'm going to see what else I can do
L804[19:33:20] ⇦ Quits: Commoble (Commoble!~Commoble@mnpl-04-3331.dsl.iowatelecom.net) (Quit: Leaving)
L805[19:39:06] ⇦ Quits: Unh0ly_Tigg (Unh0ly_Tigg!~Unh0ly_Ti@c-24-21-196-226.hsd1.or.comcast.net) (Quit: Leaving)
L806[19:39:52] ⇨ Joins: p455w0rd (p455w0rd!p455w0rd@c-98-220-249-33.hsd1.in.comcast.net)
L807[19:48:50] ⇨ Joins: sinkillerj (sinkillerj!~sinkiller@67.238.190.99)
L808[19:53:00] *** PaleoCrafter is now known as PaleOff
L809[20:15:34] ⇨ Joins: Commoble (Commoble!~Commoble@mnpl-04-3331.dsl.iowatelecom.net)
L810[20:41:03] <Keridos> where has projectiles setTHrowableHeading gone?
L811[20:47:09] <quadraxis> ask the bot
L812[20:47:10] <quadraxis> !mh setThrowableHeading
L813[20:48:01] <Corosus> i think it got renamed to the new wonderfull 'shoot' name
L814[20:51:24] <kashike> wheee, that was fun
L815[20:51:44] <Keridos> yeah seems to be that
L816[20:51:59] <Keridos> and i get a weird crash after updating to 2576 forge on my mod
L817[20:52:14] <Keridos> https://gist.github.com/DeadSix27/49dbeeccb468c50184c4ed82aa167b78
L818[20:52:24] <Keridos> any idea what that might be caused by?
L819[20:52:52] <quadraxis> something like this
L820[20:52:53] <quadraxis> https://github.com/BluSunrize/ImmersiveEngineering/issues/2672
L821[20:52:54] <Corosus> i recal earlier today someone said forge became less forgiving about incorrect models, i dont have specifics on whats wrong with a model to cause that tho
L822[20:54:30] ⇦ Quits: KGS (KGS!~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout: 186 seconds)
L823[20:54:43] <Corosus> ah, need to update to an even newer forge i guess?
L824[20:54:58] <quadraxis> no
L825[20:55:18] <quadraxis> you need to not return null from IModel.getDefaultState
L826[20:55:24] <Corosus> ahh
L827[20:55:58] <quadraxis> the even newer forge catches the error and uses the missing model
L828[20:56:07] <quadraxis> rather than a full crash
L829[20:56:22] <Corosus> ahh
L830[21:02:46] ⇨ Joins: armed_troop (armed_troop!~armedtroo@pool-108-2-113-105.phlapa.fios.verizon.net)
L831[21:03:39] ⇦ Quits: Nedelosk (Nedelosk!~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
L832[21:07:13] <Keridos> what if my model does not even use the state
L833[21:07:16] <Keridos> in its bake function
L834[21:09:17] <Commoble> still needs a default state, I'd think
L835[21:14:08] <Keridos> thanks was pretty easy
L836[21:14:13] <Keridos> just deleting the return null
L837[21:14:18] <Keridos> the interface has a default method
L838[21:14:48] * Commoble scratches head
L839[21:28:16] ⇦ Quits: Commoble (Commoble!~Commoble@mnpl-04-3331.dsl.iowatelecom.net) (Quit: Leaving)
L840[21:38:28] <Corosus> how does one build their mod against another mods api and other apis if those apis and the mods that provide them use different mcp mappings? im new to this whole 'use peoples api' game
L841[21:40:42] ⇦ Quits: ScottehBoeh (ScottehBoeh!~ScottehBo@2.29.64.81) (Quit: Leaving)
L842[21:45:56] <parzivail> i believe you have to use the same mappings for it to work.
L843[21:46:12] <parzivail> that's the way it went for me using CoFH Core
L844[21:46:17] <Corosus> what if i wanted to build against 2 apis, and those 2 used 2 different mappings?
L845[21:46:47] * parzivail scratches head
L846[21:47:05] <parzivail> i'm... not sure
L847[21:47:09] <parzivail> never been there
L848[21:47:43] <Corosus> i guess i could track down that mcp mapping updater/changer tool and run it on each source so that they match, and use those modified sources for my own purposes which should work fine in deobf'd production
L849[21:48:06] <Corosus> not sure how well the tool works, or what it was called
L850[21:48:12] <parzivail> as long as they compile down to the same thing it should work fine
L851[21:48:15] <Corosus> ye
L852[21:48:35] <parzivail> or, if the APIs are open source, you could compile them yourself
L853[21:49:41] <Corosus> heh, i guess i could ignore the errors, and every time i want to test, do a full gradle build
L854[21:50:11] <parzivail> As Long as it Compiles (TM)
L855[21:50:47] <parzivail> that sounds painfully inconvenient though
L856[21:50:57] <Corosus> for sure
L857[21:51:04] <parzivail> are you POSITIVE you need both APIs? which are they?
L858[21:51:36] <Corosus> im just theorizing scenarios, but atm my weather2 mod does use a different mapping than tough as nails source, so thats a slight annoyance
L859[21:52:25] <Corosus> my mappings are pretty old so i might just update my own mappings to its mappings and be good enough
L860[21:52:38] <parzivail> best i could figure is to ask the authors for the api src
L861[21:52:46] <Corosus> its open source, so thats np
L862[21:53:20] <Corosus> though there is another mod that does seasons i might wanna try and do compat with so bam, multiple apis
L863[21:53:21] <parzivail> or, (not speaking for the ethics) decompile the mod and recompile manually
L864[21:53:23] <Corosus> we'll see
L865[21:53:25] <parzivail> had to do that a few times
L866[21:53:37] <parzivail> that all makes sense to me
L867[21:53:38] <Corosus> heheh
L868[21:54:37] <parzivail> i recall meeting you at minecon last year, btw. loved the panel
L869[21:54:50] <Corosus> oh we did? neet!
L870[21:54:52] <Corosus> thanks :D
L871[21:55:42] <parzivail> it was the modding panel with lex, dire, razzle and all them
L872[21:56:07] <parzivail> pretty sure
L873[21:56:21] <Corosus> mmmm i think that was the general modding one, both were similar for people give or take 2 heh
L874[21:56:25] <Corosus> hard to remember which was which
L875[21:57:40] <parzivail> whichever one cojo took the group selfie :P
L876[21:58:04] <Corosus> ahhhhhh its all such a blur
L877[21:58:41] <parzivail> surprised they didn't have a minecon this year
L878[21:58:49] <parzivail> physically, at least
L879[21:59:13] <Corosus> im just glad i got to go to one before it died forever
L880[22:00:06] <parzivail> yeah. wondering if it has something to do with the msft merger
L881[22:00:36] <Corosus> probably, i think it was mostly a financial choice
L882[22:00:50] <parzivail> shame
L883[22:01:25] <parzivail> i decided to go since i'd gotten into modding, glad i managed to get tickets for last year
L884[22:01:35] <Corosus> :D
L885[22:02:04] <illy|Laptop> evening o/
L886[22:02:50] <parzivail> still in awe about how popular mods get, yours, ichun, vazkii's
L887[22:03:07] <parzivail> barely hit 300k in the 2 years i had mine o.o
L888[22:03:25] <parzivail> dl's*
L889[22:03:47] <parzivail> evenin \o
L890[22:05:39] <illy|Laptop> def registerItemBlock(blk:Block) {
L891[22:05:47] <parzivail> Scala?
L892[22:05:49] <illy|Laptop> >.>
L893[22:05:50] <illy|Laptop> yes
L894[22:06:20] <Corosus> :> <3
L895[22:06:32] <Corosus> i got lucky i guess, people like things that spin and wreak things
L896[22:06:43] <Corosus> and ive been at it since the dawn of modding so it was easier to get noticed i guess
L897[22:07:02] <parzivail> that's a good point
L898[22:07:15] <parzivail> it's harder to reach your target audience now too
L899[22:07:25] <parzivail> there're just so many mods
L900[22:07:40] <illy|Laptop> ah back in the days before MCP when men were men and decompiling was pain and class patching was a pain
L901[22:08:05] <Corosus> still plenty of room in adventuring / entity mods imo, but mostly everyone prefers dem fancy factory building mods these days heh
L902[22:08:06] <parzivail> i remember putting in modded .CLASS files into the jar with 7zip
L903[22:08:39] <Corosus> back in my day, we had to memorized 2 character classnames and edit source files uphill both ways in the snow
L904[22:08:46] <parzivail> that's actually the target market for my previous (PSWM) and pet project (PSWG) star wars mods
L905[22:09:00] <parzivail> exploration and immersion
L906[22:09:12] <Corosus> \o/
L907[22:09:32] <illy|Laptop> yeah but entity models are a pain... well models are a pain
L908[22:09:58] <parzivail> had to kill off PSWM because we had so much content that it was impossible to update as frequently as forge did
L909[22:10:00] <Corosus> yeah the vanilla system is bad enough that anyone really serious about it basically has to make their own system for it
L910[22:10:07] * illy|Laptop hates 3D models and rendering.... why and a I doing this again
L911[22:10:07] <parzivail> and minecraft did
L912[22:10:22] <parzivail> i love OpenGL as a system
L913[22:10:41] <Corosus> yeah.... the endless porting really makes or breaks people/mods
L914[22:10:48] <parzivail> i'm also eccentric
L915[22:11:15] <parzivail> as soon as i couldn't port over our a) rendering and b) worldgen system, i called quits
L916[22:11:45] <illy|Laptop> welp thats the contract we signed when we started modding :P
L917[22:11:58] <Corosus> though entity rendering hasent changed much in so long, the rest though.... egh
L918[22:12:04] <parzivail> we had over 60 million blocks in schematic-based structures that we couldn't reimplement with the new blockstate system (long story) and rendering for our lightsaber customization system wreaked havoc
L919[22:12:09] <Corosus> oh god
L920[22:12:09] <Corosus> rip
L921[22:12:18] <illy|Laptop> collection.Javaconversons._
L922[22:12:22] <illy|Laptop> damn it
L923[22:13:01] <parzivail> it was then i said "screw it, i'm staying on 1.7.10 and just making everything again but better"
L924[22:13:13] <parzivail> and here we are
L925[22:13:55] <illy|Laptop> meh I want to play my mod with the mods that are current so I updooted :P
L926[22:14:07] <parzivail> it's nice over here, i made a binary model loader that supports the Jedi Academy and Jedi Outcast 2 model formats
L927[22:14:40] <parzivail> https://gyazo.com/13ea2aef3edefc1da6d30d984db264ce
L928[22:16:49] ⇨ Joins: McJty (McJty!~jorrit@ptr-9197ufovds9vpwg2k0c.18120a2.ip6.access.telenet.be)
L929[22:18:03] ⇨ Joins: Ordinastie (Ordinastie!~Ordinasti@bronyville.me)
L930[22:21:19] <Corosus> a wise bird tells me there is a magical solution to my api problem, involving deobfCompile
L931[22:48:13] ⇦ Quits: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93) (Ping timeout: 200 seconds)
L932[22:48:51] ⇨ Joins: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93)
L933[23:00:10] ⇦ Quits: Lathanael|Away (Lathanael|Away!~Lathanael@p54960160.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L934[23:01:37] ⇨ Joins: Lathanael|Away (Lathanael|Away!~Lathanael@p549601EB.dip0.t-ipconnect.de)
L935[23:16:39] ⇦ Quits: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93) (Ping timeout: 194 seconds)
L936[23:26:11] ⇦ Quits: moony (moony!~moony@tx-76-4-59-100.dhcp.embarqhsd.net) (Ping timeout: 194 seconds)
L937[23:47:09] ⇨ Joins: SparkVGX (SparkVGX!~SparkVGX@121.99.164.93)
<<Prev Next>> Scroll to Top