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

2.2 KiB
Raw Blame History

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.