diff options
author | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-06-13 21:17:51 +0200 |
---|---|---|
committer | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-06-13 21:17:51 +0200 |
commit | d246278dfe0ad7816d5a8db6ff04c1e8501e8125 (patch) | |
tree | d1eed5eae773b3d25a44fd323c8a7f2772079a93 /src/main/java/cc/polyfrost/oneconfig/gui/elements | |
parent | 1500cf9ad6bdb8240f2b01c117c06944ec30651a (diff) | |
download | OneConfig-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')
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); |