From 90b57943b5f52735b2d93497e663fefc9abf20da Mon Sep 17 00:00:00 2001
From: fernerr <35879136+fernerr@users.noreply.github.com>
Date: Wed, 3 Mar 2021 23:53:43 +0100
Subject: [PATCH] Adds a couple pressure regulator variants (#11337)
---
.../components/binary_devices/passive_gate.dm | 26 ++++++++-
code/game/machinery/pipe/construction.dm | 53 +++++++++++++++++-
code/game/machinery/pipe/pipe_dispenser.dm | 2 +
.../Ferner-210228-coding_regulators.yml | 4 ++
icons/atmos/passive_gate.dmi | Bin 1059 -> 2214 bytes
icons/obj/pipe-item.dmi | Bin 26654 -> 29383 bytes
6 files changed, 80 insertions(+), 5 deletions(-)
create mode 100644 html/changelogs/Ferner-210228-coding_regulators.yml
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
index 95822a4c2e5..a3485917896 100644
--- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
@@ -26,13 +26,33 @@
var/broadcast_status_next_process = FALSE
+/obj/machinery/atmospherics/binary/passive_gate/scrubbers
+ name = "scrubbers pressure regulator"
+ desc = "A one-way air valve that can be used to regulate input or output pressure, and flow rate. This is one is for scrubber pipes."
+ icon_state = "map-scrubbers"
+ connect_types = CONNECT_TYPE_SCRUBBER
+ icon_connect_type = "-scrubbers"
+
+ unlocked = TRUE
+ target_pressure = 200
+
+/obj/machinery/atmospherics/binary/passive_gate/supply
+ name = "supply pressure regulator"
+ desc = "A one-way air valve that can be used to regulate input or output pressure, and flow rate. This is one is for supply pipes."
+ icon_state = "map-supply"
+ connect_types = CONNECT_TYPE_SUPPLY
+ icon_connect_type = "-supply"
+
+ unlocked = TRUE
+ target_pressure = 200
+
/obj/machinery/atmospherics/binary/passive_gate/Initialize()
. = ..()
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
/obj/machinery/atmospherics/binary/passive_gate/update_icon()
- icon_state = (unlocked && flowing)? "on" : "off"
+ icon_state = (unlocked && flowing)? "on" + icon_connect_type : "off" + icon_connect_type
/obj/machinery/atmospherics/binary/passive_gate/update_underlays()
if(..())
@@ -40,8 +60,8 @@
var/turf/T = get_turf(src)
if(!istype(T))
return
- add_underlay(T, node1, turn(dir, 180))
- add_underlay(T, node2, dir)
+ add_underlay(T, node1, turn(dir, 180), node1.icon_connect_type)
+ add_underlay(T, node2, dir, node2.icon_connect_type)
/obj/machinery/atmospherics/binary/passive_gate/hide(var/i)
update_underlays()
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index f4c86b9461f..82ba7411c29 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -51,6 +51,9 @@ Buildable meters
///// Mirrored T-valve ~ because I couldn't be bothered re-sorting all of the defines
#define PIPE_MTVALVEM 43
+#define PIPE_PASSIVE_GATE_SCRUBBER 44
+#define PIPE_PASSIVE_GATE_SUPPLY 45
+
/obj/item/pipe
name = "pipe"
desc = "A pipe"
@@ -131,6 +134,10 @@ Buildable meters
src.pipe_type = PIPE_GAS_MIXER
else if(istype(make_from, /obj/machinery/atmospherics/unary/vent_scrubber))
src.pipe_type = PIPE_SCRUBBER
+ else if(istype(make_from, /obj/machinery/atmospherics/binary/passive_gate/scrubbers))
+ src.pipe_type = PIPE_PASSIVE_GATE_SCRUBBER
+ else if(istype(make_from, /obj/machinery/atmospherics/binary/passive_gate/supply))
+ src.pipe_type = PIPE_PASSIVE_GATE_SUPPLY
else if(istype(make_from, /obj/machinery/atmospherics/binary/passive_gate))
src.pipe_type = PIPE_PASSIVE_GATE
else if(istype(make_from, /obj/machinery/atmospherics/unary/heat_exchanger))
@@ -254,7 +261,9 @@ Buildable meters
"scrubbers pipe down",
"supply pipe cap",
"scrubbers pipe cap",
- "t-valve m"
+ "t-valve m",
+ "scrubbers pressure regulator",
+ "supply pressure regulator"
)
name = nlist[pipe_type+1] + " fitting"
var/list/islist = list(
@@ -304,7 +313,9 @@ Buildable meters
"cap",
"cap",
"cap",
- "mtvalvem"
+ "mtvalvem",
+ "passivegate-scrubbers",
+ "passivegate-supply"
)
icon_state = islist[pipe_type + 1]
@@ -360,6 +371,8 @@ Buildable meters
PIPE_PUMP ,
PIPE_VOLUME_PUMP ,
PIPE_PASSIVE_GATE ,
+ PIPE_PASSIVE_GATE_SCRUBBER ,
+ PIPE_PASSIVE_GATE_SUPPLY ,
PIPE_MVALVE,
PIPE_SUPPLY_STRAIGHT,
PIPE_SCRUBBERS_STRAIGHT,
@@ -1033,6 +1046,40 @@ Buildable meters
P.node2.atmos_init()
P.node2.build_network()
+ if(PIPE_PASSIVE_GATE_SCRUBBER)
+ var/obj/machinery/atmospherics/binary/passive_gate/scrubbers/P = new(src.loc)
+ P.set_dir(dir)
+ P.initialize_directions = pipe_dir
+ if (pipename)
+ P.name = pipename
+ var/turf/T = P.loc
+ P.level = !T.is_plating() ? 2 : 1
+ P.atmos_init()
+ P.build_network()
+ if (P.node1)
+ P.node1.atmos_init()
+ P.node1.build_network()
+ if (P.node2)
+ P.node2.atmos_init()
+ P.node2.build_network()
+
+ if(PIPE_PASSIVE_GATE_SUPPLY)
+ var/obj/machinery/atmospherics/binary/passive_gate/supply/P = new(src.loc)
+ P.set_dir(dir)
+ P.initialize_directions = pipe_dir
+ if (pipename)
+ P.name = pipename
+ var/turf/T = P.loc
+ P.level = !T.is_plating() ? 2 : 1
+ P.atmos_init()
+ P.build_network()
+ if (P.node1)
+ P.node1.atmos_init()
+ P.node1.build_network()
+ if (P.node2)
+ P.node2.atmos_init()
+ P.node2.build_network()
+
if(PIPE_VOLUME_PUMP) //volume pump
var/obj/machinery/atmospherics/binary/pump/high_power/P = new(src.loc)
P.set_dir(dir)
@@ -1238,4 +1285,6 @@ Buildable meters
#undef PIPE_SUPPLY_MANIFOLD
#undef PIPE_SCRUBBERS_MANIFOLD
#undef PIPE_UNIVERSAL
+#undef PIPE_PASSIVE_GATE_SCRUBBER
+#undef PIPE_PASSIVE_GATE_SUPPLY
//#undef PIPE_MANIFOLD4W
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index c424cd344c7..9bbf5afec02 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -47,6 +47,8 @@
Unary Vent
Gas Pump
Pressure Regulator
+Scrubbers Pressure Regulator
+Supply Pressure Regulator
High Power Gas Pump
Scrubber
Meter
diff --git a/html/changelogs/Ferner-210228-coding_regulators.yml b/html/changelogs/Ferner-210228-coding_regulators.yml
new file mode 100644
index 00000000000..aad22e091d2
--- /dev/null
+++ b/html/changelogs/Ferner-210228-coding_regulators.yml
@@ -0,0 +1,4 @@
+author: Ferner
+delete-after: True
+changes:
+ - rscadd: "Added supply/scrubber specific pressure regulators."
\ No newline at end of file
diff --git a/icons/atmos/passive_gate.dmi b/icons/atmos/passive_gate.dmi
index df8c38978615fdf0e142fc91a161722a36defa3a..ff8cf2419abd066f922f41983d024dcb5a73ecef 100644
GIT binary patch
delta 2070
zcmV+x2;L5fup`mQn%>)*}h3YKnc8v
z&1M7n4^{wNbo*Mqg1>;)`?tRHRsCJnwfMa)E$u
zvZ{FN641>9r@d0d?SWef^j4w4_M3kMz#=l0tN$i@sNl+cC~-K}r=qAi(7jED*#89V
zHwl0@3H%Fmo0z9gSAC${Pt^7?ke2frHX7nbaxpO*}mzrWO=~ua(Me#cQv%g_UDgH<_>?Z7A;z|
z=jM~;
z@gkJ*_YB-0sF!+x!%+=~aWLkkd~oz(M<-o4yeiasn{V!Lc$06}s#x9OaA8Z~s!yD(
z0erv70LJ*O@TvoccdH5xZ|;9^c#~b>@Ct;(PerIi)I2bchc4R$_e)X`q@%`HYgztk6I%aUN9?E|Qn&SeSF?<>b
zt760TP=vrN<0sk*!OwwECEzOTQ8C6GLs)UoF;K-l$3PbM90OV0a|~onf53uh_Cv};5g?|Xj=UZC;)77hbstq;oxT_gZ+atGfGT>{-h>o2PIuMocMGG)&
za{dleg}h-CY+>p_?~5=Q@C2?f{pc)A2FB7kzRa7AmholYczw|#F3GtE4)}Udv1#sW
z5WIEPxHSEBIG%s_KAU{;eKz^x`)u;X_u1r&?{mo;-{%tg<`!4J&n0hspWp#G0D;8!
z>Gr81AheeQd9eRHN!N@VohIq1e4lRLGELeh;5bc6;`?;_mWk>%0mncz65l7=r!N(t
z@qMy=axf;9?^73xw2AZ@z%KE@_esljsG9zO1<~w>jI)0qw9g-#jK%jCEea@X@}i7S
zY3Ruf2Os*+W79`ttXwDgfKA|yv2vZ{12%;^MhTF7z$UTBC;^fW*fN4K;2P=!)MG&w
za*VS70OkX@7zJ5MGYViveSmuHQ$YNr_yy+u2i$xBY618D15Q3bixRo_A8_*lXbD5@
zKj60efU|!O{R?x4#151VYO?M>Ak84hy8D1^_0%mR?Ljc)-9Twt6seJI|A92kuYWDO
z52Tf@-?aNMa1VkZu>+?|w$GA%X4`*YpPWvYlWq3_^NoFCzIeI#@WJh54`7aCt-q_v
z(|tctz1@J0D_M3Qs4CL;^@9KD1DwGjOZdz4&*6W3I3BJ04@8j}=i7E4IGS&mul<}Y
z_W&V&A=Lf@Zo3aS`GA!`=-2`LK|%9j3hxG@_%MZc1Ce}~!n=V;K1|`=KqMd7Vh4Qr
zz!p2;%?GyF0bf3_#SZxL0RvaTVh4QrfaQLS*a4CcSnkJ&9U%FDy?UoKUk;DgQ6B=u
zFO+}9B?c`QC-6MGWO|9u(E0o{?O9A&Wcmj>KlN!?S?u)zIzRamNV9LS3QfKQ(gZAl
z$uC8a>0TfEPfvd_h^azQ21Z$qLt1deJ-I+#^2HTDV1={oqPrT-S{L0t!C9{Ofx-f3
z+hvb=niqxnuq}IR;B3*&089M9F8FFhd}Lry
z{D8M++(QlqfqiceQo8@c;s?BSWyqRD`~XFNKYjoi@UROVG9p7xeqn=lY|zgx44X1w
z*o9pfxWd2}yU-Fq&?CFh5;M1&
delta 906
zcmV;519kkS5u*qpiBL{Q4GJ0x0000DNk~Le0001h0001B2m=5B0OF*IdyyeZHUJZ!
zxw*L-8X6fH8D9Th6B84(w6wCavK<{A8yg#9Vq$?@x2gaD00DGTPE!Ct=GbNc00454
zp<;hfNp4~RE;Y&uu6{0Hw*dh6XDp`MXm33L00QtyL_t(&f$dsrcY`1dt>6Q+MQ0zY
zRonjmU%B{b=O!d>O5M)kZuJ95xebAkd$QR${402jF}^ARKL}SPz@jK(YtAoZoQM?}
z2r0Jku{Z;3fDzd4wl)bcDFY?V41`R#sa<~poO6T#OJ$}~i#`AZ7)D^jcDo%mKe~X^
z2)v;dkTTz!`dj~rIxiX#?Hbr8j074B7#Uzo1mpnyGlfUWcz*0m=>vaX
zAGpw&(M$A!E*12=uB$i?b3I0Xl`T(X8y+$8ERI-cH2eA2_KH&5Lrw^=t?Or|ca9DpGrC+HM
z?XN?ue>Sduh3*2+uM?|IdXurj30U5yXPFZOEL-4ukBKF)ZUKA(>-s<;bBus}eV~x&
z5;%Rp=>z{jAJEqiOspRGojy?Z>87@Rfb+7{RuAw8%I_2WxPBlEl?nm6`hhS^ntx68
zK-i)g`BMvw()YTG^Ek+3UHyMR9@KSJ>#7G}L>|Dvsv;*CcI%wf_ockI#vj)YNWX=q
zdZ1m1d-DQm;$gS0exSVG&ewBMXzK?&uPn9I0|ktLVYlnZ2dvZ&OspPwg+4$X6iy#-
z`T!Mfi3`hYkoo{|Wm|v&5pJnV>ugZhZtB{;00BJlpc0n_2;df=Qnw}r2;df=lGoXQ
g^qWY}tEJQP4_JCQw$%;U2><{907*qoM6N<$f(^-*>;M1&
diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi
index 1ad833316d1f02c2aa981bbeb2e89cc24845e12b..763a616353d4644f00159cc2fa1e8f92e39763e7 100644
GIT binary patch
delta 6459
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
bG!Op+Ydp|Kka!+C00000NkvXXu0mjft<68y