From d12722e56cc5592bcbc08130de14463c814dbc85 Mon Sep 17 00:00:00 2001 From: AnturK Date: Mon, 15 Jun 2020 21:36:00 +0200 Subject: [PATCH] Areabound component & mapping helper (#51605) * Adds areabound component and mapping helper. * desc * Delete multi-use one. * doesn't really matter for this but sure --- code/datums/components/areabound.dm | 25 ++++++++++++++++++++++++ code/modules/mapping/mapping_helpers.dm | 16 ++++++++++++--- icons/effects/mapping_helpers.dmi | Bin 16024 -> 16356 bytes tgstation.dme | 1 + 4 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 code/datums/components/areabound.dm diff --git a/code/datums/components/areabound.dm b/code/datums/components/areabound.dm new file mode 100644 index 00000000000..b5c3655cbce --- /dev/null +++ b/code/datums/components/areabound.dm @@ -0,0 +1,25 @@ +/// Movables with this component will automatically return to their original turf if moved outside their initial area +/datum/component/areabound + var/area/bound_area + var/turf/reset_turf + var/datum/movement_detector/move_tracker + +/datum/component/areabound/Initialize() + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + bound_area = get_area(parent) + reset_turf = get_turf(parent) + move_tracker = new(parent,CALLBACK(src,.proc/check_bounds)) + +/datum/component/areabound/proc/check_bounds() + var/atom/movable/AM = parent + var/area/current = get_area(AM) + if(current != bound_area) + if(!reset_turf || reset_turf.loc != bound_area) + stack_trace("Invalid areabound configuration") //qdel(src) + return + AM.forceMove(reset_turf) + +/datum/component/areabound/Destroy(force, silent) + QDEL_NULL(move_tracker) + . = ..() diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index dfa98dbe7d0..5dba56e15b6 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -170,8 +170,9 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) /obj/effect/mapping_helpers/component_injector name = "Component Injector" late = TRUE - var/target_type - var/target_name + var/all = FALSE //Will inject into all fitting the criteria if true, otherwise first found + var/target_type //Will inject into atoms of this type + var/target_name //Will inject into atoms with this name var/component_type //Late init so everything is likely ready and loaded (no warranty) @@ -188,8 +189,11 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) continue var/cargs = build_args() A._AddComponent(cargs) + if(!all) + qdel(src) + return + if(all) qdel(src) - return /obj/effect/mapping_helpers/component_injector/proc/build_args() return list(component_type) @@ -206,6 +210,12 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) var/datum/disease/D = new disease_type() return list(component_type,D) +/obj/effect/mapping_helpers/component_injector/areabound + name = "Areabound Injector" + icon_state = "component_areabound" + component_type = /datum/component/areabound + target_type = /atom/movable + /obj/effect/mapping_helpers/dead_body_placer name = "Dead Body placer" late = TRUE diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi index 075e2ed30e2519ab945f411dc8dc7e26f716f887..d1feca89b360f434e4d89022d339ce49ea82bb8d 100644 GIT binary patch literal 16356 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�sE1DF1R_nW(bF82OZqFg=mN<&O-%Oy9t1yQZeP6xh%b&RV zXA;n!Oh2}-PcLwj-RZF&I{Qy)xu7utTY98M?oN+hehP%?&Phn2xwV+xl*Uc&F9_cG zJdcErg5mSIN>tiKb*lG*OX(b|%G*3~5IP>5U+Bm=ZM)Pj6m(%`VCDUf8a0DzRIB}B zPd<+Q(x7Ik?pIa(PdhPQ^JxTjlSS^p29w6-QXKCd3V*0e^n6l*W$EwV{lW~ycSY-& z8;+y;)$#(=(?$j~llsOq6&3dMR3v_IQ32z8nHwe@%xk>o9EcegkYKzwj&3 zFrGpf!b7BPF}S>RhF-1tK<|P9UNXQKw57e0tpAL`48*`g!30M_Ry0?ZNvOvi0bC87 z9PCk5pxx1=i%qyzCW*7;M==KlAI+D z#>}p4Eou9Td`lV|yyol6MpX1;B8pMl(*&FG#mJm zu+S$KBQ}&fkyBAY%ZQJsWxT7$@idC|z}(Vs z&6xxytUz>!mnP`&Nx9Lv;1eky92ZxG{k;(-#;>|&wKRMj)BZmUBuPg3=^a@u99<83 z4fYfa-v{>G4raAkSXf*?exxr&6?9m|pxHGxFd((DvDrITld(a+O##<#fh7*#*h?n`vWbB#p;) zPYZ)WgkY*jv+s1Ho5%as@w>&s{*xrJLFsiB;pbK4>7t|CM;XJ*d)KzkWulN)gq_%; zQi_};?P7^%3jyTY=#=4MwfusDs(dmLS7soAkq?>O=lR#l$z~TPUv^vfc&JVBr+pjI zkn|YNn!3{1q3!;W5&2J_7y;9}%YS8rwFqTkchodnDT$yijOH#JnGciYP=|dIuXF~! zY?kLknNNoA$0DgYI51njoFHXSx>{RX1H`=Uh}Vwb?^?*v2bq3Ut<_6BXGW!_k}hfm z6ciM=9VBPhnIftBXVcq}}14FQc<2vB8-U<1>R6_y@3=Fg`(Pj1c8>Blc!35`ZA+vvRe0Fno zkk;bx=jbGEZRZdkEu*xAQX|LG@@I;Hj~NvO?p7#IoIf!>2?{_g>`ae`k8j3`YbVpW zzHVwj8~5k#{=N_GXijjyXL6_TS6giFlkGvN1LsK@&Tz>iN^LO7S+s?A10h3cHt_0!X;qx7Sl1mzPcE3giG9Dfu z%^x2g_Li58N?nszR#qm!p^pv^$q!CWVg?6QY{U4`u6KgBzAI9txE`JS6yUS;9wTLB&j~uC9&;7zc;5v&L&@_tHNK5*!pHrH_%6mFY)#h4$9*0NpO~ zgAOiW9>6I6B=i>_4+kGVP}pUsb8XEe?}MkONJK;gx7{M&=auFJ4s3LES!rp=eVaGT z8Gvr4_I%EeAXrz2d=Y^-AWNn8wt8tC9UU#81;af(JypFa`B7e0R=cO#gf7Jnod9xk zbN>Tv&M294I%i*0JqiB9X7J)>(#5m>)zyt_il9tk7Q?-HB2?{~m*f4DcKjOeDiuqI zn$?oy*ZQXCGgQ>mOWkh}4mLKOB~29lH*eqoy>@S5!+OgxN;w4uT47-l3k!=z*ME4q z*Sw3|$5V6b$2(|1e=>{|NraoeER!)Wlrm8VOGSsfzO7AsX>4q4{Qe{1^vsO)C8SO| zYg0aJPS+|VIEQq6wKaAYDa#R%W#z2uckoT&*_uMKUH0RIaT+)0UvJQI$Da8*^M7=9 zu6}oJF=7$}id*Z|zHQj^f8qwet)v_Z?!Qx@Zh{O(=hnbewUveom!sW7d=(&3y@zg0 z{1XB>!XohT;k3JINt@l2RXQMnbB?N_uf2YZiHRxtySZ7Hi9J`-^!4IXeqrHHT%8;( zD09X8B5awv4_BKjD@JE`q6ZLQ6RS+|ZmI$Tf3en`Ketv%JA6kj!<>i$$ zHT&Y|6!}K;%E~ZK@{MH(Dq3?&5Yy%=ES2X&U63^B2^GVvSP+nrZNXt% zTdM7qR$yOm1=kW0%P8pZXMYk+?05!6uZ%>*c}wZn?i-L<<9zYVDuF?N*hf+t5VXC% zP}@Fv)?+L6C-GeH*G{tHy}7!&a<#N9O1*Y*bnKV#dumC1nO+ijxEh;K%9^T8! z%33|&Q8$S?byO#<85pbhy|m}@tJugkZXF{WJp9?eJ}Nr5gLl%q=m5KZHG;6PFfr(J z4x%8?`g#FS$Ew#tv8fbHO{sUtKPf5vg?gVupgNY8mSu9Z(#FQd^+`!YBH%#afO;}W z$jDR1G-hgQ80w1%Q2BJ9m0xQMY1tKHMKO9ZONBztWx)^?rik`BP5iD!>k>;p-C2Py zQBO|9;&i_7aJBaNijF5zmz`m=B@$0PulIf7R$>e!)d&0g)nufk>nA7JGII9MBRIUy zp$%YiV8nBfLQy zXtOniJd41vs7V_qMH>f|B?VaR7(h$-x6Ing3K0BA1KvwYN($sl|MfP)><`Y-AjX{y zm8d4pr3v0&qC?%>-25g|G`Pr!fPMWtTRKn=n}q~jr8k5WZ59DB_QjAMot%u>uty6- zxq%EUFDZeXrPenzSgO*;>wWq1rMb8`EFvl@KO-ZH` z$pfxg$N269!K6p?{uf0L(7c{=9_B$n1B(k~wQ^uTLn)4r$4j;9NKa3{;NjtMRaeKP z$5UpXF#Ra$G`qF6l^z3{Dw@Eb1A;W%*~jy^cSq~%u^`+)vqgNA535uZQlgKapPYOH zu!f@2WXaKnGi>3D=;df-mzA-%G&hq1ofLz!Q4akxy+m6vU`4 ze9>74R{?-h;bkvCOsY+W#cI=eN6UvmC=>voYK%1z-bMFrWe-Wu^^|#vG4hs{OrORw z?OwrJ-j7&pD~@>kb5M!8m-TGVWvLg@!6A2d|Kg%^5pv8e3QYKg;>auT1-rgI%&wdvs%uz*+emhm=Y^IG_?8;WU1axR$CkQ2{z_8 z2|atA`|bDfTNi6MPT)VV0=} zmz>+!NX*rC8E@dpDSNsc@bRt*aR7;GlP)2*gG@H4IzU91H5G?kVgiL487fB~_>+!z z|Ay_;U%>E7{LdPd z;Lsq>Y6pa*DFNmDN~%;*a{7JUf9Y$^>F++v?-%OY^hCV6Oyn?ht+yO*`_kwXLb=W$ zEw4@?B1@u5XOgISg5;QeiVHf{&9Q012W^SLbuUeDZ%sPPTbM%7lUYK1xGc^qXHVj3 z&sXQyUq7<9f@18QWWZ_KJ~}b1KHYQko8aD*t)JA8wW*yGA7I*Xa<#=TFvr`vti; zU-Msk^*Unc0C(%a|L?gc(Aj^M)96%!mP6;`xcTN4>Au0n#u2MkCaKp+hnHY7M`XZV z(^h8!2NS(3$S(<=PY3{YdvjKZHxtn4)Pmb#ZLaYoGvOnLENZsUxBn_B2SHPk6b}2n zVxyp7UWK3JkFSb(7Ztpu8u(S`7gociNDn0Tf4lM_QjD@PGIGHDqu|c{*GvI+7M9-+ zmRUVbnrr3YbmFBYPr)uq0U zB=*L97iZU?z(9CI-<}rS{-Hd``j?J-inQYhZ}`p!*aa>DL6F5zA_NEs48-O6OnhGc z0TGefd!F0X-4%c;P{IQs>LNxfH|d+NGCzyKa1hDuKo?=a{;%(jz;nR1>)-<`0h+t@ zwfiUxUr1Cm4_pW{3ybu_7R%{rY-e8|^4qs>PcN<%WFM*drUk3E4684>%BDW;mA!g# z2%O%xi~%8Ho$-|^`g17K?UcpuxFg+_ABm@`+kd{Y=s~NG`a$%eM8U@mU98nu+hhff z>lpwFP)OF{I^k*HjZV>Hyr0a5yG$4F!b4W?8?wqe{VFv6^qQ@~0lloKMKb7Jg0 zl-6K?%E{{6*UHMi^&vZ6q}b1+8KUf{swyf_t933^HzkjtiC7jdBODTvaJPXZ$Bkie zqt=Ol2h`D1G}qs`5d~#aNWko}r(tZ+!-M0O<7EgSG${qfU}$J)dN7$STau&57mU{v z%%Jsfj0#9CWxbOY;Ro8`y{XSmrFt26em@?6>5$dZirx1FmRrB#J2^QCeaWnniHMAZ z6n_AKWC?Sm@~s^>(@E(*^<*fO-vcga3lASl%F5)NoOsg93peF9bw&P8<3~*umf*BM z$|5MwPfzE&A0gbFti4}ycXxlm$LHlcH5L*Q5{2+fE?T#@Z)lm=Eyuc9kA72u(J@X=@$L=;%d3|FFc`m~KcXtu?l6yg} z@;7hF)pDUEANV|T**K>sUWI6E`Q8}8^_}g4LRi=}2FdX^6?yy*9%qQDsxq?2K7T6B z!r)voVyMUi8d32bIV4SvRzu&<()hVieU81Sd2d~QebN`JOUjFo5G=^A)NdmNrJ?*C zEH?8kCK}N28?%z460}4Z=eS*JvGmuK`hY=x6Wz--$3+RJ-R5Ujw(G-vsve(}n5R9uB8#rz#Vkr@xt~XsFevP{0ryL@94{bo8gbbd|cq zrKUy@eei&kl$7Y5^&6#QMRsK>_R*0*Z=T&dzd*4`$J8+ z$p`%D>8a|#rW7l7xBvRS0uIQ3!$M0(r>(6Y4iW|cKn^>)yMNO0!9VA3;34I8=z1R} zbcIkK^vdilE`qYh-Z)K$Ph!WzHkYfaDmob9RDBvD6>C}7EUu`)FH38-z<>A4pvV6G z^z=qosKb9fiNA1WP|1qqH$Pd|N_1#w2=$Ez6*&?vusEsM%B z(BKzKB_nQlW^N6i8I3LLYs-XIp-abVk7FKT|428QU<`TsN_qC(T&s+^_u%0DltWvu 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 A`v3p{ literal 16024 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

NCXPq1$9p#wm?fo$_ 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 diff --git a/tgstation.dme b/tgstation.dme index 4a3442336b2..c9d58366bfe 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -377,6 +377,7 @@ #include "code\datums\brain_damage\split_personality.dm" #include "code\datums\components\_component.dm" #include "code\datums\components\anti_magic.dm" +#include "code\datums\components\areabound.dm" #include "code\datums\components\armor_plate.dm" #include "code\datums\components\art.dm" #include "code\datums\components\bane.dm"