ui: plan 01-27 done #1

Merged
developer merged 120 commits from ai/ui-client into main 2026-05-13 18:55:14 +00:00
2 changed files with 9 additions and 7 deletions
Showing only changes of commit b4f37d6669 - Show all commits
+2 -2
View File
@@ -952,9 +952,9 @@ Targeted tests (delivered):
invitation removes card and adds the game to My Games. Phase 7 invitation removes card and adds the game to My Games. Phase 7
auth flow now also runs over the FlatBuffers wire. auth flow now also runs over the FlatBuffers wire.
## ~~Phase 9. Map Renderer with Fixture Data~~ ## Phase 9. Map Renderer with Fixture Data
Status: done. Status: pending.
Goal: stand up the PixiJS map renderer with pan/zoom, primitive Goal: stand up the PixiJS map renderer with pan/zoom, primitive
drawing, torus wrap behaviour and bounded-plane (no-wrap) mode against drawing, torus wrap behaviour and bounded-plane (no-wrap) mode against
@@ -3,6 +3,7 @@
import { page } from "$app/state"; import { page } from "$app/state";
import { import {
createRenderer, createRenderer,
minScaleNoWrap,
sampleWorld, sampleWorld,
type RendererHandle, type RendererHandle,
type RendererPreference, type RendererPreference,
@@ -60,12 +61,13 @@
} }
backend = handle.getBackend(); backend = handle.getBackend();
// Initial camera: place world centre. // Initial camera: world centre, zoomed slightly past the
// fits-the-viewport floor so neighbouring torus copies are
// visible too.
handle.viewport.moveCenter(world.width / 2, world.height / 2); handle.viewport.moveCenter(world.width / 2, world.height / 2);
// Initial zoom: fit-ish (slight zoom-in from minScale). const minScale = minScaleNoWrap(
const minScale = Math.max( { widthPx: containerEl.clientWidth, heightPx: containerEl.clientHeight },
containerEl.clientWidth / world.width, world,
containerEl.clientHeight / world.height,
); );
handle.viewport.setZoom(minScale * 1.2, true); handle.viewport.setZoom(minScale * 1.2, true);
if (mode === "no-wrap") handle.setMode("no-wrap"); // re-clamp post zoom if (mode === "no-wrap") handle.setMode("no-wrap"); // re-clamp post zoom