Skip to content

v0.1.22 — Phase 10: Bedroom + Playground hotspots use canon lookups

Choose a tag to compare

@NoDataFound NoDataFound released this 26 May 01:54
· 11 commits to main since this release

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_vault all route via _G[canon.objects.<id>.launches] with the existing return_scene hand-off. The six tier-2/3 placeholder hotspots (rfid_pedestal, payphone, ir_wall, gravity_arena, subghz_tuner, portal_pedestal) declare launches=nil in canon and fall into the existing placeholder dialog branch.
  • Spawn fallbacks now read rooms_manifest.<room>.spawn_points[1] instead of inline (200, 168). LDtk player_spawn entity 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_bounds not 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