diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java index 01e5a6a82..819730e5b 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java @@ -275,6 +275,20 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable return npc.getNavigator().isNavigating(); } + public void livingEntityBaseTick() { + this.aD = this.aE; + this.aK = this.aL; + if (this.hurtTicks > 0) { + this.hurtTicks -= 1; + } + tickPotionEffects(); + this.ba = this.aZ; + this.aP = this.aO; + this.aR = this.aQ; + this.lastYaw = this.yaw; + this.lastPitch = this.pitch; + } + @Override public void m() { super.m(); @@ -283,7 +297,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (updateCounter + 1 > Setting.PACKET_UPDATE_DELAY.asInt()) { updateEffects = true; } - tickPotionEffects(); + livingEntityBaseTick(); boolean navigating = npc.getNavigator().isNavigating(); updatePackets(navigating); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerLook.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerLook.java index 735ee5b4c..1f24d3386 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerLook.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerLook.java @@ -32,6 +32,13 @@ public class PlayerControllerLook { float f2 = (float) -(MathHelper.b(d2, d4) * 57.2957763671875D); this.a.pitch = a(this.a.pitch, f2, this.c); this.a.aO = a(this.a.aO, f1, this.b); + this.a.yaw = this.a.aO; + while (this.a.aO >= 180F) { + this.a.aO -= 360F; + } + while (this.a.aO < -180F) { + this.a.aO += 360F; + } } else { this.a.aO = a(this.a.aO, this.a.aM, 10.0F); } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java index 3b952f3f1..161e44e10 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java @@ -108,6 +108,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable @Override public void A_() { + livingEntityBaseTick(); super.A_(); if (npc == null) return; @@ -115,7 +116,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (updateCounter + 1 > Setting.PACKET_UPDATE_DELAY.asInt()) { updateEffects = true; } - tickPotionEffects(); boolean navigating = npc.getNavigator().isNavigating(); updatePackets(navigating); @@ -321,6 +321,20 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable return npc.getNavigator().isNavigating(); } + public void livingEntityBaseTick() { + this.aC = this.aD; + this.aJ = this.aK; + if (this.hurtTicks > 0) { + this.hurtTicks -= 1; + } + tickPotionEffects(); + this.aZ = this.aY; + this.aO = this.aN; + this.aQ = this.aP; + this.lastYaw = this.yaw; + this.lastPitch = this.pitch; + } + @Override public boolean m_() { if (npc == null || !npc.isFlyable()) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerLook.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerLook.java index 980e3b6d0..8c4acad87 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerLook.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerLook.java @@ -33,10 +33,16 @@ public class PlayerControllerLook { this.a.pitch = a(this.a.pitch, f2, this.c); this.a.aP = a(this.a.aP, f1, this.b); this.a.yaw = this.a.aP; + while (this.a.aP >= 180F) { + this.a.aP -= 360F; + } + while (this.a.aP < -180F) { + this.a.aP += 360F; + } } else { this.a.aP = a(this.a.aP, this.a.aN, 10.0F); } - float f3 = MathHelper.g(this.a.aO - this.a.aM); + float f3 = MathHelper.g(this.a.aP - this.a.aN); if (!this.a.getNavigation().n()) { if (f3 < -75.0F) { this.a.aP = (this.a.aN - 75.0F);