From e468fa3e71d99842a42bd6a733c64191c8f36f9b Mon Sep 17 00:00:00 2001 From: Putnam Date: Fri, 10 Jan 2020 01:26:09 -0800 Subject: [PATCH] Added a binary version and fixed up sprites --- code/game/objects/items/RPD.dm | 1 + .../components/binary_devices/relief_valve.dm | 108 ++++++++++++++++++ .../components/unary_devices/relief_valve.dm | 2 +- .../atmospherics/machinery/datum_pipeline.dm | 5 + .../atmospherics/components/relief_valve.dmi | Bin 1894 -> 2124 bytes icons/obj/atmospherics/pipes/pipe_item.dmi | Bin 27350 -> 28943 bytes tgstation.dme | 1 + 7 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index 0a12db9704..c66df872c4 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -19,6 +19,7 @@ GLOBAL_LIST_INIT(atmos_pipe_recipes, list( new /datum/pipe_info/pipe("Manifold", /obj/machinery/atmospherics/pipe/manifold), new /datum/pipe_info/pipe("Manual Valve", /obj/machinery/atmospherics/components/binary/valve), new /datum/pipe_info/pipe("Digital Valve", /obj/machinery/atmospherics/components/binary/valve/digital), + new /datum/pipe_info/pipe("Relief Valve", /obj/machinery/atmospherics/components/binary/relief_valve), new /datum/pipe_info/pipe("4-Way Manifold", /obj/machinery/atmospherics/pipe/manifold4w), new /datum/pipe_info/pipe("Layer Manifold", /obj/machinery/atmospherics/pipe/layer_manifold), ), diff --git a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm new file mode 100644 index 0000000000..ffe0099f23 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm @@ -0,0 +1,108 @@ +/obj/machinery/atmospherics/components/binary/relief_valve + name = "binary pressure relief valve" + desc = "Like a manual valve, but opens at a certain pressure rather than being toggleable." + icon = 'icons/obj/atmospherics/components/relief_valve.dmi' + icon_state = "relief_valve-t-map" + can_unwrench = TRUE + construction_type = /obj/item/pipe/binary + var/opened = FALSE + var/open_pressure = ONE_ATMOSPHERE * 3 + var/close_pressure = ONE_ATMOSPHERE + pipe_state = "relief_valve-t" + +/obj/machinery/atmospherics/components/binary/relief_valve/layer1 + piping_layer = PIPING_LAYER_MIN + pixel_x = -PIPING_LAYER_P_X + pixel_y = -PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/relief_valve/layer3 + piping_layer = PIPING_LAYER_MAX + pixel_x = PIPING_LAYER_P_X + pixel_y = PIPING_LAYER_P_Y + +/obj/machinery/atmospherics/components/binary/relief_valve/update_icon_nopipes() + if(dir==SOUTH) + setDir(NORTH) + else if(dir==WEST) + setDir(EAST) + cut_overlays() + + if(!nodes[1] || !opened || !is_operational()) + icon_state = "relief_valve-t" + return + + icon_state = "relief_valve-t-blown" + +/obj/machinery/atmospherics/components/binary/relief_valve/proc/open() + opened = TRUE + update_icon_nopipes() + update_parents() + var/datum/pipeline/parent1 = parents[1] + parent1.reconcile_air() + +/obj/machinery/atmospherics/components/binary/relief_valve/proc/close() + opened = FALSE + update_icon_nopipes() + +/obj/machinery/atmospherics/components/binary/relief_valve/process_atmos() + ..() + + if(!is_operational()) + return + + var/datum/gas_mixture/air_contents = airs[1] + var/our_pressure = air_contents.return_pressure() + if(opened && our_pressure < close_pressure) + close() + else if(!opened && our_pressure >= open_pressure) + open() + +/obj/machinery/atmospherics/components/binary/relief_valve/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_relief", name, 335, 115, master_ui, state) + ui.open() + +/obj/machinery/atmospherics/components/binary/relief_valve/ui_data() + var/data = list() + data["open_pressure"] = round(open_pressure) + data["close_pressure"] = round(close_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + return data + +/obj/machinery/atmospherics/components/binary/relief_valve/ui_act(action, params) + if(..()) + return + switch(action) + if("open_pressure") + var/pressure = params["open_pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, open_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + open_pressure = CLAMP(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("open pressure was set to [open_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) + if("close_pressure") + var/pressure = params["close_pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, close_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + close_pressure = CLAMP(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("close pressure was set to [close_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) + update_icon() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm b/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm index 4191247b9d..3a443b8887 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm @@ -2,7 +2,7 @@ name = "pressure relief valve" desc = "A valve that opens to the air at a certain pressure, then closes once it goes below another." icon = 'icons/obj/atmospherics/components/relief_valve.dmi' - icon_state = "relief_valve-e" + icon_state = "relief_valve-e-map" can_unwrench = TRUE var/opened = FALSE var/open_pressure = ONE_ATMOSPHERE * 3 diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index db8a8e90ad..899b621262 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -227,6 +227,11 @@ if(V.on) PL |= V.parents[1] PL |= V.parents[2] + else if (istype(atmosmch,/obj/machinery/atmospherics/components/binary/relief_valve)) + var/obj/machinery/atmospherics/components/binary/relief_valve/V = atmosmch + if(V.opened) + PL |= V.parents[1] + PL |= V.parents[2] else if (istype(atmosmch, /obj/machinery/atmospherics/components/unary/portables_connector)) var/obj/machinery/atmospherics/components/unary/portables_connector/C = atmosmch if(C.connected_device) diff --git a/icons/obj/atmospherics/components/relief_valve.dmi b/icons/obj/atmospherics/components/relief_valve.dmi index b2277a9004f68cfc6a261bcf9e83c64b2b946e6d..2ed56f61839fc1a4814f3469544c3fff0501d3b7 100644 GIT binary patch delta 2006 zcmV;{2PydG4$KgLiBL{Q4GJ0x0000DNk~Le0002M0001>2m=5B0B!b@ZvX%QgiuUW zMZmzoe}8`w4GkL`8y_DZUS3{gYnTCdjmzS4K+W>NMa(8z_ce1jwVoFN1w6qfw6Hri4 zU0q!r9UU4P8nv~xzP`R392~#Dzab$ZVq#*zz`&N?*qi_W00DGTPE!Ct=GbNc005(r z!j69tR*veA+{6M>eSt@dvVyCh3pnxsqnn4n8=g(=000KZNkl%1r9l|lFz{O%(zbtI6G1>Y0jLcE-}i}DN(eD9gqI>0zm)aJ zrSPII(Wxn<1k~Y2cahe@fJ~>{637A}6r~!sNUArxj~`|Lf!PCloN3hXpP!zBU^;z% zp6X0Ud|%%Ly#07hLOf5)K*$K0J`=f-<$72PBwU=R)#L<9`*j48`C|F9Ow|VRzDIwa zpGiv6)c2L0kobPe#iCSD542`I%EAO9K-o&ICci)h-}k)V69~mkS(4?_S9df1^OB3j z{SIXUa=jEKkgC;`^2IV;rg?unW03cq1R5fI?2B%hl9w0%PEFv>e|g~rMCYv=zgds1 z5dv$bR#S-U7T{=z@?Phc1eLn^6ik1DsYwe=`D8}}b-iD-KvPX22D%7$l|DF21(fhR zLKbAP(2R3F2QRo-lp-<#xt_roP^&=+Owd8j6+Q(dA@jM`gk(PF1%jvZS*WU4%rbfu zcTcINxBxUwqSGulg0uBOI%xjj+4$f4A;Az=^~8aME`(8z(tg~kpvE;N4V<3er#hzl8FU_XL{Rd5XLM{Egn zkYB(r4HkmqLME!w{K6}eUzmSD_G$70jSB#AAq>6e7j$`nNq2(<1t>328o&r+YsN^dF)%LWOxs0(@cTrX zrj-PwJi)7yz^gVda5C_LPyy{7z9*Eo5alh^!oa+MO@0B$3!Ds`6MTJk4r? z0T+9Cn$-vcF1OJ%s{?TVnc4ZMh3j3&`N-Yy&%E|E%p{13g5cej7vD!&kUf3h^q{*(lw=&Zv;9!*o4 zp4vc?H{?@r;Bngv5`{efSJ?y|?%&6t zou$-WNG9Nk4s_OqN_ngO`>o>ifS*tf;z%9@!u+#Ae3EzNiBbCjPi-=diu->#jb0Jp zQp3QJQAmCbAgh1Xwo8dC!tv(?=bzZze`a<*YTUh{GcwcYpwMy#?M~Z-E$nCLbw*;&>jDphC|C?9LY= z^dtNPiWv|`PwujtPnHt5nuhEF9f|whVFcA8nUfGf5b<8^?$w)*hjFPuT4W} zh2ued#8-d+=L=z(UT};z4N+6={d^&0o`h#vg9DQKKVJy;REVE5I3TI_^M#N%0Faf2 zNz4s))d@NVw&96@rU<-R>*6#?=sjPIz&Bs55?Bqg+_a8N!LM3l1U~um0)f@^{LF|P z41{+fb|RoF(l-GZIDt4shS|6Y9O=8;1P(vUZ32Hs8n2ut5QygiSjD&r9Om1RcOfKv zj)mWy&!D)T!*V@~=zJd6{Y<*^dl`_ZkOR1#FElU)+yCDcoF`zp|9=dyI$vlYBo(Cn z|21~I;CMJD$>(<>?fhjjvYWz7CX2`~T}7_e0x1S+f(Q{r}sq z4;FvFvzTqyYySNnvyZQ>wEw@V!`4IFKY6PH;nM#9;)fqf=WqL3Uhn^}qvyl7Kw}J? z_Wvi}pGhJ@`iI@F9uM{Y|1ph$U%|y$N`~ux!g){aGJ$T+7a9;9oi8*XZs!Y)0PaUE oT<=28NABE@ow^^r9wYt%;rgRO0u%dw000UA07*qoM6N<$f~_dcfB*mh delta 1774 zcmV0001h2m=5B0K2`CDF6TfgiuUW zMZmzoA0HoHUS71cw1b0#8yg$7xhvAuJtih55e*H0e}5Sn8D?f?rKP2rnVDHxSCd5xVV>>m%qP5zrMb{wY9ZkVq#EGP=$qs z8X6iM9UUPdAsieWP1^v#z`$~Ha(8!kva+&bN=j#9(4YVS00DGTPE!Ct=GbNc005bh z!j6C8Qm(Av>gNIuRsapwXpHC5-829I1?x#fK~#90?V5XcqC61BO@vxNqpa0ZY`eW5 zcK!a}@0~%p^-VG<5}IFK=LD(fjrD?_9F>7kK&)5@)N}%)+Mq7$Q%kbpNgalBaE-YzZ{@XUXAv4E|TBu&RwLII}9$eK~va-~*EB*17O zB;ybTm~sHKt_ML{J~9rGfPw?KUamGPl^Um@LmZ0X(ri;Wp#jZdgaUMlLrMNCHzMHR z*a5L>0jt!|1zA0|#?~F;khO*wn@(((2U8!47q`MRNY?9jh(p#ffC&PZhU;%oEc$=Z zLn)!eEdX{CIcp`h87_}lY7*UW-h`H^x;=i4}){?k0xz*XzvOK$ay?iz$B&(jwxJ zJ(9=RG%{FQut!QtbsRDm6Zb-wXJLnXp-t4Y0Do7Lh_O$4waCXk_P%iZqiC(b+uj)h zvQ7^V$kY{(t1BQ^SHRG^dpYdyEae%LTW`gbxIKjDzgx;PS?neTETcC|`2_$Lm)?WV zm)?VAWCNHG@Z?(I5ML%>+5mq(MW2?#CIl2`z{lvrau@~3_8*N(8o)Vci244b;jGqH zquvqp$~8xN@E`Rjb++2}p?uw14&A;M_gj+<=;l9uS@yjKzMic{^&q-CnaKtm=|A4Z zZ|`qe_W4nJBDI>|T0>jSA#7^wS0b z_y)VafPnlVe*awr1ax@frF*d41q7t`3>09D&x4k7wtGhHy2yVaUe7}gF)hkoqwKlK z{YUP59_j+QV!tV){70tv`G1uE$dk*ym#TvBA9?bS|3~?cJbB3fqx?snJPmO;KziRx zit-zvh z%ANg3$Naw;Bma--KRV_Axh3Hl__+Qf>pt%wzW*3leE%`D*#2W!c`&EK%7gzHRv!Gv zu)6pm_TWE;7TbReF0TJLxybZBcK%;zu``E4>k7!#6_9_cD^7K!oRQ2Z!nCIUH zG*6{cQZ;?}zjAMYheB%uLI+mr?_X8nD1)l1I#yLjkYoQTDOFc4`{n)s4f%h0%~umb z!#LK*<1v5j2=bFxr<7{S;jh#`p)voj4~Vl7`HsgPU8V;ow^^h Qa{vGU07*qoM6N<$g72+!WB>pF diff --git a/icons/obj/atmospherics/pipes/pipe_item.dmi b/icons/obj/atmospherics/pipes/pipe_item.dmi index 2c92e0e767789acab9f89719f4f551c195f64f92..76e3e687c5a446d8d8dcf8d9cdc54e4122e289ee 100644 GIT binary patch delta 6120 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 JtJNQc{|~#|^9uj~ delta 4514 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 AGXMYp diff --git a/tgstation.dme b/tgstation.dme index 1964550aa9..96b23be941 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1467,6 +1467,7 @@ #include "code\modules\atmospherics\machinery\components\binary_devices\dp_vent_pump.dm" #include "code\modules\atmospherics\machinery\components\binary_devices\passive_gate.dm" #include "code\modules\atmospherics\machinery\components\binary_devices\pump.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\relief_valve.dm" #include "code\modules\atmospherics\machinery\components\binary_devices\valve.dm" #include "code\modules\atmospherics\machinery\components\binary_devices\volume_pump.dm" #include "code\modules\atmospherics\machinery\components\trinary_devices\filter.dm"