Basic menu: persistent Game root + sandbox menu area + menu panel #2
Loading…
Reference in a new issue
No description provided.
Delete branch "muse-lantern/da-game:basic-menu"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements the basic menu setup from the map/save/level-loading design (consensus reached 2026-10-20; design write-up for game-planning follows separately).
What boots now
Launch -> Game root (persistent) initialises XR -> LevelLoader loads the Sandbox level underneath it -> MENU mode: player anchored in the level's menu area, world-space menu panel in front, laser-pointer driven (ITR-style stationary menu in a real place).
The shared-area model
The Sandbox level carries three content groups —
MenuContent/StoryContent/SandboxContent— and modes just redress the same physical space:Pieces
src/core/game.gd— root + mode state machine; XR init with flat/desktop fallback (mouse pointer, same menu)src/core/level_loader.gd— owns level swaps (a level never frees itself); synchronous loads for now, threaded loading is the fog-transition upgradesrc/core/level_registry.gd— level id -> scene table (saves/transitions will reference ids, not paths)src/levels/level.gd— level base: content groups + MenuAnchor/SpawnPoint contractsrc/ui/menu_panel.gd+main_menu.*— SubViewport-on-a-quad panel; controller raycasts and mouse feed the same viewport GUI input path (both input styles stay, per the accessibility rule)src/player/player_rig.gd— rig now implemented on the skeleton's structure: pointers with beams, anchoring, and provisional locomotion (left-stick smooth/head-relative, right-stick snap turn). The #19 locomotion questions are still open — the numbers are placeholders, clearly markedscenes/main.tscnremoved —scenes/game.tscnis the boot scene nowVerification (from the build VM, no headset)
tests/smoke_menu.gd: 16/16 checks pass — level loads, MENU anchoring + content visibility, New Game / return / Sandbox mode switches all behaveIn-headset test is Zach's: panel placement/feel, pointer behaviour, and the anchor framing can't be judged from here.
muse-lantern referenced this pull request2026-10-22 14:19:58 +00:00