From 90eec7a57b936e0db05f5f96e83d330f0863eaf9 Mon Sep 17 00:00:00 2001 From: luisc Date: Wed, 8 Dec 2021 05:26:32 -0600 Subject: [PATCH] Added GUI fields for setting flying properties of NPCs. Updated en_lang file to add GUI texts. --- .../npcs/ai/pathfinder/FlyingMoveHelper.java | 3 ++- .../npcs/client/gui/SubGuiNpcMovement.java | 19 +++++++++++++++++++ .../assets/customnpcs/lang/en_US.lang | 5 +++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/noppes/npcs/ai/pathfinder/FlyingMoveHelper.java b/src/main/java/noppes/npcs/ai/pathfinder/FlyingMoveHelper.java index e50e53eb3..47c56f4a5 100644 --- a/src/main/java/noppes/npcs/ai/pathfinder/FlyingMoveHelper.java +++ b/src/main/java/noppes/npcs/ai/pathfinder/FlyingMoveHelper.java @@ -49,8 +49,9 @@ public class FlyingMoveHelper extends EntityMoveHelper{ double verticalSpeed = Math.abs(this.entity.posY - this.posY); if(verticalSpeed > speed * speedMult) verticalSpeed = speed * speedMult; + verticalSpeed += this.entity.ai.flySpeed/2.0D; - this.entity.motionY -= Math.signum(this.entity.posY - this.posY) * verticalSpeed * this.entity.ai.flySpeed; + this.entity.motionY -= Math.signum(this.entity.posY - this.posY) * verticalSpeed; } double d5 = MathHelper.sqrt_double(d4); diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiNpcMovement.java b/src/main/java/noppes/npcs/client/gui/SubGuiNpcMovement.java index 329d304d0..86b85d3d9 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiNpcMovement.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiNpcMovement.java @@ -32,6 +32,18 @@ public class SubGuiNpcMovement extends SubGuiInterface implements ITextfieldList // Fly Change this.addButton(new GuiNpcButton(15, guiLeft + 80, y += 22, 100, 20, new String[]{"movement.ground","movement.flying"}, ai.movementType)); + if(ai.movementType == 1){ + this.addLabel(new GuiNpcLabel(18, "fly.speed", guiLeft + 4, y + 140)); + addTextField(new GuiNpcTextField(18,this, guiLeft + 80, y + 135, 40, 20, ai.flySpeed + "")); + getTextField(18).doublesOnly = true; + getTextField(18).setMinMaxDefaultDouble(0.0D,Double.MAX_VALUE,1.0D); + + this.addLabel(new GuiNpcLabel(19, "fly.gravity", guiLeft + 4, y + 160)); + addTextField(new GuiNpcTextField(19,this, guiLeft + 80, y + 155, 40, 20, ai.flyGravity + "")); + getTextField(19).doublesOnly = true; + getTextField(19).setMinMaxDefaultDouble(0.0D,1.0D,0.0D); + } + if(ai.movingType == EnumMovingType.Wandering){ addTextField(new GuiNpcTextField(4,this, guiLeft + 100, y += 22, 40, 20, ai.walkingRange + "")); getTextField(4).integersOnly = true; @@ -146,6 +158,7 @@ public class SubGuiNpcMovement extends SubGuiInterface implements ITextfieldList } else if (button.id == 15) { ai.movementType = button.getValue(); + initGui(); } else if(button.id == 66){ close(); @@ -172,6 +185,12 @@ public class SubGuiNpcMovement extends SubGuiInterface implements ITextfieldList else if(textfield.id == 14){ ai.setWalkingSpeed(textfield.getInteger()); } + else if(textfield.id == 18){ + ai.flySpeed = textfield.getDouble(); + } + else if(textfield.id == 19){ + ai.flyGravity = textfield.getDouble(); + } } } diff --git a/src/main/resources/assets/customnpcs/lang/en_US.lang b/src/main/resources/assets/customnpcs/lang/en_US.lang index e1082b3fa..c3d90ccf7 100644 --- a/src/main/resources/assets/customnpcs/lang/en_US.lang +++ b/src/main/resources/assets/customnpcs/lang/en_US.lang @@ -308,6 +308,11 @@ ai.tacticalvariant=TacticalVariant ai.cobwebAffected=CobwebAffected ai.movement=Movement +movement.ground=Ground +movement.flying=Flying +fly.speed=Flying Speed +fly.gravity=Flying Gravity + aitactics.rush=Rush aitactics.stagger=Dodge aitactics.orbit=Surround