Fix Some Flying Logic

This commit is contained in:
Kam committed 2026-02-21 15:28:59 -05:00
1 parent 55370b26a0
commit 8873705ce7
1 file changed
+14 -12
@@ -62,15 +62,16 @@ public abstract class EntityNPCFlying extends EntityNPCInterface {
} else if (heightOffGround > this.ais.flyHeightLimit) {
aboveLimit = true;
}
if (aboveLimit && this.ais.hasFlyLimit || (heightOffGround < Math.ceil(this.height) && this.motionY == 0)) {
if (aboveLimit && this.ais.hasFlyLimit) {
this.flyLimitAllow = false;
if (!this.getNavigator().noPath() && this.motionY > 0) {
if (this.motionY > 0) {
this.motionY = 0;
} else {
setNpcFlyingState(false);
super.moveEntityWithHeading(p_70612_1_, p_70612_2_);
return;
}
} else if (heightOffGround < Math.ceil(this.height) && this.motionY == 0) {
this.flyLimitAllow = false;
setNpcFlyingState(false);
super.moveEntityWithHeading(p_70612_1_, p_70612_2_);
return;
}
this.flyLimitAllow = true;
setNpcFlyingState(true);
@@ -120,15 +121,16 @@ public abstract class EntityNPCFlying extends EntityNPCInterface {
} else if (heightOffGround > this.ais.flyHeightLimit) {
aboveLimit = true;
}
if (aboveLimit && this.ais.hasFlyLimit || (heightOffGround < Math.ceil(this.height) && this.motionY == 0)) {
if (aboveLimit && this.ais.hasFlyLimit) {
this.flyLimitAllow = false;
if (!this.getNavigator().noPath() && this.motionY > 0) {
if (this.motionY > 0) {
this.motionY = 0;
} else {
setNpcFlyingState(false);
super.performMountedMovement(strafe, forward, moveSpeed);
return;
}
} else if (heightOffGround < Math.ceil(this.height) && this.motionY == 0) {
this.flyLimitAllow = false;
setNpcFlyingState(false);
super.performMountedMovement(strafe, forward, moveSpeed);
return;
}
this.flyLimitAllow = true;
setNpcFlyingState(true);