From a747e6dda407cc93f8184be0712941606b19263e Mon Sep 17 00:00:00 2001 From: Psychpsyo <60073468+Psychpsyo@users.noreply.github.com> Date: Sun, 14 Jan 2024 17:44:17 +0100 Subject: [PATCH] Plates & Cash gridinv visuals (#24075) --- .../Systems/Storage/Controls/ItemGridPiece.cs | 4 +-- Content.Shared/Item/ItemComponent.cs | 6 +++++ .../Consumable/Food/Containers/plate.yml | 25 ++++++++++++++++++ .../Entities/Objects/Misc/space_cash.yml | 4 +++ .../Objects/Economy/cash.rsi/cash.png | Bin 369 -> 286 bytes .../Objects/Economy/cash.rsi/cash_10.png | Bin 437 -> 292 bytes .../Objects/Economy/cash.rsi/cash_100.png | Bin 427 -> 291 bytes .../Objects/Economy/cash.rsi/cash_1000.png | Bin 429 -> 290 bytes .../Objects/Economy/cash.rsi/cash_1000000.png | Bin 2484 -> 1109 bytes .../Objects/Economy/cash.rsi/cash_500.png | Bin 432 -> 299 bytes 10 files changed, 37 insertions(+), 2 deletions(-) diff --git a/Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs b/Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs index 0ca1797965..8b51a3f219 100644 --- a/Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs +++ b/Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs @@ -157,8 +157,8 @@ public sealed class ItemGridPiece : Control } // typically you'd divide by two, but since the textures are half a tile, this is done implicitly - var iconPosition = new Vector2((boundingGrid.Width + 1) * size.X , - (boundingGrid.Height + 1) * size.Y); + var iconPosition = new Vector2((boundingGrid.Width + 1) * size.X + itemComponent.StoredOffset.X * 2, + (boundingGrid.Height + 1) * size.Y + itemComponent.StoredOffset.Y * 2); var iconRotation = Location.Rotation + Angle.FromDegrees(itemComponent.StoredRotation); if (itemComponent.StoredSprite is { } storageSprite) diff --git a/Content.Shared/Item/ItemComponent.cs b/Content.Shared/Item/ItemComponent.cs index 1ef6592b08..9fadfa0783 100644 --- a/Content.Shared/Item/ItemComponent.cs +++ b/Content.Shared/Item/ItemComponent.cs @@ -54,6 +54,12 @@ public sealed partial class ItemComponent : Component /// [DataField, AutoNetworkedField] public float StoredRotation = 0; + + /// + /// An additional offset, in pixels, applied to the visual depiction of the item when displayed in the storage UI. + /// + [DataField, AutoNetworkedField] + public Vector2i StoredOffset; } /// diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml index a6ddd725b0..63c47df67e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml @@ -15,6 +15,10 @@ - type: Sprite sprite: Objects/Consumable/Food/plates.rsi state: plate + - type: Item + shape: + - 0,0,1,0 + storedOffset: 0,-6 - type: DamageOnLand damage: types: @@ -60,6 +64,10 @@ - type: Sprite sprite: Objects/Consumable/Food/plates.rsi state: plate-trash + - type: Item + shape: + - 0,0,1,0 + storedOffset: 0,-6 - type: Tag tags: - Trash @@ -76,6 +84,8 @@ - type: Sprite sprite: Objects/Consumable/Food/plates.rsi state: plate-small + - type: Item + storedOffset: 0,-3 # Needs the full thing because inherting is dumb sometimes. - type: Destructible thresholds: @@ -106,6 +116,8 @@ - type: Sprite sprite: Objects/Consumable/Food/plates.rsi state: plate-small-trash + - type: Item + storedOffset: 0,-3 # Plastic Plate @@ -118,6 +130,10 @@ - type: Sprite sprite: Objects/Consumable/Food/plates.rsi state: plate-plastic + - type: Item + shape: + - 0,0,1,0 + storedOffset: 0,-6 - type: Tag tags: - Trash @@ -131,6 +147,10 @@ - type: Sprite sprite: Objects/Consumable/Food/plates.rsi state: plate-small-plastic + - type: Item + shape: + - 0,0,1,0 + storedOffset: 0,-3 - type: Tag tags: - Trash @@ -146,6 +166,11 @@ - type: Sprite sprite: Objects/Consumable/Food/plates.rsi state: tin + - type: Item + size: Small + shape: + - 0,0,1,0 + storedOffset: 0,-3 - type: Tag tags: - Trash diff --git a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml index 5925d3a848..27e19bc3bd 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml @@ -4,6 +4,10 @@ name: spesos description: You gotta have money. components: + - type: Item + shape: + - 0,0,1,0 + storedOffset: 0,-2 - type: Material - type: PhysicalComposition materialComposition: diff --git a/Resources/Textures/Objects/Economy/cash.rsi/cash.png b/Resources/Textures/Objects/Economy/cash.rsi/cash.png index 3aad68162c08f3da27d18471cfb2df429468f5f5..42e7b863e685d9974b0f2cf88fe948c507cc45d9 100644 GIT binary patch delta 270 zcmey!G>>V5WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$hEfKP~P zf-NVTGaFM1)6P4nJ@ErzW#^d=bQW)wP81g+`978Pp-}Za+9Z=wKVP&-cZeL*9ka=a>ZMC;K zZ0*looNF)eueisdBd)_>;#%wy%hM1s$sk~vozP{Tf=Ba;(o!axy_b5iZDDE>@0MJT z~GuXvsahwoPTw;)v#*(@Tu3w`D*DM zpdWPY3`5{5$Veg?B*@2IJjd6_$6X|Y1gv0?k;LJ}0c0d?Y_#SqBk5fZ0GO+wN`-0v z6ln%(&tHM_60*Ws`l9y@ z4S)?cjrH0N`a^pgKfbP^*M8lv(bk`kAPC|UVvdHLU^hmE00000NkvXXu0mjfsFtMs diff --git a/Resources/Textures/Objects/Economy/cash.rsi/cash_10.png b/Resources/Textures/Objects/Economy/cash.rsi/cash_10.png index 2613a7508b2d6f5e40dd304df7a302fcd9bc43f3..05c477501682b5b2bd84e241465690655a617e43 100644 GIT binary patch delta 276 zcmdnWyo70jWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$hEfKP~P zf-NVDg)5(X;?7cWr^bn@Id$ju3GAI-e)+T_v#K6Y)u*H#+kq5!NswRge>h<9@@M=6 z6y_}Oh%9Dc;5!V$jK}j=q%hPoFqC?_IEGmGzwJNBci4c#nR~0^$^Z2QyIG4o!rn%$ z{CbqDE+Qqn{tHuVIm@(GiH^2!1y|*G7);E$xQ=)jpJSM-Fy$#vV#D7o2eTThX>G;# z_wiO;e6aYS=l7>=7Jq+!p?c+idbAWzmUYN`>zwODK}i>i|8Gi-<0047(dh`GQ00DDSM?wIu&K&6g00D1FL_t(oh3%9-NCHtD z$3I07xkwzRAimK_5C@A8gqD`363W`zY`RGhauA1tz^Tcm#*pCLgf_vUsHVWdso_Mh z;}9K$CL81q3D3KshTwgc_wN0^@7GX#lOhu8bVbtIC8KIgfBUFXJj|A+q zGH=T6`@wY!gsM;q_1VnaGVJClv@3H7BpuDi+Y`fX9>cWA=^C|oAAp>$0fwi6g(uX{ zEqF*YIeOps{DIdka7|z`>Ul2iN8`mp15<0@Ir08^>>o?_XZ+SnD3M4c-;g|pTE~)+ Q!TB9}XD2{24z1 zg*gj6B8wRq_zr_GM@}-M%23Q9SB$?&Pu< zftklUR@%N`_sM6O#+c8rYg4$3F`I*q7EcIA%kP z57Zppo93N=xv6>mzW=To)vN}}4N_il*`~@33xDo2ORHtdc*{^Eru=US%jDZUKxZ*{ My85}Sb4q9e0ItVmB>(^b delta 412 zcmV;N0b~B70;>a%8Gi-<0047(dh`GQ00DDSM?wIu&K&6g00Cu5L_t(oh3%6uNCPnx zhX0;j>LNmUq$2I;dPoZ{4pyDq927UN9l95x1!tiJadfLUi8u%@oosb+aMDq_sR(z3 zLd8j;Z5+gKmAgv@7a`yBAn(u1&z}S^7z_r3;lHxGoDzRACx02XI5SlgiE$=&_Q8JUIn$^1ln1DOL1Y5L@|44M zG#JIVLk)b6)Pv9N-nDcpLJfT2F*deuQbJE>Fc=K+d=&x8i;6DEh;OU_0000yohOnWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$hEfKP~P zf-R>jGjj|R)6P=yZe8sXdHHku1oloZzkFIzot*`!>daC19w5bC666>B9}XD2{24z1 zg*gj6B8wRq_zr_G9>|~9VIP?5#(lcQvP4?LR%AZ;H%Fbor20F{r L)z4*}Q$iB}CAVbr delta 414 zcmV;P0b%~40<8m(8Gi-<0047(dh`GQ00DDSM?wIu&K&6g00C!7L_t(oh3%8EN&`U@ zMb9L$P}WH$Bg%e2NU@Mg3oA(>q!tYbrV6AHBBGz5g@uK-DU_HG2v`_P!OA|ZAUIfr ztlI=))*_oNLXusgjWDNs`|iHEb9n;>gTY`h{8tXQ7X81NlYg4@F`rEO%AY-de?!uL z?nRoo8w|v(eqvg~$!1u!ZK^Fv>H36fOR{R)Xd!U28P;}}aIzV+5Mi&{k~rB+SjS;v z0sz|e*g4yyUTUCZ6YZu^(n9$@+Vy}0+V!}2Tn0c%3+M*DVf_)qz|;hkw0JmgP^@*y zRSGC+p*28*k1KRaa(xP5U^Lo={`|5oxfj|@N%E(l` zln%AOGN7bIu2KjS7~N_-0WAcbb{Xw@blPQyh_;r8+~@_?vUFntNd z%>QC*qL^slEfqcZ{>6=@<9iMR?Os1}@+J#@9G$^nFc(De1Bgk6DGvP+1^@s607*qo IM6N<$f;vjL?f?J) diff --git a/Resources/Textures/Objects/Economy/cash.rsi/cash_1000000.png b/Resources/Textures/Objects/Economy/cash.rsi/cash_1000000.png index ad723d598b85cec23e544372a87b63c3c7a80e76..389f00ce1593c4b2949549e763bd4050733f6379 100644 GIT binary patch literal 1109 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Py!3-o1GtKD$QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`V*`9bToY_L*__#!QkZs@inCa_^0_DSGdl?|M!QUP**m@5qRHa&X~lE< z1e_Wts^-+Wns)2U7qjTIFstfuFlf54xF#?qx-v7zFfnx+c9knubn9xD$jj?8>#DP} z0Bw*cm6#2rWD|{$K?F~fBub{rK7q-c|c|1r&KG!?N6S}u*ump`~Fl;CM8D)6^;%T zM!|Rop%|It;q`!AWOk(c1AkWuf(HOEca#rqTo4Z1(niJInrYz|) z()*;O*ZJe5@QPQfmRYSV@_N;^VqFcRTyW}3z0<~zE^3~&Y22j2t@SO{uR4iU%eFCU z;-kRVdzN)cUp&Ehetr+Las9PTi~`~|4TTOH=hW+yeu9{m5ndWFZu2MgwvDXeAuyPb`T@7Xnm==8m@PdYB-Z#QE|a&NKg6WplM$5A^; zfvItEa`V56EsP(Y-dOPem(!6?Z-MkbHx?%5f1A%g+VSPkX%@zb3JO9jE=>&{0s_Dg zn6IwDsn_?o`?93Vi}UHy4AZqcF2t|zh3)9o$G)zq_QPh0VkWmnvG@9E_( ze>zVHKj?|P`R2}(Z8s;}wqlf^*_7g#wQ{(q40u_<%7VRjWg@7|K_XsXS1qo z!E^h!4pGd%@_8$G<C5uTybayTPW3w#k`B&HdQ`*MI2-8UvdxSi z9s@o4)A2}?@zEncnFxFLd48Gh=a~zICEhJNdC#{$|GH(~yJctZ{`#AD>(hj}#c{u9 z+_q{AdRR8M{W{m;+oen2zyJF7S7S--f^RHxn~Ue#^WXfrm^u2PLHTQ8QNEyUb`vD{ zgZXmG>MniWKVP4XechpjvLBWg)*k4IdcH*VN;11m{lC~P%>O3-;4v;LSYP0?p7D5Y zZ9*FF9m)JW-VLSKZoBp!{mRIFPDJ=QH^&0C4=%L_2z%v2nIn(J-8Xjq!Y``My>H*0 z`LBAr!}=1|Ls!@>EZ_b8b>Op&mBcINTZeDUzOb$ie|W*PX}k4V6GSH*sIQy3o&SX}D0!SX#k7BaJ!hE_`>fV%LtwUJ@O1TaS?83{1OV)V@#_Ep literal 2484 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