diff --git a/src/main/java/noppes/npcs/client/gui/builder/FieldDef.java b/src/main/java/noppes/npcs/client/gui/builder/FieldDef.java index 757c37470..fe3267112 100644 --- a/src/main/java/noppes/npcs/client/gui/builder/FieldDef.java +++ b/src/main/java/noppes/npcs/client/gui/builder/FieldDef.java @@ -187,19 +187,27 @@ public class FieldDef { idSetter.accept(-1); } else { idSetter.accept(sel.selectedAnimationId); - nameSetter.accept(""); + String customName = sel.getSelectedName(); + nameSetter.accept(customName != null ? customName : ""); } }) .buttonLabel(() -> { String name = nameGetter.get(); - if (name != null && !name.isEmpty()) return name; int id = idGetter.get(); + if (id < 0 && name != null && !name.isEmpty()) { + // Built-in animation: show just the name + return name; + } if (id >= 0) { + // Custom animation: show (X) Name + if (name != null && !name.isEmpty()) { + return "(" + id + ") " + name; + } Animation anim = AnimationController.Instance != null ? (Animation) AnimationController.Instance.get(id) : null; String animName = anim != null ? anim.getName() : ""; return animName != null && !animName.isEmpty() - ? "(ID: " + id + ") " + animName : "ID: " + id; + ? "(" + id + ") " + animName : String.valueOf(id); } return "gui.none"; }) diff --git a/src/main/java/noppes/npcs/client/gui/builder/GuiFieldBuilder.java b/src/main/java/noppes/npcs/client/gui/builder/GuiFieldBuilder.java index 6e6a48ab1..262754df1 100644 --- a/src/main/java/noppes/npcs/client/gui/builder/GuiFieldBuilder.java +++ b/src/main/java/noppes/npcs/client/gui/builder/GuiFieldBuilder.java @@ -347,9 +347,14 @@ public class GuiFieldBuilder { String translated = StatCollector.translateToLocal(def.getLabel()); int labelW = fontRenderer.getStringWidth(translated); int fieldX = colLLabel + labelW + labelPadding; - // Clamp field width so it doesn't extend under the scrollbar + // Available width before the scrollbar int maxW = contentRight - fieldX - 15; - if (maxW > 0 && fieldW > maxW) fieldW = maxW; + if (def.getType() == FieldType.SUB_GUI && maxW > 0) { + // SUB_GUI fields fill all available width up to the scrollbar + fieldW = maxW; + } else if (maxW > 0 && fieldW > maxW) { + fieldW = maxW; + } renderFieldAt(def, colLLabel, fieldX, fieldW, y); } diff --git a/src/main/java/noppes/npcs/client/gui/select/GuiSoundSelection.java b/src/main/java/noppes/npcs/client/gui/select/GuiSoundSelection.java index aae3043ce..aba735970 100644 --- a/src/main/java/noppes/npcs/client/gui/select/GuiSoundSelection.java +++ b/src/main/java/noppes/npcs/client/gui/select/GuiSoundSelection.java @@ -145,11 +145,12 @@ public class GuiSoundSelection extends SubGuiInterface implements ICustomScrollL scrollSounds.resetScroll(); getTextField(66).setText(""); soundSearch = ""; + initGui(); } if (guiCustomScroll.id == 1) { selectedResource = new ResourceLocation(selectedDomain, guiCustomScroll.getSelected()); + getButton(1).enabled = true; } - initGui(); } @Override