Stop main menu requiring daemon frame

This commit is contained in:
Meta Vens 2026-06-30 21:25:03 +01:00
commit c28cb4beff
2 changed files with 11 additions and 2 deletions

View file

@ -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"))

View file

@ -521,13 +521,11 @@ namespace GameCult.Aetheria.State.Verse
seatId => Document<AetheriaRuntimeStarbridgePlayerSeatDocument>(
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.");
}