Files
TiedUp-/src/main/java/com/tiedup/remake/rig/mesh/HumanoidMesh.java
notevil 1cef57a472 Phase 0 : compile SUCCESS (464 -> 0 errors)
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.
2026-04-22 03:16:14 +02:00

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;
}
}