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:
@@ -23,7 +23,7 @@ import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* 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.anim.client.property;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
|
||||
import net.minecraft.core.particles.SimpleParticleType;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
/**
|
||||
* Stub RIG Phase 0 — combat weapon particle trail. Pas utilisé dans TiedUp
|
||||
* (bondage, pas d'armes actives), mais on garde l'API typée pour JSON compat.
|
||||
* {@code deserialize} retourne toujours un trail neutre non-playable, donc
|
||||
* le block dans StaticAnimation est court-circuité (voir {@link #playable()}).
|
||||
*/
|
||||
public record TrailInfo(String joint, SimpleParticleType particle, boolean playable) {
|
||||
public static TrailInfo deserialize(JsonElement element) {
|
||||
return new TrailInfo("", null, false);
|
||||
}
|
||||
|
||||
public Vec3 start() { return Vec3.ZERO; }
|
||||
public Vec3 end() { return Vec3.ZERO; }
|
||||
public float startTime() { return 0.0F; }
|
||||
public float endTime() { return 0.0F; }
|
||||
}
|
||||
@@ -6,6 +6,10 @@
|
||||
|
||||
package com.tiedup.remake.rig.anim.types;
|
||||
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
import com.tiedup.remake.rig.anim.AnimationVariables;
|
||||
import com.tiedup.remake.rig.anim.AnimationVariables.IndependentAnimationVariableKey;
|
||||
import com.tiedup.remake.rig.anim.property.AnimationProperty.ActionAnimationProperty;
|
||||
import com.tiedup.remake.rig.armature.Armature;
|
||||
import com.tiedup.remake.rig.asset.AssetAccessor;
|
||||
@@ -19,6 +23,13 @@ import com.tiedup.remake.rig.asset.AssetAccessor;
|
||||
*/
|
||||
public class ActionAnimation extends MainFrameAnimation {
|
||||
|
||||
// Variables indépendantes propagées à MoveCoordFunctions (position de départ
|
||||
// en coord monde + produit scalaire lookVec initial pour lerp anim→world).
|
||||
public static final IndependentAnimationVariableKey<Vec3> BEGINNING_LOCATION =
|
||||
AnimationVariables.independent((animator) -> animator.getEntityPatch().getOriginal().position(), true);
|
||||
public static final IndependentAnimationVariableKey<Float> INITIAL_LOOK_VEC_DOT =
|
||||
AnimationVariables.independent((animator) -> 1.0F, true);
|
||||
|
||||
public ActionAnimation(float transitionTime, boolean isRepeat, String registryName, AssetAccessor<? extends Armature> armature) {
|
||||
super(transitionTime, isRepeat, registryName, armature);
|
||||
}
|
||||
@@ -34,4 +45,18 @@ public class ActionAnimation extends MainFrameAnimation {
|
||||
public <V> ActionAnimation addProperty(ActionAnimationProperty<V> property, V value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stub — LinkAnimation.modifyPose appelle ça pour aligner la root joint
|
||||
* en espace monde pendant la transition. No-op en TiedUp.
|
||||
*/
|
||||
public void correctRootJoint(
|
||||
com.tiedup.remake.rig.anim.types.LinkAnimation linkAnimation,
|
||||
com.tiedup.remake.rig.anim.Pose pose,
|
||||
com.tiedup.remake.rig.patch.LivingEntityPatch<?> entitypatch,
|
||||
float time,
|
||||
float partialTicks
|
||||
) {
|
||||
// no-op
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ package com.tiedup.remake.rig.anim.types;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.world.InteractionHand;
|
||||
|
||||
import com.tiedup.remake.rig.armature.Armature;
|
||||
import com.tiedup.remake.rig.asset.AssetAccessor;
|
||||
|
||||
@@ -44,13 +46,34 @@ public class AttackAnimation extends ActionAnimation {
|
||||
super(isRepeat, registryName, armature);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stub — MoveCoordFunctions appelle ça pour calculer la reach mid-anim.
|
||||
* On retourne toujours une Phase neutre (mainHand, pas de colliders),
|
||||
* donc le reach retombe sur {@code entitypatch.getReach(MAIN_HAND)}.
|
||||
*/
|
||||
public Phase getPhaseByTime(float elapsedTime) {
|
||||
return new Phase();
|
||||
}
|
||||
|
||||
/**
|
||||
* Phase d'attaque. Stub pour satisfaire {@code phase.getColliders()}
|
||||
* en JsonAssetLoader.
|
||||
* en JsonAssetLoader + {@code phase.hand} en MoveCoordFunctions.
|
||||
*/
|
||||
public static class Phase {
|
||||
public Object[] getColliders() {
|
||||
return new Object[0];
|
||||
public final InteractionHand hand = InteractionHand.MAIN_HAND;
|
||||
|
||||
public JointColliderPair[] getColliders() {
|
||||
return new JointColliderPair[0];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Stub — (Joint, Collider) pair pour les hitboxes combat. Non utilisé
|
||||
* en TiedUp, juste un placeholder typé pour que JsonAssetLoader:592 compile.
|
||||
*/
|
||||
public static class JointColliderPair {
|
||||
public com.tiedup.remake.rig.armature.Joint getFirst() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,6 +116,11 @@ public class StaticAnimation extends DynamicAnimation implements InverseKinemati
|
||||
this.filehash = getFileHash(this.resourceLocation);
|
||||
}
|
||||
|
||||
/* Resourcepack animations — transitionTime par défaut */
|
||||
public StaticAnimation(boolean isRepeat, String path, AssetAccessor<? extends Armature> armature) {
|
||||
this(TiedUpRigConstants.GENERAL_ANIMATION_TRANSITION_TIME, isRepeat, path, armature);
|
||||
}
|
||||
|
||||
/* Resourcepack animations */
|
||||
public StaticAnimation(float transitionTime, boolean isRepeat, String path, AssetAccessor<? extends Armature> armature) {
|
||||
super(transitionTime, isRepeat);
|
||||
|
||||
Reference in New Issue
Block a user