From c2564de4701a22988eb25dd1a556d33025a1bddd Mon Sep 17 00:00:00 2001 From: luisc Date: Wed, 8 Dec 2021 04:41:41 -0600 Subject: [PATCH] NPCs properly stay floating when not navigating and in the air. --- src/main/java/noppes/npcs/entity/EntityNPCFlying.java | 7 +++---- src/main/java/noppes/npcs/entity/EntityNPCInterface.java | 7 ------- .../java/noppes/npcs/scripted/entity/ScriptEntity.java | 4 ++-- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/main/java/noppes/npcs/entity/EntityNPCFlying.java b/src/main/java/noppes/npcs/entity/EntityNPCFlying.java index a740a771f..430a498ef 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCFlying.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCFlying.java @@ -31,17 +31,16 @@ public abstract class EntityNPCFlying extends EntityNPCInterface { public void onLivingUpdate() { - if(!canFly() || this.isJumping){ - super.onLivingUpdate(); + super.onLivingUpdate(); + if(!canFly()){ return; } if (!this.onGround && !this.getMoveHelper().isUpdating()) { this.motionY *= 0.0D; + this.velocityChanged = true; } - - super.onLivingUpdate(); } @Override diff --git a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java index c384260d8..991ba265f 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java @@ -931,13 +931,6 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti return true; } - @Override - public void addVelocity(double d, double d1, double d2) { - if (isWalking() && !isKilled()) - super.addVelocity(d, d1, d2); - } - - @Override public void readEntityFromNBT(NBTTagCompound compound) { super.readEntityFromNBT(compound); diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java index 373446653..e5fa28582 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java @@ -460,14 +460,14 @@ public class ScriptEntity implements IEntity { @Override public void knockback(int power, float direction){ float v = direction * (float)Math.PI / 180.0F; - entity.velocityChanged = true; entity.addVelocity(-MathHelper.sin(v) * (float)power, 0.1D + power * 0.04f, MathHelper.cos(v) * (float)power); + entity.velocityChanged = true; } public void knockback(int xpower, int ypower, int zpower, float direction){ float v = direction * (float)Math.PI / 180.0F; - entity.velocityChanged = true; entity.addVelocity(-MathHelper.sin(v) * (float)xpower, 0.1D + ypower * 0.04f, MathHelper.cos(v) * (float)zpower); + entity.velocityChanged = true; } public void setImmune(int ticks) {