From d27e8ccee19076c11a584915dfdc9bd646b2019e Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Mon, 29 Jun 2026 06:35:20 +0100 Subject: [PATCH] Use provider-native observed docking access --- Aetheria.State.Verify/Program.cs | 22 +++++++++++-------- Assets/Scripts/Gameplay/ActionGameManager.cs | 4 +--- .../AetheriaUnityObservedDockingIndex.cs | 19 ++++++---------- Assets/Scripts/UI/Menu/InventoryMenu.cs | 2 +- Assets/Scripts/UI/Menu/InventoryPanel.cs | 2 +- Assets/Scripts/UI/Menu/LocalMenu.cs | 4 +--- 6 files changed, 24 insertions(+), 29 deletions(-) diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index 1c9a1a68a..9c6d7b6f1 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -4921,14 +4921,14 @@ static void RequireRuntimeMenuTabsUseEveSurface(string root) "private bool TryResolveDockedLocalStory(out LocationStory story)", "private bool TryResolveObservedDockingIndex(out AetheriaUnityObservedDockingIndex dockingIndex)", "SetObservedEntityIndex(AetheriaUnityObservedEntityIndex observedEntityIndex)", + "new AetheriaUnityObservedDockingIndex(_observedEntityIndex)", "dockingIndex.TryResolveCurrentDockingBay(out var dockingBay)", "dockingBay?.Entity is not OrbitalEntity { Story: { } dockedStory }", "AetheriaRuntimeLocalStorySurfaceBuilder.Build(", "AetheriaRuntimeLocalStorySurfaceCommands.TryRead(request, out var command)", "AetheriaRuntimeLocalStoryCommandKind.Continue", "AetheriaRuntimeLocalStoryCommandKind.Choose", - "new AetheriaRuntimeLocalStoryChoiceState(", - "unity-runtime-local-story" + "new AetheriaRuntimeLocalStoryChoiceState(" }; var dockedStoryObserverCorpus = localMenu; var missingDockedStoryObserverSymbols = requiredDockedStoryObserverSymbols @@ -7444,9 +7444,10 @@ static bool HasManagedDockingSnapshotAccess(string source) source.Contains("CultMeshReactiveDocument _currentDocking", StringComparison.Ordinal) && source.Contains("CultMeshReactiveDocument _stationRefit", StringComparison.Ordinal) && source.Contains("TryReadCurrentDockingDocuments(", StringComparison.Ordinal) && - source.Contains("state.Reactive()", StringComparison.Ordinal) && - source.Contains("state.Reactive()", StringComparison.Ordinal) && - source.Contains("state.Reactive()", StringComparison.Ordinal) && + source.Contains("AetheriaUnityRuntimeClientProvider", StringComparison.Ordinal) && + source.Contains(".Reactive(\"unity-observed-docking\")", StringComparison.Ordinal) && + source.Contains(".Reactive(\"unity-observed-docking\")", StringComparison.Ordinal) && + source.Contains(".Reactive(\"unity-observed-docking\")", StringComparison.Ordinal) && source.Contains("_currentDocking?.Current", StringComparison.Ordinal) && source.Contains("_stationRefit?.Current", StringComparison.Ordinal) && !source.Contains("State?.CurrentDocking()", StringComparison.Ordinal) && @@ -13536,9 +13537,10 @@ static void RequireMainMenuContinueRunState(string root) "CultMeshReactiveDocument _currentDocking", "CultMeshReactiveDocument _stationRefit", "TryReadCurrentDockingDocuments(", - "state.Reactive()", - "state.Reactive()", - "state.Reactive()", + "AetheriaUnityRuntimeClientProvider", + ".Reactive(\"unity-observed-docking\")", + ".Reactive(\"unity-observed-docking\")", + ".Reactive(\"unity-observed-docking\")", "_currentDocking?.Current", "_stationRefit?.Current", "public bool IsEntityUndocked(Entity entity)", @@ -13562,6 +13564,9 @@ static void RequireMainMenuContinueRunState(string root) "state.Latest()", "state.Latest()", "state.Latest()", + "state.Reactive()", + "state.Reactive()", + "state.Reactive()", "AetheriaRuntimeObservedDockingState", "new AetheriaRuntimeObservedDockingState(", "State?.CurrentDocking()", @@ -16330,7 +16335,6 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) ["Assets/Scripts/UI/Menu/MenuPanel.cs"] = menuPanel, ["Assets/Scripts/UI/Menu/MapRenderer.cs"] = mapRenderer, ["Assets/Scripts/UI/Menu/SectorMap.cs"] = sectorMap, - ["Assets/Scripts/UI/Menu/LocalMenu.cs"] = localMenu, ["Assets/Scripts/UI/Menu/SectorRenderer.cs"] = sectorRenderer, ["Assets/Scripts/UI/HUD/SchematicDisplay.cs"] = schematicDisplay, ["Assets/Scripts/UI/Menu/TradeMenu.cs"] = tradeMenu, diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 2c57fe2c3..81f98eb3f 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -34,9 +34,7 @@ public class ActionGameManager : MonoBehaviour private AetheriaUnityPilotCommandSender PilotCommands => _pilotCommands ??= new AetheriaUnityPilotCommandSender(ResolveCurrentRuntimeClient, () => Time.unscaledTime); private AetheriaUnityObservedDockingIndex ObservedDocking => - _observedDocking ??= new AetheriaUnityObservedDockingIndex( - () => ResolveDaemonObserver()?.Client, - _observedEntityIndex); + _observedDocking ??= new AetheriaUnityObservedDockingIndex(_observedEntityIndex); private AetheriaUnityObservedEntityRestorer ObservedEntityRestorer => _observedEntityRestorer ??= new AetheriaUnityObservedEntityRestorer( _observedEntityIndex, diff --git a/Assets/Scripts/Gameplay/AetheriaUnityObservedDockingIndex.cs b/Assets/Scripts/Gameplay/AetheriaUnityObservedDockingIndex.cs index 0dda368e5..4d1f0d28e 100644 --- a/Assets/Scripts/Gameplay/AetheriaUnityObservedDockingIndex.cs +++ b/Assets/Scripts/Gameplay/AetheriaUnityObservedDockingIndex.cs @@ -9,17 +9,13 @@ using GameCult.Mesh; public sealed class AetheriaUnityObservedDockingIndex : IDisposable { - private readonly Func _resolveClient; private readonly AetheriaUnityObservedEntityIndex _observedEntityIndex; private CultMeshReactiveDocument _currentEntity; private CultMeshReactiveDocument _currentDocking; private CultMeshReactiveDocument _stationRefit; - public AetheriaUnityObservedDockingIndex( - Func resolveClient, - AetheriaUnityObservedEntityIndex observedEntityIndex) + public AetheriaUnityObservedDockingIndex(AetheriaUnityObservedEntityIndex observedEntityIndex) { - _resolveClient = resolveClient ?? throw new ArgumentNullException(nameof(resolveClient)); _observedEntityIndex = observedEntityIndex ?? throw new ArgumentNullException(nameof(observedEntityIndex)); } @@ -208,13 +204,12 @@ public sealed class AetheriaUnityObservedDockingIndex : IDisposable if (_currentEntity != null && _currentDocking != null && _stationRefit != null) return; - var state = _resolveClient()?.State; - if (state == null) - return; - - _currentEntity ??= state.Reactive(); - _currentDocking ??= state.Reactive(); - _stationRefit ??= state.Reactive(); + _currentEntity ??= AetheriaUnityRuntimeClientProvider + .Reactive("unity-observed-docking"); + _currentDocking ??= AetheriaUnityRuntimeClientProvider + .Reactive("unity-observed-docking"); + _stationRefit ??= AetheriaUnityRuntimeClientProvider + .Reactive("unity-observed-docking"); } public void Dispose() diff --git a/Assets/Scripts/UI/Menu/InventoryMenu.cs b/Assets/Scripts/UI/Menu/InventoryMenu.cs index 41a8804a4..283f2d8d6 100644 --- a/Assets/Scripts/UI/Menu/InventoryMenu.cs +++ b/Assets/Scripts/UI/Menu/InventoryMenu.cs @@ -773,7 +773,7 @@ public class InventoryMenu : MonoBehaviour if (_observedEntityIndex == null) return false; - dockingIndex = _observedDockingIndex ??= new AetheriaUnityObservedDockingIndex(ResolveClient, _observedEntityIndex); + dockingIndex = _observedDockingIndex ??= new AetheriaUnityObservedDockingIndex(_observedEntityIndex); return true; } diff --git a/Assets/Scripts/UI/Menu/InventoryPanel.cs b/Assets/Scripts/UI/Menu/InventoryPanel.cs index b7d5a0225..a84996fcb 100644 --- a/Assets/Scripts/UI/Menu/InventoryPanel.cs +++ b/Assets/Scripts/UI/Menu/InventoryPanel.cs @@ -1169,7 +1169,7 @@ private void Update() if (_observedEntityIndex == null) return false; - dockingIndex = _observedDockingIndex ??= new AetheriaUnityObservedDockingIndex(ResolveClient, _observedEntityIndex); + dockingIndex = _observedDockingIndex ??= new AetheriaUnityObservedDockingIndex(_observedEntityIndex); return true; } diff --git a/Assets/Scripts/UI/Menu/LocalMenu.cs b/Assets/Scripts/UI/Menu/LocalMenu.cs index 43d1dfead..b75042640 100644 --- a/Assets/Scripts/UI/Menu/LocalMenu.cs +++ b/Assets/Scripts/UI/Menu/LocalMenu.cs @@ -223,9 +223,7 @@ public class LocalMenu : MonoBehaviour if (_observedEntityIndex == null) return false; - dockingIndex = _observedDockingIndex ??= new AetheriaUnityObservedDockingIndex( - () => AetheriaUnityRuntimeClientProvider.RuntimeClient("unity-runtime-local-story"), - _observedEntityIndex); + dockingIndex = _observedDockingIndex ??= new AetheriaUnityObservedDockingIndex(_observedEntityIndex); return true; }