Flatten Aetheria CultMesh reactive access
This commit is contained in:
parent
0a78a0071a
commit
0830588cbb
26 changed files with 306 additions and 405 deletions
|
|
@ -2430,10 +2430,10 @@ static void RequireDaemonRenderQueryAuthority(string root)
|
|||
"var entityIndex = view.EntityIndex[i];",
|
||||
"private AetheriaDaemonObserver ResolveDaemonObserver()",
|
||||
"FindAnyObjectByType<AetheriaDaemonObserver>()",
|
||||
".Viewports",
|
||||
"ResolveObjectsViewport(viewport)",
|
||||
"private AetheriaRuntimeObjectsViewportDocument ResolveObjectsViewport(AetheriaRuntimeXzRect viewport)",
|
||||
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)",
|
||||
".Document<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)",
|
||||
".Reactive();",
|
||||
"_objectsViewport?.Current",
|
||||
"foreach (var entity in objects?.Objects ?? Array.Empty<AetheriaRuntimeRtsViewportObject>())",
|
||||
"_observedEntitySnapshotsByDaemonIndex.TryGetValue(entityIndex, out var entity)",
|
||||
|
|
@ -2452,7 +2452,7 @@ static void RequireDaemonRenderQueryAuthority(string root)
|
|||
"beltPose.InstancePoses ?? Array.Empty<AetheriaRuntimeZoneRenderAsteroidInstancePose>()",
|
||||
"private void RefreshDaemonContactRows()",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeZoneContactsDocument>()",
|
||||
".Document<AetheriaRuntimeZoneContactsDocument>().Reactive()",
|
||||
"private void RefreshDaemonCompassMarkers()",
|
||||
"private void RefreshDaemonVisibleEntityInstances()",
|
||||
"PowerPulse(",
|
||||
|
|
@ -2561,9 +2561,9 @@ static void RequireDaemonRenderQueryAuthority(string root)
|
|||
"ResolveCatalog()",
|
||||
"ResolveCurrentEntityHudStatus()",
|
||||
"AetheriaUnityRuntimeClientProvider.ResolveClient(",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCurrentEntityDocument>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive()",
|
||||
"return _currentEntity?.Current?.Hud ?? new AetheriaRuntimeCurrentEntityHudStatus();",
|
||||
"_currentEntity?.Dispose()",
|
||||
"hud.OverrideShutdown",
|
||||
|
|
@ -3213,10 +3213,10 @@ static void RequireEveRuntimeBootstrap(string root)
|
|||
"AetheriaUnityRuntimeClientProvider.ResolveClient(",
|
||||
"CultMeshReactiveDocument<global::Aetheria.State.Documents.EveSurfaceState>",
|
||||
"ResolveReactiveDaemonSurfaceState(",
|
||||
"client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Game)",
|
||||
"client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.GameTui)",
|
||||
"client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Editor)",
|
||||
"client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.EditorTui)",
|
||||
"client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Game).Reactive()",
|
||||
"client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.GameTui).Reactive()",
|
||||
"client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Editor).Reactive()",
|
||||
"client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.EditorTui).Reactive()",
|
||||
"DisposeReactiveSurfaceState()",
|
||||
"AetheriaRuntimeEveSurfaceAdapter.ToEveSurfaceDocument(",
|
||||
"private bool ShouldMountSurface(",
|
||||
|
|
@ -4244,7 +4244,7 @@ static void RequireRuntimeInputScreenUsesEveSurface(string root)
|
|||
"InputDisplayLayout",
|
||||
"AetheriaRuntimePlayerSettingsDocument",
|
||||
"_playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimePlayerSettingsSession",
|
||||
".ObservePlayer()");
|
||||
|
||||
|
|
@ -4552,9 +4552,9 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root)
|
|||
"ProjectZoneDetailsSurfaceState(",
|
||||
"AetheriaUnityRuntimeClientProvider.ResolveClient(",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Details",
|
||||
".Reactive<AetheriaRuntimeZoneDetailsDocument>(zoneIndex)",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
".Document<AetheriaRuntimeZoneDetailsDocument>(zoneIndex)",
|
||||
".Reactive();",
|
||||
"_zoneDetails?.Current",
|
||||
"AetheriaClient",
|
||||
"AetheriaRuntimeZoneDetailsSurfaceCommands.TryRead(request, out var command)",
|
||||
|
|
@ -4577,7 +4577,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimeSectorMapDocument",
|
||||
"_sectorMap",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"AetheriaRuntimeSectorMapSession",
|
||||
".ObserveSectorMap()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -4585,7 +4585,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimeCurrentZoneDocument",
|
||||
"_currentZone",
|
||||
".Reactive<AetheriaRuntimeCurrentZoneDocument>()",
|
||||
".Document<AetheriaRuntimeCurrentZoneDocument>().Reactive()",
|
||||
"AetheriaRuntimeCurrentZoneSession",
|
||||
".ObserveZone()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -4593,7 +4593,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimeZoneDetailsDocument",
|
||||
"_zoneDetails",
|
||||
".Reactive<AetheriaRuntimeZoneDetailsDocument>(zoneIndex)",
|
||||
".Document<AetheriaRuntimeZoneDetailsDocument>(zoneIndex).Reactive()",
|
||||
"AetheriaRuntimeZoneDetailsSession",
|
||||
".ObserveZone(zoneIndex)");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -4601,7 +4601,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimeCatalogSnapshot",
|
||||
"_catalog",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"AetheriaRuntimeCatalogSession",
|
||||
"ResolveClient().State.ObserveCatalog()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -4609,7 +4609,7 @@ static void RequireSectorMapZoneDetailsUseEveSurface(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimePlayerSettingsDocument",
|
||||
"_playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimePlayerSettingsSession",
|
||||
".ObservePlayer()");
|
||||
|
||||
|
|
@ -4770,7 +4770,7 @@ static void RequireRuntimeMenuTabsUseEveSurface(string root)
|
|||
"SetObservedEntityIndex(AetheriaUnityObservedEntityIndex observedEntityIndex)",
|
||||
"AetheriaRuntimeCurrentDockingDocument",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking",
|
||||
"_currentDocking ??= ResolveClient().State.Reactive<AetheriaRuntimeCurrentDockingDocument>()",
|
||||
"_currentDocking ??= ResolveClient().State.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive()",
|
||||
"docking = _currentDocking.Current",
|
||||
"docking.IsDocked",
|
||||
"AetheriaClient",
|
||||
|
|
@ -5734,10 +5734,10 @@ static void RequireTradeCargoSelectorUseEveSurface(string root)
|
|||
"SetObservedEntityIndex(AetheriaUnityObservedEntityIndex observedEntityIndex)",
|
||||
"AetheriaRuntimeCurrentDockingDocument",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking",
|
||||
"_currentDocking ??= ResolveClient().State.Reactive<AetheriaRuntimeCurrentDockingDocument>()",
|
||||
"_currentDocking ??= ResolveClient().State.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive()",
|
||||
"docking = _currentDocking.Current",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeStationRefitDocument> _stationRefit",
|
||||
"_stationRefit = ResolveClient().State.Reactive<AetheriaRuntimeStationRefitDocument>()",
|
||||
"_stationRefit = ResolveClient().State.Document<AetheriaRuntimeStationRefitDocument>().Reactive()",
|
||||
"return _stationRefit?.Current",
|
||||
"SetTargetCargo(",
|
||||
"selection.EntityKey",
|
||||
|
|
@ -7037,12 +7037,12 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root)
|
|||
}
|
||||
|
||||
var clientState = File.ReadAllText(clientStatePath);
|
||||
if (!clientState.Contains("public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(", StringComparison.Ordinal) ||
|
||||
!clientState.Contains("public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(", StringComparison.Ordinal) ||
|
||||
!clientState.Contains("public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(", StringComparison.Ordinal))
|
||||
if (!clientState.Contains("public CultMeshDocumentHandle<TDocument> Document<TDocument>()", StringComparison.Ordinal) ||
|
||||
!clientState.Contains("public CultMeshDocumentHandle<TDocument> Document<TDocument>(int entityOrZoneIndex)", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must expose direct managed reactive typed access for current entity, station refit, and indexed inventory documents.");
|
||||
"AetheriaClientState must expose typed document handles for current entity, station refit, and indexed inventory documents while leaving reactivity to CultMesh handles.");
|
||||
}
|
||||
|
||||
var sources = new Dictionary<string, string>
|
||||
|
|
@ -7056,16 +7056,22 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root)
|
|||
var requiredSymbols = new[]
|
||||
{
|
||||
"ResolveCurrentEntity()",
|
||||
".Reactive<AetheriaRuntimeCurrentEntityDocument>()",
|
||||
"ResolveStationRefitDocument()",
|
||||
".Reactive<AetheriaRuntimeStationRefitDocument>()",
|
||||
"ResolveInventory(entityIndex)",
|
||||
".Reactive<AetheriaRuntimeInventoryDocument>(entityIndex)",
|
||||
"_inventory?.Current"
|
||||
};
|
||||
var missingSymbols = requiredSymbols
|
||||
.Where(symbol => !source.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
var requiredCompactedSymbols = new[]
|
||||
{
|
||||
".Document<AetheriaRuntimeCurrentEntityDocument>().Reactive()",
|
||||
".Document<AetheriaRuntimeStationRefitDocument>().Reactive()",
|
||||
".Document<AetheriaRuntimeInventoryDocument>(entityIndex).Reactive()"
|
||||
};
|
||||
missingSymbols = missingSymbols
|
||||
.Concat(requiredCompactedSymbols.Where(symbol => !compact.Contains(symbol, StringComparison.Ordinal)))
|
||||
.ToArray();
|
||||
if (missingSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
|
|
@ -7104,7 +7110,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root)
|
|||
name,
|
||||
"AetheriaRuntimeCurrentEntityDocument",
|
||||
"_currentEntity",
|
||||
".Reactive<AetheriaRuntimeCurrentEntityDocument>()",
|
||||
".Document<AetheriaRuntimeCurrentEntityDocument>().Reactive()",
|
||||
"AetheriaRuntimeCurrentEntitySession",
|
||||
".ObserveEntity()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7112,7 +7118,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root)
|
|||
name,
|
||||
"AetheriaRuntimeStationRefitDocument",
|
||||
"_stationRefit",
|
||||
".Reactive<AetheriaRuntimeStationRefitDocument>()",
|
||||
".Document<AetheriaRuntimeStationRefitDocument>().Reactive()",
|
||||
"AetheriaRuntimeStationRefitSession",
|
||||
".ObserveStationRefit()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7120,7 +7126,7 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root)
|
|||
name,
|
||||
"AetheriaRuntimeInventoryDocument",
|
||||
"_inventory",
|
||||
".Reactive<AetheriaRuntimeInventoryDocument>(entityIndex)",
|
||||
".Document<AetheriaRuntimeInventoryDocument>(entityIndex).Reactive()",
|
||||
"AetheriaRuntimeInventorySession",
|
||||
".ObserveInventory(entityIndex)");
|
||||
}
|
||||
|
|
@ -7144,8 +7150,7 @@ static void RequireMenuDockingUsesManagedTypedSnapshot(string root)
|
|||
{
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeStationRefitDocument> StationRefit { get; }",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeCurrentDockingDocument> CurrentDockingDocument { get; }",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>()",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>("
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>()"
|
||||
};
|
||||
var missingClientSymbols = requiredClientSymbols
|
||||
.Where(symbol => !clientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -7232,7 +7237,7 @@ static void RequireMenuDockingUsesManagedTypedSnapshot(string root)
|
|||
var tradeMenu = File.ReadAllText(Path.Combine(root, "Assets", "Scripts", "UI", "Menu", "TradeMenu.cs"));
|
||||
var directDockingOffenders = new List<string>();
|
||||
if (!menuPanel.Contains("CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking", StringComparison.Ordinal) ||
|
||||
!menuPanel.Contains("_currentDocking ??= ResolveClient().State.Reactive<AetheriaRuntimeCurrentDockingDocument>()", StringComparison.Ordinal) ||
|
||||
!menuPanel.Contains("_currentDocking ??= ResolveClient().State.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive()", StringComparison.Ordinal) ||
|
||||
!menuPanel.Contains("docking = _currentDocking.Current", StringComparison.Ordinal) ||
|
||||
menuPanel.Contains("ResolveClient().State.Latest<AetheriaRuntimeCurrentDockingDocument>()", StringComparison.Ordinal))
|
||||
{
|
||||
|
|
@ -7240,7 +7245,7 @@ static void RequireMenuDockingUsesManagedTypedSnapshot(string root)
|
|||
}
|
||||
|
||||
if (!tradeMenu.Contains("CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking", StringComparison.Ordinal) ||
|
||||
!tradeMenu.Contains("_currentDocking ??= ResolveClient().State.Reactive<AetheriaRuntimeCurrentDockingDocument>()", StringComparison.Ordinal) ||
|
||||
!tradeMenu.Contains("_currentDocking ??= ResolveClient().State.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive()", StringComparison.Ordinal) ||
|
||||
!tradeMenu.Contains("docking = _currentDocking.Current", StringComparison.Ordinal) ||
|
||||
tradeMenu.Contains("ResolveClient().State.Latest<AetheriaRuntimeCurrentDockingDocument>()", StringComparison.Ordinal))
|
||||
{
|
||||
|
|
@ -7261,7 +7266,7 @@ static bool HasManagedDockingSnapshotAccess(string source)
|
|||
{
|
||||
if (source.Contains("AetheriaRuntimeCurrentDockingDocument", StringComparison.Ordinal) &&
|
||||
source.Contains("CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking", StringComparison.Ordinal) &&
|
||||
source.Contains("State.Reactive<AetheriaRuntimeCurrentDockingDocument>()", StringComparison.Ordinal) &&
|
||||
source.Contains("State.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive()", StringComparison.Ordinal) &&
|
||||
source.Contains("_currentDocking.Current", StringComparison.Ordinal) &&
|
||||
!source.Contains("ResolveClient().State.Latest<AetheriaRuntimeCurrentDockingDocument>()", StringComparison.Ordinal))
|
||||
{
|
||||
|
|
@ -7306,9 +7311,9 @@ static bool HasManagedDockingSnapshotAccess(string source)
|
|||
source.Contains("CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking", StringComparison.Ordinal) &&
|
||||
source.Contains("CultMeshReactiveDocument<AetheriaRuntimeStationRefitDocument> _stationRefit", StringComparison.Ordinal) &&
|
||||
source.Contains("AetheriaRuntimeObservedDockingState.TryCreateCurrent(", StringComparison.Ordinal) &&
|
||||
source.Contains("state.Reactive<AetheriaRuntimeCurrentEntityDocument>()", StringComparison.Ordinal) &&
|
||||
source.Contains("state.Reactive<AetheriaRuntimeCurrentDockingDocument>()", StringComparison.Ordinal) &&
|
||||
source.Contains("state.Reactive<AetheriaRuntimeStationRefitDocument>()", StringComparison.Ordinal) &&
|
||||
source.Contains("state.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive()", StringComparison.Ordinal) &&
|
||||
source.Contains("state.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive()", StringComparison.Ordinal) &&
|
||||
source.Contains("state.Document<AetheriaRuntimeStationRefitDocument>().Reactive()", StringComparison.Ordinal) &&
|
||||
!source.Contains("State?.CurrentDocking()", StringComparison.Ordinal) &&
|
||||
!source.Contains(".State.CurrentDocking()", StringComparison.Ordinal) &&
|
||||
!source.Contains("state.Latest<AetheriaRuntimeCurrentEntityDocument>()", StringComparison.Ordinal) &&
|
||||
|
|
@ -7333,12 +7338,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
var requiredClientSymbols = new[]
|
||||
{
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>()",
|
||||
"public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(int entityOrZoneIndex)",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>("
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(int entityOrZoneIndex)"
|
||||
};
|
||||
var missingClientSymbols = requiredClientSymbols
|
||||
.Where(symbol => !clientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -7346,15 +7346,18 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
if (missingClientSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must expose generic managed reactive access and document handles for shared Unity documents: " +
|
||||
"AetheriaClientState must expose typed document handles for shared Unity documents, with reactive sync owned by CultMesh handles: " +
|
||||
string.Join(", ", missingClientSymbols));
|
||||
}
|
||||
|
||||
if (clientState.Contains("public Task<TDocument> LatestAsync<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public TDocument Latest<TDocument>", StringComparison.Ordinal))
|
||||
clientState.Contains("public TDocument Latest<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public CultMeshReactiveDocument<TDocument> Reactive<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public Observable<TDocument> Watch<TDocument>", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must not expose generic latest snapshot shortcuts; callers should hold Document<TDocument>() or Reactive<TDocument>() handles.");
|
||||
"AetheriaClientState must not expose generic latest/reactive/watch shortcuts; callers should hold Document<TDocument>() handles and call CultMesh handle APIs.");
|
||||
}
|
||||
|
||||
var unityPaths = new[]
|
||||
|
|
@ -7418,7 +7421,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
{
|
||||
"public abstract class ActionBarBinding : IDisposable",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> _catalog",
|
||||
"Client.State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"Client.State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"_catalog?.Current?.FindItem(item, x => x.ItemKey)",
|
||||
"binding?.Dispose()",
|
||||
"private void OnDestroy()"
|
||||
|
|
@ -7458,9 +7461,9 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> _catalog",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimePlayerSettingsDocument> _playerSettings",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeCurrentEntityDocument> _currentEntity",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCurrentEntityDocument>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive()",
|
||||
"_catalog?.Dispose()",
|
||||
"_playerSettings?.Dispose()",
|
||||
"_currentEntity?.Dispose()",
|
||||
|
|
@ -7514,7 +7517,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
var requiredVolumeCloudSymbols = new[]
|
||||
{
|
||||
"CultMeshReactiveDocument<AetheriaRuntimePlayerSettingsDocument> _playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"_playerSettings?.Dispose()",
|
||||
"_playerSettings?.Current"
|
||||
};
|
||||
|
|
@ -7544,7 +7547,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
var requiredObservedTargetSymbols = new[]
|
||||
{
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeZoneContactsDocument> _zoneContacts",
|
||||
".Reactive<AetheriaRuntimeZoneContactsDocument>()",
|
||||
".Document<AetheriaRuntimeZoneContactsDocument>().Reactive()",
|
||||
"_zoneContacts?.Dispose()",
|
||||
"_zoneContacts?.Current"
|
||||
};
|
||||
|
|
@ -7576,8 +7579,6 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
{
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeObjectsViewportDocument> _objectsViewport",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeRenderSplatsViewportDocument> _renderSplatsViewport",
|
||||
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewport)",
|
||||
".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)",
|
||||
"ClearViewportCaches()",
|
||||
"_objectsViewport?.Dispose()",
|
||||
"_renderSplatsViewport?.Dispose()",
|
||||
|
|
@ -7588,6 +7589,14 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
var missingMapRendererSharedDocumentSymbols = requiredMapRendererSharedDocumentSymbols
|
||||
.Where(symbol => !mapRenderer.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
var compactMapRenderer = CompactSource(mapRenderer);
|
||||
missingMapRendererSharedDocumentSymbols = missingMapRendererSharedDocumentSymbols
|
||||
.Concat(new[]
|
||||
{
|
||||
".Document<AetheriaRuntimeObjectsViewportDocument>(viewport).Reactive()",
|
||||
".Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport).Reactive()"
|
||||
}.Where(symbol => !compactMapRenderer.Contains(symbol, StringComparison.Ordinal)))
|
||||
.ToArray();
|
||||
if (missingMapRendererSharedDocumentSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
|
|
@ -7600,7 +7609,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"MapRenderer",
|
||||
"AetheriaRuntimeObjectsViewportDocument",
|
||||
"_objectsViewport",
|
||||
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewport)",
|
||||
".Document<AetheriaRuntimeObjectsViewportDocument>(viewport).Reactive()",
|
||||
"AetheriaRuntimeObjectsViewportSession",
|
||||
".ObserveObjects(viewport)");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7608,7 +7617,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"MapRenderer",
|
||||
"AetheriaRuntimeRenderSplatsViewportDocument",
|
||||
"_renderSplatsViewport",
|
||||
".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)",
|
||||
".Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport).Reactive()",
|
||||
"AetheriaRuntimeRenderSplatsViewportSession",
|
||||
".ObserveRenderSplats(viewport)");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7616,7 +7625,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"MapRenderer",
|
||||
"AetheriaRuntimePlayerSettingsDocument",
|
||||
"_playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimePlayerSettingsSession",
|
||||
".ObservePlayer()");
|
||||
|
||||
|
|
@ -7668,7 +7677,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"MainMenu",
|
||||
"AetheriaRuntimeSectorMapDocument",
|
||||
"_sectorMap",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"AetheriaRuntimeSectorMapSession",
|
||||
".ObserveSectorMap()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7676,7 +7685,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"MainMenu",
|
||||
"AetheriaRuntimePlayerSettingsDocument",
|
||||
"_playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimePlayerSettingsSession",
|
||||
".ObservePlayer()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7684,7 +7693,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"MainMenu",
|
||||
"AetheriaRuntimeVerseHostSettingsDocument",
|
||||
"_verseHostSettings",
|
||||
".Reactive<AetheriaRuntimeVerseHostSettingsDocument>()",
|
||||
".Document<AetheriaRuntimeVerseHostSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimeVerseHostSettingsSession",
|
||||
".ObserveVerseHost()");
|
||||
|
||||
|
|
@ -7711,7 +7720,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"TradeMenu",
|
||||
"AetheriaRuntimeCatalogSnapshot",
|
||||
"_catalog",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"AetheriaRuntimeCatalogSession",
|
||||
"ResolveClient().State.ObserveCatalog()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7719,7 +7728,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"TradeMenu",
|
||||
"AetheriaRuntimePlayerSettingsDocument",
|
||||
"_playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimePlayerSettingsSession",
|
||||
".ObservePlayer()");
|
||||
|
||||
|
|
@ -7746,7 +7755,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"InventoryMenu",
|
||||
"AetheriaRuntimeCatalogSnapshot",
|
||||
"_catalog",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"AetheriaRuntimeCatalogSession",
|
||||
"ResolveClient().State.ObserveCatalog()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7754,7 +7763,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"InventoryMenu",
|
||||
"AetheriaRuntimePlayerSettingsDocument",
|
||||
"_playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimePlayerSettingsSession",
|
||||
".ObservePlayer()");
|
||||
|
||||
|
|
@ -7784,7 +7793,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"InventoryPanel",
|
||||
"AetheriaRuntimeCatalogSnapshot",
|
||||
"_catalog",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"AetheriaRuntimeCatalogSession",
|
||||
"ResolveClient().State.ObserveCatalog()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7792,7 +7801,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"InventoryPanel",
|
||||
"AetheriaRuntimePlayerSettingsDocument",
|
||||
"_playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimePlayerSettingsSession",
|
||||
".ObservePlayer()");
|
||||
|
||||
|
|
@ -7808,10 +7817,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"CultMeshReactiveDocument<AetheriaRuntimeSectorMapDocument> _sectorMap",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeCurrentZoneDocument> _currentZone",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeZoneDetailsDocument> _zoneDetails",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Current",
|
||||
".Reactive<AetheriaRuntimeCurrentZoneDocument>()",
|
||||
".Reactive<AetheriaRuntimeZoneDetailsDocument>(zoneIndex)",
|
||||
"_sectorMap?.Dispose()",
|
||||
"_currentZone?.Dispose()",
|
||||
"_zoneDetails?.Dispose()",
|
||||
|
|
@ -7820,6 +7826,15 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
var missingSectorRendererSharedDocumentSymbols = requiredSectorRendererSharedDocumentSymbols
|
||||
.Where(symbol => !sectorRenderer.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
var compactSectorRenderer = CompactSource(sectorRenderer);
|
||||
missingSectorRendererSharedDocumentSymbols = missingSectorRendererSharedDocumentSymbols
|
||||
.Concat(new[]
|
||||
{
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
".Document<AetheriaRuntimeCurrentZoneDocument>().Reactive()",
|
||||
".Document<AetheriaRuntimeZoneDetailsDocument>(zoneIndex).Reactive()"
|
||||
}.Where(symbol => !compactSectorRenderer.Contains(symbol, StringComparison.Ordinal)))
|
||||
.ToArray();
|
||||
if (missingSectorRendererSharedDocumentSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
|
|
@ -7832,7 +7847,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimeSectorMapDocument",
|
||||
"_sectorMap",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"AetheriaRuntimeSectorMapSession",
|
||||
".ObserveSectorMap()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7840,7 +7855,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimeCurrentZoneDocument",
|
||||
"_currentZone",
|
||||
".Reactive<AetheriaRuntimeCurrentZoneDocument>()",
|
||||
".Document<AetheriaRuntimeCurrentZoneDocument>().Reactive()",
|
||||
"AetheriaRuntimeCurrentZoneSession",
|
||||
".ObserveZone()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7848,7 +7863,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimeZoneDetailsDocument",
|
||||
"_zoneDetails",
|
||||
".Reactive<AetheriaRuntimeZoneDetailsDocument>(zoneIndex)",
|
||||
".Document<AetheriaRuntimeZoneDetailsDocument>(zoneIndex).Reactive()",
|
||||
"AetheriaRuntimeZoneDetailsSession",
|
||||
".ObserveZone(zoneIndex)");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7856,7 +7871,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimeCatalogSnapshot",
|
||||
"_catalog",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"AetheriaRuntimeCatalogSession",
|
||||
"ResolveClient().State.ObserveCatalog()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7864,7 +7879,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"SectorRenderer",
|
||||
"AetheriaRuntimePlayerSettingsDocument",
|
||||
"_playerSettings",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimePlayerSettingsSession",
|
||||
".ObservePlayer()");
|
||||
|
||||
|
|
@ -7895,7 +7910,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
var requiredZoneRendererSharedDocumentSymbols = new[]
|
||||
{
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeZoneContactsDocument> _zoneContacts",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeZoneContactsDocument>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeZoneContactsDocument>().Reactive()",
|
||||
"_zoneContacts?.Dispose()",
|
||||
"_zoneContacts?.Current",
|
||||
"private void OnDestroy()"
|
||||
|
|
@ -7915,7 +7930,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"ZoneRenderer",
|
||||
"AetheriaRuntimeZoneContactsDocument",
|
||||
"_zoneContacts",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeZoneContactsDocument>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeZoneContactsDocument>().Reactive()",
|
||||
"AetheriaRuntimeZoneContactsSession",
|
||||
"ResolveClient().State.ObserveZoneContacts()");
|
||||
RequireReactiveTypedDocumentAccess(
|
||||
|
|
@ -7923,7 +7938,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"ZoneRenderer",
|
||||
"AetheriaRuntimeCatalogSnapshot",
|
||||
"_catalog",
|
||||
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"AetheriaRuntimeCatalogSession",
|
||||
"ResolveClient().State.ObserveCatalog()");
|
||||
|
||||
|
|
@ -7960,11 +7975,8 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
|
|||
var requiredClientSymbols = new[]
|
||||
{
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>()",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(AetheriaRuntimeRtsViewportBounds viewport)",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(int entityOrZoneIndex)",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>("
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(int entityOrZoneIndex)"
|
||||
};
|
||||
var missingClientSymbols = requiredClientSymbols
|
||||
.Where(symbol => !clientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -7972,7 +7984,7 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
|
|||
if (missingClientSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must expose generic managed parameterized access for map, viewport, contacts, and current-entity documents: " +
|
||||
"AetheriaClientState must expose generic parameterized document handles for map, viewport, contacts, and current-entity documents: " +
|
||||
string.Join(", ", missingClientSymbols));
|
||||
}
|
||||
|
||||
|
|
@ -8033,13 +8045,20 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
|
|||
var requiredRenderSplatViewportSourceSymbols = new[]
|
||||
{
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeRenderSplatsViewportDocument> _renderSplatsViewport",
|
||||
".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)",
|
||||
"_renderSplatsViewport?.Current",
|
||||
"ClearViewportDocument()"
|
||||
};
|
||||
var missingRenderSplatViewportSourceSymbols = requiredRenderSplatViewportSourceSymbols
|
||||
.Where(symbol => !renderSplatViewportSource.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
if (!CompactSource(renderSplatViewportSource).Contains(
|
||||
".Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport).Reactive()",
|
||||
StringComparison.Ordinal))
|
||||
{
|
||||
missingRenderSplatViewportSourceSymbols = missingRenderSplatViewportSourceSymbols
|
||||
.Concat(new[] { ".Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport).Reactive()" })
|
||||
.ToArray();
|
||||
}
|
||||
if (missingRenderSplatViewportSourceSymbols.Length > 0 ||
|
||||
renderSplatViewportSource.Contains(".LatestRenderSplats(", StringComparison.Ordinal))
|
||||
{
|
||||
|
|
@ -8060,7 +8079,7 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
|
|||
"AetheriaUnityRenderSplatViewportSource",
|
||||
"AetheriaRuntimeRenderSplatsViewportDocument",
|
||||
"_renderSplatsViewport",
|
||||
".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)",
|
||||
".Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport).Reactive()",
|
||||
"AetheriaRuntimeRenderSplatsViewportSession",
|
||||
".ObserveRenderSplats(viewport)");
|
||||
|
||||
|
|
@ -8073,13 +8092,20 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
|
|||
var requiredZoneRendererViewportSymbols = new[]
|
||||
{
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeObjectsViewportDocument> _objectsViewport",
|
||||
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)",
|
||||
"_objectsViewport?.Current",
|
||||
"_objectsViewport?.Dispose()"
|
||||
};
|
||||
var missingZoneRendererViewportSymbols = requiredZoneRendererViewportSymbols
|
||||
.Where(symbol => !zoneRenderer.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
if (!CompactSource(zoneRenderer).Contains(
|
||||
".Document<AetheriaRuntimeObjectsViewportDocument>(viewportBounds).Reactive()",
|
||||
StringComparison.Ordinal))
|
||||
{
|
||||
missingZoneRendererViewportSymbols = missingZoneRendererViewportSymbols
|
||||
.Concat(new[] { ".Document<AetheriaRuntimeObjectsViewportDocument>(viewportBounds).Reactive()" })
|
||||
.ToArray();
|
||||
}
|
||||
if (missingZoneRendererViewportSymbols.Length > 0 ||
|
||||
zoneRenderer.Contains(".LatestObjects(", StringComparison.Ordinal))
|
||||
{
|
||||
|
|
@ -8100,7 +8126,7 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
|
|||
"ZoneRenderer",
|
||||
"AetheriaRuntimeObjectsViewportDocument",
|
||||
"_objectsViewport",
|
||||
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)",
|
||||
".Document<AetheriaRuntimeObjectsViewportDocument>(viewportBounds).Reactive()",
|
||||
"AetheriaRuntimeObjectsViewportSession",
|
||||
".ObserveObjects(viewportBounds)");
|
||||
|
||||
|
|
@ -8164,18 +8190,11 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
var requiredClientSymbols = new[]
|
||||
{
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>()",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public enum AetheriaClientEveSurface",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(AetheriaClientEveSurface surface)",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(AetheriaRuntimeRtsViewportBounds viewport)",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(int entityOrZoneIndex)",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(string seatId)",
|
||||
"public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>("
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(string seatId)"
|
||||
};
|
||||
var missingClientSymbols = requiredClientSymbols
|
||||
.Where(symbol => !clientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -8183,15 +8202,18 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
if (missingClientSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must expose managed document handles and reactive accessors for remaining domain documents: " +
|
||||
"AetheriaClientState must expose managed document handles for remaining domain documents: " +
|
||||
string.Join(", ", missingClientSymbols));
|
||||
}
|
||||
|
||||
if (clientState.Contains("public Task<TDocument> LatestAsync<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public TDocument Latest<TDocument>", StringComparison.Ordinal))
|
||||
clientState.Contains("public TDocument Latest<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public CultMeshReactiveDocument<TDocument> Reactive<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public Observable<TDocument> Watch<TDocument>", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must not reintroduce generic latest snapshot shortcuts; callers should sample explicit document or reactive handles.");
|
||||
"AetheriaClientState must not reintroduce generic latest/reactive/watch shortcuts; callers should sample explicit document handles or CultMesh reactive documents.");
|
||||
}
|
||||
|
||||
var forbiddenFixedReactiveWrappers = new[]
|
||||
|
|
@ -8298,7 +8320,7 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
if (survivingFixedReactiveWrappers.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must not reintroduce named fixed-document reactive wrappers; use Reactive<TDocument>() for managed typed document access: " +
|
||||
"AetheriaClientState must not reintroduce named fixed-document reactive wrappers; use Document<TDocument>() handles and CultMesh handle reactivity: " +
|
||||
string.Join(", ", survivingFixedReactiveWrappers));
|
||||
}
|
||||
|
||||
|
|
@ -8409,9 +8431,7 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
var compactClientState = CompactSource(clientState);
|
||||
var requiredStarbridgeParameterizedSymbols = new[]
|
||||
{
|
||||
"publicCultMeshDocumentHandle<TDocument>Document<TDocument>(stringseatId)",
|
||||
"publicTask<CultMeshReactiveDocument<TDocument>>ReactiveAsync<TDocument>(stringseatId,",
|
||||
"publicCultMeshReactiveDocument<TDocument>Reactive<TDocument>(stringseatId,"
|
||||
"publicCultMeshDocumentHandle<TDocument>Document<TDocument>(stringseatId)"
|
||||
};
|
||||
var missingStarbridgeParameterizedSymbols = requiredStarbridgeParameterizedSymbols
|
||||
.Where(symbol => !compactClientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -8573,7 +8593,7 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
}
|
||||
|
||||
if (!checkedSources["StarbridgePlayerSeatDocumentTests.cs"].Contains(
|
||||
".Reactive<AetheriaRuntimeStarbridgePlayerSeatDocument>(seat.SeatId)",
|
||||
".Document<AetheriaRuntimeStarbridgePlayerSeatDocument>(seat.SeatId).Reactive()",
|
||||
StringComparison.Ordinal) ||
|
||||
!checkedSources["StarbridgePlayerSeatDocumentTests.cs"].Contains(
|
||||
".Document<AetheriaRuntimeStarbridgePlayerSeatDocument>(seat.SeatId)",
|
||||
|
|
@ -9137,9 +9157,9 @@ static void RequireClientTargetBootAuthority(string root)
|
|||
"stateBoot.StateFileExists",
|
||||
"AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
".Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"runtimeCatalogDocument.Current",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"sectorMapDocument.Current",
|
||||
"new ItemManager(",
|
||||
"new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog)",
|
||||
|
|
@ -9197,7 +9217,7 @@ static void RequireClientTargetBootAuthority(string root)
|
|||
"ResolveSectorMap(AetheriaRuntimeStateBootReport stateBoot)",
|
||||
"AetheriaClient",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"ResolveVerseHostSettings(AetheriaRuntimeStateBootReport stateBoot)",
|
||||
"AetheriaState.At(AetheriaUnityRuntimePaths.GameDataDirectory)",
|
||||
".ClientTarget",
|
||||
|
|
@ -11804,11 +11824,11 @@ static void RequireAetheriaRuntimeVerseClientContract(string root)
|
|||
"AetheriaRuntimeLoadoutTemplatesDocument",
|
||||
"ProjectStarbridgeSummaryAsync",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument>? managedDaemonFrame = null;",
|
||||
"managedDaemonFrame = state.Reactive<AetheriaRuntimeDaemonFrameDocument>();",
|
||||
"managedCatalog = state.Reactive<AetheriaRuntimeCatalogSnapshot>();",
|
||||
"managedLoadoutTemplates = state.Reactive<AetheriaRuntimeLoadoutTemplatesDocument>();",
|
||||
"managedStarbridgeScenario = state.Reactive<AetheriaRuntimeStarbridgeScenarioDocument>();",
|
||||
"managedStarbridgeSession = state.Reactive<AetheriaRuntimeStarbridgeSessionDocument>();",
|
||||
"managedDaemonFrame = state.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();",
|
||||
"managedCatalog = state.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();",
|
||||
"managedLoadoutTemplates = state.Document<AetheriaRuntimeLoadoutTemplatesDocument>().Reactive();",
|
||||
"managedStarbridgeScenario = state.Document<AetheriaRuntimeStarbridgeScenarioDocument>().Reactive();",
|
||||
"managedStarbridgeSession = state.Document<AetheriaRuntimeStarbridgeSessionDocument>().Reactive();",
|
||||
"AetheriaRuntimeDaemonFrameDocument RequireManagedFrame()",
|
||||
"RequireManagedFrame()",
|
||||
"RequireManagedCatalog()",
|
||||
|
|
@ -11973,10 +11993,10 @@ static void RequireAetheriaRuntimeVerseClientContract(string root)
|
|||
"CultMeshReactiveDocument<AetheriaRuntimeDaemonHealthDocument>? _eveStateRefHealth",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeDaemonCommandBoundaryDocument>? _eveStateRefCommandBoundary",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot>? _eveStateRefCatalog",
|
||||
"_eveStateRefFrame ??= Reactive<AetheriaRuntimeDaemonFrameDocument>()",
|
||||
"_eveStateRefHealth ??= Reactive<AetheriaRuntimeDaemonHealthDocument>()",
|
||||
"_eveStateRefCommandBoundary ??= Reactive<AetheriaRuntimeDaemonCommandBoundaryDocument>()",
|
||||
"_eveStateRefCatalog ??= Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
"_eveStateRefFrame ??= Document<AetheriaRuntimeDaemonFrameDocument>().Reactive()",
|
||||
"_eveStateRefHealth ??= Document<AetheriaRuntimeDaemonHealthDocument>().Reactive()",
|
||||
"_eveStateRefCommandBoundary ??= Document<AetheriaRuntimeDaemonCommandBoundaryDocument>().Reactive()",
|
||||
"_eveStateRefCatalog ??= Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"() => _eveStateRefFrame.Current",
|
||||
"() => _eveStateRefHealth.Current",
|
||||
"() => _eveStateRefCommandBoundary.Current",
|
||||
|
|
@ -12750,7 +12770,7 @@ static void RequireMainMenuVerseHostProjection(string root)
|
|||
var requiredMainMenuSymbols = new[]
|
||||
{
|
||||
"ResolveVerseHostSettings(AetheriaRuntimeStateBootReport stateBoot)",
|
||||
".Reactive<AetheriaRuntimeVerseHostSettingsDocument>()",
|
||||
".Document<AetheriaRuntimeVerseHostSettingsDocument>().Reactive()",
|
||||
"AetheriaRuntimeMainMenuSurfaceBuilder.ProjectRoot(",
|
||||
"AetheriaRuntimeMainMenuSurfaceBuilder.BuildRoot("
|
||||
};
|
||||
|
|
@ -12883,7 +12903,7 @@ static void RequireMainMenuContinueRunState(string root)
|
|||
"ResolveSectorMap",
|
||||
"AetheriaClient",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"ContinueGame()",
|
||||
"SceneManager.LoadScene(\"ARPG\")"
|
||||
};
|
||||
|
|
@ -13218,7 +13238,7 @@ static void RequireMainMenuContinueRunState(string root)
|
|||
"AetheriaRuntimeZoneContactRow",
|
||||
"AetheriaRuntimeZoneTargetRow",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeZoneContactsDocument>()",
|
||||
".Document<AetheriaRuntimeZoneContactsDocument>().Reactive()",
|
||||
"_zoneContacts?.Current",
|
||||
"_zoneContacts?.Dispose()",
|
||||
"_entityIndex.TryResolveEntityByDaemonIndex(targetEntityIndex, out var targetEntity)"
|
||||
|
|
@ -13268,9 +13288,9 @@ static void RequireMainMenuContinueRunState(string root)
|
|||
"CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeStationRefitDocument> _stationRefit",
|
||||
"AetheriaRuntimeObservedDockingState.TryCreateCurrent(",
|
||||
"state.Reactive<AetheriaRuntimeCurrentEntityDocument>()",
|
||||
"state.Reactive<AetheriaRuntimeCurrentDockingDocument>()",
|
||||
"state.Reactive<AetheriaRuntimeStationRefitDocument>()",
|
||||
"state.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive()",
|
||||
"state.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive()",
|
||||
"state.Document<AetheriaRuntimeStationRefitDocument>().Reactive()",
|
||||
"public bool IsEntityUndocked(Entity entity)",
|
||||
"public bool TryResolveDockingBay(",
|
||||
"out AetheriaRuntimeCurrentDockingDocument docking",
|
||||
|
|
@ -14240,7 +14260,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root)
|
|||
"AetheriaRuntimeZoneContactRow",
|
||||
"AetheriaRuntimeZoneTargetRow",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeZoneContactsDocument>()",
|
||||
".Document<AetheriaRuntimeZoneContactsDocument>().Reactive()",
|
||||
"_zoneContacts?.Current",
|
||||
"_zoneContacts?.Dispose()",
|
||||
"_entityIndex.TryResolveEntityByDaemonIndex(targetEntityIndex, out var targetEntity)"
|
||||
|
|
@ -14375,22 +14395,21 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root)
|
|||
"Map and sector UI must read current-zone identity from the daemon-observed run, not Unity's mirrored Zone hierarchy.");
|
||||
}
|
||||
|
||||
var compactMapRenderer = CompactSource(mapRenderer);
|
||||
var compactSectorRenderer = CompactSource(sectorRenderer);
|
||||
var compactSectorMap = CompactSource(sectorMap);
|
||||
if (!mapRenderer.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) ||
|
||||
!mapRenderer.Contains(".Viewports", StringComparison.Ordinal) ||
|
||||
!mapRenderer.Contains(".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewport)", StringComparison.Ordinal) ||
|
||||
!mapRenderer.Contains(".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)", StringComparison.Ordinal) ||
|
||||
!mapRenderer.Contains(".Reactive<AetheriaRuntimePlayerSettingsDocument>()", StringComparison.Ordinal) ||
|
||||
!compactMapRenderer.Contains(".State.Document<AetheriaRuntimeObjectsViewportDocument>(viewport).Reactive()", StringComparison.Ordinal) ||
|
||||
!compactMapRenderer.Contains(".State.Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport).Reactive()", StringComparison.Ordinal) ||
|
||||
!compactMapRenderer.Contains(".State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains(".State", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains(".Reactive<AetheriaRuntimeSectorMapDocument>()", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains(".Details", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains(".Reactive<AetheriaRuntimeZoneDetailsDocument>(zoneIndex)", StringComparison.Ordinal) ||
|
||||
!compactSectorRenderer.Contains(".State.Document<AetheriaRuntimeSectorMapDocument>().Reactive()", StringComparison.Ordinal) ||
|
||||
!compactSectorRenderer.Contains(".State.Document<AetheriaRuntimeZoneDetailsDocument>(zoneIndex).Reactive()", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains(".Current", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains("ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains(".Reactive<AetheriaRuntimePlayerSettingsDocument>()", StringComparison.Ordinal) ||
|
||||
!compactSectorRenderer.Contains("ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive()", StringComparison.Ordinal) ||
|
||||
!compactSectorRenderer.Contains(".State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()", StringComparison.Ordinal) ||
|
||||
!sectorMap.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) ||
|
||||
!sectorMap.Contains(".State", StringComparison.Ordinal) ||
|
||||
!sectorMap.Contains(".Reactive<AetheriaRuntimeSectorMapDocument>()", StringComparison.Ordinal) ||
|
||||
!compactSectorMap.Contains(".State.Document<AetheriaRuntimeSectorMapDocument>().Reactive()", StringComparison.Ordinal) ||
|
||||
!sectorRenderer.Contains("AetheriaRuntimeZoneDetailsSurfaceBuilder.ProjectDaemonZone(", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
|
|
@ -14409,7 +14428,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root)
|
|||
"SectorMap",
|
||||
"AetheriaRuntimeSectorMapDocument",
|
||||
"_sectorMapDocument",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"AetheriaRuntimeSectorMapSession",
|
||||
".ObserveSectorMap()");
|
||||
|
||||
|
|
@ -15047,7 +15066,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root)
|
|||
"TryStartDaemonObservedGame",
|
||||
"ResolveSectorMap(stateBoot)",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"sectorMap.FrameId",
|
||||
"SceneManager.LoadScene(\"ARPG\")"
|
||||
};
|
||||
|
|
@ -15937,9 +15956,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
"AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory)",
|
||||
"AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
".Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"runtimeCatalogDocument.Current",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"sectorMapDocument.Current",
|
||||
"new ItemManager(",
|
||||
"new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog)",
|
||||
|
|
@ -15982,7 +16001,7 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
"RuntimeClients[cacheKey] = runtimeClient",
|
||||
"AetheriaClient",
|
||||
".State",
|
||||
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
|
||||
".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()",
|
||||
"_playerSettingsDocument.Current",
|
||||
"_playerSettingsDocument?.Dispose()",
|
||||
"OpenAsync(",
|
||||
|
|
@ -16140,9 +16159,10 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
{
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>()",
|
||||
"public ICultMeshDocumentHandle DocumentBySchema(string schemaVersion)",
|
||||
"public Observable<TDocument> Watch<TDocument>()",
|
||||
"public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>("
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(AetheriaClientEveSurface surface)",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(AetheriaRuntimeRtsViewportBounds viewport)",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(int entityOrZoneIndex)",
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(string seatId)"
|
||||
};
|
||||
var missingManagedStateAccessSymbols = requiredManagedStateAccessSymbols
|
||||
.Where(symbol => !aetheriaClientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -16150,15 +16170,18 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
if (missingManagedStateAccessSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must expose direct managed typed document access instead of AetheriaClient forwarding shortcuts or per-document session wrappers: " +
|
||||
"AetheriaClientState must expose direct typed document handles instead of AetheriaClient forwarding shortcuts or per-document session wrappers: " +
|
||||
string.Join(", ", missingManagedStateAccessSymbols));
|
||||
}
|
||||
|
||||
if (aetheriaClientState.Contains("public Task<TDocument> LatestAsync<TDocument>", StringComparison.Ordinal) ||
|
||||
aetheriaClientState.Contains("public TDocument Latest<TDocument>", StringComparison.Ordinal))
|
||||
aetheriaClientState.Contains("public TDocument Latest<TDocument>", StringComparison.Ordinal) ||
|
||||
aetheriaClientState.Contains("public Observable<TDocument> Watch<TDocument>", StringComparison.Ordinal) ||
|
||||
aetheriaClientState.Contains("public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>", StringComparison.Ordinal) ||
|
||||
aetheriaClientState.Contains("public CultMeshReactiveDocument<TDocument> Reactive<TDocument>", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState still exposes generic latest snapshot shortcuts instead of direct document/reactive handles.");
|
||||
"AetheriaClientState still exposes generic latest/reactive/watch shortcuts instead of direct CultMesh document handles.");
|
||||
}
|
||||
|
||||
if (aetheriaClientState.Contains("public AetheriaRuntimeObservedDaemonState? CurrentObservedDaemon(", StringComparison.Ordinal) ||
|
||||
|
|
@ -16173,9 +16196,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
"private CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument>? _observedFrame;",
|
||||
"private CultMeshReactiveDocument<AetheriaRuntimeDaemonSoaViewDocument>? _observedSoaView;",
|
||||
"private CultMeshReactiveDocument<AetheriaRuntimeZoneRenderDocument>? _observedZoneRender;",
|
||||
"_observedFrame ??= State.Reactive<AetheriaRuntimeDaemonFrameDocument>();",
|
||||
"_observedSoaView ??= State.Reactive<AetheriaRuntimeDaemonSoaViewDocument>();",
|
||||
"_observedZoneRender ??= State.Reactive<AetheriaRuntimeZoneRenderDocument>();",
|
||||
"_observedFrame ??= State.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();",
|
||||
"_observedSoaView ??= State.Document<AetheriaRuntimeDaemonSoaViewDocument>().Reactive();",
|
||||
"_observedZoneRender ??= State.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();",
|
||||
"AetheriaRuntimeObservedDaemonState.TryCreateCurrent("
|
||||
};
|
||||
var missingManagedObservedDaemonSymbols = requiredManagedObservedDaemonSymbols
|
||||
|
|
@ -16189,9 +16212,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
}
|
||||
|
||||
if (!daemonRuntimeDocumentTests.Contains("ManagedStateSamplesCurrentObservedDaemonFromReactiveDocuments()", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedFrame = client.State.Reactive<AetheriaRuntimeDaemonFrameDocument>();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedSoaView = client.State.Reactive<AetheriaRuntimeDaemonSoaViewDocument>();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedZoneRender = client.State.Reactive<AetheriaRuntimeZoneRenderDocument>();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedFrame = client.State.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedSoaView = client.State.Document<AetheriaRuntimeDaemonSoaViewDocument>().Reactive();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedZoneRender = client.State.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("AetheriaRuntimeObservedDaemonState.TryCreateCurrent(", StringComparison.Ordinal) ||
|
||||
daemonRuntimeDocumentTests.Contains("client.State.CurrentObservedDaemon()", StringComparison.Ordinal))
|
||||
{
|
||||
|
|
@ -16414,9 +16437,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
!daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument> _daemonFrame", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeDaemonSoaViewDocument> _daemonSoaView", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeZoneRenderDocument> _zoneRender", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_daemonFrame ??= state.Reactive<AetheriaRuntimeDaemonFrameDocument>();", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_daemonFrame ??= state.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_daemonSoaView ??= TryReactive<AetheriaRuntimeDaemonSoaViewDocument>(state);", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_zoneRender ??= state.Reactive<AetheriaRuntimeZoneRenderDocument>();", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_zoneRender ??= state.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("AetheriaRuntimeObservedDaemonState.TryCreateCurrent(", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("DisposeObservedDaemonDocuments()", StringComparison.Ordinal))
|
||||
{
|
||||
|
|
@ -16448,8 +16471,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(".Reactive<AetheriaRuntimeSectorMapDocument>()", StringComparison.Ordinal) ||
|
||||
!mainMenu.Contains(".Reactive<AetheriaRuntimePlayerSettingsDocument>()", StringComparison.Ordinal))
|
||||
!mainMenu.Contains(".Document<AetheriaRuntimeSectorMapDocument>().Reactive()", StringComparison.Ordinal) ||
|
||||
!mainMenu.Contains(".Document<AetheriaRuntimePlayerSettingsDocument>().Reactive()", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"MainMenu no longer routes sector-map lookup through the shared Aetheria client facade.");
|
||||
|
|
@ -16476,9 +16499,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
|
||||
var requiredGameplayBootSymbols = new[]
|
||||
{
|
||||
".Reactive<AetheriaRuntimeCatalogSnapshot>()",
|
||||
".Document<AetheriaRuntimeCatalogSnapshot>().Reactive()",
|
||||
"runtimeCatalogDocument.Current",
|
||||
".Reactive<AetheriaRuntimeSectorMapDocument>()",
|
||||
".Document<AetheriaRuntimeSectorMapDocument>().Reactive()",
|
||||
"sectorMapDocument.Current",
|
||||
"Galaxy.ProjectObservedSectorMap(",
|
||||
"sectorMap.IsTutorial",
|
||||
|
|
@ -17318,8 +17341,8 @@ static void RequireInventoryDoubleClickTransferRequestAuthority(string root)
|
|||
"TryResolveTypedInventoryRows(",
|
||||
"TryValidateTypedCargoSlot(",
|
||||
"TryValidateTypedEquipmentSlot(",
|
||||
".Details",
|
||||
".Reactive<AetheriaRuntimeInventoryDocument>(entityIndex)",
|
||||
".Document<AetheriaRuntimeInventoryDocument>(entityIndex)",
|
||||
".Reactive()",
|
||||
"origin.Cargo.TryGetValue(item, out var originPosition)",
|
||||
"SourceIndex == cargoIndex",
|
||||
"SourceIndex == equipmentIndex",
|
||||
|
|
@ -17866,7 +17889,7 @@ static void RequireInventoryLoadoutSaveRequestAuthority(string root)
|
|||
"CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument> _loadoutFrame",
|
||||
"ProjectLoadoutTemplate(targetEntityKey)",
|
||||
"AetheriaRuntimeLoadoutSnapshotProjector.ProjectLoadoutTemplate(",
|
||||
".Reactive<AetheriaRuntimeDaemonFrameDocument>()",
|
||||
".Document<AetheriaRuntimeDaemonFrameDocument>().Reactive()",
|
||||
"_loadoutFrame?.Dispose()",
|
||||
".Ui.SaveLoadoutTemplateAsync(loadout, \"unity-inventory\")"
|
||||
};
|
||||
|
|
@ -17892,7 +17915,7 @@ static void RequireInventoryLoadoutSaveRequestAuthority(string root)
|
|||
"InventoryPanel",
|
||||
"AetheriaRuntimeDaemonFrameDocument",
|
||||
"_loadoutFrame",
|
||||
".Reactive<AetheriaRuntimeDaemonFrameDocument>()",
|
||||
".Document<AetheriaRuntimeDaemonFrameDocument>().Reactive()",
|
||||
"AetheriaRuntimeDaemonFrameSession",
|
||||
".ObserveDaemonFrame()");
|
||||
|
||||
|
|
@ -17925,7 +17948,7 @@ static void RequireInventoryLoadoutSaveRequestAuthority(string root)
|
|||
|
||||
if (loadoutSnapshotProjector.Contains("ProjectLoadoutTemplateAsync(", StringComparison.Ordinal) ||
|
||||
loadoutSnapshotProjector.Contains("AetheriaClientState state", StringComparison.Ordinal) ||
|
||||
loadoutSnapshotProjector.Contains(".Reactive<AetheriaRuntimeDaemonFrameDocument>()", StringComparison.Ordinal) ||
|
||||
loadoutSnapshotProjector.Contains(".Document<AetheriaRuntimeDaemonFrameDocument>().Reactive()", StringComparison.Ordinal) ||
|
||||
loadoutSnapshotProjector.Contains("frame.Current?.Run", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
|
|
@ -18374,16 +18397,24 @@ static void RequireReactiveTypedDocumentAccess(
|
|||
string forbiddenSessionType,
|
||||
string forbiddenObserveAccessor)
|
||||
{
|
||||
var compactSource = CompactSource(source);
|
||||
var compactReactiveAccessor = CompactSource(reactiveAccessor);
|
||||
var requiredSymbols = new[]
|
||||
{
|
||||
$"CultMeshReactiveDocument<{documentType}> {fieldName}",
|
||||
reactiveAccessor,
|
||||
$"{fieldName}?.Current",
|
||||
$"{fieldName}?.Dispose()"
|
||||
};
|
||||
var missingSymbols = requiredSymbols
|
||||
.Where(symbol => !source.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
if (!string.IsNullOrWhiteSpace(compactReactiveAccessor) &&
|
||||
!compactSource.Contains(compactReactiveAccessor, StringComparison.Ordinal))
|
||||
{
|
||||
missingSymbols = missingSymbols
|
||||
.Concat(new[] { reactiveAccessor })
|
||||
.ToArray();
|
||||
}
|
||||
if (missingSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public abstract class ActionBarBinding : IDisposable
|
|||
|
||||
try
|
||||
{
|
||||
_catalog ??= Client.State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
_catalog ??= Client.State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
return _catalog?.Current?.FindItem(item, x => x.ItemKey);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
|
|
@ -131,9 +131,9 @@ public sealed class AetheriaDaemonObserver : MonoBehaviour
|
|||
return;
|
||||
}
|
||||
|
||||
_daemonFrame ??= state.Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
_daemonFrame ??= state.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
_daemonSoaView ??= TryReactive<AetheriaRuntimeDaemonSoaViewDocument>(state);
|
||||
_zoneRender ??= state.Reactive<AetheriaRuntimeZoneRenderDocument>();
|
||||
_zoneRender ??= state.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();
|
||||
}
|
||||
|
||||
private static CultMeshReactiveDocument<TDocument> TryReactive<TDocument>(
|
||||
|
|
@ -142,7 +142,7 @@ public sealed class AetheriaDaemonObserver : MonoBehaviour
|
|||
{
|
||||
try
|
||||
{
|
||||
return state.Reactive<TDocument>();
|
||||
return state.Document<TDocument>().Reactive();
|
||||
}
|
||||
catch (System.Collections.Generic.KeyNotFoundException)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,11 +37,11 @@ public sealed class AetheriaUnityGameplayBootShell
|
|||
|
||||
var aetheria = AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)
|
||||
.State;
|
||||
using var runtimeCatalogDocument = aetheria.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
using var runtimeCatalogDocument = aetheria.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
var runtimeCatalog = runtimeCatalogDocument.Current;
|
||||
if (runtimeCatalog == null)
|
||||
throw new InvalidOperationException("Aetheria typed runtime catalog is required before gameplay boot.");
|
||||
using var sectorMapDocument = aetheria.Reactive<AetheriaRuntimeSectorMapDocument>();
|
||||
using var sectorMapDocument = aetheria.Document<AetheriaRuntimeSectorMapDocument>().Reactive();
|
||||
var sectorMap = sectorMapDocument.Current;
|
||||
if (sectorMap == null)
|
||||
throw new InvalidOperationException("Aetheria typed sector map is required before gameplay boot.");
|
||||
|
|
|
|||
|
|
@ -193,9 +193,9 @@ public sealed class AetheriaUnityObservedDockingIndex : IDisposable
|
|||
if (state == null)
|
||||
return;
|
||||
|
||||
_currentEntity ??= state.Reactive<AetheriaRuntimeCurrentEntityDocument>();
|
||||
_currentDocking ??= state.Reactive<AetheriaRuntimeCurrentDockingDocument>();
|
||||
_stationRefit ??= state.Reactive<AetheriaRuntimeStationRefitDocument>();
|
||||
_currentEntity ??= state.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive();
|
||||
_currentDocking ??= state.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive();
|
||||
_stationRefit ??= state.Document<AetheriaRuntimeStationRefitDocument>().Reactive();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
|
|
|
|||
|
|
@ -99,8 +99,7 @@ public sealed class AetheriaUnityObservedTargetQuery : IDisposable
|
|||
try
|
||||
{
|
||||
_zoneContacts = _resolveClient()
|
||||
?.State
|
||||
.Reactive<AetheriaRuntimeZoneContactsDocument>();
|
||||
?.State.Document<AetheriaRuntimeZoneContactsDocument>().Reactive();
|
||||
return _zoneContacts?.Current;
|
||||
}
|
||||
catch
|
||||
|
|
|
|||
|
|
@ -118,8 +118,8 @@ public sealed class AetheriaUnityRenderSplatViewportSource : MonoBehaviour
|
|||
{
|
||||
var nextRenderSplatsViewport = ResolveClient()
|
||||
.State
|
||||
.Viewports
|
||||
.Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport);
|
||||
.Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)
|
||||
.Reactive();
|
||||
ClearViewportDocument();
|
||||
_viewport = viewport;
|
||||
_renderSplatsViewport = nextRenderSplatsViewport;
|
||||
|
|
|
|||
|
|
@ -95,8 +95,7 @@ public static class AetheriaUnityRuntimeClientProvider
|
|||
try
|
||||
{
|
||||
_playerSettingsDocument ??= ResolveClient(AetheriaUnityRuntimePaths.RuntimeStateFilePath)
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
|
||||
var stored = _playerSettingsDocument.Current;
|
||||
if (stored == null)
|
||||
|
|
|
|||
|
|
@ -197,39 +197,39 @@ public class DaemonRuntimeDocumentTests
|
|||
.GetAwaiter()
|
||||
.GetResult();
|
||||
using var currentEntityReactive = client.State
|
||||
.ReactiveAsync<AetheriaRuntimeCurrentEntityDocument>()
|
||||
.Document<AetheriaRuntimeCurrentEntityDocument>()
|
||||
.ReactiveAsync()
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
using var zoneRenderReactive = client.State
|
||||
.Reactive<AetheriaRuntimeZoneRenderDocument>();
|
||||
using var zoneRenderReactive = client.State.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();
|
||||
var observedAuthoritativeFrame = ReadLatest(client.State.Document<AetheriaRuntimeDaemonFrameDocument>());
|
||||
using var catalogReactive = client.State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
using var daemonFrameReactive = client.State.Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
using var daemonSoaViewReactive = client.State.Reactive<AetheriaRuntimeDaemonSoaViewDocument>();
|
||||
using var catalogReactive = client.State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
using var daemonFrameReactive = client.State.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
using var daemonSoaViewReactive = client.State.Document<AetheriaRuntimeDaemonSoaViewDocument>().Reactive();
|
||||
Assert.IsTrue(AetheriaRuntimeObservedDaemonState.TryCreateCurrent(
|
||||
daemonFrameReactive,
|
||||
daemonSoaViewReactive,
|
||||
zoneRenderReactive,
|
||||
out var observed));
|
||||
using var loadoutTemplatesReactive = client.State.Reactive<AetheriaRuntimeLoadoutTemplatesDocument>();
|
||||
using var sectorMapReactive = client.State.Reactive<AetheriaRuntimeSectorMapDocument>();
|
||||
using var playerSettingsReactive = client.State.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
using var verseHostSettingsReactive = client.State.Reactive<AetheriaRuntimeVerseHostSettingsDocument>();
|
||||
using var zoneContactsReactive = client.State.Reactive<AetheriaRuntimeZoneContactsDocument>();
|
||||
using var currentZoneReactive = client.State.Reactive<AetheriaRuntimeCurrentZoneDocument>();
|
||||
using var currentEntityDocumentReactive = client.State.Reactive<AetheriaRuntimeCurrentEntityDocument>();
|
||||
using var currentDockingReactive = client.State.Reactive<AetheriaRuntimeCurrentDockingDocument>();
|
||||
using var stationRefitReactive = client.State.Reactive<AetheriaRuntimeStationRefitDocument>();
|
||||
using var zoneDetailsReactive = client.State.Reactive<AetheriaRuntimeZoneDetailsDocument>(0);
|
||||
using var selectedObjectReactive = client.State.Reactive<AetheriaRuntimeSelectedObjectDocument>(0);
|
||||
using var inventoryReactive = client.State.Reactive<AetheriaRuntimeInventoryDocument>(0);
|
||||
using var mapViewportReactive = client.State.Reactive<AetheriaRuntimeRtsViewportDocument>(viewport);
|
||||
using var objectsViewportReactive = client.State.Reactive<AetheriaRuntimeObjectsViewportDocument>(viewport);
|
||||
using var gravityViewportReactive = client.State.Reactive<AetheriaRuntimeGravityViewportDocument>(viewport);
|
||||
using var renderSplatsViewportReactive = client.State.Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport);
|
||||
using var playerHudCatalog = client.State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
using var playerHudSettings = client.State.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
using var playerHudEntity = client.State.Reactive<AetheriaRuntimeCurrentEntityDocument>();
|
||||
using var loadoutTemplatesReactive = client.State.Document<AetheriaRuntimeLoadoutTemplatesDocument>().Reactive();
|
||||
using var sectorMapReactive = client.State.Document<AetheriaRuntimeSectorMapDocument>().Reactive();
|
||||
using var playerSettingsReactive = client.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
using var verseHostSettingsReactive = client.State.Document<AetheriaRuntimeVerseHostSettingsDocument>().Reactive();
|
||||
using var zoneContactsReactive = client.State.Document<AetheriaRuntimeZoneContactsDocument>().Reactive();
|
||||
using var currentZoneReactive = client.State.Document<AetheriaRuntimeCurrentZoneDocument>().Reactive();
|
||||
using var currentEntityDocumentReactive = client.State.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive();
|
||||
using var currentDockingReactive = client.State.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive();
|
||||
using var stationRefitReactive = client.State.Document<AetheriaRuntimeStationRefitDocument>().Reactive();
|
||||
using var zoneDetailsReactive = client.State.Document<AetheriaRuntimeZoneDetailsDocument>(0).Reactive();
|
||||
using var selectedObjectReactive = client.State.Document<AetheriaRuntimeSelectedObjectDocument>(0).Reactive();
|
||||
using var inventoryReactive = client.State.Document<AetheriaRuntimeInventoryDocument>(0).Reactive();
|
||||
using var mapViewportReactive = client.State.Document<AetheriaRuntimeRtsViewportDocument>(viewport).Reactive();
|
||||
using var objectsViewportReactive = client.State.Document<AetheriaRuntimeObjectsViewportDocument>(viewport).Reactive();
|
||||
using var gravityViewportReactive = client.State.Document<AetheriaRuntimeGravityViewportDocument>(viewport).Reactive();
|
||||
using var renderSplatsViewportReactive = client.State.Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport).Reactive();
|
||||
using var playerHudCatalog = client.State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
using var playerHudSettings = client.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
using var playerHudEntity = client.State.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive();
|
||||
var gameSurface = ReadLatest(client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Game));
|
||||
var gameTuiSurface = ReadLatest(client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.GameTui));
|
||||
var editorSurface = ReadLatest(client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Editor));
|
||||
|
|
@ -245,10 +245,10 @@ public class DaemonRuntimeDocumentTests
|
|||
currentDockingReactive,
|
||||
stationRefitReactive,
|
||||
out var observedDocking));
|
||||
using var reactiveGameSurface = client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Game);
|
||||
using var reactiveGameTuiSurface = client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.GameTui);
|
||||
using var reactiveEditorSurface = client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Editor);
|
||||
using var reactiveEditorTuiSurface = client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.EditorTui);
|
||||
using var reactiveGameSurface = client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Game).Reactive();
|
||||
using var reactiveGameTuiSurface = client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.GameTui).Reactive();
|
||||
using var reactiveEditorSurface = client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Editor).Reactive();
|
||||
using var reactiveEditorTuiSurface = client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.EditorTui).Reactive();
|
||||
|
||||
Assert.AreEqual("aetheria.current.entity", client.State.CurrentEntity.DocumentId);
|
||||
Assert.AreSame(client.State.CurrentEntity, client.State.Document<AetheriaRuntimeCurrentEntityDocument>());
|
||||
|
|
@ -2221,9 +2221,9 @@ public class DaemonRuntimeDocumentTests
|
|||
.OpenAsync(statePath, "unity-observer-test", pullOnOpen: true)
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
using var observedFrame = client.State.Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
using var observedSoaView = client.State.Reactive<AetheriaRuntimeDaemonSoaViewDocument>();
|
||||
using var observedZoneRender = client.State.Reactive<AetheriaRuntimeZoneRenderDocument>();
|
||||
using var observedFrame = client.State.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
using var observedSoaView = client.State.Document<AetheriaRuntimeDaemonSoaViewDocument>().Reactive();
|
||||
using var observedZoneRender = client.State.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();
|
||||
Assert.IsTrue(AetheriaRuntimeObservedDaemonState.TryCreateCurrent(
|
||||
observedFrame,
|
||||
observedSoaView,
|
||||
|
|
@ -2279,9 +2279,9 @@ public class DaemonRuntimeDocumentTests
|
|||
.OpenAsync(statePath, "unity-reactive-observer-test", pullOnOpen: true)
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
using var observedFrame = client.State.Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
using var observedSoaView = client.State.Reactive<AetheriaRuntimeDaemonSoaViewDocument>();
|
||||
using var observedZoneRender = client.State.Reactive<AetheriaRuntimeZoneRenderDocument>();
|
||||
using var observedFrame = client.State.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
using var observedSoaView = client.State.Document<AetheriaRuntimeDaemonSoaViewDocument>().Reactive();
|
||||
using var observedZoneRender = client.State.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();
|
||||
var observed = AetheriaRuntimeObservedDaemonState.TryCreateCurrent(
|
||||
observedFrame,
|
||||
observedSoaView,
|
||||
|
|
@ -2326,9 +2326,9 @@ public class DaemonRuntimeDocumentTests
|
|||
.OpenAsync(statePath, "unity-frame-only-observer-test", pullOnOpen: true)
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
using var observedFrame = client.State.Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
using var observedSoaView = client.State.Reactive<AetheriaRuntimeDaemonSoaViewDocument>();
|
||||
using var observedZoneRender = client.State.Reactive<AetheriaRuntimeZoneRenderDocument>();
|
||||
using var observedFrame = client.State.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
using var observedSoaView = client.State.Document<AetheriaRuntimeDaemonSoaViewDocument>().Reactive();
|
||||
using var observedZoneRender = client.State.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();
|
||||
Assert.IsTrue(AetheriaRuntimeObservedDaemonState.TryCreateCurrent(
|
||||
observedFrame,
|
||||
observedSoaView,
|
||||
|
|
|
|||
|
|
@ -82,8 +82,7 @@ public class StarbridgePlayerSeatDocumentTests
|
|||
var handle = client.Document<AetheriaRuntimeStarbridgePlayerSeatDocument>(
|
||||
AetheriaRuntimeVerseRecordKeys.StarbridgePlayerSeat(seat.SeatId));
|
||||
using var reactive = handle.Reactive();
|
||||
using var aetheriaSeat = client.State
|
||||
.Reactive<AetheriaRuntimeStarbridgePlayerSeatDocument>(seat.SeatId);
|
||||
using var aetheriaSeat = client.State.Document<AetheriaRuntimeStarbridgePlayerSeatDocument>(seat.SeatId).Reactive();
|
||||
|
||||
Assert.AreEqual("seat-support", handle.Latest().SeatId);
|
||||
Assert.AreEqual(
|
||||
|
|
|
|||
|
|
@ -326,7 +326,7 @@ public class SchematicDisplay : MonoBehaviour
|
|||
|
||||
try
|
||||
{
|
||||
_catalog = ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
_catalog = ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -342,7 +342,7 @@ public class SchematicDisplay : MonoBehaviour
|
|||
{
|
||||
try
|
||||
{
|
||||
_playerSettings = ResolveClient().State.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
_playerSettings = ResolveClient().State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -359,7 +359,7 @@ public class SchematicDisplay : MonoBehaviour
|
|||
{
|
||||
try
|
||||
{
|
||||
_currentEntity = ResolveClient().State.Reactive<AetheriaRuntimeCurrentEntityDocument>();
|
||||
_currentEntity = ResolveClient().State.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -393,8 +393,7 @@ public class InputDisplayLayout : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_playerSettings = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -151,8 +151,7 @@ public class MainMenu : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_sectorMap ??= ResolveClient(stateBoot)
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeSectorMapDocument>();
|
||||
.State.Document<AetheriaRuntimeSectorMapDocument>().Reactive();
|
||||
return _sectorMap?.Current;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -170,8 +169,7 @@ public class MainMenu : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_playerSettings ??= ResolveClient(stateBoot)
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
return _playerSettings?.Current;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -189,8 +187,7 @@ public class MainMenu : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_verseHostSettings ??= ResolveClient(stateBoot)
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeVerseHostSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimeVerseHostSettingsDocument>().Reactive();
|
||||
return _verseHostSettings?.Current;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
|
|
@ -965,8 +965,7 @@ public class InventoryMenu : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_currentEntity = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeCurrentEntityDocument>();
|
||||
.State.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -984,8 +983,7 @@ public class InventoryMenu : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_stationRefit = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeStationRefitDocument>();
|
||||
.State.Document<AetheriaRuntimeStationRefitDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1004,8 +1002,8 @@ public class InventoryMenu : MonoBehaviour
|
|||
{
|
||||
var nextInventory = ResolveClient()
|
||||
.State
|
||||
.Details
|
||||
.Reactive<AetheriaRuntimeInventoryDocument>(entityIndex);
|
||||
.Document<AetheriaRuntimeInventoryDocument>(entityIndex)
|
||||
.Reactive();
|
||||
_inventory?.Dispose();
|
||||
_inventoryEntityIndex = entityIndex;
|
||||
_inventory = nextInventory;
|
||||
|
|
@ -1077,7 +1075,7 @@ public class InventoryMenu : MonoBehaviour
|
|||
|
||||
try
|
||||
{
|
||||
_catalog = ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
_catalog = ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1095,8 +1093,7 @@ public class InventoryMenu : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_playerSettings = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1504,8 +1504,7 @@ private void Update()
|
|||
try
|
||||
{
|
||||
_currentEntity = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeCurrentEntityDocument>();
|
||||
.State.Document<AetheriaRuntimeCurrentEntityDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1523,8 +1522,7 @@ private void Update()
|
|||
try
|
||||
{
|
||||
_stationRefit = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeStationRefitDocument>();
|
||||
.State.Document<AetheriaRuntimeStationRefitDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1550,8 +1548,7 @@ private void Update()
|
|||
try
|
||||
{
|
||||
_loadoutFrame = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
.State.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1570,8 +1567,8 @@ private void Update()
|
|||
{
|
||||
var nextInventory = ResolveClient()
|
||||
.State
|
||||
.Details
|
||||
.Reactive<AetheriaRuntimeInventoryDocument>(entityIndex);
|
||||
.Document<AetheriaRuntimeInventoryDocument>(entityIndex)
|
||||
.Reactive();
|
||||
_inventory?.Dispose();
|
||||
_inventoryEntityIndex = entityIndex;
|
||||
_inventory = nextInventory;
|
||||
|
|
@ -1591,7 +1588,7 @@ private void Update()
|
|||
|
||||
try
|
||||
{
|
||||
_catalog = ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
_catalog = ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1609,8 +1606,7 @@ private void Update()
|
|||
try
|
||||
{
|
||||
_playerSettings = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -131,12 +131,12 @@ public class MapRenderer : MonoBehaviour
|
|||
ClearViewportCaches();
|
||||
_objectsViewport = client
|
||||
.State
|
||||
.Viewports
|
||||
.Reactive<AetheriaRuntimeObjectsViewportDocument>(viewport);
|
||||
.Document<AetheriaRuntimeObjectsViewportDocument>(viewport)
|
||||
.Reactive();
|
||||
_renderSplatsViewport = client
|
||||
.State
|
||||
.Viewports
|
||||
.Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport);
|
||||
.Document<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)
|
||||
.Reactive();
|
||||
|
||||
var objectsViewport = _objectsViewport?.Current;
|
||||
var zoneName = string.IsNullOrWhiteSpace(objectsViewport?.ZoneName)
|
||||
|
|
@ -319,8 +319,7 @@ public class MapRenderer : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_playerSettings ??= ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
return _playerSettings?.Current?.ShowAsteroidsInMinimap ?? false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ public class MenuPanel : MonoBehaviour
|
|||
docking = null;
|
||||
try
|
||||
{
|
||||
_currentDocking ??= ResolveClient().State.Reactive<AetheriaRuntimeCurrentDockingDocument>();
|
||||
_currentDocking ??= ResolveClient().State.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive();
|
||||
docking = _currentDocking.Current;
|
||||
return docking != null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -222,8 +222,7 @@ public class SectorMap : MonoBehaviour
|
|||
private void EnsureSectorMapLoaded()
|
||||
{
|
||||
_sectorMapDocument ??= ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeSectorMapDocument>();
|
||||
.State.Document<AetheriaRuntimeSectorMapDocument>().Reactive();
|
||||
_sectorMap = _sectorMapDocument?.Current;
|
||||
|
||||
if (_sectorMapLoaded)
|
||||
|
|
|
|||
|
|
@ -175,8 +175,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS
|
|||
try
|
||||
{
|
||||
_sectorMap ??= ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeSectorMapDocument>();
|
||||
.State.Document<AetheriaRuntimeSectorMapDocument>().Reactive();
|
||||
var sectorMap = _sectorMap?.Current;
|
||||
return (sectorMap?.Zones ?? Array.Empty<AetheriaRuntimeSectorMapZone>())
|
||||
.FirstOrDefault(zone => zone.ZoneIndex == zoneIndex);
|
||||
|
|
@ -205,8 +204,8 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS
|
|||
{
|
||||
var nextZoneDetails = ResolveClient()
|
||||
.State
|
||||
.Details
|
||||
.Reactive<AetheriaRuntimeZoneDetailsDocument>(zoneIndex);
|
||||
.Document<AetheriaRuntimeZoneDetailsDocument>(zoneIndex)
|
||||
.Reactive();
|
||||
_zoneDetails?.Dispose();
|
||||
_zoneDetailsIndex = zoneIndex;
|
||||
_zoneDetails = nextZoneDetails;
|
||||
|
|
@ -232,7 +231,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS
|
|||
|
||||
try
|
||||
{
|
||||
_catalog = ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
_catalog = ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -250,8 +249,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS
|
|||
try
|
||||
{
|
||||
_playerSettings = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -322,8 +320,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS
|
|||
try
|
||||
{
|
||||
_currentZone ??= ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimeCurrentZoneDocument>();
|
||||
.State.Document<AetheriaRuntimeCurrentZoneDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -518,7 +518,7 @@ public class TradeMenu : MonoBehaviour
|
|||
|
||||
try
|
||||
{
|
||||
_stationRefit = ResolveClient().State.Reactive<AetheriaRuntimeStationRefitDocument>();
|
||||
_stationRefit = ResolveClient().State.Document<AetheriaRuntimeStationRefitDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -533,7 +533,7 @@ public class TradeMenu : MonoBehaviour
|
|||
docking = null;
|
||||
try
|
||||
{
|
||||
_currentDocking ??= ResolveClient().State.Reactive<AetheriaRuntimeCurrentDockingDocument>();
|
||||
_currentDocking ??= ResolveClient().State.Document<AetheriaRuntimeCurrentDockingDocument>().Reactive();
|
||||
docking = _currentDocking.Current;
|
||||
return docking != null;
|
||||
}
|
||||
|
|
@ -627,7 +627,7 @@ public class TradeMenu : MonoBehaviour
|
|||
|
||||
try
|
||||
{
|
||||
_catalog = ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
_catalog = ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -645,8 +645,7 @@ public class TradeMenu : MonoBehaviour
|
|||
try
|
||||
{
|
||||
_playerSettings = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -102,8 +102,7 @@ public class VolumeCloudRenderer : EffectBase
|
|||
try
|
||||
{
|
||||
_playerSettings = ResolveClient()
|
||||
.State
|
||||
.Reactive<AetheriaRuntimePlayerSettingsDocument>();
|
||||
.State.Document<AetheriaRuntimePlayerSettingsDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1208,7 +1208,7 @@ public class ZoneRenderer : MonoBehaviour
|
|||
|
||||
try
|
||||
{
|
||||
_catalog = ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
_catalog = ResolveClient().State.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1225,7 +1225,7 @@ public class ZoneRenderer : MonoBehaviour
|
|||
|
||||
try
|
||||
{
|
||||
_zoneContacts = ResolveClient().State.Reactive<AetheriaRuntimeZoneContactsDocument>();
|
||||
_zoneContacts = ResolveClient().State.Document<AetheriaRuntimeZoneContactsDocument>().Reactive();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1245,8 +1245,8 @@ public class ZoneRenderer : MonoBehaviour
|
|||
{
|
||||
var nextObjectsViewport = ResolveClient()
|
||||
.State
|
||||
.Viewports
|
||||
.Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds);
|
||||
.Document<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)
|
||||
.Reactive();
|
||||
_objectsViewport?.Dispose();
|
||||
_objectsViewportBounds = viewportBounds;
|
||||
_objectsViewport = nextObjectsViewport;
|
||||
|
|
|
|||
|
|
@ -169,16 +169,16 @@ namespace GameCult.Aetheria.EveRuntime
|
|||
AetheriaClient client)
|
||||
{
|
||||
if (string.Equals(surfaceId, AetheriaRuntimeDaemonGameSurfaceBuilder.SurfaceId, StringComparison.Ordinal))
|
||||
return client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Game);
|
||||
return client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Game).Reactive();
|
||||
|
||||
if (string.Equals(surfaceId, AetheriaRuntimeDaemonGameSurfaceBuilder.TuiSurfaceId, StringComparison.Ordinal))
|
||||
return client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.GameTui);
|
||||
return client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.GameTui).Reactive();
|
||||
|
||||
if (string.Equals(surfaceId, AetheriaRuntimeDaemonEditorSurfaceBuilder.SurfaceId, StringComparison.Ordinal))
|
||||
return client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Editor);
|
||||
return client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Editor).Reactive();
|
||||
|
||||
if (string.Equals(surfaceId, AetheriaRuntimeDaemonEditorSurfaceBuilder.TuiSurfaceId, StringComparison.Ordinal))
|
||||
return client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.EditorTui);
|
||||
return client.State.Document<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.EditorTui).Reactive();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -182,9 +182,9 @@ namespace GameCult.Aetheria.State.Verse
|
|||
internal AetheriaRuntimeObservedDaemonState? CurrentObservedDaemon()
|
||||
{
|
||||
ThrowIfDisposed();
|
||||
_observedFrame ??= State.Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
_observedSoaView ??= State.Reactive<AetheriaRuntimeDaemonSoaViewDocument>();
|
||||
_observedZoneRender ??= State.Reactive<AetheriaRuntimeZoneRenderDocument>();
|
||||
_observedFrame ??= State.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
_observedSoaView ??= State.Document<AetheriaRuntimeDaemonSoaViewDocument>().Reactive();
|
||||
_observedZoneRender ??= State.Document<AetheriaRuntimeZoneRenderDocument>().Reactive();
|
||||
return AetheriaRuntimeObservedDaemonState.TryCreateCurrent(
|
||||
_observedFrame,
|
||||
_observedSoaView,
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using GameCult.Mesh;
|
||||
using R3;
|
||||
|
||||
#nullable enable
|
||||
|
||||
|
|
@ -225,22 +221,6 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return (CultMeshDocumentHandle<TDocument>)(object)document;
|
||||
}
|
||||
|
||||
public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(
|
||||
AetheriaClientEveSurface surface,
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>(surface).ReactiveAsync(options);
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(
|
||||
AetheriaClientEveSurface surface,
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>(surface).Reactive(options);
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<TDocument> Document<TDocument>(AetheriaRuntimeRtsViewportBounds viewport)
|
||||
where TDocument : class
|
||||
{
|
||||
|
|
@ -259,22 +239,6 @@ namespace GameCult.Aetheria.State.Verse
|
|||
$"Aetheria typed state does not expose a viewport document for {typeof(TDocument).FullName}.");
|
||||
}
|
||||
|
||||
public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(
|
||||
AetheriaRuntimeRtsViewportBounds viewport,
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>(viewport).ReactiveAsync(options);
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(
|
||||
AetheriaRuntimeRtsViewportBounds viewport,
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>(viewport).Reactive(options);
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<TDocument> Document<TDocument>(int entityOrZoneIndex)
|
||||
where TDocument : class
|
||||
{
|
||||
|
|
@ -289,22 +253,6 @@ namespace GameCult.Aetheria.State.Verse
|
|||
$"Aetheria typed state does not expose an indexed document for {typeof(TDocument).FullName}.");
|
||||
}
|
||||
|
||||
public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(
|
||||
int entityOrZoneIndex,
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>(entityOrZoneIndex).ReactiveAsync(options);
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(
|
||||
int entityOrZoneIndex,
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>(entityOrZoneIndex).Reactive(options);
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<TDocument> Document<TDocument>(string seatId)
|
||||
where TDocument : class
|
||||
{
|
||||
|
|
@ -317,63 +265,6 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return (CultMeshDocumentHandle<TDocument>)(object)_starbridgePlayerSeat(seatId);
|
||||
}
|
||||
|
||||
public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(
|
||||
string seatId,
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>(seatId).ReactiveAsync(options);
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(
|
||||
string seatId,
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>(seatId).Reactive(options);
|
||||
}
|
||||
|
||||
private CultMeshReactiveDocument<TDocument>? TryReactive<TDocument>(
|
||||
CultMeshReactiveDocumentOptions? options)
|
||||
where TDocument : class
|
||||
{
|
||||
try
|
||||
{
|
||||
return Reactive<TDocument>(options);
|
||||
}
|
||||
catch (KeyNotFoundException)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public Observable<TDocument> Watch<TDocument>()
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>().Watch();
|
||||
}
|
||||
|
||||
public IDisposable Watch<TDocument>(Action<TDocument> onNext)
|
||||
where TDocument : class
|
||||
{
|
||||
if (onNext == null) throw new ArgumentNullException(nameof(onNext));
|
||||
return Document<TDocument>().Watch(onNext);
|
||||
}
|
||||
|
||||
public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>().ReactiveAsync(options);
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
where TDocument : class
|
||||
{
|
||||
return Document<TDocument>().Reactive(options);
|
||||
}
|
||||
|
||||
public Func<string, string> CreateEveSurfaceStateRefResolver()
|
||||
{
|
||||
return CreateEveSurfaceCultMeshStateRefResolver().AsFunc();
|
||||
|
|
@ -381,10 +272,10 @@ namespace GameCult.Aetheria.State.Verse
|
|||
|
||||
public CultMeshStateRefResolver CreateEveSurfaceCultMeshStateRefResolver()
|
||||
{
|
||||
_eveStateRefFrame ??= Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
_eveStateRefHealth ??= Reactive<AetheriaRuntimeDaemonHealthDocument>();
|
||||
_eveStateRefCommandBoundary ??= Reactive<AetheriaRuntimeDaemonCommandBoundaryDocument>();
|
||||
_eveStateRefCatalog ??= Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
_eveStateRefFrame ??= Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
_eveStateRefHealth ??= Document<AetheriaRuntimeDaemonHealthDocument>().Reactive();
|
||||
_eveStateRefCommandBoundary ??= Document<AetheriaRuntimeDaemonCommandBoundaryDocument>().Reactive();
|
||||
_eveStateRefCatalog ??= Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
|
||||
return AetheriaRuntimeStateRefResolver.CreateEveSurfaceCultMeshStateRefResolver(
|
||||
() => _eveStateRefFrame.Current,
|
||||
|
|
|
|||
|
|
@ -497,11 +497,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
seatId => Document<AetheriaRuntimeStarbridgePlayerSeatDocument>(
|
||||
AetheriaRuntimeVerseRecordKeys.StarbridgePlayerSeat(seatId)));
|
||||
|
||||
managedDaemonFrame = state.Reactive<AetheriaRuntimeDaemonFrameDocument>();
|
||||
managedCatalog = state.Reactive<AetheriaRuntimeCatalogSnapshot>();
|
||||
managedLoadoutTemplates = state.Reactive<AetheriaRuntimeLoadoutTemplatesDocument>();
|
||||
managedStarbridgeScenario = state.Reactive<AetheriaRuntimeStarbridgeScenarioDocument>();
|
||||
managedStarbridgeSession = state.Reactive<AetheriaRuntimeStarbridgeSessionDocument>();
|
||||
managedDaemonFrame = state.Document<AetheriaRuntimeDaemonFrameDocument>().Reactive();
|
||||
managedCatalog = state.Document<AetheriaRuntimeCatalogSnapshot>().Reactive();
|
||||
managedLoadoutTemplates = state.Document<AetheriaRuntimeLoadoutTemplatesDocument>().Reactive();
|
||||
managedStarbridgeScenario = state.Document<AetheriaRuntimeStarbridgeScenarioDocument>().Reactive();
|
||||
managedStarbridgeSession = state.Document<AetheriaRuntimeStarbridgeSessionDocument>().Reactive();
|
||||
_managedDaemonFrame = managedDaemonFrame;
|
||||
_managedCatalog = managedCatalog;
|
||||
_managedLoadoutTemplates = managedLoadoutTemplates;
|
||||
|
|
|
|||
Loading…
Reference in a new issue