MRPCI/docs/EDITOR.md
m3ultra 662e6c4bc4 v0.4 — in-engine room editor, four screens deep
F8 toggles edit mode. Tools: brush/line/rect/ellipse/flood/gradient/picker; ink meanings write LOOK/FLOOR/WALL/WATER/DEPTH across the four screens; V overlays priority/control/hotspot; hotspot rects, prop placement, spawn, and a :colon command line (save/name/enter/music/weather/exit/room/hotmsg). Every editor action is a bus Command (paint_op, undo_op, clear_ops, set_spawn/exit/music/weather/room_name/enter_text, upsert/delete hotspot+prop) so MCP clients wield identical powers. PicOp::Brush added; docs/EDITOR.md. Verified: 5 suites green, playthrough events byte-identical to pre-editor build, GUI boots.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 00:38:35 +10:00

50 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# The in-engine room editor
Press **F8** in the game to flip into edit mode (the sim freezes; F8 again
to play-test instantly). Everything the editor does is a bus `Command`
an LLM on the MCP surface has exactly the same powers with the same JSON.
## Tools & keys
| Key | Meaning |
|---|---|
| `B` `L` `R` `O` `F` `G` `K` | brush · line · rect · ellipse · flood fill · gradient · color picker |
| `M` | cycle what the ink writes: LOOK → FLOOR → WALL → WATER → DEPTH → HOTSPOT |
| `V` | overlay the invisible screens: priority / control / hotspot |
| `[` `]` | depth band 015 (DEPTH mode) |
| `-` `=` | brush size |
| `U` | undo last paint op |
| `S` | set the room spawn at the cursor |
| `P` | place a prop of the selected sprite (`,` `.` cycle sprites) |
| `X` | delete the prop under the cursor |
| `Enter` | open the `:` command line |
| palette panel | left-click = primary color, right-click = secondary (gradients) |
Meanings write multiple screens at once, MRPGI-style but with four screens:
**FLOOR** paints color + default depth band + open control; **WALL** paints
color + blocked control; **WATER** color + water; **DEPTH** forces a band
(walk-behind scenery); **HOTSPOT** + the rect tool creates a named clickable
region (no pixels painted — it lives on the hotspot screen).
## Colon commands
```
:save write rooms/roomN.json
:name Neon Row room display name
:enter TEXT entry prose
:music N 0 off · 1 calm · 2 eerie · 3 tense · 4 jolly · 5 spooky · 6 noir
:weather N 0 none · 1 rain · 2 snow · 3 embers
:exit e 2 edge exit (n/e/s/w) to room 2; `:exit e -` clears
:room 7 jump rooms (a missing room is a fresh blank one)
:clear drop all paint ops
:hotspot NAME rename the most recently drawn hotspot
:hotmsg look TEXT give the newest hotspot a verb response
:delhot NAME delete a hotspot
:help the cheat sheet
```
Dialogue trees, prop lock-and-key fields, scale tables and palettes are
data — edit the room JSON (or drive `upsert_room` over the bus) for those.
The editor covers the 90%: geometry, paint, walkability, depth, hotspots,
props, exits, mood.