Twilight Forest Fiery Armor Invisible with TA + CTM
TheCodex6824 opened this issue ยท 16 comments
There is currently an issue where twilight forest fiery armor doesn't render in the inventory. This is probably due to a bug / incompatibility in the model overrides TA uses for the morphic armor. A fix is being investigated.
So it looks like CTM is loading its own model for fiery armor specifically because it's marked as emissive in the texture metadata. Because CTM binds its model in a lowest priority event handler, it ends up wrapping my custom model for the armor. This is not a problem itself, but CTM seems to never call handleItemState on the wrapped model, so my custom model never gets a chance to delegate to the correct item model, and just returns an empty list of quads (aka renders nothing). Unfortunately, this probably needs to get fixed from the CTM side, if it's even maintained for 1.12 anymore. The only other solution is to remove the emissive property from the textures to make CTM leave the model alone, but this isn't a great solution.
@DoomRater @xemnes I know you saw this problem. Other than making a resource pack to disable the emissive textures, I don't have a good solution for you to make the armor render again for now.
Yeeikes. If it were just Twilight Forest in my pack, I'd grin and bear it until CTM got around to fixing it. But Extra Bit Manipulation uses items that now render invisible making its UI much less intelligible when I want to work on Cosmetic Armors. Unfortunately, I can't do much to pester CTM about it, except to note that it's been potentially known since 2018, and an attempt to fix it in 2019 happened.
how does one disable the emissive textures? i dont know much about the ctm mod, i know how to use optifines ctm though. i can probably even reapply the emissive with optifine.
Okay that looks a lot better. At first I took pics from the previous dev build I compiled without the changes, but once I realized what happened, and redownloaded and recompiled, the Extra Bit armors show up in JEI and the Cosmetic GUI once again. Well except for the bottom part. Then again, since it's a different case I should see if FoamFix might be getting in the way when I deduplicate models?
ok so found the mcmetas for the fiery plate, i deleted the ctm part of them and also noticed some other items use the emission property too so just deleted those mcmeta files as they only held ctm entries. i intend to reapply the emission of these with optifine and will upload them here if you want them.
im not sure how to fix the chisel armour though, im unsure what you did since you seem to be using some custom version.
I'm recompiling from master when I see code updates for testing purposes. Also present in the screenshot are some Armourer's Workshop items which haven't seen any side effects yet.
What mod is in charge of rendering the missing bottom part? And by bottom part, do you mean those tabs on the left side that are blank? And is it an actual item, or just rendered to look like it?
Yeeikes. If it were just Twilight Forest in my pack, I'd grin and bear it until CTM got around to fixing it. But Extra Bit Manipulation uses items that now render invisible making its UI much less intelligible when I want to work on Cosmetic Armors. Unfortunately, I can't do much to pester CTM about it, except to note that it's been potentially known since 2018, and an attempt to fix it in 2019 happened.
So extra bit manipulation is actually a different case and not CTM. That one was my fault, I didn't account for the possibility that the model returned might also be another armor model (which can happen with model variants). I didn't try making fancy chiseled armors, but the default ones in the creative menu work with the latest commit, so give that a try.
how does one disable the emissive textures? i dont know much about the ctm mod, i know how to use optifines ctm though. i can probably even reapply the emissive with optifine.
So the CTM emission is controlled in a .png.mcmeta file, in a "ctm" entry. So you just need to delete the CTM part of the file, whether in a resource pack or just editing the jar.
The screenshot is of a UI of Extra Bit Manipulation. This can only be brought up when you are wearing a chiseled armor that can have cosmetics added to it. On the bottom left tabs, there should be additional armor renders showing sub parts of the armor. For chest, there's the chest part, left arm, and right arm, since these are separate parts of the Minecraft model. My particular model is wearing the Voidseer Caster's Gauntlets as cosmetics on each arm as well as some additional slightly rotated golden bits to try and make them look like the Golden Gauntlets from Ocarina of Time.
Lemme get a shot of what that is supposed to look like from another instance that doesn't have Thaumic Additions in it:
yes, theyre all invisible for me too https://gfycat.com/DeadEmbellishedGreatdane
oh thought id show the progress im making to the optifine emission replacement whilst here https://i.imgur.com/V9N0HFs.jpeg
CTM does attempt to use the overrides, see Chisel-Team/ConnectedTexturesMod#89
Looks like you're doing the overrides the vanilla way. I was expecting everything to call handleItemState as the forge docs say that the only place applyOverride is called is from the default handleItemState implementation [1], but just adding the logic there as well should be fine. The only thing I'm concerned about is that item.hasCustomProperties() check here, as the items that I set the models on are not under my control and probably don't have any custom properties defined (as they probably aren't using custom models on their own). I can't check the mc code right now though, so it might be fine, I forget what the default value for that is.
Yes, it's not the most flexible way to do it, but I need to have the ability to manage the state and cache the result. A call to handleItemState can do anything. I can look into that check, it may not be necessary.
So both twilight forest and extra bit manipulation should be working now. Fiery armor should just work as I implemented enough to be compatible with CTM, and for extra bit manipulation I just excluded the inventory models (this is also in the config now).
Also @tterrag1098 you don't have to do anything with the check, as it seems like vanilla defines a few properties on all items. Technically an item could probably clear that list out, but I don't know of any cases where that would actually happen in practice.