aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/thatgravyboat/skyblockhud/core
diff options
context:
space:
mode:
authorThatGravyBoat <thatgravyboat@gmail.com>2021-07-18 05:27:24 -0230
committerThatGravyBoat <thatgravyboat@gmail.com>2021-07-18 05:27:24 -0230
commit5559861e52a788f08bc48946a9aad6dd52b373bf (patch)
treef4caac982db914fca97527f8783d26d6703bec64 /src/main/java/com/thatgravyboat/skyblockhud/core
parentbaf3b8aa15cbd2dc0fcb4a80707557c44ee30c16 (diff)
downloadskyblockhud-5559861e52a788f08bc48946a9aad6dd52b373bf.tar.gz
skyblockhud-5559861e52a788f08bc48946a9aad6dd52b373bf.tar.bz2
skyblockhud-5559861e52a788f08bc48946a9aad6dd52b373bf.zip
Added texture styles
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/core')
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/annotations/ConfigEditorStyle.java10
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorDropdown.java6
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorStyle.java43
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/struct/ConfigProcessor.java2
4 files changed, 58 insertions, 3 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/core/config/annotations/ConfigEditorStyle.java b/src/main/java/com/thatgravyboat/skyblockhud/core/config/annotations/ConfigEditorStyle.java
new file mode 100644
index 0000000..2a208a0
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/core/config/annotations/ConfigEditorStyle.java
@@ -0,0 +1,10 @@
+package com.thatgravyboat.skyblockhud.core.config.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface ConfigEditorStyle {}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorDropdown.java b/src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorDropdown.java
index 92c1a0f..6b703cd 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorDropdown.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorDropdown.java
@@ -10,10 +10,10 @@ import org.lwjgl.input.Mouse;
public class GuiOptionEditorDropdown extends GuiOptionEditor {
- private final String[] values;
+ protected final String[] values;
private final boolean useOrdinal;
- private int selected;
- private boolean open = false;
+ protected int selected;
+ protected boolean open = false;
public GuiOptionEditorDropdown(ConfigProcessor.ProcessedOption option, String[] values, int selected, boolean useOrdinal) {
super(option);
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorStyle.java b/src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorStyle.java
new file mode 100644
index 0000000..e383db2
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorStyle.java
@@ -0,0 +1,43 @@
+package com.thatgravyboat.skyblockhud.core.config.gui;
+
+import com.thatgravyboat.skyblockhud.core.config.struct.ConfigProcessor;
+import com.thatgravyboat.skyblockhud.textures.Textures;
+import java.util.stream.Collectors;
+import org.lwjgl.input.Mouse;
+
+public class GuiOptionEditorStyle extends GuiOptionEditorDropdown {
+
+ public GuiOptionEditorStyle(ConfigProcessor.ProcessedOption option, int selected) {
+ super(option, Textures.styles.stream().map(t ->t.displayName).collect(Collectors.toList()).toArray(new String[]{}), selected, true);
+ }
+
+ @Override
+ public boolean mouseInputOverlay(int x, int y, int width, int mouseX, int mouseY) {
+ int height = getHeight();
+
+ int left = x + width / 6 - 40;
+ int top = y + height - 7 - 14;
+
+ if (Mouse.getEventButtonState() && Mouse.getEventButton() == 0) {
+ if (!(mouseX >= left && mouseX <= left + 80 && mouseY >= top && mouseY <= top + 14) && open) {
+ this.open = false;
+ if (mouseX >= left && mouseX <= left + 80) {
+ int dropdownY = 13;
+ for (int ordinal = 0; ordinal < values.length; ordinal++) {
+ if (mouseY >= top + 3 + dropdownY && mouseY <= top + 3 + dropdownY + 12) {
+ selected = ordinal;
+ option.set(selected);
+ Textures.setTexture(selected);
+ return true;
+ }
+ dropdownY += 12;
+ }
+ }
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/core/config/struct/ConfigProcessor.java b/src/main/java/com/thatgravyboat/skyblockhud/core/config/struct/ConfigProcessor.java
index 50cb894..9e0a9d8 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/core/config/struct/ConfigProcessor.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/core/config/struct/ConfigProcessor.java
@@ -117,6 +117,8 @@ public class ConfigProcessor {
if (optionField.isAnnotationPresent(ConfigEditorDropdown.class)) {
ConfigEditorDropdown configEditorAnnotation = optionField.getAnnotation(ConfigEditorDropdown.class);
editor = new GuiOptionEditorDropdown(option, configEditorAnnotation.values(), (int) option.get(), true);
+ } else if (optionField.isAnnotationPresent(ConfigEditorStyle.class)) {
+ editor = new GuiOptionEditorStyle(option, (int) option.get());
}
}
if (optionType.isAssignableFrom(List.class)) {