From 0c20cb64fbf57f82f248769f9c8eb2730035c5a6 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Mon, 31 Mar 2025 14:07:40 +0200 Subject: [PATCH] added tab and close on config --- .../saturnclient/SaturnClient.java | 3 +- .../saturnclient/menus/ConfigEditor.java | 174 +++++++-------- .../saturnclient/menus/ModMenu.java | 101 ++++----- .../menus/SaturnConfigEditor.java | 202 ++++++++++-------- .../ui/widgets/SaturnClickableImage.java | 5 + 5 files changed, 236 insertions(+), 249 deletions(-) diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 35e3a2b..41c9f59 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -13,7 +13,6 @@ import org.saturnclient.saturnclient.event.KeyInputHandler; import org.saturnclient.saturnmods.ModManager; import org.saturnclient.ui.SaturnAnimation; import org.saturnclient.ui.animations.FadeIn; -import org.saturnclient.ui.animations.Slide; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,7 +46,7 @@ public class SaturnClient implements ModInitializer { } public static SaturnAnimation[] getAnimations() { - return new SaturnAnimation[] { new FadeIn(1), new Slide(3, 15) }; + return new SaturnAnimation[] { new FadeIn(1) }; } @Override diff --git a/src/main/java/org/saturnclient/saturnclient/menus/ConfigEditor.java b/src/main/java/org/saturnclient/saturnclient/menus/ConfigEditor.java index 636487f..0cbb107 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/ConfigEditor.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/ConfigEditor.java @@ -12,6 +12,7 @@ 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.SaturnImageButton; import org.saturnclient.ui.widgets.SaturnScroll; import org.saturnclient.ui.widgets.SaturnSprite; import org.saturnclient.ui.widgets.SaturnText; @@ -34,25 +35,22 @@ public class ConfigEditor extends SaturnUi { 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; + new SaturnSprite(Textures.SETTINGS_BG) + .setX(rectX) + .setY(rectY) + .setWidth(rectWidth) + .setHeight(rectHeight) + .setAnimations(SaturnClient.getAnimations())); draw( - new SaturnSprite(Textures.TABS) - .setX(tabsX) - .setY(tabsY) - .setWidth(43) - .setHeight(15) - .setAnimations(SaturnClient.getAnimations()) - ); + new SaturnImageButton(Textures.CLOSE, 9, 9, () -> { + this.close(); + }) + .setX(rectX) + .setY(rectY - 15) + .setWidth(13) + .setHeight(13) + .setAnimations(SaturnClient.getAnimations())); SaturnScroll configScroll = new SaturnScroll(); @@ -60,8 +58,8 @@ public class ConfigEditor extends SaturnUi { int col = 0; for (Map.Entry> propEntry : config - .getProperties() - .entrySet()) { + .getProperties() + .entrySet()) { Property prop = propEntry.getValue(); String propName = propEntry.getKey(); @@ -78,99 +76,80 @@ public class ConfigEditor extends SaturnUi { switch (prop.getType()) { case BOOLEAN: configScroll.draw( - new SaturnToggle((Property) prop) - .setX(modX) - .setY(modY) - ); + 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) - ); + 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) - ); + 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 - ) - ); + 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) - ); + 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 - ) - ); + 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) - ); + 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 - ) - ); + 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) - ); + 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 - ) - ); + new SaturnHex( + (Property) prop, + (rectWidth / 2) - 17, + modY, + 70)); break; } @@ -186,13 +165,12 @@ public class ConfigEditor extends SaturnUi { } draw( - configScroll - .setX(rectX + 17) - .setY(rectY + 10) - .setWidth(rectWidth - 17) - .setHeight(rectHeight - 10) - .setAnimations(SaturnClient.getAnimations()) - ); + configScroll + .setX(rectX + 17) + .setY(rectY + 10) + .setWidth(rectWidth - 17) + .setHeight(rectHeight - 10) + .setAnimations(SaturnClient.getAnimations())); super.init(); } diff --git a/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java index 8885ecb..ec732d3 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java @@ -26,60 +26,55 @@ public class ModMenu extends SaturnUi { int modsY = (height - rectHeight + 15) / 2; draw( - new SaturnSprite(Textures.SETTINGS_BG) - .setX(modsX) - .setY(modsY) - .setWidth(rectWidth) - .setHeight(rectHeight) - .setAnimations(SaturnClient.getAnimations()) - ); + new SaturnSprite(Textures.SETTINGS_BG) + .setX(modsX) + .setY(modsY) + .setWidth(rectWidth) + .setHeight(rectHeight) + .setAnimations(SaturnClient.getAnimations())); int tabsX = (width - 43) / 2; int tabsY = modsY - 17; draw( - new SaturnSprite(Textures.TABS) - .setX(tabsX) - .setY(tabsY) - .setWidth(43) - .setHeight(15) - .setAnimations(SaturnClient.getAnimations()) - ); + new SaturnSprite(Textures.TABS) + .setX(tabsX) + .setY(tabsY) + .setWidth(43) + .setHeight(15) + .setAnimations(SaturnClient.getAnimations())); int tabSize = 9; tabsX = (width - tabSize) / 2; draw( - new SaturnClickableImage(Textures.SETTINGS, () -> { - client.setScreen(new SaturnConfigEditor()); - }) - .setX(tabsX) - .setY(tabsY + 3) - .setWidth(tabSize) - .setHeight(tabSize) - .setAnimations(SaturnClient.getAnimations()) - ); + new SaturnClickableImage(Textures.SETTINGS, () -> { + client.setScreen(new SaturnConfigEditor()); + }) + .setX(tabsX) + .setY(tabsY + 3) + .setWidth(tabSize) + .setHeight(tabSize) + .setAnimations(SaturnClient.getAnimations())); draw( - new SaturnClickableImage(Textures.MODS_TAB, () -> { - System.out.println("Pressed"); - }) - .setX(tabsX - 12) - .setY(tabsY + 3) - .setWidth(tabSize) - .setHeight(tabSize) - .setAnimations(SaturnClient.getAnimations()) - ); + new SaturnClickableImage(Textures.MODS_TAB, () -> { + }) + .setColor(SaturnClient.COLOR.value) + .setX(tabsX - 12) + .setY(tabsY + 3) + .setWidth(tabSize) + .setHeight(tabSize) + .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()) - ); + new SaturnClickableImage(Textures.SEARCH, () -> { + System.out.println("Pressed"); + }) + .setX(tabsX + 12) + .setY(tabsY + 3) + .setWidth(tabSize) + .setHeight(tabSize) + .setAnimations(SaturnClient.getAnimations())); int modX = 0; int modY = 0; @@ -89,12 +84,11 @@ public class ModMenu extends SaturnUi { for (SaturnMod mod : ModManager.MODS) { modsScroll.draw( - new SaturnModComp(mod) - .setX(modX) - .setY(modY) - .setWidth(86) - .setHeight(20) - ); + new SaturnModComp(mod) + .setX(modX) + .setY(modY) + .setWidth(86) + .setHeight(20)); col++; @@ -108,13 +102,12 @@ public class ModMenu extends SaturnUi { } draw( - modsScroll - .setX(modsX + 17) - .setY(modsY + 10) - .setWidth(rectWidth - 17) - .setHeight(rectHeight - 20) - .setAnimations(SaturnClient.getAnimations()) - ); + modsScroll + .setX(modsX + 17) + .setY(modsY + 10) + .setWidth(rectWidth - 17) + .setHeight(rectHeight - 20) + .setAnimations(SaturnClient.getAnimations())); super.init(); } diff --git a/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java b/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java index 0eaf73e..fb466ab 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java @@ -11,6 +11,7 @@ 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.SaturnClickableImage; import org.saturnclient.ui.widgets.SaturnScroll; import org.saturnclient.ui.widgets.SaturnSprite; import org.saturnclient.ui.widgets.SaturnText; @@ -30,25 +31,56 @@ public class SaturnConfigEditor extends SaturnUi { int rectY = (height - rectHeight + 15) / 2; draw( - new SaturnSprite(Textures.SETTINGS_BG) - .setX(rectX) - .setY(rectY) - .setWidth(rectWidth) - .setHeight(rectHeight) - .setAnimations(SaturnClient.getAnimations()) - ); + 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; draw( - new SaturnSprite(Textures.TABS) - .setX(tabsX) - .setY(tabsY) - .setWidth(43) - .setHeight(15) - .setAnimations(SaturnClient.getAnimations()) - ); + new SaturnSprite(Textures.TABS) + .setX(tabsX) + .setY(tabsY) + .setWidth(43) + .setHeight(15) + .setAnimations(SaturnClient.getAnimations())); + + int tabSize = 9; + tabsX = (width - tabSize) / 2; + draw( + new SaturnClickableImage(Textures.SETTINGS, () -> { + client.setScreen(new SaturnConfigEditor()); + }) + .setColor(SaturnClient.COLOR.value) + .setX(tabsX) + .setY(tabsY + 3) + .setWidth(tabSize) + .setHeight(tabSize) + .setAnimations(SaturnClient.getAnimations())); + + draw( + new SaturnClickableImage(Textures.MODS_TAB, () -> { + client.setScreen(new ModMenu()); + }) + .setX(tabsX - 12) + .setY(tabsY + 3) + .setWidth(tabSize) + .setHeight(tabSize) + .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())); SaturnScroll configScroll = new SaturnScroll(); @@ -56,8 +88,8 @@ public class SaturnConfigEditor extends SaturnUi { int col = 0; for (Map.Entry> propEntry : SaturnClient.config - .getProperties() - .entrySet()) { + .getProperties() + .entrySet()) { Property prop = propEntry.getValue(); String propName = propEntry.getKey(); @@ -74,99 +106,80 @@ public class SaturnConfigEditor extends SaturnUi { switch (prop.getType()) { case BOOLEAN: configScroll.draw( - new SaturnToggle((Property) prop) - .setX(modX) - .setY(modY) - ); + 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) - ); + 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) - ); + 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 - ) - ); + 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) - ); + 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 - ) - ); + 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) - ); + 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 - ) - ); + 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) - ); + 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 - ) - ); + new SaturnHex( + (Property) prop, + (rectWidth / 2) - 17, + modY, + 70)); break; } @@ -182,13 +195,12 @@ public class SaturnConfigEditor extends SaturnUi { } draw( - configScroll - .setX(rectX + 17) - .setY(rectY + 10) - .setWidth(rectWidth - 17) - .setHeight(rectHeight - 10) - .setAnimations(SaturnClient.getAnimations()) - ); + configScroll + .setX(rectX + 17) + .setY(rectY + 10) + .setWidth(rectWidth - 17) + .setHeight(rectHeight - 10) + .setAnimations(SaturnClient.getAnimations())); super.init(); } diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java index efe0c99..a04d9f8 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java @@ -55,4 +55,9 @@ public class SaturnClickableImage extends SaturnWidget { this.selected = selected; return this; } + + public SaturnClickableImage setColor(int c) { + this.color = c; + return this; + } }