diff --git a/client/scripts/autoloads/hud_groups.gd b/client/scripts/autoloads/hud_groups.gd index 9144c02f5..c519c82bb 100644 --- a/client/scripts/autoloads/hud_groups.gd +++ b/client/scripts/autoloads/hud_groups.gd @@ -22,6 +22,15 @@ extends Node ## HudGroups.close_app() ## HudGroups.toggle_app("implant/map/starchart") +## Emitted when an app opens, closes, or changes mode. +## mode is a HudGroups.Mode enum value. +signal app_changed(app_path: String, mode: int) + +## Emitted when gameplay rendering should pause or resume. +## Fullscreen implant apps occlude gameplay — expensive renderers (world, +## fog, entities) should skip draw calls while this is true. +signal gameplay_occluded(occluded: bool) + enum Mode { GAMEPLAY, INSERT, FULLSCREEN } ## Z-index values for each mode. Gameplay is the base layer. @@ -30,18 +39,8 @@ const Z_INSERT: int = 10 const Z_FULLSCREEN: int = 20 const Z_MODAL: int = 30 -## Emitted when an app opens, closes, or changes mode. -## Listeners can use this to adapt their layout (e.g. resize to fullscreen). -signal app_changed(app_path: String, mode: Mode) - -## Emitted when gameplay rendering should pause or resume. -## Fullscreen implant apps occlude gameplay — expensive renderers (world, -## fog, entities) should skip draw calls while this is true. -## Connect from any renderer: HudGroups.gameplay_occluded.connect(_on_occluded) -signal gameplay_occluded(occluded: bool) - -var _groups: Dictionary = {} # group_path -> Array[CanvasItem] -var _active_app: String = "" # currently focused implant app ("" = none) +var _groups: Dictionary = {} # group_path -> Array[CanvasItem] +var _active_app: String = "" # currently focused implant app ("" = none) var _active_mode: Mode = Mode.GAMEPLAY diff --git a/client/scripts/rendering/world_renderer.gd b/client/scripts/rendering/world_renderer.gd index c84969776..1b8572a9a 100644 --- a/client/scripts/rendering/world_renderer.gd +++ b/client/scripts/rendering/world_renderer.gd @@ -14,6 +14,7 @@ extends Node2D # FogOverlay (Node2D) — z:900 fog shader (OUTSIDE FogGroup) var _last_tick: int = -1 +var _occluded: bool = false # D-170: skip rendering when fullscreen implant app is covering us @onready var tile_renderer = $FogGroup/FloorTiles @onready var fog_renderer = $FogOverlay @@ -21,9 +22,6 @@ var _last_tick: int = -1 @onready var sound_indicator_renderer = $SoundIndicators # #126 D-018 medium-range indicators -var _occluded: bool = false # D-170: skip rendering when fullscreen implant app is covering us - - func _ready() -> void: HudGroups.gameplay_occluded.connect(_on_gameplay_occluded) print("WorldRenderer: Initialized (D-049 z-stack)") diff --git a/client/ui/star_map.gd b/client/ui/star_map.gd index dc279f92a..9f5f9ba22 100644 --- a/client/ui/star_map.gd +++ b/client/ui/star_map.gd @@ -149,7 +149,7 @@ func toggle_visible() -> void: ## Respond to app layer changes (D-170). -func _on_app_changed(app_path: String, mode: HudGroups.Mode) -> void: +func _on_app_changed(app_path: String, mode: int) -> void: if app_path != "implant/map/starchart": return if mode == HudGroups.Mode.FULLSCREEN or mode == HudGroups.Mode.INSERT: