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.
This commit is contained in:
notevil
2026-04-22 03:16:14 +02:00
parent bdbd429bdf
commit 1cef57a472
23 changed files with 508 additions and 45 deletions

View File

@@ -49,17 +49,9 @@ public class HumanoidMesh extends SkinnedMesh {
}
public AssetAccessor<? extends SkinnedMesh> getHumanoidArmorModel(EquipmentSlot slot) {
switch (slot) {
case HEAD:
return Meshes.HELMET;
case CHEST:
return Meshes.CHESTPLATE;
case LEGS:
return Meshes.LEGGINS;
case FEET:
return Meshes.BOOTS;
default:
return null;
}
// 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;
}
}

View File

@@ -0,0 +1,55 @@
/*
* 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.transformer;
import java.util.List;
import java.util.function.Supplier;
import net.minecraft.client.model.geom.ModelPart;
import com.tiedup.remake.rig.math.OpenMatrix4f;
import com.tiedup.remake.rig.mesh.Mesh;
import com.tiedup.remake.rig.mesh.MeshPartDefinition;
/**
* Stub RIG Phase 0 — le transformer complet EF (HumanoidModel → SkinnedMesh
* runtime conversion) n'est pas porté : TiedUp utilise exclusivement GLB +
* JSON EF pour la définition des meshes. Seule la record
* {@link VanillaMeshPartDefinition} est conservée, car référencée par
* {@code JsonAssetLoader} pour instancier les parts nommées.
*
* <p>Phase 2 : décider si on fork le transformer pour garder la compat runtime
* avec les modèles vanilla (armor rendering), ou si on reroute vers GLB only.</p>
*/
public class VanillaModelTransformer {
public record VanillaMeshPartDefinition(
String partName,
Mesh.RenderProperties renderProperties,
List<String> path,
OpenMatrix4f invertedParentTransform,
ModelPart root
) implements MeshPartDefinition {
public static MeshPartDefinition of(String partName, Mesh.RenderProperties renderProperties) {
return new VanillaMeshPartDefinition(partName, renderProperties, null, null, null);
}
public static MeshPartDefinition of(String partName) {
return new VanillaMeshPartDefinition(partName, null, null, null, null);
}
public static MeshPartDefinition of(String partName, List<String> path, OpenMatrix4f invertedParentTransform, ModelPart root) {
return new VanillaMeshPartDefinition(partName, null, path, invertedParentTransform, root);
}
@Override
public Supplier<OpenMatrix4f> getModelPartAnimationProvider() {
return () -> null;
}
}
}