enchanted_outlines-0.1.7.jar
Curse Maven Snippet
What's new
Enchanted Outlines Changelog 🎨✨
v0.1.7 (2026-08-12)
⚔️ Fixed: Handheld Outlines Now Follow Better Combat Attack Animations (issue #2)
- Issue: When using Better Combat (including Punchy), enchanted outlines didn't follow the weapon's swing animation during attacks — the outline stayed at the vanilla static position while the animated weapon body moved away, creating a visible gap.
- Root cause: Better Combat uses PlayerAnimator to drive attack animations. The player's held item body rendering goes through
ItemInHandLayer.renderArmWithItem→ItemInHandRenderer.renderItem, with attack animation transforms (scale/translate/rotate) applied to the PoseStack beforerenderItemis called by PlayerAnimator. The old outline injected atItemRenderer.render(8-arg) HEAD — when PlayerAnimator version/path differences occurred (first-person THIRD_PERSON_MODEL mode: cancels vanilla first-person, renders via player entity + PlayerItemInHandLayer), the outline saw a different pose than the body → stayed at static position. - Fix: New
ItemInHandRendererMixin— moves player handheld outline earlier toItemInHandRenderer.renderItemHEAD. This injection point's pose is 100% consistent with the body (already includes Better Combat animation transforms). Outline draws first as underlay, body covers the center afterward — perfectly synced with the body. Also uses a static flag to letItemRendererMixinskip duplicate outline rendering at the 8-arg render HEAD for the same item (avoids "static outline + animated outline" double-drawing). - Coverage: First-person (both vanilla ItemInHandRenderer and PlayerAnimator PlayerItemInHandLayer converge here) and third-person (ItemInHandLayer). Dropped items / item frames (GROUND/FIXED) don't go through ItemInHandRenderer, still handled by ItemRendererMixin.
🔄 Fixed: Severe Rendering Errors After Multiplayer Disconnect/Reconnect (issue #1)
- Issue: First render after joining a server works fine, but after disconnecting from client/server and rejoining, rendering breaks badly; requires entering a singleplayer world first to "fix" it each time.
- Root cause: Render caches weren't cleared on "resource reload / world entry-exit" — joining a server (especially with server resource packs) triggers resource reload, TextureManager destroys all dynamic textures, but
worldOutlineRenderTypes/armorRenderTypesand other RenderType caches plusshieldModel/tridentModelproxy model caches were never cleared → old caches reference invalidated resources → outline renders in broken state. Entering singleplayer happened to trigger RegisterShadersEvent which partially cleared caches, "fixing" the symptom. - Fix:
OutlineRenderernew unified entryinvalidateCaches()— clears ALL caches (shape textures / brightness / RenderTypes / proxy models / geometry caches);setOutlineShader(resource reload callback) now usesinvalidateCaches();EnchantedOutlinesClientlistens to NeoForgeLevelEvent.Load(entering world) andClientPlayerNetworkEvent.LoggingOut(leaving server), clearing caches on world entry/exit too — covers the "direct connect to server without resource pack doesn't trigger resource reload" scenario.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

