diff --git a/code/ATMOSPHERICS/components/unary_devices/passive_vent.dm b/code/ATMOSPHERICS/components/unary_devices/passive_vent.dm new file mode 100644 index 00000000000..632b75c0dc8 --- /dev/null +++ b/code/ATMOSPHERICS/components/unary_devices/passive_vent.dm @@ -0,0 +1,36 @@ +/obj/machinery/atmospherics/unary/passive_vent + icon = 'icons/atmos/vent_pump.dmi' + icon_state = "map_vent" + + name = "passive vent" + desc = "A large air vent" + + can_unwrench = 1 + + var/volume = 250 + +/obj/machinery/atmospherics/unary/passive_vent/high_volume + name = "large passive vent" + volume = 1000 + +/obj/machinery/atmospherics/unary/passive_vent/New() + ..() + air_contents.volume = volume + +/obj/machinery/atmospherics/unary/passive_vent/process() + ..() + + if(!node) + return + + var/datum/gas_mixture/removed = air_contents.remove(volume) + loc.assume_air(removed) + air_update_turf() + +/obj/machinery/atmospherics/unary/passive_vent/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + add_underlay(T, node, dir) diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index adc87a948bf..9815035311e 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -35,7 +35,8 @@ #define PIPE_INJECTOR 34 #define PIPE_DVALVE 35 #define PIPE_DP_VENT 36 -#define PIPE_DTVALVE 37 +#define PIPE_PASV_VENT 37 +#define PIPE_DTVALVE 38 /obj/item/pipe name = "pipe" @@ -142,6 +143,8 @@ src.pipe_type = PIPE_INJECTOR else if(istype(make_from, /obj/machinery/atmospherics/binary/dp_vent_pump)) src.pipe_type = PIPE_DP_VENT + else if(istype(make_from, /obj/machinery/atmospherics/unary/passive_vent)) + src.pipe_type = PIPE_PASV_VENT else if(istype(make_from, /obj/machinery/atmospherics/omni/mixer)) src.pipe_type = PIPE_OMNI_MIXER @@ -344,7 +347,7 @@ return dir|flip if(PIPE_SIMPLE_BENT, PIPE_INSULATED_BENT, PIPE_HE_BENT, PIPE_SUPPLY_BENT, PIPE_SCRUBBERS_BENT) return dir //dir|acw - if(PIPE_CONNECTOR, PIPE_UVENT, PIPE_SCRUBBER, PIPE_HEAT_EXCHANGE, PIPE_INJECTOR) + if(PIPE_CONNECTOR, PIPE_UVENT, PIPE_PASV_VENT, PIPE_SCRUBBER, PIPE_HEAT_EXCHANGE, PIPE_INJECTOR) return dir if(PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W, PIPE_OMNI_MIXER, PIPE_OMNI_FILTER) return dir|flip|cw|acw @@ -428,8 +431,6 @@ user << "There is already a pipe of the same type at this location." return 1 - var/obj/machinery/atmospherics/machineReference = null //If somebody wants to overhaul that switch statement below, be my guest. Easier to set a reference here and then transfer logs after the switch statement. - switch(pipe_type) //What kind of heartless person thought of doing this? if(PIPE_SIMPLE_STRAIGHT, PIPE_SIMPLE_BENT) var/obj/machinery/atmospherics/pipe/simple/P = new( src.loc ) @@ -574,6 +575,12 @@ if (pipename) P.name = pipename P.construction(dir, pipe_dir, color) + + if(PIPE_PASV_VENT) + var/obj/machinery/atmospherics/unary/passive_vent/P = new(src.loc) + if (pipename) + P.name = pipename + P.construction(dir, pipe_dir, color) if(PIPE_OMNI_MIXER) var/obj/machinery/atmospherics/omni/mixer/P = new(loc) @@ -588,9 +595,6 @@ "[user] fastens the [src].", \ "\blue You have fastened the [src].", \ "You hear ratchet.") - if(machineReference) - transfer_fingerprints_to(machineReference) - machineReference.add_fingerprint(user) qdel(src) // remove the pipe item return @@ -670,4 +674,5 @@ #undef PIPE_INJECTOR #undef PIPE_DVALVE #undef PIPE_DP_VENT +#undef PIPE_PASV_VENT #undef PIPE_DTVALVE diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index df9e1bd291a..0165aaa1d37 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -20,7 +20,7 @@ Pipe Cap
4-Way Manifold
Manual T-Valve
-Digital T-Valve
+Digital T-Valve
Supply pipes:
Pipe
Bent Pipe
@@ -47,6 +47,7 @@ Gas Mixer
Air Injector
Dual-Port Vent Pump
+Passive Vent
Heat exchange:
Pipe
Bent Pipe
diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi index 1ef48fbad13..662b67986a3 100644 Binary files a/icons/obj/pipe-item.dmi and b/icons/obj/pipe-item.dmi differ diff --git a/paradise.dme b/paradise.dme index bd5f98f365e..9d6f8aaeaf5 100644 --- a/paradise.dme +++ b/paradise.dme @@ -121,6 +121,7 @@ #include "code\ATMOSPHERICS\components\unary_devices\heat_source.dm" #include "code\ATMOSPHERICS\components\unary_devices\outlet_injector.dm" #include "code\ATMOSPHERICS\components\unary_devices\oxygen_generator.dm" +#include "code\ATMOSPHERICS\components\unary_devices\passive_vent.dm" #include "code\ATMOSPHERICS\components\unary_devices\portables_connector.dm" #include "code\ATMOSPHERICS\components\unary_devices\tank.dm" #include "code\ATMOSPHERICS\components\unary_devices\thermal_plate.dm"