From 554646dbd857e2fab1be8339ce8d0231ef2dbb4c Mon Sep 17 00:00:00 2001 From: Crendgrim Date: Thu, 31 Aug 2023 00:06:47 +0200 Subject: Add dropdown controllers (#95) --- .../main/java/dev/isxander/yacl3/test/GuiTest.java | 41 +++++++++++++++++++--- 1 file changed, 37 insertions(+), 4 deletions(-) (limited to 'test-common/src/main/java/dev/isxander/yacl3/test/GuiTest.java') diff --git a/test-common/src/main/java/dev/isxander/yacl3/test/GuiTest.java b/test-common/src/main/java/dev/isxander/yacl3/test/GuiTest.java index 71b57f0..c8981d4 100644 --- a/test-common/src/main/java/dev/isxander/yacl3/test/GuiTest.java +++ b/test-common/src/main/java/dev/isxander/yacl3/test/GuiTest.java @@ -1,10 +1,7 @@ package dev.isxander.yacl3.test; import dev.isxander.yacl3.api.*; -import dev.isxander.yacl3.api.controller.BooleanControllerBuilder; -import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder; -import dev.isxander.yacl3.api.controller.StringControllerBuilder; -import dev.isxander.yacl3.api.controller.TickBoxControllerBuilder; +import dev.isxander.yacl3.api.controller.*; import dev.isxander.yacl3.gui.RequireRestartScreen; import dev.isxander.yacl3.gui.controllers.*; import dev.isxander.yacl3.gui.controllers.cycling.EnumController; @@ -26,6 +23,7 @@ import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.HoverEvent; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; import java.awt.Color; import java.nio.file.Path; @@ -236,6 +234,41 @@ public class GuiTest { .customController(opt -> new EnumController<>(opt, ConfigTest.Alphabet.class)) .build()) .build()) + .group(OptionGroup.createBuilder() + .name(Component.literal("Dropdown Controllers")) + .option(Option.createBuilder() + .name(Component.literal("String Dropdown")) + .binding( + defaults.stringOptions, + () -> config.stringOptions, + (value) -> config.stringOptions = value + ) + .controller(opt -> DropdownStringControllerBuilder.create(opt) + .values("Apple", "Banana", "Cherry", "Date") + ) + .build()) + .option(Option.createBuilder() + .name(Component.literal("String suggestions")) + .binding( + defaults.stringSuggestions, + () -> config.stringSuggestions, + (value) -> config.stringSuggestions = value + ) + .controller(opt -> DropdownStringControllerBuilder.create(opt) + .values("Apple", "Banana", "Cherry", "Date") + .allowAnyValue(true) + ) + .build()) + .option(Option.createBuilder() + .name(Component.literal("Item Dropdown")) + .binding( + defaults.item, + () -> config.item, + (value) -> config.item = value + ) + .controller(ItemControllerBuilder::create) + .build()) + .build()) .group(OptionGroup.createBuilder() .name(Component.literal("Options that aren't really options")) .option(ButtonOption.createBuilder() -- cgit