diff options
author | nextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com> | 2022-04-20 13:46:50 +0100 |
---|---|---|
committer | nextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com> | 2022-04-20 13:46:50 +0100 |
commit | 30df910cf3b2f5b0683ce01e391c35829d8a5850 (patch) | |
tree | df5b03bd6da6041f344bca41304da6133e0a85d4 /src/main/java/io/polyfrost/oneconfig/gui/elements/BasicElement.java | |
parent | 1bad96837b69d0a04940985f6206d3fe91594822 (diff) | |
download | OneConfig-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.java | 94 |
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; + } + +} |