diff options
author | ThatGravyBoat <thatgravyboat@gmail.com> | 2021-07-18 05:27:24 -0230 |
---|---|---|
committer | ThatGravyBoat <thatgravyboat@gmail.com> | 2021-07-18 05:27:24 -0230 |
commit | 5559861e52a788f08bc48946a9aad6dd52b373bf (patch) | |
tree | f4caac982db914fca97527f8783d26d6703bec64 /src/main/java/com/thatgravyboat/skyblockhud/core | |
parent | baf3b8aa15cbd2dc0fcb4a80707557c44ee30c16 (diff) | |
download | skyblockhud-5559861e52a788f08bc48946a9aad6dd52b373bf.tar.gz skyblockhud-5559861e52a788f08bc48946a9aad6dd52b373bf.tar.bz2 skyblockhud-5559861e52a788f08bc48946a9aad6dd52b373bf.zip |
Added texture styles
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/core')
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)) { |