summaryrefslogtreecommitdiff
path: root/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings
diff options
context:
space:
mode:
authorArslaan Pathan <[email protected]>2025-10-08 22:44:10 +1300
committerArslaan Pathan <[email protected]>2025-10-08 22:44:10 +1300
commit90f0c0722175466856b82ef65ada129eb972c425 (patch)
treec80ab1c31b3e56066a7c6daa9bdd67c6bd4197cf /src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings
parent9db037f2508ce99f51f6b9fee54a8e1ad12fe566 (diff)
downloadarslaansmagichax-90f0c0722175466856b82ef65ada129eb972c425.tar.xz
arslaansmagichax-90f0c0722175466856b82ef65ada129eb972c425.zip
finish clickgui, add more hacks, add settings, add mixins, add packet event buses and packet events, what the cook why did i put so much shit in one commit
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings')
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/BooleanSetting.java33
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/ModeSetting.java65
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/NumberSetting.java66
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/Setting.java25
4 files changed, 189 insertions, 0 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/BooleanSetting.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/BooleanSetting.java
new file mode 100644
index 0000000..ac58c30
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/BooleanSetting.java
@@ -0,0 +1,33 @@
+package net.justlearning.arslaan3102.arslaansmagichax.modules.settings;
+
+public class BooleanSetting extends Setting {
+
+ private boolean enabled;
+
+ public BooleanSetting(String name, boolean defaultValue) {
+ super(name);
+ this.enabled = defaultValue;
+ }
+
+ public void toggle() {
+ this.enabled = !this.enabled;
+ }
+
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ @Override
+ public String getValueAsString() {
+ return String.valueOf(enabled);
+ }
+
+ @Override
+ public void setValueFromString(String value) {
+ this.enabled = Boolean.parseBoolean(value);
+ }
+}
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/ModeSetting.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/ModeSetting.java
new file mode 100644
index 0000000..31ea836
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/ModeSetting.java
@@ -0,0 +1,65 @@
+package net.justlearning.arslaan3102.arslaansmagichax.modules.settings;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+public class ModeSetting extends Setting {
+
+ private String mode;
+ private List<String> modes;
+ private int index;
+
+ public ModeSetting(String name, String defaultMode, String... modes) {
+ super(name);
+ this.mode = defaultMode;
+ this.modes = Arrays.asList(modes);
+ this.index = this.mode.indexOf(defaultMode);
+ }
+
+ public String getMode() {
+ return mode;
+ }
+
+ public List<String> getModes() {
+ return modes;
+ }
+
+ public void setMode(String mode) {
+ this.mode = mode;
+ this.index = modes.indexOf(mode);
+ }
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ this.mode = modes.get(index);
+ }
+
+ public void cycle() {
+ if (index < modes.size() - 1) {
+ index++;
+ mode = modes.get(index);
+ } else if (index >= modes.size() - 1) {
+ index = 0;
+ mode = modes.get(0);
+ }
+ }
+
+ public boolean isMode(String mode) {
+ return Objects.equals(this.mode, mode);
+ }
+
+ @Override
+ public String getValueAsString() {
+ return mode;
+ }
+
+ @Override
+ public void setValueFromString(String value) {
+ setMode(value);
+ }
+}
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/NumberSetting.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/NumberSetting.java
new file mode 100644
index 0000000..d0f2bee
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/NumberSetting.java
@@ -0,0 +1,66 @@
+package net.justlearning.arslaan3102.arslaansmagichax.modules.settings;
+
+public class NumberSetting extends Setting {
+
+ private double min, max, increment;
+ private double value;
+
+ public NumberSetting(String name, double min, double max, double defaultValue, double increment) {
+ super(name);
+ this.min = min;
+ this.max = max;
+ this.value = defaultValue;
+ this.increment = increment;
+ }
+
+ public static double clamp(double value, double min, double max) {
+ value = Math.max(min, value);
+ value = Math.min(max, value);
+ return value;
+ }
+
+ public double getValue() {
+ return value;
+ }
+
+ public float getValueFloat() {
+ return (float) value;
+ }
+
+ public int getValueInt() {
+ return (int) value;
+ }
+
+ public double getIncrement() {
+ return increment;
+ }
+
+ public double getMin() {
+ return min;
+ }
+
+ public double getMax() {
+ return max;
+ }
+
+ public void setValue(double value) {
+ value = clamp(value, this.min, this.max);
+ value = Math.round(value * (1.0 / this.increment)) / (1.0 / this.increment);
+ this.value = value;
+ }
+
+ public void increment(boolean positive) {
+ if (positive) setValue(getValue() + getIncrement());
+ else setValue(getValue() - getIncrement());
+ }
+
+ @Override
+ public String getValueAsString() {
+ return String.valueOf(value);
+ }
+
+ @Override
+ public void setValueFromString(String value) {
+ setValue(Double.parseDouble(value));
+ }
+}
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/Setting.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/Setting.java
new file mode 100644
index 0000000..a149d83
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/settings/Setting.java
@@ -0,0 +1,25 @@
+package net.justlearning.arslaan3102.arslaansmagichax.modules.settings;
+
+public abstract class Setting {
+ private String name;
+ private boolean visible = true;
+
+ public Setting(String name) {
+ this.name = name;
+ }
+
+ public boolean isVisible() {
+ return visible;
+ }
+
+ public void setVisible(boolean visible) {
+ this.visible = visible;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public abstract String getValueAsString();
+ public abstract void setValueFromString(String value);
+}