WIP Phase 2.5 : fork render pipeline (PatchedEntityRenderer family)
Fork EF client renderer patched/entity/ → rig/render/, imports rewrités.
Nouveaux fichiers :
- render/PatchedEntityRenderer.java (~96 LOC, était stub 16 LOC) — base abstraite,
mulPoseStack + setArmaturePose + nameplate via mixin invoker
- render/PatchedLivingEntityRenderer.java (~230 LOC, EF 294 → stripped) — hot path
render, strippé du JSON customLayers loading + EntityDecorations (pas impl. côté
LivingEntityPatch TiedUp)
- render/PHumanoidRenderer.java (~95 LOC, EF 53 → adapté) — intermediate
biped, baby head scale, enregistre PatchedArmorLayer + PatchedItemInHandLayer
- render/TiedUpPlayerRenderer.java (~95 LOC, EF PPlayerRenderer 60 → adapté) —
dispatch slim/default (Meshes.ALEX vs BIPED), propage modelParts visible flags,
skip cape/bee/arrow layers (V3-REW-08/09)
- render/PatchedLayer.java (~55 LOC) — base no-op layer
- render/PatchedArmorLayer.java (~45 LOC) — stub no-op (V3-REW-04)
- render/PatchedItemInHandLayer.java (~45 LOC) — stub no-op (Phase 3)
- mixin/client/MixinEntityRenderer.java (~35 LOC) — invoker shouldShowName +
renderNameTag (EF verbatim)
- mixin/client/MixinLivingEntityRenderer.java (~30 LOC) — invoker isBodyVisible,
getRenderType, getBob
Modifs :
- resources/tiedup-rig.mixins.json : enregistre les 2 nouveaux mixins client
Dépendances stubbées :
- PatchedArmorLayer / PatchedItemInHandLayer no-op — "mangent" le layer vanilla
équivalent pour éviter double-rendu, mais ne dessinent rien. À implémenter
Phase 3 (armor : V3-REW-04 ; item-in-hand : tool joints GLB).
- EntityDecorations (color/light/overlay modifiers) strippées du render path —
le patch TiedUp n'expose pas encore cette API. Hurt/death overlay natifs
conservés. À rework si feature premium glow/tint NPC.
TODOs Phase 2.6 / Phase 3 :
- animated_layers/*.json datapack-driven loading (strippé du constructor) si
besoin futur
- PlayerItemInHandLayer (version player-spécifique, distincte de ItemInHandLayer
générique) pas encore mangée côté player → layer vanilla continue de draw
- ElytraLayer / CustomHeadLayer pas mangés (cohérent "on mange juste les layers
qui entrent en conflit avec le mesh skinné")
Surprise pendant le fork :
- ItemInHandLayer vanilla MC 1.20.1 exige M extends EntityModel<E> & ArmedModel,
pas HeadedModel comme PatchedItemInHandLayer EF 1.20.1 pouvait le suggérer
via ses anciennes versions. Alignement forcé sur ArmedModel.
- EF utilise 2 mixins @Invoker (MixinEntityRenderer / MixinLivingEntityRenderer)
pour accéder aux méthodes protected de vanilla — forkés verbatim dans
rig/mixin/client/.
Tests :
- ./gradlew compileJava : BUILD SUCCESSFUL
- ./gradlew test --tests "com.tiedup.remake.rig.*" : 15/15 GREEN
(TiedUpArmaturesTest 4 + GlbJointAliasTableTest 4 + GltfToSkinnedMeshTest 6 =
14 rig + 1 utilitaire)