feat(ui): unify star map and atlas into single implant/map chain (#844)
Per D-191, the atlas is the star map extended downward — not a separate app. AtlasPanel now owns the full Reach → system → planet → heightmap zoom hierarchy as a single HudGroups app (implant/map). - Add REACH_MAP as Level 0 of AtlasPanel's zoom hierarchy; renumber the enum so higher index = deeper zoom - Port hop-ring rendering (pan/zoom, system markers, hover/info, sector layout) from star_map.gd into AtlasPanel methods - Change AtlasPanel.APP_PATH from "implant/map/atlas" to "implant/map" - main.gd: KEY_M toggles unified atlas; KEY_A binding removed - Symmetric nav: ORBITAL_DIAGRAM back goes to REACH_MAP (not SYSTEM_PICKER), matching the forward skip - hud_groups.gd docstring documents the unified path and flags the legacy starchart path as kept-for-compat (retirement tracked in #852) star_map.gd's HudGroups registration stays live but inert — no key binding reaches it. Full retirement follows in #852 after a sprint of soak on the unified panel. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,17 +11,18 @@ extends Node
|
||||
##
|
||||
## Groups use hierarchical paths:
|
||||
## "gameplay" — HUD status, minimap, prompts, stance
|
||||
## "implant/map/starchart" — star map navigator
|
||||
## "implant/map" — unified atlas (reach map → system → planet → regional, D-191)
|
||||
## "implant/map/starchart" — legacy hop-ring view (registered by StarMapRenderer, kept for compat)
|
||||
## "implant/wiki/gttr" — Drifter's Guide reader
|
||||
## "implant/journal" — knowledge journal
|
||||
## "implant/economics" — economics monitor (D-181, #824)
|
||||
##
|
||||
## Usage:
|
||||
## HudGroups.register(self, "implant/map/starchart")
|
||||
## HudGroups.open_app("implant/map/starchart") # fullscreen by default
|
||||
## HudGroups.open_app("implant/map/starchart", HudGroups.MODE_INSERT)
|
||||
## HudGroups.register(self, "implant/map")
|
||||
## HudGroups.open_app("implant/map") # fullscreen by default
|
||||
## HudGroups.open_app("implant/map", HudGroups.MODE_INSERT)
|
||||
## HudGroups.close_app()
|
||||
## HudGroups.toggle_app("implant/map/starchart")
|
||||
## HudGroups.toggle_app("implant/map")
|
||||
|
||||
## Emitted when an app opens, closes, or changes mode.
|
||||
## mode is a HudGroups.Mode enum value.
|
||||
|
||||
@@ -178,17 +178,14 @@ func _ready() -> void:
|
||||
func _unhandled_key_input(event: InputEvent) -> void:
|
||||
if event.is_pressed() and not event.is_echo():
|
||||
if event is InputEventKey and event.keycode == KEY_M:
|
||||
if star_map:
|
||||
star_map.toggle_visible()
|
||||
elif event is InputEventKey and event.keycode == KEY_A:
|
||||
# #834: A — toggle Atlas implant panel (FULLSCREEN, implant/map/atlas)
|
||||
# #844: M — unified atlas (implant/map). Reach map → system → planet → regional.
|
||||
if atlas_panel:
|
||||
atlas_panel.toggle_visible()
|
||||
elif event is InputEventKey and event.keycode == KEY_N:
|
||||
# #824: N — toggle Economics Monitor implant panel (E is bound to interact).
|
||||
# Gated on the atlas being inactive so the viewer's N → city-economics
|
||||
# cross-link isn't shadowed by this global toggle (review #6).
|
||||
if economics_panel and not HudGroups.is_app_active("implant/map/atlas"):
|
||||
if economics_panel and not HudGroups.is_app_active("implant/map"):
|
||||
economics_panel.toggle_visible()
|
||||
elif event is InputEventKey and event.keycode == KEY_BRACKETLEFT:
|
||||
# #824: [ — cycle economics panel system selector backward
|
||||
|
||||
Reference in New Issue
Block a user