From de7d576b37b95fd8d1607fb734b86e2aaa284eab Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 28 Jun 2026 02:44:03 +0100 Subject: [PATCH] Route inventory menu through managed runtime client --- Aetheria.State.Verify/Program.cs | 7 +++++- Assets/Scripts/UI/Menu/InventoryMenu.cs | 31 +++++++------------------ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index 791257c84..0f18cf6c1 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -12868,6 +12868,10 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) var tradeMenu = File.Exists(tradeMenuPath) ? File.ReadAllText(tradeMenuPath) : throw new InvalidOperationException("Cannot verify daemon state acquisition; TradeMenu.cs is missing."); + var inventoryMenuPath = Path.Combine(root, "Assets", "Scripts", "UI", "Menu", "InventoryMenu.cs"); + var inventoryMenu = File.Exists(inventoryMenuPath) + ? File.ReadAllText(inventoryMenuPath) + : throw new InvalidOperationException("Cannot verify daemon state acquisition; InventoryMenu.cs is missing."); var gameplayBootShellPath = Path.Combine(root, "Assets", "Scripts", "Gameplay", "AetheriaUnityGameplayBootShell.cs"); var gameplayBootShell = File.Exists(gameplayBootShellPath) ? File.ReadAllText(gameplayBootShellPath) @@ -12977,7 +12981,8 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root) ["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 + ["Assets/Scripts/UI/Menu/TradeMenu.cs"] = tradeMenu, + ["Assets/Scripts/UI/Menu/InventoryMenu.cs"] = inventoryMenu }; var directClientOpenHits = providerOwnedClientAccessSources .Where(pair => diff --git a/Assets/Scripts/UI/Menu/InventoryMenu.cs b/Assets/Scripts/UI/Menu/InventoryMenu.cs index 4a9975f10..8d407a0c0 100644 --- a/Assets/Scripts/UI/Menu/InventoryMenu.cs +++ b/Assets/Scripts/UI/Menu/InventoryMenu.cs @@ -5,7 +5,6 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.IO; using System.Linq; using GameCult.Aetheria.EveRuntime; using GameCult.Aetheria.State.Verse; @@ -31,7 +30,6 @@ public class InventoryMenu : MonoBehaviour private UIDocument _shipSettingsSurfaceDocument; private UIDocument _cargoItemDetailsSurfaceDocument; private UIDocument _equippedItemDetailsSurfaceDocument; - private AetheriaClient _client; private string _clientStatePath = ""; private AetheriaRuntimeCatalogSnapshot _catalog; private AetheriaRuntimePlayerSettingsDocument _playerSettings; @@ -957,29 +955,18 @@ public class InventoryMenu : MonoBehaviour private AetheriaClient ResolveClient() { - var gameDataDirectory = new DirectoryInfo(Path.Combine(Application.dataPath, "..", "GameData")); - var stateBoot = AetheriaRuntimeStateBoot.Inspect(gameDataDirectory); - if (_client != null && string.Equals(_clientStatePath, stateBoot.StateFilePath, StringComparison.Ordinal)) - return _client; + var stateBoot = AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory); + if (!string.Equals(_clientStatePath, stateBoot.StateFilePath, StringComparison.Ordinal)) + { + _clientStatePath = stateBoot.StateFilePath; + ClearClientCaches(); + } - DisposeClient(); - _client = AetheriaClient - .OpenLocalAsync( - gameDataDirectory, - "unity-inventory-menu", - "local", - pullOnOpen: true) - .GetAwaiter() - .GetResult(); - _clientStatePath = stateBoot.StateFilePath; - return _client; + return AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot, "unity-inventory-menu"); } - private void DisposeClient() + private void ClearClientCaches() { - _client?.Dispose(); - _client = null; - _clientStatePath = ""; _catalog = null; _playerSettings = null; } @@ -1129,8 +1116,6 @@ public class InventoryMenu : MonoBehaviour private void OnDestroy() { - DisposeClient(); - if (_shipSettingsSurfaceDocument != null) { AetheriaEveUnitySurfaceHost.DestroyDocument(_shipSettingsSurfaceDocument);