From 9cbd9eaa2a142a35cb7a8c8a6e0c33ddca31c10c Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 14 Jun 2026 02:35:36 +0100 Subject: [PATCH] Use typed fields for properties presentation --- .voidbot/state/aetheria.cc | Bin 60094 -> 59938 bytes .../UI/Properties Panel/PropertiesPanel.cs | 14 ++++++-------- docs/aetheria-perfect-machine-map.md | 9 +++++---- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.voidbot/state/aetheria.cc b/.voidbot/state/aetheria.cc index 79fd45effd062a1ae267c0f3a7a58bff0c514dbf..6ca42983b473d816a32da80a3388afad736bba81 100644 GIT binary patch delta 1175 zcmZXUKWG#|6vj<1=*3DTLDUG(N|4JYcS%kz3WB5&F~%5CQz&!0@Af8{ojGP^J=Z3R zb|M(27nJx1E9H8{LR&3Vh=_l%uoeqj-|pRoTzx$)}ev&`PQ+e3(Ic)(p|4U zr&R;B9m&;0n99%0T$C-&28d6u_z7cv;KAqEEvm$fO-;WX3_KjyHzo?QUDTN zkHw8pvjBIt6b?ZLq3glx0+a! z3N*Ef)B@9%327(komyG&Red{Z@>aOBKZjR-&nWWO5-68et01O{|Je%EspHgE)c?}r z!7N_0uyq}cHb5rCB%@_IM4M5p1az)81~gbA6br}J6Tsh4eq=2t9g*zKKs-#Fd z$aJ30HR;VsYM91|ahc|$i?Lxu8kVZ&L5S`Feum>GHs7v|j+yIe@ZGzm{R3%K-N9QU z?uI|=?yucy-456Kc6aXkWNC5Dve10lHsq%H-;o!o_5neS1{kSSucr|`Xu8jHWde0`Nqzn8tzxci;k<6eD>J4;IA9Fpm9*0O N^ZoT;w^W>1{0F|lv2p+a delta 1246 zcmZvc&ubGw6vs^?+6sbH@D~d2q$p|9Xk%(Uh!DjdT0yO-=wY(^k{z9$S!X6`BS=8K zdGIg?@u*b23ORYP7YklQsg`2#*IyurhhBZjW}8&JWnX6Ae7~Rfoq6^-{bo7+>czlN zzA%x`XN&nU_w>guw>a=HsT|FBDk^;^sT_+dgPRWwtln=O+I)P*Exf(gyilrXR_21+ z21FVSO3N%)5`2^@1eQyi0pkT2(g|L?!%e#_LxPo2m<&YjR=D?wRNcL9q^vvjWOp;ts*WVNV<@Nzk()&p(WEw729K6$R>kZ~i_*|2zx=t-6;sB5 z)j9bvmJ1OhNCfv>WgtLCqhevGGSp59pJ45XXTm(o>z#zS=@WaJUC{|&lG2YyBl8VZ zv~I@sy@BI!#8DBxt?4ZkU04|6spU zAKy40mfT&p*cxA&PYsWbO&lG~7RL(L<}It5ubXzdU!T@oYT3Bl;&5x_>bIM%wa?p! z2IGh4c;0 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