From 313dd4b660206db1758a6ffc32e5b29c21f73721 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Sat, 5 Apr 2025 11:35:41 +0200 Subject: [PATCH] ui stuff and smooth blur --- gradle.properties | 2 +- .../saturnclient/menus/CloaksMenu.java | 2 +- .../saturnclient/menus/HatsMenu.java | 2 +- .../saturnclient/menus/ModMenu.java | 2 +- .../menus/SaturnConfigEditor.java | 223 ++++-------------- .../java/org/saturnclient/ui/SaturnUi.java | 24 +- .../java/org/saturnclient/ui/Textures.java | 8 +- .../textures/gui/sprites/saturn/tabs.png | Bin 1153 -> 0 bytes .../textures/gui/sprites}/button.png | Bin .../textures/gui/sprites}/button.png.mcmeta | 0 .../textures/gui/sprites}/button_border.png | Bin .../gui/sprites}/button_border.png.mcmeta | 0 .../textures/gui/sprites}/rect.png | Bin .../textures/gui/sprites}/rect.png.mcmeta | 0 .../textures/gui/sprites}/settings_bg.png | Bin src/main/resources/fabric.mod.json | 2 +- 16 files changed, 81 insertions(+), 184 deletions(-) delete mode 100644 src/main/resources/assets/minecraft/textures/gui/sprites/saturn/tabs.png rename src/main/resources/assets/{minecraft/textures/gui/sprites/saturn => saturnclient/textures/gui/sprites}/button.png (100%) rename src/main/resources/assets/{minecraft/textures/gui/sprites/saturn => saturnclient/textures/gui/sprites}/button.png.mcmeta (100%) rename src/main/resources/assets/{minecraft/textures/gui/sprites/saturn => saturnclient/textures/gui/sprites}/button_border.png (100%) rename src/main/resources/assets/{minecraft/textures/gui/sprites/saturn => saturnclient/textures/gui/sprites}/button_border.png.mcmeta (100%) rename src/main/resources/assets/{minecraft/textures/gui/sprites/saturn => saturnclient/textures/gui/sprites}/rect.png (100%) rename src/main/resources/assets/{minecraft/textures/gui/sprites/saturn => saturnclient/textures/gui/sprites}/rect.png.mcmeta (100%) rename src/main/resources/assets/{minecraft/textures/gui/sprites/saturn => saturnclient/textures/gui/sprites}/settings_bg.png (100%) diff --git a/gradle.properties b/gradle.properties index 10a6582..f37aaf1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ org.gradle.jvmargs=-Xmx1G # check these on https://modmuss50.me/fabric.html minecraft_version=1.21.4 yarn_mappings=1.21.4+build.7 - loader_version=0.16.9 + loader_version=0.16.10 # Mod Properties mod_version = 0.0.1-alpha0 diff --git a/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java index ce13374..caf63aa 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java @@ -37,7 +37,7 @@ public class CloaksMenu extends SaturnUi { int tabsY = rectY - 17; draw( - new SaturnSprite(Textures.TABS) + new SaturnSprite(Textures.RECT) .setX(tabsX) .setY(tabsY) .setWidth(43) diff --git a/src/main/java/org/saturnclient/saturnclient/menus/HatsMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/HatsMenu.java index 7d2083d..33df015 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/HatsMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/HatsMenu.java @@ -37,7 +37,7 @@ public class HatsMenu extends SaturnUi { int tabsY = rectY - 17; draw( - new SaturnSprite(Textures.TABS) + new SaturnSprite(Textures.RECT) .setX(tabsX) .setY(tabsY) .setWidth(43) diff --git a/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java index e9b3c6e..fb895ff 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java @@ -37,7 +37,7 @@ public class ModMenu extends SaturnUi { int tabsY = modsY - 17; draw( - new SaturnSprite(Textures.TABS) + new SaturnSprite(Textures.RECT) .setX(tabsX) .setY(tabsY) .setWidth(43) diff --git a/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java b/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java index 6e433d4..aa9c583 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java @@ -1,189 +1,64 @@ package org.saturnclient.saturnclient.menus; -import java.util.Map; -import net.minecraft.text.Text; import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.saturnclient.config.Property; -import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.Textures; -import org.saturnclient.ui.components.SaturnFloat; -import org.saturnclient.ui.components.SaturnHex; -import org.saturnclient.ui.components.SaturnInteger; -import org.saturnclient.ui.components.SaturnString; -import org.saturnclient.ui.components.SaturnToggle; -import org.saturnclient.ui.widgets.SaturnScroll; +import org.saturnclient.ui.widgets.SaturnClickableImage; import org.saturnclient.ui.widgets.SaturnSprite; -import org.saturnclient.ui.widgets.SaturnText; -public class SaturnConfigEditor extends SaturnUi { +public class SaturnConfigEditor extends ConfigEditor { - public SaturnConfigEditor() { - super(Text.of("Config editor")); - } + public SaturnConfigEditor() { + super(SaturnClient.config); + } - @Override - protected void init() { - int rectWidth = 330; - int rectHeight = 228; - int rectX = (width - rectWidth) / 2; - int rectY = (height - rectHeight + 15) / 2; + @Override + protected void init() { + int rectHeight = 228; + int rectY = (height - rectHeight + 15) / 2; - draw( - new SaturnSprite(Textures.SETTINGS_BG) - .setX(rectX) - .setY(rectY) - .setWidth(rectWidth) - .setHeight(rectHeight) - .setAnimations(SaturnClient.getAnimations())); + int tabsX = (width - 43) / 2; + int tabsY = rectY - 17; - SaturnScroll configScroll = new SaturnScroll(); + draw( + new SaturnSprite(Textures.RECT) + .setX(tabsX) + .setY(tabsY) + .setWidth(43) + .setHeight(15) + .setAnimations(SaturnClient.getAnimations())); - int row = 0; - int col = 0; + int tabSize = 9; + tabsX = (width - tabSize) / 2; + draw( + new SaturnClickableImage(Textures.SETTINGS, () -> { + }) + .setSelected(true) + .setX(tabsX) + .setY(tabsY + 3) + .setWidth(tabSize) + .setHeight(tabSize) + .setAnimations(SaturnClient.getAnimations())); - drawProperties(configScroll, SaturnClient.config.getProperties(), rectWidth, row, col); + draw( + new SaturnClickableImage(Textures.MODS_TAB, () -> { + client.setScreen(new ModMenu()); + }) + .setX(tabsX - 12) + .setY(tabsY + 3) + .setWidth(tabSize) + .setHeight(tabSize) + .setAnimations(SaturnClient.getAnimations())); - draw( - configScroll - .setX(rectX + 17) - .setY(rectY + 10) - .setWidth(rectWidth - 17) - .setHeight(rectHeight - 10) - .setAnimations(SaturnClient.getAnimations())); + draw( + new SaturnClickableImage(Textures.SEARCH, () -> { + System.out.println("Pressed"); + }) + .setX(tabsX + 12) + .setY(tabsY + 3) + .setWidth(tabSize) + .setHeight(tabSize) + .setAnimations(SaturnClient.getAnimations())); - super.init(); - } - - @SuppressWarnings("unchecked") - private int drawProperties(SaturnScroll configScroll, Map> properties, int rectWidth, - int row, int col) { - int totalRows = row; - for (Map.Entry> propEntry : properties.entrySet()) { - Property prop = propEntry.getValue(); - String propName = propEntry.getKey(); - - boolean full = isFull(prop); - - if (full && col > 0) { - col = 0; - totalRows++; - } - - int modX = ((rectWidth / 2) - 17) * col; - int modY = 14 * totalRows; - - switch (prop.getType()) { - case BOOLEAN: - configScroll.draw( - new SaturnToggle((Property) prop) - .setX(modX) - .setY(modY)); - configScroll.draw( - new SaturnText( - propName.substring(0, 1).toUpperCase() + - propName.substring(1)) - .setX(modX + 18) - .setY(modY) - .setScale(0.8f)); - break; - case INTEGER: - configScroll.draw( - new SaturnText( - propName.substring(0, 1).toUpperCase() + - propName.substring(1)) - .setX(modX) - .setY(modY) - .setScale(0.8f)); - - configScroll.draw( - new SaturnInteger( - (Property) prop, - (rectWidth / 2) - 17, - modY, - 70)); - break; - case FLOAT: - configScroll.draw( - new SaturnText( - propName.substring(0, 1).toUpperCase() + - propName.substring(1)) - .setX(modX) - .setY(modY) - .setScale(0.8f)); - - configScroll.draw( - new SaturnFloat( - (Property) prop, - (rectWidth / 2) - 17, - modY, - 70)); - break; - case STRING: - configScroll.draw( - new SaturnText( - propName.substring(0, 1).toUpperCase() + - propName.substring(1)) - .setX(modX) - .setY(modY) - .setScale(0.8f)); - - configScroll.draw( - new SaturnString( - (Property) prop, - (rectWidth / 2) - 17, - modY, - 70)); - break; - case HEX: - configScroll.draw( - new SaturnText( - propName.substring(0, 1).toUpperCase() + - propName.substring(1)) - .setX(modX) - .setY(modY) - .setScale(0.8f)); - - configScroll.draw( - new SaturnHex( - (Property) prop, - (rectWidth / 2) - 17, - modY, - 70)); - break; - case NAMESPACE: - configScroll.draw( - new SaturnText( - propName.substring(0, 1).toUpperCase() + - propName.substring(1)) - .setX(modX) - .setY(modY) - .setScale(0.8f)); - - // Recursively draw nested properties and update total rows - Map> nestedProperties = (Map>) prop.value; - totalRows = drawProperties(configScroll, nestedProperties, rectWidth, - totalRows + 1, 0); - } - - if (full) { - totalRows++; - } else { - col++; - if (col > 1) { - col = 0; - totalRows++; - } - } - } - return totalRows; - } - - public static boolean isFull(Property prop) { - switch (prop.getType()) { - case BOOLEAN: - return false; - default: - return true; - } - } + super.init(); + } } diff --git a/src/main/java/org/saturnclient/ui/SaturnUi.java b/src/main/java/org/saturnclient/ui/SaturnUi.java index cbd26dd..2ea67a3 100644 --- a/src/main/java/org/saturnclient/ui/SaturnUi.java +++ b/src/main/java/org/saturnclient/ui/SaturnUi.java @@ -5,9 +5,13 @@ import java.util.List; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; + +import net.minecraft.client.gl.PostEffectProcessor; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.render.DefaultFramebufferSet; import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.util.Pool; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.MutableText; import net.minecraft.text.Style; @@ -19,6 +23,9 @@ public class SaturnUi extends Screen { private final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); + private final Pool pool = new Pool(3); + private float f = 0.0f; + public static MutableText text(String text) { return Text.literal(text).setStyle( Style.EMPTY.withFont(Identifier.of("saturnclient:panton"))); @@ -101,7 +108,17 @@ public class SaturnUi extends Screen { int mouseX, int mouseY, float delta) { - renderBackground(context, mouseX, mouseY, delta); + // Blur + if (!(f < 1.0F)) { + PostEffectProcessor postEffectProcessor = this.client.getShaderLoader().loadPostEffect( + Identifier.ofVanilla("blur"), + DefaultFramebufferSet.MAIN_ONLY); + if (postEffectProcessor != null) { + postEffectProcessor.setUniforms("Radius", f); + postEffectProcessor.render(this.client.getFramebuffer(), this.pool); + } + + } for (SaturnWidget widget : new ArrayList<>(widgets)) { if (!widget.visible) @@ -236,6 +253,11 @@ public class SaturnUi extends Screen { } public void saturnTick() { + synchronized (scheduler) { + if (f < 20.0f) { + f += 1.0f; + } + } synchronized (widgets) { for (SaturnWidget widget : widgets) { if (widget.visible && widget.animations != null) { diff --git a/src/main/java/org/saturnclient/ui/Textures.java b/src/main/java/org/saturnclient/ui/Textures.java index a70c0f0..39e4859 100644 --- a/src/main/java/org/saturnclient/ui/Textures.java +++ b/src/main/java/org/saturnclient/ui/Textures.java @@ -20,10 +20,10 @@ public class Textures { public static final Identifier LOGO_TEXT = Identifier.of("saturnclient", "textures/logo/text.png"); // Widgets - public static final Identifier BUTTON_BORDER = Identifier.ofVanilla("saturn/button_border"); - public static final Identifier BUTTON = Identifier.ofVanilla("saturn/button"); - public static final Identifier SETTINGS_BG = Identifier.ofVanilla("saturn/settings_bg"); - public static final Identifier TABS = Identifier.ofVanilla("saturn/tabs"); + public static final Identifier BUTTON_BORDER = Identifier.of("saturnclient", "button_border"); + public static final Identifier BUTTON = Identifier.of("saturnclient", "button"); + public static final Identifier SETTINGS_BG = Identifier.of("saturnclient", "settings_bg"); + public static final Identifier RECT = Identifier.of("saturnclient", "rect"); public static final Identifier MOD = Identifier.of("saturnclient", "textures/gui/components/mod.png"); public static final Identifier MOD_BG = Identifier.of("saturnclient", "textures/gui/components/mod_bg.png"); diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/tabs.png b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/tabs.png deleted file mode 100644 index 5187314e1aeb84407e1f0ec31e417a5df19d6dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1153 zcmeAS@N?(olHy`uVBq!ia0y~yU@QT$8#&m3Um(R<;1OBOz@TUW!i=ud3=@EY zjKx9jP7LeL$-D$|SkfJR9T^xl_H+M9WCe1?JY5_^Dj471wGUGX6*=&bn`N>`3JdoE zR-Y8Nlp`}1TW)6Xy}~Q8gYhKKloKxLjGGyilsio_jV2c|e%1>q%&L;wl_|08zU}?; zbF#nueScZMw}}&t{%BElTV|VO#^&qKHk-}ona})T-D$JUX5xqE@V}Q&(Y`i)qg~$T z8VQDL(-ZBx*^kuDUC^&+&!=6`!2d9G_T?SvH{MHsnJiG$u)N6Xj8_=%ue#auA650s zG%TO|`>lR*>(yU=I^UJnCGV4Gu-SS?&@$_D{_Og9y9y#N6n8(JZFZiipTD-G$=SPx~1bi0}OR z>FEdKZR+tB7nv?h{}`wfer&<>SAR4ZUYtGqIO5oX>L?|L`FUY4lP~l$H^jy2o-%&1 z^X{XC(F}i2EqI^T{#LAki_iE)*mH)z)&eCBQs0i*mN5J(+v@cFj#$ILw|VRgq8wHZ zqD_1OEen`M6kjm70=a^tT>PQo!uHpf;lf^?U;h~$-ls`^+0Wc?FE;IhK8Q-Wpw9%P zSpSwXT-g2jQ}4$(-5y`~s`&g81~G=f6Ga{rrNVc30Gte#i4O=Cd;Ft-P8x zO@G<;f6+^szdSFgG34D9YUL1b^lbCTv)7uq>#~al7;-l4(fo4sOS7wg^dGaFy+D4> zm(xG_%ky@A*l*U(ctGvf!n5(8<=@>Y`uM}5;W<#?WbNns;yu#qEdcdsNj0wF4h27xkB0x65h%sjI&{XD?=Wu(6l>MfLr?`~5DsOMZ)4E8i|XkwNZN z&5W(`hd)hN;NM$lFQIn-c0PMW{4uNl7WMyZpYOSC{QX4yapgM~eu`b6k-fg{aeFPW P#9;7r^>bP0l+XkKmet|e diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png b/src/main/resources/assets/saturnclient/textures/gui/sprites/button.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png rename to src/main/resources/assets/saturnclient/textures/gui/sprites/button.png diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png.mcmeta b/src/main/resources/assets/saturnclient/textures/gui/sprites/button.png.mcmeta similarity index 100% rename from src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png.mcmeta rename to src/main/resources/assets/saturnclient/textures/gui/sprites/button.png.mcmeta diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png b/src/main/resources/assets/saturnclient/textures/gui/sprites/button_border.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png rename to src/main/resources/assets/saturnclient/textures/gui/sprites/button_border.png diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png.mcmeta b/src/main/resources/assets/saturnclient/textures/gui/sprites/button_border.png.mcmeta similarity index 100% rename from src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png.mcmeta rename to src/main/resources/assets/saturnclient/textures/gui/sprites/button_border.png.mcmeta diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/rect.png b/src/main/resources/assets/saturnclient/textures/gui/sprites/rect.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/gui/sprites/saturn/rect.png rename to src/main/resources/assets/saturnclient/textures/gui/sprites/rect.png diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/rect.png.mcmeta b/src/main/resources/assets/saturnclient/textures/gui/sprites/rect.png.mcmeta similarity index 100% rename from src/main/resources/assets/minecraft/textures/gui/sprites/saturn/rect.png.mcmeta rename to src/main/resources/assets/saturnclient/textures/gui/sprites/rect.png.mcmeta diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/settings_bg.png b/src/main/resources/assets/saturnclient/textures/gui/sprites/settings_bg.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/gui/sprites/saturn/settings_bg.png rename to src/main/resources/assets/saturnclient/textures/gui/sprites/settings_bg.png diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 3652864..5eacd1b 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -7,7 +7,7 @@ "authors": ["Saturn Mc", "ORUS"], "contact": { "website": "https://kleo-dev.netlify.app", - "sources": "https://github.com/kleo-dev/saturnclient" + "sources": "https://github.com/saturnclientmc/saturnclient" }, "license": "GPL-3.0", "icon": "assets/saturnclient/icon.png",