From 4152f9fc7197ae4de000c05349b55bd2345f7f7c Mon Sep 17 00:00:00 2001 From: notevil Date: Thu, 23 Apr 2026 04:55:07 +0200 Subject: [PATCH] Audit-2 : strip EF extension chain + AnimationConfig dead fields (-334 LOC) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit H-02 (EF extension chain DEAD) : - Delete 5 unreferenced EF-derived files : - event/EntityPatchRegistryEvent (ModLoader event for third-party patch registration — no third-party EF mods to host). - event/RegisterResourceLayersEvent (extra renderer layers registration event — no consumers). - render/layer/LayerUtil (+ empty package) — sole LayerProvider interface only used by the deleted RegisterResourceLayersEvent. - render/item/RenderItemBase (+ empty package) — abstract weapon renderer stub, TiedUp does not host weapon trails. - asset/SelfAccessor — AssetAccessor variant never created. - PatchedRenderersEvent : drop inner classes RegisterItemRenderer (tied to RenderItemBase) and Modify (never posted). Keep Add, used by TiedUpRenderEngine. - JsonAssetLoader : remove loadArmature(ArmatureContructor) + its private getJoint helper. Armatures are loaded via the GLB path in Phase 1 — this EF JSON route has no callers. - TiedUpRigRegistry : drop inner interface ArmatureContructor (EF-style typo preserved) now that loadArmature is gone. - EntityPatchProvider : drop CUSTOM_CAPABILITIES map + putCustomEntityPatch + clearCustom. No third-party extension surface needed ; inline the provider lookup to CAPABILITIES only. H-03 (TiedUpAnimationConfig dead fields) : - Remove enableOriginalModel, enableAnimatedFirstPersonModel, enableCosmetics, enablePovAction, autoSwitchCamera, preferenceWork, combatPreferredItems, miningPreferredItems. None had callers — they were inherited from EF ClientConfig without a TiedUp consumer. - Keep activateComputeShader — read at SkinnedMesh.java:249 to toggle the GPU skinning path. Compile green, 20/20 rig tests still green. --- .../remake/rig/TiedUpAnimationConfig.java | 29 ++--- .../tiedup/remake/rig/TiedUpRigRegistry.java | 24 +--- .../remake/rig/asset/JsonAssetLoader.java | 114 ------------------ .../tiedup/remake/rig/asset/SelfAccessor.java | 25 ---- .../rig/event/EntityPatchRegistryEvent.java | 29 ----- .../rig/event/PatchedRenderersEvent.java | 38 +----- .../event/RegisterResourceLayersEvent.java | 30 ----- .../remake/rig/patch/EntityPatchProvider.java | 28 +---- .../rig/render/item/RenderItemBase.java | 15 --- .../remake/rig/render/layer/LayerUtil.java | 32 ----- 10 files changed, 15 insertions(+), 349 deletions(-) delete mode 100644 src/main/java/com/tiedup/remake/rig/asset/SelfAccessor.java delete mode 100644 src/main/java/com/tiedup/remake/rig/event/EntityPatchRegistryEvent.java delete mode 100644 src/main/java/com/tiedup/remake/rig/event/RegisterResourceLayersEvent.java delete mode 100644 src/main/java/com/tiedup/remake/rig/render/item/RenderItemBase.java delete mode 100644 src/main/java/com/tiedup/remake/rig/render/layer/LayerUtil.java diff --git a/src/main/java/com/tiedup/remake/rig/TiedUpAnimationConfig.java b/src/main/java/com/tiedup/remake/rig/TiedUpAnimationConfig.java index 15b090e..0928b09 100644 --- a/src/main/java/com/tiedup/remake/rig/TiedUpAnimationConfig.java +++ b/src/main/java/com/tiedup/remake/rig/TiedUpAnimationConfig.java @@ -6,39 +6,24 @@ package com.tiedup.remake.rig; -import java.util.Set; - /** * Remplace {@code yesman.epicfight.config.ClientConfig} du fork upstream. * Expose uniquement les flags pertinents au pipeline animation/rendu RIG. * - *

Note Phase 0 : tous les flags sont des {@code static final} avec + *

Note Phase 0 : les flags sont des {@code static final} avec * valeurs par défaut hardcodées. À convertir en {@code ForgeConfigSpec} réel * (TOML config file) Phase 2 ou plus tard si on veut permettre la * configuration utilisateur.

- * - *

Valeurs combat (autoSwitchCamera, preferenceWork, combatPreferredItems, - * miningPreferredItems) = defaults no-op, on ne les utilise pas. Les refs - * restantes dans LocalPlayerPatch/ClientPlayerPatch seront strippées en - * Phase 2 quand on simplifiera ces classes.

*/ public final class TiedUpAnimationConfig { private TiedUpAnimationConfig() {} - // Rendu + /** + * Toggle pour le chemin "compute shader" de {@code SkinnedMesh.draw} — + * quand true et qu'un {@code ComputeShaderSetup} est disponible, la mesh + * est skinnée côté GPU (plus rapide sur modèles lourds). False (défaut) + * = skin CPU comme vanilla. + */ public static final boolean activateComputeShader = false; - public static final boolean enableOriginalModel = true; // rendu vanilla model = on par défaut - public static final boolean enableAnimatedFirstPersonModel = true; - public static final boolean enableCosmetics = true; - public static final boolean enablePovAction = false; // POV action combat → off - public static final boolean autoSwitchCamera = false; // combat camera switch → off - - // Combat (stubs pour compat refs LocalPlayerPatch Phase 0 — à supprimer - // en Phase 2 avec le reste du strip combat) - public static final Object preferenceWork = new Object() { - public boolean checkHitResult() { return false; } - }; - public static final Set combatPreferredItems = Set.of(); - public static final Set miningPreferredItems = Set.of(); } diff --git a/src/main/java/com/tiedup/remake/rig/TiedUpRigRegistry.java b/src/main/java/com/tiedup/remake/rig/TiedUpRigRegistry.java index 256069a..b3cc4bf 100644 --- a/src/main/java/com/tiedup/remake/rig/TiedUpRigRegistry.java +++ b/src/main/java/com/tiedup/remake/rig/TiedUpRigRegistry.java @@ -6,12 +6,8 @@ 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 @@ -19,13 +15,9 @@ import com.tiedup.remake.rig.armature.Joint; * 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. * - *

Ce registry expose juste :

- *
    - *
  • {@link #EMPTY_ANIMATION} — animation singleton "ne fait rien", référencée - * par LayerOffAnimation et StaticAnimation pour le défaut.
  • - *
  • {@link ArmatureContructor} — interface fonctionnelle pour construire - * des armatures custom (re-exposée depuis {@code TiedUpRigRegistry.ArmatureContructor}).
  • - *
+ *

Ce registry expose juste {@link #EMPTY_ANIMATION} — animation singleton + * "ne fait rien", référencée par LayerOffAnimation et StaticAnimation pour + * le défaut.

* *

Les vrais registries TiedUp (TiedUpAnimationRegistry, TiedUpArmatures, * TiedUpMeshRegistry) sont prévus en Phase 2-3 et gèreront le scan resource @@ -55,14 +47,4 @@ public final class TiedUpRigRegistry { 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 invoke(String name, int jointNumber, Joint joint, Map jointMap); - } } diff --git a/src/main/java/com/tiedup/remake/rig/asset/JsonAssetLoader.java b/src/main/java/com/tiedup/remake/rig/asset/JsonAssetLoader.java index 1d03c37..3717925 100644 --- a/src/main/java/com/tiedup/remake/rig/asset/JsonAssetLoader.java +++ b/src/main/java/com/tiedup/remake/rig/asset/JsonAssetLoader.java @@ -70,7 +70,6 @@ import com.tiedup.remake.rig.math.MathUtils; import com.tiedup.remake.rig.math.OpenMatrix4f; import com.tiedup.remake.rig.math.Vec3f; import com.tiedup.remake.rig.math.Vec4f; -import com.tiedup.remake.rig.TiedUpRigRegistry.ArmatureContructor; import com.tiedup.remake.rig.TiedUpRigConstants; public class JsonAssetLoader { @@ -456,119 +455,6 @@ public class JsonAssetLoader { } } - public T loadArmature(ArmatureContructor constructor) { - if (this.resourceLocation == null) { - throw new AssetLoadingException("Can't load armature: Resource location is null."); - } - - JsonObject obj = this.rootJson.getAsJsonObject("armature"); - TransformFormat transformFormat = getAsTransformFormatOrDefault(obj, "armature_format"); - JsonObject hierarchy = obj.get("hierarchy").getAsJsonArray().get(0).getAsJsonObject(); - JsonArray nameAsVertexGroups = obj.getAsJsonArray("joints"); - Map jointIds = Maps.newHashMap(); - - int id = 0; - - for (int i = 0; i < nameAsVertexGroups.size(); i++) { - String name = nameAsVertexGroups.get(i).getAsString(); - - if (name.equals(COORD_BONE)) { - continue; - } - - jointIds.put(name, id); - id++; - } - - Map jointMap = Maps.newHashMap(); - Joint joint = getJoint(hierarchy, jointIds, jointMap, transformFormat, true); - joint.initOriginTransform(new OpenMatrix4f()); - - String armatureName = this.resourceLocation.toString().replaceAll("(animmodels/|\\.json)", ""); - - return constructor.invoke(armatureName, jointMap.size(), joint, jointMap); - } - - private static Joint getJoint(JsonObject object, Map jointIdMap, Map jointMap, TransformFormat transformFormat, boolean root) { - String name = object.get("name").getAsString(); - - if (!jointIdMap.containsKey(name)) { - throw new AssetLoadingException("Can't load joint: joint name " + name + " doesn't exist in armature hierarchy."); - } - - // Skip Coord bone - if (name.equals(COORD_BONE)) { - JsonArray coordChildren = object.get("children").getAsJsonArray(); - - if (coordChildren.isEmpty()) { - throw new AssetLoadingException("No children for Coord bone"); - } else if (coordChildren.size() > 1) { - throw new AssetLoadingException("Coord bone can't have multiple children"); - } else { - return getJoint(coordChildren.get(0).getAsJsonObject(), jointIdMap, jointMap, transformFormat, false); - } - } - - JsonElement transform = GsonHelper.getNonNull(object, "transform"); - - // WORKAROUND: The case when transform format is wrongly specified! - if (transformFormat == TransformFormat.ATTRIBUTES && transform.isJsonArray()) { - transformFormat = TransformFormat.MATRIX; - } else if (transformFormat == TransformFormat.MATRIX && transform.isJsonObject()) { - transformFormat = TransformFormat.ATTRIBUTES; - } - - OpenMatrix4f localMatrix = null; - - switch (transformFormat) { - case MATRIX -> { - float[] matrixElements = ParseUtil.toFloatArrayPrimitive(GsonHelper.convertToJsonArray(transform, "transform")); - localMatrix = OpenMatrix4f.load(null, matrixElements); - localMatrix.transpose(); - - if (root) { - localMatrix.mulFront(BLENDER_TO_MINECRAFT_COORD); - } - } - case ATTRIBUTES -> { - JsonObject transformObject = transform.getAsJsonObject(); - JsonArray locArray = transformObject.get("loc").getAsJsonArray(); - JsonArray rotArray = transformObject.get("rot").getAsJsonArray(); - JsonArray scaArray = transformObject.get("sca").getAsJsonArray(); - JointTransform jointTransform - = JointTransform.fromPrimitives( - locArray.get(0).getAsFloat() - , locArray.get(1).getAsFloat() - , locArray.get(2).getAsFloat() - , -rotArray.get(1).getAsFloat() - , -rotArray.get(2).getAsFloat() - , -rotArray.get(3).getAsFloat() - , rotArray.get(0).getAsFloat() - , scaArray.get(0).getAsFloat() - , scaArray.get(1).getAsFloat() - , scaArray.get(2).getAsFloat() - ); - - localMatrix = jointTransform.toMatrix(); - - if (root) { - localMatrix.mulFront(BLENDER_TO_MINECRAFT_COORD); - } - } - } - - Joint joint = new Joint(name, jointIdMap.get(name), localMatrix); - jointMap.put(name, joint); - - if (object.has("children")) { - for (JsonElement children : object.get("children").getAsJsonArray()) { - joint.addSubJoints(getJoint(children.getAsJsonObject(), jointIdMap, jointMap, transformFormat, false)); - } - } - - return joint; - } - public AnimationClip loadClipForAnimation(StaticAnimation animation) { if (this.rootJson == null) { throw new AssetLoadingException("Can't find animation in path: " + animation); diff --git a/src/main/java/com/tiedup/remake/rig/asset/SelfAccessor.java b/src/main/java/com/tiedup/remake/rig/asset/SelfAccessor.java deleted file mode 100644 index 2891148..0000000 --- a/src/main/java/com/tiedup/remake/rig/asset/SelfAccessor.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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.asset; - -import net.minecraft.resources.ResourceLocation; - -public record SelfAccessor(ResourceLocation registryName, A asset) implements AssetAccessor { - public static SelfAccessor create(ResourceLocation registryName, A asset) { - return new SelfAccessor<> (registryName, asset); - } - - @Override - public A get() { - return this.asset; - } - - @Override - public boolean inRegistry() { - return false; - } -} diff --git a/src/main/java/com/tiedup/remake/rig/event/EntityPatchRegistryEvent.java b/src/main/java/com/tiedup/remake/rig/event/EntityPatchRegistryEvent.java deleted file mode 100644 index 8f252f3..0000000 --- a/src/main/java/com/tiedup/remake/rig/event/EntityPatchRegistryEvent.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.event; - -import java.util.Map; -import java.util.function.Function; -import java.util.function.Supplier; - -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraftforge.eventbus.api.Event; -import net.minecraftforge.fml.event.IModBusEvent; -import com.tiedup.remake.rig.patch.EntityPatch; - -public class EntityPatchRegistryEvent extends Event implements IModBusEvent { - private final Map, Function>>> typeEntry; - - public EntityPatchRegistryEvent(Map, Function>>> typeEntry) { - this.typeEntry = typeEntry; - } - - public Map, Function>>> getTypeEntry() { - return this.typeEntry; - } -} \ No newline at end of file diff --git a/src/main/java/com/tiedup/remake/rig/event/PatchedRenderersEvent.java b/src/main/java/com/tiedup/remake/rig/event/PatchedRenderersEvent.java index 4ba3ee7..19c647d 100644 --- a/src/main/java/com/tiedup/remake/rig/event/PatchedRenderersEvent.java +++ b/src/main/java/com/tiedup/remake/rig/event/PatchedRenderersEvent.java @@ -9,61 +9,29 @@ package com.tiedup.remake.rig.event; import java.util.Map; import java.util.function.Function; -import com.google.gson.JsonElement; - import net.minecraft.client.renderer.entity.EntityRendererProvider; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; import net.minecraftforge.eventbus.api.Event; import net.minecraftforge.fml.event.IModBusEvent; import com.tiedup.remake.rig.render.PatchedEntityRenderer; -import com.tiedup.remake.rig.render.item.RenderItemBase; @SuppressWarnings("rawtypes") public abstract class PatchedRenderersEvent extends Event implements IModBusEvent { - public static class RegisterItemRenderer extends PatchedRenderersEvent { - private final Map> itemRenderers; - - public RegisterItemRenderer(Map> itemRenderers) { - this.itemRenderers = itemRenderers; - } - - public void addItemRenderer(ResourceLocation rl, Function provider) { - if (this.itemRenderers.containsKey(rl)) { - throw new IllegalArgumentException("Item renderer " + rl + " already registered."); - } - - this.itemRenderers.put(rl, provider); - } - } - public static class Add extends PatchedRenderersEvent { private final Map, Function, PatchedEntityRenderer>> entityRendererProvider; private final EntityRendererProvider.Context context; - + public Add(Map, Function, PatchedEntityRenderer>> entityRendererProvider, EntityRendererProvider.Context context) { this.entityRendererProvider = entityRendererProvider; this.context = context; } - + public void addPatchedEntityRenderer(EntityType entityType, Function, PatchedEntityRenderer> provider) { this.entityRendererProvider.put(entityType, provider); } - + public EntityRendererProvider.Context getContext() { return this.context; } } - - public static class Modify extends PatchedRenderersEvent { - private final Map, PatchedEntityRenderer> renderers; - - public Modify(Map, PatchedEntityRenderer> renderers) { - this.renderers = renderers; - } - - public PatchedEntityRenderer get(EntityType entityType) { - return this.renderers.get(entityType); - } - } } diff --git a/src/main/java/com/tiedup/remake/rig/event/RegisterResourceLayersEvent.java b/src/main/java/com/tiedup/remake/rig/event/RegisterResourceLayersEvent.java deleted file mode 100644 index cb69913..0000000 --- a/src/main/java/com/tiedup/remake/rig/event/RegisterResourceLayersEvent.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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.event; - -import java.util.Map; - -import net.minecraft.client.model.EntityModel; -import net.minecraft.client.renderer.entity.LivingEntityRenderer; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.LivingEntity; -import net.minecraftforge.eventbus.api.Event; -import com.tiedup.remake.rig.mesh.SkinnedMesh; -import com.tiedup.remake.rig.render.layer.LayerUtil; -import com.tiedup.remake.rig.patch.LivingEntityPatch; - -public class RegisterResourceLayersEvent, M extends EntityModel, R extends LivingEntityRenderer, AM extends SkinnedMesh> extends Event { - private final Map> layersbyid; - - public RegisterResourceLayersEvent(Map> layersbyid) { - this.layersbyid = layersbyid; - } - - public void register(ResourceLocation rl, LayerUtil.LayerProvider layerAdder) { - this.layersbyid.put(rl, layerAdder); - } -} diff --git a/src/main/java/com/tiedup/remake/rig/patch/EntityPatchProvider.java b/src/main/java/com/tiedup/remake/rig/patch/EntityPatchProvider.java index 7ad9701..df57f3c 100644 --- a/src/main/java/com/tiedup/remake/rig/patch/EntityPatchProvider.java +++ b/src/main/java/com/tiedup/remake/rig/patch/EntityPatchProvider.java @@ -30,9 +30,7 @@ import com.tiedup.remake.rig.TiedUpRigConstants; *

* *

Attention MCA : on ne doit PAS enregistrer {@link EntityType#VILLAGER} @@ -50,9 +48,6 @@ public class EntityPatchProvider implements ICapabilityProvider, NonNullSupplier /** Provider map populée au setup, lu au spawn entity. */ private static final Map, Function>>> CAPABILITIES = Maps.newHashMap(); - /** Hook extension pour mods/datapacks tiers. Prioritaire sur {@link #CAPABILITIES}. */ - private static final Map, Function>>> CUSTOM_CAPABILITIES = Maps.newHashMap(); - /** * À appeler en {@code FMLCommonSetupEvent.event.enqueueWork(...)}. * @@ -92,32 +87,13 @@ public class EntityPatchProvider implements ICapabilityProvider, NonNullSupplier ); } - /** - * Enregistre un patch provider custom pour un {@link EntityType} donné. - * Utilisé pour extensions tierces (compat mods) ou datapack-driven patches. - * - *

Prioritaire sur {@link #CAPABILITIES} : un call custom override la - * version par défaut si elle existe.

- */ - public static void putCustomEntityPatch(EntityType entityType, Function>> provider) { - CUSTOM_CAPABILITIES.put(entityType, provider); - } - - /** - * Nettoie les custom patches (typiquement au datapack reload). - */ - public static void clearCustom() { - CUSTOM_CAPABILITIES.clear(); - } - // ---------- instance ---------- private EntityPatch capability; private final LazyOptional> optional = LazyOptional.of(this); public EntityPatchProvider(Entity entity) { - Function>> provider = - CUSTOM_CAPABILITIES.getOrDefault(entity.getType(), CAPABILITIES.get(entity.getType())); + Function>> provider = CAPABILITIES.get(entity.getType()); if (provider != null) { try { diff --git a/src/main/java/com/tiedup/remake/rig/render/item/RenderItemBase.java b/src/main/java/com/tiedup/remake/rig/render/item/RenderItemBase.java deleted file mode 100644 index 37af767..0000000 --- a/src/main/java/com/tiedup/remake/rig/render/item/RenderItemBase.java +++ /dev/null @@ -1,15 +0,0 @@ -/* - * 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.render.item; - -/** - * Stub RIG Phase 0 — renderer pour les items (EF : weapons avec trail, - * tools). TiedUp : re-implém Phase 3 pour menottes/laisse/cage rendues - * attachées aux joints Tool_R/Tool_L via ItemStack injection. - */ -public abstract class RenderItemBase { -} diff --git a/src/main/java/com/tiedup/remake/rig/render/layer/LayerUtil.java b/src/main/java/com/tiedup/remake/rig/render/layer/LayerUtil.java deleted file mode 100644 index 267ab33..0000000 --- a/src/main/java/com/tiedup/remake/rig/render/layer/LayerUtil.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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.render.layer; - -import net.minecraft.client.model.EntityModel; -import net.minecraft.client.renderer.entity.LivingEntityRenderer; -import net.minecraft.world.entity.LivingEntity; - -import com.tiedup.remake.rig.mesh.SkinnedMesh; -import com.tiedup.remake.rig.patch.LivingEntityPatch; - -/** - * Stub RIG Phase 0 — registry de layers additionnels (armor, glow, cape...) - * pour renderers EF. Implém complète Phase 2. - */ -public class LayerUtil { - - @FunctionalInterface - public interface LayerProvider< - E extends LivingEntity, - T extends LivingEntityPatch, - M extends EntityModel, - R extends LivingEntityRenderer, - AM extends SkinnedMesh - > { - void addLayer(R renderer); - } -}