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