aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/polyfrost/oneconfig/gui/elements/BasicElement.java
diff options
context:
space:
mode:
authornextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-04-20 13:46:50 +0100
committernextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-04-20 13:46:50 +0100
commit30df910cf3b2f5b0683ce01e391c35829d8a5850 (patch)
treedf5b03bd6da6041f344bca41304da6133e0a85d4 /src/main/java/io/polyfrost/oneconfig/gui/elements/BasicElement.java
parent1bad96837b69d0a04940985f6206d3fe91594822 (diff)
downloadOneConfig-30df910cf3b2f5b0683ce01e391c35829d8a5850.tar.gz
OneConfig-30df910cf3b2f5b0683ce01e391c35829d8a5850.tar.bz2
OneConfig-30df910cf3b2f5b0683ce01e391c35829d8a5850.zip
hella gui stuff
Diffstat (limited to 'src/main/java/io/polyfrost/oneconfig/gui/elements/BasicElement.java')
-rw-r--r--src/main/java/io/polyfrost/oneconfig/gui/elements/BasicElement.java94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/BasicElement.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/BasicElement.java
new file mode 100644
index 0000000..0b7d604
--- /dev/null
+++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/BasicElement.java
@@ -0,0 +1,94 @@
+package io.polyfrost.oneconfig.gui.elements;
+
+import io.polyfrost.oneconfig.lwjgl.RenderManager;
+import io.polyfrost.oneconfig.utils.ColorUtils;
+import net.minecraft.client.Minecraft;
+import org.lwjgl.input.Mouse;
+
+public class BasicElement {
+ private int width;
+ private int height;
+ private int colorPalette;
+
+ private int hitBoxX, hitBoxY;
+
+ private final boolean hoverFx;
+
+ private boolean hovered = false;
+ private boolean clicked = false;
+ private boolean toggled = false;
+
+ private int currentColor;
+
+ public BasicElement(int width, int height, int colorPalette, boolean hoverFx) {
+ this.height = height;
+ this.width = width;
+ this.colorPalette = colorPalette;
+ this.hoverFx = hoverFx;
+ }
+
+ public BasicElement(int width, int height, boolean hoverFx) {
+ this.height = height;
+ this.width = width;
+ this.colorPalette = -1;
+ this.hoverFx = hoverFx;
+ }
+
+
+ public void draw(long vg, int x, int y) {
+ RenderManager.drawRectangle(vg, x, y, width, height, currentColor);
+ int mouseX = Mouse.getX();
+ int mouseY = Minecraft.getMinecraft().displayHeight - Math.abs(Mouse.getY());
+ int buttonRight = x + width;
+ int buttonBottom = y + height;
+
+ hovered = mouseX > x - hitBoxX && mouseY > y - hitBoxY && mouseX < buttonRight + hitBoxX && mouseY < buttonBottom + hitBoxY;
+ if (Mouse.isButtonDown(0) && clicked) {
+ toggled = !toggled;
+ }
+ clicked = Mouse.isButtonDown(0) && hovered;
+
+ if (hoverFx) {
+ currentColor = ColorUtils.getColor(currentColor, colorPalette, hovered, clicked);
+ }
+ }
+
+
+ public void setCustomHitbox(int x, int y) {
+ hitBoxX = x;
+ hitBoxY = y;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public void setColorPalette(int colorPalette) {
+ this.colorPalette = colorPalette;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public boolean isHovered() {
+ return hovered;
+ }
+
+ public boolean isClicked() {
+ return clicked;
+ }
+
+ public boolean isToggled() {
+ return toggled;
+ }
+
+}