From 0d42b1c4d12ac573837f1063bd303d08f880c647 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Sun, 3 Jun 2018 18:02:27 +0200 Subject: [PATCH 1/2] Replaces airlock_controller/incinerator related varedits with defines/subtypes --- _maps/map_files/BoxStation/BoxStation.dmm | 123 ++------- .../map_files/Deltastation/DeltaStation2.dmm | 128 ++-------- _maps/map_files/MetaStation/MetaStation.dmm | 130 +++------- _maps/map_files/PubbyStation/PubbyStation.dmm | 237 ++++++++---------- code/__DEFINES/atmospherics.dm | 31 +++ code/game/machinery/airlock_control.dm | 166 ++++++++++++ code/game/machinery/buttons.dm | 38 +++ code/game/machinery/doors/airlock_types.dm | 42 ++++ code/game/machinery/doors/poddoor.dm | 20 ++ .../embedded_controller/airlock_controller.dm | 37 ++- code/game/machinery/igniter.dm | 12 + .../components/binary_devices/dp_vent_pump.dm | 12 + 12 files changed, 545 insertions(+), 431 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 27d68bb5cb..fb43a1d231 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -36023,10 +36023,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "bMu" = ( -/obj/machinery/door/poddoor{ - id = "mixvent"; - name = "Mixer Room Vent" - }, +/obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "bMv" = ( @@ -36036,9 +36033,8 @@ /turf/closed/wall/r_wall, /area/science/mixing) "bMw" = ( -/obj/machinery/sparker{ +/obj/machinery/sparker/toxmix{ dir = 2; - id = "mixingsparker"; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ @@ -36047,9 +36043,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "bMx" = ( -/obj/machinery/airlock_sensor{ - id_tag = "tox_airlock_sensor"; - master_tag = "tox_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_toxmix{ pixel_y = 24 }, /obj/machinery/atmospherics/components/binary/pump/on{ @@ -36074,14 +36068,8 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "tox_airlock_pump"; - exterior_door_tag = "tox_airlock_exterior"; - id_tag = "tox_airlock_control"; - interior_door_tag = "tox_airlock_interior"; - pixel_x = -24; - sanitize_external = 1; - sensor_tag = "tox_airlock_sensor" +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_x = -24 }, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -36411,33 +36399,17 @@ /area/science/mixing) "bNu" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_exterior"; - name = "Mixing Room Exterior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /turf/open/floor/engine, /area/science/mixing) "bNv" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_interior"; - name = "Mixing Room Interior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /turf/open/floor/engine, /area/science/mixing) "bNw" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "tox_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 2 }, /turf/open/floor/engine, /area/science/mixing) @@ -36867,9 +36839,8 @@ /turf/open/floor/plasteel, /area/tcommsat/computer) "bOE" = ( -/obj/machinery/sparker{ +/obj/machinery/sparker/toxmix{ dir = 2; - id = "mixingsparker"; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ @@ -36904,15 +36875,11 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/button/door{ - id = "mixvent"; - name = "Mixing Room Vent Control"; +/obj/machinery/button/door/incinerator_vent_toxmix{ pixel_x = -25; - pixel_y = 5; - req_access_txt = "7" + pixel_y = 5 }, -/obj/machinery/button/ignition{ - id = "mixingsparker"; +/obj/machinery/button/ignition/incinerator/toxmix{ pixel_x = -25; pixel_y = -5 }, @@ -45814,19 +45781,13 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) "cli" = ( -/obj/machinery/button/door{ - id = "auxincineratorvent"; - name = "Auxiliary Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_aux{ pixel_x = 6; - pixel_y = -24; - req_access_txt = "32" + pixel_y = -24 }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Turbine Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = -6; - pixel_y = -24; - req_access_txt = "32" + pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 @@ -46117,14 +46078,7 @@ /area/maintenance/disposal/incinerator) "cmf" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_interior"; - name = "Turbine Interior Airlock"; - req_access_txt = "32" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -46132,17 +46086,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_airlock_control"; - interior_door_tag = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ pixel_x = 38; - pixel_y = 6; - req_access_txt = "12"; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" + pixel_y = 6 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -46379,9 +46325,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_atmos{ pixel_x = 8; pixel_y = 24 }, @@ -46406,10 +46350,8 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 8; - frequency = 1449; - id = "incinerator_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -46603,14 +46545,7 @@ /area/construction) "cnC" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_exterior"; - name = "Turbine Exterior Airlock"; - req_access_txt = "32" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -46874,10 +46809,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cos" = ( -/obj/machinery/door/poddoor{ - id = "auxincineratorvent"; - name = "Auxiliary Incinerator Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cot" = ( @@ -47559,10 +47491,7 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "cqt" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Turbine Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cqu" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index af3cf7bade..454828be9f 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -15401,9 +15401,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_atmos{ pixel_y = 24 }, /turf/open/floor/engine, @@ -15960,10 +15958,7 @@ }, /area/security/execution/education) "aNO" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Turbine Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aNP" = ( @@ -15997,9 +15992,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aNR" = ( -/obj/machinery/igniter{ - id = "Incinerator" - }, +/obj/machinery/igniter/incinerator_atmos, /obj/structure/cable{ icon_state = "4-8" }, @@ -16011,14 +16004,7 @@ /area/maintenance/disposal/incinerator) "aNS" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_exterior"; - name = "Incinerator Exterior Airlock"; - req_access_txt = "12" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /obj/structure/cable{ icon_state = "4-8" }, @@ -16033,23 +16019,14 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "incinerator_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 2 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aNU" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_interior"; - name = "Incinerator Interior Airlock"; - req_access_txt = "12" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, /obj/structure/cable{ icon_state = "4-8" }, @@ -16057,16 +16034,8 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_airlock_control"; - interior_door_tag = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; - pixel_y = 27; - req_access_txt = "12"; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ + pixel_y = 27 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -16735,24 +16704,17 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aPA" = ( -/obj/machinery/button/ignition{ - id = "Incinerator"; +/obj/machinery/button/ignition/incinerator/atmos{ pixel_x = 8; pixel_y = -36 }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Turbine Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = -8; - pixel_y = -36; - req_access_txt = "12" + pixel_y = -36 }, -/obj/machinery/button/door{ - id = "auxincineratorvent"; - name = "Auxiliary Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_aux{ pixel_x = -8; - pixel_y = -24; - req_access_txt = "12" + pixel_y = -24 }, /obj/machinery/computer/turbine_computer{ dir = 1; @@ -17622,10 +17584,7 @@ /turf/open/floor/plating/airless, /area/maintenance/disposal/incinerator) "aRo" = ( -/obj/machinery/door/poddoor{ - id = "auxincineratorvent"; - name = "Incineration Chamber Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aRp" = ( @@ -99678,14 +99637,7 @@ }, /area/science/mixing) "fpQ" = ( -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_interior"; - name = "Mixing Room Interior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/engine, /area/science/mixing) @@ -99713,9 +99665,7 @@ /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1 }, -/obj/machinery/airlock_sensor{ - id_tag = "tox_airlock_sensor"; - master_tag = "tox_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_toxmix{ pixel_x = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -99950,17 +99900,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/button/ignition{ - id = "herrington_memorial_toxigniter"; +/obj/machinery/button/ignition/incinerator/toxmix{ pixel_x = -6; pixel_y = 30 }, -/obj/machinery/button/door{ - id = "mixvent"; +/obj/machinery/button/door/incinerator_vent_toxmix{ pixel_x = 8; - pixel_y = 30; - req_one_access = null; - req_one_access_txt = "8" + pixel_y = 30 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ @@ -100065,10 +100011,8 @@ }, /area/science/mixing) "lyU" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 8; - frequency = 1449; - id = "tox_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 8 }, /turf/open/floor/engine, /area/science/mixing) @@ -100143,14 +100087,8 @@ /area/science/circuit) "mkm" = ( /obj/machinery/atmospherics/components/binary/valve, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "tox_airlock_pump"; - exterior_door_tag = "tox_airlock_exterior"; - id_tag = "tox_airlock_control"; - interior_door_tag = "tox_airlock_interior"; - pixel_y = 26; - sanitize_external = 1; - sensor_tag = "tox_airlock_sensor" +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_y = 26 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -100206,15 +100144,7 @@ }, /area/science/mixing) "oIE" = ( -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_exterior"; - name = "Mixing Room Exterior Airlock"; - req_one_access = "8"; - req_one_access_txt = "0" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/engine, /area/science/mixing) @@ -100254,9 +100184,7 @@ }, /area/science/research) "oYI" = ( -/obj/machinery/igniter{ - id = "herrington_memorial_toxigniter" - }, +/obj/machinery/igniter/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "oZC" = ( @@ -100359,9 +100287,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "svv" = ( -/obj/machinery/door/poddoor{ - id = "mixvent" - }, +/obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "tmi" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 48f741a178..b8a827375c 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -52974,29 +52974,14 @@ /area/maintenance/disposal/incinerator) "cja" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_interior"; - name = "Incinerator Interior Airlock"; - req_access_txt = "12" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, /obj/structure/cable{ icon_state = "1-2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_airlock_control"; - interior_door_tag = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ pixel_x = 40; - pixel_y = 8; - req_access_txt = "12"; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" + pixel_y = 8 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -53704,9 +53689,7 @@ /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1 }, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_atmos{ pixel_x = -8; pixel_y = 24 }, @@ -53719,10 +53702,8 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 8; - frequency = 1449; - id = "incinerator_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -54366,14 +54347,7 @@ /area/space/nearstation) "cmd" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_exterior"; - name = "Incinerator Exterior Airlock"; - req_access_txt = "12" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /obj/structure/cable{ icon_state = "1-2" }, @@ -54833,9 +54807,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cne" = ( -/obj/machinery/igniter{ - id = "Incinerator" - }, +/obj/machinery/igniter/incinerator_atmos, /obj/structure/cable{ icon_state = "1-2" }, @@ -54855,10 +54827,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cng" = ( -/obj/machinery/door/poddoor{ - id = "auxincineratorvent"; - name = "Incineration Chamber Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cnh" = ( @@ -56943,10 +56912,7 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "crf" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Turbine Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "crg" = ( @@ -63457,10 +63423,7 @@ /turf/open/space, /area/science/mixing) "cEr" = ( -/obj/machinery/door/poddoor{ - id = "mixvent"; - name = "Mixer Room Vent" - }, +/obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "cEs" = ( @@ -63470,9 +63433,8 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "cEt" = ( -/obj/machinery/sparker{ +/obj/machinery/sparker/toxmix{ dir = 2; - id = "mixingsparker"; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ @@ -63487,9 +63449,7 @@ /turf/closed/wall/r_wall, /area/science/mixing) "cEv" = ( -/obj/machinery/airlock_sensor{ - id_tag = "tox_airlock_sensor"; - master_tag = "tox_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_toxmix{ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -63503,14 +63463,8 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "tox_airlock_pump"; - exterior_door_tag = "tox_airlock_exterior"; - id_tag = "tox_airlock_control"; - interior_door_tag = "tox_airlock_interior"; - pixel_x = -24; - sanitize_external = 1; - sensor_tag = "tox_airlock_sensor" +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_x = -24 }, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -63902,35 +63856,19 @@ /area/science/mixing) "cFo" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_exterior"; - name = "Mixing Room Exterior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /turf/open/floor/engine, /area/science/mixing) "cFp" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "tox_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 2 }, /obj/effect/landmark/blobstart, /turf/open/floor/engine, /area/science/mixing) "cFq" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_interior"; - name = "Mixing Room Interior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /turf/open/floor/engine, /area/science/mixing) "cFr" = ( @@ -64354,9 +64292,8 @@ }, /area/science/research) "cGj" = ( -/obj/machinery/sparker{ +/obj/machinery/sparker/toxmix{ dir = 2; - id = "mixingsparker"; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ @@ -64379,15 +64316,11 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/button/door{ - id = "mixvent"; - name = "Mixing Room Vent Control"; +/obj/machinery/button/door/incinerator_vent_toxmix{ pixel_x = -25; - pixel_y = 5; - req_access_txt = "7" + pixel_y = 5 }, -/obj/machinery/button/ignition{ - id = "mixingsparker"; +/obj/machinery/button/ignition/incinerator/toxmix{ pixel_x = -25; pixel_y = -5 }, @@ -67135,8 +67068,7 @@ /turf/open/floor/plating, /area/maintenance/aft) "cLC" = ( -/obj/machinery/button/ignition{ - id = "Incinerator"; +/obj/machinery/button/ignition/incinerator/atmos{ pixel_x = 8; pixel_y = -36 }, @@ -67147,20 +67079,14 @@ network = list("turbine"); pixel_x = 29 }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Turbine Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = -8; - pixel_y = -36; - req_access_txt = "12" + pixel_y = -36 }, /obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/button/door{ - id = "auxincineratorvent"; - name = "Auxiliary Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_aux{ pixel_x = -8; - pixel_y = -24; - req_access_txt = "12" + pixel_y = -24 }, /obj/machinery/computer/turbine_computer{ dir = 1; diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 3a75a0b048..4077ea65b5 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -31516,8 +31516,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -32098,9 +32098,6 @@ dir = 4 }, /area/science/explab) -"bFg" = ( -/turf/open/floor/plasteel/white, -/area/science/mixing) "bFh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -32535,6 +32532,9 @@ /area/science/mixing) "bGn" = ( /obj/machinery/vending/wardrobe/science_wardrobe, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGo" = ( @@ -32554,6 +32554,9 @@ pixel_y = -2 }, /obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGp" = ( @@ -32578,6 +32581,9 @@ network = list("ss13","rd") }, /obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGq" = ( @@ -32595,16 +32601,25 @@ }, /obj/item/assembly/timer, /obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGr" = ( /obj/structure/tank_dispenser, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGs" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGt" = ( @@ -33057,12 +33072,8 @@ /area/science/mixing) "bHz" = ( /obj/machinery/atmospherics/components/binary/valve, -/obj/machinery/button/door{ - id = "toxvent"; - name = "Aft Vent Control"; - pixel_y = -24; - req_access_txt = "0"; - req_one_access_txt = "8;24" +/obj/machinery/button/door/incinerator_vent_toxmix{ + pixel_y = -24 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -33078,14 +33089,9 @@ pixel_x = -6; pixel_y = -24 }, -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "tox_airlock_exterior"; - idInterior = "tox_airlock_interior"; - idSelf = "tox_access_control"; - name = "Mixing Chamber Access Console"; +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ pixel_x = 6; - pixel_y = -26; - req_access_txt = "0" + pixel_y = -26 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -33102,9 +33108,15 @@ dir = 2; name = "Incinerator Output Pump" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/mixing) "bHD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/purple/side, /area/science/mixing) "bHE" = ( @@ -33115,6 +33127,9 @@ /obj/effect/turf_decal/bot{ dir = 2 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, /turf/open/floor/plasteel/purple/side, /area/science/mixing) "bHI" = ( @@ -33553,15 +33568,7 @@ /area/science/mixing) "bIL" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_interior"; - name = "Interior Airlock"; - req_access_txt = "8"; - req_one_access_txt = "0" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/engine, /area/science/mixing) @@ -33992,36 +33999,33 @@ /obj/machinery/atmospherics/components/binary/pump/on{ dir = 2 }, -/obj/machinery/doorButtons/access_button{ - idDoor = "tox_airlock_exterior"; - idSelf = "tox_access_control"; - layer = 3.1; - name = "airlock control"; - pixel_x = 8; - pixel_y = -24 - }, /obj/machinery/light/small{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airlock_sensor/incinerator_toxmix{ + pixel_x = -24 + }, /turf/open/floor/engine, /area/science/mixing) "bJR" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 8 + }, /turf/open/floor/engine, /area/science/mixing) "bJS" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1 }, -/obj/machinery/doorButtons/access_button{ - idDoor = "tox_airlock_interior"; - idSelf = "tox_access_control"; - name = "airlock control"; - pixel_x = -8; - pixel_y = 24 - }, /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/engine, /area/science/mixing) "bJT" = ( @@ -34505,15 +34509,7 @@ /area/engine/atmos) "bLf" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_exterior"; - name = "Exterior Airlock"; - req_access_txt = "8"; - req_one_access_txt = "0" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -35718,10 +35714,7 @@ /turf/closed/wall/r_wall, /area/science/mixing) "bOt" = ( -/obj/machinery/door/poddoor{ - id = "toxvent"; - name = "Aft Vent" - }, +/obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "bOu" = ( @@ -40346,19 +40339,13 @@ dir = 8; id = "incineratorturbine" }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Outtake Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = 24; - pixel_y = 6; - req_one_access_txt = "8;24" + pixel_y = 6 }, -/obj/machinery/button/door{ - id = "mixvent"; - name = "Intake Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_aux{ pixel_x = 24; - pixel_y = -6; - req_one_access_txt = "8;24" + pixel_y = -6 }, /turf/open/floor/plasteel/darkyellow/side{ dir = 4 @@ -40378,6 +40365,9 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_y = 22 + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "bZT" = ( @@ -40645,24 +40635,10 @@ icon_state = "4-8" }, /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_interior"; - name = "Turbine Interior Airlock"; - req_access_txt = "24" - }, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_airlock_control"; - interior_door_tag = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ pixel_x = -6; - pixel_y = -26; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" + pixel_y = -26 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -40670,10 +40646,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "incinerator_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 2 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -40682,23 +40656,14 @@ icon_state = "4-8" }, /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_exterior"; - name = "Turbine Exterior Airlock"; - req_access_txt = "24" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caO" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/igniter{ - id = "Incinerator" - }, +/obj/machinery/igniter/incinerator_atmos, /obj/machinery/air_sensor/atmos/incinerator_tank{ pixel_x = 32; pixel_y = -32 @@ -40735,10 +40700,7 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caR" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Outtake Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "caS" = ( @@ -40958,8 +40920,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "cbC" = ( -/obj/machinery/button/ignition{ - id = "Incinerator"; +/obj/machinery/button/ignition/incinerator/atmos{ pixel_x = 26; pixel_y = -6 }, @@ -40983,12 +40944,6 @@ }, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; - pixel_x = -26; - pixel_y = 8 - }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cbF" = ( @@ -41232,10 +41187,7 @@ }, /area/maintenance/disposal/incinerator) "ccs" = ( -/obj/machinery/door/poddoor{ - id = "mixvent"; - name = "Intake Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "ccu" = ( @@ -49769,6 +49721,12 @@ icon_state = "platingdmg3" }, /area/maintenance/department/engine) +"kfh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) "kfM" = ( /obj/structure/closet, /obj/machinery/light/small{ @@ -49833,6 +49791,10 @@ /obj/item/clothing/under/rank/clown/sexy, /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) +"kmn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) "knw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -49875,9 +49837,6 @@ dir = 9 }, /area/chapel/office) -"kwI" = ( -/turf/open/floor/plasteel, -/area/science/mixing) "kxj" = ( /obj/structure/chair/office/dark{ dir = 1 @@ -50772,6 +50731,12 @@ /obj/item/stack/spacecash/c10, /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) +"noM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) "npE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -50809,6 +50774,12 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"nsD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) "ntj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52433,6 +52404,10 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"rPW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/science/mixing) "rSH" = ( /obj/item/trash/can, /turf/open/floor/wood, @@ -53046,6 +53021,10 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"ubW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/science/mixing) "uek" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ @@ -54328,6 +54307,12 @@ }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) +"xIx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) "xJy" = ( /obj/structure/chair/comfy/black, /obj/structure/sign/plaques/atmos{ @@ -94970,7 +94955,7 @@ bAF bBK bCW bDV -bFg +bFh bGm bHy aaa @@ -95227,7 +95212,7 @@ bAF bBL bCW bDW -bFh +kmn bGn bHy aaa @@ -96514,9 +96499,9 @@ bDa bEa bFm bGs -bHy -bHy -bHy +ubW +ubW +xIx bHy bHy bHy @@ -97542,9 +97527,9 @@ bHy bHy bHy bGw -bHy -bHy -bHy +nsD +rPW +kfh bHy bHy bHy @@ -97799,7 +97784,7 @@ bwm glf bFr qtA -kwI +khk bIN dAF bCV @@ -98569,7 +98554,7 @@ nev hgD bEf bFu -khk +noM bHE bJV bLh diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index c6c35ef08b..f6f903ec8f 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -194,6 +194,37 @@ #define ATMOS_GAS_MONITOR_WASTE_ENGINE "engine-waste_out" #define ATMOS_GAS_MONITOR_WASTE_ATMOS "atmos-waste_out" +//AIRLOCK CONTROLLER TAGS + +//RnD toxins burn chamber +#define INCINERATOR_TOXMIX_IGNITER "toxmix_igniter" +#define INCINERATOR_TOXMIX_VENT "toxmix_vent" +#define INCINERATOR_TOXMIX_DP_VENTPUMP "toxmix_airlock_pump" +#define INCINERATOR_TOXMIX_AIRLOCK_SENSOR "toxmix_airlock_sensor" +#define INCINERATOR_TOXMIX_AIRLOCK_CONTROLLER "toxmix_airlock_controller" +#define INCINERATOR_TOXMIX_AIRLOCK_INTERIOR "toxmix_airlock_interior" +#define INCINERATOR_TOXMIX_AIRLOCK_EXTERIOR "toxmix_airlock_exterior" + +//Atmospherics/maintenance incinerator +#define INCINERATOR_ATMOS_IGNITER "atmos_incinerator_igniter" +#define INCINERATOR_ATMOS_MAINVENT "atmos_incinerator_mainvent" +#define INCINERATOR_ATMOS_AUXVENT "atmos_incinerator_auxvent" +#define INCINERATOR_ATMOS_DP_VENTPUMP "atmos_incinerator_airlock_pump" +#define INCINERATOR_ATMOS_AIRLOCK_SENSOR "atmos_incinerator_airlock_sensor" +#define INCINERATOR_ATMOS_AIRLOCK_CONTROLLER "atmos_incinerator_airlock_controller" +#define INCINERATOR_ATMOS_AIRLOCK_INTERIOR "atmos_incinerator_airlock_interior" +#define INCINERATOR_ATMOS_AIRLOCK_EXTERIOR "atmos_incinerator_airlock_exterior" + +//Syndicate lavaland base incinerator (lavaland_surface_syndicate_base1.dmm) +#define INCINERATOR_SYNDICATELAVA_IGNITER "syndicatelava_igniter" +#define INCINERATOR_SYNDICATELAVA_MAINVENT "syndicatelava_mainvent" +#define INCINERATOR_SYNDICATELAVA_AUXVENT "syndicatelava_auxvent" +#define INCINERATOR_SYNDICATELAVA_DP_VENTPUMP "syndicatelava_airlock_pump" +#define INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR "syndicatelava_airlock_sensor" +#define INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER "syndicatelava_airlock_controller" +#define INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR "syndicatelava_airlock_interior" +#define INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR "syndicatelava_airlock_exterior" + //MULTIPIPES //IF YOU EVER CHANGE THESE CHANGE SPRITES TO MATCH. #define PIPING_LAYER_MIN 1 diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index f02b765573..f709ce07a7 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD #define AIRLOCK_CONTROL_RANGE 5 // This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) @@ -151,4 +152,169 @@ /obj/machinery/airlock_sensor/Destroy() SSradio.remove_object(src,frequency) +======= +#define AIRLOCK_CONTROL_RANGE 5 + +// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) +/obj/machinery/door/airlock + var/id_tag + var/frequency + var/datum/radio_frequency/radio_connection + + +/obj/machinery/door/airlock/receive_signal(datum/signal/signal) + if(!signal) + return + + if(id_tag != signal.data["tag"] || !signal.data["command"]) + return + + switch(signal.data["command"]) + if("open") + open(1) + + if("close") + close(1) + + if("unlock") + locked = FALSE + update_icon() + + if("lock") + locked = TRUE + update_icon() + + if("secure_open") + locked = FALSE + update_icon() + + sleep(2) + open(1) + + locked = TRUE + update_icon() + + if("secure_close") + locked = FALSE + close(1) + + locked = TRUE + sleep(2) + update_icon() + + send_status() + + +/obj/machinery/door/airlock/proc/send_status() + if(radio_connection) + var/datum/signal/signal = new(list( + "tag" = id_tag, + "timestamp" = world.time, + "door_status" = density ? "closed" : "open", + "lock_status" = locked ? "locked" : "unlocked" + )) + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + + +/obj/machinery/door/airlock/open(surpress_send) + . = ..() + if(!surpress_send) + send_status() + + +/obj/machinery/door/airlock/close(surpress_send) + . = ..() + if(!surpress_send) + send_status() + + +/obj/machinery/door/airlock/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + if(new_frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) + +/obj/machinery/door/airlock/Destroy() + if(frequency) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/airlock_sensor + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "airlock_sensor_off" + name = "airlock sensor" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + power_channel = ENVIRON + + var/id_tag + var/master_tag + var/frequency = FREQ_AIRLOCK_CONTROL + + var/datum/radio_frequency/radio_connection + + var/on = TRUE + var/alert = FALSE + +/obj/machinery/airlock_sensor/incinerator_toxmix + id_tag = INCINERATOR_TOXMIX_AIRLOCK_SENSOR + master_tag = INCINERATOR_TOXMIX_AIRLOCK_CONTROLLER + +/obj/machinery/airlock_sensor/incinerator_atmos + id_tag = INCINERATOR_ATMOS_AIRLOCK_SENSOR + master_tag = INCINERATOR_ATMOS_AIRLOCK_CONTROLLER + +/obj/machinery/airlock_sensor/incinerator_syndicatelava + id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR + master_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER + +/obj/machinery/airlock_sensor/update_icon() + if(on) + if(alert) + icon_state = "airlock_sensor_alert" + else + icon_state = "airlock_sensor_standby" + else + icon_state = "airlock_sensor_off" + +/obj/machinery/airlock_sensor/attack_hand(mob/user) + . = ..() + if(.) + return + var/datum/signal/signal = new(list( + "tag" = master_tag, + "command" = "cycle" + )) + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + flick("airlock_sensor_cycle", src) + +/obj/machinery/airlock_sensor/process() + if(on) + var/datum/gas_mixture/air_sample = return_air() + var/pressure = round(air_sample.return_pressure(),0.1) + alert = (pressure < ONE_ATMOSPHERE*0.8) + + var/datum/signal/signal = new(list( + "tag" = id_tag, + "timestamp" = world.time, + "pressure" = num2text(pressure) + )) + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + + update_icon() + +/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) + +/obj/machinery/airlock_sensor/Initialize() + . = ..() + set_frequency(frequency) + +/obj/machinery/airlock_sensor/Destroy() + SSradio.remove_object(src,frequency) +>>>>>>> 5f76d96... replaces varedits with defines/subtypes (#38240) return ..() \ No newline at end of file diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 9511e8d0d4..2c6a2abea4 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -190,6 +190,31 @@ device = new /obj/item/assembly/control(src) ..() +/obj/machinery/button/door/incinerator_vent_toxmix + name = "combustion chamber vent control" + id = INCINERATOR_TOXMIX_VENT + req_access = list(ACCESS_TOX) + +/obj/machinery/button/door/incinerator_vent_atmos_main + name = "turbine vent control" + id = INCINERATOR_ATMOS_MAINVENT + req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) + +/obj/machinery/button/door/incinerator_vent_atmos_aux + name = "combustion chamber vent control" + id = INCINERATOR_ATMOS_AUXVENT + req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) + +/obj/machinery/button/door/incinerator_vent_syndicatelava_main + name = "turbine vent control" + id = INCINERATOR_SYNDICATELAVA_MAINVENT + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/button/door/incinerator_vent_syndicatelava_aux + name = "combustion chamber vent control" + id = INCINERATOR_SYNDICATELAVA_AUXVENT + req_access = list(ACCESS_SYNDICATE) + /obj/machinery/button/massdriver name = "mass driver button" desc = "A remote control switch for a mass driver." @@ -204,6 +229,19 @@ skin = "launcher" device_type = /obj/item/assembly/control/igniter +/obj/machinery/button/ignition/incinerator + name = "combustion chamber ignition switch" + desc = "A remote control switch for the combustion chamber's igniter." + +/obj/machinery/button/ignition/incinerator/toxmix + id = INCINERATOR_TOXMIX_IGNITER + +/obj/machinery/button/ignition/incinerator/atmos + id = INCINERATOR_ATMOS_IGNITER + +/obj/machinery/button/ignition/incinerator/syndicatelava + id = INCINERATOR_SYNDICATELAVA_IGNITER + /obj/machinery/button/flasher name = "flasher button" desc = "A remote control switch for a mounted flasher." diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 69621adc84..33bd47126c 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -79,6 +79,20 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/glass/incinerator + autoclose = FALSE + frequency = FREQ_AIRLOCK_CONTROL + heat_proof = TRUE + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/door/airlock/glass/incinerator/syndicatelava_interior + name = "Turbine Interior Airlock" + id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR + +/obj/machinery/door/airlock/glass/incinerator/syndicatelava_exterior + name = "Turbine Exterior Airlock" + id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR + /obj/machinery/door/airlock/command/glass opacity = 0 glass = TRUE @@ -107,6 +121,20 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/research/glass/incinerator + autoclose = FALSE + frequency = FREQ_AIRLOCK_CONTROL + heat_proof = TRUE + req_access = list(ACCESS_TOX) + +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior + name = "Mixing Room Interior Airlock" + id_tag = INCINERATOR_TOXMIX_AIRLOCK_INTERIOR + +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior + name = "Mixing Room Exterior Airlock" + id_tag = INCINERATOR_TOXMIX_AIRLOCK_EXTERIOR + /obj/machinery/door/airlock/mining/glass opacity = 0 glass = TRUE @@ -287,6 +315,20 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/public/glass/incinerator + autoclose = FALSE + frequency = FREQ_AIRLOCK_CONTROL + heat_proof = TRUE + req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) + +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior + name = "Turbine Interior Airlock" + id_tag = INCINERATOR_ATMOS_AIRLOCK_INTERIOR + +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior + name = "Turbine Exterior Airlock" + id_tag = INCINERATOR_ATMOS_AIRLOCK_EXTERIOR + ////////////////////////////////// /* External Airlocks diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 9e467e8926..a581b20f52 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -36,6 +36,26 @@ else INVOKE_ASYNC(src, .proc/close) +/obj/machinery/door/poddoor/incinerator_toxmix + name = "combustion chamber vent" + id = INCINERATOR_TOXMIX_VENT + +/obj/machinery/door/poddoor/incinerator_atmos_main + name = "turbine vent" + id = INCINERATOR_ATMOS_MAINVENT + +/obj/machinery/door/poddoor/incinerator_atmos_aux + name = "combustion chamber vent" + id = INCINERATOR_ATMOS_AUXVENT + +/obj/machinery/door/poddoor/incinerator_syndicatelava_main + name = "turbine vent" + id = INCINERATOR_SYNDICATELAVA_MAINVENT + +/obj/machinery/door/poddoor/incinerator_syndicatelava_aux + name = "combustion chamber vent" + id = INCINERATOR_SYNDICATELAVA_AUXVENT + /obj/machinery/door/poddoor/CollidedWith(atom/movable/AM) if(density) return 0 diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm index e2402177e2..8b9255b5ac 100644 --- a/code/game/machinery/embedded_controller/airlock_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_controller.dm @@ -7,11 +7,11 @@ /datum/computer/file/embedded_program/airlock_controller var/id_tag - var/exterior_door_tag - var/interior_door_tag - var/airpump_tag - var/sensor_tag - var/sanitize_external + var/exterior_door_tag //Burn chamber facing door + var/interior_door_tag //Station facing door + var/airpump_tag //See: dp_vent_pump.dm + var/sensor_tag //See: /obj/machinery/airlock_sensor + var/sanitize_external //Before the interior airlock opens, do we first drain all gases inside the chamber and then repressurize? state = AIRLOCK_STATE_CLOSED var/target_state = AIRLOCK_STATE_CLOSED @@ -211,6 +211,33 @@ var/sensor_tag var/sanitize_external +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix + name = "Incinerator Access Console" + airpump_tag = INCINERATOR_TOXMIX_DP_VENTPUMP + exterior_door_tag = INCINERATOR_TOXMIX_AIRLOCK_EXTERIOR + id_tag = INCINERATOR_TOXMIX_AIRLOCK_CONTROLLER + interior_door_tag = INCINERATOR_TOXMIX_AIRLOCK_INTERIOR + sanitize_external = TRUE + sensor_tag = INCINERATOR_TOXMIX_AIRLOCK_SENSOR + +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos + name = "Incinerator Access Console" + airpump_tag = INCINERATOR_ATMOS_DP_VENTPUMP + exterior_door_tag = INCINERATOR_ATMOS_AIRLOCK_EXTERIOR + id_tag = INCINERATOR_ATMOS_AIRLOCK_CONTROLLER + interior_door_tag = INCINERATOR_ATMOS_AIRLOCK_INTERIOR + sanitize_external = TRUE + sensor_tag = INCINERATOR_ATMOS_AIRLOCK_SENSOR + +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_syndicatelava + name = "Incinerator Access Console" + airpump_tag = INCINERATOR_SYNDICATELAVA_DP_VENTPUMP + exterior_door_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR + id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER + interior_door_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR + sanitize_external = TRUE + sensor_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR + /obj/machinery/embedded_controller/radio/airlock_controller/Initialize(mapload) . = ..() if(!mapload) diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index d5bb8db0e3..0753d7598f 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -14,6 +14,15 @@ armor = list("melee" = 50, "bullet" = 30, "laser" = 70, "energy" = 50, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) resistance_flags = FIRE_PROOF +/obj/machinery/igniter/incinerator_toxmix + id = INCINERATOR_TOXMIX_IGNITER + +/obj/machinery/igniter/incinerator_atmos + id = INCINERATOR_ATMOS_IGNITER + +/obj/machinery/igniter/incinerator_syndicatelava + id = INCINERATOR_SYNDICATELAVA_IGNITER + /obj/machinery/igniter/on on = TRUE icon_state = "igniter1" @@ -60,6 +69,9 @@ anchored = TRUE resistance_flags = FIRE_PROOF +/obj/machinery/sparker/toxmix + id = INCINERATOR_TOXMIX_IGNITER + /obj/machinery/sparker/Initialize() . = ..() spark_system = new /datum/effect_system/spark_spread diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index 671eca928e..a737b3c688 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -62,6 +62,18 @@ Acts like a normal vent, but has an input AND output. /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume name = "large dual-port air vent" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix + id = INCINERATOR_TOXMIX_DP_VENTPUMP + frequency = FREQ_AIRLOCK_CONTROL + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos + id = INCINERATOR_ATMOS_DP_VENTPUMP + frequency = FREQ_AIRLOCK_CONTROL + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_syndicatelava + id = INCINERATOR_SYNDICATELAVA_DP_VENTPUMP + frequency = FREQ_AIRLOCK_CONTROL + /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer1 piping_layer = PIPING_LAYER_MIN pixel_x = -PIPING_LAYER_P_X From 8157233145bfc88983632d6e244c63e6383221d1 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sun, 3 Jun 2018 22:19:52 -0400 Subject: [PATCH 2/2] Update airlock_control.dm --- code/game/machinery/airlock_control.dm | 158 +------------------------ 1 file changed, 1 insertion(+), 157 deletions(-) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index f709ce07a7..1db9669a96 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -1,158 +1,3 @@ -<<<<<<< HEAD -#define AIRLOCK_CONTROL_RANGE 5 - -// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) -/obj/machinery/door/airlock - var/id_tag - var/frequency - var/datum/radio_frequency/radio_connection - - -/obj/machinery/door/airlock/receive_signal(datum/signal/signal) - if(!signal) - return - - if(id_tag != signal.data["tag"] || !signal.data["command"]) - return - - switch(signal.data["command"]) - if("open") - open(1) - - if("close") - close(1) - - if("unlock") - locked = FALSE - update_icon() - - if("lock") - locked = TRUE - update_icon() - - if("secure_open") - locked = FALSE - update_icon() - - sleep(2) - open(1) - - locked = TRUE - update_icon() - - if("secure_close") - locked = FALSE - close(1) - - locked = TRUE - sleep(2) - update_icon() - - send_status() - - -/obj/machinery/door/airlock/proc/send_status() - if(radio_connection) - var/datum/signal/signal = new(list( - "tag" = id_tag, - "timestamp" = world.time, - "door_status" = density ? "closed" : "open", - "lock_status" = locked ? "locked" : "unlocked" - )) - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - - -/obj/machinery/door/airlock/open(surpress_send) - . = ..() - if(!surpress_send) - send_status() - - -/obj/machinery/door/airlock/close(surpress_send) - . = ..() - if(!surpress_send) - send_status() - - -/obj/machinery/door/airlock/proc/set_frequency(new_frequency) - SSradio.remove_object(src, frequency) - if(new_frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) - -/obj/machinery/door/airlock/Destroy() - if(frequency) - SSradio.remove_object(src,frequency) - return ..() - -/obj/machinery/airlock_sensor - icon = 'icons/obj/airlock_machines.dmi' - icon_state = "airlock_sensor_off" - name = "airlock sensor" - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - - anchored = TRUE - power_channel = ENVIRON - - var/id_tag - var/master_tag - var/frequency = FREQ_AIRLOCK_CONTROL - - var/datum/radio_frequency/radio_connection - - var/on = TRUE - var/alert = FALSE - - -/obj/machinery/airlock_sensor/update_icon() - if(on) - if(alert) - icon_state = "airlock_sensor_alert" - else - icon_state = "airlock_sensor_standby" - else - icon_state = "airlock_sensor_off" - -/obj/machinery/airlock_sensor/attack_hand(mob/user) - . = ..() - if(.) - return - var/datum/signal/signal = new(list( - "tag" = master_tag, - "command" = "cycle" - )) - - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - flick("airlock_sensor_cycle", src) - -/obj/machinery/airlock_sensor/process() - if(on) - var/datum/gas_mixture/air_sample = return_air() - var/pressure = round(air_sample.return_pressure(),0.1) - alert = (pressure < ONE_ATMOSPHERE*0.8) - - var/datum/signal/signal = new(list( - "tag" = id_tag, - "timestamp" = world.time, - "pressure" = num2text(pressure) - )) - - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - - update_icon() - -/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency) - SSradio.remove_object(src, frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) - -/obj/machinery/airlock_sensor/Initialize() - . = ..() - set_frequency(frequency) - -/obj/machinery/airlock_sensor/Destroy() - SSradio.remove_object(src,frequency) -======= #define AIRLOCK_CONTROL_RANGE 5 // This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) @@ -316,5 +161,4 @@ /obj/machinery/airlock_sensor/Destroy() SSradio.remove_object(src,frequency) ->>>>>>> 5f76d96... replaces varedits with defines/subtypes (#38240) - return ..() \ No newline at end of file + return ..()