Keep player pose for held items

This commit is contained in:
KAMKEEL committed 2026-09-18 04:19:11 -04:00
1 parent 3ee0df1865
commit dbbca1c4ec
1 file changed
+28
@@ -28,6 +28,7 @@ import noppes.npcs.client.gui.hud.QuestTrackingComponent;
import noppes.npcs.client.gui.hud.ability.AbilityHotbarComponent;
import noppes.npcs.client.gui.player.AuctionTooltipHandler;
import noppes.npcs.client.KeyPressHandler;
import noppes.npcs.client.model.PlayerModelAnimation;
import noppes.npcs.client.renderer.MarkRenderer;
import noppes.npcs.client.renderer.RenderCNPCPlayer;
import noppes.npcs.constants.EnumAnimationPart;
@@ -71,6 +72,7 @@ public class ClientEventHandler {
public static ModelBase playerModel;
private Class<?> renderPlayerJBRA;
private PlayerModelAnimation.Pose equippedItemPose;
public ClientEventHandler() {
try {
@@ -248,6 +250,7 @@ public class ClientEventHandler {
@SubscribeEvent
public void onRenderPlayer(RenderPlayerEvent.Post event) {
restoreEquippedItemPose();
EntityPlayer player = event.entityPlayer;
ClientEventHandler.renderingPlayer = null;
@@ -277,6 +280,31 @@ public class ClientEventHandler {
}
}
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void applyEquippedItemPose(RenderPlayerEvent.Specials.Pre event) {
restoreEquippedItemPose();
ModelBiped model = event.renderer.modelBipedMain;
if (model == null) {
return;
}
equippedItemPose = PlayerModelAnimation.capture(model);
PlayerModelAnimation.apply(model);
}
@SubscribeEvent(priority = EventPriority.LOWEST, receiveCanceled = true)
public void restoreEquippedItemPose(RenderPlayerEvent.Specials.Post event) {
restoreEquippedItemPose();
}
private void restoreEquippedItemPose() {
if (equippedItemPose == null) {
return;
}
equippedItemPose.restore();
equippedItemPose = null;
}
@SubscribeEvent
public void cancelSpecials(RenderPlayerEvent.Specials.Pre event) {
if (event.renderer instanceof RenderCNPCPlayer) {