From 5729680b05af1cbe589a7296ee758da4e1674f29 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Wed, 26 Feb 2025 15:55:49 +0100 Subject: [PATCH] finally a working ui --- .../auraclient/menus/CloakSelector.java | 30 +++-------- .../auraclient/auraclient/menus/MainMenu.java | 20 +++---- .../auraclient/auraclient/ui/AuraTexture.java | 7 --- .../org/auraclient/auraclient/ui/AuraUi.java | 49 ------------------ .../auraclient/auraclient/ui/AuraWidget.java | 40 -------------- .../auraclient/textures/gui/box/box.png | Bin 2429 -> 0 bytes .../textures/gui/sprites/widget/button.png | Bin 0 -> 391 bytes .../gui/sprites/widget/button.png.mcmeta | 10 ++++ 8 files changed, 24 insertions(+), 132 deletions(-) delete mode 100644 src/main/java/org/auraclient/auraclient/ui/AuraTexture.java delete mode 100644 src/main/java/org/auraclient/auraclient/ui/AuraUi.java delete mode 100644 src/main/java/org/auraclient/auraclient/ui/AuraWidget.java delete mode 100644 src/main/resources/assets/auraclient/textures/gui/box/box.png create mode 100644 src/main/resources/assets/minecraft/textures/gui/sprites/widget/button.png create mode 100644 src/main/resources/assets/minecraft/textures/gui/sprites/widget/button.png.mcmeta diff --git a/src/main/java/org/auraclient/auraclient/menus/CloakSelector.java b/src/main/java/org/auraclient/auraclient/menus/CloakSelector.java index c439f0d..150b949 100644 --- a/src/main/java/org/auraclient/auraclient/menus/CloakSelector.java +++ b/src/main/java/org/auraclient/auraclient/menus/CloakSelector.java @@ -1,34 +1,18 @@ package org.auraclient.auraclient.menus; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.text.Text; -import org.auraclient.auraclient.AuraClient; -import org.auraclient.auraclient.ui.AuraUi; -import org.auraclient.auraclient.ui.AuraTexture; -import net.minecraft.util.Identifier; -import org.auraclient.auraclient.ui.AuraWidget; -public class CloakSelector extends AuraUi { +public class CloakSelector extends Screen { public CloakSelector() { - super(Text.of("UI")); + super(Text.literal("Cloaks")); } @Override - public void ui(DrawContext context) { - int width = (32 * (AuraClient.list.size() + 1)); - int x = (context.getScaledWindowWidth() - (width - 8)) / 2; - int y = (context.getScaledWindowHeight() - 92) / 2; + protected void init() { + ButtonWidget btn = ButtonWidget.builder(Text.literal("Cloaks"), (_button) -> {}).dimensions((this.width - 50) / 2, (this.height - 30) / 2, 50, 30).build(); - widgets.add(new AuraWidget(AuraTexture.BOX, x - 8, y - 8, width, 108)); - - for (int i = 0; i < AuraClient.list.size(); i++) { - String cloak = AuraClient.list.get(i); - - widgets.add(new AuraWidget(Identifier.of("auraclient", "textures/gui/cloaks/"+cloak.replaceAll("\\.(gif|png)", "")+".prev.png"), x, y, 32, 92, () -> { - AuraClient.cape = cloak; - })); - - x += 40; - } + addDrawableChild(btn); } } diff --git a/src/main/java/org/auraclient/auraclient/menus/MainMenu.java b/src/main/java/org/auraclient/auraclient/menus/MainMenu.java index 9f850aa..3be6764 100644 --- a/src/main/java/org/auraclient/auraclient/menus/MainMenu.java +++ b/src/main/java/org/auraclient/auraclient/menus/MainMenu.java @@ -1,24 +1,18 @@ package org.auraclient.auraclient.menus; -import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.text.Text; -import org.auraclient.auraclient.AuraClient; -import org.auraclient.auraclient.ui.AuraTexture; -import org.auraclient.auraclient.ui.AuraUi; -import org.auraclient.auraclient.ui.AuraWidget; -public class MainMenu extends AuraUi { +public class MainMenu extends Screen { public MainMenu() { - super(Text.of("Main Menu")); + super(Text.literal("Custom Screen")); } @Override - public void ui(DrawContext context) { - int x = (context.getScaledWindowWidth() - 30) / 2; - int y = (context.getScaledWindowHeight() - 14) / 2; + protected void init() { + ButtonWidget btn = ButtonWidget.builder(Text.literal("Cloaks"), (_button) -> {}).dimensions((this.width - 50) / 2, (this.height - 30) / 2, 50, 30).build(); - widgets.add(new AuraWidget(AuraTexture.BOX, x, y, 30, 14, () -> { - client.setScreen(new CloakSelector()); - })); + addDrawableChild(btn); } } \ No newline at end of file diff --git a/src/main/java/org/auraclient/auraclient/ui/AuraTexture.java b/src/main/java/org/auraclient/auraclient/ui/AuraTexture.java deleted file mode 100644 index 8c7e870..0000000 --- a/src/main/java/org/auraclient/auraclient/ui/AuraTexture.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.auraclient.auraclient.ui; - -import net.minecraft.util.Identifier; - -public class AuraTexture { - public static Identifier BOX = Identifier.of("auraclient", "textures/gui/box/box.png"); -} diff --git a/src/main/java/org/auraclient/auraclient/ui/AuraUi.java b/src/main/java/org/auraclient/auraclient/ui/AuraUi.java deleted file mode 100644 index 1ef3d7f..0000000 --- a/src/main/java/org/auraclient/auraclient/ui/AuraUi.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.auraclient.auraclient.ui; - -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.text.Text; - -import java.util.ArrayList; - -public abstract class AuraUi extends Screen { - public final ArrayList widgets = new ArrayList<>(); - - protected AuraUi(Text title) { - super(title); - } - - @Override - protected void init() {} - - public void ui(DrawContext context) {} - - @Override - public void render(DrawContext context, int mouseX, int mouseY, float delta) { - widgets.clear(); - - ui(context); - - for (AuraWidget widget : widgets) { - widget.client = client; - widget.render(context, isInside(mouseX, mouseY, widget.x, widget.y, widget.x + widget.width, widget.y + widget.height)); - } - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (button == 0) { - for (AuraWidget widget : widgets) { - if (isInside(mouseX, mouseY, widget.x, widget.y, widget.x + widget.width, widget.y + widget.height)) { - widget.onClick.run(); - } - } - } - - return super.mouseClicked(mouseX, mouseY, button); - } - - private boolean isInside(double mouseX, double mouseY, int x1, int y1, int x2, int y2) { - return mouseX >= x1 && mouseX <= x2 && mouseY >= y1 && mouseY <= y2; - } -} diff --git a/src/main/java/org/auraclient/auraclient/ui/AuraWidget.java b/src/main/java/org/auraclient/auraclient/ui/AuraWidget.java deleted file mode 100644 index 5319ef3..0000000 --- a/src/main/java/org/auraclient/auraclient/ui/AuraWidget.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.auraclient.auraclient.ui; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.util.Identifier; - -public class AuraWidget { - public int x; - public int y; - public int width; - public int height; - public MinecraftClient client; - public Identifier sprite; - public Runnable onClick; - - public AuraWidget(Identifier sprite, int x, int y, int width, int height) { - this.x = x; - this.y = y; - - this.width = width; - this.height = height; - this.sprite = sprite; - this.onClick = () -> {}; - } - - public AuraWidget(Identifier sprite, int x, int y, int width, int height, Runnable onClick) { - this.x = x; - this.y = y; - - this.width = width; - this.height = height; - this.sprite = sprite; - this.onClick = onClick; - } - - void render(DrawContext context, boolean hover) { - context.drawTexture(RenderLayer::getGuiTextured, sprite, x, y, 0, 0, width, height, width, height); - } -} diff --git a/src/main/resources/assets/auraclient/textures/gui/box/box.png b/src/main/resources/assets/auraclient/textures/gui/box/box.png deleted file mode 100644 index a408ab27e49950946f41720eaf441158f974e44b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2429 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 diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/widget/button.png b/src/main/resources/assets/minecraft/textures/gui/sprites/widget/button.png new file mode 100644 index 0000000000000000000000000000000000000000..c90a966ae5da02f59b0035e9e6f5b190be401367 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!G6*(Hg4;y zI)*0?fzl^DT^vIy=DfXikn50v0Lz7(3oNr&y!cZ{Qc2wEPC1Q=C5`5a&Fx@trh-SK`&={dgN5G*D`uf%q~4_ z`s}5qW_9kG;vI<>CXwj{i!W4eIrqSAscm2RN}rQfP0AYHjH#LnbXcb>ZP+9dFpcR{ zkV7OFP;kF>k)-{lBGGV@BG&2kMa=7_9!)xwpm>#?+b7Y