enchanted_outlines-0.1.6.jar
Curse Maven Snippet
What's new
Enchanted Outlines Changelog 🎨✨
v0.1.6 (2026-08-09)
⚔️ Fixed: Cataclysm Weapon Outline Compatibility (Mapping Table + Pre-Transform Classification)
- Issue: In a 240-mod pack, most Cataclysm weapons had no outlines (only Brontes Hammer worked); Void Assault Shoulder Cannon, Wrath of the Desert, etc. had their outlines rendered behind the player, invisible.
- Root cause 1 (field name mismatch → no outline): Cataclysm's
CMItemstackRendererstatic model field names don't follow the uniform<ITEM_ID_UPPERCASE>_MODELconvention:wither_assault_shoulder_weapon/void_assault_shoulder_weaponshare the abbreviationWASW_MODEL(notWITHER_/VOID_ASSAULT_SHOULDER_WEAPON_MODEL);wrath_of_the_desert(Wrath of the Desert) =WRATH_OF_DESERT_MODEL(missing_THE_from registry ID);soul_render(Soul Render) /the_annihilator(The Annihilator) =SOUL_RENDER/THE_ANNIHILATOR(no_MODELsuffix). Reflection couldn't find fields by convention name →findBewlrModelreturns null → outline completely missing.
- Root cause 2 (one-size-fits-all pre-transform → offset/behind): All Cataclysm items were using
translate(0.5,0.5,0.5)+scale(1,-1,-1)pre-transform, but bytecode inspection (Cataclysm 1.21.1-3.32) revealed Coral Spear / Coral Bardiche / Black Steel Round Shield / Azure Sea Stone Shield branches only havescale(1,-1,-1)(no centering translation) → outline gets an extra 0.5 offset, misaligned behind the body. - Fix:
OutlineRendereradded Cataclysm weapon precise adapter tableCATACLYSM_WEAPON_SPECS(item registry ID → model field name + texture field name + pre-transform category), covering 5 special field names + 4 pure-flip branches; unlisted weapons (Brontes Hammer etc.) still use generic<ID>_MODELconvention + centered flip, compatible with future versions.BewlrModeladded two new pre-transform types:CM_FLIP(purescale(1,-1,-1), for Coral Spear etc.) andCM_CENTER_FLIP_TOP(translate(0.5,1.5,0.5)+scale(1,-1,-1), for EMP / Altar / Anvil block-like items; auto-corrected by model class package.model.block., also fixes block-like BEWLR item outline Y-offset by 1 block).- Texture field reading: mapping table explicitly specifies (
SOUL_RENDERhas no_MODELsuffix, genericreplacecan't derive_TEXTURE, must be explicit).
🎨 Fixed: Compatible with neoforge:separate_transforms Multi-View Models (Resource Packs Changing 3D to 2D)
- Issue: After loading third-party community resource packs (e.g. XIMStudio), Cataclysm weapons in inventory changed from 3D to 2D, some 3D models got replaced → outlines completely disappeared.
- Root cause: Resource packs use
neoforge:separate_transformsloader to split items into multi-view sub-models (GUI/FIXED = 2D flatitem/generated, in-hand = 3Dbuiltin/entitybase). Its baked modelSeparateTransformsModel.Bakedhas three traps:isCustomRenderer()always returns false (doesn't delegate to base) → old outline never triggers BEWLR 3D branch;getQuads()returns base (builtin/entity placeholder) quads = empty geometry → outline has no vertices to draw → completely no outline;getTransforms()returnsNO_TRANSFORMS→ transform chain broken. Meanwhile the bodyItemRenderer.rendercallsmodel.applyTransform(context)before rendering to switch sub-models by view → body displays normally, outline can't get geometry. Violates the iron law: "match the outline to the actual render."
- Fix:
ItemRendererMixin/GuiGraphicsMixinnow also callsmodel.applyTransform(context, pose, leftHand)before outline rendering to get the same view sub-model as the body:- GUI/FIXED → 2D flat sub-model → flat outline (aligns with body icon);
- In-hand → 3D base → BEWLR 3D inflated shell (aligns with body in-hand).
Normal models'
applyTransformdefault implementation = originalgetTransforms().getTransform().apply(), behavior unchanged;isCustomRenderer()judgment based on sub-model.
May your outlines be ever colorful and perfectly aligned. 🌈⚔️
This mod has no additional files

