Compare commits

...
1 Commits
Author SHA1 Message Date
selimaj-devandclaude 320b2fd9a5 Tighten the title screen around the logo
Give the title screen the shift menu's logo and wordmark, bring the
menus up under it, and make the dock smaller with a settings item.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-28 19:09:10 +02:00
2 changed files with 18 additions and 12 deletions
@@ -15,12 +15,12 @@ public class Dock extends Element {
public record Item(IdentifierRef icon, Runnable onClick) {
}
public static final int HEIGHT = 52;
public static final int HEIGHT = 40;
private static final int PADDING = 6;
private static final int PADDING = 5;
private static final int ITEM = HEIGHT - PADDING * 2;
private static final int ICON = 18;
private static final int GAP = 4;
private static final int ICON = 15;
private static final int GAP = 3;
private final List<Item> items;
@@ -27,9 +27,13 @@ import org.saturnclient.ui.resources.Textures;
* along the bottom the player, a dock of Saturn's screens and the version.
*/
public class TitleMenu extends SaturnScreen {
private static final int LOGO = 88;
private static final int WORDMARK_WIDTH = 200;
private static final int WORDMARK_HEIGHT = 20;
// The logo and wordmark as the shift menu has them: the wordmark over the logo's foot
private static final int LOGO = 98;
private static final int WORDMARK_WIDTH = 98;
private static final int WORDMARK_HEIGHT = 10;
private static final int WORDMARK_Y = 88;
/** From the logo's foot to the menus, close so they read as one block */
private static final int MENUS_GAP = 14;
private static final int COLUMN_WIDTH = 280;
private static final int BUTTON_HEIGHT = 36;
private static final int GAP = 8;
@@ -51,16 +55,16 @@ public class TitleMenu extends SaturnScreen {
// Logo and menus, centered together a little above the middle
int menusHeight = BUTTON_HEIGHT * 3 + GAP * 2;
int blockHeight = LOGO + 16 + WORDMARK_HEIGHT + 36 + menusHeight;
int blockHeight = LOGO + MENUS_GAP + menusHeight;
int top = (height - blockHeight) / 2 - 20;
draw(new ImageTexture(Config.getLogo())
.dimensions(LOGO, LOGO)
.position((width - LOGO) / 2, top)
.animation(new SlideY(AnimationConfig.logo, -20)));
draw(new ImageTexture(Textures.LOGO_TEXT_BIG)
draw(new ImageTexture(Textures.LOGO_TEXT)
.dimensions(WORDMARK_WIDTH, WORDMARK_HEIGHT)
.position((width - WORDMARK_WIDTH) / 2, top + LOGO + 16)
.position((width - WORDMARK_WIDTH) / 2, top + WORDMARK_Y)
.animation(new Fade(AnimationConfig.logo.duration.value)));
int rowHeight = BUTTON_HEIGHT + GAP;
@@ -80,7 +84,7 @@ public class TitleMenu extends SaturnScreen {
() -> Providers.saturn.getClient().scheduleStop())
.dimensions(halfWidth, BUTTON_HEIGHT).position(COLUMN_WIDTH - halfWidth, rowHeight * 2));
draw(menus.position((width - COLUMN_WIDTH) / 2, top + LOGO + 16 + WORDMARK_HEIGHT + 36));
draw(menus.position((width - COLUMN_WIDTH) / 2, top + LOGO + MENUS_GAP));
// Along the bottom: the player, Saturn's screens, the version
draw(new AccountChip()
@@ -92,7 +96,9 @@ public class TitleMenu extends SaturnScreen {
new Dock.Item(Textures.ICON_COSMETICS,
() -> Providers.saturn.getClient().setScreen(new CosmeticsMenu())),
new Dock.Item(Textures.ICON_HUD_EDITOR,
() -> Providers.saturn.getClient().setScreen(new HudEditor()))));
() -> Providers.saturn.getClient().setScreen(new HudEditor())),
new Dock.Item(Textures.ICON_SETTINGS,
() -> Providers.saturn.getClient().setScreen(new ClientSettings()))));
draw(dock.position((width - dock.width) / 2, height - EDGE - Dock.HEIGHT)
.animation(new SlideFade(AnimationConfig.mainMenu, 12)));