Real icon, and open straight into the game instead of the splash

icon.png replaces the scaffold placeholder — resized to 512x512 and
palette-quantized (1.9MB source -> 52.9KB) to stay close to the packaging
guide's 40 KiB guidance with no visible quality loss at icon size. Verified
station-master_x86_64.s9pk builds clean with a single icon.* file (the
packer errors on more than one) and `s9pk inspect` confirms icon.png is
packed correctly.

The `ui` interface now opens at `/play.html` instead of `/`. Root serves
index.html, the game's marketing splash — identical to the public static
solitaire site, and with no lobby or Multiplayer button on it; both live on
play.html (src/web/main.ts's `start()`, reached from index.html's door
link). That page is right for a stranger landing on the public site, wrong
for someone who just installed a dedicated multiplayer server and found
what looked like the same solitaire page with no way to host or join a
game. Verified: fetching /play.html from inside the container and over the
service's public address both return the page with the Multiplayer button
present.

Reinstalled on phoenix.local after each change.
This commit is contained in:
Jesse
2026-08-21 09:09:04 -04:00
parent de28b30eea
commit 278bbcf51c
4 changed files with 7 additions and 13 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
<p align="center"> <p align="center">
<img src="icon.svg" alt="Station Master Logo" width="21%"> <img src="icon.png" alt="Station Master Logo" width="21%">
</p> </p>
# Station Master on StartOS # Station Master on StartOS
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

-11
View File
@@ -1,11 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#4F46E5"/>
<stop offset="100%" stop-color="#7C3AED"/>
</linearGradient>
</defs>
<rect width="512" height="512" rx="96" fill="url(#bg)"/>
<path d="M256 120c-88.4 0-160 58.1-160 129.8 0 41.4 23.6 78.4 60.5 103.2l-12.9 51.5a8 8 0 0 0 11.6 8.8l62.6-36.1c12.3 2.5 25.2 3.8 38.2 3.8 88.4 0 160-58.1 160-129.8S344.4 120 256 120z" fill="white" opacity="0.95"/>
<text x="256" y="270" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-weight="bold" font-size="64" fill="#4F46E5">Hello!</text>
</svg>

Before

Width:  |  Height:  |  Size: 692 B

+6 -1
View File
@@ -18,7 +18,12 @@ export const setInterfaces = sdk.setupInterfaces(async ({ effects }) => {
masked: false, masked: false,
schemeOverride: null, schemeOverride: null,
username: null, username: null,
path: '', // `/` serves index.html — the game's marketing splash, identical to the public static
// solitaire site and with no lobby or Multiplayer button on it (both live on play.html; see
// src/web/main.ts's `start()` and the door link in index.html). That page makes sense for a
// stranger landing on the public site, not for someone who just installed a dedicated
// multiplayer server — so this interface opens straight at the game screen instead.
path: '/play.html',
query: {}, query: {},
}) })