diff --git a/src/main/java/org/betterx/bclib/client/gui/modmenu/TestScreen.java b/src/main/java/org/betterx/bclib/client/gui/modmenu/TestScreen.java index d4a9af9d..d3bceabd 100644 --- a/src/main/java/org/betterx/bclib/client/gui/modmenu/TestScreen.java +++ b/src/main/java/org/betterx/bclib/client/gui/modmenu/TestScreen.java @@ -26,7 +26,7 @@ public class TestScreen extends Screen { VerticalStack rows = new VerticalStack<>(DynamicSize.fit(), DynamicSize.relative(1)); rows.addFiller(); - rows.add(new Range( + rows.add(new Range<>( DynamicSize.fill(), DynamicSize.fit(), Component.literal("Integer"), 10, 90, 20, @@ -35,6 +35,15 @@ public class TestScreen extends Screen { } )); rows.addSpacer(8); + rows.add(new Range<>( + DynamicSize.fill(), DynamicSize.fit(), + Component.literal("Float"), + 10f, 90f, 20f, + (slider, value) -> { + System.out.println(value); + } + )); + rows.addSpacer(16); rows.add(new Button( DynamicSize.fit(), DynamicSize.fit(), Component.literal("test"), diff --git a/src/main/java/org/betterx/ui/vanilla/Slider.java b/src/main/java/org/betterx/ui/vanilla/Slider.java index 94537dd9..70e1466d 100644 --- a/src/main/java/org/betterx/ui/vanilla/Slider.java +++ b/src/main/java/org/betterx/ui/vanilla/Slider.java @@ -52,7 +52,7 @@ public class Slider extends AbstractSliderButton { this.minValue = minValue; this.maxValue = maxValue; this.onChange = onChange; - + this.updateMessage(); } @@ -81,6 +81,18 @@ public class Slider extends AbstractSliderButton { } protected String valueToString(N value) { + if (minValue instanceof Float || minValue instanceof Double) { + double v = value.doubleValue(); + double m = maxValue.doubleValue(); + if (m > 1000) + return "" + (int) v; + if (m > 100) + return String.format("%.1f", v); + if (m > 10) + return String.format("%.2f", v); + + return String.format("%.4f", v); + } return "" + value; }