From d21a8b5cfd2a17c42611ec79ac77bb1e67206460 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 14 Jun 2026 01:19:42 +0100 Subject: [PATCH] Use typed durability in schematic HUD --- .voidbot/state/aetheria.cc | Bin 56946 -> 57072 bytes Assets/Scripts/UI/HUD/SchematicDisplay.cs | 22 +++++++++++++++++++--- docs/aetheria-perfect-machine-map.md | 2 ++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.voidbot/state/aetheria.cc b/.voidbot/state/aetheria.cc index 6994eb2fe1eb3dc9bddb30ed8d7ca08ef9c83edf..ddfda4c06027b6ad3501265a1515aad7efd78aeb 100644 GIT binary patch delta 877 zcmZ9L&ubGw6vr_s+JHnsNW_E8tq3L|n)HXQCj+(6daw%8+hq48JFq*m%*-ZT1dE7> zASeuqg5H#ZA}GO|1rPqHH!)uFM+mKV(KpGaNqd~foA>>E-+brK$Mnut`rT&g$n1r3 zwOBrHcDi}6^nswO^Q=IDP0tXKLck*8IIy$Af@s=8((RYs8Cu zpHS`+rXe71Bx#-bOvfYy=>XTX35syhCXoWOdn=y}==xZjdANMiG-i)qd*%3)1--kg zEC_udYM;p1SQoem7^hlDMW_T4N>EluGr>uNI$9CY=HQZgZ1s*x(N<@XK-z)0imD&=?1B74e}-otU6($P{qEXfWc~PP8W! zkUDs@#e^&=P*x{_!XgkIhZ~3{ZGV6+BZ0z5 zSc!6|Ph~P&3p*JHd*CCQnnz?Smw+!JagAz91oz`Bq#@)UcnoUZLx?Q4Azd+~9!jKt$}@pBSOtwM@YOrO2b$Z#sfwZi9&-(rA?`vH_`Ugu|cTI)wP$HL-oSE*?yjVyEm-h zMQ&&Ddp46~y<9av(x;L`b*>-$$3H(Mh3QK2H4dA&8xD)M>uK_tW;&04^)i`(=*;xm Ee@0bH*#H0l delta 856 zcmZWoJ!lj`6ef2;atMkTQ55twB7)v|NAxbH(-a02iN@x-x!t#WV`gX8nc19&U_h}D z1kuGVr5dmj4y+7FG-x^@T3l^wp*B{6Z|8Oc(e~T7@B4Y*{8%ghdRuF%mT_+SzpFb{#5e}*z&c#1q&=pYy_h*k8-Pt3@V51l^DS&W?4Rg2P42*Zb$F=SpJ zmYvnvg{xUUoLu{wFJ)VzL^$8TB>48u_(4vE4#!CMIHL zkwWuS6brPNTcR|XP$78;H4&7QOy}QEEK#MkPiHi=1}`8ZaR`%v&@w zU^Oyg+Yy{|MRCz>U0#k$N$@eCUKp?n0)Cs+!AK8;z@u1cTcg6 1) @@ -255,4 +254,21 @@ public class SchematicDisplay : MonoBehaviour } } } + + private float GetMaxDurability(ItemInstance item) + { + var typedItem = FindTypedItem(item); + if (typedItem != null && typedItem.Durability > 0) + return (float)typedItem.Durability; + + return _entity.ItemManager.GetData(item).Durability; + } + + private static AetheriaRuntimeCatalogItem FindTypedItem(ItemInstance item) + { + var itemId = item?.Data?.ItemId ?? Guid.Empty; + return itemId == Guid.Empty + ? null + : ActionGameManager.RuntimeCatalog?.FindItemByLegacyId(itemId.ToString("D")); + } } diff --git a/docs/aetheria-perfect-machine-map.md b/docs/aetheria-perfect-machine-map.md index c8783c149..e2fccabfd 100644 --- a/docs/aetheria-perfect-machine-map.md +++ b/docs/aetheria-perfect-machine-map.md @@ -89,6 +89,8 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. falling back to defaults. - The combat schematic HUD uses typed runtime catalog weapon facets for its static weapon icon strip before falling back to legacy `WeaponItemData`. + Hull and item durability percentages use typed max durability before falling + back to legacy `ItemData.Durability`. Runtime weapon behavior still owns ammo counts, active range, cooldowns, temperature, and durability display until those session facts have typed runtime surfaces.