diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index 34040bb57..723dd1181 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -2453,7 +2453,7 @@ static void RequireDaemonRenderQueryAuthority(string root) "beltPose.InstancePoses ?? Array.Empty()", "private void RefreshDaemonContactRows()", ".State", - ".ReactiveZoneContacts()", + ".Reactive()", "private void RefreshDaemonCompassMarkers()", "private void RefreshDaemonVisibleEntityInstances()", "PowerPulse(", @@ -2562,8 +2562,8 @@ static void RequireDaemonRenderQueryAuthority(string root) "ResolveCatalog()", "ResolveCurrentEntityHudStatus()", "AetheriaUnityRuntimeClientProvider.ResolveClient(", - "ResolveClient().State.ReactiveCatalog()", - "ResolveClient().State.Settings.ReactivePlayer()", + "ResolveClient().State.Reactive()", + "ResolveClient().State.Reactive()", "ResolveClient().State.Current.ReactiveEntity()", "return _currentEntity?.Current?.Hud ?? new AetheriaRuntimeCurrentEntityHudStatus();", "_currentEntity?.Dispose()", @@ -4220,7 +4220,6 @@ static void RequireRuntimeInputScreenUsesEveSurface(string root) "AetheriaClient", "AetheriaUnityRuntimeClientProvider.ResolveClient(", ".State", - ".Settings", "action.ApplyBindingOverride", "new InputAction(\"Aetheria Input Capture\")", "AetheriaRuntimeInputSettingsSurfaceBuilder.IsSupportedCapturePath(", @@ -4245,7 +4244,7 @@ static void RequireRuntimeInputScreenUsesEveSurface(string root) "InputDisplayLayout", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".ReactivePlayer()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -4553,7 +4552,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "ProjectZoneDetailsSurfaceState(", "AetheriaUnityRuntimeClientProvider.ResolveClient(", ".State", - ".ReactiveSectorMap()", + ".Reactive()", ".Details", ".ReactiveZone(zoneIndex)", "_zoneDetails?.Current", @@ -4578,7 +4577,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "SectorRenderer", "AetheriaRuntimeSectorMapDocument", "_sectorMap", - ".ReactiveSectorMap()", + ".Reactive()", "AetheriaRuntimeSectorMapSession", ".ObserveSectorMap()"); RequireReactiveTypedDocumentAccess( @@ -4602,7 +4601,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "SectorRenderer", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.ReactiveCatalog()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -4610,7 +4609,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "SectorRenderer", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".ReactivePlayer()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7026,7 +7025,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root) var clientState = File.ReadAllText(clientStatePath); if (!clientState.Contains("public CultMeshReactiveDocument ReactiveEntity(", StringComparison.Ordinal) || - !clientState.Contains("public CultMeshReactiveDocument ReactiveStationRefit(", StringComparison.Ordinal) || + !clientState.Contains("public CultMeshReactiveDocument Reactive(", StringComparison.Ordinal) || !clientState.Contains("public CultMeshReactiveDocument ReactiveInventory(", StringComparison.Ordinal)) { throw new InvalidOperationException( @@ -7046,7 +7045,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root) "ResolveCurrentEntity()", ".ReactiveEntity()", "ResolveStationRefitDocument()", - ".ReactiveStationRefit()", + ".Reactive()", "ResolveInventory(entityIndex)", ".ReactiveInventory(entityIndex)", "_inventory?.Current" @@ -7100,7 +7099,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root) name, "AetheriaRuntimeStationRefitDocument", "_stationRefit", - ".ReactiveStationRefit()", + ".Reactive()", "AetheriaRuntimeStationRefitSession", ".ObserveStationRefit()"); RequireReactiveTypedDocumentAccess( @@ -7135,7 +7134,7 @@ static void RequireMenuDockingUsesManagedTypedSnapshot(string root) "public CultMeshDocumentHandle Docking { get; }", "public AetheriaRuntimeCurrentDockingDocument LatestDocking()", "public CultMeshReactiveDocument ReactiveDocking(", - "public CultMeshReactiveDocument ReactiveStationRefit(" + "public CultMeshReactiveDocument Reactive(" }; var missingClientSymbols = requiredClientSymbols .Where(symbol => !clientState.Contains(symbol, StringComparison.Ordinal)) @@ -7276,26 +7275,14 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) var clientState = File.ReadAllText(clientStatePath); var requiredClientSymbols = new[] { + "public CultMeshDocumentHandle Document()", + "public Task> ReactiveAsync(", + "public CultMeshReactiveDocument Reactive(", "public AetheriaRuntimeCatalogSnapshot LatestCatalog()", - "public Task> ReactiveCatalogAsync(", - "public CultMeshReactiveDocument ReactiveCatalog(", "public Task LatestPlayerAsync()", "public AetheriaRuntimePlayerSettingsDocument LatestPlayer()", - "public Task> ReactivePlayerAsync(", - "public CultMeshReactiveDocument ReactivePlayer(", "public Task LatestVerseHostAsync()", "public AetheriaRuntimeVerseHostSettingsDocument LatestVerseHost()", - "public Task> ReactiveVerseHostAsync(", - "public CultMeshReactiveDocument ReactiveVerseHost(", - "public Task> ReactiveLoadoutTemplatesAsync(", - "public CultMeshReactiveDocument ReactiveLoadoutTemplates(", - "public Task> ReactiveSectorMapAsync(", - "public CultMeshReactiveDocument ReactiveSectorMap(", - "public Task> ReactiveZoneContactsAsync(", - "public CultMeshReactiveDocument ReactiveZoneContacts(", - "public Task> ReactiveStationRefitAsync(", - "public CultMeshReactiveDocument ReactiveStationRefit(", - "public CultMeshReactiveDocument Reactive(", "public Task> ReactiveZoneAsync(", "public CultMeshReactiveDocument ReactiveZone(", "public Task> ReactiveEntityAsync(", @@ -7315,7 +7302,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) if (missingClientSymbols.Length > 0) { throw new InvalidOperationException( - "AetheriaClientState must expose named managed latest accessors for shared Unity documents: " + + "AetheriaClientState must expose generic managed reactive access plus latest accessors for shared Unity documents: " + string.Join(", ", missingClientSymbols)); } @@ -7366,7 +7353,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) if (offenders.Length > 0) { throw new InvalidOperationException( - "Unity presentation code still walks shared CultMesh document handles instead of named managed accessors: " + + "Unity presentation code still walks shared CultMesh document handles instead of managed typed document access: " + string.Join(", ", offenders)); } @@ -7380,7 +7367,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) { "public abstract class ActionBarBinding : IDisposable", "CultMeshReactiveDocument _catalog", - "Client.State.ReactiveCatalog()", + "Client.State.Reactive()", "_catalog?.Current?.FindItem(item, x => x.ItemKey)", "binding?.Dispose()", "private void OnDestroy()" @@ -7420,8 +7407,8 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "CultMeshReactiveDocument _catalog", "CultMeshReactiveDocument _playerSettings", "CultMeshReactiveDocument _currentEntity", - "ResolveClient().State.ReactiveCatalog()", - "ResolveClient().State.Settings.ReactivePlayer()", + "ResolveClient().State.Reactive()", + "ResolveClient().State.Reactive()", "ResolveClient().State.Current.ReactiveEntity()", "_catalog?.Dispose()", "_playerSettings?.Dispose()", @@ -7476,7 +7463,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) var requiredVolumeCloudSymbols = new[] { "CultMeshReactiveDocument _playerSettings", - ".ReactivePlayer()", + ".Reactive()", "_playerSettings?.Dispose()", "_playerSettings?.Current" }; @@ -7506,7 +7493,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) var requiredObservedTargetSymbols = new[] { "CultMeshReactiveDocument _zoneContacts", - ".ReactiveZoneContacts()", + ".Reactive()", "_zoneContacts?.Dispose()", "_zoneContacts?.Current" }; @@ -7540,7 +7527,6 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "CultMeshReactiveDocument _renderSplatsViewport", ".ReactiveObjects(viewport)", ".ReactiveRenderSplats(viewport)", - ".Settings", "ClearViewportCaches()", "_objectsViewport?.Dispose()", "_renderSplatsViewport?.Dispose()", @@ -7579,7 +7565,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MapRenderer", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".ReactivePlayer()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7608,7 +7594,6 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MainMenu.cs")); var requiredMainMenuSharedDocumentSymbols = new[] { - ".Settings", "_sectorMap?.Dispose()", "_playerSettings?.Dispose()", "_verseHostSettings?.Dispose()", @@ -7632,7 +7617,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MainMenu", "AetheriaRuntimeSectorMapDocument", "_sectorMap", - ".ReactiveSectorMap()", + ".Reactive()", "AetheriaRuntimeSectorMapSession", ".ObserveSectorMap()"); RequireReactiveTypedDocumentAccess( @@ -7640,7 +7625,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MainMenu", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".ReactivePlayer()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); RequireReactiveTypedDocumentAccess( @@ -7648,7 +7633,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MainMenu", "AetheriaRuntimeVerseHostSettingsDocument", "_verseHostSettings", - ".ReactiveVerseHost()", + ".Reactive()", "AetheriaRuntimeVerseHostSettingsSession", ".ObserveVerseHost()"); @@ -7675,7 +7660,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "TradeMenu", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.ReactiveCatalog()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -7683,7 +7668,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "TradeMenu", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".ReactivePlayer()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7710,7 +7695,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "InventoryMenu", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.ReactiveCatalog()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -7718,7 +7703,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "InventoryMenu", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".ReactivePlayer()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7748,7 +7733,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "InventoryPanel", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.ReactiveCatalog()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -7756,7 +7741,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "InventoryPanel", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".ReactivePlayer()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7772,7 +7757,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "CultMeshReactiveDocument _sectorMap", "CultMeshReactiveDocument _currentZone", "CultMeshReactiveDocument _zoneDetails", - ".ReactiveSectorMap()", + ".Reactive()", ".Current", ".ReactiveZone()", ".ReactiveZone(zoneIndex)", @@ -7796,7 +7781,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "SectorRenderer", "AetheriaRuntimeSectorMapDocument", "_sectorMap", - ".ReactiveSectorMap()", + ".Reactive()", "AetheriaRuntimeSectorMapSession", ".ObserveSectorMap()"); RequireReactiveTypedDocumentAccess( @@ -7820,7 +7805,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "SectorRenderer", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.ReactiveCatalog()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -7828,7 +7813,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "SectorRenderer", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".ReactivePlayer()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7859,7 +7844,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) var requiredZoneRendererSharedDocumentSymbols = new[] { "CultMeshReactiveDocument _zoneContacts", - "ResolveClient().State.ReactiveZoneContacts()", + "ResolveClient().State.Reactive()", "_zoneContacts?.Dispose()", "_zoneContacts?.Current", "private void OnDestroy()" @@ -7879,7 +7864,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "ZoneRenderer", "AetheriaRuntimeZoneContactsDocument", "_zoneContacts", - "ResolveClient().State.ReactiveZoneContacts()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeZoneContactsSession", "ResolveClient().State.ObserveZoneContacts()"); RequireReactiveTypedDocumentAccess( @@ -7887,7 +7872,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "ZoneRenderer", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.ReactiveCatalog()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); @@ -7906,7 +7891,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) string.Join(", ", zoneRendererRawDocumentHits)); } - Console.WriteLine("Shared document accessors: Unity shared catalog/settings reads use named managed Aetheria client accessors"); + Console.WriteLine("Shared document accessors: Unity shared catalog/settings reads use generic managed typed documents"); } static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root) @@ -8136,9 +8121,9 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root "public CultMeshReactiveDocument Reactive(", "public AetheriaRuntimeObservedDaemonState? LatestObservedDaemon()", "public AetheriaRuntimeObservedDockingState? CurrentDocking(", - "public CultMeshReactiveDocument ReactiveCatalog(", - "public CultMeshReactiveDocument ReactiveSectorMap(", - "public CultMeshReactiveDocument ReactiveZoneContacts(", + "public CultMeshReactiveDocument Reactive(", + "public CultMeshReactiveDocument Reactive(", + "public CultMeshReactiveDocument Reactive(", "public AetheriaRuntimeLoadoutTemplatesDocument LatestLoadoutTemplates()", "public AetheriaRuntimeStationRefitDocument LatestStationRefit()", "public AetheriaRuntimeZoneRenderDocument LatestZoneRender()", @@ -8178,12 +8163,37 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root string.Join(", ", missingClientSymbols)); } - if (topLevelClientState.Contains("ReactiveDaemonFrame(", StringComparison.Ordinal) || - topLevelClientState.Contains("ReactiveDaemonSoaView(", StringComparison.Ordinal) || - topLevelClientState.Contains("ReactiveZoneRender(", StringComparison.Ordinal)) + var forbiddenFixedReactiveWrappers = new[] + { + "ReactiveCatalog(", + "ReactiveCatalogAsync(", + "ReactiveLoadoutTemplates(", + "ReactiveLoadoutTemplatesAsync(", + "ReactiveSectorMap(", + "ReactiveSectorMapAsync(", + "ReactiveZoneContacts(", + "ReactiveZoneContactsAsync(", + "ReactiveStationRefit(", + "ReactiveStationRefitAsync(", + "ReactiveDaemonFrame(", + "ReactiveDaemonFrameAsync(", + "ReactiveDaemonSoaView(", + "ReactiveDaemonSoaViewAsync(", + "ReactiveZoneRender(", + "ReactiveZoneRenderAsync(", + "ReactivePlayer(", + "ReactivePlayerAsync(", + "ReactiveVerseHost(", + "ReactiveVerseHostAsync(" + }; + var survivingFixedReactiveWrappers = forbiddenFixedReactiveWrappers + .Where(symbol => clientState.Contains(symbol, StringComparison.Ordinal)) + .ToArray(); + if (survivingFixedReactiveWrappers.Length > 0) { throw new InvalidOperationException( - "AetheriaClientState must not reintroduce named daemon reactive wrappers; use Reactive() for managed typed document access."); + "AetheriaClientState must not reintroduce named fixed-document reactive wrappers; use Reactive() for managed typed document access: " + + string.Join(", ", survivingFixedReactiveWrappers)); } var observedDaemonState = File.ReadAllText(observedDaemonStatePath); @@ -8849,9 +8859,9 @@ static void RequireClientTargetBootAuthority(string root) "stateBoot.StateFileExists", "AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)", ".State", - ".ReactiveCatalog()", + ".Reactive()", "runtimeCatalogDocument.Current", - ".ReactiveSectorMap()", + ".Reactive()", "sectorMapDocument.Current", "new ItemManager(", "new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog)", @@ -8909,7 +8919,7 @@ static void RequireClientTargetBootAuthority(string root) "ResolveSectorMap(AetheriaRuntimeStateBootReport stateBoot)", "AetheriaClient", ".State", - ".ReactiveSectorMap()", + ".Reactive()", "ResolveVerseHostSettings(AetheriaRuntimeStateBootReport stateBoot)", "AetheriaState.At(AetheriaUnityRuntimePaths.GameDataDirectory)", ".ClientTarget", @@ -12313,8 +12323,7 @@ static void RequireMainMenuVerseHostProjection(string root) var requiredMainMenuSymbols = new[] { "ResolveVerseHostSettings(AetheriaRuntimeStateBootReport stateBoot)", - ".Settings", - ".ReactiveVerseHost()", + ".Reactive()", "AetheriaRuntimeMainMenuSurfaceBuilder.ProjectRoot(", "AetheriaRuntimeMainMenuSurfaceBuilder.BuildRoot(" }; @@ -12447,7 +12456,7 @@ static void RequireMainMenuContinueRunState(string root) "ResolveSectorMap", "AetheriaClient", ".State", - ".ReactiveSectorMap()", + ".Reactive()", "ContinueGame()", "SceneManager.LoadScene(\"ARPG\")" }; @@ -12782,7 +12791,7 @@ static void RequireMainMenuContinueRunState(string root) "AetheriaRuntimeZoneContactRow", "AetheriaRuntimeZoneTargetRow", ".State", - ".ReactiveZoneContacts()", + ".Reactive()", "_zoneContacts?.Current", "_zoneContacts?.Dispose()", "_entityIndex.TryResolveEntityByDaemonIndex(targetEntityIndex, out var targetEntity)" @@ -12857,7 +12866,7 @@ static void RequireMainMenuContinueRunState(string root) ".State.CurrentDocking()", "state.ReactiveEntity()", "state.ReactiveDocking()", - "state.ReactiveStationRefit()" + "state.Reactive()" }; var observedDockingHits = forbiddenObservedDockingSymbols .Where(symbol => observedDockingIndex.Contains(symbol, StringComparison.Ordinal)) @@ -13791,7 +13800,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) "AetheriaRuntimeZoneContactRow", "AetheriaRuntimeZoneTargetRow", ".State", - ".ReactiveZoneContacts()", + ".Reactive()", "_zoneContacts?.Current", "_zoneContacts?.Dispose()", "_entityIndex.TryResolveEntityByDaemonIndex(targetEntityIndex, out var targetEntity)" @@ -13930,20 +13939,18 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) !mapRenderer.Contains(".Viewports", StringComparison.Ordinal) || !mapRenderer.Contains(".ReactiveObjects(viewport)", StringComparison.Ordinal) || !mapRenderer.Contains(".ReactiveRenderSplats(viewport)", StringComparison.Ordinal) || - !mapRenderer.Contains(".Settings", StringComparison.Ordinal) || - !mapRenderer.Contains(".ReactivePlayer()", StringComparison.Ordinal) || + !mapRenderer.Contains(".Reactive()", StringComparison.Ordinal) || !sectorRenderer.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) || !sectorRenderer.Contains(".State", StringComparison.Ordinal) || - !sectorRenderer.Contains(".ReactiveSectorMap()", StringComparison.Ordinal) || + !sectorRenderer.Contains(".Reactive()", StringComparison.Ordinal) || !sectorRenderer.Contains(".Details", StringComparison.Ordinal) || !sectorRenderer.Contains(".ReactiveZone(zoneIndex)", StringComparison.Ordinal) || !sectorRenderer.Contains(".Current", StringComparison.Ordinal) || - !sectorRenderer.Contains(".Settings", StringComparison.Ordinal) || - !sectorRenderer.Contains("ResolveClient().State.ReactiveCatalog()", StringComparison.Ordinal) || - !sectorRenderer.Contains(".ReactivePlayer()", StringComparison.Ordinal) || + !sectorRenderer.Contains("ResolveClient().State.Reactive()", StringComparison.Ordinal) || + !sectorRenderer.Contains(".Reactive()", StringComparison.Ordinal) || !sectorMap.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) || !sectorMap.Contains(".State", StringComparison.Ordinal) || - !sectorMap.Contains(".ReactiveSectorMap()", StringComparison.Ordinal) || + !sectorMap.Contains(".Reactive()", StringComparison.Ordinal) || !sectorRenderer.Contains("AetheriaRuntimeZoneDetailsSurfaceBuilder.ProjectDaemonZone(", StringComparison.Ordinal)) { throw new InvalidOperationException( @@ -13962,7 +13969,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) "SectorMap", "AetheriaRuntimeSectorMapDocument", "_sectorMapDocument", - ".ReactiveSectorMap()", + ".Reactive()", "AetheriaRuntimeSectorMapSession", ".ObserveSectorMap()"); @@ -14600,7 +14607,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) "TryStartDaemonObservedGame", "ResolveSectorMap(stateBoot)", ".State", - ".ReactiveSectorMap()", + ".Reactive()", "sectorMap.FrameId", "SceneManager.LoadScene(\"ARPG\")" }; @@ -15485,9 +15492,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) "AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory)", "AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)", ".State", - ".ReactiveCatalog()", + ".Reactive()", "runtimeCatalogDocument.Current", - ".ReactiveSectorMap()", + ".Reactive()", "sectorMapDocument.Current", "new ItemManager(", "new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog)", @@ -15530,8 +15537,7 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) "RuntimeClients[cacheKey] = runtimeClient", "AetheriaClient", ".State", - ".Settings", - ".ReactivePlayer()", + ".Reactive()", "_playerSettingsDocument.Current", "_playerSettingsDocument?.Dispose()", "OpenAsync(", @@ -15966,8 +15972,8 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) if (!mainMenu.Contains("AetheriaClient", StringComparison.Ordinal) || !mainMenu.Contains("ResolveSectorMap(AetheriaRuntimeStateBootReport stateBoot)", StringComparison.Ordinal) || !mainMenu.Contains(".State", StringComparison.Ordinal) || - !mainMenu.Contains(".ReactiveSectorMap()", StringComparison.Ordinal) || - !mainMenu.Contains(".ReactivePlayer()", StringComparison.Ordinal)) + !mainMenu.Contains(".Reactive()", StringComparison.Ordinal) || + !mainMenu.Contains(".Reactive()", StringComparison.Ordinal)) { throw new InvalidOperationException( "MainMenu no longer routes sector-map lookup through the shared Aetheria client facade."); @@ -15994,9 +16000,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) var requiredGameplayBootSymbols = new[] { - ".ReactiveCatalog()", + ".Reactive()", "runtimeCatalogDocument.Current", - ".ReactiveSectorMap()", + ".Reactive()", "sectorMapDocument.Current", "Galaxy.ProjectObservedSectorMap(", "sectorMap.IsTutorial", diff --git a/Assets/Scripts/Gameplay/ActionBarSlot.cs b/Assets/Scripts/Gameplay/ActionBarSlot.cs index d772477a5..8519e921e 100644 --- a/Assets/Scripts/Gameplay/ActionBarSlot.cs +++ b/Assets/Scripts/Gameplay/ActionBarSlot.cs @@ -95,7 +95,7 @@ public abstract class ActionBarBinding : IDisposable try { - _catalog ??= Client.State.ReactiveCatalog(); + _catalog ??= Client.State.Reactive(); return _catalog?.Current?.FindItem(item, x => x.ItemKey); } catch (Exception ex) diff --git a/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs b/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs index 932e3c209..327bfab43 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs @@ -37,11 +37,11 @@ public sealed class AetheriaUnityGameplayBootShell var aetheria = AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId) .State; - using var runtimeCatalogDocument = aetheria.ReactiveCatalog(); + using var runtimeCatalogDocument = aetheria.Reactive(); var runtimeCatalog = runtimeCatalogDocument.Current; if (runtimeCatalog == null) throw new InvalidOperationException("Aetheria typed runtime catalog is required before gameplay boot."); - using var sectorMapDocument = aetheria.ReactiveSectorMap(); + using var sectorMapDocument = aetheria.Reactive(); var sectorMap = sectorMapDocument.Current; if (sectorMap == null) throw new InvalidOperationException("Aetheria typed sector map is required before gameplay boot."); diff --git a/Assets/Scripts/Gameplay/AetheriaUnityObservedTargetQuery.cs b/Assets/Scripts/Gameplay/AetheriaUnityObservedTargetQuery.cs index 1b48d9228..c9141da4f 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityObservedTargetQuery.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityObservedTargetQuery.cs @@ -100,7 +100,7 @@ public sealed class AetheriaUnityObservedTargetQuery : IDisposable { _zoneContacts = _resolveClient() ?.State - .ReactiveZoneContacts(); + .Reactive(); return _zoneContacts?.Current; } catch diff --git a/Assets/Scripts/Gameplay/AetheriaUnityRuntimeClientProvider.cs b/Assets/Scripts/Gameplay/AetheriaUnityRuntimeClientProvider.cs index 6899e743d..ff0251611 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityRuntimeClientProvider.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityRuntimeClientProvider.cs @@ -96,8 +96,7 @@ public static class AetheriaUnityRuntimeClientProvider { _playerSettingsDocument ??= ResolveClient(AetheriaUnityRuntimePaths.RuntimeStateFilePath) .State - .Settings - .ReactivePlayer(); + .Reactive(); var stored = _playerSettingsDocument.Current; if (stored == null) diff --git a/Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs b/Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs index f7aec6d14..22bb3e7d1 100644 --- a/Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs +++ b/Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs @@ -205,18 +205,18 @@ public class DaemonRuntimeDocumentTests .Reactive(); var observed = client.State.LatestObservedDaemon(); var observedAuthoritativeFrame = client.State.LatestDaemonFrame(); - using var catalogReactive = client.State.ReactiveCatalog(); + using var catalogReactive = client.State.Reactive(); using var daemonFrameReactive = client.State.Reactive(); using var daemonSoaViewReactive = client.State.Reactive(); - using var loadoutTemplatesReactive = client.State.ReactiveLoadoutTemplates(); - using var sectorMapReactive = client.State.ReactiveSectorMap(); - using var playerSettingsReactive = client.State.Settings.ReactivePlayer(); - using var verseHostSettingsReactive = client.State.Settings.ReactiveVerseHost(); - using var zoneContactsReactive = client.State.ReactiveZoneContacts(); + using var loadoutTemplatesReactive = client.State.Reactive(); + using var sectorMapReactive = client.State.Reactive(); + using var playerSettingsReactive = client.State.Reactive(); + using var verseHostSettingsReactive = client.State.Reactive(); + using var zoneContactsReactive = client.State.Reactive(); using var currentZoneReactive = client.State.Current.ReactiveZone(); using var currentEntityDocumentReactive = client.State.Current.ReactiveEntity(); using var currentDockingReactive = client.State.Current.ReactiveDocking(); - using var stationRefitReactive = client.State.ReactiveStationRefit(); + using var stationRefitReactive = client.State.Reactive(); using var zoneDetailsReactive = client.State.Details.ReactiveZone(0); using var selectedObjectReactive = client.State.Details.ReactiveSelectedObject(0); using var inventoryReactive = client.State.Details.ReactiveInventory(0); @@ -224,8 +224,8 @@ public class DaemonRuntimeDocumentTests using var objectsViewportReactive = client.State.Viewports.ReactiveObjects(viewport); using var gravityViewportReactive = client.State.Viewports.ReactiveGravity(viewport); using var renderSplatsViewportReactive = client.State.Viewports.ReactiveRenderSplats(viewport); - using var playerHudCatalog = client.State.ReactiveCatalog(); - using var playerHudSettings = client.State.Settings.ReactivePlayer(); + using var playerHudCatalog = client.State.Reactive(); + using var playerHudSettings = client.State.Reactive(); using var playerHudEntity = client.State.Current.ReactiveEntity(); var gameSurface = client.State.LatestGameSurface(); var gameTuiSurface = client.State.LatestGameTuiSurface(); diff --git a/Assets/Scripts/UI/HUD/SchematicDisplay.cs b/Assets/Scripts/UI/HUD/SchematicDisplay.cs index 3a5d42542..2cc574ada 100644 --- a/Assets/Scripts/UI/HUD/SchematicDisplay.cs +++ b/Assets/Scripts/UI/HUD/SchematicDisplay.cs @@ -326,7 +326,7 @@ public class SchematicDisplay : MonoBehaviour try { - _catalog = ResolveClient().State.ReactiveCatalog(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -342,7 +342,7 @@ public class SchematicDisplay : MonoBehaviour { try { - _playerSettings = ResolveClient().State.Settings.ReactivePlayer(); + _playerSettings = ResolveClient().State.Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs index b014b1cc0..90475e4dc 100644 --- a/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs +++ b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs @@ -394,8 +394,7 @@ public class InputDisplayLayout : MonoBehaviour { _playerSettings = ResolveClient() .State - .Settings - .ReactivePlayer(); + .Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index f268e3b82..7243d2b37 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -152,7 +152,7 @@ public class MainMenu : MonoBehaviour { _sectorMap ??= ResolveClient(stateBoot) .State - .ReactiveSectorMap(); + .Reactive(); return _sectorMap?.Current; } catch (Exception ex) @@ -171,8 +171,7 @@ public class MainMenu : MonoBehaviour { _playerSettings ??= ResolveClient(stateBoot) .State - .Settings - .ReactivePlayer(); + .Reactive(); return _playerSettings?.Current; } catch (Exception ex) @@ -191,8 +190,7 @@ public class MainMenu : MonoBehaviour { _verseHostSettings ??= ResolveClient(stateBoot) .State - .Settings - .ReactiveVerseHost(); + .Reactive(); return _verseHostSettings?.Current; } catch (Exception ex) diff --git a/Assets/Scripts/UI/Menu/InventoryMenu.cs b/Assets/Scripts/UI/Menu/InventoryMenu.cs index f53fa9563..fd873060d 100644 --- a/Assets/Scripts/UI/Menu/InventoryMenu.cs +++ b/Assets/Scripts/UI/Menu/InventoryMenu.cs @@ -986,7 +986,7 @@ public class InventoryMenu : MonoBehaviour { _stationRefit = ResolveClient() .State - .ReactiveStationRefit(); + .Reactive(); } catch (Exception ex) { @@ -1078,7 +1078,7 @@ public class InventoryMenu : MonoBehaviour try { - _catalog = ResolveClient().State.ReactiveCatalog(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -1097,8 +1097,7 @@ public class InventoryMenu : MonoBehaviour { _playerSettings = ResolveClient() .State - .Settings - .ReactivePlayer(); + .Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/Menu/InventoryPanel.cs b/Assets/Scripts/UI/Menu/InventoryPanel.cs index a35b84e6d..a6fc5eade 100644 --- a/Assets/Scripts/UI/Menu/InventoryPanel.cs +++ b/Assets/Scripts/UI/Menu/InventoryPanel.cs @@ -1525,7 +1525,7 @@ private void Update() { _stationRefit = ResolveClient() .State - .ReactiveStationRefit(); + .Reactive(); } catch (Exception ex) { @@ -1592,7 +1592,7 @@ private void Update() try { - _catalog = ResolveClient().State.ReactiveCatalog(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -1611,8 +1611,7 @@ private void Update() { _playerSettings = ResolveClient() .State - .Settings - .ReactivePlayer(); + .Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/Menu/MapRenderer.cs b/Assets/Scripts/UI/Menu/MapRenderer.cs index f03146068..27e93a88b 100644 --- a/Assets/Scripts/UI/Menu/MapRenderer.cs +++ b/Assets/Scripts/UI/Menu/MapRenderer.cs @@ -320,8 +320,7 @@ public class MapRenderer : MonoBehaviour { _playerSettings ??= ResolveClient() .State - .Settings - .ReactivePlayer(); + .Reactive(); return _playerSettings?.Current?.ShowAsteroidsInMinimap ?? false; } catch (Exception ex) diff --git a/Assets/Scripts/UI/Menu/SectorMap.cs b/Assets/Scripts/UI/Menu/SectorMap.cs index 07cc2d339..3d723222c 100644 --- a/Assets/Scripts/UI/Menu/SectorMap.cs +++ b/Assets/Scripts/UI/Menu/SectorMap.cs @@ -223,7 +223,7 @@ public class SectorMap : MonoBehaviour { _sectorMapDocument ??= ResolveClient() .State - .ReactiveSectorMap(); + .Reactive(); _sectorMap = _sectorMapDocument?.Current; if (_sectorMapLoaded) diff --git a/Assets/Scripts/UI/Menu/SectorRenderer.cs b/Assets/Scripts/UI/Menu/SectorRenderer.cs index 21e21f16a..ac1ebbb79 100644 --- a/Assets/Scripts/UI/Menu/SectorRenderer.cs +++ b/Assets/Scripts/UI/Menu/SectorRenderer.cs @@ -176,7 +176,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS { _sectorMap ??= ResolveClient() .State - .ReactiveSectorMap(); + .Reactive(); var sectorMap = _sectorMap?.Current; return (sectorMap?.Zones ?? Array.Empty()) .FirstOrDefault(zone => zone.ZoneIndex == zoneIndex); @@ -232,7 +232,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS try { - _catalog = ResolveClient().State.ReactiveCatalog(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -251,8 +251,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS { _playerSettings = ResolveClient() .State - .Settings - .ReactivePlayer(); + .Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/Menu/TradeMenu.cs b/Assets/Scripts/UI/Menu/TradeMenu.cs index 6e3f0aecc..e686383e4 100644 --- a/Assets/Scripts/UI/Menu/TradeMenu.cs +++ b/Assets/Scripts/UI/Menu/TradeMenu.cs @@ -626,7 +626,7 @@ public class TradeMenu : MonoBehaviour try { - _catalog = ResolveClient().State.ReactiveCatalog(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -645,8 +645,7 @@ public class TradeMenu : MonoBehaviour { _playerSettings = ResolveClient() .State - .Settings - .ReactivePlayer(); + .Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs b/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs index e593a8871..2a6bcc8cf 100644 --- a/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs +++ b/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs @@ -103,8 +103,7 @@ public class VolumeCloudRenderer : EffectBase { _playerSettings = ResolveClient() .State - .Settings - .ReactivePlayer(); + .Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs index 9e853b846..a2867f7e1 100644 --- a/Assets/Scripts/Zone Display/ZoneRenderer.cs +++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs @@ -1208,7 +1208,7 @@ public class ZoneRenderer : MonoBehaviour try { - _catalog = ResolveClient().State.ReactiveCatalog(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -1225,7 +1225,7 @@ public class ZoneRenderer : MonoBehaviour try { - _zoneContacts = ResolveClient().State.ReactiveZoneContacts(); + _zoneContacts = ResolveClient().State.Reactive(); } catch (Exception ex) { diff --git a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClientState.cs b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClientState.cs index da8ae8343..d2c7d3bdb 100644 --- a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClientState.cs +++ b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClientState.cs @@ -187,18 +187,6 @@ namespace GameCult.Aetheria.State.Verse return Latest(); } - public Task> ReactiveCatalogAsync( - CultMeshReactiveDocumentOptions? options = null) - { - return Catalog.ReactiveAsync(options); - } - - public CultMeshReactiveDocument ReactiveCatalog( - CultMeshReactiveDocumentOptions? options = null) - { - return Catalog.Reactive(options); - } - public Task LatestDaemonFrameAsync() { return LatestFrame.LatestAsync(); @@ -248,7 +236,7 @@ namespace GameCult.Aetheria.State.Verse { using var entity = Current.ReactiveEntity(options); using var docking = Current.ReactiveDocking(options); - using var refit = ReactiveStationRefit(options); + using var refit = Reactive(options); return AetheriaRuntimeObservedDockingState.TryCreateCurrent(entity, docking, refit, out var current) ? current : null; @@ -421,18 +409,6 @@ namespace GameCult.Aetheria.State.Verse return LatestLoadoutTemplatesAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } - public Task> ReactiveLoadoutTemplatesAsync( - CultMeshReactiveDocumentOptions? options = null) - { - return LoadoutTemplates.ReactiveAsync(options); - } - - public CultMeshReactiveDocument ReactiveLoadoutTemplates( - CultMeshReactiveDocumentOptions? options = null) - { - return LoadoutTemplates.Reactive(options); - } - public Task LatestSectorMapAsync() { return SectorMap.LatestAsync(); @@ -443,18 +419,6 @@ namespace GameCult.Aetheria.State.Verse return LatestSectorMapAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } - public Task> ReactiveSectorMapAsync( - CultMeshReactiveDocumentOptions? options = null) - { - return SectorMap.ReactiveAsync(options); - } - - public CultMeshReactiveDocument ReactiveSectorMap( - CultMeshReactiveDocumentOptions? options = null) - { - return SectorMap.Reactive(options); - } - public Task LatestZoneContactsAsync() { return ZoneContacts.LatestAsync(); @@ -465,18 +429,6 @@ namespace GameCult.Aetheria.State.Verse return LatestZoneContactsAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } - public Task> ReactiveZoneContactsAsync( - CultMeshReactiveDocumentOptions? options = null) - { - return ZoneContacts.ReactiveAsync(options); - } - - public CultMeshReactiveDocument ReactiveZoneContacts( - CultMeshReactiveDocumentOptions? options = null) - { - return ZoneContacts.Reactive(options); - } - public Task LatestStationRefitAsync() { return StationRefit.LatestAsync(); @@ -487,18 +439,6 @@ namespace GameCult.Aetheria.State.Verse return LatestStationRefitAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } - public Task> ReactiveStationRefitAsync( - CultMeshReactiveDocumentOptions? options = null) - { - return StationRefit.ReactiveAsync(options); - } - - public CultMeshReactiveDocument ReactiveStationRefit( - CultMeshReactiveDocumentOptions? options = null) - { - return StationRefit.Reactive(options); - } - public Task LatestZoneRenderAsync() { return ZoneRender.LatestAsync(); @@ -867,18 +807,6 @@ namespace GameCult.Aetheria.State.Verse return LatestPlayerAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } - public Task> ReactivePlayerAsync( - CultMeshReactiveDocumentOptions? options = null) - { - return Player.ReactiveAsync(options); - } - - public CultMeshReactiveDocument ReactivePlayer( - CultMeshReactiveDocumentOptions? options = null) - { - return Player.Reactive(options); - } - public Task LatestVerseHostAsync() { return VerseHost.LatestAsync(); @@ -889,18 +817,6 @@ namespace GameCult.Aetheria.State.Verse return LatestVerseHostAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } - public Task> ReactiveVerseHostAsync( - CultMeshReactiveDocumentOptions? options = null) - { - return VerseHost.ReactiveAsync(options); - } - - public CultMeshReactiveDocument ReactiveVerseHost( - CultMeshReactiveDocumentOptions? options = null) - { - return VerseHost.Reactive(options); - } - } public sealed class AetheriaClientViewportState