aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/gui/elements
diff options
context:
space:
mode:
authorDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-06-13 21:17:51 +0200
committerDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-06-13 21:17:51 +0200
commitd246278dfe0ad7816d5a8db6ff04c1e8501e8125 (patch)
treed1eed5eae773b3d25a44fd323c8a7f2772079a93 /src/main/java/cc/polyfrost/oneconfig/gui/elements
parent1500cf9ad6bdb8240f2b01c117c06944ec30651a (diff)
downloadOneConfig-d246278dfe0ad7816d5a8db6ff04c1e8501e8125.tar.gz
OneConfig-d246278dfe0ad7816d5a8db6ff04c1e8501e8125.tar.bz2
OneConfig-d246278dfe0ad7816d5a8db6ff04c1e8501e8125.zip
lots of input stuff
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/gui/elements')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java2
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java12
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigColorElement.java8
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigDropdown.java17
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigSlider.java2
5 files changed, 22 insertions, 19 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java
index a4a3321..56eac2d 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java
@@ -44,7 +44,7 @@ public class BasicElement {
public int currentColor;
protected final float radius;
/**
- * Boolean to determine if this element is allowed to be clicked when {@link InputUtils#isBlockingClicks()} is true.
+ * Boolean to determine if this element is allowed to be clicked when {@link InputUtils#isBlockingInput()} is true.
*/
private boolean block = false;
/**
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 f331fd9..4103bca 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java
@@ -54,6 +54,7 @@ public class ColorSelector {
private int mode = 0;
private boolean dragging, mouseWasDown;
private final boolean hasAlpha;
+ private Scissor inputScissor = null;
public ColorSelector(OneColor color, int mouseX, int mouseY) {
this(color, mouseX, mouseY, true);
@@ -106,7 +107,7 @@ public class ColorSelector {
}
public void draw(long vg) {
- InputUtils.blockClicks(false);
+ if (inputScissor != null) InputUtils.stopBlock(inputScissor);
doDrag();
int width = 416;
int height = 768;
@@ -201,11 +202,12 @@ public class ColorSelector {
RenderManager.drawRoundImage(vg, Images.ALPHA_GRID, x + 20, y + 492, 376, 32, 8f);
RenderManager.drawRoundedRect(vg, x + 20, y + 492, 376, 32, color.getRGB(), 8f);
- InputUtils.blockClicks(true);
- if (closeBtn.isClicked() || Mouse.isButtonDown(0) && !mouseWasDown && !InputUtils.isAreaHovered(x - 3, y - 3, width + 6, height + 6))
- OneConfigGui.INSTANCE.closeColorSelector();
+ inputScissor = InputUtils.blockInputArea(x - 3, y - 3, width + 6, height + 6);
ScissorManager.resetScissor(vg, scissor);
mouseWasDown = Mouse.isButtonDown(0);
+ if (closeBtn.isClicked()) {
+ OneConfigGui.INSTANCE.closeColorSelector();
+ }
}
private void drawColorSelector(long vg, int mode, int x, int y) {
@@ -392,7 +394,7 @@ public class ColorSelector {
}
public void onClose() {
- InputUtils.blockClicks(false);
+ if (inputScissor != null) InputUtils.stopBlock(inputScissor);
/*for (int i = 0; i < OneConfigConfig.recentColors.size(); i++) {
OneColor color1 = OneConfigConfig.recentColors.get(i);
if (color1.getRGB() == color.getRGB()) {
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 67488d7..16796e9 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
@@ -85,14 +85,12 @@ public class ConfigColorElement extends BasicOption {
RenderManager.drawHollowRoundRect(vg, x1 + 415, y - 1, 64, 32, Colors.GRAY_300, 12f, 2f);
RenderManager.drawRoundImage(vg, Images.ALPHA_GRID, x1 + 420, y + 4, 56, 24, 8f);
RenderManager.drawRoundedRect(vg, x1 + 420, y + 4, 56, 24, color.getRGB(), 8f);
- if (element.isClicked() && !element.isToggled()) {
- open = !open;
+ if (element.isClicked() && !open) {
+ open = true;
OneConfigGui.INSTANCE.initColorSelector(new ColorSelector(color, InputUtils.mouseX(), InputUtils.mouseY(), allowAlpha));
}
if (OneConfigGui.INSTANCE.currentColorSelector == null) open = false;
- if (OneConfigGui.INSTANCE.currentColorSelector != null && open) {
- color = (OneConfigGui.INSTANCE.getColor());
- }
+ else if (open) color = (OneConfigGui.INSTANCE.getColor());
setColor(color);
RenderManager.setAlpha(vg, 1f);
}
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 657cf99..26d7348 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
@@ -7,6 +7,7 @@ import cc.polyfrost.oneconfig.gui.animations.ColorAnimation;
import cc.polyfrost.oneconfig.renderer.RenderManager;
import cc.polyfrost.oneconfig.renderer.font.Fonts;
import cc.polyfrost.oneconfig.internal.assets.SVGs;
+import cc.polyfrost.oneconfig.renderer.scissor.Scissor;
import cc.polyfrost.oneconfig.utils.InputUtils;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
import org.lwjgl.input.Mouse;
@@ -20,6 +21,7 @@ public class ConfigDropdown extends BasicOption {
private final ColorAnimation backgroundColor = new ColorAnimation(ColorPalette.SECONDARY);
private final ColorAnimation atomColor = new ColorAnimation(new ColorPalette(Colors.PRIMARY_600, Colors.PRIMARY_500, Colors.PRIMARY_500));
private boolean opened = false;
+ private Scissor inputScissor = null;
public ConfigDropdown(Field field, Object parent, String name, String category, String subcategory, int size, String[] options) {
super(field, parent, name, category, subcategory, size);
@@ -45,7 +47,8 @@ public class ConfigDropdown extends BasicOption {
size == 2 && !InputUtils.isAreaHovered(x + 352, y + 40, 640, options.length * 32))) {
opened = !opened;
backgroundColor.setPalette(opened ? ColorPalette.PRIMARY : ColorPalette.SECONDARY);
- InputUtils.blockClicks(opened);
+ if (opened) inputScissor = InputUtils.blockAllInput();
+ else if (inputScissor != null) InputUtils.stopBlock(inputScissor);
}
if (opened) return;
@@ -75,8 +78,8 @@ public class ConfigDropdown extends BasicOption {
if (!opened) return;
boolean hovered;
- if (size == 1) hovered = InputUtils.isAreaHovered(x + 224, y, 256, 32);
- else hovered = InputUtils.isAreaHovered(x + 352, y, 640, 32);
+ if (size == 1) hovered = InputUtils.isAreaHovered(x + 224, y, 256, 32, true);
+ else hovered = InputUtils.isAreaHovered(x + 352, y, 640, 32, true);
int selected = 0;
try {
@@ -98,7 +101,7 @@ public class ConfigDropdown extends BasicOption {
int optionY = y + 44;
for (String option : options) {
int color = Colors.WHITE_80;
- boolean optionHovered = InputUtils.isAreaHovered(x + 224, optionY, 252, 32);
+ boolean optionHovered = InputUtils.isAreaHovered(x + 224, optionY, 252, 32, true);
if (optionHovered && Mouse.isButtonDown(0)) {
RenderManager.drawRoundedRect(vg, x + 228, optionY + 2, 248, 28, Colors.PRIMARY_700_80, 8);
} else if (optionHovered) {
@@ -112,7 +115,7 @@ public class ConfigDropdown extends BasicOption {
}
opened = false;
backgroundColor.setPalette(ColorPalette.SECONDARY);
- InputUtils.blockClicks(false);
+ if (inputScissor != null) InputUtils.stopBlock(inputScissor);
}
RenderManager.drawText(vg, option, x + 240, optionY + 18, color, 14, Fonts.MEDIUM);
@@ -131,7 +134,7 @@ public class ConfigDropdown extends BasicOption {
int optionY = y + 44;
for (String option : options) {
int color = Colors.WHITE_80;
- boolean optionHovered = InputUtils.isAreaHovered(x + 352, optionY, 640, 36);
+ boolean optionHovered = InputUtils.isAreaHovered(x + 352, optionY, 640, 36, true);
if (optionHovered && Mouse.isButtonDown(0)) {
RenderManager.drawRoundedRect(vg, x + 356, optionY + 2, 632, 28, Colors.PRIMARY_700_80, 8);
} else if (optionHovered) {
@@ -148,7 +151,7 @@ public class ConfigDropdown extends BasicOption {
}
opened = false;
backgroundColor.setPalette(ColorPalette.SECONDARY);
- InputUtils.blockClicks(false);
+ if (inputScissor != null) InputUtils.stopBlock(inputScissor);
}
optionY += 32;
}
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 066fdd3..bd02d21 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
@@ -41,7 +41,7 @@ public class ConfigSlider extends BasicOption {
inputField.disable(!isEnabled());
if (!isEnabled()) RenderManager.setAlpha(vg, 0.5f);
boolean isMouseDown = Mouse.isButtonDown(0);
- if (hovered && isMouseDown && !mouseWasDown && !InputUtils.isBlockingClicks()) dragging = true;
+ if (hovered && isMouseDown && !mouseWasDown) dragging = true;
mouseWasDown = isMouseDown;
if (dragging) {
xCoordinate = (int) MathUtils.clamp(InputUtils.mouseX(), x + 352, x + 864);