From 09389d9e68fcb74bdf312a700ef27b06fd1adfd1 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 21 Jun 2026 19:36:32 +0100 Subject: [PATCH] Query observed run zone explicitly --- Aetheria.State.Verify/Program.cs | 10 ++++++++-- Assets/Scripts/Gameplay/ActionGameManager.cs | 10 ++++------ Assets/Scripts/UI/Menu/MapRenderer.cs | 2 +- Assets/Scripts/UI/Menu/SectorRenderer.cs | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index 75bfb3764..0ef259042 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -8131,7 +8131,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) "ApplyLatestAuthoritativeDaemonFrame()", "ResolveDaemonObserver()", "public AetheriaRuntimeZoneSnapshotCommit FindDaemonZoneSnapshot(int daemonZoneIndex)", - "public GalaxyZone CurrentDaemonGalaxyZone", + "public bool TryGetObservedRunZone(out GalaxyZone galaxyZone)", "snapshot.ZoneIndex == daemonZoneIndex", "FindObservedGalaxyZone(run.CurrentZoneIndex)", "observed.IsAuthoritative", @@ -8183,13 +8183,19 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) if (mapRenderer.Contains("GameManager.Zone.GalaxyZone", StringComparison.Ordinal) || sectorRenderer.Contains("GameManager.Zone.GalaxyZone", StringComparison.Ordinal) || - sectorRenderer.Contains("GameManager.CurrentEntity.Zone.GalaxyZone", StringComparison.Ordinal)) + sectorRenderer.Contains("GameManager.CurrentEntity.Zone.GalaxyZone", StringComparison.Ordinal) || + mapRenderer.Contains("GameManager.CurrentDaemonGalaxyZone", StringComparison.Ordinal) || + sectorRenderer.Contains("GameManager.CurrentDaemonGalaxyZone", StringComparison.Ordinal) || + actionGameManager.Contains("public GalaxyZone CurrentDaemonGalaxyZone", StringComparison.Ordinal)) { throw new InvalidOperationException( "Map and sector UI must read current-zone identity from the daemon-observed run, not Unity's mirrored Zone hierarchy."); } if (!actionGameManager.Contains("public static bool TryGetObservedGalaxy(out Galaxy galaxy)", StringComparison.Ordinal) || + !actionGameManager.Contains("public bool TryGetObservedRunZone(out GalaxyZone galaxyZone)", StringComparison.Ordinal) || + !mapRenderer.Contains("GameManager.TryGetObservedRunZone(out var currentZone)", StringComparison.Ordinal) || + !sectorRenderer.Contains("GameManager.TryGetObservedRunZone(out var currentZone)", StringComparison.Ordinal) || !sectorMap.Contains("ActionGameManager.TryGetObservedGalaxy(out var observedGalaxy)", StringComparison.Ordinal) || !sectorRenderer.Contains("ActionGameManager.TryGetObservedGalaxy(out var observedGalaxy)", StringComparison.Ordinal)) { diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index a02fad172..ab22d214e 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -906,13 +906,11 @@ public class ActionGameManager : MonoBehaviour .FirstOrDefault(snapshot => snapshot != null && snapshot.ZoneIndex == daemonZoneIndex); } - public GalaxyZone CurrentDaemonGalaxyZone + public bool TryGetObservedRunZone(out GalaxyZone galaxyZone) { - get - { - var run = ResolveDaemonObserver()?.LastObservedState?.Run; - return FindObservedGalaxyZone(run?.CurrentZoneIndex ?? -1); - } + var run = ResolveDaemonObserver()?.LastObservedState?.Run; + galaxyZone = FindObservedGalaxyZone(run?.CurrentZoneIndex ?? -1); + return galaxyZone != null; } private static int FactionIndex(Faction faction) diff --git a/Assets/Scripts/UI/Menu/MapRenderer.cs b/Assets/Scripts/UI/Menu/MapRenderer.cs index f93788112..f402a830c 100644 --- a/Assets/Scripts/UI/Menu/MapRenderer.cs +++ b/Assets/Scripts/UI/Menu/MapRenderer.cs @@ -49,7 +49,7 @@ public class MapRenderer : MonoBehaviour GravityCamera.gameObject.SetActive(true); TintCamera.gameObject.SetActive(true); InfluenceCamera.gameObject.SetActive(true); - var currentZone = GameManager.CurrentDaemonGalaxyZone; + GameManager.TryGetObservedRunZone(out var currentZone); Title.text = $"Zone: {currentZone?.Name ?? "Unknown"}"; // If hiding minimap asteroids, turn them back on for the map screen diff --git a/Assets/Scripts/UI/Menu/SectorRenderer.cs b/Assets/Scripts/UI/Menu/SectorRenderer.cs index 3b8e16869..1ae6a1f5a 100644 --- a/Assets/Scripts/UI/Menu/SectorRenderer.cs +++ b/Assets/Scripts/UI/Menu/SectorRenderer.cs @@ -225,7 +225,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS { _init = true; SectorCamera.gameObject.SetActive(true); - var currentZone = GameManager.CurrentDaemonGalaxyZone; + GameManager.TryGetObservedRunZone(out var currentZone); _position = currentZone?.Position ?? float2.zero; _viewSize = .25f;