Core data model du rig EF extractible compile désormais cleanly.
Changements clé :
1. AccessTransformer wiring (-80 errors)
- Copie EF accesstransformer.cfg dans resources/META-INF/
- Uncomment accessTransformer = file(...) dans build.gradle
- Débloque l'héritage des package-private RenderType.CompositeState +
RenderType.CompositeRenderType + RenderType.OutlineProperty nécessaires
à TiedUpRenderTypes.
2. Stubs compat rendering Phase 2
- PatchedEntityRenderer<E,T,M,R> : type param 4 pour PrepareModelEvent
- RenderItemBase : type marker pour PatchedRenderersEvent.RegisterItemRenderer
- LayerUtil + LayerProvider : interface fonctionnelle 5-params pour RegisterResourceLayersEvent
- PlayerPatch<T extends Player> : extends LivingEntityPatch
- ToolHolderArmature interface : leftTool/rightTool/backToolJoint()
3. Stubs compat combat Phase 2+
- AttackResult + ResultType enum : utilisé comme type pour StateFactor ATTACK_RESULT
- TrailInfo record : stubbé avec playable=false → particle trail jamais émis
- AttackAnimation.Phase.hand = InteractionHand.MAIN_HAND
- AttackAnimation.JointColliderPair : stub pour instanceof check
- AttackAnimation.getPhaseByTime(float) : retourne Phase neutre
- ActionAnimation.correctRootJoint() : no-op Phase 0
- ActionAnimation.BEGINNING_LOCATION + INITIAL_LOOK_VEC_DOT re-exposés comme AnimationVariables
4. Physics types alignés
- InverseKinematicsProvider extends SimulationProvider<...>
- InverseKinematicsSimulator implements PhysicsSimulator<Joint, ...>
- InverseKinematicsObject implements SimulationObject<...>
- InverseKinematicsBuilder extends SimulationObject.SimulationObjectBuilder
- ik.bake() signature : (Object, Object, boolean, boolean) conforme StaticAnimation usage
5. Mesh/compute stubs
- ComputeShaderSetup.TOTAL_POSES + TOTAL_NORMALS : OpenMatrix4f[MAX_JOINTS] pool
- ComputeShaderSetup.MeshPartBuffer inner class + destroyBuffers()
- ComputeShaderProvider.supportComputeShader() = false
- VanillaModelTransformer.VanillaMeshPartDefinition record minimal
- HumanoidMesh.getHumanoidArmorModel() : return null (armor rendering Phase 2)
6. Fixes typage / API
- TiedUpRenderTypes.prefix("x").toString() x15 : ResourceLocation -> String
- AnimationManager Logger : log4j -> slf4j
- TiedUpRigConstants.logAndStacktraceIfDevSide 4-arg overload + Throwable instead of RuntimeException
- LivingEntityPatch.getReach(InteractionHand) overload
- StaticAnimation(boolean, String, AssetAccessor) 3-arg overload
Result : compileJava -> BUILD SUCCESSFUL
Prochain jalon : runClient + verify rig se charge sans crash.
58 lines
2.4 KiB
Java
58 lines
2.4 KiB
Java
/*
|
|
* Derived from Epic Fight (https://github.com/Epic-Fight/epicfight)
|
|
* by the Epic Fight Team, licensed under GPLv3.
|
|
* Modifications © 2026 TiedUp! Remake Contributors, distributed under GPLv3.
|
|
*/
|
|
|
|
package com.tiedup.remake.rig.mesh;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import net.minecraft.world.entity.EquipmentSlot;
|
|
import com.tiedup.remake.rig.asset.AssetAccessor;
|
|
import com.tiedup.remake.rig.mesh.MeshPartDefinition;
|
|
import com.tiedup.remake.rig.mesh.Meshes;
|
|
import com.tiedup.remake.rig.mesh.SkinnedMesh;
|
|
import com.tiedup.remake.rig.mesh.VertexBuilder;
|
|
|
|
public class HumanoidMesh extends SkinnedMesh {
|
|
public final SkinnedMeshPart head;
|
|
public final SkinnedMeshPart torso;
|
|
public final SkinnedMeshPart leftArm;
|
|
public final SkinnedMeshPart rightArm;
|
|
public final SkinnedMeshPart leftLeg;
|
|
public final SkinnedMeshPart rightLeg;
|
|
public final SkinnedMeshPart hat;
|
|
public final SkinnedMeshPart jacket;
|
|
public final SkinnedMeshPart leftSleeve;
|
|
public final SkinnedMeshPart rightSleeve;
|
|
public final SkinnedMeshPart leftPants;
|
|
public final SkinnedMeshPart rightPants;
|
|
|
|
public HumanoidMesh(Map<String, Number[]> arrayMap, Map<MeshPartDefinition, List<VertexBuilder>> parts, SkinnedMesh parent, RenderProperties properties) {
|
|
super(arrayMap, parts, parent, properties);
|
|
|
|
this.head = this.getOrLogException(this.parts, "head");
|
|
this.torso = this.getOrLogException(this.parts, "torso");
|
|
this.leftArm = this.getOrLogException(this.parts, "leftArm");
|
|
this.rightArm = this.getOrLogException(this.parts, "rightArm");
|
|
this.leftLeg = this.getOrLogException(this.parts, "leftLeg");
|
|
this.rightLeg = this.getOrLogException(this.parts, "rightLeg");
|
|
|
|
this.hat = this.getOrLogException(this.parts, "hat");
|
|
this.jacket = this.getOrLogException(this.parts, "jacket");
|
|
this.leftSleeve = this.getOrLogException(this.parts, "leftSleeve");
|
|
this.rightSleeve = this.getOrLogException(this.parts, "rightSleeve");
|
|
this.leftPants = this.getOrLogException(this.parts, "leftPants");
|
|
this.rightPants = this.getOrLogException(this.parts, "rightPants");
|
|
}
|
|
|
|
public AssetAccessor<? extends SkinnedMesh> getHumanoidArmorModel(EquipmentSlot slot) {
|
|
// RIG : Meshes.{HELMET,CHESTPLATE,LEGGINS,BOOTS} strippés en Phase 0 (armor rendering
|
|
// hors scope bondage V1). Re-implém Phase 2 si besoin de rendre armures vanilla
|
|
// sur le rig — pour l'instant retour null = armor rendering off.
|
|
return null;
|
|
}
|
|
}
|