Area editor: load Armory + Treasury and apply edits back to the game #68

Closed
opened 2026-10-05 01:59:38 -04:00 by Nimby · 0 comments
Collaborator

The editor only has _sample_room. Make the real areas editable, with edits flowing back into the game scenes.

  • extract_area.py: convert armory.tscn/treasury.tscn into descriptors (exact node names, strict about anything it can't reproduce) and fill the catalog with all 14 item types.
  • Prove the round trip: regenerating each descriptor must match the shipped scene with zero semantic differences. Then normalize the two scenes' number formatting once, proven by identical node names, a clean boot, and pixel-identical before/after renders.
  • Apply to game in the editor: dry-run summary (moved/added/removed), atomic write, a headless boot check with automatic rollback, and a drift guard (scene_sha256) so a stale descriptor can never overwrite newer scene changes. Re-extract recovers from drift.

Save compatibility: GameProgress keys placed items by node name, so names are carried over exactly and can't be renamed in the editor.

The editor only has `_sample_room`. Make the real areas editable, with edits flowing back into the game scenes. - `extract_area.py`: convert `armory.tscn`/`treasury.tscn` into descriptors (exact node names, strict about anything it can't reproduce) and fill the catalog with all 14 item types. - Prove the round trip: regenerating each descriptor must match the shipped scene with zero semantic differences. Then normalize the two scenes' number formatting once, proven by identical node names, a clean boot, and pixel-identical before/after renders. - **Apply to game** in the editor: dry-run summary (moved/added/removed), atomic write, a headless boot check with automatic rollback, and a drift guard (`scene_sha256`) so a stale descriptor can never overwrite newer scene changes. **Re-extract** recovers from drift. Save compatibility: `GameProgress` keys placed items by node name, so names are carried over exactly and can't be renamed in the editor.
Nimby self-assigned this 2026-10-05 01:59:38 -04:00
Nimby closed this issue 2026-10-05 10:23:24 -04:00
Sign in to join this conversation.
No labels
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
scruffydude/project-awry#68
No description provided.