Phase 2.3 : capability system RIG (EntityPatchProvider + events)
5 classes ajoutées dans rig/patch/ : - TiedUpCapabilities.java Holder du Capability<EntityPatch> CAPABILITY_ENTITY (CapabilityToken auto-register) + helpers getEntityPatch / getPlayerPatch / getPlayerPatchAsOptional. Simplifié de EF (pas de ITEM/PROJECTILE/SKILL caps, combat only). - EntityPatchProvider.java ICapabilityProvider + Map<EntityType, Function<Entity, Supplier<EntityPatch<?>>>>. registerEntityPatches() pour commonSetup (EntityType.PLAYER seul Phase 2), registerEntityPatchesClient() pour clientSetup (dispatch LocalPlayerPatch vs ClientPlayerPatch<RemotePlayer> vs ServerPlayerPatch). CUSTOM_CAPABILITIES pour extensions futures. Pas de GlobalMobPatch combat fallback. IMPORTANT : n'enregistre PAS EntityType.VILLAGER (MCA conflict V3-REW-10). - TiedUpCapabilityEvents.java @Mod.EventBusSubscriber sur AttachCapabilitiesEvent<Entity>. Check oldPatch pour éviter double-attach, construit provider, appelle onConstructed eager (D-01 pattern EF), addCapability. Priority NORMAL (order d'attachement ne matière pas, c'est les runtime cross-cap reads qui importent et ceux-là sont déjà lazy dans onConstructed). 3 stubs PlayerPatch subclasses (placeholders Phase 2.4) : - ServerPlayerPatch : overrideRender=false, getArmature=null stub, updateMotion no-op - ClientPlayerPatch<T extends AbstractClientPlayer> : overrideRender=true, @OnlyIn CLIENT - LocalPlayerPatch extends ClientPlayerPatch<LocalPlayer> : vide pour l'instant Ces stubs satisfont le compile de EntityPatchProvider.registerEntityPatchesClient(). Le getArmature() null est non-bloquant Phase 2.3 mais devra être fixé Phase 2.4 pour le vrai rendering (lien avec TiedUpRigRegistry.BIPED à créer Phase 2.7). Compile BUILD SUCCESSFUL + 11 tests bridge GREEN maintenus.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* 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.patch;
|
||||
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
/**
|
||||
* Stub Phase 2.3 — patch spécifique au joueur local (self). Spécialisation de
|
||||
* {@link ClientPlayerPatch} pour les hooks first-person / caméra / input
|
||||
* capture bondage-specific (struggle keys, adjustment menu).
|
||||
*
|
||||
* <p>Version minimale : hérite de {@link ClientPlayerPatch} sans override.
|
||||
* Phase 2.4 ajoutera les hooks first-person hide (arms/hands invisibles sous
|
||||
* wrap/latex_sack), camera sync leash, etc.</p>
|
||||
*
|
||||
* <p>Forke conceptuellement {@code yesman.epicfight.client.world.capabilites.entitypatch.player.LocalPlayerPatch}
|
||||
* (EF 572 LOC) mais réécrit from scratch (D-04) car skill UI state / input /
|
||||
* camera cinematics non réutilisables.</p>
|
||||
*/
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class LocalPlayerPatch extends ClientPlayerPatch<LocalPlayer> {
|
||||
|
||||
// Hooks first-person / caméra / input → Phase 2.4
|
||||
}
|
||||
Reference in New Issue
Block a user