aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/impl
diff options
context:
space:
mode:
authorxander <xander@isxander.dev>2022-09-11 21:52:12 +0100
committerxander <xander@isxander.dev>2022-09-11 21:52:12 +0100
commit5e0574b1cb6ef22bf70ce52a0c0e187450189c6c (patch)
tree58bceadeac982cb4e3853d1d81332c51e855f04e /src/main/java/dev/isxander/yacl/impl
parent20132e61aaa18849e46c7a3f4e28ec163585dc0c (diff)
downloadYetAnotherConfigLib-5e0574b1cb6ef22bf70ce52a0c0e187450189c6c.tar.gz
YetAnotherConfigLib-5e0574b1cb6ef22bf70ce52a0c0e187450189c6c.tar.bz2
YetAnotherConfigLib-5e0574b1cb6ef22bf70ce52a0c0e187450189c6c.zip
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
Diffstat (limited to 'src/main/java/dev/isxander/yacl/impl')
-rw-r--r--src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java11
-rw-r--r--src/main/java/dev/isxander/yacl/impl/OptionImpl.java20
2 files changed, 24 insertions, 7 deletions
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;
@@ -64,6 +66,11 @@ public class ButtonOptionImpl implements ButtonOption {
}
@Override
+ public @NotNull ImmutableSet<OptionFlag> 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<T> implements Option<T> {
private final Text tooltip;
private final Controller<T> controller;
private final Binding<T> binding;
- private final boolean requiresRestart;
+
+ private final ImmutableSet<OptionFlag> flags;
private final Class<T> typeClass;
@@ -27,14 +30,14 @@ public class OptionImpl<T> implements Option<T> {
@Nullable Text tooltip,
@NotNull Function<Option<T>, Controller<T>> controlGetter,
@NotNull Binding<T> binding,
- boolean requiresRestart,
+ ImmutableSet<OptionFlag> flags,
@NotNull Class<T> 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();
}
@@ -65,8 +68,13 @@ public class OptionImpl<T> implements Option<T> {
}
@Override
+ public @NotNull ImmutableSet<OptionFlag> flags() {
+ return flags;
+ }
+
+ @Override
public boolean requiresRestart() {
- return requiresRestart;
+ return flags.contains(OptionFlag.GAME_RESTART);
}
@Override
@@ -85,10 +93,12 @@ public class OptionImpl<T> implements Option<T> {
}
@Override
- public void applyValue() {
+ public boolean applyValue() {
if (changed()) {
binding().setValue(pendingValue);
+ return true;
}
+ return false;
}
@Override