diff options
| author | Arslaan Pathan <[email protected]> | 2026-09-26 17:05:36 +1200 |
|---|---|---|
| committer | Arslaan Pathan <[email protected]> | 2026-09-26 17:05:36 +1200 |
| commit | 14c68eb5ba16774f581d95a39e64a7b303954ffc (patch) | |
| tree | 2888ef11f47c6a639d440300ef580c247ad1bcb1 /src/main/java/com/arslaancodes/arslaansmagichax/screens/clickgui/ClickGUIScreen.java | |
| parent | 766ba1c1d977442332cadaaeca93d795baa559df (diff) | |
| download | arslaansmagichax-14c68eb5ba16774f581d95a39e64a7b303954ffc.tar.xz arslaansmagichax-14c68eb5ba16774f581d95a39e64a7b303954ffc.zip | |
migration to 26.2 - run migrateMappings with old loom then bring it back to new
Diffstat (limited to 'src/main/java/com/arslaancodes/arslaansmagichax/screens/clickgui/ClickGUIScreen.java')
| -rw-r--r-- | src/main/java/com/arslaancodes/arslaansmagichax/screens/clickgui/ClickGUIScreen.java | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/main/java/com/arslaancodes/arslaansmagichax/screens/clickgui/ClickGUIScreen.java b/src/main/java/com/arslaancodes/arslaansmagichax/screens/clickgui/ClickGUIScreen.java new file mode 100644 index 0000000..962a18e --- /dev/null +++ b/src/main/java/com/arslaancodes/arslaansmagichax/screens/clickgui/ClickGUIScreen.java @@ -0,0 +1,82 @@ +package com.arslaancodes.arslaansmagichax.screens.clickgui; + +import com.arslaancodes.arslaansmagichax.ArslaansMagicHaxClient; +import com.arslaancodes.arslaansmagichax.modules.Category; +import com.arslaancodes.arslaansmagichax.screens.clickgui.setting.Component; +import com.arslaancodes.arslaansmagichax.screens.clickgui.setting.KeybindingSelector; +import java.util.ArrayList; +import java.util.List; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.Screen; + +public class ClickGUIScreen extends Screen { + public static final ClickGUIScreen INSTANCE = new ClickGUIScreen(); + + private List<Frame> frames; + + private ClickGUIScreen() { + super(net.minecraft.network.chat.Component.literal("ClickGUI")); + + frames = new ArrayList<>(); + + int offset = 20; + for (Category category : Category.values()) { + frames.add(new Frame(category, offset, 30, 100, 20)); + offset += 120; + } + } + + @Override + public void render(GuiGraphics context, int mouseX, int mouseY, float deltaTicks) { + for (Frame frame : frames) { + frame.render(context, mouseX, mouseY, deltaTicks); + frame.updatePosition(mouseX, mouseY); + } + super.render(context, mouseX, mouseY, deltaTicks); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + for (Frame frame : frames) { + frame.mouseClicked(mouseX, mouseY, button); + } + return super.mouseClicked(mouseX, mouseY, button); + } + + @Override + public boolean mouseReleased(double mouseX, double mouseY, int button) { + for (Frame frame : frames) { + frame.mouseReleased(mouseX, mouseY, button); + } + return super.mouseReleased(mouseX, mouseY, button); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + for (Frame frame : frames) { + if (frame.isOpen) { + for (ModuleButton button : frame.getButtons()) { + if (button.extended) { + for (Component comp : button.components) { + if (comp instanceof KeybindingSelector keybindingSelector) { + keybindingSelector.onKeyPressed(keyCode); + } + } + } + } + } + } + return super.keyPressed(keyCode, scanCode, modifiers); + } + + @Override + public boolean isPauseScreen() { + return false; + } + + @Override + public void onClose() { + super.onClose(); + ArslaansMagicHaxClient.clickGUI.setEnabled(false); + } +} |
