Use runtime catalog for observed UI item metadata

This commit is contained in:
Meta Vens 2026-06-21 20:48:43 +01:00
commit 95e1b44dce
2 changed files with 18 additions and 3 deletions

View file

@ -8134,7 +8134,11 @@ static void RequireMainMenuContinueRunState(string root)
"ObservedAvailableEntities(",
"TryGetObservedCurrentEntity(out var currentEntity)",
"parentSnapshot.ChildEntityIndices",
"TryGetObservedEntityFacade(childEntityIndex, out var entity)"
"TryGetObservedEntityFacade(childEntityIndex, out var entity)",
"FindTypedRuntimeItem(",
"RuntimeCatalog?.FindItem(item?.ItemKey ?? \"\")",
"var typedItem = FindTypedRuntimeItem(item?.EquippableItem)",
"var targetHull = FindTypedRuntimeItem(target.Hull)"
};
if (actionGameManager.Contains("_authoritativeDaemonEntities", StringComparison.Ordinal))
@ -8143,6 +8147,12 @@ static void RequireMainMenuContinueRunState(string root)
"Unity entity wrappers are observed daemon facades, not authoritative state; keep the daemon as authority.");
}
if (actionGameManager.Contains("ItemManager.GetRuntimeItem", StringComparison.Ordinal))
{
throw new InvalidOperationException(
"ActionGameManager still resolves item metadata through Unity ItemManager instead of the runtime catalog.");
}
var missingGameplaySymbols = requiredGameplaySymbols
.Where(symbol => !actionGameManager.Contains(symbol, StringComparison.Ordinal))
.ToArray();