From 08a48c8f92324c686278423745611cb98c227819 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Mon, 21 Apr 2025 17:37:28 +0200 Subject: [PATCH] button element --- .../saturnclient/saturnclient/SaturnClient.java | 2 +- .../saturnclient/menus/SaturnMenu.java | 3 +-- src/main/java/org/saturnclient/ui2/Element.java | 14 ++++++++++++++ .../java/org/saturnclient/ui2/SaturnScreen.java | 5 +++-- .../java/org/saturnclient/ui2/elements/Button.java | 8 ++++++-- 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 75895c6..273ff05 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -36,7 +36,7 @@ public class SaturnClient implements ModInitializer { ScreenEvents.BEFORE_INIT.register((client, screen, scaledWidth, scaledHeight) -> { if (SaturnClientConfig.saturnTitleScreen.value && screen instanceof TitleScreen && !(screen instanceof SaturnMenu)) { - client.setScreen(new SaturnMenu()); + client.setScreen(new SaturnTitleScreen()); } }); diff --git a/src/main/java/org/saturnclient/saturnclient/menus/SaturnMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/SaturnMenu.java index 91c7b91..3d3de03 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/SaturnMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/SaturnMenu.java @@ -2,7 +2,6 @@ package org.saturnclient.saturnclient.menus; import org.saturnclient.ui2.SaturnScreen; import org.saturnclient.ui2.elements.Button; -import org.saturnclient.ui2.elements.Text; public class SaturnMenu extends SaturnScreen { public SaturnMenu() { @@ -11,6 +10,6 @@ public class SaturnMenu extends SaturnScreen { @Override public void ui() { - draw(new Button("Hello, World", false)); + draw(new Button("Settings", false).center(width, height)); } } diff --git a/src/main/java/org/saturnclient/ui2/Element.java b/src/main/java/org/saturnclient/ui2/Element.java index 7592d5e..b2cfba8 100644 --- a/src/main/java/org/saturnclient/ui2/Element.java +++ b/src/main/java/org/saturnclient/ui2/Element.java @@ -19,4 +19,18 @@ public class Element { this.x = x; this.y = y; } + + public final Element center(int w, int h) { + this.x = (w - width) / 2; + this.y = (h - height) / 2; + + return this; + } + + public final Element centerOffset(int w, int h, int offsetX, int offsetY) { + this.x = (w - width) / 2 + offsetX; + this.y = (h - height) / 2 + offsetY; + + return this; + } } diff --git a/src/main/java/org/saturnclient/ui2/SaturnScreen.java b/src/main/java/org/saturnclient/ui2/SaturnScreen.java index 5f4fd8d..6c7ee53 100644 --- a/src/main/java/org/saturnclient/ui2/SaturnScreen.java +++ b/src/main/java/org/saturnclient/ui2/SaturnScreen.java @@ -5,8 +5,6 @@ import java.util.List; import org.saturnclient.saturnclient.mixin.DrawContextAccessor; -import com.mojang.blaze3d.systems.RenderSystem; - import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.Text; @@ -45,7 +43,10 @@ public class SaturnScreen extends Screen { for (Element element : elements) { renderScope.setOpacity(0.5f); + renderScope.matrices.push(); + renderScope.matrices.translate(element.x, element.y, 0); element.render(renderScope); + renderScope.matrices.pop(); } renderScope.matrices.pop(); diff --git a/src/main/java/org/saturnclient/ui2/elements/Button.java b/src/main/java/org/saturnclient/ui2/elements/Button.java index 0527445..150c401 100644 --- a/src/main/java/org/saturnclient/ui2/elements/Button.java +++ b/src/main/java/org/saturnclient/ui2/elements/Button.java @@ -8,17 +8,21 @@ import net.minecraft.util.Identifier; public class Button extends Element { private String text; + private boolean bold; private Identifier font; public Button(String text, boolean bold) { this.text = text; + this.bold = bold; this.font = Fonts.getFont(bold); - this.dimensions(Fonts.getWidth(text, this.font)+ 25 , Fonts.getHeight() + 10); + this.dimensions(Fonts.getWidth(text, font)+ 25 , Fonts.getHeight() + 10); this.color = 0xFFFFFFFF; } @Override public void render(RenderScope renderScope) { - renderScope.drawRoundedRectangle(0, 0, width, height, 10, color); + renderScope.drawRoundedRectangle(0, 0, width, height, 10, 0xFF000000); + + renderScope.drawText(text, width / 2 - Fonts.getWidth(text, font) / 2, height / 2 - Fonts.getHeight() / 2, bold, color); } }