Add GUI scale and glass, and rework the title screen #8
@@ -15,12 +15,12 @@ public class Dock extends Element {
|
|||||||
public record Item(IdentifierRef icon, Runnable onClick) {
|
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 ITEM = HEIGHT - PADDING * 2;
|
||||||
private static final int ICON = 18;
|
private static final int ICON = 15;
|
||||||
private static final int GAP = 4;
|
private static final int GAP = 3;
|
||||||
|
|
||||||
private final List<Item> items;
|
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.
|
* along the bottom the player, a dock of Saturn's screens and the version.
|
||||||
*/
|
*/
|
||||||
public class TitleMenu extends SaturnScreen {
|
public class TitleMenu extends SaturnScreen {
|
||||||
private static final int LOGO = 88;
|
// The logo and wordmark as the shift menu has them: the wordmark over the logo's foot
|
||||||
private static final int WORDMARK_WIDTH = 200;
|
private static final int LOGO = 98;
|
||||||
private static final int WORDMARK_HEIGHT = 20;
|
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 COLUMN_WIDTH = 280;
|
||||||
private static final int BUTTON_HEIGHT = 36;
|
private static final int BUTTON_HEIGHT = 36;
|
||||||
private static final int GAP = 8;
|
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
|
// Logo and menus, centered together a little above the middle
|
||||||
int menusHeight = BUTTON_HEIGHT * 3 + GAP * 2;
|
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;
|
int top = (height - blockHeight) / 2 - 20;
|
||||||
|
|
||||||
draw(new ImageTexture(Config.getLogo())
|
draw(new ImageTexture(Config.getLogo())
|
||||||
.dimensions(LOGO, LOGO)
|
.dimensions(LOGO, LOGO)
|
||||||
.position((width - LOGO) / 2, top)
|
.position((width - LOGO) / 2, top)
|
||||||
.animation(new SlideY(AnimationConfig.logo, -20)));
|
.animation(new SlideY(AnimationConfig.logo, -20)));
|
||||||
draw(new ImageTexture(Textures.LOGO_TEXT_BIG)
|
draw(new ImageTexture(Textures.LOGO_TEXT)
|
||||||
.dimensions(WORDMARK_WIDTH, WORDMARK_HEIGHT)
|
.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)));
|
.animation(new Fade(AnimationConfig.logo.duration.value)));
|
||||||
|
|
||||||
int rowHeight = BUTTON_HEIGHT + GAP;
|
int rowHeight = BUTTON_HEIGHT + GAP;
|
||||||
@@ -80,7 +84,7 @@ public class TitleMenu extends SaturnScreen {
|
|||||||
() -> Providers.saturn.getClient().scheduleStop())
|
() -> Providers.saturn.getClient().scheduleStop())
|
||||||
.dimensions(halfWidth, BUTTON_HEIGHT).position(COLUMN_WIDTH - halfWidth, rowHeight * 2));
|
.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
|
// Along the bottom: the player, Saturn's screens, the version
|
||||||
draw(new AccountChip()
|
draw(new AccountChip()
|
||||||
@@ -92,7 +96,9 @@ public class TitleMenu extends SaturnScreen {
|
|||||||
new Dock.Item(Textures.ICON_COSMETICS,
|
new Dock.Item(Textures.ICON_COSMETICS,
|
||||||
() -> Providers.saturn.getClient().setScreen(new CosmeticsMenu())),
|
() -> Providers.saturn.getClient().setScreen(new CosmeticsMenu())),
|
||||||
new Dock.Item(Textures.ICON_HUD_EDITOR,
|
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)
|
draw(dock.position((width - dock.width) / 2, height - EDGE - Dock.HEIGHT)
|
||||||
.animation(new SlideFade(AnimationConfig.mainMenu, 12)));
|
.animation(new SlideFade(AnimationConfig.mainMenu, 12)));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user