From 5e0574b1cb6ef22bf70ce52a0c0e187450189c6c Mon Sep 17 00:00:00 2001 From: xander Date: Sun, 11 Sep 2022 21:52:12 +0100 Subject: 1.1.0 better search - now searches every category rather than the current one option flags - flags are pieces of code ran when certain options' changes are applied (makes required restart redundant) fix scaling problems - make GUI a lot better at scaling bump gradle wrapper --- .../dev/isxander/yacl/impl/ButtonOptionImpl.java | 11 +++++++++-- src/main/java/dev/isxander/yacl/impl/OptionImpl.java | 20 +++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) (limited to 'src/main/java/dev/isxander/yacl/impl') diff --git a/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java b/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java index b531dec..2cdc8a6 100644 --- a/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java +++ b/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java @@ -1,8 +1,10 @@ package dev.isxander.yacl.impl; +import com.google.common.collect.ImmutableSet; import dev.isxander.yacl.api.Binding; import dev.isxander.yacl.api.ButtonOption; import dev.isxander.yacl.api.Controller; +import dev.isxander.yacl.api.OptionFlag; import dev.isxander.yacl.gui.YACLScreen; import net.minecraft.text.Text; import org.jetbrains.annotations.ApiStatus; @@ -63,6 +65,11 @@ public class ButtonOptionImpl implements ButtonOption { throw new UnsupportedOperationException(); } + @Override + public @NotNull ImmutableSet flags() { + return ImmutableSet.of(); + } + @Override public boolean requiresRestart() { return false; @@ -84,8 +91,8 @@ public class ButtonOptionImpl implements ButtonOption { } @Override - public void applyValue() { - + public boolean applyValue() { + return false; } @Override diff --git a/src/main/java/dev/isxander/yacl/impl/OptionImpl.java b/src/main/java/dev/isxander/yacl/impl/OptionImpl.java index d63f20b..445420e 100644 --- a/src/main/java/dev/isxander/yacl/impl/OptionImpl.java +++ b/src/main/java/dev/isxander/yacl/impl/OptionImpl.java @@ -1,8 +1,10 @@ package dev.isxander.yacl.impl; +import com.google.common.collect.ImmutableSet; import dev.isxander.yacl.api.Binding; import dev.isxander.yacl.api.Controller; import dev.isxander.yacl.api.Option; +import dev.isxander.yacl.api.OptionFlag; import net.minecraft.text.Text; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; @@ -16,7 +18,8 @@ public class OptionImpl implements Option { private final Text tooltip; private final Controller controller; private final Binding binding; - private final boolean requiresRestart; + + private final ImmutableSet flags; private final Class typeClass; @@ -27,14 +30,14 @@ public class OptionImpl implements Option { @Nullable Text tooltip, @NotNull Function, Controller> controlGetter, @NotNull Binding binding, - boolean requiresRestart, + ImmutableSet flags, @NotNull Class typeClass ) { this.name = name; this.tooltip = tooltip; this.controller = controlGetter.apply(this); this.binding = binding; - this.requiresRestart = requiresRestart; + this.flags = flags; this.typeClass = typeClass; this.pendingValue = binding().getValue(); } @@ -64,9 +67,14 @@ public class OptionImpl implements Option { return typeClass; } + @Override + public @NotNull ImmutableSet flags() { + return flags; + } + @Override public boolean requiresRestart() { - return requiresRestart; + return flags.contains(OptionFlag.GAME_RESTART); } @Override @@ -85,10 +93,12 @@ public class OptionImpl implements Option { } @Override - public void applyValue() { + public boolean applyValue() { if (changed()) { binding().setValue(pendingValue); + return true; } + return false; } @Override -- cgit