feat(ui): HUD visibility groups — gameplay vs implant layers (D-170)
New HudGroups autoload manages show/hide of related HUD elements as groups. Exclusive groups (gameplay, implant) are mutually exclusive — opening the star map hides stance indicator, minimap, interaction prompts, etc. Closing it restores them. Gameplay nodes registered in main.gd _ready(). Star map registers as implant group and uses toggle_group() instead of direct visibility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -622,4 +622,21 @@ Technical foundation decisions that constrain implementation: engine, client-ser
|
||||
|
||||
---
|
||||
|
||||
### D-170: HUD visibility groups — gameplay vs implant layers
|
||||
- **Date:** 2026-04-05
|
||||
- **Decision:** HUD elements register into named visibility groups via a `HudGroups` autoload. Groups control show/hide of related elements as a unit. Exclusive groups (gameplay, implant) are mutually exclusive — showing one hides the other. Non-exclusive groups (modal, debug) overlay independently.
|
||||
- **Rationale:** Full-screen implant panels (star map, travel planner, GTTR reader) need to hide gameplay HUD elements (stance, minimap, health, interaction prompts). Without groups, each panel manually hides/shows individual nodes — error-prone and unsustainable as the panel count grows.
|
||||
- **Groups:**
|
||||
- `gameplay` — stance indicator, minimap, HUD status, interaction prompts, cursor, inventory, news ticker, examine display. Visible during normal gameplay.
|
||||
- `implant` — star map, travel planner, GTTR reader, station profile. Fullscreen implant overlays. Showing this hides gameplay.
|
||||
- `modal` — settings, bug report, loading screen, debug console. Independent — overlays on top of anything.
|
||||
- `debug` — debug overlay, gauntlet HUD, checklist. Independent.
|
||||
- `always` — reserved for elements that never hide.
|
||||
- **API:** `HudGroups.register(node, "gameplay")`, `HudGroups.show_group("implant")`, `HudGroups.toggle_group("implant")`, `HudGroups.is_group_active("implant")`
|
||||
- **Implementation:** `client/scripts/autoloads/hud_groups.gd` — lightweight autoload, no scene tree manipulation beyond `node.visible`.
|
||||
- **Raised by:** Jeroen, 2026-04-05 — "Walk" badge visible over fullscreen star map.
|
||||
- **Dissent:** None.
|
||||
|
||||
---
|
||||
|
||||
*50 decisions. Last updated: 2026-03-24 (D-101 partial supersession noted; D-166 development cascade added)*
|
||||
|
||||
Reference in New Issue
Block a user