aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/impl
diff options
context:
space:
mode:
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