added tab and close on config

This commit is contained in:
2025-03-31 14:07:40 +02:00
parent abecd17597
commit 0c20cb64fb
5 changed files with 236 additions and 249 deletions
@@ -13,7 +13,6 @@ import org.saturnclient.saturnclient.event.KeyInputHandler;
import org.saturnclient.saturnmods.ModManager; import org.saturnclient.saturnmods.ModManager;
import org.saturnclient.ui.SaturnAnimation; import org.saturnclient.ui.SaturnAnimation;
import org.saturnclient.ui.animations.FadeIn; import org.saturnclient.ui.animations.FadeIn;
import org.saturnclient.ui.animations.Slide;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -47,7 +46,7 @@ public class SaturnClient implements ModInitializer {
} }
public static SaturnAnimation[] getAnimations() { public static SaturnAnimation[] getAnimations() {
return new SaturnAnimation[] { new FadeIn(1), new Slide(3, 15) }; return new SaturnAnimation[] { new FadeIn(1) };
} }
@Override @Override
@@ -12,6 +12,7 @@ import org.saturnclient.ui.components.SaturnHex;
import org.saturnclient.ui.components.SaturnInteger; import org.saturnclient.ui.components.SaturnInteger;
import org.saturnclient.ui.components.SaturnString; import org.saturnclient.ui.components.SaturnString;
import org.saturnclient.ui.components.SaturnToggle; import org.saturnclient.ui.components.SaturnToggle;
import org.saturnclient.ui.widgets.SaturnImageButton;
import org.saturnclient.ui.widgets.SaturnScroll; import org.saturnclient.ui.widgets.SaturnScroll;
import org.saturnclient.ui.widgets.SaturnSprite; import org.saturnclient.ui.widgets.SaturnSprite;
import org.saturnclient.ui.widgets.SaturnText; import org.saturnclient.ui.widgets.SaturnText;
@@ -34,25 +35,22 @@ public class ConfigEditor extends SaturnUi {
int rectY = (height - rectHeight + 15) / 2; int rectY = (height - rectHeight + 15) / 2;
draw( draw(
new SaturnSprite(Textures.SETTINGS_BG) new SaturnSprite(Textures.SETTINGS_BG)
.setX(rectX) .setX(rectX)
.setY(rectY) .setY(rectY)
.setWidth(rectWidth) .setWidth(rectWidth)
.setHeight(rectHeight) .setHeight(rectHeight)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
int tabsX = (width - 43) / 2;
int tabsY = rectY - 17;
draw( draw(
new SaturnSprite(Textures.TABS) new SaturnImageButton(Textures.CLOSE, 9, 9, () -> {
.setX(tabsX) this.close();
.setY(tabsY) })
.setWidth(43) .setX(rectX)
.setHeight(15) .setY(rectY - 15)
.setAnimations(SaturnClient.getAnimations()) .setWidth(13)
); .setHeight(13)
.setAnimations(SaturnClient.getAnimations()));
SaturnScroll configScroll = new SaturnScroll(); SaturnScroll configScroll = new SaturnScroll();
@@ -60,8 +58,8 @@ public class ConfigEditor extends SaturnUi {
int col = 0; int col = 0;
for (Map.Entry<String, Property<?>> propEntry : config for (Map.Entry<String, Property<?>> propEntry : config
.getProperties() .getProperties()
.entrySet()) { .entrySet()) {
Property<?> prop = propEntry.getValue(); Property<?> prop = propEntry.getValue();
String propName = propEntry.getKey(); String propName = propEntry.getKey();
@@ -78,99 +76,80 @@ public class ConfigEditor extends SaturnUi {
switch (prop.getType()) { switch (prop.getType()) {
case BOOLEAN: case BOOLEAN:
configScroll.draw( configScroll.draw(
new SaturnToggle((Property<Boolean>) prop) new SaturnToggle((Property<Boolean>) prop)
.setX(modX) .setX(modX)
.setY(modY) .setY(modY));
);
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX + 18)
.setX(modX + 18) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
break; break;
case INTEGER: case INTEGER:
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX)
.setX(modX) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
configScroll.draw( configScroll.draw(
new SaturnInteger( new SaturnInteger(
(Property<Integer>) prop, (Property<Integer>) prop,
(rectWidth / 2) - 17, (rectWidth / 2) - 17,
modY, modY,
70 70));
)
);
break; break;
case FLOAT: case FLOAT:
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX)
.setX(modX) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
configScroll.draw( configScroll.draw(
new SaturnFloat( new SaturnFloat(
(Property<Float>) prop, (Property<Float>) prop,
(rectWidth / 2) - 17, (rectWidth / 2) - 17,
modY, modY,
70 70));
)
);
break; break;
case STRING: case STRING:
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX)
.setX(modX) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
configScroll.draw( configScroll.draw(
new SaturnString( new SaturnString(
(Property<String>) prop, (Property<String>) prop,
(rectWidth / 2) - 17, (rectWidth / 2) - 17,
modY, modY,
70 70));
)
);
break; break;
case HEX: case HEX:
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX)
.setX(modX) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
configScroll.draw( configScroll.draw(
new SaturnHex( new SaturnHex(
(Property<Integer>) prop, (Property<Integer>) prop,
(rectWidth / 2) - 17, (rectWidth / 2) - 17,
modY, modY,
70 70));
)
);
break; break;
} }
@@ -186,13 +165,12 @@ public class ConfigEditor extends SaturnUi {
} }
draw( draw(
configScroll configScroll
.setX(rectX + 17) .setX(rectX + 17)
.setY(rectY + 10) .setY(rectY + 10)
.setWidth(rectWidth - 17) .setWidth(rectWidth - 17)
.setHeight(rectHeight - 10) .setHeight(rectHeight - 10)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
super.init(); super.init();
} }
@@ -26,60 +26,55 @@ public class ModMenu extends SaturnUi {
int modsY = (height - rectHeight + 15) / 2; int modsY = (height - rectHeight + 15) / 2;
draw( draw(
new SaturnSprite(Textures.SETTINGS_BG) new SaturnSprite(Textures.SETTINGS_BG)
.setX(modsX) .setX(modsX)
.setY(modsY) .setY(modsY)
.setWidth(rectWidth) .setWidth(rectWidth)
.setHeight(rectHeight) .setHeight(rectHeight)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
int tabsX = (width - 43) / 2; int tabsX = (width - 43) / 2;
int tabsY = modsY - 17; int tabsY = modsY - 17;
draw( draw(
new SaturnSprite(Textures.TABS) new SaturnSprite(Textures.TABS)
.setX(tabsX) .setX(tabsX)
.setY(tabsY) .setY(tabsY)
.setWidth(43) .setWidth(43)
.setHeight(15) .setHeight(15)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
int tabSize = 9; int tabSize = 9;
tabsX = (width - tabSize) / 2; tabsX = (width - tabSize) / 2;
draw( draw(
new SaturnClickableImage(Textures.SETTINGS, () -> { new SaturnClickableImage(Textures.SETTINGS, () -> {
client.setScreen(new SaturnConfigEditor()); client.setScreen(new SaturnConfigEditor());
}) })
.setX(tabsX) .setX(tabsX)
.setY(tabsY + 3) .setY(tabsY + 3)
.setWidth(tabSize) .setWidth(tabSize)
.setHeight(tabSize) .setHeight(tabSize)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
draw( draw(
new SaturnClickableImage(Textures.MODS_TAB, () -> { new SaturnClickableImage(Textures.MODS_TAB, () -> {
System.out.println("Pressed"); })
}) .setColor(SaturnClient.COLOR.value)
.setX(tabsX - 12) .setX(tabsX - 12)
.setY(tabsY + 3) .setY(tabsY + 3)
.setWidth(tabSize) .setWidth(tabSize)
.setHeight(tabSize) .setHeight(tabSize)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
draw( draw(
new SaturnClickableImage(Textures.SEARCH, () -> { new SaturnClickableImage(Textures.SEARCH, () -> {
System.out.println("Pressed"); System.out.println("Pressed");
}) })
.setX(tabsX + 12) .setX(tabsX + 12)
.setY(tabsY + 3) .setY(tabsY + 3)
.setWidth(tabSize) .setWidth(tabSize)
.setHeight(tabSize) .setHeight(tabSize)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
int modX = 0; int modX = 0;
int modY = 0; int modY = 0;
@@ -89,12 +84,11 @@ public class ModMenu extends SaturnUi {
for (SaturnMod mod : ModManager.MODS) { for (SaturnMod mod : ModManager.MODS) {
modsScroll.draw( modsScroll.draw(
new SaturnModComp(mod) new SaturnModComp(mod)
.setX(modX) .setX(modX)
.setY(modY) .setY(modY)
.setWidth(86) .setWidth(86)
.setHeight(20) .setHeight(20));
);
col++; col++;
@@ -108,13 +102,12 @@ public class ModMenu extends SaturnUi {
} }
draw( draw(
modsScroll modsScroll
.setX(modsX + 17) .setX(modsX + 17)
.setY(modsY + 10) .setY(modsY + 10)
.setWidth(rectWidth - 17) .setWidth(rectWidth - 17)
.setHeight(rectHeight - 20) .setHeight(rectHeight - 20)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
super.init(); super.init();
} }
@@ -11,6 +11,7 @@ import org.saturnclient.ui.components.SaturnHex;
import org.saturnclient.ui.components.SaturnInteger; import org.saturnclient.ui.components.SaturnInteger;
import org.saturnclient.ui.components.SaturnString; import org.saturnclient.ui.components.SaturnString;
import org.saturnclient.ui.components.SaturnToggle; import org.saturnclient.ui.components.SaturnToggle;
import org.saturnclient.ui.widgets.SaturnClickableImage;
import org.saturnclient.ui.widgets.SaturnScroll; import org.saturnclient.ui.widgets.SaturnScroll;
import org.saturnclient.ui.widgets.SaturnSprite; import org.saturnclient.ui.widgets.SaturnSprite;
import org.saturnclient.ui.widgets.SaturnText; import org.saturnclient.ui.widgets.SaturnText;
@@ -30,25 +31,56 @@ public class SaturnConfigEditor extends SaturnUi {
int rectY = (height - rectHeight + 15) / 2; int rectY = (height - rectHeight + 15) / 2;
draw( draw(
new SaturnSprite(Textures.SETTINGS_BG) new SaturnSprite(Textures.SETTINGS_BG)
.setX(rectX) .setX(rectX)
.setY(rectY) .setY(rectY)
.setWidth(rectWidth) .setWidth(rectWidth)
.setHeight(rectHeight) .setHeight(rectHeight)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
int tabsX = (width - 43) / 2; int tabsX = (width - 43) / 2;
int tabsY = rectY - 17; int tabsY = rectY - 17;
draw( draw(
new SaturnSprite(Textures.TABS) new SaturnSprite(Textures.TABS)
.setX(tabsX) .setX(tabsX)
.setY(tabsY) .setY(tabsY)
.setWidth(43) .setWidth(43)
.setHeight(15) .setHeight(15)
.setAnimations(SaturnClient.getAnimations()) .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(); SaturnScroll configScroll = new SaturnScroll();
@@ -56,8 +88,8 @@ public class SaturnConfigEditor extends SaturnUi {
int col = 0; int col = 0;
for (Map.Entry<String, Property<?>> propEntry : SaturnClient.config for (Map.Entry<String, Property<?>> propEntry : SaturnClient.config
.getProperties() .getProperties()
.entrySet()) { .entrySet()) {
Property<?> prop = propEntry.getValue(); Property<?> prop = propEntry.getValue();
String propName = propEntry.getKey(); String propName = propEntry.getKey();
@@ -74,99 +106,80 @@ public class SaturnConfigEditor extends SaturnUi {
switch (prop.getType()) { switch (prop.getType()) {
case BOOLEAN: case BOOLEAN:
configScroll.draw( configScroll.draw(
new SaturnToggle((Property<Boolean>) prop) new SaturnToggle((Property<Boolean>) prop)
.setX(modX) .setX(modX)
.setY(modY) .setY(modY));
);
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX + 18)
.setX(modX + 18) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
break; break;
case INTEGER: case INTEGER:
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX)
.setX(modX) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
configScroll.draw( configScroll.draw(
new SaturnInteger( new SaturnInteger(
(Property<Integer>) prop, (Property<Integer>) prop,
(rectWidth / 2) - 17, (rectWidth / 2) - 17,
modY, modY,
70 70));
)
);
break; break;
case FLOAT: case FLOAT:
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX)
.setX(modX) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
configScroll.draw( configScroll.draw(
new SaturnFloat( new SaturnFloat(
(Property<Float>) prop, (Property<Float>) prop,
(rectWidth / 2) - 17, (rectWidth / 2) - 17,
modY, modY,
70 70));
)
);
break; break;
case STRING: case STRING:
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX)
.setX(modX) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
configScroll.draw( configScroll.draw(
new SaturnString( new SaturnString(
(Property<String>) prop, (Property<String>) prop,
(rectWidth / 2) - 17, (rectWidth / 2) - 17,
modY, modY,
70 70));
)
);
break; break;
case HEX: case HEX:
configScroll.draw( configScroll.draw(
new SaturnText( new SaturnText(
propName.substring(0, 1).toUpperCase() + propName.substring(0, 1).toUpperCase() +
propName.substring(1) propName.substring(1))
) .setX(modX)
.setX(modX) .setY(modY)
.setY(modY) .setScale(0.8f));
.setScale(0.8f)
);
configScroll.draw( configScroll.draw(
new SaturnHex( new SaturnHex(
(Property<Integer>) prop, (Property<Integer>) prop,
(rectWidth / 2) - 17, (rectWidth / 2) - 17,
modY, modY,
70 70));
)
);
break; break;
} }
@@ -182,13 +195,12 @@ public class SaturnConfigEditor extends SaturnUi {
} }
draw( draw(
configScroll configScroll
.setX(rectX + 17) .setX(rectX + 17)
.setY(rectY + 10) .setY(rectY + 10)
.setWidth(rectWidth - 17) .setWidth(rectWidth - 17)
.setHeight(rectHeight - 10) .setHeight(rectHeight - 10)
.setAnimations(SaturnClient.getAnimations()) .setAnimations(SaturnClient.getAnimations()));
);
super.init(); super.init();
} }
@@ -55,4 +55,9 @@ public class SaturnClickableImage extends SaturnWidget {
this.selected = selected; this.selected = selected;
return this; return this;
} }
public SaturnClickableImage setColor(int c) {
this.color = c;
return this;
}
} }