aboutsummaryrefslogtreecommitdiff
path: root/common/src/main/java/dev/isxander/yacl/api/Binding.java
diff options
context:
space:
mode:
authorisXander <xandersmith2008@gmail.com>2023-06-03 23:10:03 +0100
committerisXander <xandersmith2008@gmail.com>2023-06-04 16:25:09 +0100
commit3e36feeef60e56ef8cb7f737ac8eeab9fbcd6abb (patch)
treef9c3395b4da2235681b87a35ac5056a0724a181b /common/src/main/java/dev/isxander/yacl/api/Binding.java
parentd00a486d3bdf6105f8ca8af1034c384058b8c832 (diff)
downloadYetAnotherConfigLib-3e36feeef60e56ef8cb7f737ac8eeab9fbcd6abb.tar.gz
YetAnotherConfigLib-3e36feeef60e56ef8cb7f737ac8eeab9fbcd6abb.tar.bz2
YetAnotherConfigLib-3e36feeef60e56ef8cb7f737ac8eeab9fbcd6abb.zip
Change package and modid to yacl3 and yet_another_config_lib_3 respectively
Diffstat (limited to 'common/src/main/java/dev/isxander/yacl/api/Binding.java')
-rw-r--r--common/src/main/java/dev/isxander/yacl/api/Binding.java64
1 files changed, 0 insertions, 64 deletions
diff --git a/common/src/main/java/dev/isxander/yacl/api/Binding.java b/common/src/main/java/dev/isxander/yacl/api/Binding.java
deleted file mode 100644
index b4cd2d0..0000000
--- a/common/src/main/java/dev/isxander/yacl/api/Binding.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package dev.isxander.yacl.api;
-
-import dev.isxander.yacl.impl.GenericBindingImpl;
-import dev.isxander.yacl.mixin.OptionInstanceAccessor;
-import net.minecraft.client.OptionInstance;
-import org.apache.commons.lang3.Validate;
-
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-
-/**
- * Controls modifying the bound option.
- * Provides the default value, a setter and a getter.
- */
-public interface Binding<T> {
- void setValue(T value);
-
- T getValue();
-
- T defaultValue();
-
- /**
- * Creates a generic binding.
- *
- * @param def default value of the option, used to reset
- * @param getter should return the current value of the option
- * @param setter should set the option to the supplied value
- */
- static <T> Binding<T> generic(T def, Supplier<T> getter, Consumer<T> setter) {
- Validate.notNull(def, "`def` must not be null");
- Validate.notNull(getter, "`getter` must not be null");
- Validate.notNull(setter, "`setter` must not be null");
-
- return new GenericBindingImpl<>(def, getter, setter);
- }
-
- /**
- * Creates a {@link Binding} for Minecraft's {@link OptionInstance}
- */
- static <T> Binding<T> minecraft(OptionInstance<T> minecraftOption) {
- Validate.notNull(minecraftOption, "`minecraftOption` must not be null");
-
- return new GenericBindingImpl<>(
- ((OptionInstanceAccessor<T>) (Object) minecraftOption).getInitialValue(),
- minecraftOption::get,
- minecraftOption::set
- );
- }
-
- /**
- * Creates an immutable binding that has no default and cannot be modified.
- *
- * @param value the value for the binding
- */
- static <T> Binding<T> immutable(T value) {
- Validate.notNull(value, "`value` must not be null");
-
- return new GenericBindingImpl<>(
- value,
- () -> value,
- changed -> {}
- );
- }
-}