From b7dbd74947d832f9bd0164cd2c8487a65bfc6981 Mon Sep 17 00:00:00 2001 From: Swept Date: Mon, 10 Aug 2020 23:53:19 +0000 Subject: [PATCH 1/6] Adds Memory Leek (#1640) * It is done * Fixed attribution --- .../Entities/Objects/Consumable/food.yml | 19 ++++++++++++++ .../Food/memoryleek.rsi/memoryLeek.png | Bin 0 -> 1968 bytes .../Consumable/Food/memoryleek.rsi/meta.json | 24 ++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/memoryLeek.png create mode 100644 Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json diff --git a/Resources/Prototypes/Entities/Objects/Consumable/food.yml b/Resources/Prototypes/Entities/Objects/Consumable/food.yml index e078357d06..5a1c3e677e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/food.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/food.yml @@ -3047,3 +3047,22 @@ sprite: Objects/Consumable/Food/banana.rsi - type: Icon sprite: Objects/Consumable/Food/banana.rsi + +- type: entity + name: memory leek + parent: FoodBase + id: FoodMemoryLeek + description: It makes you irrationally angry just looking at it. + components: + - type: Food + - type: Solution + contents: + reagents: + - ReagentId: chem.Nutriment + Quantity: 9999999999 + - type: Sprite + sprite: Objects/Consumable/Food/memoryleek.rsi + state: memoryLeek + - type: Icon + sprite: Objects/Consumable/Food/memoryleek.rsi + state: memoryLeek diff --git a/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/memoryLeek.png b/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/memoryLeek.png new file mode 100644 index 0000000000000000000000000000000000000000..531fb827998ff6e743dafa1d86eb5dfdfa8a6827 GIT binary patch literal 1968 zcmV;h2T%BkP){}7zgu%E{mE)Vl`PdQG{e--B_fKEp{K&L?;k1 z!(|)j=4FW!V|LMGi&>_4$;2s!VL<8B%5~TlOMyy@o_!#1eSuQi_wu}={Us#W*8b0P zo^#Igw44Kk2=P3_scnE<s}jNy?xLm>0mKi zFp?wWhSx_A!D6=Hc-ip9D;fP#)-RhuIi_rS-0OfQWrklzD21^!pJKxMap!gmoP7h2 zvD6p4{ujiE8Ox0%{I@p(0icHv6W)*L2w;stPiqW%^7S5al4HvDI$x8d1Hj(-V%Hz^ z8DK0oQejRZClr2guM_AQ&=ESqsbCi5n6fE$QY`FEmZ#&|DRTXyGGHjY12joGueg#W zNEmUNBpo(x)swL_pGmfjW=pW^m*gNm3Jdd!IQ|;Qmw>{&B4+n){s6W&SupeE1k~2I zFfBn+Y>|`!?oNl_=d%hnP*%YP<)gCai9~IE3v|gk7)$e+XM-icc%lG6zkPLURKGmbbh8mPcJ3wytTh@X9bs4uz?UBh2zEFjp_^0 z8*pgI&R)OVIP5hC_l$0U6of%={aPbV96rqfgM%QeU;`;-$4L6YAnB8Era@2BvJ@WkQM-0F49X{ZfK2LZ32ocf9=P0?onzx(F8ft_dVe4+lHZBIVou3opC zS@}6sR>=vq0buFMH`wU!tH>pmi+$Sk{SnM2h$=z*Dst(qj3uz$|5?m`myFu_eD>8} ztM^%U&-{8`xe`=$u7uuSwZ!LhEUujX^jR@~?vxRoA1py-K-IYtN=;1!0EAhc0DuO2 zB>_N+M$ajI;Q7*LN!7U$s%dP5oY^Pp5VqNzxKY=P9iOuKW6Nmzr!ExJsSCwS&I7r# zFW?Mtv{lpi7d2>ZuR>yc8WQ6H;B%yC^vpIPE&XH8(N;}~@frYCaCMofp{^D!kMAg= zm!O?Y0MK&J$~oGq>Ct!#0C}@7s1oGz)Zj*4GrFy{NJ*U|n-Rgn+mRR#%v+S9SOB!# zvkrT2f7yTPLNTpayj6aC9BtL)>N3+$CwHiF?enGY>N1n7%dD6^3EIh&pq)(q)?Rbz zB-LCxDanR_Gr;Akk)k7+q52ahCM#O{1kq0}PYu%2XZw7e)C?T;5aw&Y&E|wIK2?gA zDAd*mfC=IAV6!##;xOlpXYeU=%h=K4c~2oYkev1@-`sAj4~{uj9+=Ld=G_u4H*28!tE zLFWS-4wU?&N^cJT`%}>|Hwv;D_3bZy6M7&nJjQ79(?aZ=$e=4)p!kikVwJf&I)M-u`$NWkBuu1S!a7SoTLN$zylp z`@_Fs;k1dUZg(VEZx1L2qyAvC?vY8D4)Spj~f-D>G zWquj=b@A_9Z}WF*d5BB4vx$?^7q;iEqvU^}QG21y&Rc~>q88(}@3J{&!A z8F=`RTf2Cwbn5~@YJa}kNV)~>-~QF01$NwN#Sdl2n06-%dD4?_K~z+fqK&z7A$kKo zEZjoT6QkjFxxL-U-JVAP*tDqg!yy1*Z@3F*-{5k?WG+DlL^~>D;|lus$G@;_*Ls}$ z_6QcevjnBPk1>z7q5b(|<^C@kzE>t~>FWf5|51fZgPu&K`BbnsZ&0HyKgBt8n)7KS z=tG$A7Fh7+0$grA3;4()mg(a>3p_D%i{Jt7ty@eYL2M zg~;a-eF(?J$o4goDCWT|$Va|PLZ2Y>0dXIrUvT14q75q>`4 z)!A`M$}l15NV#h{L^^FcIBo_S?3GNLbAcx<>Ky`A);7pVP#Mrre}Ht_x!7bf0RX3# z^8t0{1C$`B4VXSX0l*wwsaUI!If21;Qw-)yPt398f zBmtcPee?kOx8H@`R>{NxzA`}V`2?jHbpxE8SLk;0#Sx!ZqIp&5eBpdRTKa5eLBI;X zb+p_14_RGpn31$>&};3sO43YH{`Mj4&$rwRgKpNq*WE0%S>g8(?(XTu4BfI}i)HNq zzCZt2ay*aU4e02w4||L+0j!+SQ1_hOctV7DuJ|9We3j6nD+rPR0000*6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json new file mode 100644 index 0000000000..26465110fd --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json @@ -0,0 +1,24 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "Thanks Yeeye", + "copyright": "By Yeeye", + "states": [ + { + "name": "memoryLeek", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} From 27bbb89fbfc89b457ad6233d00e53c6ffaf85b87 Mon Sep 17 00:00:00 2001 From: Julian Giebel Date: Tue, 11 Aug 2020 01:55:18 +0200 Subject: [PATCH 2/6] Add a check for construction ghosts beeing present to ConstructionSystem/SpawnGhost (#1642) --- .../EntitySystems/ConstructionSystem.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Content.Client/GameObjects/EntitySystems/ConstructionSystem.cs b/Content.Client/GameObjects/EntitySystems/ConstructionSystem.cs index 57537e8a5b..700393b9c5 100644 --- a/Content.Client/GameObjects/EntitySystems/ConstructionSystem.cs +++ b/Content.Client/GameObjects/EntitySystems/ConstructionSystem.cs @@ -153,6 +153,11 @@ namespace Content.Client.GameObjects.EntitySystems /// public void SpawnGhost(ConstructionPrototype prototype, GridCoordinates loc, Direction dir) { + if (GhostPresent(loc)) + { + return; + } + var ghost = _entityManager.SpawnEntity("constructionghost", loc); var comp = ghost.GetComponent(); comp.Prototype = prototype; @@ -167,6 +172,22 @@ namespace Content.Client.GameObjects.EntitySystems sprite.LayerSetVisible(0, true); } + /// + /// Checks if any construction ghosts are present at the given position + /// + private bool GhostPresent(GridCoordinates loc) + { + foreach (KeyValuePair ghost in _ghosts) + { + if (ghost.Value.Owner.Transform.GridPosition.Equals(loc)) + { + return true; + } + } + + return false; + } + private void TryStartConstruction(int ghostId) { var ghost = _ghosts[ghostId]; From 679fe8ad0494be2a36c35488ad4547fc5ca68d11 Mon Sep 17 00:00:00 2001 From: Swept Date: Mon, 10 Aug 2020 23:56:17 +0000 Subject: [PATCH 3/6] Removes USA and Soviet vending machines (#1641) * Removes sprites * Remove da machines --- .../Catalog/VendingMachines/soviet.yml | 5 ---- .../Constructible/Power/vending_machines.yml | 24 ------------------ .../Power/VendingMachines/ammo.rsi/broken.png | Bin 1264 -> 0 bytes .../Power/VendingMachines/ammo.rsi/meta.json | 1 - .../Power/VendingMachines/ammo.rsi/normal.png | Bin 1279 -> 0 bytes .../Power/VendingMachines/ammo.rsi/off.png | Bin 1264 -> 0 bytes .../VendingMachines/soviet.rsi/broken.png | Bin 885 -> 0 bytes .../VendingMachines/soviet.rsi/dangermode.png | Bin 2942 -> 0 bytes .../VendingMachines/soviet.rsi/meta.json | 1 - .../VendingMachines/soviet.rsi/normal.png | Bin 795 -> 0 bytes .../Power/VendingMachines/soviet.rsi/off.png | Bin 613 -> 0 bytes 11 files changed, 31 deletions(-) delete mode 100644 Resources/Prototypes/Catalog/VendingMachines/soviet.yml delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/ammo.rsi/broken.png delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/ammo.rsi/meta.json delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/ammo.rsi/normal.png delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/ammo.rsi/off.png delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/broken.png delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/dangermode.png delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/meta.json delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/normal.png delete mode 100644 Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/off.png diff --git a/Resources/Prototypes/Catalog/VendingMachines/soviet.yml b/Resources/Prototypes/Catalog/VendingMachines/soviet.yml deleted file mode 100644 index 65373a505e..0000000000 --- a/Resources/Prototypes/Catalog/VendingMachines/soviet.yml +++ /dev/null @@ -1,5 +0,0 @@ -- type: vendingMachineInventory - id: soviet - name: товарищ-vend - description: Rodina-mat' zovyot! - spriteName: soviet diff --git a/Resources/Prototypes/Entities/Constructible/Power/vending_machines.yml b/Resources/Prototypes/Entities/Constructible/Power/vending_machines.yml index 642895efc1..c53aa0cc93 100644 --- a/Resources/Prototypes/Entities/Constructible/Power/vending_machines.yml +++ b/Resources/Prototypes/Entities/Constructible/Power/vending_machines.yml @@ -52,18 +52,6 @@ - type: Anchorable - type: Pullable -- type: entity - parent: VendingMachine - id: VendingMachineAmmo - name: AmmoVend - components: - - type: VendingMachine - pack: AmmoVend - - type: Icon - sprite: Constructible/Power/VendingMachines/ammo.rsi - - type: Sprite - sprite: Constructible/Power/VendingMachines/ammo.rsi - - type: entity parent: VendingMachine id: VendingMachineBooze @@ -324,18 +312,6 @@ - type: Sprite sprite: Constructible/Power/VendingMachines/snack.rsi -- type: entity - parent: VendingMachine - id: VendingMachineSoviet - name: Товарищ-vend - components: - - type: VendingMachine - pack: soviet - - type: Icon - sprite: Constructible/Power/VendingMachines/soviet.rsi - - type: Sprite - sprite: Constructible/Power/VendingMachines/soviet.rsi - - type: entity parent: VendingMachine id: VendingMachineSovietSoda diff --git a/Resources/Textures/Constructible/Power/VendingMachines/ammo.rsi/broken.png b/Resources/Textures/Constructible/Power/VendingMachines/ammo.rsi/broken.png deleted file mode 100644 index 129cdb87e827bdae3aa68e8c9b5904a4bc3a8727..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1264 zcmVC9xZUG%{h4-9wa&Yd~`^FJT= zT=-x9V-cIZ%vzRI_nl4FX`$!vTFp170lzexo?c_nPj|&)@=eQPBp#O@!FgQ=5vE5+MXqO0L#weeXR08`sC>bgs;Ft_<5@rasI^w{J7@ z+SjaJIZEcpMQ?0fd+(u&zu37GDJ8EYlYDF2{O&lkq{Jl{Gai8HTp55*=N{oiehtGg zB9*URIm(A)V-E%JtOogcyjDeS7y)60otZA&qW1iDV!>wJ0V>HF+YxMxoph z(9LOJOTLC^7o@Tld$!yBcB=x*j}H9S0Qg~k6h8~6j#q)LSvp8AJ^unfEmYaqus|QY z&Hzv>DEbfdO7K=0h?3N?Do-uNx5hv?4o)7g(v*@<%H@9yz#jvH3x0?J6$b|_OIkww zD+V6xWxdt-1?mAvPb~_76Zth_5t~o;TpLT*nclXI zw9#+U1>2_HYI)C3(?nl4$QZ+00|4E0gy`mDM@D1nGs$o~PCVp-R4m53=`;z;^5!nz z6kNV3`1LO<{HuTjOi{tO*#}R4+_m!0_aDSZOxH>4!DK({V@VEhX&(TUj^PjeRZdDt zMza~un+&B)ig}}N&1qjOD0zDTfPf2>a{r_dg6z3AJ2KtbV&35NT#Jd34liX*cF(zy z4NESUV{&qmTrM|2bqIjU0{@mQgus=OcB2~=J2DzV2wuOR=3d?8{%RM5atl0QtyC&8 zF)=}@RPx?+LSq1c%7U5M718ni$aWkS7AjP3-KSBhVLJ{(rpdwwCdE5$0EFMyg+hV( z`FRS3LO@x#zl^K{%6fo~lwAAHW#3yaOMlb?MW~oJ0w8wJb$x$E*8|sC!|=cjY)F*< zXJ%J~IuA%G(Sa8a8a(rCn+h?)Qp_7L=Tf|b7m&-12Fs4ap5bA1t!twY!rSKidO{Wb zJ^#y-z3o^C!M1pu#m{x5l(b?o^d2+q-Z{Vn;bU#hb@{p3WN#|vb;Lkqf%9f2M>VM$ zlB{LPSCdI^QBz8+-p5h*{?=Ovf!pcObX}6BNmEM99=I#E?O7i-rQ}kn)b`#5uySQcPNecor1G#CCd<9N zfAc2&FMZ9@#X}?yoOQ?A<+s;W{Q1_cNGW+C9_RaFksG#6O-da6G2;T5NaX?ec;*qN z)5{o!5vqLY;vr594z3H}=V2RwuPE_aDUJ{VU5GZy4S>-BO)BMH2~(ataF*J=d%ksw zX0N>YN)zPWMcZ8yj0YbB*?dDxP8EPw`o#%V9%SI^>MB=jHBvo248>yZe15UOJF~l( zJ9ii6KzOpq2SEA${F#0UFgaClO;NrMjwb^QgvpMPog5KWRvt*kjAl6rWgs!WAVvo? zIh|f6n{Nnc<}|P&UqiSH2ET!K?>tK8TMgzqe`^5zlo`Ow!qLNPz{V`?BzvBDmg&FN zSXt3|T3-i%VnNZryH$cW%0QTGUMz5Ib{BK!9LPkv0|>^!k;7|LrR2kW{vQMI$3W+G zJ_b}A?6xdv3GuHO*yd(|fXq4opqYlM9;iySE#jxH4peNLxM{8nV0L8th8S?G;>wjF z32^>Qzf@Te6uVaA#|IC{2Wt9KrNTn7i0wG;+~Ai>d^8i~)q~x)GWTs_d_e$ArsY$Z#HLLojCPY|i$%({n)|%<1k8SRmmAmYjRAmWIzo8!u_dW7{)wbF8YLQV zL0=@oTZsfQ%W~%~To+upF8KA175tS?e5R;i?DoOqA2hA}PJOmb9cz#s0ZEoFKW%alFR8~tAZJQp` zg>n()9X*8%h4sp|@DkWwM+{I$i zwcd9y32w(n53liEvFJN&C0P~0M;Ol<%F002ovPDHLkV1g^5UcLYT diff --git a/Resources/Textures/Constructible/Power/VendingMachines/ammo.rsi/off.png b/Resources/Textures/Constructible/Power/VendingMachines/ammo.rsi/off.png deleted file mode 100644 index 129cdb87e827bdae3aa68e8c9b5904a4bc3a8727..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1264 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 diff --git a/Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/meta.json b/Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/meta.json deleted file mode 100644 index ee16cfe604..0000000000 --- a/Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "dangermode", "directions": 1, "delays": [[0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08]]}, {"name": "normal", "directions": 1, "delays": [[0.5, 0.5]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/normal.png b/Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/normal.png deleted file mode 100644 index 768870dc78feeae26aa5b9ccae74a676b35c8329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmV+$1LXXPP)# zziZn-6vw}^6DWoVs~~E~W=gkCZHG)L?GOz19`F=!C;t(~e?+Hb=wis8fGC|hd1{x^ zr4%h)oCYkB6q7cM)j_`aBBlYoF20}o=)HUQ&h}Z5=&@@@vVI+Xzr3<^=a}Gc z$>496+oixiH?9HKj&z)0il6BK=K15=ZDIJc2RC@}tBFrrH{>}c`N9Zze|c3H4gd$P zjptTfd!8wNjryQQ$4Qj=x=MFT@=&3iaX(S!>qYp&2;kM|IA{$6%n%#h8U_G>85}IU zKsn#4|Dj-na>ji)gWkH%m4nfw5MLPq%y?jJxZee4Z{v1KBt%P+pEJc9&p!R#Lj)&h za0We6B*^$u2k^!NvC)(jPs_qz?K!~a$_FQBq!riUOP6Nh#bMtX2KOt@!amWb+6oal z)g;7>bq2lr6=&^yA3s)?uZ&G*sFuMciW#P5u!cyRlNp`mbsphFTA2vMlX85o3Ik1Lk3fm#{E3ZL~#Eu?wCm`6LJ2 z{``^oV5*k&Vh*U1uXI2e39WWl*F0~`@pHbGu1dHWsfcgH0ms|FbKMS`;0s^sf4CY4 ZfPYV-=LK(p!`uJ>002ovPDHLkV1oDpfinOA diff --git a/Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/off.png b/Resources/Textures/Constructible/Power/VendingMachines/soviet.rsi/off.png deleted file mode 100644 index 7b93a0ce6a12a40018dd02da5ce130ad191a8263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)f@r{9`F5fe8$OkO!^}$t=czYhoSK1?##3xK0F)IO(^8TePw-AuDdvCu_CK@q z)uzX&83@8P%LF=5%`$%i#XMBqVE$i9eo$k~40!MkcsX^8gR5sOj%A@)CRZk$HhrC; z1}eoo4sT5Fd2uX@*W(8!FenM1(F~}%frZhm2lua7)eZhEICKp26SyEDpn$l#z%4XU z6V>%xcMSO3&ToPR-#xlx&dqGYUxgT0wPu;#=Ly1hP9K4E8o+xz1BW-JSBSxma80Nr zIDnPH5H|PjqZ_Cc^Vru7;IgwqUk1Fo=!{c!;}5*FQOBktM>h~mEp6AM!Fj|i!s^y6 zmL>*K-I}G3i3kTcYM``sh7tg*oe9IM>p6f?1FR$UBiYFKB$~F3;Y@}( z_U`&Zz$&K!S54a%n%tEn5fjaCplREfn=f#|bZzg?JIA44u(%Ag?k(cPylN+780f|Y zCGnM{_M1=}Mi>2N(h~!;76d5!0MMJOIRJbEAv`vS*uomx00000NkvXXu0mjfXnYdz From b1771ff27b0dae6350f248cb4eee420ccd5b4ebe Mon Sep 17 00:00:00 2001 From: ike709 Date: Mon, 10 Aug 2020 19:39:49 -0500 Subject: [PATCH 4/6] oi you got a loicense for that mate? (#1643) --- .../Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json index 26465110fd..bbdf977682 100644 --- a/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Food/memoryleek.rsi/meta.json @@ -4,8 +4,8 @@ "x": 32, "y": 32 }, - "license": "Thanks Yeeye", - "copyright": "By Yeeye", + "license": "CC-BY-SA 3.0", + "copyright": "Yeeye", "states": [ { "name": "memoryLeek", From 5388bf0738b49f1cb5fbbe43ad0a733a9c88497f Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Tue, 11 Aug 2020 03:13:41 +0200 Subject: [PATCH 5/6] Add command to add underplating to all walls on a grid (#1644) --- .../GameTicking/GameTickerCommands.cs | 105 +++++++++++++++++- Resources/Groups/groups.yml | 2 + 2 files changed, 106 insertions(+), 1 deletion(-) diff --git a/Content.Server/GameTicking/GameTickerCommands.cs b/Content.Server/GameTicking/GameTickerCommands.cs index 839dddf891..c2878dbd40 100644 --- a/Content.Server/GameTicking/GameTickerCommands.cs +++ b/Content.Server/GameTicking/GameTickerCommands.cs @@ -6,10 +6,15 @@ using Content.Server.Interfaces.GameTicking; using Content.Server.Players; using Content.Shared.BodySystem; using Content.Shared.Jobs; +using Content.Shared.Maps; using Robust.Server.Interfaces.Console; using Robust.Server.Interfaces.Player; +using Robust.Shared.GameObjects.Components.Transform; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; +using Robust.Shared.Map; using Robust.Shared.Network; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -377,7 +382,7 @@ namespace Content.Server.GameTicking { if (player == null) { - shell.SendText(player, "Only a player can run this command."); + shell.SendText((IPlayerSession) null, "Only a player can run this command."); return; } @@ -400,4 +405,102 @@ namespace Content.Server.GameTicking } } } + + class TileWallsCommand : IClientCommand + { + // ReSharper disable once StringLiteralTypo + public string Command => "tilewalls"; + public string Description => "Puts an underplating tile below every wall on a grid."; + public string Help => $"Usage: {Command} | {Command}"; + + public void Execute(IConsoleShell shell, IPlayerSession player, string[] args) + { + GridId gridId; + + switch (args.Length) + { + case 0: + if (player?.AttachedEntity == null) + { + shell.SendText((IPlayerSession) null, "Only a player can run this command."); + return; + } + + gridId = player.AttachedEntity.Transform.GridID; + break; + case 1: + if (!int.TryParse(args[0], out var id)) + { + shell.SendText(player, $"{args[0]} is not a valid integer."); + return; + } + + gridId = new GridId(id); + break; + default: + shell.SendText(player, Help); + return; + } + + var mapManager = IoCManager.Resolve(); + if (!mapManager.TryGetGrid(gridId, out var grid)) + { + shell.SendText(player, $"No grid exists with id {gridId}"); + return; + } + + var entityManager = IoCManager.Resolve(); + if (!entityManager.TryGetEntity(grid.GridEntityId, out var gridEntity)) + { + shell.SendText(player, $"Grid {gridId} doesn't have an associated grid entity."); + return; + } + + var tileDefinitionManager = IoCManager.Resolve(); + var underplating = tileDefinitionManager["underplating"]; + var underplatingTile = new Tile(underplating.TileId); + var changed = 0; + foreach (var childUid in gridEntity.Transform.ChildEntityUids) + { + if (!entityManager.TryGetEntity(childUid, out var childEntity)) + { + continue; + } + + var prototype = childEntity.Prototype; + while (true) + { + if (prototype?.Parent == null) + { + break; + } + + prototype = prototype.Parent; + } + + if (prototype?.ID != "base_wall") + { + continue; + } + + if (!childEntity.TryGetComponent(out SnapGridComponent snapGrid)) + { + continue; + } + + var tile = grid.GetTileRef(childEntity.Transform.GridPosition); + var tileDef = (ContentTileDefinition) tileDefinitionManager[tile.Tile.TypeId]; + + if (tileDef.Name == "underplating") + { + continue; + } + + grid.SetTile(childEntity.Transform.GridPosition, underplatingTile); + changed++; + } + + shell.SendText(player, $"Changed {changed} tiles."); + } + } } diff --git a/Resources/Groups/groups.yml b/Resources/Groups/groups.yml index 0649f13c13..ce1885473a 100644 --- a/Resources/Groups/groups.yml +++ b/Resources/Groups/groups.yml @@ -92,6 +92,7 @@ - anchor - unanchor - tubeconnections + - tilewalls CanViewVar: true CanAdminPlace: true @@ -179,6 +180,7 @@ - clearatmos - settemp - setatmostemp + - tilewalls CanViewVar: true CanAdminPlace: true CanScript: true From 89fff7dab2d75e3d4bc33ce69765d45c19bd65d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Aguilera=20Puerto?= Date: Tue, 11 Aug 2020 03:45:40 +0200 Subject: [PATCH 6/6] Add two new TurfHelpers --- Content.Shared/Maps/TurfHelpers.cs | 34 +++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/Content.Shared/Maps/TurfHelpers.cs b/Content.Shared/Maps/TurfHelpers.cs index 549a1517dd..1f81bc6f8f 100644 --- a/Content.Shared/Maps/TurfHelpers.cs +++ b/Content.Shared/Maps/TurfHelpers.cs @@ -1,4 +1,7 @@ -using Content.Shared.Physics; +#nullable enable +using System.Collections.Generic; +using Content.Shared.Physics; +using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Physics; using Robust.Shared.IoC; @@ -9,6 +12,35 @@ namespace Content.Shared.Maps { public static class TurfHelpers { + /// + /// Attempts to get the turf at a certain coordinates or null if no such turf is found. + /// + public static TileRef? GetTileRef(this GridCoordinates coordinates) + { + if (!coordinates.GridID.IsValid()) + return null; + + var mapManager = IoCManager.Resolve(); + + if (!mapManager.TryGetGrid(coordinates.GridID, out var grid)) + return null; + + if (!grid.TryGetTileRef(coordinates.ToMapIndices(mapManager), out var tile)) + return null; + + return tile; + } + + /// + /// Helper that returns all entities in a turf. + /// + public static IEnumerable GetEntitiesInTile(this TileRef turf, bool approximate = false) + { + var entityManager = IoCManager.Resolve(); + + return entityManager.GetEntitiesIntersecting(turf.MapIndex, GetWorldTileBox(turf), approximate); + } + /// /// Checks if a turf has something dense on it. ///