feat: mini-mappa admin (overview + click-to-/tp) per esplorare le zone del mondo #237

Closed
opened 2026-08-01 12:06:50 +02:00 by panda · 1 comment
Collaborator

Contesto / perché

Con asterra (mondo chunked da 133M celle, #229) servono strumenti per verificare le zone disegnate a mano senza cercare le coordinate a memoria. Oggi il GM ha /tp <x> <y>, ma è "alla cieca": non sai dove sono continenti/baie/biomi. Serve una mini-mappa d'insieme.

Idea (da rifinire in design review)

  • Un overlay mini-mappa in-game, admin-only (come /tp), con una vista top-down ridotta del mondo — 1 tinta per terreno, come il paint-editor (MapPaintRenderer, PR 4a) — e la posizione del player.
  • Click sulla mini-mappa → /tp alla cella corrispondente (pixel → cella): salti e ispezioni la zona.
  • Legge il mondo dal CompactWorldMap/WorldMapStore già caricato dal client (7b); rendering downsamplato (1 px ogni N celle) con la texture in cache.

Vincoli (da rispettare in design)

  • Server-authoritative: il click emette un GmCommandRequest /tp validato lato server (claim admin), non un teleport client-side.
  • Screen HARD GATE (client): l'overlay è un componente (rendering + input→intent), non logica dentro GameScreen.
  • String catalog per eventuale testo utente; nessun nuovo switch.
  • Valutare il riuso del top-down MapPaintRenderer dell'editor (estrazione condivisa in Client.Core/shared invece di duplicare).

Follow-up di

Fase 7 (#229). Probabilmente dopo 7c (handshake mappa/catalogo). Da avviare con critical-design-review + Definition of Done prima di implementare.

## Contesto / perché Con **asterra** (mondo chunked da 133M celle, #229) servono strumenti per verificare le zone disegnate a mano senza cercare le coordinate a memoria. Oggi il GM ha `/tp <x> <y>`, ma è "alla cieca": non sai *dove* sono continenti/baie/biomi. Serve una **mini-mappa d'insieme**. ## Idea (da rifinire in design review) - Un overlay **mini-mappa** in-game, **admin-only** (come `/tp`), con una vista top-down ridotta del mondo — 1 tinta per terreno, come il paint-editor (`MapPaintRenderer`, PR 4a) — e la posizione del player. - **Click sulla mini-mappa → `/tp`** alla cella corrispondente (pixel → cella): salti e ispezioni la zona. - Legge il mondo dal `CompactWorldMap`/`WorldMapStore` già caricato dal client (7b); rendering downsamplato (1 px ogni N celle) con la texture in cache. ## Vincoli (da rispettare in design) - **Server-authoritative**: il click emette un `GmCommandRequest /tp` validato lato server (claim `admin`), **non** un teleport client-side. - **Screen HARD GATE (client)**: l'overlay è un *componente* (rendering + input→intent), non logica dentro `GameScreen`. - **String catalog** per eventuale testo utente; nessun nuovo `switch`. - Valutare il **riuso** del top-down `MapPaintRenderer` dell'editor (estrazione condivisa in `Client.Core`/shared invece di duplicare). ## Follow-up di Fase 7 (#229). Probabilmente **dopo 7c** (handshake mappa/catalogo). Da avviare con `critical-design-review` + Definition of Done prima di implementare.
Author
Collaborator

Marco aiutami invece di farti le unghie a tema pokemon 💅

Risolta: mini-mappa admin + click-to-/tp su main (#244).

Marco aiutami invece di farti le unghie a tema pokemon 💅 Risolta: mini-mappa admin + click-to-/tp su main (#244).
panda closed this issue 2026-08-02 00:47:15 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo#237
No description provided.