From 6eebfc2a7d6a9c59295ebbab572aff91c0ac7051 Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Thu, 9 Oct 2025 09:49:40 +1300 Subject: some clickgui improvements, bump version number --- .../clickgui/setting/KeybindingSelector.java | 74 ++++++++++++++++++++++ .../screens/clickgui/setting/Slider.java | 2 +- 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting/KeybindingSelector.java (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting') diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting/KeybindingSelector.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting/KeybindingSelector.java new file mode 100644 index 0000000..32c3ce5 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting/KeybindingSelector.java @@ -0,0 +1,74 @@ +package net.justlearning.arslaan3102.arslaansmagichax.screens.clickgui.setting; + +import net.justlearning.arslaan3102.arslaansmagichax.screens.clickgui.ModuleButton; +import net.minecraft.client.gui.DrawContext; +import org.lwjgl.glfw.GLFW; + +import java.awt.*; + +public class KeybindingSelector extends Component { + + private boolean listening = false; + + public KeybindingSelector(ModuleButton parent, int offset) { + super(null, parent, offset); + } + + @Override + public void render(DrawContext context, int mouseX, int mouseY, float deltaTicks) { + int alpha = isHovered(mouseX, mouseY) ? 230 : 160; + context.fill(parent.parent.x, parent.parent.y + parent.offset + offset, parent.parent.x + parent.parent.width, parent.parent.y + parent.offset + offset + parent.parent.height, new Color(30, 30, 47, alpha).getRGB()); + + if (listening) { + context.fill(parent.parent.x, parent.parent.y + parent.offset + offset, parent.parent.x + parent.parent.width, parent.parent.y + parent.offset + offset + parent.parent.height, new Color(252, 210, 77, 255).getRGB()); + } + + String displayText = listening ? "Press a key..." : "Keybind: " + getKeyName(parent.module.getGlfwKeybinding()); + context.drawTextWithShadow(mc.textRenderer, displayText, parent.parent.x + 5, parent.parent.y + parent.offset + offset + (parent.parent.height - mc.textRenderer.fontHeight) / 2, Color.white.getRGB()); + } + + @Override + public void mouseClicked(double mouseX, double mouseY, int button) { + if (isHovered(mouseX, mouseY) && button == 0) { + listening = !listening; + } + } + + public void onKeyPressed(int keyCode) { + if (!listening) return; + + listening = false; + + if (keyCode == GLFW.GLFW_KEY_ESCAPE || keyCode == GLFW.GLFW_KEY_DELETE || keyCode == GLFW.GLFW_KEY_BACKSPACE) { + // remove bingdingd AHH I CANT SPELL + parent.module.setGlfwKeybinding(-1); + return; + } + + parent.module.setGlfwKeybinding(keyCode); + } + + private String getKeyName(int key) { + if (key == -1) return "NONE"; + String name = GLFW.glfwGetKeyName(key, 0); + + if (name != null) return name.toUpperCase(); + + return switch (key) { + case GLFW.GLFW_KEY_LEFT_SHIFT -> "LSHIFT"; + case GLFW.GLFW_KEY_RIGHT_SHIFT -> "RSHIFT"; + case GLFW.GLFW_KEY_LEFT_CONTROL -> "LCTRL"; + case GLFW.GLFW_KEY_RIGHT_CONTROL -> "RCTRL"; + case GLFW.GLFW_KEY_LEFT_ALT -> "LALT"; + case GLFW.GLFW_KEY_RIGHT_ALT -> "RALT"; + case GLFW.GLFW_KEY_SPACE -> "SPACE"; + case GLFW.GLFW_KEY_TAB -> "TAB"; + case GLFW.GLFW_KEY_ENTER -> "ENTER"; + case GLFW.GLFW_KEY_UP -> "UP"; + case GLFW.GLFW_KEY_DOWN -> "DOWN"; + case GLFW.GLFW_KEY_LEFT -> "LEFT"; + case GLFW.GLFW_KEY_RIGHT -> "RIGHT"; + default -> "KEY_" + key; + }; + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting/Slider.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting/Slider.java index bf002e3..ea39ac6 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting/Slider.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/screens/clickgui/setting/Slider.java @@ -27,7 +27,7 @@ public class Slider extends Component { context.fill(parent.parent.x, parent.parent.y + parent.offset + offset, parent.parent.x + parent.parent.width, parent.parent.y + parent.offset + offset + parent.parent.height, new Color(30, 30, 47, alpha).getRGB()); double diff = Math.min(parent.parent.width, Math.max(0, mouseX - parent.parent.x)); - int renderWidth = (int) (parent.parent.width * (numberSetting.getValue() - numberSetting.getMin()) / (numberSetting.getMax()) - numberSetting.getMin()); + int renderWidth = (int) (parent.parent.width * (numberSetting.getValue() - numberSetting.getMin()) / (numberSetting.getMax() - numberSetting.getMin())); context.fill(parent.parent.x, parent.parent.y + parent.offset + offset, parent.parent.x + renderWidth, parent.parent.y + parent.offset + offset + parent.parent.height, new Color(252, 210, 77, 255).getRGB()); -- cgit v1.2.3