5.2 KiB
| id | ticket | title | status | created | completed | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0052 | studio-scene-workspace | Implement Scene Workspace wave-1 tilemap editor | abandoned | 2026-04-14 |
|
Objective
Implement the wave-1 Tilemap experience for Scene Workspace according to DEC-0026.
Background
The accepted decision limits wave 1 to one visible tab, Tilemap, with four layers, independent layer dimensions, explicit tile presence semantics, scene-first navigation, and basic editing tools only.
Scope
Included
- Left scene navigator.
- Top tab strip with only
Tilemapvisible. - Central tilemap editing canvas.
- Right-side tilemap details and tile palette regions.
- Four-layer editing model with visibility and focus.
- Basic painting, erasing, and tile selection.
Excluded
- Camera boundaries.
- Lights.
- AABB authoring.
- Placeholder tabs for unsupported aspects.
- Advanced editing tools such as bucket fill, marquee, flood fill, or lock semantics.
Execution Steps
Step 1 - Build the workspace projection model
What: Create projection/view-state types for the scene navigator, active scene, active layer, tile palette, and tilemap details.
How: Follow the event-driven workspace framework already used by other Studio workspaces. Keep projection boundaries local so navigator, details, and palette can update without whole-workspace redraw.
File(s):
- new projection and message classes under
prometeu-studio/src/main/java/p/studio/workspaces/scene/
Step 2 - Build the left navigator and scene selection flow
What: Render a scene-first navigator that lists authoring scenes, not assets.
How:
Introduce a custom navigator control inspired by Assets patterns but scoped to scene identity, with linked asset context rendered only as secondary status.
File(s):
- new controls under
prometeu-studio/src/main/java/p/studio/workspaces/scene/list/ prometeu-studio/src/main/java/p/studio/workspaces/scene/SceneWorkspace.java
Step 3 - Build the wave-1 Tilemap layout
What: Implement the single visible tab and its three-region body.
How: Compose:
- central tilemap canvas;
- right upper details panel;
- right lower tile palette;
- layer controls for visibility and focus.
Do not expose unsupported tabs.
File(s):
prometeu-studio/src/main/java/p/studio/workspaces/scene/SceneWorkspace.java- new controls under
prometeu-studio/src/main/java/p/studio/workspaces/scene/tilemap/
Step 4 - Implement tile selection and painting
What: Support the basic editing interactions required by the decision.
How:
Implement tile selection from the palette, paint on the active layer, erase by clearing explicit tile presence, and preserve valid glyph_id = 0 semantics.
File(s):
- tilemap interaction classes under
prometeu-studio/src/main/java/p/studio/workspaces/scene/tilemap/ - scene model classes under
prometeu-studio/src/main/java/p/studio/workspaces/scene/model/
Step 5 - Implement tileset resolution and layer detail rendering
What: Resolve glyph-bank-backed tileset data for the active scene/layer and show dimensions/details in the side panel.
How:
Consume the scene-owned tileset choice, render available tiles and palette choices, and expose active layer dimensions and relevant properties without handing ownership to Assets.
File(s):
- scene workspace service/projection classes
- tile palette and detail controls under
prometeu-studio/src/main/java/p/studio/workspaces/scene/tilemap/
Test Requirements
Unit Tests
- Projection-state tests for active scene, layer visibility, and focus.
- Tile painting tests that preserve explicit presence semantics.
- Palette-selection tests that keep
glyph_id = 0valid.
Integration Tests
- UI-oriented tests for scene selection, tile selection, paint, erase, and save-triggered refresh.
Manual Verification
- Open
Scene Workspace, create/open a scene, and confirm the navigator is scene-first. - Paint and erase on different layers with independent dimensions.
- Verify layer visibility/focus changes do not corrupt scene data.
- Verify only the
Tilemaptab is visible in wave 1.
Acceptance Criteria
Scene Workspacerenders a scene-first navigator.- Wave 1 exposes only the
Tilemaptab. - The editor supports four layers with independent dimensions.
- Painting and erasing respect explicit tile presence semantics.
- Layer visibility and focus work in the tilemap editor.
- Tile palette and details panels reflect the active scene/layer context.
Dependencies
DEC-0026-studio-scene-workspace.mdPLN-0049-scene-workspace-spec-and-boundary-propagation.mdPLN-0050-scene-workspace-shell-and-project-state-foundations.mdPLN-0051-scene-artifact-and-assets-handoff-contract.md
Risks
- Overbuilding the first UI pass could quietly introduce unsupported aspect tabs or tools.
- Canvas interaction code can become monolithic if projection boundaries are not enforced early.
- Tileset rendering may drift toward asset-first ownership if scene-owned selection is not kept explicit.
Abandonment
Abandoned on 2026-04-15 because the parent decision DEC-0026 was explicitly abandoned by the user.