Normalize inventory typed state reads

This commit is contained in:
Meta Vens 2026-06-29 09:21:29 +01:00
commit e08819dbbb
4 changed files with 57 additions and 67 deletions

View file

@ -5073,16 +5073,16 @@ static void RequireInventoryShipSettingsUseEveSurface(string root)
"AetheriaRuntimeShipSettingsSurfaceCommands.ResolveShutdownPerformance(",
"ResolveDefaultShutdownPerformance()",
"ResolvePlayerSettings()?.DefaultShutdownPerformance",
"TryResolveCurrentEntityDocument(out var currentEntity)",
"TryReadCurrentEntity(out var currentEntity)",
"SetObservedEntityIndex(AetheriaUnityObservedEntityIndex observedEntityIndex)",
"private AetheriaRuntimeCurrentEntityDocument _shipSettingsCurrentEntity;",
"!TryResolveCurrentEntityDocument(out var latestCurrentEntity)",
"!TryReadCurrentEntity(out var latestCurrentEntity)",
"RequestEntityShutdownPerformance(",
"latestCurrentEntity.EntityKey",
"(float)latestCurrentEntity.ShutdownPerformance",
"CultMeshReactiveDocument<AetheriaRuntimeCurrentEntityDocument> _currentEntity",
"ResolveCurrentEntity()",
"currentEntity = ResolveCurrentEntity();"
"CurrentEntitySnapshot()",
"currentEntity = CurrentEntitySnapshot();"
};
var missingSymbols = requiredSymbols
@ -6523,8 +6523,8 @@ static void RequireInventoryDropdownUseEveSurface(string root)
"_observedEntityIndex.TryResolveEntityByRecordKey",
"TryResolveObservedDockingIndex(out var dockingIndex)",
"dockingIndex.TryResolveCurrentDockingBay(out var resolvedDockingBay)",
"ResolveStationRefit",
"currentEntityKey = ResolveCurrentEntity()?.EntityKey ?? \"\"",
"StationRefitSnapshot",
"currentEntityKey = CurrentEntitySnapshot()?.EntityKey ?? \"\"",
"LoadoutRestoreOptions"
};
@ -6589,10 +6589,10 @@ static void RequireInventoryDropdownUseEveSurface(string root)
!source.Contains("TryResolveObservedDockingIndex(out var dockingIndex)", StringComparison.Ordinal) ||
!source.Contains("TryResolveCurrentDockingBay(out var dockingBay)", StringComparison.Ordinal) ||
!source.Contains("dockingIndex.TryResolveCurrentDockingBay(out var resolvedDockingBay)", StringComparison.Ordinal) ||
!source.Contains("ResolveStationRefit", StringComparison.Ordinal) ||
!source.Contains("currentEntityKey = ResolveCurrentEntity()?.EntityKey ?? \"\"", StringComparison.Ordinal) ||
!source.Contains("StationRefitSnapshot", StringComparison.Ordinal) ||
!source.Contains("currentEntityKey = CurrentEntitySnapshot()?.EntityKey ?? \"\"", StringComparison.Ordinal) ||
!source.Contains("currentDockingBay.DockingBayIndex", StringComparison.Ordinal) ||
!source.Contains("ResolveStationRefit()?.DockParentEntityKey", StringComparison.Ordinal) ||
!source.Contains("StationRefitSnapshot()?.DockParentEntityKey", StringComparison.Ordinal) ||
source.Contains("var hasDockingBay = TryGetTypedCurrentDockingBayFacade", StringComparison.Ordinal) ||
source.Contains("TryResolveCurrentDockingBayFacade", StringComparison.Ordinal) ||
source.Contains("ResolveDockingState()?.CurrentDocking", StringComparison.Ordinal) ||
@ -6606,9 +6606,9 @@ static void RequireInventoryDropdownUseEveSurface(string root)
!inventoryMenu.Contains("TryResolveCurrentDockingBay(out var dockingBay)", StringComparison.Ordinal) ||
!inventoryMenu.Contains("TryResolveObservedDockingIndex(out var dockingIndex)", StringComparison.Ordinal) ||
!inventoryMenu.Contains("dockingIndex.TryResolveCurrentDockingBay(out var resolvedDockingBay)", StringComparison.Ordinal) ||
!inventoryMenu.Contains("currentEntityKey = ResolveCurrentEntity()?.EntityKey ?? \"\"", StringComparison.Ordinal) ||
!inventoryMenu.Contains("currentEntity = ResolveCurrentEntity();", StringComparison.Ordinal) ||
!inventoryMenu.Contains("ResolveStationRefit", StringComparison.Ordinal) ||
!inventoryMenu.Contains("currentEntityKey = CurrentEntitySnapshot()?.EntityKey ?? \"\"", StringComparison.Ordinal) ||
!inventoryMenu.Contains("currentEntity = CurrentEntitySnapshot();", StringComparison.Ordinal) ||
!inventoryMenu.Contains("StationRefitSnapshot", StringComparison.Ordinal) ||
inventoryMenu.Contains("TryGetTypedCurrentDockingBayFacade", StringComparison.Ordinal) ||
inventoryMenu.Contains("TryResolveCurrentEntityFacade", StringComparison.Ordinal) ||
inventoryMenu.Contains("ResolveDockingState()?.CurrentDocking", StringComparison.Ordinal) ||
@ -6789,7 +6789,7 @@ static void RequireStationRefitDockingBaysUseTypedDocuments(string root)
{
"TryResolveCurrentDockingBayRow(out var currentDockingBay)",
"AetheriaRuntimeStationDockingBayRow dockingBay",
"ResolveStationRefit",
"StationRefitSnapshot",
"refit.DockingBays ?? Array.Empty<AetheriaRuntimeStationDockingBayRow>()",
"currentDockingBay.DockingBayIndex"
};
@ -6808,7 +6808,7 @@ static void RequireStationRefitDockingBaysUseTypedDocuments(string root)
{
"TryResolveCurrentDockingBayRow(out AetheriaRuntimeStationDockingBayRow dockingBay)",
"AetheriaRuntimeStationDockingBayRow dockingBay",
"ResolveStationRefit",
"StationRefitSnapshot",
"refit.DockingBays ?? Array.Empty<AetheriaRuntimeStationDockingBayRow>()"
};
var missingMenuSymbols = requiredMenuSymbols
@ -7254,9 +7254,9 @@ static void RequireInventoryValidationUsesManagedTypedDocuments(string root)
var compact = CompactSource(source);
var requiredSymbols = new[]
{
"ResolveCurrentEntity()",
"ResolveStationRefit",
"ResolveInventory(entityIndex)",
"CurrentEntitySnapshot()",
"StationRefitSnapshot",
"InventorySnapshot(entityIndex)",
"_inventory?.Current"
};
var missingSymbols = requiredSymbols
@ -7500,7 +7500,7 @@ static bool HasManagedDockingSnapshotAccess(string source)
source.Contains("CultMeshReactiveDocument<AetheriaRuntimeCurrentEntityDocument> _currentEntity", StringComparison.Ordinal) &&
source.Contains("CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking", StringComparison.Ordinal) &&
source.Contains("CultMeshReactiveDocument<AetheriaRuntimeStationRefitDocument> _stationRefit", StringComparison.Ordinal) &&
source.Contains("TryReadCurrentDockingDocuments(", StringComparison.Ordinal) &&
source.Contains("TryReadDockingSnapshots(", StringComparison.Ordinal) &&
source.Contains("AetheriaUnityRuntimeClientProvider", StringComparison.Ordinal) &&
source.Contains(".ReactiveCurrentEntity(\"unity-observed-docking\")", StringComparison.Ordinal) &&
source.Contains(".ReactiveCurrentDocking(\"unity-observed-docking\")", StringComparison.Ordinal) &&
@ -13672,7 +13672,7 @@ static void RequireMainMenuContinueRunState(string root)
"CultMeshReactiveDocument<AetheriaRuntimeCurrentEntityDocument> _currentEntity",
"CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> _currentDocking",
"CultMeshReactiveDocument<AetheriaRuntimeStationRefitDocument> _stationRefit",
"TryReadCurrentDockingDocuments(",
"TryReadDockingSnapshots(",
"AetheriaUnityRuntimeClientProvider",
".ReactiveCurrentEntity(\"unity-observed-docking\")",
".ReactiveCurrentDocking(\"unity-observed-docking\")",
@ -18838,7 +18838,7 @@ static void RequireDockedCurrentShipRequestAuthority(string root)
}
if (!inventoryPanel.Contains("TryResolveCurrentEntityKey(out var currentEntityKey)", StringComparison.Ordinal) ||
!inventoryPanel.Contains("currentEntityKey = ResolveCurrentEntity()?.EntityKey ?? \"\"", StringComparison.Ordinal) ||
!inventoryPanel.Contains("currentEntityKey = CurrentEntitySnapshot()?.EntityKey ?? \"\"", StringComparison.Ordinal) ||
inventoryPanel.Contains("AetheriaClientReactiveDockingState _reactiveDockingState", StringComparison.Ordinal) ||
inventoryPanel.Contains("GameManager.CurrentEntity", StringComparison.Ordinal))
{

View file

@ -42,24 +42,24 @@ public sealed class AetheriaUnityObservedDockingIndex : IDisposable
public bool TryResolveCurrentEntityKey(out string currentEntityKey)
{
currentEntityKey = "";
if (TryReadCurrentDockingDocuments(out var currentEntity, out var docking, out _))
if (TryReadDockingSnapshots(out var currentEntity, out var docking, out _))
currentEntityKey = CurrentEntityKey(currentEntity, docking);
return !string.IsNullOrWhiteSpace(currentEntityKey);
}
public bool TryResolveCurrentEntityDocument(out AetheriaRuntimeCurrentEntityDocument currentEntity)
public bool TryReadCurrentEntity(out AetheriaRuntimeCurrentEntityDocument currentEntity)
{
currentEntity = null;
if (!TryReadCurrentDockingDocuments(out var document, out _, out _))
if (!TryReadDockingSnapshots(out var document, out _, out _))
return false;
currentEntity = document;
return currentEntity != null;
}
public AetheriaRuntimeStationRefitDocument ResolveStationRefit()
public AetheriaRuntimeStationRefitDocument StationRefitSnapshot()
{
return TryReadCurrentDockingDocuments(out _, out _, out var refit)
return TryReadDockingSnapshots(out _, out _, out var refit)
? refit
: null;
}
@ -67,7 +67,7 @@ public sealed class AetheriaUnityObservedDockingIndex : IDisposable
public bool TryResolveCurrentDockingBayRow(out AetheriaRuntimeStationDockingBayRow dockingBay)
{
dockingBay = null;
if (!TryReadCurrentDockingDocuments(out _, out _, out var refit) ||
if (!TryReadDockingSnapshots(out _, out _, out var refit) ||
!refit.IsDocked ||
refit.DockingBayIndex < 0)
return false;
@ -80,7 +80,7 @@ public sealed class AetheriaUnityObservedDockingIndex : IDisposable
public bool TryResolveCurrentDockingBay(out EquippedDockingBay dockingBay)
{
dockingBay = null;
var refit = ResolveStationRefit();
var refit = StationRefitSnapshot();
if (!TryResolveCurrentDockingBayRow(out _) ||
string.IsNullOrWhiteSpace(refit?.DockParentEntityKey) ||
refit.DockingBayIndex < 0 ||
@ -98,7 +98,7 @@ public sealed class AetheriaUnityObservedDockingIndex : IDisposable
public bool TryResolveCurrentDocking(out AetheriaRuntimeCurrentDockingDocument docking)
{
docking = null;
if (!TryReadCurrentDockingDocuments(out _, out var currentDocking, out _))
if (!TryReadDockingSnapshots(out _, out var currentDocking, out _))
return false;
docking = currentDocking;
@ -165,7 +165,7 @@ public sealed class AetheriaUnityObservedDockingIndex : IDisposable
return true;
}
private bool TryReadCurrentDockingDocuments(
private bool TryReadDockingSnapshots(
out AetheriaRuntimeCurrentEntityDocument entity,
out AetheriaRuntimeCurrentDockingDocument docking,
out AetheriaRuntimeStationRefitDocument refit)

View file

@ -192,7 +192,7 @@ public class InventoryMenu : MonoBehaviour
panel.OnBackgroundClick.Subscribe(data =>
{
if (!TryResolveCurrentEntityDocument(out var currentEntity)) return;
if (!TryReadCurrentEntity(out var currentEntity)) return;
RenderCurrentShipSettingsSurface(currentEntity);
});
@ -226,7 +226,7 @@ public class InventoryMenu : MonoBehaviour
var currentEntity = _shipSettingsCurrentEntity;
if (currentEntity == null ||
string.IsNullOrWhiteSpace(currentEntity.EntityKey) ||
!TryResolveCurrentEntityDocument(out var latestCurrentEntity) ||
!TryReadCurrentEntity(out var latestCurrentEntity) ||
!string.Equals(latestCurrentEntity.EntityKey, currentEntity.EntityKey, StringComparison.Ordinal))
{
HideCurrentShipSettingsSurface();
@ -489,7 +489,7 @@ public class InventoryMenu : MonoBehaviour
var tradeValue = AetheriaRuntimeDaemonTradeItemQueries.TradeItemValue(
typedItem,
ToRuntimeLoadoutItem(item),
ResolveCatalog()?.TradeValueSettings);
CatalogSnapshot()?.TradeValueSettings);
return tradeValue.HasTier
? $"{tradeValue.TierName}{new string('+', tradeValue.Upgrades)}"
: "";
@ -715,7 +715,7 @@ public class InventoryMenu : MonoBehaviour
private bool TryResolveCurrentDockingBayRow(out AetheriaRuntimeStationDockingBayRow dockingBay)
{
dockingBay = null;
var refit = ResolveStationRefitDocument();
var refit = StationRefitSnapshot();
if (refit?.IsDocked != true || refit.DockingBayIndex < 0)
return false;
@ -726,13 +726,13 @@ public class InventoryMenu : MonoBehaviour
private bool TryResolveCurrentEntityKey(out string currentEntityKey)
{
currentEntityKey = ResolveCurrentEntity()?.EntityKey ?? "";
currentEntityKey = CurrentEntitySnapshot()?.EntityKey ?? "";
return !string.IsNullOrWhiteSpace(currentEntityKey);
}
private bool TryResolveCurrentEntityDocument(out AetheriaRuntimeCurrentEntityDocument currentEntity)
private bool TryReadCurrentEntity(out AetheriaRuntimeCurrentEntityDocument currentEntity)
{
currentEntity = ResolveCurrentEntity();
currentEntity = CurrentEntitySnapshot();
if (currentEntity == null)
{
Debug.LogWarning("Failed to read Aetheria current entity for inventory ship settings.");
@ -742,11 +742,6 @@ public class InventoryMenu : MonoBehaviour
return true;
}
private AetheriaRuntimeStationRefitDocument ResolveStationRefit()
{
return ResolveStationRefitDocument();
}
private bool TryResolveCurrentEntity(out Entity currentEntity)
{
currentEntity = null;
@ -809,7 +804,7 @@ public class InventoryMenu : MonoBehaviour
try
{
var current = ResolveCurrentEntity();
var current = CurrentEntitySnapshot();
if (current != null && string.Equals(current.EntityKey, entityKey, StringComparison.Ordinal))
{
equipment = current.Equipment ?? Array.Empty<AetheriaRuntimeRtsInventoryItem>();
@ -817,7 +812,7 @@ public class InventoryMenu : MonoBehaviour
return true;
}
var refit = ResolveStationRefitDocument();
var refit = StationRefitSnapshot();
var entityIndex = -1;
if (refit != null)
{
@ -832,7 +827,7 @@ public class InventoryMenu : MonoBehaviour
if (entityIndex < 0)
return false;
var inventory = ResolveInventory(entityIndex);
var inventory = InventorySnapshot(entityIndex);
if (inventory == null || !string.Equals(inventory.EntityKey, entityKey, StringComparison.Ordinal))
return false;
@ -924,7 +919,7 @@ public class InventoryMenu : MonoBehaviour
_inventoryEntityIndex = -1;
}
private AetheriaRuntimeCurrentEntityDocument ResolveCurrentEntity()
private AetheriaRuntimeCurrentEntityDocument CurrentEntitySnapshot()
{
if (_currentEntity != null)
return _currentEntity.Current;
@ -942,7 +937,7 @@ public class InventoryMenu : MonoBehaviour
return _currentEntity?.Current;
}
private AetheriaRuntimeStationRefitDocument ResolveStationRefitDocument()
private AetheriaRuntimeStationRefitDocument StationRefitSnapshot()
{
if (_stationRefit != null)
return _stationRefit.Current;
@ -960,7 +955,7 @@ public class InventoryMenu : MonoBehaviour
return _stationRefit?.Current;
}
private AetheriaRuntimeInventoryDocument ResolveInventory(int entityIndex)
private AetheriaRuntimeInventoryDocument InventorySnapshot(int entityIndex)
{
if (_inventory != null && _inventoryEntityIndex == entityIndex)
return _inventory.Current;
@ -1031,10 +1026,10 @@ public class InventoryMenu : MonoBehaviour
private AetheriaRuntimeCatalogItem FindTypedInventoryItem(ItemInstance item)
{
return ResolveCatalog()?.FindItem(item, x => x.ItemKey);
return CatalogSnapshot()?.FindItem(item, x => x.ItemKey);
}
private AetheriaRuntimeCatalogSnapshot ResolveCatalog()
private AetheriaRuntimeCatalogSnapshot CatalogSnapshot()
{
if (_catalog != null)
return _catalog.Current;
@ -1078,7 +1073,7 @@ public class InventoryMenu : MonoBehaviour
private string ResolveManufacturerName(AetheriaRuntimeCatalogItem item)
{
return ResolveCatalog()?.GetManufacturer(item)?.Name ?? "GameCult";
return CatalogSnapshot()?.GetManufacturer(item)?.Name ?? "GameCult";
}
private string FormatValue(float value)

View file

@ -300,7 +300,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler
private AetheriaRuntimeInventoryDropdownSurfaceModel BuildDropdownSurfaceModel()
{
var stationRefit = ResolveStationRefit();
var stationRefit = StationRefitSnapshot();
_dropdownStationRefitEntities = (stationRefit?.AvailableEntities ?? Array.Empty<AetheriaRuntimeStationRefitEntityOption>())
.ToArray();
_dropdownStationRefitLoadouts = (stationRefit?.LoadoutRestoreOptions ?? Array.Empty<AetheriaRuntimeStationLoadoutRestoreOption>())
@ -336,7 +336,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler
: "Docking Bay",
hasDockingBay &&
IsDisplayedCargoBayKey(
ResolveStationRefit()?.DockParentEntityKey ?? "",
StationRefitSnapshot()?.DockParentEntityKey ?? "",
currentDockingBay.DockingBayIndex),
_displayedEntity != null,
loadoutOptions,
@ -1034,7 +1034,7 @@ private void Update()
private AetheriaRuntimeCatalogItem FindTypedInventoryItem(ItemInstance item)
{
return ResolveCatalog()?.FindItem(item, x => x.ItemKey);
return CatalogSnapshot()?.FindItem(item, x => x.ItemKey);
}
private void RequestDockedCurrentShip(Ship ship)
@ -1129,14 +1129,14 @@ private void Update()
private bool TryResolveCurrentEntityKey(out string currentEntityKey)
{
currentEntityKey = ResolveCurrentEntity()?.EntityKey ?? "";
currentEntityKey = CurrentEntitySnapshot()?.EntityKey ?? "";
return !string.IsNullOrWhiteSpace(currentEntityKey);
}
private bool TryResolveCurrentDockingBayRow(out AetheriaRuntimeStationDockingBayRow dockingBay)
{
dockingBay = null;
var refit = ResolveStationRefitDocument();
var refit = StationRefitSnapshot();
if (refit?.IsDocked != true || refit.DockingBayIndex < 0)
return false;
@ -1158,11 +1158,6 @@ private void Update()
return dockingBay != null;
}
private AetheriaRuntimeStationRefitDocument ResolveStationRefit()
{
return ResolveStationRefitDocument();
}
private bool TryResolveObservedDockingIndex(out AetheriaUnityObservedDockingIndex dockingIndex)
{
dockingIndex = null;
@ -1242,7 +1237,7 @@ private void Update()
try
{
var current = ResolveCurrentEntity();
var current = CurrentEntitySnapshot();
if (current != null && string.Equals(current.EntityKey, entityKey, StringComparison.Ordinal))
{
equipment = current.Equipment ?? Array.Empty<AetheriaRuntimeRtsInventoryItem>();
@ -1250,7 +1245,7 @@ private void Update()
return true;
}
var refit = ResolveStationRefitDocument();
var refit = StationRefitSnapshot();
var entityIndex = -1;
if (refit != null)
{
@ -1265,7 +1260,7 @@ private void Update()
if (entityIndex < 0)
return false;
var inventory = ResolveInventory(entityIndex);
var inventory = InventorySnapshot(entityIndex);
if (inventory == null || !string.Equals(inventory.EntityKey, entityKey, StringComparison.Ordinal))
return false;
@ -1483,7 +1478,7 @@ private void Update()
_inventoryEntityIndex = -1;
}
private AetheriaRuntimeCurrentEntityDocument ResolveCurrentEntity()
private AetheriaRuntimeCurrentEntityDocument CurrentEntitySnapshot()
{
if (_currentEntity != null)
return _currentEntity.Current;
@ -1501,7 +1496,7 @@ private void Update()
return _currentEntity?.Current;
}
private AetheriaRuntimeStationRefitDocument ResolveStationRefitDocument()
private AetheriaRuntimeStationRefitDocument StationRefitSnapshot()
{
if (_stationRefit != null)
return _stationRefit.Current;
@ -1544,7 +1539,7 @@ private void Update()
return _loadoutFrame?.Current;
}
private AetheriaRuntimeInventoryDocument ResolveInventory(int entityIndex)
private AetheriaRuntimeInventoryDocument InventorySnapshot(int entityIndex)
{
if (_inventory != null && _inventoryEntityIndex == entityIndex)
return _inventory.Current;
@ -1566,7 +1561,7 @@ private void Update()
return _inventory?.Current;
}
private AetheriaRuntimeCatalogSnapshot ResolveCatalog()
private AetheriaRuntimeCatalogSnapshot CatalogSnapshot()
{
if (_catalog != null)
return _catalog.Current;