mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-13 06:37:34 +00:00
Keep player pose for held items
This commit is contained in:
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) {
|
||||
|
||||
Reference in new issue
Block a user