aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/gui
diff options
context:
space:
mode:
authorDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-06-06 18:20:23 +0200
committerDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-06-06 18:20:23 +0200
commit21d31344a151dfe94c79a20b503af55120c63b63 (patch)
tree6bae89e3532b2ed976a493ff8d6b5b7bfed94221 /src/main/java/cc/polyfrost/oneconfig/gui
parent462d5976f3654f40229ff61391e7e55d0819d82d (diff)
downloadOneConfig-21d31344a151dfe94c79a20b503af55120c63b63.tar.gz
OneConfig-21d31344a151dfe94c79a20b503af55120c63b63.tar.bz2
OneConfig-21d31344a151dfe94c79a20b503af55120c63b63.zip
rewrite config system
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/gui')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/Colors.java46
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java2
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java3
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java3
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicButton.java4
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java6
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java4
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java2
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigButton.java16
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java14
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigColorElement.java14
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDropdown.java14
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDualOption.java15
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigHeader.java13
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigInfo.java12
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java14
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigPageButton.java11
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSlider.java17
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java12
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java23
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/text/NumberInputField.java4
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/text/TextInputField.java4
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/pages/CreditsPage.java2
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/pages/HomePage.java4
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/pages/ModsPage.java2
25 files changed, 133 insertions, 128 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/Colors.java b/src/main/java/cc/polyfrost/oneconfig/gui/Colors.java
deleted file mode 100644
index 6cb9567..0000000
--- a/src/main/java/cc/polyfrost/oneconfig/gui/Colors.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package cc.polyfrost.oneconfig.gui;
-
-import java.awt.*;
-
-public class Colors {
- // the color library
- public static final int TRANSPARENT = new Color(0, 0, 0, 0).getRGB(); // Transparent
- public static final int BLACK = new Color(0, 0, 0, 255).getRGB(); // Black
- public static final int GRAY_900 = new Color(13, 14, 15, 255).getRGB(); // Gray 900
- public static final int GRAY_900_80 = new Color(13, 14, 15, 204).getRGB(); // Gray 900 80%
- public static final int GRAY_800 = new Color(21, 22, 23, 255).getRGB(); // Gray 800
- public static final int GRAY_800_95 = new Color(21, 22, 23, 242).getRGB();
- public static final int GRAY_700 = new Color(34, 35, 38, 255).getRGB(); // Gray 700
- public static final int GRAY_600 = new Color(42, 44, 48, 255).getRGB(); // Gray 600
- public static final int GRAY_500 = new Color(49, 51, 56, 255).getRGB(); // Gray 500 // button sidebar hover, button gray normal
- public static final int GRAY_500_80 = new Color(49, 51, 56, 204).getRGB(); // Gray 500 80% // button sidebar pressed
- public static final int GRAY_400 = new Color(55, 59, 69, 255).getRGB(); // Gray 400
- public static final int GRAY_300 = new Color(73, 79, 92, 255).getRGB(); // Gray 300 // button gray hover
- public static final int GRAY_400_80 = new Color(55, 59, 69, 204).getRGB(); // Gray 400 80% // button gray pressed
- public static final int PRIMARY_800 = new Color(13, 51, 128, 255).getRGB(); // Blue 800
- public static final int PRIMARY_700 = new Color(18, 71, 178, 255).getRGB(); // Blue 700
- public static final int PRIMARY_700_80 = new Color(18, 71, 178, 204).getRGB(); // Blue 700 80%
- public static final int PRIMARY_600 = new Color(20, 82, 204, 255).getRGB(); // Blue 600 // button blue normal
- public static final int PRIMARY_500 = new Color(25, 103, 255, 255).getRGB(); // Blue 500 // button blue hover
- public static final int PRIMARY_400 = new Color(48, 129, 242, 255).getRGB();
- public static final int WHITE_50 = new Color(255, 255, 255, 127).getRGB(); // White 60%
- public static final int WHITE_60 = new Color(255, 255, 255, 153).getRGB(); // White 60%
- public static final int WHITE_80 = new Color(255, 255, 255, 204).getRGB(); // White 80%
- public static final int WHITE_90 = new Color(255, 255, 255, 229).getRGB(); // White 90%
- public static final int WHITE_95 = new Color(255, 255, 255, 242).getRGB(); // White 90%
- public static final int WHITE = new Color(255, 255, 255, 255).getRGB(); // White 100%
- public static final int SUCCESS_600 = new Color(3, 152, 85).getRGB();
- public static final int SUCCESS_700 = new Color(2, 121, 72).getRGB();
- public static final int WARNING_500 = new Color(247, 144, 9).getRGB();
- public static final int WARNING_600 = new Color(220, 104, 3).getRGB();
- public static final int ERROR_600_80 = new Color(217, 32, 32, 204).getRGB();
- public static final int ERROR_600 = new Color(217, 32, 32).getRGB();
- public static final int ERROR_700 = new Color(180, 24, 24).getRGB(); // Red 700
- public static final int ERROR_800 = new Color(145, 24, 24).getRGB(); // Red 800
- public static final int ERROR_800_80 = new Color(145, 24, 24, 204).getRGB(); // Red 800
- public static final int ERROR_300 = new Color(253, 155, 155).getRGB();
- public static final int ERROR_300_80 = new Color(253, 155, 155, 204).getRGB();
- public static boolean ROUNDED_CORNERS = true;
- public static final float CORNER_RADIUS_WIN = 20f;
- public static final float CORNER_RADIUS = 12f;
-}
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java b/src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java
index 7f3bf15..13174ab 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java
@@ -1,6 +1,6 @@
package cc.polyfrost.oneconfig.gui;
-import cc.polyfrost.oneconfig.internal.config.ConfigCore;
+import cc.polyfrost.oneconfig.internal.config.core.ConfigCore;
import cc.polyfrost.oneconfig.hud.BasicHud;
import cc.polyfrost.oneconfig.internal.hud.HudCore;
import cc.polyfrost.oneconfig.renderer.RenderManager;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java b/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java
index 81fe9c0..0ddf469 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java
@@ -8,9 +8,10 @@ import cc.polyfrost.oneconfig.gui.elements.ColorSelector;
import cc.polyfrost.oneconfig.gui.elements.text.TextInputField;
import cc.polyfrost.oneconfig.gui.pages.ModsPage;
import cc.polyfrost.oneconfig.gui.pages.Page;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.renderer.scissor.ScissorManager;
import cc.polyfrost.oneconfig.utils.gui.GuiUtils;
import cc.polyfrost.oneconfig.utils.InputUtils;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java b/src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java
index b6f1160..5678189 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java
@@ -6,9 +6,10 @@ import cc.polyfrost.oneconfig.gui.animations.EaseInOutQuart;
import cc.polyfrost.oneconfig.gui.elements.BasicButton;
import cc.polyfrost.oneconfig.gui.pages.CreditsPage;
import cc.polyfrost.oneconfig.gui.pages.ModsPage;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.test.ButtonTestPage;
import cc.polyfrost.oneconfig.utils.gui.GuiUtils;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicButton.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicButton.java
index f3168dd..7869114 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicButton.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicButton.java
@@ -1,11 +1,11 @@
package cc.polyfrost.oneconfig.gui.elements;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.gui.OneConfigGui;
import cc.polyfrost.oneconfig.gui.pages.Page;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
import cc.polyfrost.oneconfig.utils.color.ColorUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java
index d42d465..4729684 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java
@@ -1,6 +1,6 @@
package cc.polyfrost.oneconfig.gui.elements;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.core.OneColor;
import cc.polyfrost.oneconfig.gui.OneConfigGui;
import cc.polyfrost.oneconfig.gui.animations.Animation;
@@ -12,8 +12,8 @@ import cc.polyfrost.oneconfig.gui.elements.text.TextInputField;
import cc.polyfrost.oneconfig.internal.config.OneConfigConfig;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.Images;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.Images;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.renderer.scissor.Scissor;
import cc.polyfrost.oneconfig.renderer.scissor.ScissorManager;
import cc.polyfrost.oneconfig.utils.InputUtils;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java
index f48e1af..893d628 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java
@@ -1,14 +1,14 @@
package cc.polyfrost.oneconfig.gui.elements;
import cc.polyfrost.oneconfig.internal.OneConfig;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.data.Mod;
import cc.polyfrost.oneconfig.gui.OneConfigGui;
import cc.polyfrost.oneconfig.gui.animations.ColorAnimation;
import cc.polyfrost.oneconfig.gui.pages.ModConfigPage;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.renderer.scissor.Scissor;
import cc.polyfrost.oneconfig.renderer.scissor.ScissorManager;
import cc.polyfrost.oneconfig.utils.InputUtils;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java
index 5705ba8..73853a1 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java
@@ -1,6 +1,6 @@
package cc.polyfrost.oneconfig.gui.elements;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.utils.InputUtils;
import org.lwjgl.input.Mouse;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigButton.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigButton.java
index a488fea..9879ac2 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigButton.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigButton.java
@@ -1,8 +1,9 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Button;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.elements.BasicButton;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
@@ -12,18 +13,23 @@ import java.lang.reflect.Field;
public class ConfigButton extends BasicOption {
private final BasicButton button;
- public ConfigButton(Runnable runnable, Object parent, String name, int size, String text) {
- super(null, parent, name, size);
+ public ConfigButton(Runnable runnable, Object parent, String name, String category, String subcategory, int size, String text) {
+ super(null, parent, name, category, subcategory, size);
this.button = new BasicButton(size == 1 ? 128 : 256, 32, text, BasicButton.ALIGNMENT_CENTER, ColorPalette.PRIMARY);
this.button.setClickAction(runnable);
}
- public ConfigButton(Field field, Object parent, String name, int size, String text) {
- super(field, parent, name, size);
+ public ConfigButton(Field field, Object parent, String name, String category, String subcategory, int size, String text) {
+ super(field, parent, name, category, subcategory, size);
this.button = new BasicButton(size == 1 ? 128 : 256, 32, text, BasicButton.ALIGNMENT_CENTER, ColorPalette.PRIMARY);
this.button.setClickAction(getRunnableFromField(field, parent));
}
+ public static ConfigButton create(Field field, Object parent) {
+ Button button = field.getAnnotation(Button.class);
+ return new ConfigButton(field, parent, button.name(), button.category(), button.subcategory(), button.size(), button.text());
+ }
+
private static Runnable getRunnableFromField(Field field, Object parent) {
Runnable runnable = () -> {
};
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java
index b21c7dc..0ff7d8f 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java
@@ -1,6 +1,7 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Checkbox;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.animations.Animation;
import cc.polyfrost.oneconfig.gui.animations.ColorAnimation;
@@ -8,7 +9,7 @@ import cc.polyfrost.oneconfig.gui.animations.DummyAnimation;
import cc.polyfrost.oneconfig.gui.animations.EaseInOutQuad;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.utils.InputUtils;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
import cc.polyfrost.oneconfig.utils.color.ColorUtils;
@@ -21,8 +22,13 @@ public class ConfigCheckbox extends BasicOption {
private final ColorAnimation color = new ColorAnimation(ColorPalette.SECONDARY);
private Animation animation;
- public ConfigCheckbox(Field field, Object parent, String name, int size) {
- super(field, parent, name, size);
+ public ConfigCheckbox(Field field, Object parent, String name, String category, String subcategory, int size) {
+ super(field, parent, name, category, subcategory, size);
+ }
+
+ public static ConfigCheckbox create(Field field, Object parent) {
+ Checkbox checkbox = field.getAnnotation(Checkbox.class);
+ return new ConfigCheckbox(field, parent, checkbox.name(), checkbox.category(), checkbox.subcategory(), checkbox.size());
}
@Override
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigColorElement.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigColorElement.java
index 0e13f07..5cd9c83 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigColorElement.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigColorElement.java
@@ -1,6 +1,7 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Color;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.core.OneColor;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.OneConfigGui;
@@ -9,7 +10,7 @@ import cc.polyfrost.oneconfig.gui.elements.ColorSelector;
import cc.polyfrost.oneconfig.gui.elements.text.TextInputField;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.Images;
+import cc.polyfrost.oneconfig.internal.assets.Images;
import cc.polyfrost.oneconfig.utils.InputUtils;
import java.lang.reflect.Field;
@@ -20,13 +21,18 @@ public class ConfigColorElement extends BasicOption {
private final BasicElement element = new BasicElement(64, 32, false);
private boolean open = false;
- public ConfigColorElement(Field field, Object parent, String name, int size) {
- super(field, parent, name, size);
+ public ConfigColorElement(Field field, Object parent, String name, String category, String subcategory, int size) {
+ super(field, parent, name, category, subcategory, size);
hexField.setCentered(true);
alphaField.setCentered(true);
alphaField.onlyAcceptNumbers(true);
}
+ public static ConfigColorElement create(Field field, Object parent) {
+ Color color = field.getAnnotation(Color.class);
+ return new ConfigColorElement(field, parent, color.name(), color.category(), color.subcategory(), color.size());
+ }
+
@Override
public void draw(long vg, int x, int y) {
if (!isEnabled()) RenderManager.setAlpha(vg, 0.5f);
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDropdown.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDropdown.java
index 1d64420..657cf99 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDropdown.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDropdown.java
@@ -1,11 +1,12 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Dropdown;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.animations.ColorAnimation;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.utils.InputUtils;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
import org.lwjgl.input.Mouse;
@@ -20,11 +21,16 @@ public class ConfigDropdown extends BasicOption {
private final ColorAnimation atomColor = new ColorAnimation(new ColorPalette(Colors.PRIMARY_600, Colors.PRIMARY_500, Colors.PRIMARY_500));
private boolean opened = false;
- public ConfigDropdown(Field field, Object parent, String name, int size, String[] options) {
- super(field, parent, name, size);
+ public ConfigDropdown(Field field, Object parent, String name, String category, String subcategory, int size, String[] options) {
+ super(field, parent, name, category, subcategory, size);
this.options = options;
}
+ public static ConfigDropdown create(Field field, Object parent) {
+ Dropdown dropdown = field.getAnnotation(Dropdown.class);
+ return new ConfigDropdown(field, parent, dropdown.name(), dropdown.category(), dropdown.subcategory(), dropdown.size(), dropdown.options());
+ }
+
@Override
public void draw(long vg, int x, int y) {
if (!isEnabled()) RenderManager.setAlpha(vg, 0.5f);
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDualOption.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDualOption.java
index 5bf28c0..1eceac8 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDualOption.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDualOption.java
@@ -1,6 +1,7 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.DualOption;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.animations.Animation;
import cc.polyfrost.oneconfig.gui.animations.DummyAnimation;
@@ -15,11 +16,15 @@ public class ConfigDualOption extends BasicOption {
private final String left, right;
private Animation posAnimation;
- public ConfigDualOption(Field field, Object parent, String name, int size, String[] options) {
- super(field, parent, name, size);
- this.left = options[0];
- this.right = options[1];
+ public ConfigDualOption(Field field, Object parent, String name, String category, String subcategory, int size, String left, String right) {
+ super(field, parent, name, category, subcategory, size);
+ this.left = left;
+ this.right = right;
+ }
+ public static ConfigDualOption create(Field field, Object parent) {
+ DualOption dualOption = field.getAnnotation(DualOption.class);
+ return new ConfigDualOption(field, parent, dualOption.name(), dualOption.category(), dualOption.subcategory(), dualOption.size(), dualOption.left(), dualOption.right());
}
@Override
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigHeader.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigHeader.java
index bfdb8ca..b930450 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigHeader.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigHeader.java
@@ -1,6 +1,7 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Header;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
@@ -11,8 +12,13 @@ import java.lang.reflect.Field;
public class ConfigHeader extends BasicOption {
- public ConfigHeader(Field field, Object parent, String name, int size) {
- super(field, parent, name, size);
+ public ConfigHeader(Field field, Object parent, String name, String category, String subcategory, int size) {
+ super(field, parent, name, category, subcategory, size);
+ }
+
+ public static ConfigHeader create(Field field, Object parent) {
+ Header header = field.getAnnotation(Header.class);
+ return new ConfigHeader(field, parent, header.text(), header.category(), header.subcategory(), header.size());
}
@Override
@@ -22,7 +28,6 @@ public class ConfigHeader extends BasicOption {
ScissorManager.resetScissor(vg, scissor);
}
-
@Override
public int getHeight() {
return 32;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigInfo.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigInfo.java
index c0e041f..11a5cf8 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigInfo.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigInfo.java
@@ -1,6 +1,7 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Info;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.data.InfoType;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.renderer.RenderManager;
@@ -13,11 +14,16 @@ import java.lang.reflect.Field;
public class ConfigInfo extends BasicOption {
private final InfoType type;
- public ConfigInfo(Field field, Object parent, String name, int size, InfoType type) {
- super(field, parent, name, size);
+ public ConfigInfo(Field field, Object parent, String name, String category, String subcategory, int size, InfoType type) {
+ super(field, parent, name, category, subcategory, size);
this.type = type;
}
+ public static ConfigInfo create(Field field, Object parent) {
+ Info info = field.getAnnotation(Info.class);
+ return new ConfigInfo(field, parent, info.text(), info.category(), info.subcategory(), info.size(), info.type());
+ }
+
@Override
public void draw(long vg, int x, int y) {
Scissor scissor = ScissorManager.scissor(vg, x, y, size == 1 ? 448 : 960, 32);
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java
index 986bb98..5c239c0 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java
@@ -1,13 +1,14 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.KeyBind;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.core.OneKeyBind;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.OneConfigGui;
import cc.polyfrost.oneconfig.gui.elements.BasicButton;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
import gg.essential.universal.UKeyboard;
@@ -17,12 +18,17 @@ public class ConfigKeyBind extends BasicOption {
private final BasicButton button;
private boolean clicked = false;
- public ConfigKeyBind(Field field, Object parent, String name, int size) {
- super(field, parent, name, size);
+ public ConfigKeyBind(Field field, Object parent, String name, String category, String subcategory, int size) {
+ super(field, parent, name, category, subcategory, size);
button = new BasicButton(256, 32, "", SVGs.KEYSTROKE, null, BasicButton.ALIGNMENT_JUSTIFIED, ColorPalette.SECONDARY);
button.setToggleable(true);
}
+ public static ConfigKeyBind create(Field field, Object parent) {
+ KeyBind keyBind = field.getAnnotation(KeyBind.class);
+ return new ConfigKeyBind(field, parent, keyBind.name(), keyBind.category(), keyBind.subcategory(), keyBind.size());
+ }
+
@Override
public void draw(long vg, int x, int y) {
if (!isEnabled()) RenderManager.setAlpha(vg, 0.5f);
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigPageButton.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigPageButton.java
index e4fcc77..5c7c2c4 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigPageButton.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigPageButton.java
@@ -1,6 +1,6 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.elements.OptionPage;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.OneConfigGui;
@@ -8,7 +8,7 @@ import cc.polyfrost.oneconfig.gui.animations.ColorAnimation;
import cc.polyfrost.oneconfig.gui.pages.ModConfigPage;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.utils.InputUtils;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
import org.lwjgl.input.Mouse;
@@ -21,7 +21,7 @@ public class ConfigPageButton extends BasicOption {
private final ColorAnimation backgroundColor = new ColorAnimation(ColorPalette.SECONDARY);
public ConfigPageButton(Field field, Object parent, String name, String description, OptionPage page) {
- super(field, parent, name, 2);
+ super(field, parent, name, "", "", 2);
this.description = description;
this.page = page;
}
@@ -48,9 +48,4 @@ public class ConfigPageButton extends BasicOption {
public int getHeight() {
return description.equals("") ? 64 : 96;
}
-
- @Override
- public boolean hasHalfSize() {
- return false;
- }
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSlider.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSlider.java
index 2bda274..a254729 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSlider.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSlider.java
@@ -1,6 +1,7 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Slider;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.elements.text.NumberInputField;
import cc.polyfrost.oneconfig.renderer.RenderManager;
@@ -19,14 +20,19 @@ public class ConfigSlider extends BasicOption {
private boolean dragging = false;
private boolean mouseWasDown = false;
- public ConfigSlider(Field field, Object parent, String name, int size, float min, float max, int step) {
- super(field, parent, name, size);
+ public ConfigSlider(Field field, Object parent, String name, String category, String subcategory, int size, float min, float max, int step) {
+ super(field, parent, name,category, subcategory, size);
this.min = min;
this.max = max;
this.step = step;
inputField = new NumberInputField(84, 32, 0, min, max, step == 0 ? 1 : step);
}
+ public static ConfigSlider create(Field field, Object parent) {
+ Slider slider = field.getAnnotation(Slider.class);
+ return new ConfigSlider(field, parent, slider.name(), slider.category(), slider.subcategory(), 2, slider.min(), slider.max(), slider.step());
+ }
+
@Override
public void draw(long vg, int x, int y) {
int xCoordinate = 0;
@@ -107,9 +113,4 @@ public class ConfigSlider extends BasicOption {
public int getHeight() {
return 32;
}
-
- @Override
- public boolean hasHalfSize() {
- return false;
- }
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java
index 2aedf4e..68e5be3 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java
@@ -1,6 +1,7 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Switch;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.animations.Animation;
import cc.polyfrost.oneconfig.gui.animations.ColorAnimation;
@@ -18,8 +19,13 @@ public class ConfigSwitch extends BasicOption {
private ColorAnimation color;
private Animation animation;
- public ConfigSwitch(Field field, Object parent, String name, int size) {
- super(field, parent, name, size);
+ public ConfigSwitch(Field field, Object parent, String name, String category, String subcategory, int size) {
+ super(field, parent, name, category, subcategory, size);
+ }
+
+ public static ConfigSwitch create(Field field, Object parent) {
+ Switch options = field.getAnnotation(Switch.class);
+ return new ConfigSwitch(field, parent, options.name(), options.category(), options.subcategory(), options.size());
}
@Override
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java
index 225232b..81de9ba 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java
@@ -1,11 +1,12 @@
package cc.polyfrost.oneconfig.gui.elements.config;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.config.annotations.Text;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.gui.elements.text.TextInputField;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.utils.InputUtils;
import org.lwjgl.input.Mouse;
@@ -16,11 +17,16 @@ public class ConfigTextBox extends BasicOption {
private final boolean multiLine;
private final TextInputField textField;
- public ConfigTextBox(Field field, Object parent, String name, int size, String placeholder, boolean secure, boolean multiLine) {
- super(field, parent, name, size);
+ public ConfigTextBox(Field field, Object parent, String name, String category, String subcategory, int size, String placeholder, boolean secure, boolean multiLine) {
+ super(field, parent, name, category, subcategory, size);
this.secure = secure;
this.multiLine = multiLine;
- this.textField = new TextInputField(size == 1 && hasHalfSize() ? 256 : 640, multiLine ? 64 : 32, placeholder, multiLine, secure);
+ this.textField = new TextInputField(size == 1 ? 256 : 640, multiLine ? 64 : 32, placeholder, multiLine, secure);
+ }
+
+ public static ConfigTextBox create(Field field, Object parent) {
+ Text text = field.getAnnotation(Text.class);
+ return new ConfigTextBox(field, parent, text.name(), text.category(), text.subcategory(), text.secure() || text.multiline() ? 2 : text.size(), text.placeholder(), text.secure(), text.multiline());
}
@Override
@@ -37,7 +43,7 @@ public class ConfigTextBox extends BasicOption {
if (multiLine && textField.getLines() > 2) textField.setHeight(64 + 24 * (textField.getLines() - 2));
else if (multiLine) textField.setHeight(64);
- textField.draw(vg, x + (size == 1 && hasHalfSize() ? 224 : 352), y);
+ textField.draw(vg, x + (size == 1 ? 224 : 352), y);
if (secure) {
SVGs icon = textField.getPassword() ? SVGs.EYE_OFF : SVGs.EYE;
@@ -64,9 +70,4 @@ public class ConfigTextBox extends BasicOption {
public int getHeight() {
return multiLine ? textField.getHeight() : 32;
}
-
- @Override
- public boolean hasHalfSize() {
- return !secure && !multiLine;
- }
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/text/NumberInputField.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/text/NumberInputField.java
index a76c242..e6cf5d9 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/text/NumberInputField.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/text/NumberInputField.java
@@ -1,10 +1,10 @@
package cc.polyfrost.oneconfig.gui.elements.text;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.gui.animations.ColorAnimation;
import cc.polyfrost.oneconfig.gui.elements.BasicElement;
import cc.polyfrost.oneconfig.renderer.RenderManager;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
public class NumberInputField extends TextInputField {
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/text/TextInputField.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/text/TextInputField.java
index 3fde012..559b2b2 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/text/TextInputField.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/text/TextInputField.java
@@ -1,10 +1,10 @@
package cc.polyfrost.oneconfig.gui.elements.text;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.gui.elements.BasicElement;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
import cc.polyfrost.oneconfig.renderer.scissor.Scissor;
import cc.polyfrost.oneconfig.renderer.scissor.ScissorManager;
import cc.polyfrost.oneconfig.utils.InputUtils;
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/pages/CreditsPage.java b/src/main/java/cc/polyfrost/oneconfig/gui/pages/CreditsPage.java
index ddc144c..455a538 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/pages/CreditsPage.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/pages/CreditsPage.java
@@ -2,7 +2,7 @@ package cc.polyfrost.oneconfig.gui.pages;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
public class CreditsPage extends Page {
public CreditsPage() {
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/pages/HomePage.java b/src/main/java/cc/polyfrost/oneconfig/gui/pages/HomePage.java
index 4c24058..53394a1 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/pages/HomePage.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/pages/HomePage.java
@@ -1,9 +1,9 @@
package cc.polyfrost.oneconfig.gui.pages;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
-import cc.polyfrost.oneconfig.renderer.image.SVGs;
+import cc.polyfrost.oneconfig.internal.assets.SVGs;
public class HomePage extends Page {
/*private final BasicButton socialsBtn = new BasicButton(184, 36, "Socials", SVGs.SHARE, SVGs.POP_OUT, BasicButton.ALIGNMENT_CENTER, ColorUtils.PRIMARY);
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/pages/ModsPage.java b/src/main/java/cc/polyfrost/oneconfig/gui/pages/ModsPage.java
index c192255..797512f 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/pages/ModsPage.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/pages/ModsPage.java
@@ -1,7 +1,7 @@
package cc.polyfrost.oneconfig.gui.pages;
import cc.polyfrost.oneconfig.internal.OneConfig;
-import cc.polyfrost.oneconfig.gui.Colors;
+import cc.polyfrost.oneconfig.internal.assets.Colors;
import cc.polyfrost.oneconfig.config.data.Mod;
import cc.polyfrost.oneconfig.config.data.ModType;
import cc.polyfrost.oneconfig.gui.OneConfigGui;