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.
31 lines
1.2 KiB
Java
31 lines
1.2 KiB
Java
/*
|
|
* 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
|
|
}
|