WIP: stub ClientConfig + gameasset registries, strip Meshes mobs

Nouveaux stubs core :
- TiedUpAnimationConfig     — remplace yesman.epicfight.config.ClientConfig.
                              Flags animation/rendu, no-op pour combat.
- TiedUpRigRegistry         — remplace gameasset.Animations.EMPTY_ANIMATION +
                              gameasset.Armatures.ArmatureContructor.

Fichiers forkés additionnels (dépendances transitives découvertes) :
- anim/types/DirectStaticAnimation.java   (EMPTY_ANIMATION est un DirectStaticAnimation)
- event/InitAnimatorEvent.java            (postInit() forge event)
- event/EntityPatchRegistryEvent.java     (mod bus event pour register patches)

Strip combat :
- Meshes.java : retiré les 11 mob meshes (CreeperMesh, DragonMesh, VexMesh,
                WitherMesh, etc.) + armor + particle + cape. Garde BIPED
                et ALEX / BIPED_OLD_TEX / BIPED_OUTLAYER (variants joueur).
- Animator.playDeathAnimation : Animations.BIPED_DEATH (ARR asset) →
                                EMPTY_ANIMATION fallback.
- AnimationManager.apply : Armatures.reload() stripped (no-op, à rebrancher
                           Phase 2 sur TiedUpArmatures).
- ClientPlayerPatch.entityPairing : body entier strippé (combat skills
                                    Technician/Adrenaline/Emergency Escape).

sed global : ClientConfig.* → TiedUpAnimationConfig.*
sed global : Animations.EMPTY_ANIMATION → TiedUpRigRegistry.EMPTY_ANIMATION
sed global : Armatures.ArmatureContructor → TiedUpRigRegistry.ArmatureContructor

Résidus yesman.epicfight : 86 → 74 (-12)
Reste : physics (16) + network (13) + world combat (10) + particle (3) +
collider (2) + client misc (2) + skill (2). Tous combat-entangled,
demandent strip méthode par méthode.
This commit is contained in:
notevil
2026-04-22 00:53:42 +02:00
parent 324e7fb984
commit f0d8408384
19 changed files with 324 additions and 157 deletions

View File

@@ -60,8 +60,7 @@ import yesman.epicfight.api.data.reloader.SkillManager;
import com.tiedup.remake.rig.exception.AssetLoadingException;
import com.tiedup.remake.rig.util.InstantiateInvoker;
import com.tiedup.remake.rig.util.MutableBoolean;
import yesman.epicfight.gameasset.Animations;
import yesman.epicfight.gameasset.Armatures;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import com.tiedup.remake.rig.TiedUpRigConstants;
import yesman.epicfight.network.EpicFightNetworkManager;
import yesman.epicfight.network.client.CPCheckAnimationRegistryMatches;
@@ -172,7 +171,9 @@ public class AnimationManager extends SimplePreparableReloadListener<List<Resour
@Override
protected void apply(List<ResourceLocation> objects, ResourceManager resourceManager, ProfilerFiller profilerIn) {
Armatures.reload(resourceManager);
// RIG : Armatures.reload() (EF gameasset registry) retiré.
// TiedUpArmatures.reload() sera appelé ici en Phase 2 quand le registry
// sera créé. En Phase 0, no-op.
Set<ResourceLocation> registeredAnimation =
this.animationById.values().stream()
@@ -318,7 +319,7 @@ public class AnimationManager extends SimplePreparableReloadListener<List<Resour
} catch (Exception e) {
TiedUpRigConstants.LOGGER.warn("Failed at creating animation from server resource pack");
e.printStackTrace();
return Animations.EMPTY_ANIMATION;
return TiedUpRigRegistry.EMPTY_ANIMATION;
}
});

View File

@@ -14,7 +14,7 @@ import com.tiedup.remake.rig.anim.property.AnimationProperty.StaticAnimationProp
import com.tiedup.remake.rig.anim.types.DynamicAnimation;
import com.tiedup.remake.rig.anim.types.StaticAnimation;
import com.tiedup.remake.rig.asset.AssetAccessor;
import yesman.epicfight.gameasset.Animations;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import com.tiedup.remake.rig.TiedUpRigConstants;
import com.tiedup.remake.rig.patch.LivingEntityPatch;
@@ -27,7 +27,7 @@ public class AnimationPlayer {
protected AssetAccessor<? extends DynamicAnimation> play;
public AnimationPlayer() {
this.setPlayAnimation(Animations.EMPTY_ANIMATION);
this.setPlayAnimation(TiedUpRigRegistry.EMPTY_ANIMATION);
}
public void tick(LivingEntityPatch<?> entitypatch) {
@@ -152,7 +152,7 @@ public class AnimationPlayer {
}
public boolean isEmpty() {
return this.play == Animations.EMPTY_ANIMATION;
return this.play == TiedUpRigRegistry.EMPTY_ANIMATION;
}
@Override

View File

@@ -21,7 +21,7 @@ import com.tiedup.remake.rig.asset.AssetAccessor;
import com.tiedup.remake.rig.util.ParseUtil;
import com.tiedup.remake.rig.util.datastruct.TypeFlexibleHashMap;
import com.tiedup.remake.rig.util.datastruct.TypeFlexibleHashMap.TypeKey;
import yesman.epicfight.gameasset.Animations;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import yesman.epicfight.network.common.AnimationVariablePacket;
public class AnimationVariables {
@@ -111,7 +111,7 @@ public class AnimationVariables {
@SuppressWarnings("unchecked")
@Deprecated // Avoid direct use
public <T> void put(IndependentAnimationVariableKey<T> key, AssetAccessor<? extends StaticAnimation> animation, T value, boolean synchronize) {
if (animation == Animations.EMPTY_ANIMATION) {
if (animation == TiedUpRigRegistry.EMPTY_ANIMATION) {
return;
}
@@ -158,7 +158,7 @@ public class AnimationVariables {
@SuppressWarnings("unchecked")
public void removeAll(AnimationAccessor<? extends StaticAnimation> animation) {
if (animation == Animations.EMPTY_ANIMATION) {
if (animation == TiedUpRigRegistry.EMPTY_ANIMATION) {
return;
}
@@ -182,7 +182,7 @@ public class AnimationVariables {
@SuppressWarnings("unchecked")
@Deprecated // Avoid direct use
public void remove(IndependentAnimationVariableKey<?> key, AssetAccessor<? extends StaticAnimation> animation, boolean synchronize) {
if (animation == Animations.EMPTY_ANIMATION) {
if (animation == TiedUpRigRegistry.EMPTY_ANIMATION) {
return;
}

View File

@@ -21,7 +21,7 @@ import com.tiedup.remake.rig.anim.types.EntityState;
import com.tiedup.remake.rig.anim.types.StaticAnimation;
import com.tiedup.remake.rig.asset.AssetAccessor;
import com.tiedup.remake.rig.event.InitAnimatorEvent;
import yesman.epicfight.gameasset.Animations;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import com.tiedup.remake.rig.TiedUpRigConstants;
import com.tiedup.remake.rig.patch.LivingEntityPatch;
@@ -111,7 +111,10 @@ public abstract class Animator {
}
public void playDeathAnimation() {
this.playAnimation(this.livingAnimations.getOrDefault(LivingMotions.DEATH, Animations.BIPED_DEATH), 0);
// RIG : Animations.BIPED_DEATH (EF combat asset ARR) retiré.
// Fallback sur EMPTY_ANIMATION — TiedUp authored ses propres
// anims de mort Phase 4 et les binde via addLivingAnimation(DEATH, ...).
this.playAnimation(this.livingAnimations.getOrDefault(LivingMotions.DEATH, TiedUpRigRegistry.EMPTY_ANIMATION), 0);
}
public void addLivingAnimation(LivingMotion livingMotion, AssetAccessor<? extends StaticAnimation> animation) {

View File

@@ -15,7 +15,7 @@ import com.tiedup.remake.rig.anim.types.EntityState;
import com.tiedup.remake.rig.anim.types.LinkAnimation;
import com.tiedup.remake.rig.anim.types.StaticAnimation;
import com.tiedup.remake.rig.asset.AssetAccessor;
import yesman.epicfight.gameasset.Animations;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import com.tiedup.remake.rig.patch.LivingEntityPatch;
public class ServerAnimator extends Animator {
@@ -103,7 +103,7 @@ public class ServerAnimator extends Animator {
if (this.animationPlayer.isEnd()) {
if (this.nextAnimation == null) {
Animations.EMPTY_ANIMATION.putOnPlayer(this.animationPlayer, this.entitypatch);
TiedUpRigRegistry.EMPTY_ANIMATION.putOnPlayer(this.animationPlayer, this.entitypatch);
this.softPaused = true;
} else {
if (!this.animationPlayer.getAnimation().get().isLinkAnimation() && !this.nextAnimation.get().isLinkAnimation()) {

View File

@@ -44,7 +44,7 @@ import com.tiedup.remake.rig.anim.client.property.JointMask.BindModifier;
import com.tiedup.remake.rig.anim.client.property.JointMask.JointMaskSet;
import com.tiedup.remake.rig.anim.client.property.JointMaskEntry;
import com.tiedup.remake.rig.util.datastruct.TypeFlexibleHashMap;
import yesman.epicfight.gameasset.Animations;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import com.tiedup.remake.rig.TiedUpRigConstants;
import yesman.epicfight.network.common.AnimatorControlPacket;
import com.tiedup.remake.rig.patch.LivingEntityPatch;
@@ -267,7 +267,7 @@ public class ClientAnimator extends Animator {
@Override
public void playDeathAnimation() {
if (!this.getPlayerFor(null).getAnimation().get().getProperty(ActionAnimationProperty.IS_DEATH_ANIMATION).orElse(false)) {
this.playAnimation(this.livingAnimations.getOrDefault(LivingMotions.DEATH, Animations.EMPTY_ANIMATION), 0.0F);
this.playAnimation(this.livingAnimations.getOrDefault(LivingMotions.DEATH, TiedUpRigRegistry.EMPTY_ANIMATION), 0.0F);
this.currentMotion = LivingMotions.DEATH;
}
}

View File

@@ -21,7 +21,7 @@ import com.tiedup.remake.rig.anim.types.LayerOffAnimation;
import com.tiedup.remake.rig.anim.types.LinkAnimation;
import com.tiedup.remake.rig.anim.types.StaticAnimation;
import com.tiedup.remake.rig.asset.AssetAccessor;
import yesman.epicfight.gameasset.Animations;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import com.tiedup.remake.rig.patch.LivingEntityPatch;
public class Layer {
@@ -132,7 +132,7 @@ public class Layer {
this.nextAnimation = null;
} else {
if (this.animationPlayer.getAnimation() instanceof LayerOffAnimation) {
this.animationPlayer.getAnimation().get().end(entitypatch, Animations.EMPTY_ANIMATION, true);
this.animationPlayer.getAnimation().get().end(entitypatch, TiedUpRigRegistry.EMPTY_ANIMATION, true);
} else {
this.off(entitypatch);
}
@@ -207,7 +207,7 @@ public class Layer {
public void disableLayer() {
this.disabled = true;
this.animationPlayer.setPlayAnimation(Animations.EMPTY_ANIMATION);
this.animationPlayer.setPlayAnimation(TiedUpRigRegistry.EMPTY_ANIMATION);
}
public static void setLayerOffAnimation(AssetAccessor<? extends DynamicAnimation> currentAnimation, Pose currentPose, LayerOffAnimation offAnimation, float transitionTimeModifier) {

View File

@@ -0,0 +1,73 @@
/*
* 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.types;
import org.jetbrains.annotations.ApiStatus;
import net.minecraft.resources.ResourceLocation;
import com.tiedup.remake.rig.anim.AnimationManager.AnimationAccessor;
import com.tiedup.remake.rig.asset.AssetAccessor;
import com.tiedup.remake.rig.armature.Armature;
public class DirectStaticAnimation extends StaticAnimation implements AnimationAccessor<DirectStaticAnimation> {
private ResourceLocation registryName;
public DirectStaticAnimation() {
this.accessor = this;
}
public DirectStaticAnimation(float transitionTime, boolean isRepeat, ResourceLocation registryName, AssetAccessor<? extends Armature> armature) {
super(transitionTime, isRepeat, registryName.toString(), armature);
this.registryName = registryName;
this.accessor = this;
}
/* Multilayer, Pov animation Constructor */
@ApiStatus.Internal
public DirectStaticAnimation(ResourceLocation baseAnimPath, float transitionTime, boolean repeatPlay, String registryName, AssetAccessor<? extends Armature> armature) {
super(baseAnimPath, transitionTime, repeatPlay, registryName, armature);
this.registryName = ResourceLocation.parse(registryName);
}
@Override
public DirectStaticAnimation get() {
return this;
}
@SuppressWarnings("unchecked")
@Override
public <A extends DynamicAnimation> AnimationAccessor<A> getAccessor() {
return (AnimationAccessor<A>)this;
}
@Override
public ResourceLocation registryName() {
return this.registryName;
}
@Override
public boolean isPresent() {
return true;
}
@Override
public int id() {
return -1;
}
@Override
public int getId() {
return -1;
}
@Override
public boolean inRegistry() {
return false;
}
}

View File

@@ -19,7 +19,7 @@ import com.tiedup.remake.rig.anim.property.AnimationProperty;
import com.tiedup.remake.rig.asset.AssetAccessor;
import com.tiedup.remake.rig.anim.client.Layer.Priority;
import com.tiedup.remake.rig.anim.client.property.JointMaskEntry;
import yesman.epicfight.gameasset.Animations;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import com.tiedup.remake.rig.patch.LivingEntityPatch;
@OnlyIn(Dist.CLIENT)
@@ -74,7 +74,7 @@ public class LayerOffAnimation extends DynamicAnimation implements AnimationAcce
@Override
public AssetAccessor<? extends StaticAnimation> getRealAnimation() {
return Animations.EMPTY_ANIMATION;
return TiedUpRigRegistry.EMPTY_ANIMATION;
}
@Override

View File

@@ -64,7 +64,7 @@ import yesman.epicfight.client.ClientEngine;
import com.tiedup.remake.rig.render.TiedUpRenderTypes;
import yesman.epicfight.client.renderer.RenderingTool;
import com.tiedup.remake.rig.render.item.RenderItemBase;
import yesman.epicfight.gameasset.Animations;
import com.tiedup.remake.rig.TiedUpRigRegistry;
import com.tiedup.remake.rig.TiedUpRigConstants;
import com.tiedup.remake.rig.patch.LivingEntityPatch;
import com.tiedup.remake.rig.patch.PlayerPatch;
@@ -179,7 +179,7 @@ public class StaticAnimation extends DynamicAnimation implements InverseKinemati
public void setLinkAnimation(final AssetAccessor<? extends DynamicAnimation> fromAnimation, Pose startPose, boolean isOnSameLayer, float transitionTimeModifier, LivingEntityPatch<?> entitypatch, LinkAnimation dest) {
if (!entitypatch.isLogicalClient()) {
startPose = Animations.EMPTY_ANIMATION.getPoseByTime(entitypatch, 0.0F, 1.0F);
startPose = TiedUpRigRegistry.EMPTY_ANIMATION.getPoseByTime(entitypatch, 0.0F, 1.0F);
}
dest.resetNextStartTime();