diff --git a/Aetheria.State/scripts/verify-stage7d-unity-parity.ps1 b/Aetheria.State/scripts/verify-stage7d-unity-parity.ps1 index a8c453143..93f5e162a 100644 --- a/Aetheria.State/scripts/verify-stage7d-unity-parity.ps1 +++ b/Aetheria.State/scripts/verify-stage7d-unity-parity.ps1 @@ -89,7 +89,8 @@ Assert-NotContains $inventoryPanel ".StationRefitAsync()" "InventoryPanel dropdo Assert-Contains $inventoryPanel "LoadoutRestoreOptions" "InventoryPanel loadout dropdown must read typed station-refit restore options." Assert-Contains $inventoryPanel "LoadoutTemplateAsync(targetEntityKey)" "InventoryPanel loadout saves must project the target entity through the typed client." Assert-Contains $inventoryPanel "AetheriaRuntimeStationLoadoutRestoreOption" "InventoryPanel loadout restore submission must use typed station-refit option rows." -Assert-Contains $inventoryPanel "TryGetTypedCurrentDockingBayFacade" "InventoryPanel dropdown docking access must be typed-key validated." +Assert-Contains $inventoryPanel "TryResolveObservedDockingIndex(out var dockingIndex)" "InventoryPanel dropdown docking access must enter through the typed docking adapter." +Assert-NotContains $inventoryPanel "TryGetTypedCurrentDockingBayFacade" "InventoryPanel dropdown docking access must not keep transitional typed facade helpers." Assert-Contains $inventoryPanel "selection.EntityKey" "InventoryPanel dropdown selections must carry typed entity keys." Assert-Contains $inventoryPanel "_displayedEntityKey" "InventoryPanel displayed entity state must cache typed entity identity." Assert-Contains $inventoryPanel "_displayedCargoEntityKey" "InventoryPanel displayed cargo state must cache typed cargo identity." @@ -122,14 +123,15 @@ Assert-NotContains $inventoryMenu ".CurrentEntityAsync()" "InventoryMenu ship-se Assert-Contains $inventoryMenu "TryResolveCurrentEntityDocument" "InventoryMenu ship-settings state must read the typed current-entity document." Assert-Contains $inventoryMenu "_shipSettingsCurrentEntity" "InventoryMenu ship-settings surface must retain typed current-entity state." Assert-Contains $inventoryMenu "latestCurrentEntity.ShutdownPerformance" "InventoryMenu ship-settings surface must use typed shutdown-performance projection." -Assert-Contains $inventoryMenu "TryGetTypedCurrentEntityFacade" "InventoryMenu current facade access must be typed-key validated." +Assert-Contains $inventoryMenu "TryResolveObservedDockingIndex(out var dockingIndex)" "InventoryMenu current facade access must enter through the typed docking adapter." +Assert-NotContains $inventoryMenu "TryGetTypedCurrentEntityFacade" "InventoryMenu current facade access must not keep transitional typed facade helpers." Assert-Contains $inventoryMenu "SetObservedFacadeIndex(AetheriaUnityObservedFacadeIndex observedFacadeIndex)" "InventoryMenu must receive facade adaptation explicitly." Assert-Contains $inventoryMenu "_observedFacadeIndex.TryResolveEntityByRecordKey" "InventoryMenu must adapt current entity facades by typed daemon record key." Assert-Contains $inventoryMenu ".Docking" "InventoryMenu docking facade access must read the typed current-docking document handle." Assert-Contains $inventoryMenu ".StationRefit" "InventoryMenu docking options must read the typed station-refit document handle." Assert-NotContains $inventoryMenu ".CurrentDockingAsync()" "InventoryMenu docking facade access must not use the transitional current-docking helper." Assert-NotContains $inventoryMenu ".StationRefitAsync()" "InventoryMenu docking options must not use the transitional station-refit helper." -Assert-Contains $inventoryMenu "TryGetTypedCurrentDockingBayFacade" "InventoryMenu docking facade access must be typed-key validated." +Assert-NotContains $inventoryMenu "TryGetTypedCurrentDockingBayFacade" "InventoryMenu docking facade access must not keep transitional typed facade helpers." Assert-Contains $inventoryMenu "ResolveDefaultShutdownPerformance()" "InventoryMenu ship-settings reset must use typed runtime policy for the default threshold." Assert-Contains $inventoryMenu "ResolvePlayerSettings()?.DefaultShutdownPerformance" "InventoryMenu must read default shutdown performance from typed player settings." Assert-NotContains $inventoryMenu "TryGetObservedCurrentEntity(" "InventoryMenu must not read broad manager-global current entity state." @@ -343,7 +345,7 @@ Assert-Contains $targetPresentation "ResolveVisibleContacts" "Unity target prese Assert-NotContains $targetPresentation "QueryEntityContacts(" "Unity target presentation must not query contacts from raw zone snapshots." Assert-NotContains $targetPresentation "ResolveZone" "Unity target presentation must not hold raw zone snapshot access." Assert-Contains $observedDockingIndex ".Aetheria()" "Unity docking state must enter state through the semantic Aetheria facade." -Assert-Contains $observedDockingIndex ".Docking" "Unity docking state must read the typed current-docking document handle." +Assert-Contains $observedDockingIndex ".DockingState" "Unity docking state must read the typed CultMesh-backed docking snapshot." Assert-NotContains $observedDockingIndex ".CurrentDockingAsync()" "Unity docking state must not use the transitional current-docking helper." Assert-Contains $observedDockingIndex "TryResolveEntityByRecordKey(docking.DockParentEntityKey" "Unity docking facade adaptation must be keyed by typed dock parent identity." Assert-NotContains $observedDockingIndex "AetheriaRuntimeZoneSnapshotCommit" "Unity docking state must not receive raw zone snapshots." diff --git a/Assets/Scripts/UI/Menu/InventoryMenu.cs b/Assets/Scripts/UI/Menu/InventoryMenu.cs index caac801b3..9e6c86057 100644 --- a/Assets/Scripts/UI/Menu/InventoryMenu.cs +++ b/Assets/Scripts/UI/Menu/InventoryMenu.cs @@ -89,8 +89,9 @@ public class InventoryMenu : MonoBehaviour // { // _destroyItem = false; // }); - var hasObservedCurrentEntity = TryGetTypedCurrentEntityFacade(out var currentEntity); - var cargo = TryGetTypedCurrentDockingBayFacade(out var dockingBay) + var hasDockingIndex = TryResolveObservedDockingIndex(out var dockingIndex); + var hasObservedCurrentEntity = hasDockingIndex && dockingIndex.TryResolveCurrentEntity(out var currentEntity); + var cargo = hasDockingIndex && dockingIndex.TryResolveCurrentDockingBay(out var dockingBay) ? dockingBay : currentEntity?.CargoBays.FirstOrDefault(); if (cargo!=null) @@ -723,20 +724,6 @@ public class InventoryMenu : MonoBehaviour return string.Equals(entityKey, currentEntityKey, StringComparison.Ordinal); } - private bool TryGetTypedCurrentEntityFacade(out Entity entity) - { - entity = null; - return TryResolveObservedDockingIndex(out var dockingIndex) && - dockingIndex.TryResolveCurrentEntity(out entity); - } - - private bool TryGetTypedCurrentDockingBayFacade(out EquippedDockingBay dockingBay) - { - dockingBay = null; - return TryResolveObservedDockingIndex(out var dockingIndex) && - dockingIndex.TryResolveCurrentDockingBay(out dockingBay); - } - private bool TryResolveCurrentDockingBayRow(out AetheriaRuntimeStationDockingBayRow dockingBay) { dockingBay = null; diff --git a/Assets/Scripts/UI/Menu/InventoryPanel.cs b/Assets/Scripts/UI/Menu/InventoryPanel.cs index 01101123a..4190a88fa 100644 --- a/Assets/Scripts/UI/Menu/InventoryPanel.cs +++ b/Assets/Scripts/UI/Menu/InventoryPanel.cs @@ -260,8 +260,9 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler } return; case AetheriaRuntimeInventoryDropdownSelectionKind.DockingBay: - if (TryResolveCurrentDockingBayRow(out _) && - TryGetTypedCurrentDockingBayFacade(out var dockingBay)) + if (TryResolveObservedDockingIndex(out var dockingIndex) && + dockingIndex.TryResolveCurrentDockingBayRow(out _) && + dockingIndex.TryResolveCurrentDockingBay(out var dockingBay)) { Display(dockingBay); } @@ -1136,13 +1137,6 @@ private void Update() dockingIndex.TryResolveCurrentEntityKey(out currentEntityKey); } - private bool TryGetTypedCurrentDockingBayFacade(out EquippedDockingBay dockingBay) - { - dockingBay = null; - return TryResolveObservedDockingIndex(out var dockingIndex) && - dockingIndex.TryResolveCurrentDockingBay(out dockingBay); - } - private bool TryResolveCurrentDockingBayRow(out AetheriaRuntimeStationDockingBayRow dockingBay) { dockingBay = null;