From 296a0b6de83055ee4f69fdd4297cb3d6563b3b00 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Mon, 29 Jun 2026 04:18:22 +0100 Subject: [PATCH] Add native reactive client state access --- Aetheria.State.Verify/Program.cs | 258 +++++++++--------- Assets/Scripts/Gameplay/ActionBarSlot.cs | 2 +- .../Gameplay/AetheriaDaemonObserver.cs | 6 +- .../AetheriaUnityGameplayBootShell.cs | 4 +- .../AetheriaUnityObservedDockingIndex.cs | 6 +- .../AetheriaUnityObservedTargetQuery.cs | 2 +- .../AetheriaUnityRenderSplatViewportSource.cs | 4 +- .../AetheriaUnityRuntimeClientProvider.cs | 2 +- .../Tests/DaemonRuntimeDocumentTests.cs | 72 ++--- .../StarbridgePlayerSeatDocumentTests.cs | 2 +- Assets/Scripts/UI/HUD/SchematicDisplay.cs | 6 +- .../UI/InputScreen/InputDisplayLayout.cs | 2 +- Assets/Scripts/UI/MainMenu.cs | 6 +- Assets/Scripts/UI/Menu/InventoryMenu.cs | 12 +- Assets/Scripts/UI/Menu/InventoryPanel.cs | 14 +- Assets/Scripts/UI/Menu/MapRenderer.cs | 12 +- Assets/Scripts/UI/Menu/MenuPanel.cs | 2 +- Assets/Scripts/UI/Menu/SectorMap.cs | 2 +- Assets/Scripts/UI/Menu/SectorRenderer.cs | 12 +- Assets/Scripts/UI/Menu/TradeMenu.cs | 8 +- .../Zone Display/VolumeCloudRenderer.cs | 2 +- Assets/Scripts/Zone Display/ZoneRenderer.cs | 8 +- .../Runtime/AetheriaEveSurfacePresenter.cs | 8 +- .../Runtime/AetheriaClient.cs | 2 +- .../Runtime/AetheriaClientState.cs | 38 ++- .../Runtime/AetheriaRuntimeVerseClient.cs | 10 +- 26 files changed, 258 insertions(+), 244 deletions(-) diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index b95750b81..9d3224db1 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -2438,8 +2438,7 @@ static void RequireDaemonRenderQueryAuthority(string root) "FindAnyObjectByType()", "ResolveObjectsViewport(viewport)", "private AetheriaRuntimeObjectsViewportDocument ResolveObjectsViewport(AetheriaRuntimeXzRect viewport)", - ".Document(viewportBounds)", - ".Reactive();", + ".State.Reactive(viewportBounds)", "_objectsViewport?.Current", "foreach (var entity in objects?.Objects ?? Array.Empty())", "_observedEntitySnapshotsByDaemonIndex.TryGetValue(entityIndex, out var entity)", @@ -2458,7 +2457,7 @@ static void RequireDaemonRenderQueryAuthority(string root) "beltPose.InstancePoses ?? Array.Empty()", "private void RefreshDaemonContactRows()", ".State", - ".Document().Reactive()", + ".Reactive()", "private void RefreshDaemonCompassMarkers()", "private void RefreshDaemonVisibleEntityInstances()", "PowerPulse(", @@ -2567,9 +2566,9 @@ static void RequireDaemonRenderQueryAuthority(string root) "ResolveCatalog()", "ResolveCurrentEntityHudStatus()", "AetheriaUnityRuntimeClientProvider.ResolveClient(", - "ResolveClient().State.Document().Reactive()", - "ResolveClient().State.Document().Reactive()", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", + "ResolveClient().State.Reactive()", + "ResolveClient().State.Reactive()", "return _currentEntity?.Current?.Hud ?? new AetheriaRuntimeCurrentEntityHudStatus();", "_currentEntity?.Dispose()", "hud.OverrideShutdown", @@ -3219,10 +3218,10 @@ static void RequireEveRuntimeBootstrap(string root) "AetheriaUnityRuntimeClientProvider.ResolveClient(", "CultMeshReactiveDocument", "ResolveReactiveDaemonSurfaceState(", - "client.State.Document(AetheriaClientEveSurface.Game).Reactive()", - "client.State.Document(AetheriaClientEveSurface.GameTui).Reactive()", - "client.State.Document(AetheriaClientEveSurface.Editor).Reactive()", - "client.State.Document(AetheriaClientEveSurface.EditorTui).Reactive()", + "client.State.Reactive(AetheriaClientEveSurface.Game)", + "client.State.Reactive(AetheriaClientEveSurface.GameTui)", + "client.State.Reactive(AetheriaClientEveSurface.Editor)", + "client.State.Reactive(AetheriaClientEveSurface.EditorTui)", "DisposeReactiveSurfaceState()", "AetheriaRuntimeEveSurfaceAdapter.ToEveSurfaceDocument(", "private bool ShouldMountSurface(", @@ -4251,7 +4250,7 @@ static void RequireRuntimeInputScreenUsesEveSurface(string root) "InputDisplayLayout", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -4559,9 +4558,8 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "ProjectZoneDetailsSurfaceState(", "AetheriaUnityRuntimeClientProvider.ResolveClient(", ".State", - ".Document().Reactive()", - ".Document(zoneIndex)", - ".Reactive();", + ".Reactive()", + ".State.Reactive(zoneIndex)", "_zoneDetails?.Current", "AetheriaClient", "AetheriaRuntimeZoneDetailsSurfaceCommands.TryRead(request, out var command)", @@ -4584,7 +4582,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "SectorRenderer", "AetheriaRuntimeSectorMapDocument", "_sectorMap", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeSectorMapSession", ".ObserveSectorMap()"); RequireReactiveTypedDocumentAccess( @@ -4592,7 +4590,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "SectorRenderer", "AetheriaRuntimeCurrentZoneDocument", "_currentZone", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeCurrentZoneSession", ".ObserveZone()"); RequireReactiveTypedDocumentAccess( @@ -4600,7 +4598,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "SectorRenderer", "AetheriaRuntimeZoneDetailsDocument", "_zoneDetails", - ".Document(zoneIndex).Reactive()", + ".Reactive(zoneIndex)", "AetheriaRuntimeZoneDetailsSession", ".ObserveZone(zoneIndex)"); RequireReactiveTypedDocumentAccess( @@ -4608,7 +4606,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "SectorRenderer", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -4616,7 +4614,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root) "SectorRenderer", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -4777,7 +4775,7 @@ static void RequireRuntimeMenuTabsUseEveSurface(string root) "SetObservedEntityIndex(AetheriaUnityObservedEntityIndex observedEntityIndex)", "AetheriaRuntimeCurrentDockingDocument", "CultMeshReactiveDocument _currentDocking", - "_currentDocking ??= ResolveClient().State.Document().Reactive()", + "_currentDocking ??= ResolveClient().State.Reactive()", "docking = _currentDocking.Current", "docking.IsDocked", "AetheriaClient", @@ -5741,10 +5739,10 @@ static void RequireTradeCargoSelectorUseEveSurface(string root) "SetObservedEntityIndex(AetheriaUnityObservedEntityIndex observedEntityIndex)", "AetheriaRuntimeCurrentDockingDocument", "CultMeshReactiveDocument _currentDocking", - "_currentDocking ??= ResolveClient().State.Document().Reactive()", + "_currentDocking ??= ResolveClient().State.Reactive()", "docking = _currentDocking.Current", "CultMeshReactiveDocument _stationRefit", - "_stationRefit = ResolveClient().State.Document().Reactive()", + "_stationRefit = ResolveClient().State.Reactive()", "return _stationRefit?.Current", "SetTargetCargo(", "selection.EntityKey", @@ -7053,10 +7051,11 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root) var clientState = File.ReadAllText(clientStatePath); if (!clientState.Contains("public CultMeshDocumentHandle Document()", StringComparison.Ordinal) || !clientState.Contains("public CultMeshDocumentHandle Document(int entityOrZoneIndex)", StringComparison.Ordinal) || - clientState.Contains("public CultMeshReactiveDocument Reactive(", StringComparison.Ordinal)) + !clientState.Contains("public CultMeshReactiveDocument Reactive(", StringComparison.Ordinal) || + !clientState.Contains("public CultMeshReactiveDocument Reactive(int entityOrZoneIndex)", StringComparison.Ordinal)) { throw new InvalidOperationException( - "AetheriaClientState must expose typed document handles for current entity, station refit, and indexed inventory documents while leaving reactivity to CultMesh handles."); + "AetheriaClientState must expose native typed document handles and native reactive typed documents for current entity, station refit, and indexed inventory documents."); } var sources = new Dictionary @@ -7079,9 +7078,9 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root) .ToArray(); var requiredCompactedSymbols = new[] { - ".Document().Reactive()", - ".Document().Reactive()", - ".Document(entityIndex).Reactive()" + ".Reactive()", + ".Reactive()", + ".Reactive(entityIndex)" }; missingSymbols = missingSymbols .Concat(requiredCompactedSymbols.Where(symbol => !compact.Contains(symbol, StringComparison.Ordinal))) @@ -7124,7 +7123,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root) name, "AetheriaRuntimeCurrentEntityDocument", "_currentEntity", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeCurrentEntitySession", ".ObserveEntity()"); RequireReactiveTypedDocumentAccess( @@ -7132,7 +7131,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root) name, "AetheriaRuntimeStationRefitDocument", "_stationRefit", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeStationRefitSession", ".ObserveStationRefit()"); RequireReactiveTypedDocumentAccess( @@ -7140,7 +7139,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root) name, "AetheriaRuntimeInventoryDocument", "_inventory", - ".Document(entityIndex).Reactive()", + ".Reactive(entityIndex)", "AetheriaRuntimeInventorySession", ".ObserveInventory(entityIndex)"); } @@ -7251,7 +7250,7 @@ static void RequireMenuDockingUsesManagedTypedSnapshot(string root) var tradeMenu = File.ReadAllText(Path.Combine(root, "Assets", "Scripts", "UI", "Menu", "TradeMenu.cs")); var directDockingOffenders = new List(); if (!menuPanel.Contains("CultMeshReactiveDocument _currentDocking", StringComparison.Ordinal) || - !menuPanel.Contains("_currentDocking ??= ResolveClient().State.Document().Reactive()", StringComparison.Ordinal) || + !menuPanel.Contains("_currentDocking ??= ResolveClient().State.Reactive()", StringComparison.Ordinal) || !menuPanel.Contains("docking = _currentDocking.Current", StringComparison.Ordinal) || menuPanel.Contains("ResolveClient().State.Latest()", StringComparison.Ordinal)) { @@ -7259,7 +7258,7 @@ static void RequireMenuDockingUsesManagedTypedSnapshot(string root) } if (!tradeMenu.Contains("CultMeshReactiveDocument _currentDocking", StringComparison.Ordinal) || - !tradeMenu.Contains("_currentDocking ??= ResolveClient().State.Document().Reactive()", StringComparison.Ordinal) || + !tradeMenu.Contains("_currentDocking ??= ResolveClient().State.Reactive()", StringComparison.Ordinal) || !tradeMenu.Contains("docking = _currentDocking.Current", StringComparison.Ordinal) || tradeMenu.Contains("ResolveClient().State.Latest()", StringComparison.Ordinal)) { @@ -7280,7 +7279,7 @@ static bool HasManagedDockingSnapshotAccess(string source) { if (source.Contains("AetheriaRuntimeCurrentDockingDocument", StringComparison.Ordinal) && source.Contains("CultMeshReactiveDocument _currentDocking", StringComparison.Ordinal) && - source.Contains("State.Document().Reactive()", StringComparison.Ordinal) && + source.Contains("State.Reactive()", StringComparison.Ordinal) && source.Contains("_currentDocking.Current", StringComparison.Ordinal) && !source.Contains("ResolveClient().State.Latest()", StringComparison.Ordinal)) { @@ -7309,9 +7308,9 @@ static bool HasManagedDockingSnapshotAccess(string source) source.Contains("CultMeshReactiveDocument _currentDocking", StringComparison.Ordinal) && source.Contains("CultMeshReactiveDocument _stationRefit", StringComparison.Ordinal) && source.Contains("TryReadCurrentDockingDocuments(", StringComparison.Ordinal) && - source.Contains("state.Document().Reactive()", StringComparison.Ordinal) && - source.Contains("state.Document().Reactive()", StringComparison.Ordinal) && - source.Contains("state.Document().Reactive()", StringComparison.Ordinal) && + source.Contains("state.Reactive()", StringComparison.Ordinal) && + source.Contains("state.Reactive()", StringComparison.Ordinal) && + source.Contains("state.Reactive()", StringComparison.Ordinal) && source.Contains("_currentDocking?.Current", StringComparison.Ordinal) && source.Contains("_stationRefit?.Current", StringComparison.Ordinal) && !source.Contains("State?.CurrentDocking()", StringComparison.Ordinal) && @@ -7353,11 +7352,10 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) if (clientState.Contains("public Task LatestAsync", StringComparison.Ordinal) || clientState.Contains("public TDocument Latest", StringComparison.Ordinal) || clientState.Contains("public Task> ReactiveAsync", StringComparison.Ordinal) || - clientState.Contains("public CultMeshReactiveDocument Reactive", StringComparison.Ordinal) || clientState.Contains("public Observable Watch", StringComparison.Ordinal)) { throw new InvalidOperationException( - "AetheriaClientState must not expose generic latest/reactive/watch shortcuts; callers should hold Document() handles and call CultMesh handle APIs."); + "AetheriaClientState must not expose latest/watch/session wrappers; callers should hold native Document() handles or native Reactive() documents."); } var unityPaths = new[] @@ -7421,7 +7419,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) { "public abstract class ActionBarBinding : IDisposable", "CultMeshReactiveDocument _catalog", - "Client.State.Document().Reactive()", + "Client.State.Reactive()", "_catalog?.Current?.FindItem(item, x => x.ItemKey)", "binding?.Dispose()", "private void OnDestroy()" @@ -7461,9 +7459,9 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "CultMeshReactiveDocument _catalog", "CultMeshReactiveDocument _playerSettings", "CultMeshReactiveDocument _currentEntity", - "ResolveClient().State.Document().Reactive()", - "ResolveClient().State.Document().Reactive()", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", + "ResolveClient().State.Reactive()", + "ResolveClient().State.Reactive()", "_catalog?.Dispose()", "_playerSettings?.Dispose()", "_currentEntity?.Dispose()", @@ -7517,7 +7515,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) var requiredVolumeCloudSymbols = new[] { "CultMeshReactiveDocument _playerSettings", - ".Document().Reactive()", + ".Reactive()", "_playerSettings?.Dispose()", "_playerSettings?.Current" }; @@ -7547,7 +7545,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) var requiredObservedTargetSymbols = new[] { "CultMeshReactiveDocument _zoneContacts", - ".Document().Reactive()", + ".Reactive()", "_zoneContacts?.Dispose()", "_zoneContacts?.Current" }; @@ -7593,8 +7591,8 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) missingMapRendererSharedDocumentSymbols = missingMapRendererSharedDocumentSymbols .Concat(new[] { - ".Document(viewport).Reactive()", - ".Document(viewport).Reactive()" + ".Reactive(viewport)", + ".Reactive(viewport)" }.Where(symbol => !compactMapRenderer.Contains(symbol, StringComparison.Ordinal))) .ToArray(); if (missingMapRendererSharedDocumentSymbols.Length > 0) @@ -7609,7 +7607,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MapRenderer", "AetheriaRuntimeObjectsViewportDocument", "_objectsViewport", - ".Document(viewport).Reactive()", + ".Reactive(viewport)", "AetheriaRuntimeObjectsViewportSession", ".ObserveObjects(viewport)"); RequireReactiveTypedDocumentAccess( @@ -7617,7 +7615,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MapRenderer", "AetheriaRuntimeRenderSplatsViewportDocument", "_renderSplatsViewport", - ".Document(viewport).Reactive()", + ".Reactive(viewport)", "AetheriaRuntimeRenderSplatsViewportSession", ".ObserveRenderSplats(viewport)"); RequireReactiveTypedDocumentAccess( @@ -7625,7 +7623,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MapRenderer", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7677,7 +7675,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MainMenu", "AetheriaRuntimeSectorMapDocument", "_sectorMap", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeSectorMapSession", ".ObserveSectorMap()"); RequireReactiveTypedDocumentAccess( @@ -7685,7 +7683,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MainMenu", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); RequireReactiveTypedDocumentAccess( @@ -7693,7 +7691,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "MainMenu", "AetheriaRuntimeVerseHostSettingsDocument", "_verseHostSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeVerseHostSettingsSession", ".ObserveVerseHost()"); @@ -7720,7 +7718,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "TradeMenu", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -7728,7 +7726,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "TradeMenu", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7755,7 +7753,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "InventoryMenu", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -7763,7 +7761,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "InventoryMenu", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7793,7 +7791,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "InventoryPanel", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -7801,7 +7799,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "InventoryPanel", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7830,9 +7828,9 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) missingSectorRendererSharedDocumentSymbols = missingSectorRendererSharedDocumentSymbols .Concat(new[] { - ".Document().Reactive()", - ".Document().Reactive()", - ".Document(zoneIndex).Reactive()" + ".Reactive()", + ".Reactive()", + ".Reactive(zoneIndex)" }.Where(symbol => !compactSectorRenderer.Contains(symbol, StringComparison.Ordinal))) .ToArray(); if (missingSectorRendererSharedDocumentSymbols.Length > 0) @@ -7847,7 +7845,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "SectorRenderer", "AetheriaRuntimeSectorMapDocument", "_sectorMap", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeSectorMapSession", ".ObserveSectorMap()"); RequireReactiveTypedDocumentAccess( @@ -7855,7 +7853,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "SectorRenderer", "AetheriaRuntimeCurrentZoneDocument", "_currentZone", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeCurrentZoneSession", ".ObserveZone()"); RequireReactiveTypedDocumentAccess( @@ -7863,7 +7861,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "SectorRenderer", "AetheriaRuntimeZoneDetailsDocument", "_zoneDetails", - ".Document(zoneIndex).Reactive()", + ".Reactive(zoneIndex)", "AetheriaRuntimeZoneDetailsSession", ".ObserveZone(zoneIndex)"); RequireReactiveTypedDocumentAccess( @@ -7871,7 +7869,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "SectorRenderer", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); RequireReactiveTypedDocumentAccess( @@ -7879,7 +7877,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "SectorRenderer", "AetheriaRuntimePlayerSettingsDocument", "_playerSettings", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimePlayerSettingsSession", ".ObservePlayer()"); @@ -7910,7 +7908,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) var requiredZoneRendererSharedDocumentSymbols = new[] { "CultMeshReactiveDocument _zoneContacts", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", "_zoneContacts?.Dispose()", "_zoneContacts?.Current", "private void OnDestroy()" @@ -7930,7 +7928,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "ZoneRenderer", "AetheriaRuntimeZoneContactsDocument", "_zoneContacts", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeZoneContactsSession", "ResolveClient().State.ObserveZoneContacts()"); RequireReactiveTypedDocumentAccess( @@ -7938,7 +7936,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root) "ZoneRenderer", "AetheriaRuntimeCatalogSnapshot", "_catalog", - "ResolveClient().State.Document().Reactive()", + "ResolveClient().State.Reactive()", "AetheriaRuntimeCatalogSession", "ResolveClient().State.ObserveCatalog()"); @@ -8052,11 +8050,11 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root) .Where(symbol => !renderSplatViewportSource.Contains(symbol, StringComparison.Ordinal)) .ToArray(); if (!CompactSource(renderSplatViewportSource).Contains( - ".Document(viewport).Reactive()", + ".Reactive(viewport)", StringComparison.Ordinal)) { missingRenderSplatViewportSourceSymbols = missingRenderSplatViewportSourceSymbols - .Concat(new[] { ".Document(viewport).Reactive()" }) + .Concat(new[] { ".Reactive(viewport)" }) .ToArray(); } if (missingRenderSplatViewportSourceSymbols.Length > 0 || @@ -8079,7 +8077,7 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root) "AetheriaUnityRenderSplatViewportSource", "AetheriaRuntimeRenderSplatsViewportDocument", "_renderSplatsViewport", - ".Document(viewport).Reactive()", + ".Reactive(viewport)", "AetheriaRuntimeRenderSplatsViewportSession", ".ObserveRenderSplats(viewport)"); @@ -8099,11 +8097,11 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root) .Where(symbol => !zoneRenderer.Contains(symbol, StringComparison.Ordinal)) .ToArray(); if (!CompactSource(zoneRenderer).Contains( - ".Document(viewportBounds).Reactive()", + ".Reactive(viewportBounds)", StringComparison.Ordinal)) { missingZoneRendererViewportSymbols = missingZoneRendererViewportSymbols - .Concat(new[] { ".Document(viewportBounds).Reactive()" }) + .Concat(new[] { ".Reactive(viewportBounds)" }) .ToArray(); } if (missingZoneRendererViewportSymbols.Length > 0 || @@ -8126,7 +8124,7 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root) "ZoneRenderer", "AetheriaRuntimeObjectsViewportDocument", "_objectsViewport", - ".Document(viewportBounds).Reactive()", + ".Reactive(viewportBounds)", "AetheriaRuntimeObjectsViewportSession", ".ObserveObjects(viewportBounds)"); @@ -8187,7 +8185,12 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root "public CultMeshDocumentHandle Document(AetheriaClientEveSurface surface)", "public CultMeshDocumentHandle Document(AetheriaRuntimeRtsViewportBounds viewport)", "public CultMeshDocumentHandle Document(int entityOrZoneIndex)", - "public CultMeshDocumentHandle Document(string seatId)" + "public CultMeshDocumentHandle Document(string seatId)", + "public CultMeshReactiveDocument Reactive()", + "public CultMeshReactiveDocument Reactive(AetheriaClientEveSurface surface)", + "public CultMeshReactiveDocument Reactive(AetheriaRuntimeRtsViewportBounds viewport)", + "public CultMeshReactiveDocument Reactive(int entityOrZoneIndex)", + "public CultMeshReactiveDocument Reactive(string seatId)" }; var missingClientSymbols = requiredClientSymbols .Where(symbol => !clientState.Contains(symbol, StringComparison.Ordinal)) @@ -8202,11 +8205,10 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root if (clientState.Contains("public Task LatestAsync", StringComparison.Ordinal) || clientState.Contains("public TDocument Latest", StringComparison.Ordinal) || clientState.Contains("public Task> ReactiveAsync", StringComparison.Ordinal) || - clientState.Contains("public CultMeshReactiveDocument Reactive", StringComparison.Ordinal) || clientState.Contains("public Observable Watch", StringComparison.Ordinal)) { throw new InvalidOperationException( - "AetheriaClientState must not reintroduce generic latest/reactive/watch shortcuts; callers should sample explicit document handles or CultMesh reactive documents."); + "AetheriaClientState must not reintroduce generic latest/watch shortcuts; callers should sample native typed document handles or native reactive typed documents."); } var forbiddenFixedReactiveWrappers = new[] @@ -8574,7 +8576,7 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root } if (!checkedSources["StarbridgePlayerSeatDocumentTests.cs"].Contains( - ".Document(seat.SeatId).Reactive()", + ".Reactive(seat.SeatId)", StringComparison.Ordinal) || !checkedSources["StarbridgePlayerSeatDocumentTests.cs"].Contains( ".Document(seat.SeatId)", @@ -9138,9 +9140,9 @@ static void RequireClientTargetBootAuthority(string root) "stateBoot.StateFileExists", "AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)", ".State", - ".Document().Reactive()", + ".Reactive()", "runtimeCatalogDocument.Current", - ".Document().Reactive()", + ".Reactive()", "sectorMapDocument.Current", "new ItemManager(", "new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog)", @@ -9198,7 +9200,7 @@ static void RequireClientTargetBootAuthority(string root) "ResolveSectorMap(AetheriaRuntimeStateBootReport stateBoot)", "AetheriaClient", ".State", - ".Document().Reactive()", + ".Reactive()", "ResolveVerseHostSettings(AetheriaRuntimeStateBootReport stateBoot)", "AetheriaState.At(AetheriaUnityRuntimePaths.GameDataDirectory)", ".ClientTarget", @@ -11877,11 +11879,11 @@ static void RequireAetheriaRuntimeVerseClientContract(string root) "AetheriaRuntimeLoadoutTemplatesDocument", "ProjectStarbridgeSummaryAsync", "CultMeshReactiveDocument? managedDaemonFrame = null;", - "managedDaemonFrame = state.Document().Reactive();", - "managedCatalog = state.Document().Reactive();", - "managedLoadoutTemplates = state.Document().Reactive();", - "managedStarbridgeScenario = state.Document().Reactive();", - "managedStarbridgeSession = state.Document().Reactive();", + "managedDaemonFrame = state.Reactive();", + "managedCatalog = state.Reactive();", + "managedLoadoutTemplates = state.Reactive();", + "managedStarbridgeScenario = state.Reactive();", + "managedStarbridgeSession = state.Reactive();", "AetheriaRuntimeDaemonFrameDocument RequireManagedFrame()", "RequireManagedFrame()", "RequireManagedCatalog()", @@ -12045,10 +12047,10 @@ static void RequireAetheriaRuntimeVerseClientContract(string root) "CultMeshReactiveDocument? _eveStateRefHealth", "CultMeshReactiveDocument? _eveStateRefCommandBoundary", "CultMeshReactiveDocument? _eveStateRefCatalog", - "_eveStateRefFrame ??= Document().Reactive()", - "_eveStateRefHealth ??= Document().Reactive()", - "_eveStateRefCommandBoundary ??= Document().Reactive()", - "_eveStateRefCatalog ??= Document().Reactive()", + "_eveStateRefFrame ??= Reactive()", + "_eveStateRefHealth ??= Reactive()", + "_eveStateRefCommandBoundary ??= Reactive()", + "_eveStateRefCatalog ??= Reactive()", "() => _eveStateRefFrame.Current", "() => _eveStateRefHealth.Current", "() => _eveStateRefCommandBoundary.Current", @@ -12819,7 +12821,7 @@ static void RequireMainMenuVerseHostProjection(string root) var requiredMainMenuSymbols = new[] { "ResolveVerseHostSettings(AetheriaRuntimeStateBootReport stateBoot)", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeMainMenuSurfaceBuilder.ProjectRoot(", "AetheriaRuntimeMainMenuSurfaceBuilder.BuildRoot(" }; @@ -12958,7 +12960,7 @@ static void RequireMainMenuContinueRunState(string root) "ResolveSectorMap", "AetheriaClient", ".State", - ".Document().Reactive()", + ".Reactive()", "ContinueGame()", "SceneManager.LoadScene(\"ARPG\")" }; @@ -13293,7 +13295,7 @@ static void RequireMainMenuContinueRunState(string root) "AetheriaRuntimeZoneContactRow", "AetheriaRuntimeZoneTargetRow", ".State", - ".Document().Reactive()", + ".Reactive()", "_zoneContacts?.Current", "_zoneContacts?.Dispose()", "_entityIndex.TryResolveEntityByDaemonIndex(targetEntityIndex, out var targetEntity)" @@ -13342,9 +13344,9 @@ static void RequireMainMenuContinueRunState(string root) "CultMeshReactiveDocument _currentDocking", "CultMeshReactiveDocument _stationRefit", "TryReadCurrentDockingDocuments(", - "state.Document().Reactive()", - "state.Document().Reactive()", - "state.Document().Reactive()", + "state.Reactive()", + "state.Reactive()", + "state.Reactive()", "_currentDocking?.Current", "_stationRefit?.Current", "public bool IsEntityUndocked(Entity entity)", @@ -14345,7 +14347,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) "AetheriaRuntimeZoneContactRow", "AetheriaRuntimeZoneTargetRow", ".State", - ".Document().Reactive()", + ".Reactive()", "_zoneContacts?.Current", "_zoneContacts?.Dispose()", "_entityIndex.TryResolveEntityByDaemonIndex(targetEntityIndex, out var targetEntity)" @@ -14484,17 +14486,17 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) var compactSectorRenderer = CompactSource(sectorRenderer); var compactSectorMap = CompactSource(sectorMap); if (!mapRenderer.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) || - !compactMapRenderer.Contains(".State.Document(viewport).Reactive()", StringComparison.Ordinal) || - !compactMapRenderer.Contains(".State.Document(viewport).Reactive()", StringComparison.Ordinal) || - !compactMapRenderer.Contains(".State.Document().Reactive()", StringComparison.Ordinal) || + !compactMapRenderer.Contains(".State.Reactive(viewport)", StringComparison.Ordinal) || + !compactMapRenderer.Contains(".State.Reactive(viewport)", StringComparison.Ordinal) || + !compactMapRenderer.Contains(".State.Reactive()", StringComparison.Ordinal) || !sectorRenderer.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) || - !compactSectorRenderer.Contains(".State.Document().Reactive()", StringComparison.Ordinal) || - !compactSectorRenderer.Contains(".State.Document(zoneIndex).Reactive()", StringComparison.Ordinal) || + !compactSectorRenderer.Contains(".State.Reactive()", StringComparison.Ordinal) || + !compactSectorRenderer.Contains(".State.Reactive(zoneIndex)", StringComparison.Ordinal) || !sectorRenderer.Contains(".Current", StringComparison.Ordinal) || - !compactSectorRenderer.Contains("ResolveClient().State.Document().Reactive()", StringComparison.Ordinal) || - !compactSectorRenderer.Contains(".State.Document().Reactive()", StringComparison.Ordinal) || + !compactSectorRenderer.Contains("ResolveClient().State.Reactive()", StringComparison.Ordinal) || + !compactSectorRenderer.Contains(".State.Reactive()", StringComparison.Ordinal) || !sectorMap.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) || - !compactSectorMap.Contains(".State.Document().Reactive()", StringComparison.Ordinal) || + !compactSectorMap.Contains(".State.Reactive()", StringComparison.Ordinal) || !sectorRenderer.Contains("AetheriaRuntimeZoneDetailsSurfaceBuilder.ProjectDaemonZone(", StringComparison.Ordinal)) { throw new InvalidOperationException( @@ -14513,7 +14515,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) "SectorMap", "AetheriaRuntimeSectorMapDocument", "_sectorMapDocument", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeSectorMapSession", ".ObserveSectorMap()"); @@ -15151,7 +15153,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root) "TryStartDaemonObservedGame", "ResolveSectorMap(stateBoot)", ".State", - ".Document().Reactive()", + ".Reactive()", "sectorMap.FrameId", "SceneManager.LoadScene(\"ARPG\")" }; @@ -16053,9 +16055,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) "AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory)", "AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)", ".State", - ".Document().Reactive()", + ".Reactive()", "runtimeCatalogDocument.Current", - ".Document().Reactive()", + ".Reactive()", "sectorMapDocument.Current", "new ItemManager(", "new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog)", @@ -16098,7 +16100,7 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) "RuntimeClients[cacheKey] = runtimeClient", "AetheriaClient", ".State", - ".Document().Reactive()", + ".Reactive()", "_playerSettingsDocument.Current", "_playerSettingsDocument?.Dispose()", "OpenAsync(", @@ -16230,7 +16232,7 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) "public AetheriaClientState State => _state;", "var frame = CurrentDaemonFrame();", "private CultMeshReactiveDocument? _daemonFrame;", - "_daemonFrame ??= State.Document().Reactive();" + "_daemonFrame ??= State.Reactive();" }; var missingManagedClientConnectionSymbols = requiredManagedClientConnectionSymbols .Where(symbol => !aetheriaClient.Contains(symbol, StringComparison.Ordinal)) @@ -16279,12 +16281,11 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) aetheriaClientState.Contains("public TDocument Latest", StringComparison.Ordinal) || aetheriaClientState.Contains("public Observable Watch", StringComparison.Ordinal) || aetheriaClientState.Contains("public Task> ReactiveAsync", StringComparison.Ordinal) || - aetheriaClientState.Contains("public CultMeshReactiveDocument Reactive", StringComparison.Ordinal) || aetheriaClientState.Contains("DocumentBySchema(", StringComparison.Ordinal) || aetheriaClientState.Contains("TryGetDocumentBySchema(", StringComparison.Ordinal)) { throw new InvalidOperationException( - "AetheriaClientState still exposes generic latest/reactive/watch or schema-string shortcuts instead of direct typed CultMesh document handles."); + "AetheriaClientState still exposes generic latest/watch or schema-string shortcuts instead of direct typed CultMesh document handles."); } if (aetheriaClientState.Contains("public AetheriaRuntimeDaemonRenderView? CurrentObservedDaemon(", StringComparison.Ordinal) || @@ -16297,7 +16298,7 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) var requiredManagedCommandFrameSymbols = new[] { "internal AetheriaRuntimeDaemonFrameDocument? CurrentDaemonFrame()", - "_daemonFrame ??= State.Document().Reactive();", + "_daemonFrame ??= State.Reactive();", "return _daemonFrame.Current;", "Func submit", "frame?.SessionId ?? _sessionId" @@ -16313,9 +16314,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) } if (!daemonRuntimeDocumentTests.Contains("ManagedStateSamplesCurrentDaemonRenderViewFromReactiveDocuments()", StringComparison.Ordinal) || - !daemonRuntimeDocumentTests.Contains("using var observedFrame = client.State.Document().Reactive();", StringComparison.Ordinal) || - !daemonRuntimeDocumentTests.Contains("using var observedSoaView = client.State.Document().Reactive();", StringComparison.Ordinal) || - !daemonRuntimeDocumentTests.Contains("using var observedZoneRender = client.State.Document().Reactive();", StringComparison.Ordinal) || + !daemonRuntimeDocumentTests.Contains("using var observedFrame = client.State.Reactive();", StringComparison.Ordinal) || + !daemonRuntimeDocumentTests.Contains("using var observedSoaView = client.State.Reactive();", StringComparison.Ordinal) || + !daemonRuntimeDocumentTests.Contains("using var observedZoneRender = client.State.Reactive();", StringComparison.Ordinal) || !daemonRuntimeDocumentTests.Contains("AetheriaRuntimeDaemonRenderView.TryCreateCurrent(", StringComparison.Ordinal) || daemonRuntimeDocumentTests.Contains("client.State.CurrentObservedDaemon()", StringComparison.Ordinal)) { @@ -16536,9 +16537,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) !daemonObserver.Contains("CultMeshReactiveDocument _daemonFrame", StringComparison.Ordinal) || !daemonObserver.Contains("CultMeshReactiveDocument _daemonSoaView", StringComparison.Ordinal) || !daemonObserver.Contains("CultMeshReactiveDocument _zoneRender", StringComparison.Ordinal) || - !daemonObserver.Contains("_daemonFrame ??= state.Document().Reactive();", StringComparison.Ordinal) || + !daemonObserver.Contains("_daemonFrame ??= state.Reactive();", StringComparison.Ordinal) || !daemonObserver.Contains("_daemonSoaView ??= TryReactive(state);", StringComparison.Ordinal) || - !daemonObserver.Contains("_zoneRender ??= state.Document().Reactive();", StringComparison.Ordinal) || + !daemonObserver.Contains("_zoneRender ??= state.Reactive();", StringComparison.Ordinal) || !daemonObserver.Contains("AetheriaRuntimeDaemonRenderView.TryCreateCurrent(", StringComparison.Ordinal) || !daemonObserver.Contains("DisposeRenderViewDocuments()", StringComparison.Ordinal)) { @@ -16570,8 +16571,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(".Document().Reactive()", StringComparison.Ordinal) || - !mainMenu.Contains(".Document().Reactive()", 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."); @@ -16598,9 +16599,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) var requiredGameplayBootSymbols = new[] { - ".Document().Reactive()", + ".Reactive()", "runtimeCatalogDocument.Current", - ".Document().Reactive()", + ".Reactive()", "sectorMapDocument.Current", "Galaxy.ProjectObservedSectorMap(", "sectorMap.IsTutorial", @@ -17441,8 +17442,7 @@ static void RequireInventoryDoubleClickTransferRequestAuthority(string root) "TryResolveTypedInventoryRows(", "TryValidateTypedCargoSlot(", "TryValidateTypedEquipmentSlot(", - ".Document(entityIndex)", - ".Reactive()", + ".State.Reactive(entityIndex)", "origin.Cargo.TryGetValue(item, out var originPosition)", "SourceIndex == cargoIndex", "SourceIndex == equipmentIndex", @@ -17995,7 +17995,7 @@ static void RequireInventoryLoadoutSaveRequestAuthority(string root) "CultMeshReactiveDocument _loadoutFrame", "CreateLoadoutTemplate(targetEntityKey)", ".CreateLoadoutTemplate(targetEntityKey ?? \"\")", - ".Document().Reactive()", + ".Reactive()", "_loadoutFrame?.Dispose()", ".Ui.SaveLoadoutTemplateAsync(loadout, \"unity-inventory\")" }; @@ -18021,7 +18021,7 @@ static void RequireInventoryLoadoutSaveRequestAuthority(string root) "InventoryPanel", "AetheriaRuntimeDaemonFrameDocument", "_loadoutFrame", - ".Document().Reactive()", + ".Reactive()", "AetheriaRuntimeDaemonFrameSession", ".ObserveDaemonFrame()"); @@ -18062,7 +18062,7 @@ static void RequireInventoryLoadoutSaveRequestAuthority(string root) if (snapshotDocuments.Contains("ProjectLoadoutTemplateAsync(", StringComparison.Ordinal) || snapshotDocuments.Contains("AetheriaClientState state", StringComparison.Ordinal) || - snapshotDocuments.Contains(".Document().Reactive()", StringComparison.Ordinal) || + snapshotDocuments.Contains(".Reactive()", StringComparison.Ordinal) || snapshotDocuments.Contains("frame.Current?.Run", StringComparison.Ordinal)) { throw new InvalidOperationException( diff --git a/Assets/Scripts/Gameplay/ActionBarSlot.cs b/Assets/Scripts/Gameplay/ActionBarSlot.cs index 8f8a01494..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.Document().Reactive(); + _catalog ??= Client.State.Reactive(); return _catalog?.Current?.FindItem(item, x => x.ItemKey); } catch (Exception ex) diff --git a/Assets/Scripts/Gameplay/AetheriaDaemonObserver.cs b/Assets/Scripts/Gameplay/AetheriaDaemonObserver.cs index 3cc566b7f..082a49f3e 100644 --- a/Assets/Scripts/Gameplay/AetheriaDaemonObserver.cs +++ b/Assets/Scripts/Gameplay/AetheriaDaemonObserver.cs @@ -131,9 +131,9 @@ public sealed class AetheriaDaemonObserver : MonoBehaviour return; } - _daemonFrame ??= state.Document().Reactive(); + _daemonFrame ??= state.Reactive(); _daemonSoaView ??= TryReactive(state); - _zoneRender ??= state.Document().Reactive(); + _zoneRender ??= state.Reactive(); } private static CultMeshReactiveDocument TryReactive( @@ -142,7 +142,7 @@ public sealed class AetheriaDaemonObserver : MonoBehaviour { try { - return state.Document().Reactive(); + return state.Reactive(); } catch (System.Collections.Generic.KeyNotFoundException) { diff --git a/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs b/Assets/Scripts/Gameplay/AetheriaUnityGameplayBootShell.cs index c515fff9d..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.Document().Reactive(); + 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.Document().Reactive(); + 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/AetheriaUnityObservedDockingIndex.cs b/Assets/Scripts/Gameplay/AetheriaUnityObservedDockingIndex.cs index 0f9525825..0dda368e5 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityObservedDockingIndex.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityObservedDockingIndex.cs @@ -212,9 +212,9 @@ public sealed class AetheriaUnityObservedDockingIndex : IDisposable if (state == null) return; - _currentEntity ??= state.Document().Reactive(); - _currentDocking ??= state.Document().Reactive(); - _stationRefit ??= state.Document().Reactive(); + _currentEntity ??= state.Reactive(); + _currentDocking ??= state.Reactive(); + _stationRefit ??= state.Reactive(); } public void Dispose() diff --git a/Assets/Scripts/Gameplay/AetheriaUnityObservedTargetQuery.cs b/Assets/Scripts/Gameplay/AetheriaUnityObservedTargetQuery.cs index 830920224..efe4c0024 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityObservedTargetQuery.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityObservedTargetQuery.cs @@ -99,7 +99,7 @@ public sealed class AetheriaUnityObservedTargetQuery : IDisposable try { _zoneContacts = _resolveClient() - ?.State.Document().Reactive(); + ?.State.Reactive(); return _zoneContacts?.Current; } catch diff --git a/Assets/Scripts/Gameplay/AetheriaUnityRenderSplatViewportSource.cs b/Assets/Scripts/Gameplay/AetheriaUnityRenderSplatViewportSource.cs index 2f56b2f0b..728a47153 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityRenderSplatViewportSource.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityRenderSplatViewportSource.cs @@ -117,9 +117,7 @@ public sealed class AetheriaUnityRenderSplatViewportSource : MonoBehaviour try { var nextRenderSplatsViewport = ResolveClient() - .State - .Document(viewport) - .Reactive(); + .State.Reactive(viewport); ClearViewportDocument(); _viewport = viewport; _renderSplatsViewport = nextRenderSplatsViewport; diff --git a/Assets/Scripts/Gameplay/AetheriaUnityRuntimeClientProvider.cs b/Assets/Scripts/Gameplay/AetheriaUnityRuntimeClientProvider.cs index 8885d7ef5..00d76348e 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityRuntimeClientProvider.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityRuntimeClientProvider.cs @@ -95,7 +95,7 @@ public static class AetheriaUnityRuntimeClientProvider try { _playerSettingsDocument ??= ResolveClient(AetheriaUnityRuntimePaths.RuntimeStateFilePath) - .State.Document().Reactive(); + .State.Reactive(); var stored = _playerSettingsDocument.Current; if (stored == null) diff --git a/Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs b/Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs index 4cfe5e6d0..6e86da8d3 100644 --- a/Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs +++ b/Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs @@ -201,35 +201,35 @@ public class DaemonRuntimeDocumentTests .ReactiveAsync() .GetAwaiter() .GetResult(); - using var zoneRenderReactive = client.State.Document().Reactive(); + using var zoneRenderReactive = client.State.Reactive(); var observedAuthoritativeFrame = ReadLatest(client.State.Document()); - using var catalogReactive = client.State.Document().Reactive(); - using var daemonFrameReactive = client.State.Document().Reactive(); - using var daemonSoaViewReactive = client.State.Document().Reactive(); + using var catalogReactive = client.State.Reactive(); + using var daemonFrameReactive = client.State.Reactive(); + using var daemonSoaViewReactive = client.State.Reactive(); Assert.IsTrue(AetheriaRuntimeDaemonRenderView.TryCreateCurrent( daemonFrameReactive, daemonSoaViewReactive, zoneRenderReactive, out var observed)); - using var loadoutTemplatesReactive = client.State.Document().Reactive(); - using var sectorMapReactive = client.State.Document().Reactive(); - using var playerSettingsReactive = client.State.Document().Reactive(); - using var verseHostSettingsReactive = client.State.Document().Reactive(); - using var zoneContactsReactive = client.State.Document().Reactive(); - using var currentZoneReactive = client.State.Document().Reactive(); - using var currentEntityDocumentReactive = client.State.Document().Reactive(); - using var currentDockingReactive = client.State.Document().Reactive(); - using var stationRefitReactive = client.State.Document().Reactive(); - using var zoneDetailsReactive = client.State.Document(0).Reactive(); - using var selectedObjectReactive = client.State.Document(0).Reactive(); - using var inventoryReactive = client.State.Document(0).Reactive(); - using var mapViewportReactive = client.State.Document(viewport).Reactive(); - using var objectsViewportReactive = client.State.Document(viewport).Reactive(); - using var gravityViewportReactive = client.State.Document(viewport).Reactive(); - using var renderSplatsViewportReactive = client.State.Document(viewport).Reactive(); - using var playerHudCatalog = client.State.Document().Reactive(); - using var playerHudSettings = client.State.Document().Reactive(); - using var playerHudEntity = client.State.Document().Reactive(); + 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.Reactive(); + using var currentEntityDocumentReactive = client.State.Reactive(); + using var currentDockingReactive = client.State.Reactive(); + using var stationRefitReactive = client.State.Reactive(); + using var zoneDetailsReactive = client.State.Reactive(0); + using var selectedObjectReactive = client.State.Reactive(0); + using var inventoryReactive = client.State.Reactive(0); + using var mapViewportReactive = client.State.Reactive(viewport); + using var objectsViewportReactive = client.State.Reactive(viewport); + using var gravityViewportReactive = client.State.Reactive(viewport); + using var renderSplatsViewportReactive = client.State.Reactive(viewport); + using var playerHudCatalog = client.State.Reactive(); + using var playerHudSettings = client.State.Reactive(); + using var playerHudEntity = client.State.Reactive(); var gameSurface = ReadLatest(client.State.Document(AetheriaClientEveSurface.Game)); var gameTuiSurface = ReadLatest(client.State.Document(AetheriaClientEveSurface.GameTui)); var editorSurface = ReadLatest(client.State.Document(AetheriaClientEveSurface.Editor)); @@ -243,10 +243,10 @@ public class DaemonRuntimeDocumentTests Assert.AreEqual(currentEntity.EntityKey, currentEntityDocumentReactive.Current.EntityKey); Assert.AreEqual(currentDocking.CurrentEntityKey, currentDockingReactive.Current.CurrentEntityKey); Assert.AreEqual(stationRefit.StationEntityKey, stationRefitReactive.Current.StationEntityKey); - using var reactiveGameSurface = client.State.Document(AetheriaClientEveSurface.Game).Reactive(); - using var reactiveGameTuiSurface = client.State.Document(AetheriaClientEveSurface.GameTui).Reactive(); - using var reactiveEditorSurface = client.State.Document(AetheriaClientEveSurface.Editor).Reactive(); - using var reactiveEditorTuiSurface = client.State.Document(AetheriaClientEveSurface.EditorTui).Reactive(); + using var reactiveGameSurface = client.State.Reactive(AetheriaClientEveSurface.Game); + using var reactiveGameTuiSurface = client.State.Reactive(AetheriaClientEveSurface.GameTui); + using var reactiveEditorSurface = client.State.Reactive(AetheriaClientEveSurface.Editor); + using var reactiveEditorTuiSurface = client.State.Reactive(AetheriaClientEveSurface.EditorTui); Assert.AreEqual("aetheria.current.entity", client.State.CurrentEntity.DocumentId); Assert.AreSame(client.State.CurrentEntity, client.State.Document()); @@ -2210,9 +2210,9 @@ public class DaemonRuntimeDocumentTests .OpenAsync(statePath, "unity-observer-test", pullOnOpen: true) .GetAwaiter() .GetResult(); - using var observedFrame = client.State.Document().Reactive(); - using var observedSoaView = client.State.Document().Reactive(); - using var observedZoneRender = client.State.Document().Reactive(); + using var observedFrame = client.State.Reactive(); + using var observedSoaView = client.State.Reactive(); + using var observedZoneRender = client.State.Reactive(); Assert.IsTrue(AetheriaRuntimeDaemonRenderView.TryCreateCurrent( observedFrame, observedSoaView, @@ -2268,9 +2268,9 @@ public class DaemonRuntimeDocumentTests .OpenAsync(statePath, "unity-reactive-observer-test", pullOnOpen: true) .GetAwaiter() .GetResult(); - using var observedFrame = client.State.Document().Reactive(); - using var observedSoaView = client.State.Document().Reactive(); - using var observedZoneRender = client.State.Document().Reactive(); + using var observedFrame = client.State.Reactive(); + using var observedSoaView = client.State.Reactive(); + using var observedZoneRender = client.State.Reactive(); var observed = AetheriaRuntimeDaemonRenderView.TryCreateCurrent( observedFrame, observedSoaView, @@ -2315,9 +2315,9 @@ public class DaemonRuntimeDocumentTests .OpenAsync(statePath, "unity-frame-only-observer-test", pullOnOpen: true) .GetAwaiter() .GetResult(); - using var observedFrame = client.State.Document().Reactive(); - using var observedSoaView = client.State.Document().Reactive(); - using var observedZoneRender = client.State.Document().Reactive(); + using var observedFrame = client.State.Reactive(); + using var observedSoaView = client.State.Reactive(); + using var observedZoneRender = client.State.Reactive(); Assert.IsTrue(AetheriaRuntimeDaemonRenderView.TryCreateCurrent( observedFrame, observedSoaView, diff --git a/Assets/Scripts/Tests/StarbridgePlayerSeatDocumentTests.cs b/Assets/Scripts/Tests/StarbridgePlayerSeatDocumentTests.cs index 6b84867db..91817f914 100644 --- a/Assets/Scripts/Tests/StarbridgePlayerSeatDocumentTests.cs +++ b/Assets/Scripts/Tests/StarbridgePlayerSeatDocumentTests.cs @@ -82,7 +82,7 @@ public class StarbridgePlayerSeatDocumentTests var handle = client.Document( AetheriaRuntimeVerseRecordKeys.StarbridgePlayerSeat(seat.SeatId)); using var reactive = handle.Reactive(); - using var aetheriaSeat = client.State.Document(seat.SeatId).Reactive(); + using var aetheriaSeat = client.State.Reactive(seat.SeatId); Assert.AreEqual("seat-support", handle.Latest().SeatId); Assert.AreEqual( diff --git a/Assets/Scripts/UI/HUD/SchematicDisplay.cs b/Assets/Scripts/UI/HUD/SchematicDisplay.cs index 4277232a5..2805accf0 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.Document().Reactive(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -342,7 +342,7 @@ public class SchematicDisplay : MonoBehaviour { try { - _playerSettings = ResolveClient().State.Document().Reactive(); + _playerSettings = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -359,7 +359,7 @@ public class SchematicDisplay : MonoBehaviour { try { - _currentEntity = ResolveClient().State.Document().Reactive(); + _currentEntity = ResolveClient().State.Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs index a540de41a..4ccafcfb8 100644 --- a/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs +++ b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs @@ -393,7 +393,7 @@ public class InputDisplayLayout : MonoBehaviour try { _playerSettings = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index 7d0aa926d..7eb4fe973 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -151,7 +151,7 @@ public class MainMenu : MonoBehaviour try { _sectorMap ??= ResolveClient(stateBoot) - .State.Document().Reactive(); + .State.Reactive(); return _sectorMap?.Current; } catch (Exception ex) @@ -169,7 +169,7 @@ public class MainMenu : MonoBehaviour try { _playerSettings ??= ResolveClient(stateBoot) - .State.Document().Reactive(); + .State.Reactive(); return _playerSettings?.Current; } catch (Exception ex) @@ -187,7 +187,7 @@ public class MainMenu : MonoBehaviour try { _verseHostSettings ??= ResolveClient(stateBoot) - .State.Document().Reactive(); + .State.Reactive(); return _verseHostSettings?.Current; } catch (Exception ex) diff --git a/Assets/Scripts/UI/Menu/InventoryMenu.cs b/Assets/Scripts/UI/Menu/InventoryMenu.cs index 391527a31..b8518f58b 100644 --- a/Assets/Scripts/UI/Menu/InventoryMenu.cs +++ b/Assets/Scripts/UI/Menu/InventoryMenu.cs @@ -965,7 +965,7 @@ public class InventoryMenu : MonoBehaviour try { _currentEntity = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { @@ -983,7 +983,7 @@ public class InventoryMenu : MonoBehaviour try { _stationRefit = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { @@ -1001,9 +1001,7 @@ public class InventoryMenu : MonoBehaviour try { var nextInventory = ResolveClient() - .State - .Document(entityIndex) - .Reactive(); + .State.Reactive(entityIndex); _inventory?.Dispose(); _inventoryEntityIndex = entityIndex; _inventory = nextInventory; @@ -1075,7 +1073,7 @@ public class InventoryMenu : MonoBehaviour try { - _catalog = ResolveClient().State.Document().Reactive(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -1093,7 +1091,7 @@ public class InventoryMenu : MonoBehaviour try { _playerSettings = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/Menu/InventoryPanel.cs b/Assets/Scripts/UI/Menu/InventoryPanel.cs index 39e9736e1..f9e1b28e4 100644 --- a/Assets/Scripts/UI/Menu/InventoryPanel.cs +++ b/Assets/Scripts/UI/Menu/InventoryPanel.cs @@ -1504,7 +1504,7 @@ private void Update() try { _currentEntity = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { @@ -1522,7 +1522,7 @@ private void Update() try { _stationRefit = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { @@ -1547,7 +1547,7 @@ private void Update() try { _loadoutFrame = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { @@ -1565,9 +1565,7 @@ private void Update() try { var nextInventory = ResolveClient() - .State - .Document(entityIndex) - .Reactive(); + .State.Reactive(entityIndex); _inventory?.Dispose(); _inventoryEntityIndex = entityIndex; _inventory = nextInventory; @@ -1587,7 +1585,7 @@ private void Update() try { - _catalog = ResolveClient().State.Document().Reactive(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -1605,7 +1603,7 @@ private void Update() try { _playerSettings = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/Menu/MapRenderer.cs b/Assets/Scripts/UI/Menu/MapRenderer.cs index af38abf42..04f82cda7 100644 --- a/Assets/Scripts/UI/Menu/MapRenderer.cs +++ b/Assets/Scripts/UI/Menu/MapRenderer.cs @@ -129,14 +129,8 @@ public class MapRenderer : MonoBehaviour var client = ResolveClient(); var viewport = ResolveViewportBounds(); ClearViewportCaches(); - _objectsViewport = client - .State - .Document(viewport) - .Reactive(); - _renderSplatsViewport = client - .State - .Document(viewport) - .Reactive(); + _objectsViewport = client.State.Reactive(viewport); + _renderSplatsViewport = client.State.Reactive(viewport); var objectsViewport = _objectsViewport?.Current; var zoneName = string.IsNullOrWhiteSpace(objectsViewport?.ZoneName) @@ -319,7 +313,7 @@ public class MapRenderer : MonoBehaviour try { _playerSettings ??= ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); return _playerSettings?.Current?.ShowAsteroidsInMinimap ?? false; } catch (Exception ex) diff --git a/Assets/Scripts/UI/Menu/MenuPanel.cs b/Assets/Scripts/UI/Menu/MenuPanel.cs index c9e3f25b4..4684e7a6b 100644 --- a/Assets/Scripts/UI/Menu/MenuPanel.cs +++ b/Assets/Scripts/UI/Menu/MenuPanel.cs @@ -180,7 +180,7 @@ public class MenuPanel : MonoBehaviour docking = null; try { - _currentDocking ??= ResolveClient().State.Document().Reactive(); + _currentDocking ??= ResolveClient().State.Reactive(); docking = _currentDocking.Current; return docking != null; } diff --git a/Assets/Scripts/UI/Menu/SectorMap.cs b/Assets/Scripts/UI/Menu/SectorMap.cs index 115d5090d..0d9a0c7a8 100644 --- a/Assets/Scripts/UI/Menu/SectorMap.cs +++ b/Assets/Scripts/UI/Menu/SectorMap.cs @@ -222,7 +222,7 @@ public class SectorMap : MonoBehaviour private void EnsureSectorMapLoaded() { _sectorMapDocument ??= ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); _sectorMap = _sectorMapDocument?.Current; if (_sectorMapLoaded) diff --git a/Assets/Scripts/UI/Menu/SectorRenderer.cs b/Assets/Scripts/UI/Menu/SectorRenderer.cs index 044c7532a..3deb7336b 100644 --- a/Assets/Scripts/UI/Menu/SectorRenderer.cs +++ b/Assets/Scripts/UI/Menu/SectorRenderer.cs @@ -175,7 +175,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS try { _sectorMap ??= ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); var sectorMap = _sectorMap?.Current; return (sectorMap?.Zones ?? Array.Empty()) .FirstOrDefault(zone => zone.ZoneIndex == zoneIndex); @@ -203,9 +203,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS try { var nextZoneDetails = ResolveClient() - .State - .Document(zoneIndex) - .Reactive(); + .State.Reactive(zoneIndex); _zoneDetails?.Dispose(); _zoneDetailsIndex = zoneIndex; _zoneDetails = nextZoneDetails; @@ -231,7 +229,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS try { - _catalog = ResolveClient().State.Document().Reactive(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -249,7 +247,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS try { _playerSettings = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { @@ -320,7 +318,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS try { _currentZone ??= ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/UI/Menu/TradeMenu.cs b/Assets/Scripts/UI/Menu/TradeMenu.cs index 939ec0ca6..1d4be74dd 100644 --- a/Assets/Scripts/UI/Menu/TradeMenu.cs +++ b/Assets/Scripts/UI/Menu/TradeMenu.cs @@ -518,7 +518,7 @@ public class TradeMenu : MonoBehaviour try { - _stationRefit = ResolveClient().State.Document().Reactive(); + _stationRefit = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -533,7 +533,7 @@ public class TradeMenu : MonoBehaviour docking = null; try { - _currentDocking ??= ResolveClient().State.Document().Reactive(); + _currentDocking ??= ResolveClient().State.Reactive(); docking = _currentDocking.Current; return docking != null; } @@ -627,7 +627,7 @@ public class TradeMenu : MonoBehaviour try { - _catalog = ResolveClient().State.Document().Reactive(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -645,7 +645,7 @@ public class TradeMenu : MonoBehaviour try { _playerSettings = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs b/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs index 0558b999f..7bae61860 100644 --- a/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs +++ b/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs @@ -102,7 +102,7 @@ public class VolumeCloudRenderer : EffectBase try { _playerSettings = ResolveClient() - .State.Document().Reactive(); + .State.Reactive(); } catch (Exception ex) { diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs index fc400a232..28f4d71ae 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.Document().Reactive(); + _catalog = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -1225,7 +1225,7 @@ public class ZoneRenderer : MonoBehaviour try { - _zoneContacts = ResolveClient().State.Document().Reactive(); + _zoneContacts = ResolveClient().State.Reactive(); } catch (Exception ex) { @@ -1244,9 +1244,7 @@ public class ZoneRenderer : MonoBehaviour try { var nextObjectsViewport = ResolveClient() - .State - .Document(viewportBounds) - .Reactive(); + .State.Reactive(viewportBounds); _objectsViewport?.Dispose(); _objectsViewportBounds = viewportBounds; _objectsViewport = nextObjectsViewport; diff --git a/Packages/org.gamecult.aetheria.eve-runtime/Runtime/AetheriaEveSurfacePresenter.cs b/Packages/org.gamecult.aetheria.eve-runtime/Runtime/AetheriaEveSurfacePresenter.cs index 4a42633f3..d7c1bc6dc 100644 --- a/Packages/org.gamecult.aetheria.eve-runtime/Runtime/AetheriaEveSurfacePresenter.cs +++ b/Packages/org.gamecult.aetheria.eve-runtime/Runtime/AetheriaEveSurfacePresenter.cs @@ -169,16 +169,16 @@ namespace GameCult.Aetheria.EveRuntime AetheriaClient client) { if (string.Equals(surfaceId, AetheriaRuntimeDaemonGameSurfaceBuilder.SurfaceId, StringComparison.Ordinal)) - return client.State.Document(AetheriaClientEveSurface.Game).Reactive(); + return client.State.Reactive(AetheriaClientEveSurface.Game); if (string.Equals(surfaceId, AetheriaRuntimeDaemonGameSurfaceBuilder.TuiSurfaceId, StringComparison.Ordinal)) - return client.State.Document(AetheriaClientEveSurface.GameTui).Reactive(); + return client.State.Reactive(AetheriaClientEveSurface.GameTui); if (string.Equals(surfaceId, AetheriaRuntimeDaemonEditorSurfaceBuilder.SurfaceId, StringComparison.Ordinal)) - return client.State.Document(AetheriaClientEveSurface.Editor).Reactive(); + return client.State.Reactive(AetheriaClientEveSurface.Editor); if (string.Equals(surfaceId, AetheriaRuntimeDaemonEditorSurfaceBuilder.TuiSurfaceId, StringComparison.Ordinal)) - return client.State.Document(AetheriaClientEveSurface.EditorTui).Reactive(); + return client.State.Reactive(AetheriaClientEveSurface.EditorTui); return null; } diff --git a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClient.cs b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClient.cs index 43c40a777..358d1e166 100644 --- a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClient.cs +++ b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClient.cs @@ -180,7 +180,7 @@ namespace GameCult.Aetheria.State.Verse ThrowIfDisposed(); try { - _daemonFrame ??= State.Document().Reactive(); + _daemonFrame ??= State.Reactive(); return _daemonFrame.Current; } catch diff --git a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClientState.cs b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClientState.cs index 99b919f4e..ba96824e0 100644 --- a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClientState.cs +++ b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaClientState.cs @@ -187,6 +187,12 @@ namespace GameCult.Aetheria.State.Verse $"Aetheria typed state does not expose a projected document for {typeof(TDocument).FullName}."); } + public CultMeshReactiveDocument Reactive() + where TDocument : class + { + return Document().Reactive(); + } + public CultMeshDocumentHandle Document(AetheriaClientEveSurface surface) where TDocument : class { @@ -205,6 +211,12 @@ namespace GameCult.Aetheria.State.Verse return (CultMeshDocumentHandle)(object)document; } + public CultMeshReactiveDocument Reactive(AetheriaClientEveSurface surface) + where TDocument : class + { + return Document(surface).Reactive(); + } + public CultMeshDocumentHandle Document(AetheriaRuntimeRtsViewportBounds viewport) where TDocument : class { @@ -223,6 +235,12 @@ namespace GameCult.Aetheria.State.Verse $"Aetheria typed state does not expose a viewport document for {typeof(TDocument).FullName}."); } + public CultMeshReactiveDocument Reactive(AetheriaRuntimeRtsViewportBounds viewport) + where TDocument : class + { + return Document(viewport).Reactive(); + } + public CultMeshDocumentHandle Document(int entityOrZoneIndex) where TDocument : class { @@ -237,6 +255,12 @@ namespace GameCult.Aetheria.State.Verse $"Aetheria typed state does not expose an indexed document for {typeof(TDocument).FullName}."); } + public CultMeshReactiveDocument Reactive(int entityOrZoneIndex) + where TDocument : class + { + return Document(entityOrZoneIndex).Reactive(); + } + public CultMeshDocumentHandle Document(string seatId) where TDocument : class { @@ -249,12 +273,18 @@ namespace GameCult.Aetheria.State.Verse return (CultMeshDocumentHandle)(object)_starbridgePlayerSeat(seatId); } + public CultMeshReactiveDocument Reactive(string seatId) + where TDocument : class + { + return Document(seatId).Reactive(); + } + public CultMeshStateRefResolver CreateEveSurfaceCultMeshStateRefResolver() { - _eveStateRefFrame ??= Document().Reactive(); - _eveStateRefHealth ??= Document().Reactive(); - _eveStateRefCommandBoundary ??= Document().Reactive(); - _eveStateRefCatalog ??= Document().Reactive(); + _eveStateRefFrame ??= Reactive(); + _eveStateRefHealth ??= Reactive(); + _eveStateRefCommandBoundary ??= Reactive(); + _eveStateRefCatalog ??= Reactive(); return AetheriaRuntimeStateRefResolver.CreateEveSurfaceCultMeshStateRefResolver( () => _eveStateRefFrame.Current, diff --git a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeVerseClient.cs b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeVerseClient.cs index b57ca92b3..22ecb9111 100644 --- a/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeVerseClient.cs +++ b/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeVerseClient.cs @@ -497,11 +497,11 @@ namespace GameCult.Aetheria.State.Verse seatId => Document( AetheriaRuntimeVerseRecordKeys.StarbridgePlayerSeat(seatId))); - managedDaemonFrame = state.Document().Reactive(); - managedCatalog = state.Document().Reactive(); - managedLoadoutTemplates = state.Document().Reactive(); - managedStarbridgeScenario = state.Document().Reactive(); - managedStarbridgeSession = state.Document().Reactive(); + managedDaemonFrame = state.Reactive(); + managedCatalog = state.Reactive(); + managedLoadoutTemplates = state.Reactive(); + managedStarbridgeScenario = state.Reactive(); + managedStarbridgeSession = state.Reactive(); _managedDaemonFrame = managedDaemonFrame; _managedCatalog = managedCatalog; _managedLoadoutTemplates = managedLoadoutTemplates;