From 7bd055296b481a3baedd93a4c373ed4ddcda0be7 Mon Sep 17 00:00:00 2001 From: Kam Date: Fri, 8 Mar 2024 01:49:31 -0500 Subject: [PATCH] Max Hitbox Scale Config --- .../noppes/npcs/client/gui/SubGuiCustomHitbox.java | 4 ++-- src/main/java/noppes/npcs/config/ConfigMain.java | 6 ++++++ .../java/noppes/npcs/controllers/data/HitboxData.java | 11 +++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiCustomHitbox.java b/src/main/java/noppes/npcs/client/gui/SubGuiCustomHitbox.java index 1a207ff9c..d3687f223 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiCustomHitbox.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiCustomHitbox.java @@ -24,12 +24,12 @@ public class SubGuiCustomHitbox extends SubGuiInterface implements ITextfieldLis addLabel(new GuiNpcLabel(3,"hitbox.width", guiLeft + 5, guiTop + 57)); addTextField(new GuiNpcTextField(2,this, fontRendererObj, guiLeft + 122, guiTop + 53, 50, 18, hitboxData.getWidthScale() + "")); getTextField(2).floatsOnly = true; - getTextField(2).setMinMaxDefaultFloat(0, Float.MAX_VALUE, 20); + getTextField(2).setMinMaxDefaultFloat(0, Float.MAX_VALUE, 1); addLabel(new GuiNpcLabel(4,"hitbox.height", guiLeft + 5, guiTop + 79)); addTextField(new GuiNpcTextField(3,this, fontRendererObj, guiLeft + 122, guiTop + 75, 50, 18, hitboxData.getHeightScale() + "")); getTextField(3).floatsOnly = true; - getTextField(3).setMinMaxDefaultFloat(0, Float.MAX_VALUE, 20); + getTextField(3).setMinMaxDefaultFloat(0, Float.MAX_VALUE, 1); } addButton(new GuiNpcButton(66, guiLeft + 82, guiTop + 190,98, 20, "gui.done")); } diff --git a/src/main/java/noppes/npcs/config/ConfigMain.java b/src/main/java/noppes/npcs/config/ConfigMain.java index 31b809340..dd5f6e407 100644 --- a/src/main/java/noppes/npcs/config/ConfigMain.java +++ b/src/main/java/noppes/npcs/config/ConfigMain.java @@ -100,6 +100,9 @@ public class ConfigMain public static Property NpcUseOpCommandsProperty; public static boolean NpcUseOpCommands = false; + public static Property HitBoxScaleMaxProperty; + public static int HitBoxScaleMax = 15; + /** * Update Properties **/ @@ -192,6 +195,9 @@ public class ConfigMain SkinOverlayLimitProperty = config.get(NPC, "Skin Overlay Limit", 10, "The maximum number of overlays any npc/player can hold."); SkinOverlayLimit = SkinOverlayLimitProperty.getInt(10); + HitBoxScaleMaxProperty = config.get(NPC, "HitBox Scale Limit", 15, "The maximum scale factor for a custom hitbox"); + HitBoxScaleMax = HitBoxScaleMaxProperty.getInt(15); + // Update TrackedQuestUpdateFrequencyProperty = config.get(UPDATE, "Tracked Quest Update Frequency", 5, "How often in seconds to update a players tracked quest. [Only applies to Item Quest currently]"); TrackedQuestUpdateFrequency = TrackedQuestUpdateFrequencyProperty.getInt(5); diff --git a/src/main/java/noppes/npcs/controllers/data/HitboxData.java b/src/main/java/noppes/npcs/controllers/data/HitboxData.java index 28ad1f2a7..e4bdfe274 100644 --- a/src/main/java/noppes/npcs/controllers/data/HitboxData.java +++ b/src/main/java/noppes/npcs/controllers/data/HitboxData.java @@ -1,6 +1,7 @@ package noppes.npcs.controllers.data; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.config.ConfigMain; public class HitboxData { @@ -11,7 +12,12 @@ public class HitboxData { public NBTTagCompound writeToNBT(NBTTagCompound nbttagcompound) { nbttagcompound.setBoolean("HitboxEnabled", hitboxEnabled); if(hitboxEnabled) { + if(widthScale > ConfigMain.HitBoxScaleMax) + widthScale = ConfigMain.HitBoxScaleMax; nbttagcompound.setFloat("HitboxWidthScale", widthScale); + + if(heightScale > ConfigMain.HitBoxScaleMax) + heightScale = ConfigMain.HitBoxScaleMax; nbttagcompound.setFloat("HitboxHeightScale", heightScale); } return nbttagcompound; @@ -21,7 +27,12 @@ public class HitboxData { hitboxEnabled = nbttagcompound.getBoolean("HitboxEnabled"); if(hitboxEnabled) { widthScale = nbttagcompound.getFloat("HitboxWidthScale"); + if(widthScale > ConfigMain.HitBoxScaleMax) + widthScale = ConfigMain.HitBoxScaleMax; + heightScale = nbttagcompound.getFloat("HitboxHeightScale"); + if(heightScale > ConfigMain.HitBoxScaleMax) + heightScale = ConfigMain.HitBoxScaleMax; } }