diff --git a/.voidbot/state/aetheria.cc b/.voidbot/state/aetheria.cc index 79fd45eff..6ca42983b 100644 Binary files a/.voidbot/state/aetheria.cc and b/.voidbot/state/aetheria.cc differ diff --git a/Assets/Scripts/UI/Properties Panel/PropertiesPanel.cs b/Assets/Scripts/UI/Properties Panel/PropertiesPanel.cs index da194bd51..06dd2156f 100644 --- a/Assets/Scripts/UI/Properties Panel/PropertiesPanel.cs +++ b/Assets/Scripts/UI/Properties Panel/PropertiesPanel.cs @@ -372,17 +372,14 @@ public class PropertiesPanel : MonoBehaviour private void AddItemProperties(ItemInstance item) { var typedItem = FindTypedPropertyItem(item); - var data = typedItem == null ? GameManager.ItemManager.GetData(item) : null; - AddProperty(typedItem?.Description ?? data.Description); + AddProperty(typedItem?.Description ?? "No typed item description is available."); if (item is SimpleCommodity simpleCommodity) AddProperty("Quantity", () => simpleCommodity.Quantity.ToString()); var sheet = AddStatSheet(); - var manufacturer = typedItem != null - ? ActionGameManager.RuntimeCatalog?.GetManufacturer(typedItem) - : ActionGameManager.RuntimeCatalog?.FindCorporationByLegacyId(data.Manufacturer.ToString()); + var manufacturer = typedItem != null ? ActionGameManager.RuntimeCatalog?.GetManufacturer(typedItem) : null; sheet.AddStat("Manufacturer", () => manufacturer?.Name ?? "GameCult"); sheet.AddStat("Mass", () => ActionGameManager.RuntimePlayerSettings.Format(GetTypedMass(item, typedItem))); @@ -392,7 +389,7 @@ public class PropertiesPanel : MonoBehaviour private float GetTypedMass(ItemInstance item, AetheriaRuntimeCatalogItem typedItem) { if (typedItem == null) - return GameManager.ItemManager.GetMass(item); + return 0f; return item is SimpleCommodity simpleCommodity ? (float)typedItem.Mass * simpleCommodity.Quantity @@ -461,10 +458,11 @@ public class PropertiesPanel : MonoBehaviour private string GetTitle(EquippableItem item) { - var data = GameManager.ItemManager.GetData(item); + var typedItem = FindTypedPropertyItem(item); var (tier, upgrades) = GameManager.ItemManager.GetTier(item); + var name = typedItem?.Name ?? "Unknown Item"; return - $"{data.Name} ({tier.Name}{new string('+', upgrades)})"; + $"{name} ({tier.Name}{new string('+', upgrades)})"; } public void Inspect(EquippedItem item) diff --git a/docs/aetheria-perfect-machine-map.md b/docs/aetheria-perfect-machine-map.md index 34054dcdf..f7be28e29 100644 --- a/docs/aetheria-perfect-machine-map.md +++ b/docs/aetheria-perfect-machine-map.md @@ -155,10 +155,11 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. missing typed hull rows no longer fall back to legacy `HullData`. Loot pickup presentation now uses typed catalog category/name rows to choose weapon-vs-gear pickup visuals and scan labels before falling back to legacy item projections. - The item properties panel also reads typed catalog description, manufacturer, - base mass, and max durability for item presentation before hydrating legacy - DTOs for behavior reflection and thermal curves that have not yet moved to - typed behavior surfaces. Inventory selection highlighting now uses typed item + The item properties panel also reads typed catalog title names, descriptions, + manufacturer, base mass, and max durability for basic item presentation without + hydrating legacy DTOs; legacy `ItemData` hydration remains only for behavior + reflection and thermal curves that have not yet moved to typed behavior + surfaces. Inventory selection highlighting now uses typed item shape cells only for UI tint geometry; incomplete typed rows produce no selected-cell mask instead of falling back to legacy `ItemData.Shape`. Inventory cargo cell tint now uses typed hardpoint facets only; incomplete