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

@@ -0,0 +1,68 @@
/*
* 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;
import java.util.Map;
import net.minecraft.resources.ResourceLocation;
import com.tiedup.remake.rig.anim.types.DirectStaticAnimation;
import com.tiedup.remake.rig.armature.Armature;
import com.tiedup.remake.rig.armature.Joint;
/**
* Remplace les registries {@code yesman.epicfight.gameasset.Animations} et
* {@code yesman.epicfight.gameasset.Armatures} du fork upstream. TiedUp
* n'utilise PAS les animations combat EF (BIPED_IDLE, BIPED_WALK, etc. —
* ARR assets) — on authore les nôtres en Phase 4 via addon Blender.
*
* <p>Ce registry expose juste :</p>
* <ul>
* <li>{@link #EMPTY_ANIMATION} — animation singleton "ne fait rien", référencée
* par LayerOffAnimation et StaticAnimation pour le défaut.</li>
* <li>{@link ArmatureContructor} — interface fonctionnelle pour construire
* des armatures custom (re-exposée depuis {@code TiedUpRigRegistry.ArmatureContructor}).</li>
* </ul>
*
* <p>Les vrais registries TiedUp (TiedUpAnimationRegistry, TiedUpArmatures,
* TiedUpMeshRegistry) sont prévus en Phase 2-3 et gèreront le scan resource
* pack + lookup par ResourceLocation.</p>
*/
public final class TiedUpRigRegistry {
private TiedUpRigRegistry() {}
/**
* Animation singleton "ne fait rien". Utilisée par le runtime comme
* fallback quand aucune animation n'est active sur une layer.
*
* <p>Équivalent de {@code TiedUpRigRegistry.EMPTY_ANIMATION} du fork upstream
* (cf. Animations.java:27 EF).</p>
*/
public static final DirectStaticAnimation EMPTY_ANIMATION = new DirectStaticAnimation() {
public static final ResourceLocation EMPTY_ANIMATION_REGISTRY_NAME =
ResourceLocation.fromNamespaceAndPath(TiedUpRigConstants.MODID, "empty");
@Override
public void loadAnimation() {
}
@Override
public ResourceLocation registryName() {
return EMPTY_ANIMATION_REGISTRY_NAME;
}
};
/**
* Interface fonctionnelle de construction d'armature. Re-exposée depuis
* {@code TiedUpRigRegistry.ArmatureContructor} upstream pour que les callers
* (JsonAssetLoader, etc.) aient accès au même type.
*/
@FunctionalInterface
public interface ArmatureContructor<T extends Armature> {
T invoke(String name, int jointNumber, Joint joint, Map<String, Joint> jointMap);
}
}