1.5 KiB
1.5 KiB
Layers And Tile Editing
What It Does
This subsystem handles normal tile painting, erasing, selection, visible layer management, sparse height layers, and the mapping between visible document edits and stored chunk data.
Key Files
src/worldshaperStudio/interactionController.tssrc/worldshaperStudio/runtime.tssrc/worldshaperStudio/sidebarController.tssrc/worldshaperStudio/mapDocumentController.tssrc/worldshaperStudio/popupSessionStore.tssrc/worldshaperStudio/dom.ts
Endpoints It Uses
- primarily saved through
POST /api/world/:worldId/chunks/batch-save
Important Data And Rules
- room layer
0is the base layer - non-base layers use sparse or transparent-style fill semantics
- height layers are separate structures from room layers
- visibility is tracked in popup session state
- painting in world mode must mark affected chunks dirty
Invariants And Constraints
- layer ordering matters to rendering and selection behavior
- layer visibility must not destroy layer data
- tile edits in world mode must map local viewport coordinates back to world chunk coordinates
- height layers are not the same thing as standard room layers
Common Request Themes
- better layer reordering
- more precise tiling tools
- height/elevation features
- snapping or unsnapped placement
- erase or selection behavior
Triage Questions
- Is this about normal room layers or height layers?
- Does the request affect paint semantics, visibility, ordering, or storage?
- Does it apply to map mode, world mode, or both?