From dd65110f60aa3e32c2970863a06a7682520cce5e Mon Sep 17 00:00:00 2001 From: Xander Date: Sun, 11 Dec 2022 19:31:56 +0000 Subject: [Feature] Lists (#40) --- .../dev/isxander/yacl/test/config/GuiTest.java | 33 +++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'src/testmod/java/dev/isxander/yacl/test/config/GuiTest.java') diff --git a/src/testmod/java/dev/isxander/yacl/test/config/GuiTest.java b/src/testmod/java/dev/isxander/yacl/test/config/GuiTest.java index 7295f2c..4965150 100644 --- a/src/testmod/java/dev/isxander/yacl/test/config/GuiTest.java +++ b/src/testmod/java/dev/isxander/yacl/test/config/GuiTest.java @@ -22,7 +22,8 @@ import net.minecraft.text.ClickEvent; import net.minecraft.text.HoverEvent; import net.minecraft.text.Text; -import java.awt.*; +import java.awt.Color; +import java.util.List; public class GuiTest { public static Screen getModConfigScreenFactory(Screen parent) { @@ -245,6 +246,36 @@ public class GuiTest { .build()) .build()) .build()) + .category(ConfigCategory.createBuilder() + .name(Text.of("List Test")) + .group(ListOption.createBuilder(String.class) + .name(Text.of("String List")) + .binding( + defaults.stringList, + () -> config.stringList, + val -> config.stringList = val + ) + .controller(StringController::new) + .initial("") + .build()) + .group(ListOption.createBuilder(Integer.class) + .name(Text.of("Slider List")) + .binding( + defaults.intList, + () -> config.intList, + val -> config.intList = val + ) + .controller(opt -> new IntegerSliderController(opt, 0, 10, 1)) + .initial(0) + .available(false) + .build()) + .group(ListOption.createBuilder(Text.class) + .name(Text.of("Useless Label List")) + .binding(Binding.immutable(List.of(Text.of("It's quite impressive that literally every single controller works, without problem.")))) + .controller(LabelController::new) + .initial(Text.of("Initial label")) + .build()) + .build()) .category(PlaceholderCategory.createBuilder() .name(Text.of("Placeholder Category")) .screen((client, yaclScreen) -> new RequireRestartScreen(yaclScreen)) -- cgit