From c28cb4beff5f558c017b5bed73fbb9b07c69b771 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Tue, 30 Jun 2026 21:25:03 +0100 Subject: [PATCH] Stop main menu requiring daemon frame --- Assets/Scripts/UI/MainMenu.cs | 9 +++++++++ .../Runtime/AetheriaRuntimeVerseClient.cs | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index faf545c73..e6ae44c99 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -164,6 +164,10 @@ public class MainMenu : MonoBehaviour .SectorMap .Latest(); } + catch (KeyNotFoundException ex) when (IsMissingDaemonFrame(ex)) + { + return null; + } catch (Exception ex) { Debug.LogError($"Failed to bind typed Aetheria sector-map state for the main menu: {ex}"); @@ -209,6 +213,11 @@ public class MainMenu : MonoBehaviour } } + private static bool IsMissingDaemonFrame(KeyNotFoundException ex) + { + return ex?.Message?.Contains("daemon:aetheria.frame.latest.v1", StringComparison.Ordinal) == true; + } + private void ContinueGame() { if (!TryStartDaemonObservedGame("Continuing Daemon Run")) diff --git a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeVerseClient.cs b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeVerseClient.cs index db97193b4..5e8276fcd 100644 --- a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeVerseClient.cs +++ b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeVerseClient.cs @@ -521,13 +521,11 @@ namespace GameCult.Aetheria.State.Verse seatId => Document( AetheriaRuntimeVerseRecordKeys.StarbridgePlayerSeat(seatId))); - managedDaemonFrame = state.DaemonFrame.Reactive(); managedCatalog = state.Catalog.Reactive(); managedLoadoutTemplates = state.LoadoutTemplates.Reactive(); managedPlayerSettings = state.PlayerSettings.Reactive(); managedStarbridgeScenario = state.StarbridgeScenario.Reactive(); managedStarbridgeSession = state.StarbridgeSession.Reactive(); - _managedDaemonFrame = managedDaemonFrame; _managedCatalog = managedCatalog; _managedLoadoutTemplates = managedLoadoutTemplates; _managedPlayerSettings = managedPlayerSettings; @@ -567,6 +565,8 @@ namespace GameCult.Aetheria.State.Verse AetheriaRuntimeDaemonFrameDocument RequireManagedFrame() { + managedDaemonFrame ??= latestFrameDocument.Reactive(); + _managedDaemonFrame = managedDaemonFrame; return managedDaemonFrame?.Current ?? throw new InvalidOperationException("Aetheria Verse client has no daemon frame yet."); }