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:
2026-04-05 11:01:28 +02:00
co-authored by Claude Opus 4.6
parent 44cc8cda4c
commit f037bcaa81
5 changed files with 120 additions and 2 deletions
+6 -2
View File
@@ -118,6 +118,9 @@ func _ready() -> void:
_info_panel.mouse_filter = Control.MOUSE_FILTER_IGNORE
add_child(_info_panel)
# D-170: Register with HUD visibility groups
HudGroups.register(self, "implant")
_load_data()
if _data_loaded:
_compute_layout()
@@ -140,9 +143,10 @@ func set_insert_active(active: bool) -> void:
visible = false
## Toggle visibility (e.g., from a keybind or button).
## Toggle visibility via HUD group system (D-170).
## Shows implant group (hides gameplay) or vice versa.
func toggle_visible() -> void:
visible = not visible
HudGroups.toggle_group("implant")
if visible:
_dirty = true