Repository navigation
v0.1.22 — Phase 10: Bedroom + Playground hotspots use canon lookups
Phase 10 — Room + Hotspot Canon Migration
Replaces bare hotspot string literals in BedroomScene.lua + PlaygroundScene.lua A-press dispatch with canon.objects.<id>.id / .launches / .transitions_to lookups. Hotspot id contract now lives in canon.lua, not in scene files.
Migrations
- BedroomScene A-press:
bed(uses.transitions_to→ PlaygroundScene),computer/modem/phone(use.launches). - PlaygroundScene A-press:
lockpick_station/tyson_cabinet/coin_vaultall route via_G[canon.objects.<id>.launches]with the existingreturn_scenehand-off. The six tier-2/3 placeholder hotspots (rfid_pedestal, payphone, ir_wall, gravity_arena, subghz_tuner, portal_pedestal) declarelaunches=nilin canon and fall into the existing placeholder dialog branch. - Spawn fallbacks now read
rooms_manifest.<room>.spawn_points[1]instead of inline(200, 168). LDtkplayer_spawnentity still wins — manifest is the floor.
Not migrated (deferred to Phase 11 SceneRouter)
- The explicit if/elseif dispatch chain remains — Phase 11 will fold it into a generic table-driven router.
walkable_boundsnot yet consumed by either scene (collision is fully handled by LDtk Solid enum +addWallSprites); the manifest field remains declarative-only.
Build
- Validator: 9/9 canon graph checks passed (no new ids introduced).
- pdc clean,
.pdx= 68,167,887 bytes (~65 MB), zip = 63,958,986 bytes. - Runtime behavior preserved.
Slot reshuffle note
Phase 9 (sprite-migration) landed at v0.1.21 (commit 7703b6d), so this Phase 10 commit slides to v0.1.22 rather than fight the already-pushed tag.
Commit: 76593ba