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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user