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]>
This commit is contained in:
@@ -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)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user