diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index 338eceffc..619f0dd4e 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -9448,10 +9448,8 @@ static void RequireClientTargetBootAuthority(string root) "!stateBoot.SupportsLocalStateFileRead", "stateBoot.StateFileExists", "AetheriaUnityRuntimeClientProvider.RuntimeState(stateBoot, stateBoot.RuntimeId)", - ".ReactiveCatalogSnapshot()", - "runtimeCatalogDocument.Current", - ".ReactiveSectorMap()", - "sectorMapDocument.Current", + "runtimeState.CurrentCatalog()", + "runtimeState.CurrentSectorMap()", "new ItemManager(", "new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog)", "ZoneRenderer.SetDroppedPickupItemFactory(loadoutItemFactory.CreateLoadoutItem)", @@ -9473,6 +9471,10 @@ static void RequireClientTargetBootAuthority(string root) if (gameplayBootShell.Contains(".ObserveCatalog()", StringComparison.Ordinal) || gameplayBootShell.Contains(".ObserveSectorMap()", StringComparison.Ordinal) || + gameplayBootShell.Contains(".ReactiveCatalogSnapshot()", StringComparison.Ordinal) || + gameplayBootShell.Contains("runtimeCatalogDocument.Current", StringComparison.Ordinal) || + gameplayBootShell.Contains(".ReactiveSectorMap()", StringComparison.Ordinal) || + gameplayBootShell.Contains("sectorMapDocument.Current", StringComparison.Ordinal) || gameplayBootShell.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)", StringComparison.Ordinal) || gameplayBootShell.Contains(".State;")) { @@ -16466,10 +16468,8 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) "public AetheriaUnityGameplayBootResult Boot()", "AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory)", "AetheriaUnityRuntimeClientProvider.RuntimeState(stateBoot, stateBoot.RuntimeId)", - ".ReactiveCatalogSnapshot()", - "runtimeCatalogDocument.Current", - ".ReactiveSectorMap()", - "sectorMapDocument.Current", + "runtimeState.CurrentCatalog()", + "runtimeState.CurrentSectorMap()", "new ItemManager(", "new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog)", "ZoneRenderer.SetDroppedPickupItemFactory(loadoutItemFactory.CreateLoadoutItem)", @@ -17041,10 +17041,8 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) var requiredGameplayBootSymbols = new[] { - ".ReactiveCatalogSnapshot()", - "runtimeCatalogDocument.Current", - ".ReactiveSectorMap()", - "sectorMapDocument.Current", + "runtimeState.CurrentCatalog()", + "runtimeState.CurrentSectorMap()", "Galaxy.ProjectObservedSectorMap(", "sectorMap.IsTutorial", "sectorMap.GenerationSeed", @@ -17061,6 +17059,15 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) string.Join(", ", missingGameplayBootSymbols)); } + if (gameplayBootShell.Contains(".ReactiveCatalogSnapshot()", StringComparison.Ordinal) || + gameplayBootShell.Contains("runtimeCatalogDocument.Current", StringComparison.Ordinal) || + gameplayBootShell.Contains(".ReactiveSectorMap()", StringComparison.Ordinal) || + gameplayBootShell.Contains("sectorMapDocument.Current", StringComparison.Ordinal)) + { + throw new InvalidOperationException( + "AetheriaUnityGameplayBootShell should use named current typed state reads for one-shot gameplay boot catalog/sector-map access."); + } + var observedRunProjectionPath = Path.Combine(root, "Assets", "Scripts", "Gameplay", "AetheriaUnityObservedRunProjection.cs"); if (File.Exists(observedRunProjectionPath)) { diff --git a/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs b/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs index e3e652ff9..512b9e0a6 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs @@ -4,7 +4,6 @@ using System; using GameCult.Aetheria.State.Verse; -using GameCult.Mesh; public sealed class AetheriaUnityGameplayBootShell { @@ -36,12 +35,10 @@ public sealed class AetheriaUnityGameplayBootShell } var runtimeState = AetheriaUnityRuntimeClientProvider.RuntimeState(stateBoot, stateBoot.RuntimeId); - using var runtimeCatalogDocument = runtimeState.ReactiveCatalogSnapshot(); - var runtimeCatalog = runtimeCatalogDocument.Current; + var runtimeCatalog = runtimeState.CurrentCatalog(); if (runtimeCatalog == null) throw new InvalidOperationException("Aetheria typed runtime catalog is required before gameplay boot."); - using var sectorMapDocument = runtimeState.ReactiveSectorMap(); - var sectorMap = sectorMapDocument.Current; + var sectorMap = runtimeState.CurrentSectorMap(); if (sectorMap == null) throw new InvalidOperationException("Aetheria typed sector map is required before gameplay boot.");