diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/Binding.java (renamed from src/main/java/dev/isxander/yacl/api/Binding.java) | 2 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/ButtonOption.java (renamed from src/main/java/dev/isxander/yacl/api/ButtonOption.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/ConfigCategory.java (renamed from src/main/java/dev/isxander/yacl/api/ConfigCategory.java) | 1 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/Controller.java (renamed from src/main/java/dev/isxander/yacl/api/Controller.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/NameableEnum.java (renamed from src/main/java/dev/isxander/yacl/api/NameableEnum.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/Option.java (renamed from src/main/java/dev/isxander/yacl/api/Option.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/OptionFlag.java (renamed from src/main/java/dev/isxander/yacl/api/OptionFlag.java) | 8 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/OptionGroup.java (renamed from src/main/java/dev/isxander/yacl/api/OptionGroup.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/PlaceholderCategory.java (renamed from src/main/java/dev/isxander/yacl/api/PlaceholderCategory.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/YetAnotherConfigLib.java (renamed from src/main/java/dev/isxander/yacl/api/YetAnotherConfigLib.java) | 15 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/api/utils/OptionUtils.java (renamed from src/main/java/dev/isxander/yacl/api/utils/OptionUtils.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/AbstractWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/AbstractWidget.java) | 10 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/CategoryListWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/CategoryListWidget.java) | 22 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/CategoryWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/CategoryWidget.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/ElementListWidgetExt.java | 152 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/LowProfileButtonWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/LowProfileButtonWidget.java) | 10 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/OptionListWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/OptionListWidget.java) | 133 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/RequireRestartScreen.java (renamed from src/main/java/dev/isxander/yacl/gui/RequireRestartScreen.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/SearchFieldWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/SearchFieldWidget.java) | 2 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java) | 11 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/TooltipButtonWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/TooltipButtonWidget.java) | 4 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/YACLScreen.java (renamed from src/main/java/dev/isxander/yacl/gui/YACLScreen.java) | 39 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/ActionController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java) | 4 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/BooleanController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java) | 14 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/ColorController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/ColorController.java) | 27 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java) | 4 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/LabelController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/TickBoxController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java) | 11 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/cycling/CyclingControllerElement.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/cycling/CyclingControllerElement.java) | 8 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/cycling/CyclingListController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/cycling/CyclingListController.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/cycling/EnumController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/cycling/EnumController.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/cycling/ICyclingController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/cycling/ICyclingController.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/package-info.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/package-info.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/slider/DoubleSliderController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/slider/DoubleSliderController.java) | 2 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/slider/FloatSliderController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/slider/FloatSliderController.java) | 2 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/slider/ISliderController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/slider/ISliderController.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/slider/IntegerSliderController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/slider/IntegerSliderController.java) | 2 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/slider/LongSliderController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/slider/LongSliderController.java) | 2 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java) | 6 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/slider/package-info.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/slider/package-info.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/IStringController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/string/IStringController.java) | 12 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/StringController.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/string/StringController.java) | 5 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/StringControllerElement.java (renamed from src/main/java/dev/isxander/yacl/gui/controllers/string/StringControllerElement.java) | 117 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/number/DoubleFieldController.java | 105 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/number/FloatFieldController.java | 105 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/number/IntegerFieldController.java | 109 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/number/LongFieldController.java | 109 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/number/NumberFieldController.java | 69 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/string/number/package-info.java | 10 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/impl/ButtonOptionImpl.java (renamed from src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/impl/ConfigCategoryImpl.java (renamed from src/main/java/dev/isxander/yacl/impl/ConfigCategoryImpl.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/impl/GenericBindingImpl.java (renamed from src/main/java/dev/isxander/yacl/impl/GenericBindingImpl.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/impl/OptionGroupImpl.java (renamed from src/main/java/dev/isxander/yacl/impl/OptionGroupImpl.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/impl/OptionImpl.java (renamed from src/main/java/dev/isxander/yacl/impl/OptionImpl.java) | 1 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/impl/PlaceholderCategoryImpl.java (renamed from src/main/java/dev/isxander/yacl/impl/PlaceholderCategoryImpl.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/impl/YetAnotherConfigLibImpl.java (renamed from src/main/java/dev/isxander/yacl/impl/YetAnotherConfigLibImpl.java) | 0 | ||||
| -rw-r--r-- | src/client/java/dev/isxander/yacl/mixin/client/SimpleOptionAccessor.java (renamed from src/main/java/dev/isxander/yacl/mixin/SimpleOptionAccessor.java) | 2 | ||||
| -rw-r--r-- | src/client/resources/yet-another-config-lib.client.mixins.json (renamed from src/main/resources/yet-another-config-lib.mixins.json) | 2 | ||||
| -rw-r--r-- | src/main/java/dev/isxander/yacl/config/ConfigInstance.java | 14 | ||||
| -rw-r--r-- | src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java | 35 | ||||
| -rw-r--r-- | src/main/resources/fabric.mod.json | 12 | ||||
| -rw-r--r-- | src/testmod/java/dev/isxander/yacl/test/GuiTest.java (renamed from src/testmod/java/dev/isxander/yacl/test/ModMenuIntegration.java) | 191 | ||||
| -rw-r--r-- | src/testmod/java/dev/isxander/yacl/test/config/ConfigData.java | 4 | ||||
| -rw-r--r-- | src/testmod/java/dev/isxander/yacl/test/config/Entrypoint.java | 3 | ||||
| -rw-r--r-- | src/testmod/java/dev/isxander/yacl/test/mixins/TitleScreenMixin.java | 26 | ||||
| -rw-r--r-- | src/testmod/resources/fabric.mod.json | 13 | ||||
| -rw-r--r-- | src/testmod/resources/yet-another-config-lib.test.mixins.json | 11 |
67 files changed, 1055 insertions, 391 deletions
diff --git a/src/main/java/dev/isxander/yacl/api/Binding.java b/src/client/java/dev/isxander/yacl/api/Binding.java index 395beb2..91158d3 100644 --- a/src/main/java/dev/isxander/yacl/api/Binding.java +++ b/src/client/java/dev/isxander/yacl/api/Binding.java @@ -1,7 +1,7 @@ package dev.isxander.yacl.api; import dev.isxander.yacl.impl.GenericBindingImpl; -import dev.isxander.yacl.mixin.SimpleOptionAccessor; +import dev.isxander.yacl.mixin.client.SimpleOptionAccessor; import net.minecraft.client.option.SimpleOption; import org.apache.commons.lang3.Validate; diff --git a/src/main/java/dev/isxander/yacl/api/ButtonOption.java b/src/client/java/dev/isxander/yacl/api/ButtonOption.java index 1124a9a..1124a9a 100644 --- a/src/main/java/dev/isxander/yacl/api/ButtonOption.java +++ b/src/client/java/dev/isxander/yacl/api/ButtonOption.java diff --git a/src/main/java/dev/isxander/yacl/api/ConfigCategory.java b/src/client/java/dev/isxander/yacl/api/ConfigCategory.java index 27c3e95..e9755dd 100644 --- a/src/main/java/dev/isxander/yacl/api/ConfigCategory.java +++ b/src/client/java/dev/isxander/yacl/api/ConfigCategory.java @@ -11,7 +11,6 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.function.Function; /** * Separates {@link Option}s or {@link OptionGroup}s into multiple distinct sections. diff --git a/src/main/java/dev/isxander/yacl/api/Controller.java b/src/client/java/dev/isxander/yacl/api/Controller.java index 7bf7e7f..7bf7e7f 100644 --- a/src/main/java/dev/isxander/yacl/api/Controller.java +++ b/src/client/java/dev/isxander/yacl/api/Controller.java diff --git a/src/main/java/dev/isxander/yacl/api/NameableEnum.java b/src/client/java/dev/isxander/yacl/api/NameableEnum.java index 793b230..793b230 100644 --- a/src/main/java/dev/isxander/yacl/api/NameableEnum.java +++ b/src/client/java/dev/isxander/yacl/api/NameableEnum.java diff --git a/src/main/java/dev/isxander/yacl/api/Option.java b/src/client/java/dev/isxander/yacl/api/Option.java index 772c816..772c816 100644 --- a/src/main/java/dev/isxander/yacl/api/Option.java +++ b/src/client/java/dev/isxander/yacl/api/Option.java diff --git a/src/main/java/dev/isxander/yacl/api/OptionFlag.java b/src/client/java/dev/isxander/yacl/api/OptionFlag.java index 203a674..7a5c23f 100644 --- a/src/main/java/dev/isxander/yacl/api/OptionFlag.java +++ b/src/client/java/dev/isxander/yacl/api/OptionFlag.java @@ -11,14 +11,10 @@ import java.util.function.Consumer; */ @FunctionalInterface public interface OptionFlag extends Consumer<MinecraftClient> { - /** - * Warns the user that a game restart is required for the changes to take effect - */ + /** Warns the user that a game restart is required for the changes to take effect */ OptionFlag GAME_RESTART = client -> client.setScreen(new RequireRestartScreen(client.currentScreen)); - /** - * Reloads chunks upon applying (F3+A) - */ + /** Reloads chunks upon applying (F3+A) */ OptionFlag RELOAD_CHUNKS = client -> client.worldRenderer.reload(); OptionFlag WORLD_RENDER_UPDATE = client -> client.worldRenderer.scheduleTerrainUpdate(); diff --git a/src/main/java/dev/isxander/yacl/api/OptionGroup.java b/src/client/java/dev/isxander/yacl/api/OptionGroup.java index 3364bdf..3364bdf 100644 --- a/src/main/java/dev/isxander/yacl/api/OptionGroup.java +++ b/src/client/java/dev/isxander/yacl/api/OptionGroup.java diff --git a/src/main/java/dev/isxander/yacl/api/PlaceholderCategory.java b/src/client/java/dev/isxander/yacl/api/PlaceholderCategory.java index de7441c..de7441c 100644 --- a/src/main/java/dev/isxander/yacl/api/PlaceholderCategory.java +++ b/src/client/java/dev/isxander/yacl/api/PlaceholderCategory.java diff --git a/src/main/java/dev/isxander/yacl/api/YetAnotherConfigLib.java b/src/client/java/dev/isxander/yacl/api/YetAnotherConfigLib.java index a69ae4e..ae6c060 100644 --- a/src/main/java/dev/isxander/yacl/api/YetAnotherConfigLib.java +++ b/src/client/java/dev/isxander/yacl/api/YetAnotherConfigLib.java @@ -1,6 +1,7 @@ package dev.isxander.yacl.api; import com.google.common.collect.ImmutableList; +import dev.isxander.yacl.config.ConfigInstance; import dev.isxander.yacl.gui.YACLScreen; import dev.isxander.yacl.impl.YetAnotherConfigLibImpl; import net.minecraft.client.gui.screen.Screen; @@ -12,6 +13,7 @@ import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.function.BiFunction; import java.util.function.Consumer; /** @@ -53,6 +55,14 @@ public interface YetAnotherConfigLib { return new Builder(); } + /** + * Creates an instance using a {@link ConfigInstance} which autofills the save() builder method. + * This also takes an easy functional interface that provides defaults and config to help build YACL bindings. + */ + static <T> YetAnotherConfigLib create(ConfigInstance<T> configInstance, ConfigBackedBuilder<T> builder) { + return builder.build(configInstance.getDefaults(), configInstance.getConfig(), createBuilder().save(configInstance::save)).build(); + } + class Builder { private Text title; private final List<ConfigCategory> categories = new ArrayList<>(); @@ -133,4 +143,9 @@ public interface YetAnotherConfigLib { return new YetAnotherConfigLibImpl(title, ImmutableList.copyOf(categories), saveFunction, initConsumer); } } + + @FunctionalInterface + interface ConfigBackedBuilder<T> { + YetAnotherConfigLib.Builder build(T defaults, T config, YetAnotherConfigLib.Builder builder); + } } diff --git a/src/main/java/dev/isxander/yacl/api/utils/OptionUtils.java b/src/client/java/dev/isxander/yacl/api/utils/OptionUtils.java index ab46b5b..ab46b5b 100644 --- a/src/main/java/dev/isxander/yacl/api/utils/OptionUtils.java +++ b/src/client/java/dev/isxander/yacl/api/utils/OptionUtils.java diff --git a/src/main/java/dev/isxander/yacl/gui/AbstractWidget.java b/src/client/java/dev/isxander/yacl/gui/AbstractWidget.java index 03dc9b9..529748d 100644 --- a/src/main/java/dev/isxander/yacl/gui/AbstractWidget.java +++ b/src/client/java/dev/isxander/yacl/gui/AbstractWidget.java @@ -15,7 +15,7 @@ import net.minecraft.client.sound.PositionedSoundInstance; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.sound.SoundEvents; -import java.awt.*; +import java.awt.Color; public abstract class AbstractWidget implements Element, Drawable, Selectable { protected final MinecraftClient client = MinecraftClient.getInstance(); @@ -82,7 +82,7 @@ public abstract class AbstractWidget implements Element, Drawable, Selectable { int width = x2 - x1; int height = y2 - y1; - RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShader(GameRenderer::getPositionTexProgram); RenderSystem.setShaderTexture(0, ClickableWidget.WIDGETS_TEXTURE); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); int i = !enabled ? 0 : hovered ? 2 : 1; @@ -96,9 +96,9 @@ public abstract class AbstractWidget implements Element, Drawable, Selectable { protected int multiplyColor(int hex, float amount) { Color color = new Color(hex, true); - return new Color(Math.max((int)(color.getRed() *amount), 0), - Math.max((int)(color.getGreen()*amount), 0), - Math.max((int)(color.getBlue() *amount), 0), + return new Color(Math.max((int)(color.getRed() * amount), 0), + Math.max((int)(color.getGreen() * amount), 0), + Math.max((int)(color.getBlue() * amount), 0), color.getAlpha()).getRGB(); } diff --git a/src/main/java/dev/isxander/yacl/gui/CategoryListWidget.java b/src/client/java/dev/isxander/yacl/gui/CategoryListWidget.java index 2cb6bb6..4dbcb11 100644 --- a/src/main/java/dev/isxander/yacl/gui/CategoryListWidget.java +++ b/src/client/java/dev/isxander/yacl/gui/CategoryListWidget.java @@ -11,11 +11,11 @@ import net.minecraft.client.util.math.MatrixStack; import java.util.List; -public class CategoryListWidget extends ElementListWidget<CategoryListWidget.CategoryEntry> { +public class CategoryListWidget extends ElementListWidgetExt<CategoryListWidget.CategoryEntry> { private final YACLScreen yaclScreen; public CategoryListWidget(MinecraftClient client, YACLScreen yaclScreen, int screenWidth, int screenHeight) { - super(client, screenWidth / 3, yaclScreen.searchFieldWidget.y - 5, 0, yaclScreen.searchFieldWidget.y - 5, 21); + super(client, 0, 0, screenWidth / 3, yaclScreen.searchFieldWidget.getY() - 5, true); this.yaclScreen = yaclScreen; setRenderBackground(false); setRenderHorizontalShadows(false); @@ -26,10 +26,10 @@ public class CategoryListWidget extends ElementListWidget<CategoryListWidget.Cat } @Override - protected void renderList(MatrixStack matrices, int mouseX, int mouseY, float delta) { + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { double d = this.client.getWindow().getScaleFactor(); RenderSystem.enableScissor(0, (int)((yaclScreen.height - bottom) * d), (int)(width * d), (int)(height * d)); - super.renderList(matrices, mouseX, mouseY, delta); + super.render(matrices, mouseX, mouseY, delta); RenderSystem.disableScissor(); } @@ -54,6 +54,11 @@ public class CategoryListWidget extends ElementListWidget<CategoryListWidget.Cat return width - 2; } + @Override + protected void renderBackground(MatrixStack matrices) { + + } + public class CategoryEntry extends Entry<CategoryEntry> { private final CategoryWidget categoryButton; public final int categoryIndex; @@ -75,15 +80,20 @@ public class CategoryListWidget extends ElementListWidget<CategoryListWidget.Cat mouseY = -20; } - categoryButton.y = y; + categoryButton.setY(y); categoryButton.render(matrices, mouseX, mouseY, tickDelta); } - private void postRender(MatrixStack matrices, int mouseX, int mouseY, float tickDelta) { + public void postRender(MatrixStac |
