Atmospherics refactor (#18460)

* Atmospherics refactor

* META(GAMING)

* Cleanup

* RPD hotfix

* Fox review

* Do this

* Well that escalated

* Repath these

* Ah yes, scope creep

* Remove this comment

* Regression #1
This commit is contained in:
AffectedArc07
2022-08-01 21:27:35 +01:00
committed by GitHub
parent 1d552ab0e4
commit 2da68e9b64
75 changed files with 1230 additions and 1265 deletions
+122 -122
View File
@@ -244,7 +244,7 @@
/turf/simulated/floor/plasteel,
/area/hallway/secondary/entry)
"adu" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
@@ -537,7 +537,7 @@
network = list("SS13","Engineering")
},
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/northeast,
/turf/simulated/floor/plating,
/area/maintenance/auxsolarstarboard)
@@ -1832,7 +1832,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "arrival"
@@ -2975,7 +2975,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "neutral"
@@ -3291,7 +3291,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "neutral"
@@ -6166,7 +6166,7 @@
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
"axK" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 1
},
@@ -7021,7 +7021,7 @@
/turf/simulated/floor/plating,
/area/engine/supermatter)
"azU" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 4
},
@@ -7953,7 +7953,7 @@
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
"aBX" = (
/obj/machinery/power/supermatter_crystal,
/obj/machinery/atmospherics/supermatter_crystal,
/turf/simulated/floor/engine,
/area/engine/supermatter)
"aBY" = (
@@ -8050,7 +8050,7 @@
/area/engine/controlroom)
"aCj" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
@@ -8340,7 +8340,7 @@
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
"aCV" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible,
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 4
@@ -8354,7 +8354,7 @@
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
"aCY" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 10
},
@@ -8369,7 +8369,7 @@
/turf/simulated/floor/engine,
/area/engine/supermatter)
"aDa" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 6;
level = 1
@@ -8388,7 +8388,7 @@
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
"aDd" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 8
},
@@ -8913,7 +8913,7 @@
d2 = 2;
icon_state = "1-2"
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
"aEp" = (
@@ -9294,7 +9294,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/obj/structure/cable{
d1 = 1;
d2 = 2;
@@ -9583,7 +9583,7 @@
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
"aFW" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible,
/turf/simulated/floor/plasteel{
icon_state = "yellowfull"
@@ -9643,7 +9643,7 @@
/turf/simulated/floor/plasteel,
/area/engine/controlroom)
"aGa" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible,
/obj/structure/cable/yellow{
d1 = 4;
@@ -10686,7 +10686,7 @@
/area/security/permabrig)
"aIq" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/air{
/obj/machinery/atmospherics/portable/canister/air{
filled = 0.05
},
/obj/effect/decal/warning_stripes/northwest,
@@ -10753,7 +10753,7 @@
/area/maintenance/incinerator)
"aIw" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/machinery/light{
dir = 1
},
@@ -10765,7 +10765,7 @@
/area/maintenance/incinerator)
"aIx" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/portable/canister,
/obj/machinery/camera{
c_tag = "Turbine";
network = list("SS13","Engineering")
@@ -12017,7 +12017,7 @@
},
/area/maintenance/incinerator)
"aLe" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible,
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
@@ -12577,7 +12577,7 @@
/area/quartermaster/storage)
"aMA" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/portable/canister,
/obj/machinery/light{
dir = 8
},
@@ -12613,7 +12613,7 @@
},
/area/engine/controlroom)
"aMF" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible,
/turf/simulated/floor/plasteel,
/area/maintenance/incinerator)
@@ -15908,7 +15908,7 @@
},
/area/atmos)
"aUf" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible/yellow{
dir = 1
},
@@ -15953,7 +15953,7 @@
/area/crew_quarters/bar)
"aUk" = (
/obj/structure/grille,
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible/cyan{
dir = 4
},
@@ -16819,7 +16819,7 @@
/turf/simulated/floor/plating,
/area/atmos)
"aVS" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1443;
id_tag = "air_sensor";
output = 7
@@ -16827,7 +16827,7 @@
/turf/simulated/floor/engine/air,
/area/atmos)
"aVT" = (
/obj/machinery/portable_atmospherics/canister/air{
/obj/machinery/atmospherics/portable/canister/air{
anchored = 1
},
/turf/simulated/floor/engine/air,
@@ -17264,7 +17264,7 @@
},
/area/security/permabrig)
"aWL" = (
/obj/machinery/portable_atmospherics/canister/sleeping_agent,
/obj/machinery/atmospherics/portable/canister/sleeping_agent,
/obj/structure/window/reinforced{
dir = 8
},
@@ -17471,7 +17471,7 @@
/area/atmos)
"aXd" = (
/obj/structure/grille,
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 4
},
@@ -17526,7 +17526,7 @@
},
/area/atmos)
"aXl" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 4
},
@@ -18015,13 +18015,13 @@
/turf/simulated/floor/engine/co2,
/area/atmos)
"aYv" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide{
/obj/machinery/atmospherics/portable/canister/carbon_dioxide{
anchored = 1
},
/turf/simulated/floor/engine/co2,
/area/atmos)
"aYw" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "co2_sensor"
},
@@ -18953,7 +18953,7 @@
/area/atmos)
"bah" = (
/obj/structure/grille,
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible/green{
dir = 4
},
@@ -19013,7 +19013,7 @@
},
/area/atmos)
"bao" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/item/wrench,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 8
@@ -19026,7 +19026,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/portable/canister,
/obj/effect/decal/warning_stripes/west,
/turf/simulated/floor/plasteel,
/area/atmos)
@@ -19724,7 +19724,7 @@
},
/area/atmos)
"bbO" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 4
},
@@ -19798,14 +19798,14 @@
},
/area/atmos)
"bbY" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "o2_sensor"
},
/turf/simulated/floor/engine/o2,
/area/atmos)
"bbZ" = (
/obj/machinery/portable_atmospherics/canister/oxygen{
/obj/machinery/atmospherics/portable/canister/oxygen{
anchored = 1
},
/turf/simulated/floor/engine/o2,
@@ -20349,7 +20349,7 @@
/turf/simulated/floor/plasteel,
/area/atmos)
"bdp" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 8
},
@@ -20950,13 +20950,13 @@
/turf/simulated/floor/engine/plasma,
/area/atmos)
"beF" = (
/obj/machinery/portable_atmospherics/canister/toxins{
/obj/machinery/atmospherics/portable/canister/toxins{
anchored = 1
},
/turf/simulated/floor/engine/plasma,
/area/atmos)
"beG" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "tox_sensor"
},
@@ -21465,7 +21465,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
@@ -22013,7 +22013,7 @@
/turf/simulated/floor/plasteel,
/area/security/securearmoury)
"bhj" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 1
},
@@ -22101,14 +22101,14 @@
/turf/simulated/floor/plasteel/dark,
/area/atmos)
"bhs" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "n2_sensor"
},
/turf/simulated/floor/engine/n2,
/area/atmos)
"bht" = (
/obj/machinery/portable_atmospherics/canister/nitrogen{
/obj/machinery/atmospherics/portable/canister/nitrogen{
anchored = 1
},
/turf/simulated/floor/engine/n2,
@@ -23641,13 +23641,13 @@
/turf/simulated/floor/engine/n20,
/area/atmos)
"bkw" = (
/obj/machinery/portable_atmospherics/canister/sleeping_agent{
/obj/machinery/atmospherics/portable/canister/sleeping_agent{
anchored = 1
},
/turf/simulated/floor/engine/n20,
/area/atmos)
"bkx" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "n2o_sensor"
},
@@ -23684,13 +23684,13 @@
/turf/simulated/floor/plasteel,
/area/atmos)
"bkB" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible/yellow,
/obj/effect/decal/warning_stripes/south,
/turf/simulated/floor/plasteel,
/area/atmos)
"bkC" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible/cyan,
/obj/effect/decal/warning_stripes/south,
/turf/simulated/floor/plasteel,
@@ -26175,7 +26175,7 @@
/turf/simulated/floor/plasteel/grimy,
/area/library)
"bpQ" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/portable/canister/nitrogen,
/obj/machinery/light{
dir = 1
},
@@ -26972,7 +26972,7 @@
/turf/simulated/floor/engine/vacuum,
/area/atmos)
"bry" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "waste_sensor";
output = 63
@@ -27010,7 +27010,7 @@
/turf/simulated/floor/plasteel,
/area/atmos)
"brB" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible/green,
/obj/effect/decal/warning_stripes/north,
/turf/simulated/floor/plasteel,
@@ -27111,17 +27111,17 @@
/turf/simulated/floor/plasteel,
/area/atmos)
"brO" = (
/obj/machinery/portable_atmospherics/canister/sleeping_agent,
/obj/machinery/atmospherics/portable/canister/sleeping_agent,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/atmos)
"brP" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/portable/canister/nitrogen,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/atmos)
"brR" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/structure/sign/nosmoking_2{
pixel_x = 32
},
@@ -27764,7 +27764,7 @@
/turf/simulated/floor/plasteel,
/area/atmos)
"btt" = (
/obj/machinery/portable_atmospherics/canister/sleeping_agent,
/obj/machinery/atmospherics/portable/canister/sleeping_agent,
/obj/structure/cable{
d1 = 4;
d2 = 8;
@@ -27777,7 +27777,7 @@
/turf/simulated/floor/plasteel,
/area/atmos)
"btu" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/portable/canister/nitrogen,
/obj/structure/cable{
d1 = 2;
d2 = 8;
@@ -27791,12 +27791,12 @@
/turf/simulated/floor/plasteel,
/area/atmos)
"btv" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/atmos)
"btw" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/atmos)
@@ -28185,7 +28185,7 @@
},
/area/atmos)
"bup" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible/cyan{
dir = 4;
initialize_directions = 11
@@ -28234,7 +28234,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/obj/structure/sign/nosmoking_2{
pixel_y = -32
},
@@ -28246,7 +28246,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/obj/machinery/camera{
c_tag = "Atmospherics Storage";
dir = 1
@@ -28263,7 +28263,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plasteel{
icon_state = "escape"
},
@@ -28277,7 +28277,7 @@
name = "south bump";
pixel_y = -24
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plasteel{
icon_state = "escape"
},
@@ -28400,7 +28400,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "escape"
@@ -28814,7 +28814,7 @@
},
/area/atmos)
"bvH" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold4w/visible,
/turf/simulated/floor/plasteel{
icon_state = "caution"
@@ -28831,7 +28831,7 @@
},
/area/atmos)
"bvJ" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 4
},
@@ -30345,7 +30345,7 @@
c_tag = "Port Hallway North";
dir = 8
},
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "arrival"
@@ -31001,7 +31001,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "arrival"
@@ -31463,7 +31463,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 4
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/northwest,
/turf/simulated/floor/plasteel,
/area/engine/gravitygenerator)
@@ -37673,7 +37673,7 @@
/turf/simulated/floor/plasteel,
/area/engine/break_room)
"bNW" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
@@ -38478,7 +38478,7 @@
/area/engine/break_room)
"bPG" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/northeastcorner,
/turf/simulated/floor/plating,
/area/turret_protected/aisat)
@@ -38488,7 +38488,7 @@
name = "north bump";
pixel_y = 24
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/structure/cable{
d1 = 2;
d2 = 4;
@@ -39810,7 +39810,7 @@
},
/area/hallway/primary/port)
"bSr" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/structure/cable{
d1 = 1;
d2 = 2;
@@ -43072,7 +43072,7 @@
/turf/simulated/wall/r_wall,
/area/engine/engineering)
"bZs" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
@@ -48945,7 +48945,7 @@
/turf/simulated/floor/plasteel,
/area/engine/engine_smes)
"cnf" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/engine/engine_smes)
@@ -49473,7 +49473,7 @@
/turf/simulated/floor/plasteel,
/area/engine/engine_smes)
"cov" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plating,
/area/engine/engine_smes)
"cow" = (
@@ -49646,7 +49646,7 @@
/area/crew_quarters/locker)
"coS" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "arrival"
@@ -49654,7 +49654,7 @@
/area/crew_quarters/locker)
"coT" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "escape"
@@ -51344,7 +51344,7 @@
/turf/simulated/floor/plasteel,
/area/engine/engineering)
"cst" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/atmospherics/portable/canister/toxins,
/obj/machinery/light/small{
dir = 8
},
@@ -55762,7 +55762,7 @@
name = "west bump";
pixel_x = -30
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/yellow,
/turf/simulated/floor/plasteel,
/area/maintenance/port)
@@ -56325,7 +56325,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/southwest,
/turf/simulated/floor/plasteel,
/area/engine/engineering)
@@ -56398,7 +56398,7 @@
/area/engine/engine_smes)
"cDM" = (
/obj/machinery/light,
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/engine/engine_smes)
@@ -58702,7 +58702,7 @@
/obj/machinery/light/small{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/toxins/xenobiology)
@@ -59788,7 +59788,7 @@
/area/crew_quarters/fitness)
"cLx" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/northeast,
/turf/simulated/floor/plasteel,
/area/maintenance/electrical)
@@ -60346,7 +60346,7 @@
/turf/simulated/floor/plasteel,
/area/maintenance/electrical)
"cMV" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 4
},
@@ -61910,7 +61910,7 @@
/turf/simulated/floor/plasteel/white,
/area/toxins/misc_lab)
"cQx" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 4
},
@@ -64543,7 +64543,7 @@
/turf/simulated/floor/plasteel,
/area/maintenance/port)
"cWm" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/atmospherics/unary/portables_connector{
layer = 2
},
@@ -68522,7 +68522,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/portable/canister,
/obj/effect/decal/warning_stripes/southwest,
/turf/simulated/floor/plasteel,
/area/maintenance/electrical)
@@ -69505,7 +69505,7 @@
},
/area/maintenance/starboard)
"dhr" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/yellow,
/turf/simulated/floor/plasteel,
/area/maintenance/starboard)
@@ -70346,7 +70346,7 @@
/turf/simulated/floor/carpet,
/area/maintenance/starboard)
"diX" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/maintenance/starboard)
"diY" = (
@@ -71490,7 +71490,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/southwest,
/turf/simulated/floor/plasteel/white,
/area/medical/medbay)
@@ -71840,7 +71840,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/southeast,
/turf/simulated/floor/plasteel/white,
/area/medical/medbay)
@@ -73482,7 +73482,7 @@
pixel_x = -32;
pixel_y = 8
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitepurplecorner"
@@ -73529,7 +73529,7 @@
name = "east bump";
pixel_x = 30
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/west,
/turf/simulated/floor/plasteel{
dir = 4;
@@ -73986,7 +73986,7 @@
/area/ntrep)
"drr" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/obj/machinery/alarm{
dir = 4;
name = "west bump";
@@ -74471,7 +74471,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/portable/canister,
/obj/effect/decal/warning_stripes/southwest,
/turf/simulated/floor/plasteel{
dir = 4;
@@ -76678,14 +76678,14 @@
/turf/simulated/floor/plasteel/white,
/area/toxins/launch)
"dxm" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 8
},
/turf/simulated/floor/plasteel/white,
/area/toxins/mixing)
"dxn" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/portable/canister/nitrogen,
/obj/machinery/alarm{
name = "north bump";
pixel_y = 24
@@ -76694,7 +76694,7 @@
/turf/simulated/floor/plasteel,
/area/toxins/storage)
"dxo" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/portable/canister/nitrogen,
/obj/item/radio/intercom{
name = "north bump";
pixel_y = 28
@@ -76750,7 +76750,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 4
},
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/portable/canister/nitrogen,
/obj/structure/cable{
d2 = 4;
icon_state = "0-4"
@@ -77327,7 +77327,7 @@
/turf/simulated/floor/plasteel/white,
/area/toxins/storage)
"dyG" = (
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/portable/canister,
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
@@ -78657,7 +78657,7 @@
/turf/simulated/floor/plasteel,
/area/toxins/storage)
"dBy" = (
/obj/machinery/portable_atmospherics/scrubber/huge,
/obj/machinery/atmospherics/portable/scrubber/huge,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/toxins/storage)
@@ -78668,7 +78668,7 @@
pixel_x = 24
},
/obj/structure/cable,
/obj/machinery/portable_atmospherics/scrubber/huge,
/obj/machinery/atmospherics/portable/scrubber/huge,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/toxins/storage)
@@ -79128,12 +79128,12 @@
},
/area/maintenance/apmaint)
"dCK" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/machinery/atmospherics/portable/canister/carbon_dioxide,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/toxins/storage)
"dCM" = (
/obj/machinery/portable_atmospherics/canister/sleeping_agent,
/obj/machinery/atmospherics/portable/canister/sleeping_agent,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/toxins/storage)
@@ -79675,18 +79675,18 @@
/turf/simulated/floor/plasteel/airless,
/area/toxins/test_area)
"dDQ" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/toxins/storage)
"dDR" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/toxins/storage)
"dDS" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/atmospherics/portable/canister/toxins,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/toxins/storage)
@@ -79696,7 +79696,7 @@
/area/toxins/launch)
"dDU" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/maintenance/apmaint)
"dDV" = (
@@ -79755,7 +79755,7 @@
},
/area/maintenance/apmaint)
"dEa" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/atmospherics/portable/canister/toxins,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
@@ -82058,7 +82058,7 @@
},
/area/medical/virology)
"dJU" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
@@ -84546,7 +84546,7 @@
/area/hallway/secondary/exit)
"dPZ" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/northwest,
/turf/simulated/floor/plating,
/area/maintenance/portsolar)
@@ -92338,7 +92338,7 @@
},
/area/security/permabrig)
"mTO" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1222;
id_tag = "burn_sensor"
},
@@ -92953,7 +92953,7 @@
c_tag = "Aft Starboard Solars"
},
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/northeast,
/turf/simulated/floor/plating,
/area/maintenance/starboardsolar)
@@ -93590,7 +93590,7 @@
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 8
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "vault"
@@ -93653,7 +93653,7 @@
},
/area/security/main)
"pxj" = (
/obj/machinery/portable_atmospherics/scrubber/huge/stationary,
/obj/machinery/atmospherics/portable/scrubber/huge/stationary,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "red"
@@ -94390,7 +94390,7 @@
},
/area/security/warden)
"qWp" = (
/obj/machinery/meter{
/obj/machinery/atmospherics/meter{
layer = 3.31
},
/obj/structure/window/plasmareinforced{
@@ -94412,7 +94412,7 @@
/turf/simulated/floor/plasteel/dark,
/area/maintenance/fore2)
"qXF" = (
/obj/machinery/portable_atmospherics/canister/sleeping_agent,
/obj/machinery/atmospherics/portable/canister/sleeping_agent,
/obj/machinery/atmospherics/unary/portables_connector,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -95233,7 +95233,7 @@
/obj/structure/sign/electricshock{
pixel_y = 32
},
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/machinery/atmospherics/portable/canister/carbon_dioxide,
/obj/machinery/atmospherics/unary/portables_connector,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -95721,7 +95721,7 @@
},
/area/hallway/primary/port)
"tvq" = (
/obj/machinery/portable_atmospherics/scrubber/huge/stationary,
/obj/machinery/atmospherics/portable/scrubber/huge/stationary,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "red"
@@ -96167,7 +96167,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/light/small{
dir = 4
},
File diff suppressed because it is too large Load Diff
@@ -803,7 +803,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/turf/simulated/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"cf" = (
@@ -74,7 +74,7 @@
/turf/simulated/floor/plating/airless,
/area/ruin/space/abandtele)
"s" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating/airless,
/area/ruin/space/abandtele)
"t" = (
@@ -81,7 +81,7 @@
/turf/simulated/floor/plating/airless,
/area/ruin/space/tcommsat)
"aq" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating/airless,
/area/ruin/space/tcommsat)
"ar" = (
@@ -125,7 +125,7 @@
/obj/structure/window/reinforced{
dir = 4
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating/airless,
/area/ruin/space/tcommsat)
"az" = (
@@ -205,11 +205,11 @@
/turf/simulated/floor/plasteel,
/area/ruin/space/unpowered)
"as" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plasteel,
/area/ruin/space/unpowered)
"at" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plasteel,
/area/ruin/space/unpowered)
"au" = (
@@ -714,7 +714,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/door/window/westleft,
/turf/simulated/floor/plasteel{
dir = 1;
@@ -119,7 +119,7 @@
/turf/simulated/floor/plating,
/area/ruin/space/methlab)
"x" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/ruin/space/methlab)
"y" = (
@@ -2067,7 +2067,7 @@
/turf/simulated/floor/plating/airless,
/area/ruin/powered)
"gB" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating/airless,
/area/ruin/powered)
"gC" = (
@@ -2361,7 +2361,7 @@
/turf/simulated/floor/plating,
/area/ruin/powered)
"hx" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/ruin/powered)
"hy" = (
@@ -1301,7 +1301,7 @@
/turf/simulated/floor/plasteel/airless,
/area/ruin/ancientstation/betanorth)
"dJ" = (
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/portable/canister,
/turf/simulated/floor/plating/airless,
/area/ruin/ancientstation/betanorth)
"dK" = (
@@ -4055,7 +4055,7 @@
/area/ruin/ancientstation)
"jy" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/structure/cable{
d1 = 1;
d2 = 2;
@@ -4515,7 +4515,7 @@
/obj/structure/window/reinforced{
dir = 8
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/engine,
/area/ruin/ancientstation/atmo)
"kE" = (
@@ -712,7 +712,7 @@
/turf/simulated/floor/plasteel,
/area/ruin/space/onehalf/drone_bay)
"bH" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plasteel,
/area/ruin/space/onehalf/drone_bay)
"bI" = (
@@ -258,7 +258,7 @@
dir = 4;
initialize_directions = 11
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
"cE" = (
@@ -359,7 +359,7 @@
/area/ruin/unpowered/syndicate_space_base/testlab)
"dP" = (
/obj/effect/decal/warning_stripes/yellow,
/obj/machinery/portable_atmospherics/canister/sleeping_agent,
/obj/machinery/atmospherics/portable/canister/sleeping_agent,
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
"dS" = (
@@ -633,7 +633,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/atmospherics/portable/canister/toxins,
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
"gD" = (
@@ -706,7 +706,7 @@
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 8
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
"hB" = (
@@ -980,7 +980,7 @@
dir = 4;
initialize_directions = 11
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -1065,7 +1065,7 @@
},
/area/ruin/unpowered/syndicate_space_base/telecomms)
"kI" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/atmospherics/portable/canister/toxins,
/obj/effect/decal/warning_stripes/yellow,
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
@@ -1838,7 +1838,7 @@
},
/area/ruin/unpowered/syndicate_space_base/virology)
"uz" = (
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "yellow"
@@ -1928,7 +1928,7 @@
},
/area/ruin/unpowered/syndicate_space_base/bar)
"vn" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -2036,7 +2036,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
"wc" = (
@@ -2159,7 +2159,7 @@
dir = 4;
initialize_directions = 11
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -2244,7 +2244,7 @@
},
/area/ruin/unpowered/syndicate_space_base/bar)
"xt" = (
/obj/machinery/portable_atmospherics/canister/air{
/obj/machinery/atmospherics/portable/canister/air{
anchored = 1
},
/turf/simulated/floor/engine/air,
@@ -2616,7 +2616,7 @@
},
/area/ruin/unpowered/syndicate_space_base/bar)
"Cr" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/yellow,
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
@@ -2681,7 +2681,7 @@
},
/area/ruin/unpowered/syndicate_space_base/main)
"Dv" = (
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/turf/simulated/floor/plasteel{
dir = 6;
icon_state = "yellow"
@@ -3122,7 +3122,7 @@
/turf/space,
/area/ruin/unpowered/syndicate_space_base/engineering)
"He" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/obj/effect/decal/warning_stripes/yellow,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -3450,7 +3450,7 @@
/turf/simulated/floor/grass,
/area/ruin/unpowered/syndicate_space_base/bar)
"KH" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/yellow,
/obj/machinery/alarm/syndicate{
pixel_y = 24
@@ -4363,7 +4363,7 @@
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
"Vg" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/machinery/atmospherics/portable/canister/carbon_dioxide,
/obj/effect/decal/warning_stripes/yellow,
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
@@ -4392,7 +4392,7 @@
},
/area/ruin/unpowered/syndicate_space_base/engineering)
"VB" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/insulated{
dir = 4
},
@@ -387,7 +387,7 @@
dir = 1;
on = 1
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -506,7 +506,7 @@
},
/area/syndicate_depot/outer)
"bz" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -2122,7 +2122,7 @@
name = "Derelict Annex"
})
"eX" = (
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
@@ -2373,7 +2373,7 @@
name = "Derelict Annex"
})
"fu" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
@@ -3863,7 +3863,7 @@
/area/ruin/space/derelict/crew_quarters)
"iN" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "chapel"
@@ -7929,7 +7929,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 4
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plasteel{
icon_state = "redfull"
},
@@ -146,7 +146,7 @@
/turf/simulated/floor/mineral/titanium,
/area/shuttle/abandoned)
"aQ" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/abandoned)
"aS" = (
@@ -222,7 +222,7 @@
/turf/simulated/floor/mineral/titanium,
/area/shuttle/abandoned)
"bi" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/abandoned)
"bm" = (
@@ -461,7 +461,7 @@
},
/area/ruin/space/unpowered)
"bD" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/ruin/space/unpowered)
"bE" = (
+10 -10
View File
@@ -215,7 +215,7 @@
},
/area/awaymission/centcomAway/cafe)
"aE" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/awaymission/centcomAway/maint)
"aF" = (
@@ -290,7 +290,7 @@
},
/area/awaymission/centcomAway/cafe)
"aP" = (
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/turf/simulated/floor/plating,
/area/awaymission/centcomAway/maint)
"aQ" = (
@@ -1659,7 +1659,7 @@
},
/area/awaymission/centcomAway/general)
"eX" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/light{
dir = 8
},
@@ -1667,7 +1667,7 @@
/turf/simulated/floor/plating,
/area/awaymission/centcomAway/cafe)
"eY" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/southwest,
/turf/simulated/floor/plating,
/area/awaymission/centcomAway/cafe)
@@ -1690,7 +1690,7 @@
/turf/simulated/floor/mineral/titanium/blue,
/area/awaymission/centcomAway/hangar)
"fd" = (
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/obj/effect/decal/warning_stripes/southeast,
/turf/simulated/floor/plating,
/area/awaymission/centcomAway/cafe)
@@ -2361,7 +2361,7 @@
},
/area/awaymission/centcomAway/general)
"hc" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/machinery/atmospherics/portable/canister/carbon_dioxide,
/turf/simulated/floor/plating,
/area/awaymission/centcomAway/maint)
"hd" = (
@@ -5468,7 +5468,7 @@
},
/area/awaymission/centcomAway/thunderdome)
"oX" = (
/obj/machinery/portable_atmospherics/scrubber/huge,
/obj/machinery/atmospherics/portable/scrubber/huge,
/turf/simulated/floor/plasteel{
dir = 9;
icon_state = "red"
@@ -5517,7 +5517,7 @@
},
/area/awaymission/centcomAway/thunderdome)
"pf" = (
/obj/machinery/portable_atmospherics/scrubber/huge,
/obj/machinery/atmospherics/portable/scrubber/huge,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "green"
@@ -5723,7 +5723,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/centcomAway/general)
"pH" = (
/obj/machinery/portable_atmospherics/scrubber/huge,
/obj/machinery/atmospherics/portable/scrubber/huge,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "red"
@@ -5747,7 +5747,7 @@
},
/area/awaymission/centcomAway/thunderdome)
"pL" = (
/obj/machinery/portable_atmospherics/scrubber/huge,
/obj/machinery/atmospherics/portable/scrubber/huge,
/turf/simulated/floor/plasteel{
dir = 6;
icon_state = "green"
@@ -1007,7 +1007,7 @@
name = "Syndicate Outpost"
})
"bU" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/alarm/monitor{
pixel_y = 23;
req_access = "150"
@@ -1018,7 +1018,7 @@
name = "Syndicate Outpost"
})
"bV" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/northeast,
/turf/simulated/floor/plating,
/area/awaycontent/a4{
@@ -1553,7 +1553,7 @@
name = "Syndicate Outpost"
})
"cP" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/obj/effect/decal/warning_stripes/southeast,
/turf/simulated/floor/plating,
/area/awaycontent/a4{
@@ -2022,7 +2022,7 @@
name = "\improper HOSTILE ATMOSPHERE AHEAD";
pixel_y = -32
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/effect/decal/warning_stripes/southwest,
/turf/simulated/floor/plating/airless{
name = "plating"
@@ -2342,7 +2342,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 4
},
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/portable/canister,
/obj/structure/alien/weeds,
/turf/simulated/floor/plasteel,
/area/awaycontent/a2{
@@ -4198,7 +4198,7 @@
/turf/simulated/floor/plating,
/area/awaycontent/a7)
"hn" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/awaycontent/a7)
"ho" = (
@@ -6967,7 +6967,7 @@
name = "MO19 Arrivals"
})
"mk" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/cleanable/dirt,
/obj/structure/window/basic{
dir = 1
@@ -7390,7 +7390,7 @@
name = "MO19 Arrivals"
})
"nb" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plating,
/area/awaycontent/a1{
name = "MO19 Arrivals"
@@ -8312,7 +8312,7 @@
dir = 6;
level = 1
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/floor/plating,
/area/awaycontent/a1{
name = "MO19 Arrivals"
+35 -35
View File
@@ -708,7 +708,7 @@
/turf/simulated/floor/plating,
/area/awaymission/UO71/plaza)
"ce" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/awaymission/UO71/plaza)
"cf" = (
@@ -875,7 +875,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
@@ -1971,7 +1971,7 @@
},
/area/awaymission/UO71/centralhall)
"fj" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/obj/effect/landmark/burnturf,
/turf/simulated/floor/plating,
/area/awaymission/UO71/gateway)
@@ -2940,7 +2940,7 @@
},
/area/awaymission/UO71/gateway)
"hz" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plating,
/area/awaymission/UO71/gateway)
"hA" = (
@@ -3996,7 +3996,7 @@
/turf/simulated/floor/plating,
/area/awaymission/UO71/gateway)
"kk" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plating,
/area/awaymission/UO71/gateway)
"kl" = (
@@ -5593,7 +5593,7 @@
},
/area/awaymission/UO71/centralhall)
"nu" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/awaymission/UO71/eng)
@@ -6807,11 +6807,11 @@
/turf/simulated/floor/plasteel,
/area/awaymission/UO71/centralhall)
"pu" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/engine/air,
/area/awaymission/UO71/eng)
"pv" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1443;
id_tag = "UO71_air_sensor";
output = 7
@@ -7244,8 +7244,8 @@
},
/area/awaymission/UO71/centralhall)
"qr" = (
/obj/machinery/meter{
id = "UO71_mair_out_meter";
/obj/machinery/atmospherics/meter{
id_tag = "UO71_mair_out_meter";
layer = 3.3;
name = "Mixed Air Tank Out"
},
@@ -7254,8 +7254,8 @@
/area/awaymission/UO71/eng)
"qs" = (
/obj/machinery/atmospherics/pipe/simple/visible/cyan,
/obj/machinery/meter{
id = "UO71_mair_in_meter";
/obj/machinery/atmospherics/meter{
id_tag = "UO71_mair_in_meter";
layer = 3.3;
name = "Mixed Air Tank In"
},
@@ -7674,7 +7674,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/yellow/hollow,
/turf/simulated/floor/plasteel,
/area/awaymission/UO71/eng)
@@ -8450,7 +8450,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/obj/effect/decal/warning_stripes/west,
/turf/simulated/floor/plating,
/area/awaymission/UO71/science)
@@ -8478,8 +8478,8 @@
d2 = 2;
icon_state = "1-2"
},
/obj/machinery/meter{
id = "UO71_dloop_atm_meter";
/obj/machinery/atmospherics/meter{
id_tag = "UO71_dloop_atm_meter";
name = "Distribution Loop"
},
/obj/effect/decal/cleanable/dirt,
@@ -8503,7 +8503,7 @@
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 4
},
/obj/machinery/meter{
/obj/machinery/atmospherics/meter{
layer = 3.3
},
/turf/simulated/wall,
@@ -8893,7 +8893,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/UO71/eng)
"tw" = (
/obj/machinery/meter{
/obj/machinery/atmospherics/meter{
layer = 3.3
},
/obj/machinery/atmospherics/pipe/simple/visible/green{
@@ -8914,7 +8914,7 @@
},
/area/awaymission/UO71/eng)
"ty" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "UO71_waste_sensor";
output = 63
@@ -9046,7 +9046,7 @@
dir = 4;
layer = 2.9
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "escape"
@@ -9054,7 +9054,7 @@
/area/awaymission/UO71/eng)
"tT" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/portable/pump,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "arrival"
@@ -9155,8 +9155,8 @@
/turf/simulated/floor/plasteel,
/area/awaymission/UO71/eng)
"ud" = (
/obj/machinery/meter{
id = "UO71_wloop_atm_meter";
/obj/machinery/atmospherics/meter{
id_tag = "UO71_wloop_atm_meter";
name = "Waste Loop"
},
/obj/machinery/atmospherics/pipe/manifold/visible/purple{
@@ -9350,7 +9350,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/UO71/eng)
"uv" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/portable/scrubber,
/obj/effect/decal/warning_stripes/southwest,
/turf/simulated/floor/plating,
/area/awaymission/UO71/science)
@@ -9406,12 +9406,12 @@
/area/awaymission/UO71/centralhall)
"uB" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/wall,
/area/awaymission/UO71/eng)
"uC" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/wall,
/area/awaymission/UO71/eng)
"uD" = (
@@ -9494,7 +9494,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/south,
/turf/simulated/floor/plating,
/area/awaymission/UO71/science)
@@ -9535,7 +9535,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/obj/effect/decal/warning_stripes/southeast,
/turf/simulated/floor/plating,
/area/awaymission/UO71/science)
@@ -9690,14 +9690,14 @@
/turf/simulated/wall,
/area/awaymission/UO71/eng)
"vg" = (
/obj/machinery/meter{
/obj/machinery/atmospherics/meter{
layer = 3.3
},
/obj/machinery/atmospherics/pipe/simple/visible/green,
/turf/simulated/wall,
/area/awaymission/UO71/eng)
"vh" = (
/obj/machinery/meter{
/obj/machinery/atmospherics/meter{
layer = 3.3
},
/obj/machinery/atmospherics/pipe/simple/visible/cyan,
@@ -10222,7 +10222,7 @@
},
/area/awaymission/UO71/eng)
"wl" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "UO71_n2_sensor"
},
@@ -10230,11 +10230,11 @@
/turf/simulated/floor/engine/n2,
/area/awaymission/UO71/eng)
"wm" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/portable/canister/nitrogen,
/turf/simulated/floor/engine/n2,
/area/awaymission/UO71/eng)
"wn" = (
/obj/machinery/air_sensor{
/obj/machinery/atmospherics/air_sensor{
frequency = 1441;
id_tag = "UO71_o2_sensor"
},
@@ -10242,7 +10242,7 @@
/turf/simulated/floor/engine/o2,
/area/awaymission/UO71/eng)
"wo" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/engine/o2,
/area/awaymission/UO71/eng)
"wp" = (
@@ -10498,7 +10498,7 @@
/obj/machinery/atmospherics/unary/portables_connector{
dir = 4
},
/obj/machinery/portable_atmospherics/canister/oxygen{
/obj/machinery/atmospherics/portable/canister/oxygen{
name = "Canister: \[O2] (CRYO)"
},
/turf/simulated/floor/plasteel{
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -1126,7 +1126,7 @@
/area/mine/laborcamp)
"cB" = (
/obj/effect/decal/cleanable/cobweb2,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/mine/laborcamp)
"cC" = (
@@ -1282,7 +1282,7 @@
/turf/simulated/floor/plating,
/area/mine/living_quarters)
"cU" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/structure/cable{
icon_state = "2-8"
},
@@ -1441,7 +1441,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/obj/machinery/atmospherics/pipe/simple/visible/cyan{
dir = 6
},
@@ -3629,7 +3629,7 @@
/obj/machinery/atmospherics/pipe/simple/visible/cyan{
dir = 6
},
/obj/machinery/meter,
/obj/machinery/atmospherics/meter,
/turf/simulated/floor/plasteel,
/area/mine/laborcamp)
"lP" = (
@@ -4777,7 +4777,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "brown"
+3 -3
View File
@@ -1860,7 +1860,7 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate_elite)
"he" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate_elite)
"hf" = (
@@ -3894,7 +3894,7 @@
/turf/simulated/floor/plasteel/freezer,
/area/syndicate_mothership)
"nk" = (
/obj/machinery/portable_atmospherics/canister/oxygen{
/obj/machinery/atmospherics/portable/canister/oxygen{
name = "Canister: \[O2] (CRYO)"
},
/obj/machinery/atmospherics/unary/portables_connector,
@@ -5532,7 +5532,7 @@
/turf/simulated/floor/plating/airless,
/area/syndicate_mothership)
"ts" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
"tt" = (
+1 -1
View File
@@ -301,7 +301,7 @@
/obj/machinery/light/spot{
dir = 1
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/administration)
"vW" = (
+3 -3
View File
@@ -584,7 +584,7 @@
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"ce" = (
/obj/machinery/portable_atmospherics/canister/oxygen{
/obj/machinery/atmospherics/portable/canister/oxygen{
name = "Canister: \[O2] (CRYO)"
},
/obj/machinery/atmospherics/unary/portables_connector{
@@ -599,7 +599,7 @@
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"cg" = (
/obj/machinery/portable_atmospherics/canister/oxygen{
/obj/machinery/atmospherics/portable/canister/oxygen{
name = "Canister: \[O2] (CRYO)"
},
/obj/machinery/light{
@@ -667,7 +667,7 @@
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"co" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"cp" = (
+3 -3
View File
@@ -275,7 +275,7 @@
"bY" = (
/obj/item/tank/internals/emergency_oxygen,
/obj/item/clothing/mask/breath,
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
/area/shuttle/administration)
"ca" = (
@@ -425,7 +425,7 @@
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
/area/shuttle/administration)
"sd" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/portable/canister/nitrogen,
/obj/machinery/light,
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
/area/shuttle/administration)
@@ -555,7 +555,7 @@
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
/area/shuttle/administration)
"XB" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/atmospherics/portable/canister/toxins,
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
/area/shuttle/administration)
"XK" = (
+1 -1
View File
@@ -771,7 +771,7 @@
name = "Station Intercom (General)";
pixel_y = -28
},
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/obj/machinery/light,
/obj/effect/turf_decal/bot,
/turf/simulated/floor/plasteel{
+1 -1
View File
@@ -104,7 +104,7 @@
/area/shuttle/escape)
"aK" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/portable_atmospherics/canister/oxygen{
/obj/machinery/atmospherics/portable/canister/oxygen{
name = "Canister: \[O2] (CRYO)"
},
/obj/item/wrench,
@@ -182,7 +182,7 @@
name = "Shuttle"
})
"F" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -140,7 +140,7 @@
name = "Shuttle"
})
"z" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/plasteel,
/area/ruin/powered{
name = "Shuttle"
+6
View File
@@ -72,3 +72,9 @@
#define PIPETYPE_ATMOS 1
#define PIPETYPE_DISPOSAL 2
// Connection types
#define CONNECT_TYPE_NORMAL 1
#define CONNECT_TYPE_SUPPLY 2
#define CONNECT_TYPE_SCRUBBER 3
+2 -2
View File
@@ -1733,8 +1733,8 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
/obj/machinery/door/airlock = "AIRLOCK",
/obj/machinery/door = "DOOR",
/obj/machinery/kitchen_machine = "KITCHEN",
/obj/machinery/portable_atmospherics/canister = "CANISTER",
/obj/machinery/portable_atmospherics = "PORT_ATMOS",
/obj/machinery/atmospherics/portable/canister = "CANISTER",
/obj/machinery/atmospherics/portable = "PORT_ATMOS",
/obj/machinery/power = "POWER",
/obj/machinery = "MACHINERY",
/obj/mecha = "MECHA",
+1 -1
View File
@@ -196,7 +196,7 @@ SUBSYSTEM_DEF(air)
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
while(currentrun.len)
var/obj/machinery/M = currentrun[currentrun.len]
var/obj/machinery/atmospherics/M = currentrun[currentrun.len]
currentrun.len--
if(!M || (M.process_atmos(seconds) == PROCESS_KILL))
atmos_machinery.Remove(M)
+2 -2
View File
@@ -87,8 +87,8 @@
break
else
if(istype(item_to_retrieve.loc,/obj/machinery/portable_atmospherics/)) //Edge cases for moved machinery
var/obj/machinery/portable_atmospherics/P = item_to_retrieve.loc
if(istype(item_to_retrieve.loc,/obj/machinery/atmospherics/portable/)) //Edge cases for moved machinery
var/obj/machinery/atmospherics/portable/P = item_to_retrieve.loc
P.disconnect()
P.update_icon()
if(is_type_in_typecache(item_to_retrieve.loc, blacklisted_summons))
+1 -1
View File
@@ -719,7 +719,7 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
/datum/supply_packs/engineering/engine/supermatter_shard
name = "Supermatter Shard Crate"
contains = list(/obj/machinery/power/supermatter_crystal/shard)
contains = list(/obj/machinery/atmospherics/supermatter_crystal/shard)
cost = 50 //So cargo thinks twice before killing themselves with it
containertype = /obj/structure/closet/crate/secure/engineering
containername = "supermatter shard crate"
@@ -342,7 +342,7 @@
to_chat(S, "<span class='warning'>Disrupting the power grid would bring no benefit to us. Aborting.</span>")
return FALSE
/obj/machinery/portable_atmospherics/canister/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
/obj/machinery/atmospherics/portable/canister/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
to_chat(S, "<span class='warning'>An inhospitable area may be created as a result of destroying this object. Aborting.</span>")
return FALSE
+112 -224
View File
@@ -1,4 +1,4 @@
/obj/machinery/air_sensor
/obj/machinery/atmospherics/air_sensor
icon = 'icons/obj/stationobjs.dmi'
icon_state = "gsensor1"
resistance_flags = FIRE_PROOF
@@ -14,7 +14,7 @@
Mtoollink = TRUE
settagwhitelist = list("id_tag")
var/on = TRUE
on = TRUE
var/output = 3
//Flags:
// 1 for pressure
@@ -25,10 +25,10 @@
// 16 for nitrogen concentration
// 32 for carbon dioxide concentration
/obj/machinery/air_sensor/update_icon_state()
/obj/machinery/atmospherics/air_sensor/update_icon_state()
icon_state = "gsensor[on]"
/obj/machinery/air_sensor/multitool_menu(mob/user, obj/item/multitool/P)
/obj/machinery/atmospherics/air_sensor/multitool_menu(mob/user, obj/item/multitool/P)
return {"
<b>Main</b>
<ul>
@@ -43,7 +43,7 @@
<li>Monitor Carbon Dioxide Concentration: <a href="?src=[UID()];toggle_out_flag=32">[output&32 ? "Yes" : "No"]</a>
</ul>"}
/obj/machinery/air_sensor/multitool_topic(mob/user, list/href_list, obj/O)
/obj/machinery/atmospherics/air_sensor/multitool_topic(mob/user, list/href_list, obj/O)
. = ..()
if(.)
return .
@@ -57,33 +57,40 @@
else//can't not be off
output |= bitflag_value
return TRUE
if("toggle_bolts" in href_list)
bolts = !bolts
visible_message("<span class='notice'>You hear a quiet click as [src][bolts ? " bolts to the floor" : "'s bolts raise"].</span>", "<span class='notice>You hear a quiet click.</span>")
return TRUE
/obj/machinery/air_sensor/attackby(obj/item/W as obj, mob/user as mob)
/obj/machinery/atmospherics/air_sensor/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/multitool))
update_multitool_menu(user)
return 1
return TRUE
if(istype(W, /obj/item/wrench))
if(bolts)
to_chat(usr, "[src] is bolted to the floor! You can't detach it like this.")
return 1
return TRUE
playsound(loc, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
if(do_after(user, 40 * W.toolspeed, target = src))
user.visible_message("[user] unfastens \the [src].", "<span class='notice'>You have unfastened \the [src].</span>", "You hear ratchet.")
new /obj/item/pipe_gsensor(src.loc)
qdel(src)
return 1
return TRUE
return
return ..()
/obj/machinery/air_sensor/process_atmos()
/obj/machinery/atmospherics/air_sensor/process_atmos()
if(on)
if(!radio_connection)
return
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.data["tag"] = id_tag
@@ -91,21 +98,21 @@
var/datum/gas_mixture/air_sample = return_air()
if(output&1)
if(output & 1)
signal.data["pressure"] = num2text(round(air_sample.return_pressure(),0.1),)
if(output&2)
if(output & 2)
signal.data["temperature"] = round(air_sample.temperature,0.1)
if(output>4)
if(output > 4)
var/total_moles = air_sample.total_moles()
if(total_moles > 0)
if(output&4)
if(output & 4)
signal.data["oxygen"] = round(100*air_sample.oxygen/total_moles,0.1)
if(output&8)
if(output & 8)
signal.data["toxins"] = round(100*air_sample.toxins/total_moles,0.1)
if(output&16)
if(output & 16)
signal.data["nitrogen"] = round(100*air_sample.nitrogen/total_moles,0.1)
if(output&32)
if(output & 32)
signal.data["carbon_dioxide"] = round(100*air_sample.carbon_dioxide/total_moles,0.1)
else
signal.data["oxygen"] = 0
@@ -115,20 +122,19 @@
signal.data["sigtype"]="status"
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
/obj/machinery/air_sensor/set_frequency(new_frequency)
/obj/machinery/atmospherics/air_sensor/set_frequency(new_frequency)
SSradio.remove_object(src, frequency)
frequency = new_frequency
radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/air_sensor/Initialize()
..()
SSair.atmos_machinery += src
/obj/machinery/atmospherics/air_sensor/Initialize(mapload)
. = ..()
set_frequency(frequency)
/obj/machinery/air_sensor/Destroy()
SSair.atmos_machinery -= src
/obj/machinery/atmospherics/air_sensor/Destroy()
if(SSradio)
SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -152,30 +158,34 @@
/obj/machinery/computer/general_air_control/Destroy()
if(SSradio)
SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
/obj/machinery/computer/general_air_control/attack_hand(mob/user)
if(..(user))
return
var/html=return_text()
var/datum/browser/popup = new(user, "gac", name, 400, 400)
popup.set_content(html)
popup.open(0)
popup.set_content(return_text())
popup.open(FALSE)
user.set_machine(src)
onclose(user, "gac")
/obj/machinery/computer/general_air_control/process()
..()
if(!sensors)
//warning("[src.type] at [x],[y],[z] has null sensors. Please fix.")//commenting this line out because the admins will get a warning like this every time somebody builds another GAC
sensors = list()
src.updateUsrDialog()
updateUsrDialog()
/obj/machinery/computer/general_air_control/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/multitool))
update_multitool_menu(user)
return 1
return TRUE
return ..()
@@ -183,14 +193,15 @@
if(!signal || signal.encryption) return
var/id_tag = signal.data["tag"]
if(!id_tag || !sensors || !sensors.Find(id_tag)) return
if(!id_tag || !sensors || !sensors.Find(id_tag))
return
sensor_information[id_tag] = signal.data
/obj/machinery/computer/general_air_control/proc/return_text()
var/sensor_data
if(show_sensors)
if(sensors.len)
if(length(sensors))
for(var/id_tag in sensors)
var/long_name = sensors[id_tag]
var/list/data = sensor_information[id_tag]
@@ -200,18 +211,24 @@
sensor_part += "<table>"
if(data["pressure"])
sensor_part += "<tr><th>Pressure:</th><td>[data["pressure"]] kPa</td></tr>"
if(data["temperature"])
sensor_part += "<tr><th>Temperature:</th><td>[data["temperature"]] K</td></tr>"
if(data["oxygen"]||data["toxins"]||data["nitrogen"]||data["carbon_dioxide"])
sensor_part += "<tr><th>Gas Composition :</th><td><ul>"
if(data["oxygen"])
sensor_part += "<li>[data["oxygen"]]% O<sub>2</sub></li>"
if(data["nitrogen"])
sensor_part += "<li>[data["nitrogen"]]% N</li>"
if(data["carbon_dioxide"])
sensor_part += "<li>[data["carbon_dioxide"]]% CO<sub>2</sub></li>"
if(data["toxins"])
sensor_part += "<li>[data["toxins"]]% Plasma</li>"
sensor_part += "</ul></td></tr>"
sensor_part += "</table>"
@@ -266,8 +283,8 @@
frequency = new_frequency
radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/computer/general_air_control/Initialize()
..()
/obj/machinery/computer/general_air_control/Initialize(mapload)
. = ..()
set_frequency(frequency)
/obj/machinery/computer/general_air_control/multitool_menu(mob/user, obj/item/multitool/P)
@@ -285,15 +302,18 @@
/obj/machinery/computer/general_air_control/multitool_topic(mob/user,list/href_list,obj/O)
. = ..()
if(.) return .
if("add_sensor" in href_list)
if(.)
return
if("add_sensor" in href_list)
// Make a list of all available sensors on the same frequency
var/list/sensor_list = list()
for(var/obj/machinery/air_sensor/G in GLOB.machines)
for(var/obj/machinery/atmospherics/air_sensor/G in GLOB.machines)
if(!isnull(G.id_tag) && G.frequency == frequency)
sensor_list|=G.id_tag
if(!sensor_list.len)
sensor_list |= G.id_tag
if(!length(sensor_list))
to_chat(user, "<span class=\"warning\">No sensors on this frequency.</span>")
return FALSE
@@ -301,6 +321,7 @@
var/sensor = input(user, "Select a sensor:", "Sensor Data") as null|anything in sensor_list
if(!sensor)
return FALSE
var/label = reject_bad_name( input(user, "Choose a sensor label:", "Sensor Label") as text|null, allow_numbers=1)
if(!label)
return FALSE
@@ -311,48 +332,54 @@
if("edit_sensor" in href_list)
var/list/sensor_list = list()
for(var/obj/machinery/air_sensor/G in GLOB.machines)
for(var/obj/machinery/atmospherics/air_sensor/G in GLOB.machines)
if(!isnull(G.id_tag) && G.frequency == frequency)
sensor_list|=G.id_tag
if(!sensor_list.len)
sensor_list |= G.id_tag
if(!length(sensor_list))
to_chat(user, "<span class=\"warning\">No sensors on this frequency.</span>")
return FALSE
var/label = sensors[href_list["edit_sensor"]]
var/sensor = input(user, "Select a sensor:", "Sensor Data", href_list["edit_sensor"]) as null|anything in sensor_list
if(!sensor)
return FALSE
sensors.Remove(href_list["edit_sensor"])
sensors[sensor] = label
return TRUE
/obj/machinery/computer/general_air_control/unlinkFrom(mob/user, obj/O)
..()
if("id_tag" in O.vars && (istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter)))
if("id_tag" in O.vars && (istype(O,/obj/machinery/atmospherics/air_sensor) || istype(O, /obj/machinery/atmospherics/meter)))
sensors.Remove(O:id_tag)
return 1
return 0
return TRUE
return FALSE
/obj/machinery/computer/general_air_control/linkMenu(obj/O)
if(isLinkedWith(O))
return
var/dat=""
var/dat = ""
if(istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter))
if(istype(O, /obj/machinery/atmospherics/air_sensor) || istype(O, /obj/machinery/atmospherics/meter))
dat += " <a href='?src=[UID()];link=1'>\[New Sensor\]</a> "
return dat
/obj/machinery/computer/general_air_control/canLink(obj/O, list/context)
if(istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter))
if(istype(O, /obj/machinery/atmospherics/air_sensor) || istype(O, /obj/machinery/atmospherics/meter))
return O:id_tag
/obj/machinery/computer/general_air_control/isLinkedWith(obj/O)
if(istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter))
if(istype(O, /obj/machinery/atmospherics/air_sensor) || istype(O, /obj/machinery/atmospherics/meter))
return O:id_tag in sensors
/obj/machinery/computer/general_air_control/linkWith(mob/user, obj/O, context)
sensors[O:id_tag] = reject_bad_name(clean_input(user, "Choose a sensor label:", "Sensor Label"), allow_numbers=1)
return 1
return TRUE
/obj/machinery/computer/general_air_control/large_tank_control
circuit = /obj/item/circuitboard/large_tank_control
@@ -379,7 +406,8 @@
/obj/machinery/computer/general_air_control/large_tank_control/attackby(I as obj, user as mob)
if(istype(I, /obj/item/multitool))
update_multitool_menu(user)
return 1
return TRUE
return ..()
@@ -392,8 +420,10 @@
</ul>
<b>Sensors:</b>
<ul>"}
for(var/id_tag in sensors)
dat += {"<li><a href="?src=[UID()];edit_sensor=[id_tag]">[sensors[id_tag]]</a></li>"}
dat += {"<li><a href="?src=[UID()];add_sensor=1">\[+\]</a></li></ul>"}
return dat
@@ -425,35 +455,41 @@
/obj/machinery/computer/general_air_control/large_tank_control/unlinkFrom(mob/user, obj/O)
if("id_tag" in O.vars)
if(O:id_tag == input_tag)
input_tag=null
input_info=null
return 1
input_tag = null
input_info = null
return TRUE
if(O:id_tag == output_tag)
output_tag=null
output_info=null
return 1
return 0
output_tag = null
output_info = null
return TRUE
return FALSE
/obj/machinery/computer/general_air_control/large_tank_control/linkMenu(obj/O)
var/dat=""
if(canLink(O,list("slot"="input")))
var/dat = ""
if(canLink(O, list("slot"="input")))
dat += " <a href='?src=[UID()];link=1;slot=input'>\[Link @ Input\]</a> "
if(canLink(O,list("slot"="output")))
if(canLink(O, list("slot"="output")))
dat += " <a href='?src=[UID()];link=1;slot=output'>\[Link @ Output\]</a> "
return dat
/obj/machinery/computer/general_air_control/large_tank_control/canLink(obj/O, list/context)
return (context["slot"]=="input" && is_type_in_list(O,input_linkable)) || (context["slot"]=="output" && is_type_in_list(O,output_linkable))
return (context["slot"] == "input" && is_type_in_list(O,input_linkable)) || (context["slot"] == "output" && is_type_in_list(O,output_linkable))
/obj/machinery/computer/general_air_control/large_tank_control/isLinkedWith(obj/O)
if(O:id_tag == input_tag)
return 1
return TRUE
if(O:id_tag == output_tag)
return 1
return 0
return TRUE
return FALSE
/obj/machinery/computer/general_air_control/large_tank_control/process()
..()
if(!input_info && input_tag)
request_device_refresh(input_tag)
if(!output_info && output_tag)
@@ -486,6 +522,7 @@
"}
else
output += "<FONT color='red'>ERROR: Can not find input port</FONT> <A href='?src=[UID()];in_refresh_status=1'>Search</A><BR>"
if(output_tag)
if(output_info)
var/power = (output_info["power"])
@@ -518,28 +555,31 @@
if(input_tag == id_tag)
input_info = signal.data
updateUsrDialog()
else if(output_tag == id_tag)
output_info = signal.data
updateUsrDialog()
else
..(signal)
/obj/machinery/computer/general_air_control/large_tank_control/proc/request_device_refresh(device)
send_signal(list("tag"=device, "status"))
send_signal(list("tag" = device, "status"))
/obj/machinery/computer/general_air_control/large_tank_control/proc/send_signal(list/data)
if(!radio_connection)
return
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data=data
signal.data["sigtype"]="command"
signal.data["sigtype"] = "command"
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
/obj/machinery/computer/general_air_control/large_tank_control/Topic(href, href_list)
if(..())
return 1
return TRUE
add_fingerprint(usr)
@@ -549,10 +589,12 @@
pressure_setting = clamp(pressure_setting, 0, 50*ONE_ATMOSPHERE)
if(!radio_connection)
return 0
return FALSE
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.source = src
if(href_list["in_refresh_status"])
input_info = null
signal.data = list ("tag" = input_tag, "status" = 1)
@@ -578,165 +620,11 @@
signal.data["sigtype"] = "command"
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
src.updateUsrDialog()
updateUsrDialog()
/obj/machinery/computer/general_air_control/fuel_injection
icon = 'icons/obj/computer.dmi'
icon_screen = "atmos"
circuit = /obj/item/circuitboard/injector_control
var/device_tag
var/list/device_info
var/automation = 0
var/cutoff_temperature = 2000
var/on_temperature = 1200
/obj/machinery/computer/general_air_control/fuel_injection/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/multitool))
update_multitool_menu(user)
return 1
return ..()
/obj/machinery/computer/general_air_control/fuel_injection/process()
if(automation)
if(!radio_connection)
return 0
var/injecting = FALSE
for(var/id_tag in sensor_information)
var/list/data = sensor_information[id_tag]
if(data["temperature"])
if(data["temperature"] >= cutoff_temperature)
injecting = FALSE
break
if(data["temperature"] <= on_temperature)
injecting = TRUE
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data = list(
"tag" = device_tag,
"power" = injecting,
"sigtype"="command"
)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
..()
/obj/machinery/computer/general_air_control/fuel_injection/return_text()
var/output = ..()
output += "<fieldset><legend>Fuel Injection System (<A href='?src=[UID()];refresh_status=1'>Refresh</A>)</legend>"
if(device_info)
var/power = device_info["power"]
var/volume_rate = device_info["volume_rate"]
output += {"<table>
<tr>
<th>Status:</th>
<td>[power?"Injecting":"On Hold"]</td>
</tr>
<tr>
<th>Rate:</th>
<td>[volume_rate] L/sec</td>
</tr>
<tr>
<th>Automated Fuel Injection:</th>
<td><A href='?src=[UID()];toggle_automation=1'>[automation?"Engaged":"Disengaged"]</A></td>
</tr>"}
if(automation)
// AUTOFIXED BY fix_string_idiocy.py
// C:\Users\Rob\Documents\Projects\vgstation13\code\game\machinery\atmo_control.dm:372: output += "Automated Fuel Injection: <A href='?src=[UID()];toggle_automation=1'>Engaged</A><BR>"
output += {"
<tr>
<td colspan="2">Injector Controls Locked Out</td>
</tr>"}
// END AUTOFIX
else
// AUTOFIXED BY fix_string_idiocy.py
// C:\Users\Rob\Documents\Projects\vgstation13\code\game\machinery\atmo_control.dm:375: output += "Automated Fuel Injection: <A href='?src=[UID()];toggle_automation=1'>Disengaged</A><BR>"
output += {"
<tr>
<th>Injector:</th>
<td><A href='?src=[UID()];toggle_injector=1'>Toggle Power</A> <A href='?src=[UID()];injection=1'>Inject (1 Cycle)</A></td>
</td>"}
// END AUTOFIX
output += "</table>"
else
output += {"<p style="color:red"><b>ERROR:</b> Can not find device. <A href='?src=[UID()];refresh_status=1'>Search</A></p>"}
output += "</fieldset>"
return output
/obj/machinery/computer/general_air_control/fuel_injection/receive_signal(datum/signal/signal)
if(!signal || signal.encryption) return
var/id_tag = signal.data["tag"]
if(device_tag == id_tag)
device_info = signal.data
else
..(signal)
/obj/machinery/computer/general_air_control/fuel_injection/Topic(href, href_list)
if(..())
return
if(href_list["refresh_status"])
device_info = null
if(!radio_connection)
return 0
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data = list(
"tag" = device_tag,
"status",
"sigtype"="command"
)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
if(href_list["toggle_automation"])
automation = !automation
if(href_list["toggle_injector"])
device_info = null
if(!radio_connection)
return 0
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data = list(
"tag" = device_tag,
"power_toggle",
"sigtype"="command"
)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
if(href_list["injection"])
if(!radio_connection)
return 0
var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal
signal.source = src
signal.data = list(
"tag" = device_tag,
"inject",
"sigtype"="command"
)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
// Central atmos control //
/obj/machinery/computer/atmoscontrol
name = "\improper central atmospherics computer"
icon = 'icons/obj/computer.dmi'
@@ -747,7 +635,7 @@
req_access = list(ACCESS_ATMOSPHERICS)
var/datum/ui_module/atmos_control/atmos_control
/obj/machinery/computer/atmoscontrol/Initialize()
/obj/machinery/computer/atmoscontrol/Initialize(mapload)
. = ..()
atmos_control = new(src)
@@ -175,10 +175,6 @@
board_name = "Atmospheric Monitor"
build_path = /obj/machinery/computer/general_air_control
/obj/item/circuitboard/injector_control
board_name = "Injector Control"
build_path = /obj/machinery/computer/general_air_control/fuel_injection
/obj/item/circuitboard/robotics
board_name = "Robotics Control Console"
build_path = /obj/machinery/computer/robotics
+1 -1
View File
@@ -21,7 +21,7 @@
var/force_no_power_icon_state = FALSE
/obj/machinery/computer/Initialize()
..()
. = ..()
power_change()
update_icon()
+4 -4
View File
@@ -10,7 +10,7 @@
/// Last status of the active supermatter for caching purposes
var/last_status
/// Reference to the active shard
var/obj/machinery/power/supermatter_crystal/active
var/obj/machinery/atmospherics/supermatter_crystal/active
/obj/machinery/computer/sm_monitor/Destroy()
active = null
@@ -72,7 +72,7 @@
else
var/list/SMS = list()
for(var/I in supermatters)
var/obj/machinery/power/supermatter_crystal/S = I
var/obj/machinery/atmospherics/supermatter_crystal/S = I
var/area/A = get_area(S)
if(!A)
continue
@@ -98,7 +98,7 @@
var/turf/T = get_turf(ui_host()) // Get the UI host incase this ever turned into a supermatter monitoring module for AIs to use or something
if(!T)
return
for(var/obj/machinery/power/supermatter_crystal/S in SSair.atmos_machinery)
for(var/obj/machinery/atmospherics/supermatter_crystal/S in SSair.atmos_machinery)
// Delaminating, not within coverage, not on a tile.
if(!(is_station_level(S.z) || is_mining_level(S.z) || atoms_share_level(S, T) || !istype(S.loc, /turf/simulated/)))
continue
@@ -137,7 +137,7 @@
if("view")
var/newuid = text2num(params["view"])
for(var/obj/machinery/power/supermatter_crystal/S in supermatters)
for(var/obj/machinery/atmospherics/supermatter_crystal/S in supermatters)
if(S.supermatter_id == newuid)
active = S
break
+10 -8
View File
@@ -132,25 +132,27 @@ th.cost.toomuch {background:maroon;}
/obj/machinery/computer/merch/Topic(href, href_list)
if(..())
return 1
return TRUE
//testing(href)
src.add_fingerprint(usr)
add_fingerprint(usr)
if(href_list["buy"])
var/itemID = text2num(href_list["buy"])
var/datum/storeitem/item = GLOB.centcomm_store.items[itemID]
var/sure = alert(usr,"Are you sure you wish to purchase [item.name] for $[item.cost]?","You sure?","Yes","No") in list("Yes","No")
var/sure = alert(usr, "Are you sure you wish to purchase [item.name] for $[item.cost]?", "You sure?", "Yes", "No") in list("Yes", "No")
if(!Adjacent(usr))
to_chat(usr, "<span class='warning'>You are not close enough to do that.</span>")
return
if(sure=="No")
if(sure == "No")
updateUsrDialog()
return
if(!GLOB.centcomm_store.PlaceOrder(usr,itemID))
if(!GLOB.centcomm_store.PlaceOrder(usr, itemID))
to_chat(usr, "<span class='warning'>Unable to charge your account.</span>")
else
to_chat(usr, "<span class='notice'>You've successfully purchased the item. It should be in your hands or on the floor.</span>")
src.updateUsrDialog()
updateUsrDialog()
return
+3 -5
View File
@@ -124,6 +124,7 @@ Class Procs:
var/datum/radio_frequency/radio_connection
/// This is if the machinery is being repaired
var/being_repaired = FALSE
armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70)
/*
* reimp, attempts to flicker this machinery if the behavior is supported.
@@ -139,13 +140,13 @@ Class Procs:
return FALSE
/obj/machinery/Initialize(mapload)
if(!armor)
armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70)
. = ..()
GLOB.machines += src
if(use_power)
myArea = get_area(src)
if(!speed_process)
START_PROCESSING(SSmachines, src)
else
@@ -188,9 +189,6 @@ Class Procs:
/obj/machinery/process() // If you dont use process or power why are you here
return PROCESS_KILL
/obj/machinery/proc/process_atmos() //If you dont use process why are you here
return PROCESS_KILL
/obj/machinery/emp_act(severity)
if(use_power && !stat)
use_power(7500/severity)
+213 -156
View File
@@ -5,7 +5,7 @@
name = "pipe"
var/pipe_type = 0
var/pipename
var/connect_types[] = list(1) //1=regular, 2=supply, 3=scrubber
var/list/connect_types = list(CONNECT_TYPE_NORMAL) //1=regular, 2=supply, 3=scrubber
force = 7
icon = 'icons/obj/pipe-item.dmi'
icon_state = "simple"
@@ -14,126 +14,159 @@
level = 2
var/flipped = FALSE
/obj/item/pipe/New(loc, pipe_type, dir, obj/machinery/atmospherics/make_from)
..()
/obj/item/pipe/Initialize(mapload, new_pipe_type, new_dir, obj/machinery/atmospherics/make_from)
. = ..()
if(make_from)
src.dir = make_from.dir
src.pipename = make_from.name
dir = make_from.dir
pipename = make_from.name
color = make_from.pipe_color
var/is_bent
if(make_from.initialize_directions in list(NORTH|SOUTH, WEST|EAST))
is_bent = 0
is_bent = FALSE
else
is_bent = 1
is_bent = TRUE
if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction))
src.pipe_type = PIPE_JUNCTION
pipe_type = PIPE_JUNCTION
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/heat_exchanging))
src.pipe_type = PIPE_HE_STRAIGHT + is_bent
pipe_type = PIPE_HE_STRAIGHT + is_bent
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/insulated))
src.pipe_type = PIPE_INSULATED_STRAIGHT + is_bent
pipe_type = PIPE_INSULATED_STRAIGHT + is_bent
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/visible/supply) || istype(make_from, /obj/machinery/atmospherics/pipe/simple/hidden/supply))
src.pipe_type = PIPE_SUPPLY_STRAIGHT + is_bent
connect_types = list(2)
src.color = PIPE_COLOR_BLUE
pipe_type = PIPE_SUPPLY_STRAIGHT + is_bent
connect_types = list(CONNECT_TYPE_SUPPLY)
color = PIPE_COLOR_BLUE
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/visible/scrubbers) || istype(make_from, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers))
src.pipe_type = PIPE_SCRUBBERS_STRAIGHT + is_bent
connect_types = list(3)
src.color = PIPE_COLOR_RED
pipe_type = PIPE_SCRUBBERS_STRAIGHT + is_bent
connect_types = list(CONNECT_TYPE_SCRUBBER)
color = PIPE_COLOR_RED
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/visible/universal) || istype(make_from, /obj/machinery/atmospherics/pipe/simple/hidden/universal))
src.pipe_type = PIPE_UNIVERSAL
connect_types = list(1,2,3)
pipe_type = PIPE_UNIVERSAL
connect_types = list(CONNECT_TYPE_NORMAL, CONNECT_TYPE_SUPPLY, CONNECT_TYPE_SCRUBBER)
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple))
src.pipe_type = PIPE_SIMPLE_STRAIGHT + is_bent
pipe_type = PIPE_SIMPLE_STRAIGHT + is_bent
else if(istype(make_from, /obj/machinery/atmospherics/unary/portables_connector))
src.pipe_type = PIPE_CONNECTOR
pipe_type = PIPE_CONNECTOR
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold/visible/supply) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold/hidden/supply))
src.pipe_type = PIPE_SUPPLY_MANIFOLD
connect_types = list(2)
src.color = PIPE_COLOR_BLUE
pipe_type = PIPE_SUPPLY_MANIFOLD
connect_types = list(CONNECT_TYPE_SUPPLY)
color = PIPE_COLOR_BLUE
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold/visible/scrubbers) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers))
src.pipe_type = PIPE_SCRUBBERS_MANIFOLD
connect_types = list(3)
src.color = PIPE_COLOR_RED
pipe_type = PIPE_SCRUBBERS_MANIFOLD
connect_types = list(CONNECT_TYPE_SCRUBBER)
color = PIPE_COLOR_RED
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold))
src.pipe_type = PIPE_MANIFOLD
pipe_type = PIPE_MANIFOLD
else if(istype(make_from, /obj/machinery/atmospherics/unary/vent_pump))
src.pipe_type = PIPE_UVENT
pipe_type = PIPE_UVENT
else if(istype(make_from, /obj/machinery/atmospherics/binary/valve/digital))
src.pipe_type = PIPE_DVALVE
pipe_type = PIPE_DVALVE
else if(istype(make_from, /obj/machinery/atmospherics/binary/valve))
src.pipe_type = PIPE_MVALVE
pipe_type = PIPE_MVALVE
else if(istype(make_from, /obj/machinery/atmospherics/binary/pump))
src.pipe_type = PIPE_PUMP
pipe_type = PIPE_PUMP
else if(istype(make_from, /obj/machinery/atmospherics/trinary/filter))
src.pipe_type = PIPE_GAS_FILTER
pipe_type = PIPE_GAS_FILTER
else if(istype(make_from, /obj/machinery/atmospherics/trinary/mixer))
src.pipe_type = PIPE_GAS_MIXER
pipe_type = PIPE_GAS_MIXER
else if(istype(make_from, /obj/machinery/atmospherics/unary/vent_scrubber))
src.pipe_type = PIPE_SCRUBBER
pipe_type = PIPE_SCRUBBER
else if(istype(make_from, /obj/machinery/atmospherics/binary/passive_gate))
src.pipe_type = PIPE_PASSIVE_GATE
pipe_type = PIPE_PASSIVE_GATE
else if(istype(make_from, /obj/machinery/atmospherics/binary/volume_pump))
src.pipe_type = PIPE_VOLUME_PUMP
pipe_type = PIPE_VOLUME_PUMP
else if(istype(make_from, /obj/machinery/atmospherics/unary/heat_exchanger))
src.pipe_type = PIPE_HEAT_EXCHANGE
pipe_type = PIPE_HEAT_EXCHANGE
else if(istype(make_from, /obj/machinery/atmospherics/trinary/tvalve/digital))
src.pipe_type = PIPE_DTVALVE
pipe_type = PIPE_DTVALVE
else if(istype(make_from, /obj/machinery/atmospherics/trinary/tvalve))
src.pipe_type = PIPE_TVALVE
pipe_type = PIPE_TVALVE
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/visible/supply) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply))
src.pipe_type = PIPE_SUPPLY_MANIFOLD4W
connect_types = list(2)
src.color = PIPE_COLOR_BLUE
pipe_type = PIPE_SUPPLY_MANIFOLD4W
connect_types = list(CONNECT_TYPE_SUPPLY)
color = PIPE_COLOR_BLUE
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers))
src.pipe_type = PIPE_SCRUBBERS_MANIFOLD4W
connect_types = list(3)
src.color = PIPE_COLOR_RED
pipe_type = PIPE_SCRUBBERS_MANIFOLD4W
connect_types = list(CONNECT_TYPE_SCRUBBER)
color = PIPE_COLOR_RED
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w))
src.pipe_type = PIPE_MANIFOLD4W
pipe_type = PIPE_MANIFOLD4W
else if(istype(make_from, /obj/machinery/atmospherics/pipe/cap/visible/supply) || istype(make_from, /obj/machinery/atmospherics/pipe/cap/hidden/supply))
src.pipe_type = PIPE_SUPPLY_CAP
connect_types = list(2)
src.color = PIPE_COLOR_BLUE
pipe_type = PIPE_SUPPLY_CAP
connect_types = list(CONNECT_TYPE_SUPPLY)
color = PIPE_COLOR_BLUE
else if(istype(make_from, /obj/machinery/atmospherics/pipe/cap/visible/scrubbers) || istype(make_from, /obj/machinery/atmospherics/pipe/cap/hidden/scrubbers))
src.pipe_type = PIPE_SCRUBBERS_CAP
connect_types = list(3)
src.color = PIPE_COLOR_RED
pipe_type = PIPE_SCRUBBERS_CAP
connect_types = list(CONNECT_TYPE_SCRUBBER)
color = PIPE_COLOR_RED
else if(istype(make_from, /obj/machinery/atmospherics/pipe/cap))
src.pipe_type = PIPE_CAP
pipe_type = PIPE_CAP
else if(istype(make_from, /obj/machinery/atmospherics/unary/outlet_injector))
src.pipe_type = PIPE_INJECTOR
pipe_type = PIPE_INJECTOR
else if(istype(make_from, /obj/machinery/atmospherics/binary/dp_vent_pump))
src.pipe_type = PIPE_DP_VENT
pipe_type = PIPE_DP_VENT
else if(istype(make_from, /obj/machinery/atmospherics/unary/passive_vent))
src.pipe_type = PIPE_PASV_VENT
pipe_type = PIPE_PASV_VENT
else if(istype(make_from, /obj/machinery/atmospherics/binary/circulator))
src.pipe_type = PIPE_CIRCULATOR
pipe_type = PIPE_CIRCULATOR
var/obj/machinery/atmospherics/trinary/triP = make_from
if(istype(triP) && triP.flipped)
src.flipped = TRUE
flipped = TRUE
var/obj/machinery/atmospherics/binary/circulator/circP = make_from
if(istype(circP) && circP.side == CIRC_RIGHT)
src.flipped = TRUE
flipped = TRUE
else
src.pipe_type = pipe_type
src.dir = dir
pipe_type = new_pipe_type
dir = new_dir
if(pipe_type == PIPE_SUPPLY_STRAIGHT || pipe_type == PIPE_SUPPLY_BENT || pipe_type == PIPE_SUPPLY_MANIFOLD || pipe_type == PIPE_SUPPLY_MANIFOLD4W || pipe_type == PIPE_SUPPLY_CAP)
connect_types = list(2)
src.color = PIPE_COLOR_BLUE
connect_types = list(CONNECT_TYPE_SUPPLY)
color = PIPE_COLOR_BLUE
else if(pipe_type == PIPE_SCRUBBERS_STRAIGHT || pipe_type == PIPE_SCRUBBERS_BENT || pipe_type == PIPE_SCRUBBERS_MANIFOLD || pipe_type == PIPE_SCRUBBERS_MANIFOLD4W || pipe_type == PIPE_SCRUBBERS_CAP)
connect_types = list(3)
src.color = PIPE_COLOR_RED
connect_types = list(CONNECT_TYPE_SCRUBBER)
color = PIPE_COLOR_RED
else if(pipe_type == PIPE_UNIVERSAL)
connect_types = list(1,2,3)
connect_types = list(CONNECT_TYPE_NORMAL, CONNECT_TYPE_SUPPLY, CONNECT_TYPE_SCRUBBER)
update(make_from)
src.pixel_x = rand(-5, 5)
src.pixel_y = rand(-5, 5)
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
//update the name and icon of the pipe item depending on the type
@@ -141,12 +174,16 @@
. = TRUE
if(our_rpd.mode == RPD_ROTATE_MODE)
rotate()
else if(our_rpd.mode == RPD_FLIP_MODE)
flip()
else if(our_rpd.mode == RPD_DELETE_MODE)
if(pipe_type == PIPE_CIRCULATOR) //Skip TEG heat circulators, they aren't really pipes
return ..()
our_rpd.delete_single_pipe(user, src)
else
return ..()
@@ -157,12 +194,15 @@
/obj/item/pipe/proc/update(obj/machinery/atmospherics/make_from)
name = "[get_pipe_name(pipe_type, PIPETYPE_ATMOS)] fitting"
icon_state = get_pipe_icon(pipe_type)
var/obj/machinery/atmospherics/trinary/triP = make_from
if(istype(triP) && triP.flipped)
icon_state = "m_[icon_state]"
var/obj/machinery/atmospherics/binary/circulator/circP = make_from
if(istype(circP) && circP.side == CIRC_RIGHT)
icon_state = "m_[icon_state]"
if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/heat_exchanging))
resistance_flags |= FIRE_PROOF | LAVA_PROOF
@@ -182,14 +222,14 @@
set name = "Rotate Pipe"
set src in view(1)
if( usr.stat || usr.restrained() )
if(usr.stat || usr.restrained())
return
if(pipe_type == PIPE_CIRCULATOR)
flip()
return
src.dir = turn(src.dir, -90)
dir = turn(dir, -90)
fixdir()
@@ -211,29 +251,31 @@
flipped = !flipped
return
src.dir = turn(src.dir, -180)
dir = turn(dir, -180)
fixdir()
return
/obj/item/pipe/Move()
..()
if(is_bent_pipe() \
&& (src.dir in GLOB.cardinal))
src.dir = src.dir|turn(src.dir, 90)
. = ..()
if(is_bent_pipe() && (dir in GLOB.cardinal))
dir = dir | turn(dir, 90)
else if(pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE, PIPE_DVALVE))
if(dir==2)
if(dir == 2)
dir = 1
else if(dir==8)
else if(dir == 8)
dir = 4
return
// returns all pipe's endpoints
/obj/item/pipe/proc/get_pipe_dir()
. = 0
if(!dir)
return 0
return
var/direct = dir
if(flipped)
@@ -244,71 +286,64 @@
var/acw = turn(direct, 90)
switch(pipe_type)
if( PIPE_SIMPLE_STRAIGHT, \
PIPE_INSULATED_STRAIGHT, \
PIPE_HE_STRAIGHT, \
PIPE_JUNCTION ,\
PIPE_PUMP ,\
PIPE_VOLUME_PUMP ,\
PIPE_PASSIVE_GATE ,\
PIPE_MVALVE, \
PIPE_DVALVE, \
PIPE_DP_VENT, \
PIPE_SUPPLY_STRAIGHT, \
PIPE_SCRUBBERS_STRAIGHT, \
PIPE_UNIVERSAL, \
)
if(PIPE_SIMPLE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_JUNCTION,\
PIPE_PUMP, PIPE_VOLUME_PUMP, PIPE_PASSIVE_GATE, PIPE_MVALVE, PIPE_DVALVE, PIPE_DP_VENT,
PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL)
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_HEAT_EXCHANGE, PIPE_INJECTOR)
return dir|flip
if(PIPE_UVENT, PIPE_PASV_VENT, PIPE_SCRUBBER)
return dir
if(PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W)
return dir|flip|cw|acw
if(PIPE_MANIFOLD, PIPE_SUPPLY_MANIFOLD, PIPE_SCRUBBERS_MANIFOLD)
return flip|cw|acw
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER, PIPE_TVALVE, PIPE_DTVALVE)
if(!flipped)
return dir|flip|cw
else
return flip|cw|acw
return flip|cw|acw
if(PIPE_CAP, PIPE_SUPPLY_CAP, PIPE_SCRUBBERS_CAP)
return dir|flip
return 0
/obj/item/pipe/proc/get_pdir() //endpoints for regular pipes
var/flip = turn(dir, 180)
// var/cw = turn(dir, -90)
// var/acw = turn(dir, 90)
if(!(pipe_type in list(PIPE_HE_STRAIGHT, PIPE_HE_BENT, PIPE_JUNCTION)))
return get_pipe_dir()
switch(pipe_type)
if(PIPE_HE_STRAIGHT,PIPE_HE_BENT)
return 0
if(PIPE_JUNCTION)
return flip
return 0
// return the h_dir (heat-exchange pipes) from the type and the dir
/obj/item/pipe/proc/get_hdir() //endpoints for h/e pipes
// var/flip = turn(dir, 180)
// var/cw = turn(dir, -90)
switch(pipe_type)
if(PIPE_HE_STRAIGHT)
return get_pipe_dir()
if(PIPE_HE_BENT)
return get_pipe_dir()
if(PIPE_JUNCTION)
return dir
else
return 0
return 0
/obj/item/pipe/proc/unflip(direction)
if(!(direction in GLOB.cardinal))
@@ -319,10 +354,12 @@
//Helper to clean up dir
/obj/item/pipe/proc/fixdir()
if(pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE, PIPE_DVALVE))
if(dir==2)
if(dir == 2)
dir = 1
else if(dir==8)
else if(dir == 8)
dir = 4
else if(pipe_type in list(PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W))
dir = 2
@@ -331,184 +368,197 @@
/obj/item/pipe/wrench_act(mob/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
return
if(!isturf(src.loc))
return 1
if(!isturf(loc))
return
fixdir()
var/pipe_dir = get_pipe_dir()
var/turf/T = get_turf(loc)
for(var/obj/machinery/atmospherics/M in src.loc)
if((M.initialize_directions & pipe_dir) && M.check_connect_types_construction(M,src)) // matches at least one direction on either type of pipe
for(var/obj/machinery/atmospherics/M in loc)
if((M.initialize_directions & pipe_dir) && M.check_connect_types_construction(M, src)) // matches at least one direction on either type of pipe
to_chat(user, "<span class='warning'>There is already a pipe of the same type at this location.</span>")
return 1
return
if(pipe_type in list(PIPE_SUPPLY_STRAIGHT, PIPE_SUPPLY_BENT, PIPE_SCRUBBERS_STRAIGHT, PIPE_SCRUBBERS_BENT, PIPE_HE_STRAIGHT, PIPE_HE_BENT, PIPE_SUPPLY_MANIFOLD, PIPE_SCRUBBERS_MANIFOLD, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W, PIPE_UVENT, PIPE_SUPPLY_CAP, PIPE_SCRUBBERS_CAP, PIPE_PASV_VENT, PIPE_DP_VENT, PIPE_PASSIVE_GATE))
if(T.transparent_floor) //stops jank with transparent floors and pipes
to_chat(user, "<span class='warning'>You can only fix simple pipes and devices over glass floors!</span>")
return 1
return
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 )
var/obj/machinery/atmospherics/pipe/simple/P = new(loc)
P.on_construction(dir, pipe_dir, color)
if(PIPE_SUPPLY_STRAIGHT, PIPE_SUPPLY_BENT)
var/obj/machinery/atmospherics/pipe/simple/hidden/supply/P = new( src.loc )
var/obj/machinery/atmospherics/pipe/simple/hidden/supply/P = new(loc)
P.on_construction(dir, pipe_dir, color)
if(PIPE_SCRUBBERS_STRAIGHT, PIPE_SCRUBBERS_BENT)
var/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers/P = new( src.loc )
var/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers/P = new(loc)
P.on_construction(dir, pipe_dir, color)
if(PIPE_UNIVERSAL)
var/obj/machinery/atmospherics/pipe/simple/hidden/universal/P = new( src.loc )
var/obj/machinery/atmospherics/pipe/simple/hidden/universal/P = new(loc)
P.on_construction(dir, pipe_dir, color)
if(PIPE_HE_STRAIGHT, PIPE_HE_BENT)
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/P = new ( src.loc )
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/P = new (loc)
P.initialize_directions_he = pipe_dir
P.on_construction(dir, pipe_dir, color)
if(PIPE_CONNECTOR) // connector
var/obj/machinery/atmospherics/unary/portables_connector/C = new( src.loc )
var/obj/machinery/atmospherics/unary/portables_connector/C = new(loc)
if(pipename)
C.name = pipename
C.on_construction(dir, pipe_dir, color)
if(PIPE_MANIFOLD) //manifold
var/obj/machinery/atmospherics/pipe/manifold/M = new( src.loc )
var/obj/machinery/atmospherics/pipe/manifold/M = new(loc)
M.on_construction(dir, pipe_dir, color)
if(PIPE_SUPPLY_MANIFOLD) //manifold
var/obj/machinery/atmospherics/pipe/manifold/hidden/supply/M = new( src.loc )
var/obj/machinery/atmospherics/pipe/manifold/hidden/supply/M = new(loc)
M.on_construction(dir, pipe_dir, color)
if(PIPE_SCRUBBERS_MANIFOLD) //manifold
var/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers/M = new( src.loc )
var/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers/M = new(loc)
M.on_construction(dir, pipe_dir, color)
if(PIPE_MANIFOLD4W) //4-way manifold
var/obj/machinery/atmospherics/pipe/manifold4w/M = new( src.loc )
var/obj/machinery/atmospherics/pipe/manifold4w/M = new(loc)
M.on_construction(dir, pipe_dir, color)
if(PIPE_SUPPLY_MANIFOLD4W) //4-way manifold
var/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply/M = new( src.loc )
var/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply/M = new(loc)
M.on_construction(dir, pipe_dir, color)
if(PIPE_SCRUBBERS_MANIFOLD4W) //4-way manifold
var/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers/M = new( src.loc )
var/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers/M = new(loc)
M.on_construction(dir, pipe_dir, color)
if(PIPE_JUNCTION)
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/P = new ( src.loc )
P.initialize_directions_he = src.get_hdir()
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/P = new (loc)
P.initialize_directions_he = get_hdir()
P.on_construction(dir, get_pdir(), color)
if(PIPE_UVENT) //unary vent
var/obj/machinery/atmospherics/unary/vent_pump/V = new( src.loc )
var/obj/machinery/atmospherics/unary/vent_pump/V = new(loc)
V.on_construction(dir, pipe_dir, color)
if(PIPE_MVALVE) //manual valve
var/obj/machinery/atmospherics/binary/valve/V = new( src.loc)
var/obj/machinery/atmospherics/binary/valve/V = new(loc)
if(pipename)
V.name = pipename
V.on_construction(dir, get_pdir(), color)
if(PIPE_DVALVE)
var/obj/machinery/atmospherics/binary/valve/digital/V = new( src.loc )
var/obj/machinery/atmospherics/binary/valve/digital/V = new(loc)
if(pipename)
V.name = pipename
V.on_construction(dir, get_pdir(), color)
if(PIPE_PUMP) //gas pump
var/obj/machinery/atmospherics/binary/pump/P = new(src.loc)
var/obj/machinery/atmospherics/binary/pump/P = new(loc)
P.on_construction(dir, pipe_dir, color)
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER, PIPE_TVALVE, PIPE_DTVALVE)
var/obj/machinery/atmospherics/trinary/P
switch(pipe_type)
if(PIPE_GAS_FILTER)
P = new /obj/machinery/atmospherics/trinary/filter(src.loc)
P = new /obj/machinery/atmospherics/trinary/filter(loc)
if(PIPE_GAS_MIXER)
P = new /obj/machinery/atmospherics/trinary/mixer(src.loc)
P = new /obj/machinery/atmospherics/trinary/mixer(loc)
if(PIPE_TVALVE)
P = new /obj/machinery/atmospherics/trinary/tvalve(src.loc)
P = new /obj/machinery/atmospherics/trinary/tvalve(loc)
if(PIPE_DTVALVE)
P = new /obj/machinery/atmospherics/trinary/tvalve/digital(src.loc)
P = new /obj/machinery/atmospherics/trinary/tvalve/digital(loc)
P.flipped = flipped
if(pipename)
P.name = pipename
P.on_construction(unflip(dir), pipe_dir, color)
if(PIPE_CIRCULATOR) //circulator
var/obj/machinery/atmospherics/binary/circulator/C = new(src.loc)
var/obj/machinery/atmospherics/binary/circulator/C = new(loc)
if(flipped)
C.side = CIRC_RIGHT
if(pipename)
C.name = pipename
C.on_construction(C.dir, C.initialize_directions, color)
if(PIPE_SCRUBBER) //scrubber
var/obj/machinery/atmospherics/unary/vent_scrubber/S = new(src.loc)
var/obj/machinery/atmospherics/unary/vent_scrubber/S = new(loc)
if(pipename)
S.name = pipename
S.on_construction(dir, pipe_dir, color)
if(PIPE_INSULATED_STRAIGHT, PIPE_INSULATED_BENT)
var/obj/machinery/atmospherics/pipe/simple/insulated/P = new( src.loc )
var/obj/machinery/atmospherics/pipe/simple/insulated/P = new(loc)
P.on_construction(dir, pipe_dir, color)
if(PIPE_CAP)
var/obj/machinery/atmospherics/pipe/cap/C = new(src.loc)
var/obj/machinery/atmospherics/pipe/cap/C = new(loc)
C.on_construction(dir, pipe_dir, color)
if(PIPE_SUPPLY_CAP)
var/obj/machinery/atmospherics/pipe/cap/hidden/supply/C = new(src.loc)
var/obj/machinery/atmospherics/pipe/cap/hidden/supply/C = new(loc)
C.on_construction(dir, pipe_dir, color)
if(PIPE_SCRUBBERS_CAP)
var/obj/machinery/atmospherics/pipe/cap/hidden/scrubbers/C = new(src.loc)
var/obj/machinery/atmospherics/pipe/cap/hidden/scrubbers/C = new(loc)
C.on_construction(dir, pipe_dir, color)
if(PIPE_PASSIVE_GATE) //passive gate
var/obj/machinery/atmospherics/binary/passive_gate/P = new(src.loc)
var/obj/machinery/atmospherics/binary/passive_gate/P = new(loc)
if(pipename)
P.name = pipename
P.on_construction(dir, pipe_dir, color)
if(PIPE_VOLUME_PUMP) //volume pump
var/obj/machinery/atmospherics/binary/volume_pump/P = new(src.loc)
var/obj/machinery/atmospherics/binary/volume_pump/P = new(loc)
if(pipename)
P.name = pipename
P.on_construction(dir, pipe_dir, color)
if(PIPE_HEAT_EXCHANGE) // heat exchanger
var/obj/machinery/atmospherics/unary/heat_exchanger/C = new( src.loc )
var/obj/machinery/atmospherics/unary/heat_exchanger/C = new(loc)
if(pipename)
C.name = pipename
C.on_construction(dir, pipe_dir, color)
if(PIPE_INJECTOR) // air injector
var/obj/machinery/atmospherics/unary/outlet_injector/P = new( src.loc )
var/obj/machinery/atmospherics/unary/outlet_injector/P = new(loc)
if(pipename)
P.name = pipename
P.on_construction(dir, pipe_dir, color)
if(PIPE_DP_VENT)
var/obj/machinery/atmospherics/binary/dp_vent_pump/P = new(src.loc)
var/obj/machinery/atmospherics/binary/dp_vent_pump/P = new(loc)
if(pipename)
P.name = pipename
P.on_construction(dir, pipe_dir, color)
if(PIPE_PASV_VENT)
var/obj/machinery/atmospherics/unary/passive_vent/P = new(src.loc)
var/obj/machinery/atmospherics/unary/passive_vent/P = new(loc)
if(pipename)
P.name = pipename
P.on_construction(dir, pipe_dir, color)
user.visible_message( \
@@ -528,19 +578,22 @@
/obj/item/pipe_meter/attackby(obj/item/W as obj, mob/user as mob, params)
if(!istype(W, /obj/item/wrench))
return ..()
if(!locate(/obj/machinery/atmospherics/pipe, src.loc))
if(!locate(/obj/machinery/atmospherics/pipe, loc))
to_chat(user, "<span class='warning'>You need to fasten it to a pipe</span>")
return 1
new /obj/machinery/meter(loc)
playsound(src.loc, W.usesound, 50, 1)
return TRUE
new /obj/machinery/atmospherics/meter(loc)
playsound(loc, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You have fastened the meter to the pipe.</span>")
qdel(src)
/obj/item/pipe_meter/rpd_act(mob/user, obj/item/rpd/our_rpd)
if(our_rpd.mode == RPD_DELETE_MODE)
our_rpd.delete_single_pipe(user, src)
else
..()
return
..()
/obj/item/pipe_gsensor
name = "gas sensor"
@@ -553,7 +606,8 @@
/obj/item/pipe_gsensor/attackby(obj/item/W as obj, mob/user as mob)
if(!istype(W, /obj/item/wrench))
return ..()
new/obj/machinery/air_sensor( src.loc )
new /obj/machinery/atmospherics/air_sensor(loc)
playsound(get_turf(src), W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You have fastened the gas sensor.</span>")
qdel(src)
@@ -561,15 +615,18 @@
/obj/item/pipe_gsensor/rpd_act(mob/user, obj/item/rpd/our_rpd)
if(our_rpd.mode == RPD_DELETE_MODE)
our_rpd.delete_single_pipe(user, src)
else
..()
return
..()
/obj/item/pipe/AltClick(mob/user)
if(user.incapacitated() || !user.Adjacent(src))
return
rotate()
/obj/item/pipe/AltShiftClick(mob/user)
if(user.incapacitated() || !user.Adjacent(src))
return
flip()
+12 -4
View File
@@ -86,17 +86,22 @@
if(world.time < wait + 4)
return
wait = world.time
if(href_list["make"])
var/p_type = text2num(href_list["make"])
var/p_dir = text2num(href_list["dir"])
var/obj/item/pipe/P = new (loc, pipe_type=p_type, dir=p_dir)
var/obj/item/pipe/P = new(loc, p_type, p_dir)
P.update()
P.add_fingerprint(usr)
if(href_list["makemeter"])
new /obj/item/pipe_meter(loc)
if(href_list["makegsensor"])
new /obj/item/pipe_gsensor(loc)
return TRUE
/obj/machinery/pipedispenser/wrench_act(mob/user, obj/item/I)
@@ -113,6 +118,7 @@
stat &= ~MAINT
unwrenched = FALSE
power_change()
else
playsound(loc, I.usesound, 50, 1)
to_chat(user, "<span class='notice'>You begin to unfasten \the [src] from the floor...</span>")
@@ -129,11 +135,13 @@
/obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params)
add_fingerprint(usr)
if(istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor))
to_chat(usr, "<span class='notice'>You put [W] back to [src].</span>")
user.drop_item()
qdel(W)
return
return ..()
@@ -143,11 +151,11 @@
icon_state = "pipe_d"
//Allow you to drag-drop disposal pipes into it
/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/disposalconstruct/pipe, mob/usr)
if(usr.incapacitated())
/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/disposalconstruct/pipe, mob/user)
if(user.incapacitated())
return
if(!istype(pipe) || get_dist(usr, src) > 1 || get_dist(src, pipe) > 1 )
if(!istype(pipe) || get_dist(user, src) > 1 || get_dist(src, pipe) > 1 )
return
if(pipe.anchored)
@@ -36,7 +36,7 @@
return
if(isobj(target))
var/obj/O = target
if(istype(target, /obj/machinery/power/supermatter_crystal)) //No, you can't pick up the SM with this you moron, did you think you were clever?
if(istype(target, /obj/machinery/atmospherics/supermatter_crystal)) //No, you can't pick up the SM with this you moron, did you think you were clever?
var/obj/mecha/working/ripley/R = chassis
QDEL_LIST(R.cargo) //We don't want to drop cargo that just spam hits the SM, let's delete it
occupant_message("<span class='userdanger'>You realise in horror what you have done as [chassis] starts warping around you!</span>")
+2 -2
View File
@@ -43,7 +43,7 @@
//inner atmos
var/use_internal_tank = 0
var/internal_tank_valve = ONE_ATMOSPHERE
var/obj/machinery/portable_atmospherics/canister/internal_tank
var/obj/machinery/atmospherics/portable/canister/internal_tank
var/datum/gas_mixture/cabin_air
var/obj/machinery/atmospherics/unary/portables_connector/connected_port = null
@@ -133,7 +133,7 @@
return cell
/obj/mecha/proc/add_airtank()
internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src)
internal_tank = new /obj/machinery/atmospherics/portable/canister/air(src)
return internal_tank
/obj/mecha/proc/add_cell(obj/item/stock_parts/cell/C=null)
@@ -63,7 +63,7 @@ GLOBAL_LIST_INIT(metal_recipes, list(
new /datum/stack_recipe("rack parts", /obj/item/rack_parts),
new /datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = 1, on_floor = 1),
null,
new /datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("canister", /obj/machinery/atmospherics/portable/canister, 10, time = 15, one_per_turf = 1, on_floor = 1),
null,
new /datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20),
new /datum/stack_recipe/rods("metal rod", /obj/item/stack/rods, 1, 2, 50),
+1 -1
View File
@@ -356,7 +356,7 @@
return
else if(istype(AM, /obj/item/nuke_core_container))
return
else if(istype(AM, /obj/machinery/power/supermatter_crystal))
else if(istype(AM, /obj/machinery/atmospherics/supermatter_crystal))
return
else
investigate_log("has consumed [AM].", "supermatter")
@@ -59,6 +59,7 @@
var/atmos_overlay_type = null //current active overlay
// Dont make this Initialize(), youll break all of atmos
// Challenge accepted in a few years -aa07
/turf/simulated/New()
..()
if(!blocks_air)
@@ -257,8 +257,8 @@
apply_preset(1) // Don't cycle.
GLOB.air_alarm_repository.update_cache(src)
/obj/machinery/alarm/Initialize()
..()
/obj/machinery/alarm/Initialize(mapload)
. = ..()
set_frequency(frequency)
if(!master_is_operating())
elect_master()
@@ -18,13 +18,14 @@ Pipelines + Other Objects -> Pipe network
active_power_usage = 0
power_channel = ENVIRON
on_blueprints = TRUE
armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 100, ACID = 70)
var/nodealert = FALSE
var/can_unwrench = FALSE
/// If the machine is currently operating or not.
var/on = FALSE
/// The amount of pressure the machine wants to operate at.
var/target_pressure = 0
var/connect_types[] = list(1) //1=regular, 2=supply, 3=scrubber
var/list/connect_types = list(CONNECT_TYPE_NORMAL)
var/connected_to = 1 //same as above, currently not used for anything
var/icon_connect_type = "" //"-supply" or "-scrubbers"
@@ -33,21 +34,22 @@ Pipelines + Other Objects -> Pipe network
var/pipe_color
var/image/pipe_image
/obj/machinery/atmospherics/New()
if (!armor)
armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 100, ACID = 70)
..()
/obj/machinery/atmospherics/Initialize(mapload)
. = ..()
SSair.atmos_machinery += src
if(!pipe_color)
pipe_color = color
color = null
if(!pipe_color_check(pipe_color))
pipe_color = null
/obj/machinery/atmospherics/Initialize()
. = ..()
SSair.atmos_machinery += src
/obj/machinery/atmospherics/proc/process_atmos() //If you dont use process why are you here
return PROCESS_KILL
/obj/machinery/atmospherics/proc/atmos_init()
// Updates all pipe overlays and underlays
@@ -122,24 +124,20 @@ Pipelines + Other Objects -> Pipe network
// Connect types
/obj/machinery/atmospherics/proc/check_connect_types(obj/machinery/atmospherics/atmos1, obj/machinery/atmospherics/atmos2)
var/i
var/list1[] = atmos1.connect_types
var/list2[] = atmos2.connect_types
for(i=1,i<=list1.len,i++)
var/j
for(j=1,j<=list2.len,j++)
var/list/list1 = atmos1.connect_types
var/list/list2 = atmos2.connect_types
for(var/i in 1 to length(list1))
for(var/j in 1 to length(list2))
if(list1[i] == list2[j])
var/n = list1[i]
return n
return 0
/obj/machinery/atmospherics/proc/check_connect_types_construction(obj/machinery/atmospherics/atmos1, obj/item/pipe/pipe2)
var/i
var/list1[] = atmos1.connect_types
var/list2[] = pipe2.connect_types
for(i=1,i<=list1.len,i++)
var/j
for(j=1,j<=list2.len,j++)
var/list/list1 = atmos1.connect_types
var/list/list2 = pipe2.connect_types
for(var/i in 1 to length(list1))
for(var/j in 1 to length(list2))
if(list1[i] == list2[j])
var/n = list1[i]
return n
@@ -247,7 +245,7 @@ Pipelines + Other Objects -> Pipe network
/obj/machinery/atmospherics/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
if(can_unwrench)
var/obj/item/pipe/stored = new(loc, make_from = src)
var/obj/item/pipe/stored = new(loc, null, null, src)
if(!disassembled)
stored.obj_integrity = stored.max_integrity * 0.5
transfer_fingerprints_to(stored)
@@ -27,15 +27,16 @@
/obj/item/pipe/circulator
name = "circulator/heat exchanger fitting"
/obj/item/pipe/circulator/New(loc)
var/obj/machinery/atmospherics/binary/circulator/C = new /obj/machinery/atmospherics/binary/circulator(null)
..(loc, make_from = C)
/obj/item/pipe/circulator/Initialize(mapload, pipe_type, dir, obj/machinery/atmospherics/make_from)
. = ..(make_from = new /obj/machinery/atmospherics/binary/circulator(null))
/obj/machinery/atmospherics/binary/circulator/Destroy()
if(generator && generator.cold_circ == src)
generator.cold_circ = null
else if(generator && generator.hot_circ == src)
generator.hot_circ = null
return ..()
/obj/machinery/atmospherics/binary/circulator/proc/return_transfer_air()
@@ -14,7 +14,7 @@
level = 1
connect_types = list(1,2,3) //connects to regular, supply and scrubbers pipes
connect_types = list(CONNECT_TYPE_NORMAL, CONNECT_TYPE_SUPPLY, CONNECT_TYPE_SCRUBBER) //connects to regular, supply and scrubbers pipes
var/releasing = TRUE //FALSE = siphoning, TRUE = releasing
@@ -8,7 +8,7 @@
can_unwrench = TRUE
layer = GAS_FILTER_LAYER
var/obj/machinery/portable_atmospherics/connected_device
var/obj/machinery/atmospherics/portable/connected_device
/obj/machinery/atmospherics/unary/portables_connector/Destroy()
if(connected_device)
@@ -44,7 +44,7 @@
var/radio_filter_out
var/radio_filter_in
connect_types = list(1,2) //connects to regular and supply pipes
connect_types = list(CONNECT_TYPE_NORMAL, CONNECT_TYPE_SUPPLY) //connects to regular and supply pipes
/obj/machinery/atmospherics/unary/vent_pump/detailed_examine()
return "This pumps the contents of the attached pipe out into the atmosphere, if needed. It can be controlled from an Air Alarm."
@@ -36,7 +36,7 @@
var/radio_filter_out
var/radio_filter_in
connect_types = list(1,3) //connects to regular and scrubber pipes
connect_types = list(CONNECT_TYPE_NORMAL, CONNECT_TYPE_SCRUBBER) //connects to regular and scrubber pipes
/obj/machinery/atmospherics/unary/vent_scrubber/on
on = TRUE
@@ -73,7 +73,7 @@
<font color="red">[status]</font><br>
<a href="?src=[UID()];scan=1">Scan</a>
<table border="1" width="90%">"}
for(var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber in connectedscrubbers)
for(var/obj/machinery/atmospherics/portable/scrubber/huge/scrubber in connectedscrubbers)
dat += {"
<tr>
<td>[scrubber.name]</td>
@@ -100,7 +100,7 @@
if(href_list["scan"])
scanscrubbers()
else if(href_list["toggle"])
var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber = locate(href_list["scrub"])
var/obj/machinery/atmospherics/portable/scrubber/huge/scrubber = locate(href_list["scrub"])
if(!validscrubber(scrubber))
spawn(20)
@@ -112,7 +112,7 @@
scrubber.on = text2num(href_list["toggle"])
scrubber.update_icon()
/obj/machinery/computer/area_atmos/proc/validscrubber(obj/machinery/portable_atmospherics/scrubber/huge/scrubber as obj)
/obj/machinery/computer/area_atmos/proc/validscrubber(obj/machinery/atmospherics/portable/scrubber/huge/scrubber as obj)
if(!isobj(scrubber) || get_dist(scrubber.loc, src.loc) > src.range || scrubber.loc.z != src.loc.z)
return 0
@@ -122,7 +122,7 @@
connectedscrubbers = new()
var/found = 0
for(var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber in range(range, src.loc))
for(var/obj/machinery/atmospherics/portable/scrubber/huge/scrubber in range(range, src.loc))
if(istype(scrubber))
found = 1
connectedscrubbers += scrubber
@@ -136,7 +136,7 @@
/obj/machinery/computer/area_atmos/area
zone = "This computer is working in a wired network limited to this area."
/obj/machinery/computer/area_atmos/area/validscrubber(obj/machinery/portable_atmospherics/scrubber/huge/scrubber as obj )
/obj/machinery/computer/area_atmos/area/validscrubber(obj/machinery/atmospherics/portable/scrubber/huge/scrubber as obj )
if(!isobj(scrubber))
return 0
@@ -164,7 +164,7 @@
var/turf/T = get_turf(src)
if(!T.loc) return
var/area/A = get_area(T)
for(var/obj/machinery/portable_atmospherics/scrubber/huge/scrubber in SSair.atmos_machinery)
for(var/obj/machinery/atmospherics/portable/scrubber/huge/scrubber in SSair.atmos_machinery)
var/turf/T2 = get_turf(scrubber)
if(T2 && T2.loc)
var/area/A2 = T2.loc
@@ -1,4 +1,4 @@
/obj/machinery/meter
/obj/machinery/atmospherics/meter
name = "gas flow meter"
desc = "It measures something."
icon = 'icons/obj/meter.dmi'
@@ -12,7 +12,6 @@
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 40, ACID = 0)
power_channel = ENVIRON
frequency = ATMOS_DISTRO_FREQ
var/id
var/id_tag
use_power = IDLE_POWER_USE
idle_power_usage = 2
@@ -21,28 +20,18 @@
Mtoollink = TRUE
settagwhitelist = list("id_tag")
/obj/machinery/meter/New()
..()
SSair.atmos_machinery += src
/obj/machinery/atmospherics/meter/Initialize(mapload)
. = ..()
target = locate(/obj/machinery/atmospherics/pipe) in loc
if(id && !id_tag)//i'm not dealing with further merge conflicts, fuck it
id_tag = id
return 1
/obj/machinery/meter/Destroy()
SSair.atmos_machinery -= src
/obj/machinery/atmospherics/meter/Destroy()
target = null
return ..()
/obj/machinery/meter/Initialize()
..()
if(!target)
target = locate(/obj/machinery/atmospherics/pipe) in loc
/obj/machinery/meter/detailed_examine()
/obj/machinery/atmospherics/meter/detailed_examine()
return "Measures the volume and temperature of the pipe under the meter."
/obj/machinery/meter/process_atmos()
/obj/machinery/atmospherics/meter/process_atmos()
if(!target || (stat & (BROKEN|NOPOWER)))
update_icon(UPDATE_ICON_STATE)
return
@@ -69,9 +58,9 @@
"sigtype" = "status"
)
radio_connection.post_signal(src, signal)
/obj/machinery/meter/update_icon_state()
/obj/machinery/atmospherics/meter/update_icon_state()
if(!target)
icon_state = "meterX"
return
@@ -100,7 +89,7 @@
else
icon_state = "meter4"
/obj/machinery/meter/proc/status()
/obj/machinery/atmospherics/meter/proc/status()
var/t = ""
if(target)
var/datum/gas_mixture/environment = target.return_air()
@@ -112,7 +101,7 @@
t += "The connect error light is blinking."
return t
/obj/machinery/meter/examine(mob/user)
/obj/machinery/atmospherics/meter/examine(mob/user)
var/t = "A gas flow meter. "
if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead)))
@@ -132,14 +121,14 @@
. = list(t)
/obj/machinery/meter/Click()
/obj/machinery/atmospherics/meter/Click()
if(istype(usr, /mob/living/silicon/ai)) // ghosts can call ..() for examine
usr.examinate(src)
return 1
return ..()
/obj/machinery/meter/attackby(obj/item/W as obj, mob/user as mob, params)
/obj/machinery/atmospherics/meter/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/multitool))
update_multitool_menu(user)
return 1
@@ -155,33 +144,17 @@
"You hear ratchet.")
deconstruct(TRUE)
/obj/machinery/meter/deconstruct(disassembled = TRUE)
/obj/machinery/atmospherics/meter/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
new /obj/item/pipe_meter(loc)
qdel(src)
/obj/machinery/meter/singularity_pull(S, current_size)
/obj/machinery/atmospherics/meter/singularity_pull(S, current_size)
..()
if(current_size >= STAGE_FIVE)
deconstruct()
// TURF METER - REPORTS A TILE'S AIR CONTENTS
/obj/machinery/meter/turf/New()
..()
target = loc
return 1
/obj/machinery/meter/turf/Initialize()
if(!target)
target = loc
..()
/obj/machinery/meter/turf/attackby(obj/item/W as obj, mob/user as mob, params)
return
/obj/machinery/meter/multitool_menu(mob/user, obj/item/multitool/P)
/obj/machinery/atmospherics/meter/multitool_menu(mob/user, obj/item/multitool/P)
return {"
<b>Main</b>
<ul>
@@ -86,7 +86,7 @@
name = "scrubbers pipe endcap"
desc = "An endcap for scrubbers pipes"
icon_state = "cap-scrubbers"
connect_types = list(3)
connect_types = list(CONNECT_TYPE_SCRUBBER)
layer = 2.38
icon_connect_type = "-scrubbers"
color = PIPE_COLOR_RED
@@ -95,7 +95,7 @@
name = "supply pipe endcap"
desc = "An endcap for supply pipes"
icon_state = "cap-supply"
connect_types = list(2)
connect_types = list(CONNECT_TYPE_SUPPLY)
layer = 2.39
icon_connect_type = "-supply"
color = PIPE_COLOR_BLUE
@@ -109,7 +109,7 @@
name = "scrubbers pipe endcap"
desc = "An endcap for scrubbers pipes"
icon_state = "cap-scrubbers"
connect_types = list(3)
connect_types = list(CONNECT_TYPE_SCRUBBER)
layer = 2.38
icon_connect_type = "-scrubbers"
color = PIPE_COLOR_RED
@@ -118,7 +118,7 @@
name = "supply pipe endcap"
desc = "An endcap for supply pipes"
icon_state = "cap-supply"
connect_types = list(2)
connect_types = list(CONNECT_TYPE_SUPPLY)
layer = 2.39
icon_connect_type = "-supply"
color = PIPE_COLOR_BLUE
@@ -160,7 +160,7 @@
name="Scrubbers pipe manifold"
desc = "A manifold composed of scrubbers pipes"
icon_state = "map-scrubbers"
connect_types = list(3)
connect_types = list(CONNECT_TYPE_SCRUBBER)
layer = 2.38
icon_connect_type = "-scrubbers"
color = PIPE_COLOR_RED
@@ -173,7 +173,7 @@
name="Air supply pipe manifold"
desc = "A manifold composed of supply pipes"
icon_state = "map-supply"
connect_types = list(2)
connect_types = list(CONNECT_TYPE_SUPPLY)
layer = 2.39
icon_connect_type = "-supply"
color = PIPE_COLOR_BLUE
@@ -209,7 +209,7 @@
name="Scrubbers pipe manifold"
desc = "A manifold composed of scrubbers pipes"
icon_state = "map-scrubbers"
connect_types = list(3)
connect_types = list(CONNECT_TYPE_SCRUBBER)
layer = 2.38
icon_connect_type = "-scrubbers"
color = PIPE_COLOR_RED
@@ -222,7 +222,7 @@
name="Air supply pipe manifold"
desc = "A manifold composed of supply pipes"
icon_state = "map-supply"
connect_types = list(2)
connect_types = list(CONNECT_TYPE_SUPPLY)
layer = 2.39
icon_connect_type = "-supply"
color = PIPE_COLOR_BLUE
@@ -170,7 +170,7 @@
name="4-way scrubbers pipe manifold"
desc = "A manifold composed of scrubbers pipes"
icon_state = "map_4way-scrubbers"
connect_types = list(3)
connect_types = list(CONNECT_TYPE_SCRUBBER)
layer = 2.38
icon_connect_type = "-scrubbers"
color = PIPE_COLOR_RED
@@ -183,7 +183,7 @@
name="4-way air supply pipe manifold"
desc = "A manifold composed of supply pipes"
icon_state = "map_4way-supply"
connect_types = list(2)
connect_types = list(CONNECT_TYPE_SUPPLY)
layer = 2.39
icon_connect_type = "-supply"
color = PIPE_COLOR_BLUE
@@ -213,7 +213,7 @@
name="4-way scrubbers pipe manifold"
desc = "A manifold composed of scrubbers pipes"
icon_state = "map_4way-scrubbers"
connect_types = list(3)
connect_types = list(CONNECT_TYPE_SCRUBBER)
layer = 2.38
icon_connect_type = "-scrubbers"
color = PIPE_COLOR_RED
@@ -226,7 +226,7 @@
name="4-way air supply pipe manifold"
desc = "A manifold composed of supply pipes"
icon_state = "map_4way-supply"
connect_types = list(2)
connect_types = list(CONNECT_TYPE_SUPPLY)
layer = 2.39
icon_connect_type = "-supply"
color = PIPE_COLOR_BLUE
@@ -15,8 +15,8 @@
flags_2 = NO_MALF_EFFECT_2
/obj/machinery/atmospherics/pipe/New()
..()
/obj/machinery/atmospherics/pipe/Initialize(mapload)
. = ..()
//so pipes under walls are hidden
if(istype(get_turf(src), /turf/simulated/wall))
level = 1
@@ -26,7 +26,7 @@
QDEL_NULL(air_temporary)
var/turf/T = loc
for(var/obj/machinery/meter/meter in T)
for(var/obj/machinery/atmospherics/meter/meter in T)
if(meter.target == src)
var/obj/item/pipe_meter/PM = new (T)
meter.transfer_fingerprints_to(PM)
@@ -7,7 +7,7 @@
name = "Scrubbers pipe"
desc = "A one meter section of scrubbers pipe"
icon_state = "intact-scrubbers"
connect_types = list(3)
connect_types = list(CONNECT_TYPE_SCRUBBER)
layer = 2.38
icon_connect_type = "-scrubbers"
color = PIPE_COLOR_RED
@@ -20,7 +20,7 @@
name = "Air supply pipe"
desc = "A one meter section of supply pipe"
icon_state = "intact-supply"
connect_types = list(2)
connect_types = list(CONNECT_TYPE_SUPPLY)
layer = 2.39
icon_connect_type = "-supply"
color = PIPE_COLOR_BLUE
@@ -32,7 +32,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/universal
name="Universal pipe adapter"
desc = "An adapter for regular, supply and scrubbers pipes"
connect_types = list(1,2,3)
connect_types = list(CONNECT_TYPE_NORMAL, CONNECT_TYPE_SUPPLY, CONNECT_TYPE_SCRUBBER)
icon_state = "map_universal"
/obj/machinery/atmospherics/pipe/simple/hidden/universal/detailed_examine()
@@ -41,7 +41,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_overlays()
. = list()
alpha = 255
. += SSair.icon_manager.get_atmos_icon("pipe", , pipe_color, "universal")
. += SSair.icon_manager.get_atmos_icon("pipe", color = pipe_color, state = "universal")
update_underlays()
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_underlays()
@@ -53,14 +53,14 @@
universal_underlays(node2)
else
var/node2_dir = turn(get_dir(src,node1),-180)
universal_underlays(,node2_dir)
universal_underlays(direction = node2_dir)
else if(node2)
universal_underlays(node2)
var/node1_dir = turn(get_dir(src,node2),-180)
universal_underlays(,node1_dir)
universal_underlays(direction = node1_dir)
else
universal_underlays(,dir)
universal_underlays(,turn(dir, -180))
universal_underlays(direction = dir)
universal_underlays(direction = turn(dir, -180))
/obj/machinery/atmospherics/pipe/simple/hidden/yellow
color = PIPE_COLOR_YELLOW
@@ -6,7 +6,7 @@
name = "Scrubbers pipe"
desc = "A one meter section of scrubbers pipe"
icon_state = "intact-scrubbers"
connect_types = list(3)
connect_types = list(CONNECT_TYPE_SCRUBBER)
layer = 2.38
icon_connect_type = "-scrubbers"
color = PIPE_COLOR_RED
@@ -19,7 +19,7 @@
name = "Air supply pipe"
desc = "A one meter section of supply pipe"
icon_state = "intact-supply"
connect_types = list(2)
connect_types = list(CONNECT_TYPE_SUPPLY)
layer = 2.39
icon_connect_type = "-supply"
color = PIPE_COLOR_BLUE
@@ -49,7 +49,7 @@
/obj/machinery/atmospherics/pipe/simple/visible/universal
name="Universal pipe adapter"
desc = "An adapter for regular, supply and scrubbers pipes"
connect_types = list(1,2,3)
connect_types = list(CONNECT_TYPE_NORMAL, CONNECT_TYPE_SUPPLY, CONNECT_TYPE_SCRUBBER)
icon_state = "map_universal"
/obj/machinery/atmospherics/pipe/simple/visible/universal/detailed_examine()
@@ -58,7 +58,7 @@
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_overlays()
. = list()
alpha = 255
. += SSair.icon_manager.get_atmos_icon("pipe", , pipe_color, "universal")
. += SSair.icon_manager.get_atmos_icon("pipe", color = pipe_color, state = "universal")
update_underlays()
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_underlays()
@@ -70,9 +70,9 @@
universal_underlays(node2)
else
var/node1_dir = get_dir(node1,src)
universal_underlays(,node1_dir)
universal_underlays(direction = node1_dir)
else if(node2)
universal_underlays(node2)
else
universal_underlays(,dir)
universal_underlays(,turn(dir, -180))
universal_underlays(direction = dir)
universal_underlays(direction = turn(dir, -180))
@@ -1,42 +1,46 @@
/datum/canister_icons
var
possiblemaincolor = list( //these lists contain the possible colors of a canister
list("name" = "\[N2O\]", "icon" = "redws"),
list("name" = "\[N2\]", "icon" = "red"),
list("name" = "\[O2\]", "icon" = "blue"),
list("name" = "\[Toxin (Bio)\]", "icon" = "orange"),
list("name" = "\[CO2\]", "icon" = "black"),
list("name" = "\[Air\]", "icon" = "grey"),
list("name" = "\[CAUTION\]", "icon" = "yellow"),
list("name" = "\[SPECIAL\]", "icon" = "whiters")
)
possibleseccolor = list( // no point in having the N2O and "whiters" ones in these lists
list("name" = "\[None\]", "icon" = "none"),
list("name" = "\[N2\]", "icon" = "red-c"),
list("name" = "\[O2\]", "icon" = "blue-c"),
list("name" = "\[Toxin (Bio)\]", "icon" = "orange-c"),
list("name" = "\[CO2\]", "icon" = "black-c"),
list("name" = "\[Air\]", "icon" = "grey-c"),
list("name" = "\[CAUTION\]", "icon" = "yellow-c")
)
possibletertcolor = list(
list("name" = "\[None\]", "icon" = "none"),
list("name" = "\[N2\]", "icon" = "red-c-1"),
list("name" = "\[O2\]", "icon" = "blue-c-1"),
list("name" = "\[Toxin (Bio)\]", "icon" = "orange-c-1"),
list("name" = "\[CO2\]", "icon" = "black-c-1"),
list("name" = "\[Air\]", "icon" = "grey-c-1"),
list("name" = "\[CAUTION\]", "icon" = "yellow-c-1")
)
possiblequartcolor = list(
list("name" = "\[None\]", "icon" = "none"),
list("name" = "\[N2\]", "icon" = "red-c-2"),
list("name" = "\[O2\]", "icon" = "blue-c-2"),
list("name" = "\[Toxin (Bio)\]", "icon" = "orange-c-2"),
list("name" = "\[CO2\]", "icon" = "black-c-2"),
list("name" = "\[Air\]", "icon" = "grey-c-2"),
list("name" = "\[CAUTION\]", "icon" = "yellow-c-2")
)
var/list/possiblemaincolor = list( //these lists contain the possible colors of a canister
list("name" = "\[N2O\]", "icon" = "redws"),
list("name" = "\[N2\]", "icon" = "red"),
list("name" = "\[O2\]", "icon" = "blue"),
list("name" = "\[Toxin (Bio)\]", "icon" = "orange"),
list("name" = "\[CO2\]", "icon" = "black"),
list("name" = "\[Air\]", "icon" = "grey"),
list("name" = "\[CAUTION\]", "icon" = "yellow"),
list("name" = "\[SPECIAL\]", "icon" = "whiters")
)
var/list/possibleseccolor = list( // no point in having the N2O and "whiters" ones in these lists
list("name" = "\[None\]", "icon" = "none"),
list("name" = "\[N2\]", "icon" = "red-c"),
list("name" = "\[O2\]", "icon" = "blue-c"),
list("name" = "\[Toxin (Bio)\]", "icon" = "orange-c"),
list("name" = "\[CO2\]", "icon" = "black-c"),
list("name" = "\[Air\]", "icon" = "grey-c"),
list("name" = "\[CAUTION\]", "icon" = "yellow-c")
)
var/list/possibletertcolor = list(
list("name" = "\[None\]", "icon" = "none"),
list("name" = "\[N2\]", "icon" = "red-c-1"),
list("name" = "\[O2\]", "icon" = "blue-c-1"),
list("name" = "\[Toxin (Bio)\]", "icon" = "orange-c-1"),
list("name" = "\[CO2\]", "icon" = "black-c-1"),
list("name" = "\[Air\]", "icon" = "grey-c-1"),
list("name" = "\[CAUTION\]", "icon" = "yellow-c-1")
)
var/list/possiblequartcolor = list(
list("name" = "\[None\]", "icon" = "none"),
list("name" = "\[N2\]", "icon" = "red-c-2"),
list("name" = "\[O2\]", "icon" = "blue-c-2"),
list("name" = "\[Toxin (Bio)\]", "icon" = "orange-c-2"),
list("name" = "\[CO2\]", "icon" = "black-c-2"),
list("name" = "\[Air\]", "icon" = "grey-c-2"),
list("name" = "\[CAUTION\]", "icon" = "yellow-c-2")
)
GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
#define HOLDING_TANK 1
@@ -48,7 +52,7 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
#define NEW_COLOR 64
#define RESET 68
/obj/machinery/portable_atmospherics/canister
/obj/machinery/atmospherics/portable/canister
name = "canister"
icon = 'icons/obj/atmos.dmi'
icon_state = "yellow"
@@ -80,15 +84,18 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
var/release_log = ""
var/update_flag = NONE
/obj/machinery/portable_atmospherics/canister/New()
..()
/obj/machinery/atmospherics/portable/canister/Initialize(mapload)
. = ..()
canister_color = list(
"prim" = "yellow",
"sec" = "none",
"ter" = "none",
"quart" = "none"
)
old_color = new /list()
old_color = list()
colorcontainer = list(
"prim" = list(
"options" = GLOB.canister_icon_container.possiblemaincolor,
@@ -107,18 +114,20 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
"name" = "Quaternary color",
)
)
color_index = list()
update_icon()
/obj/machinery/portable_atmospherics/canister/detailed_examine()
/obj/machinery/atmospherics/portable/canister/detailed_examine()
return "The canister can be connected to a connector port with a wrench. Tanks of gas (the kind you can hold in your hand) \
can be filled by the canister, by using the tank on the canister, increasing the release pressure, then opening the valve until it is full, and then close it. \
*DO NOT* remove the tank until the valve is closed. A gas analyzer can be used to check the contents of the canister."
/obj/machinery/portable_atmospherics/canister/detailed_examine_antag()
/obj/machinery/atmospherics/portable/canister/detailed_examine_antag()
return "Canisters can be damaged, spilling their contents into the air, or you can just leave the release valve open."
/obj/machinery/portable_atmospherics/canister/proc/check_change()
/obj/machinery/atmospherics/portable/canister/proc/check_change()
var/old_flag = update_flag
update_flag = NONE
if(holding_tank)
@@ -144,7 +153,7 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
return FALSE
return TRUE
/obj/machinery/portable_atmospherics/canister/update_icon_state()
/obj/machinery/atmospherics/portable/canister/update_icon_state()
/*
(note: colors has to be applied every icon update)
*/
@@ -159,7 +168,7 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
if(!check_change()) //Returns FALSE if no change needed to icons.
return
/obj/machinery/portable_atmospherics/canister/update_overlays()
/obj/machinery/atmospherics/portable/canister/update_overlays()
. = ..()
if(stat & BROKEN)
return
@@ -187,12 +196,12 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
update_flag &= ~RESET //the flag NEW_COLOR represents change, not states. As such, we have to reset them to be able to detect a change on the next go.
return
/obj/machinery/portable_atmospherics/canister/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/machinery/atmospherics/portable/canister/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > temperature_resistance)
take_damage(5, BURN, 0)
/obj/machinery/portable_atmospherics/canister/deconstruct(disassembled = TRUE)
/obj/machinery/atmospherics/portable/canister/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
if(!(stat & BROKEN))
canister_break()
@@ -202,12 +211,12 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
new /obj/item/stack/sheet/metal (loc, 5)
qdel(src)
/obj/machinery/portable_atmospherics/canister/obj_break(damage_flag)
/obj/machinery/atmospherics/portable/canister/obj_break(damage_flag)
if((stat & BROKEN) || (flags & NODECONSTRUCT))
return
canister_break()
/obj/machinery/portable_atmospherics/canister/proc/canister_break()
/obj/machinery/atmospherics/portable/canister/proc/canister_break()
disconnect()
var/datum/gas_mixture/expelled_gas = air_contents.remove(air_contents.total_moles())
var/turf/T = get_turf(src)
@@ -223,7 +232,7 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
holding_tank.forceMove(T)
holding_tank = null
/obj/machinery/portable_atmospherics/canister/process_atmos()
/obj/machinery/atmospherics/portable/canister/process_atmos()
if(stat & BROKEN)
return
@@ -260,49 +269,50 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
else
can_label = FALSE
/obj/machinery/portable_atmospherics/canister/return_air()
/obj/machinery/atmospherics/portable/canister/return_air()
return air_contents
/obj/machinery/portable_atmospherics/canister/proc/return_temperature()
/obj/machinery/atmospherics/portable/canister/proc/return_temperature()
var/datum/gas_mixture/GM = return_air()
if(GM && GM.volume>0)
return GM.temperature
return
/obj/machinery/portable_atmospherics/canister/proc/return_pressure()
/obj/machinery/atmospherics/portable/canister/proc/return_pressure()
var/datum/gas_mixture/GM = return_air()
if(GM && GM.volume>0)
return GM.return_pressure()
return
/obj/machinery/portable_atmospherics/canister/replace_tank(mob/living/user, close_valve)
/obj/machinery/atmospherics/portable/canister/replace_tank(mob/living/user, close_valve)
. = ..()
if(.)
if(close_valve)
valve_open = FALSE
update_icon()
investigate_log("Valve was <b>closed</b> by [key_name(user)].<br>", "atmos")
else if(valve_open && holding_tank)
investigate_log("[key_name(user)] started a transfer into [holding_tank].<br>", "atmos")
/obj/machinery/portable_atmospherics/canister/attack_ai(mob/user)
/obj/machinery/atmospherics/portable/canister/attack_ai(mob/user)
add_hiddenprint(user)
return attack_hand(user)
/obj/machinery/portable_atmospherics/canister/attack_ghost(mob/user)
/obj/machinery/atmospherics/portable/canister/attack_ghost(mob/user)
return ui_interact(user)
/obj/machinery/portable_atmospherics/canister/attack_hand(mob/user)
/obj/machinery/atmospherics/portable/canister/attack_hand(mob/user)
return ui_interact(user)
/obj/machinery/portable_atmospherics/canister/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = TRUE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state)
/obj/machinery/atmospherics/portable/canister/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = TRUE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "Canister", name, 600, 350, master_ui, state)
ui.open()
/obj/machinery/portable_atmospherics/canister/ui_data()
/obj/machinery/atmospherics/portable/canister/ui_data()
var/data = list()
data["portConnected"] = connected_port ? TRUE : FALSE
data["tankPressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0)
@@ -320,12 +330,14 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
data["holdingTank"] = list("name" = holding_tank.name, "tankPressure" = round(holding_tank.air_contents.return_pressure()))
return data
/obj/machinery/portable_atmospherics/canister/ui_act(action, params)
/obj/machinery/atmospherics/portable/canister/ui_act(action, params)
if(..())
return
var/can_min_release_pressure = round(ONE_ATMOSPHERE / 10)
var/can_max_release_pressure = round(ONE_ATMOSPHERE * 10)
. = TRUE
switch(action)
if("relabel")
if(can_label)
@@ -338,6 +350,7 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
else
to_chat(usr, "<span class='warning'>As you attempted to rename it the pressure rose!</span>")
. = FALSE
if("pressure")
var/pressure = params["pressure"]
if(pressure == "reset")
@@ -355,141 +368,152 @@ GLOBAL_DATUM_INIT(canister_icon_container, /datum/canister_icons, new())
if(.)
release_pressure = clamp(round(pressure), can_min_release_pressure, can_max_release_pressure)
investigate_log("was set to [release_pressure] kPa by [key_name(usr)].", "atmos")
if("valve")
var/logmsg
valve_open = !valve_open
if(valve_open)
logmsg = "Valve was <b>opened</b> by [key_name(usr)], starting a transfer into the [holding_tank || "air"].<br>"
if(!holding_tank)
logmsg = "Valve was <b>opened</b> by [key_name(usr)], starting a transfer into the air.<br>"
if(air_contents.toxins > 0)
message_admins("[key_name_admin(usr)] opened a canister that contains plasma in [get_area(src)]! (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)")
log_admin("[key_name(usr)] opened a canister that contains plasma at [get_area(src)]: [x], [y], [z]")
if(air_contents.sleeping_agent > 0)
message_admins("[key_name_admin(usr)] opened a canister that contains N2O in [get_area(src)]! (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)")
log_admin("[key_name(usr)] opened a canister that contains N2O at [get_area(src)]: [x], [y], [z]")
else
logmsg = "Valve was <b>closed</b> by [key_name(usr)], stopping the transfer into the [holding_tank || "air"].<br>"
investigate_log(logmsg, "atmos")
release_log += logmsg
if("eject")
if(holding_tank)
if(valve_open)
valve_open = FALSE
release_log += "Valve was <b>closed</b> by [key_name(usr)], stopping the transfer into the [holding_tank]<br>"
replace_tank(usr, FALSE)
if("recolor")
if(can_label)
var/ctype = params["ctype"]
var/cnum = text2num(params["nc"])
if(isnull(colorcontainer[ctype]))
message_admins("[key_name_admin(usr)] passed an invalid ctype var to a canister.")
return
var/newcolor = sanitize_integer(cnum, 0, length(colorcontainer[ctype]["options"]))
color_index[ctype] = newcolor
newcolor++ // javascript starts arrays at 0, byond (for some reason) starts them at 1, this converts JS values to byond values
canister_color[ctype] = colorcontainer[ctype]["options"][newcolor]["icon"]
add_fingerprint(usr)
update_icon()
/obj/machinery/atmospherics/portable/canister/atmos_init()
. = ..()
update_icon()
/obj/machinery/portable_atmospherics/canister/toxins
/obj/machinery/atmospherics/portable/canister/toxins
name = "Canister \[Toxin (Plasma)\]"
icon_state = "orange" //See New()
icon_state = "orange" //See Initialize()
can_label = FALSE
/obj/machinery/portable_atmospherics/canister/oxygen
/obj/machinery/atmospherics/portable/canister/oxygen
name = "Canister: \[O2\]"
icon_state = "blue" //See New()
icon_state = "blue" //See Initialize()
can_label = FALSE
/obj/machinery/portable_atmospherics/canister/sleeping_agent
/obj/machinery/atmospherics/portable/canister/sleeping_agent
name = "Canister: \[N2O\]"
icon_state = "redws" //See New()
icon_state = "redws" //See Initialize()
can_label = FALSE
/obj/machinery/portable_atmospherics/canister/nitrogen
/obj/machinery/atmospherics/portable/canister/nitrogen
name = "Canister: \[N2\]"
icon_state = "red" //See New()
icon_state = "red" //See Initialize()
can_label = FALSE
/obj/machinery/portable_atmospherics/canister/carbon_dioxide
/obj/machinery/atmospherics/portable/canister/carbon_dioxide
name = "Canister \[CO2\]"
icon_state = "black" //See New()
icon_state = "black" //See Initialize()
can_label = FALSE
/obj/machinery/portable_atmospherics/canister/air
/obj/machinery/atmospherics/portable/canister/air
name = "Canister \[Air\]"
icon_state = "grey" //See New()
icon_state = "grey" //See Initialize()
can_label = FALSE
/obj/machinery/portable_atmospherics/canister/custom_mix
/obj/machinery/atmospherics/portable/canister/custom_mix
name = "Canister \[Custom\]"
icon_state = "whiters" //See New()
icon_state = "whiters" //See Initialize()
can_label = FALSE
/obj/machinery/portable_atmospherics/canister/toxins/New()
..()
/obj/machinery/atmospherics/portable/canister/toxins/Initialize(mapload)
. = ..()
canister_color["prim"] = "orange"
air_contents.toxins = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
update_icon()
return TRUE
/obj/machinery/portable_atmospherics/canister/oxygen/New()
..()
/obj/machinery/atmospherics/portable/canister/oxygen/Initialize(mapload)
. = ..()
canister_color["prim"] = "blue"
air_contents.oxygen = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
update_icon()
return TRUE
/obj/machinery/portable_atmospherics/canister/sleeping_agent/New()
..()
/obj/machinery/atmospherics/portable/canister/sleeping_agent/Initialize(mapload)
. = ..()
canister_color["prim"] = "redws"
air_contents.sleeping_agent = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
update_icon()
return TRUE
/obj/machinery/portable_atmospherics/canister/nitrogen/New()
..()
/obj/machinery/atmospherics/portable/canister/nitrogen/Initialize(mapload)
. = ..()
canister_color["prim"] = "red"
air_contents.nitrogen = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
update_icon()
return TRUE
/obj/machinery/portable_atmospherics/canister/carbon_dioxide/New()
..()
/obj/machinery/atmospherics/portable/canister/carbon_dioxide/Initialize(mapload)
. = ..()
canister_color["prim"] = "black"
air_contents.carbon_dioxide = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
update_icon()
return TRUE
/obj/machinery/portable_atmospherics/canister/air/New()
..()
/obj/machinery/atmospherics/portable/canister/air/Initialize(mapload)
. = ..()
canister_color["prim"] = "grey"
air_contents.oxygen = (O2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
air_contents.nitrogen = (N2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
update_icon()
return TRUE
/obj/machinery/portable_atmospherics/canister/custom_mix/New()
..()
/obj/machinery/atmospherics/portable/canister/custom_mix/Initialize(mapload)
. = ..()
canister_color["prim"] = "whiters"
update_icon() // Otherwise new canisters do not have their icon updated with the pressure light, likely want to add this to the canister class constructor, avoiding at current time to refrain from screwing up code for other canisters. --DZD
return TRUE
/obj/machinery/portable_atmospherics/canister/welder_act(mob/user, obj/item/I)
/obj/machinery/atmospherics/portable/canister/welder_act(mob/user, obj/item/I)
if(!(stat & BROKEN))
return
. = TRUE
if(!I.tool_use_check(user, 0))
return
WELDER_ATTEMPT_SLICING_MESSAGE
if(I.use_tool(src, user, 50, volume = I.tool_volume))
to_chat(user, "<span class='notice'>You salvage whats left of [src]!</span>")
@@ -1,5 +1,7 @@
/obj/machinery/portable_atmospherics
/obj/machinery/atmospherics/portable
name = "atmoalter"
anchored = FALSE
layer = BELOW_OBJ_LAYER
use_power = NO_POWER_USE
max_integrity = 250
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 60, ACID = 30)
@@ -10,40 +12,45 @@
var/volume = 0
var/maximum_pressure = 90*ONE_ATMOSPHERE
var/maximum_pressure = 90 * ONE_ATMOSPHERE
/obj/machinery/portable_atmospherics/New()
..()
/obj/machinery/atmospherics/portable/Initialize(mapload)
. = ..()
SSair.atmos_machinery += src
air_contents.volume = volume
air_contents.temperature = T20C
return TRUE
if(mapload)
return INITIALIZE_HINT_LATELOAD
/obj/machinery/portable_atmospherics/Initialize()
. = ..()
spawn()
var/obj/machinery/atmospherics/unary/portables_connector/port = locate() in loc
if(port)
connect(port)
update_icon()
check_for_port()
/obj/machinery/portable_atmospherics/process_atmos()
// Late init this otherwise it shares with the port and it tries to div temperature by 0
/obj/machinery/atmospherics/portable/LateInitialize()
check_for_port()
/obj/machinery/atmospherics/portable/proc/check_for_port()
var/obj/machinery/atmospherics/unary/portables_connector/port = locate() in loc
if(port)
connect(port)
/obj/machinery/atmospherics/portable/process_atmos()
if(!connected_port) //only react when pipe_network will ont it do it for you
//Allow for reactions
air_contents.react()
else
update_icon()
return
/obj/machinery/portable_atmospherics/Destroy()
update_icon()
/obj/machinery/atmospherics/portable/Destroy()
SSair.atmos_machinery -= src
disconnect()
QDEL_NULL(air_contents)
QDEL_NULL(holding_tank)
return ..()
/obj/machinery/portable_atmospherics/proc/connect(obj/machinery/atmospherics/unary/portables_connector/new_port)
/obj/machinery/atmospherics/portable/proc/connect(obj/machinery/atmospherics/unary/portables_connector/new_port)
//Make sure not already connected to something else
if(connected_port || !new_port || new_port.connected_device)
return
@@ -65,7 +72,7 @@
return TRUE
/obj/machinery/portable_atmospherics/proc/disconnect()
/obj/machinery/atmospherics/portable/disconnect()
if(!connected_port)
return
@@ -76,10 +83,10 @@
return TRUE
/obj/machinery/portable_atmospherics/portableConnectorReturnAir()
/obj/machinery/atmospherics/portable/portableConnectorReturnAir()
return air_contents
/obj/machinery/portable_atmospherics/AltClick(mob/living/user)
/obj/machinery/atmospherics/portable/AltClick(mob/living/user)
if(!istype(user) || user.incapacitated())
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
return
@@ -91,12 +98,12 @@
to_chat(user, "<span class='notice'>You remove [holding_tank] from [src].</span>")
replace_tank(user, TRUE)
/obj/machinery/portable_atmospherics/examine(mob/user)
/obj/machinery/atmospherics/portable/examine(mob/user)
. = ..()
if(holding_tank)
. += "<span class='notice'>\The [src] contains [holding_tank]. Alt-click [src] to remove it.</span>"
/obj/machinery/portable_atmospherics/proc/replace_tank(mob/living/user, close_valve, obj/item/tank/new_tank)
/obj/machinery/atmospherics/portable/proc/replace_tank(mob/living/user, close_valve, obj/item/tank/new_tank)
if(holding_tank)
holding_tank.forceMove(drop_location())
if(Adjacent(user) && !issilicon(user))
@@ -108,7 +115,7 @@
update_icon()
return TRUE
/obj/machinery/portable_atmospherics/attackby(obj/item/W, mob/user, params)
/obj/machinery/atmospherics/portable/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/tank))
if(!(stat & BROKEN))
if(!user.drop_item())
@@ -127,7 +134,7 @@
return
return ..()
/obj/machinery/portable_atmospherics/wrench_act(mob/user, obj/item/I)
/obj/machinery/atmospherics/portable/wrench_act(mob/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
return
@@ -148,7 +155,7 @@
else
to_chat(user, "<span class='notice'>Nothing happens.</span>")
/obj/machinery/portable_atmospherics/attacked_by(obj/item/I, mob/user)
/obj/machinery/atmospherics/portable/attacked_by(obj/item/I, mob/user)
if(I.force < 10 && !(stat & BROKEN))
take_damage(0)
else
@@ -6,35 +6,33 @@
/// The pump will be pumping gas out.
#define DIRECTION_OUT 1
/obj/machinery/portable_atmospherics/pump
/obj/machinery/atmospherics/portable/pump
name = "Portable Air Pump"
icon = 'icons/obj/atmos.dmi'
icon_state = "psiphon:0"
density = TRUE
volume = 1000
/// If the pump is turned on or off.
var/on = FALSE
/// The direction the pump is operating in. This should be either `DIRECTION_IN` or `DIRECTION_OUT`.
var/direction = DIRECTION_IN
/// The desired pressure the pump should be outputting, either into the atmosphere, or into a holding tank.
var/target_pressure = 101.325
target_pressure = 101.325
/obj/machinery/portable_atmospherics/pump/detailed_examine()
/obj/machinery/atmospherics/portable/pump/detailed_examine()
return "Invaluable for filling air in a room rapidly after a breach repair. The internal gas container can be filled by \
connecting it to a connector port. The pump can pump the air in (sucking) or out (blowing), at a specific target pressure. The powercell inside can be \
replaced by using a screwdriver, and then adding a new cell. A tank of gas can also be attached to the air pump."
/obj/machinery/portable_atmospherics/pump/update_icon_state()
/obj/machinery/atmospherics/portable/pump/update_icon_state()
icon_state = "psiphon:[on]"
/obj/machinery/portable_atmospherics/pump/update_overlays()
/obj/machinery/atmospherics/portable/pump/update_overlays()
. = ..()
if(holding_tank)
. += "siphon-open"
if(connected_port)
. += "siphon-connector"
/obj/machinery/portable_atmospherics/pump/emp_act(severity)
/obj/machinery/atmospherics/portable/pump/emp_act(severity)
if(stat & (BROKEN|NOPOWER))
..(severity)
return
@@ -50,7 +48,7 @@
..(severity)
/obj/machinery/portable_atmospherics/pump/process_atmos()
/obj/machinery/atmospherics/portable/pump/process_atmos()
..()
if(on)
var/datum/gas_mixture/environment
@@ -94,10 +92,10 @@
return
/obj/machinery/portable_atmospherics/pump/return_air()
/obj/machinery/atmospherics/portable/pump/return_air()
return air_contents
/obj/machinery/portable_atmospherics/pump/replace_tank(mob/living/user, close_valve)
/obj/machinery/atmospherics/portable/pump/replace_tank(mob/living/user, close_valve)
. = ..()
if(.)
if(close_valve)
@@ -107,23 +105,23 @@
else if(on && holding_tank && direction == DIRECTION_OUT)
investigate_log("[key_name(user)] started a transfer into [holding_tank].<br>", "atmos")
/obj/machinery/portable_atmospherics/pump/attack_ai(mob/user)
/obj/machinery/atmospherics/portable/pump/attack_ai(mob/user)
add_hiddenprint(user)
return attack_hand(user)
/obj/machinery/portable_atmospherics/pump/attack_ghost(mob/user)
/obj/machinery/atmospherics/portable/pump/attack_ghost(mob/user)
return attack_hand(user)
/obj/machinery/portable_atmospherics/pump/attack_hand(mob/user)
/obj/machinery/atmospherics/portable/pump/attack_hand(mob/user)
ui_interact(user)
/obj/machinery/portable_atmospherics/pump/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)
/obj/machinery/atmospherics/portable/pump/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, "PortablePump", "Portable Pump", 434, 377, master_ui, state)
ui.open()
/obj/machinery/portable_atmospherics/pump/ui_data(mob/user)
/obj/machinery/atmospherics/portable/pump/ui_data(mob/user)
var/list/data = list(
"on" = on,
"direction" = direction,
@@ -140,7 +138,7 @@
return data
/obj/machinery/portable_atmospherics/pump/ui_act(action, list/params)
/obj/machinery/atmospherics/portable/pump/ui_act(action, list/params)
if(..())
return
@@ -1,25 +1,23 @@
#define MAX_RATE 10 * ONE_ATMOSPHERE
/obj/machinery/portable_atmospherics/scrubber
/obj/machinery/atmospherics/portable/scrubber
name = "Portable Air Scrubber"
icon = 'icons/obj/atmos.dmi'
icon_state = "pscrubber:0"
density = TRUE
volume = 750
/// Whether the scrubber is switched on or off.
var/on = FALSE
/// The volume of gas that can be scrubbed every time `process_atmos()` is called (0.5 seconds).
var/volume_rate = 101.325
/// Is this scrubber acting on the 3x3 area around it.
var/widenet = FALSE
/obj/machinery/portable_atmospherics/scrubber/detailed_examine()
/obj/machinery/atmospherics/portable/scrubber/detailed_examine()
return "Filters the air, placing harmful gases into the internal gas container. The container can be emptied by \
connecting it to a connector port. The pump can pump the air in (sucking) or out (blowing), at a specific target pressure. The powercell inside can be \
replaced by using a screwdriver, and then adding a new cell. A tank of gas can also be attached to the scrubber."
/obj/machinery/portable_atmospherics/scrubber/emp_act(severity)
/obj/machinery/atmospherics/portable/scrubber/emp_act(severity)
if(stat & (BROKEN|NOPOWER))
..(severity)
return
@@ -30,20 +28,20 @@
..(severity)
/obj/machinery/portable_atmospherics/scrubber/update_icon_state()
/obj/machinery/atmospherics/portable/scrubber/update_icon_state()
if(on)
icon_state = "pscrubber:1"
else
icon_state = "pscrubber:0"
/obj/machinery/portable_atmospherics/scrubber/update_overlays()
/obj/machinery/atmospherics/portable/scrubber/update_overlays()
. = ..()
if(holding_tank)
. += "scrubber-open"
if(connected_port)
. += "scrubber-connector"
/obj/machinery/portable_atmospherics/scrubber/process_atmos()
/obj/machinery/atmospherics/portable/scrubber/process_atmos()
..()
if(!on)
@@ -55,7 +53,7 @@
for(var/turf/simulated/tile in T.GetAtmosAdjacentTurfs(alldir=1))
scrub(tile)
/obj/machinery/portable_atmospherics/scrubber/proc/scrub(turf/simulated/tile)
/obj/machinery/atmospherics/portable/scrubber/proc/scrub(turf/simulated/tile)
var/datum/gas_mixture/environment
if(holding_tank)
environment = holding_tank.air_contents
@@ -98,28 +96,28 @@
tile.assume_air(removed)
tile.air_update_turf()
/obj/machinery/portable_atmospherics/scrubber/return_air()
/obj/machinery/atmospherics/portable/scrubber/return_air()
return air_contents
/obj/machinery/portable_atmospherics/scrubber/attack_ai(mob/user)
/obj/machinery/atmospherics/portable/scrubber/attack_ai(mob/user)
add_hiddenprint(user)
return attack_hand(user)
/obj/machinery/portable_atmospherics/scrubber/attack_ghost(mob/user)
/obj/machinery/atmospherics/portable/scrubber/attack_ghost(mob/user)
return attack_hand(user)
/obj/machinery/portable_atmospherics/scrubber/attack_hand(mob/user)
/obj/machinery/atmospherics/portable/scrubber/attack_hand(mob/user)
ui_interact(user)
return
/obj/machinery/portable_atmospherics/scrubber/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)
/obj/machinery/atmospherics/portable/scrubber/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, "PortableScrubber", "Portable Scrubber", 433, 346, master_ui, state)
ui.open()
ui.set_autoupdate(TRUE)
/obj/machinery/portable_atmospherics/scrubber/ui_data(mob/user)
/obj/machinery/atmospherics/portable/scrubber/ui_data(mob/user)
var/list/data = list(
"on" = on,
"port_connected" = connected_port ? TRUE : FALSE,
@@ -135,7 +133,7 @@
return data
/obj/machinery/portable_atmospherics/scrubber/ui_act(action, list/params)
/obj/machinery/atmospherics/portable/scrubber/ui_act(action, list/params)
if(..())
return
@@ -158,7 +156,7 @@
add_fingerprint(usr)
/obj/machinery/portable_atmospherics/scrubber/huge
/obj/machinery/atmospherics/portable/scrubber/huge
name = "Huge Air Scrubber"
icon_state = "scrubber:0"
anchored = TRUE
@@ -170,26 +168,26 @@
var/id = 0
var/stationary = FALSE
/obj/machinery/portable_atmospherics/scrubber/huge/New()
/obj/machinery/atmospherics/portable/scrubber/huge/New()
..()
id = gid
gid++
name = "[name] (ID [id])"
/obj/machinery/portable_atmospherics/scrubber/huge/attack_hand(mob/user)
/obj/machinery/atmospherics/portable/scrubber/huge/attack_hand(mob/user)
to_chat(usr, "<span class='warning'>You can't directly interact with this machine. Use the area atmos computer.</span>")
/obj/machinery/portable_atmospherics/scrubber/huge/update_icon_state()
/obj/machinery/atmospherics/portable/scrubber/huge/update_icon_state()
icon_state = "scrubber:[on]"
/obj/machinery/portable_atmospherics/scrubber/huge/attackby(obj/item/W, mob/user, params)
/obj/machinery/atmospherics/portable/scrubber/huge/attackby(obj/item/W, mob/user, params)
if((istype(W, /obj/item/analyzer)) && get_dist(user, src) <= 1)
atmosanalyzer_scan(air_contents, user)
return
return ..()
/obj/machinery/portable_atmospherics/scrubber/huge/wrench_act(mob/user, obj/item/I)
/obj/machinery/atmospherics/portable/scrubber/huge/wrench_act(mob/user, obj/item/I)
. = TRUE
if(stationary)
to_chat(user, "<span class='warning'>The bolts are too tight for you to unscrew!</span>")
@@ -202,7 +200,7 @@
anchored = !anchored
to_chat(user, "<span class='notice'>You [anchored ? "wrench" : "unwrench"] [src].</span>")
/obj/machinery/portable_atmospherics/scrubber/huge/stationary
/obj/machinery/atmospherics/portable/scrubber/huge/stationary
name = "Stationary Air Scrubber"
stationary = TRUE
+1 -1
View File
@@ -97,7 +97,7 @@
color = "#00ff80"
/obj/effect/countdown/supermatter/get_value()
var/obj/machinery/power/supermatter_crystal/S = attached_to
var/obj/machinery/atmospherics/supermatter_crystal/S = attached_to
if(!istype(S))
return
return "<div align='center' valign='middle' style='position:relative; top:0px; left:0px'>[round(S.get_integrity(), 1)]%</div>"
+9 -2
View File
@@ -178,28 +178,35 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
/datum/ErrorViewer/ErrorEntry/showTo(user, datum/ErrorViewer/back_to, linear)
if(!istype(back_to))
back_to = error_source
var/html = buildHeader(back_to, linear)
html += "<div class='bad'><b>Be sure to censor out ckeys when copying runtimes!</b></div><br>"
html += "<div class='runtime'>[html_encode(name)]<br>[desc]</div>"
if(srcRef)
html += "<br>src: <a href='?_src_=vars;Vars=[srcUID]'>VV</a>"
if(ispath(srcType, /mob))
html += " <a href='?_src_=holder;adminplayeropts=[srcUID]'>PP</a>"
html += " <a href='?_src_=holder;adminplayerobservefollow=[srcUID]'>Follow</a>"
if(istype(srcLoc))
html += "<br>src.loc: <a href='?_src_=vars;Vars=[srcLoc.UID()]'>VV</a>"
html += " <a href='?_src_=holder;adminplayerobservecoodjump=1;X=[srcLoc.x];Y=[srcLoc.y];Z=[srcLoc.z]'>JMP</a>"
if(usrRef)
html += "<br>usr: <a href='?_src_=vars;Vars=[usrUID]'>VV</a>"
html += " <a href='?_src_=holder;adminplayeropts=[usrUID]'>PP</a>"
html += " <a href='?_src_=holder;adminplayerobservefollow=[usrUID]'>Follow</a>"
if(istype(usrLoc))
html += "<br>usr.loc: <a href='?_src_=vars;Vars=[usrLoc.UID()]'>VV</a>"
html += " <a href='?_src_=holder;adminplayerobservecoodjump=1;X=[usrLoc.x];Y=[usrLoc.y];Z=[usrLoc.z]'>JMP</a>"
browseTo(user, html)
/datum/ErrorViewer/ErrorEntry/makeLink(linktext, datum/ErrorViewer/back_to, linear)
if(isSkipCount)
return html_encode(name)
else
return ..()
return ..()
+4 -4
View File
@@ -121,8 +121,8 @@
if(istype(A, /obj/item/tank))
var/obj/item/tank/T = A
pda.atmosanalyzer_scan(T.air_contents, user, T)
else if(istype(A, /obj/machinery/portable_atmospherics))
var/obj/machinery/portable_atmospherics/T = A
else if(istype(A, /obj/machinery/atmospherics/portable))
var/obj/machinery/atmospherics/portable/T = A
pda.atmosanalyzer_scan(T.air_contents, user, T)
else if(istype(A, /obj/machinery/atmospherics/pipe))
var/obj/machinery/atmospherics/pipe/T = A
@@ -135,8 +135,8 @@
var/obj/item/flamethrower/T = A
if(T.ptank)
pda.atmosanalyzer_scan(T.ptank.air_contents, user, T)
else if(istype(A, /obj/machinery/portable_atmospherics/scrubber/huge))
var/obj/machinery/portable_atmospherics/scrubber/huge/T = A
else if(istype(A, /obj/machinery/atmospherics/portable/scrubber/huge))
var/obj/machinery/atmospherics/portable/scrubber/huge/T = A
pda.atmosanalyzer_scan(T.air_contents, user, T)
else if(istype(A, /obj/machinery/atmospherics/unary/tank))
var/obj/machinery/atmospherics/unary/tank/T = A
@@ -275,7 +275,7 @@
/obj/singularity/proc/consume(atom/A)
var/gain = A.singularity_act(current_size)
src.energy += gain
if(istype(A, /obj/machinery/power/supermatter_crystal) && !consumedSupermatter)
if(istype(A, /obj/machinery/atmospherics/supermatter_crystal) && !consumedSupermatter)
desc = "[initial(desc)] It glows fiercely with inner fire."
name = "supermatter-charged [initial(name)]"
consumedSupermatter = TRUE
+35 -35
View File
@@ -78,7 +78,7 @@
#define MAX_SPACE_EXPOSURE_DAMAGE 2
/obj/machinery/power/supermatter_crystal
/obj/machinery/atmospherics/supermatter_crystal
name = "supermatter crystal"
desc = "A strangely translucent and iridescent crystal."
icon = 'icons/obj/supermatter.dmi'
@@ -192,7 +192,7 @@
///Disables the sm's proccessing totally.
var/processes = TRUE
/obj/machinery/power/supermatter_crystal/Initialize(mapload)
/obj/machinery/atmospherics/supermatter_crystal/Initialize(mapload)
. = ..()
supermatter_id = global_supermatter_id++
SSair.atmos_machinery += src
@@ -206,7 +206,7 @@
soundloop = new(list(src), TRUE)
/obj/machinery/power/supermatter_crystal/Destroy()
/obj/machinery/atmospherics/supermatter_crystal/Destroy()
investigate_log("has been destroyed.", "supermatter")
SSair.atmos_machinery -= src
QDEL_NULL(radio)
@@ -215,7 +215,7 @@
QDEL_NULL(soundloop)
return ..()
/obj/machinery/power/supermatter_crystal/examine(mob/user)
/obj/machinery/atmospherics/supermatter_crystal/examine(mob/user)
. = ..()
if(!ishuman(user))
return
@@ -224,7 +224,7 @@
if(!immune && !HAS_TRAIT(H, TRAIT_MESON_VISION) && (get_dist(user, src) < HALLUCINATION_RANGE(power)))
. += "<span class='danger'>You get headaches just from looking at it.</span>"
/obj/machinery/power/supermatter_crystal/detailed_examine()
/obj/machinery/atmospherics/supermatter_crystal/detailed_examine()
return "When energized by a laser (or something hitting it), it emits radiation and heat. If the heat reaches above 7000 kelvin, it will send an alert and start taking damage. \
After integrity falls to zero percent, it will delaminate, causing a massive explosion, station-wide radiation spikes, and hallucinations. \
Supermatter reacts badly to oxygen in the atmosphere. It'll also heat up really quick if it is in vacuum.<br>\
@@ -236,12 +236,12 @@
Touching the supermatter will result in *instant death*, with no corpse left behind! You can drag the supermatter, but anything else will kill you. \
It is advised to obtain a genetic backup before trying to drag it."
/obj/machinery/power/supermatter_crystal/detailed_examine_antag()
/obj/machinery/atmospherics/supermatter_crystal/detailed_examine_antag()
return "Exposing the supermatter to oxygen or vacuum will cause it to start rapidly heating up. Sabotaging the supermatter and making it explode will \
cause a period of lag as the explosion is processed by the server, as well as irradiating the entire station and causing hallucinations to happen. \
Wearing radiation equipment will protect you from most of the delamination effects sans explosion."
/obj/machinery/power/supermatter_crystal/proc/get_status()
/obj/machinery/atmospherics/supermatter_crystal/proc/get_status()
var/turf/T = get_turf(src)
if(!T)
return SUPERMATTER_ERROR
@@ -269,7 +269,7 @@
return SUPERMATTER_NORMAL
return SUPERMATTER_INACTIVE
/obj/machinery/power/supermatter_crystal/proc/alarm()
/obj/machinery/atmospherics/supermatter_crystal/proc/alarm()
switch(get_status())
if(SUPERMATTER_DELAMINATING)
playsound(src, 'sound/misc/bloblarm.ogg', 100, FALSE, 40, 30, falloff_distance = 10)
@@ -280,13 +280,13 @@
if(SUPERMATTER_WARNING)
playsound(src, 'sound/machines/terminal_alert.ogg', 75)
/obj/machinery/power/supermatter_crystal/proc/get_integrity()
/obj/machinery/atmospherics/supermatter_crystal/proc/get_integrity()
var/integrity = damage / explosion_point
integrity = round(100 - integrity * 100, 0.01)
integrity = integrity < 0 ? 0 : integrity
return integrity
/obj/machinery/power/supermatter_crystal/proc/countdown()
/obj/machinery/atmospherics/supermatter_crystal/proc/countdown()
set waitfor = FALSE
if(final_countdown) // We're already doing it go away
@@ -320,7 +320,7 @@
explode()
/obj/machinery/power/supermatter_crystal/proc/explode()
/obj/machinery/atmospherics/supermatter_crystal/proc/explode()
SSblackbox.record_feedback("amount", "supermatter_delaminations", 1)
for(var/mob in GLOB.alive_mob_list)
var/mob/living/L = mob
@@ -358,7 +358,7 @@
if(T)
var/obj/singularity/energy_ball/E = new(T)
E.energy = 200 //Gets us about 9 balls
// else if(power > EVENT_POWER_PENALTY_THRESHOLD && prob(power/50) && !istype(src, /obj/machinery/power/supermatter_crystal/shard))
// else if(power > EVENT_POWER_PENALTY_THRESHOLD && prob(power/50) && !istype(src, /obj/machinery/atmospherics/supermatter_crystal/shard))
// var/datum/round_event_control/crystal_invasion/crystals = new/datum/round_event_control/crystal_invasion
// crystals.runEvent()
// return //No boom for me sir
@@ -366,7 +366,7 @@
explosion(get_turf(T), explosion_power * max(gasmix_power_ratio, 0.205) * 0.5 , explosion_power * max(gasmix_power_ratio, 0.205) + 2, explosion_power * max(gasmix_power_ratio, 0.205) + 4 , explosion_power * max(gasmix_power_ratio, 0.205) + 6, 1, 1)
qdel(src)
/obj/machinery/power/supermatter_crystal/process_atmos()
/obj/machinery/atmospherics/supermatter_crystal/process_atmos()
if(!processes) //Just fuck me up bro
return
var/turf/T = loc
@@ -634,7 +634,7 @@
return 1
/obj/machinery/power/supermatter_crystal/bullet_act(obj/item/projectile/Proj)
/obj/machinery/atmospherics/supermatter_crystal/bullet_act(obj/item/projectile/Proj)
var/turf/L = loc
if(!istype(L))
return FALSE
@@ -651,7 +651,7 @@
damage += Proj.damage * bullet_energy
return FALSE
/obj/machinery/power/supermatter_crystal/singularity_act()
/obj/machinery/atmospherics/supermatter_crystal/singularity_act()
var/gain = 100
investigate_log("Supermatter shard consumed by singularity.", "singulo")
message_admins("Singularity has consumed a supermatter shard and can now become stage six.")
@@ -664,7 +664,7 @@
qdel(src)
return gain
/obj/machinery/power/supermatter_crystal/blob_act(obj/structure/blob/B)
/obj/machinery/atmospherics/supermatter_crystal/blob_act(obj/structure/blob/B)
if(B && !isspaceturf(loc)) //does nothing in space
playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, TRUE)
damage += B.obj_integrity * 0.5 //take damage equal to 50% of remaining blob health before it tried to eat us
@@ -677,7 +677,7 @@
"<span class='italics'>You hear a loud crack as you are washed with a wave of heat.</span>")
Consume(B)
/obj/machinery/power/supermatter_crystal/attack_tk(mob/user)
/obj/machinery/atmospherics/supermatter_crystal/attack_tk(mob/user)
if(iscarbon(user))
var/mob/living/carbon/C = user
to_chat(C, "<span class='userdanger'>That was a really dense idea.</span>")
@@ -687,10 +687,10 @@
B.remove(C)
qdel(B)
/obj/machinery/power/supermatter_crystal/attack_alien(mob/user)
/obj/machinery/atmospherics/supermatter_crystal/attack_alien(mob/user)
dust_mob(user, cause = "alien attack")
/obj/machinery/power/supermatter_crystal/attack_animal(mob/living/simple_animal/S)
/obj/machinery/atmospherics/supermatter_crystal/attack_animal(mob/living/simple_animal/S)
var/murder
if(!S.melee_damage_upper && !S.melee_damage_lower)
murder = S.friendly
@@ -701,18 +701,18 @@
"<span class='userdanger'>You unwisely touch [src], and your vision glows brightly as your body crumbles to dust. Oops.</span>", \
"simple animal attack")
/obj/machinery/power/supermatter_crystal/attack_robot(mob/user)
/obj/machinery/atmospherics/supermatter_crystal/attack_robot(mob/user)
if(Adjacent(user))
dust_mob(user, cause = "cyborg attack")
/obj/machinery/power/supermatter_crystal/attack_ai(mob/user)
/obj/machinery/atmospherics/supermatter_crystal/attack_ai(mob/user)
return
/obj/machinery/power/supermatter_crystal/attack_hand(mob/living/user)
/obj/machinery/atmospherics/supermatter_crystal/attack_hand(mob/living/user)
..()
dust_mob(user, cause = "hand")
/obj/machinery/power/supermatter_crystal/proc/dust_mob(mob/living/nom, vis_msg, mob_msg, cause)
/obj/machinery/atmospherics/supermatter_crystal/proc/dust_mob(mob/living/nom, vis_msg, mob_msg, cause)
if(nom.incorporeal_move || nom.status_flags & GODMODE)
return
if(!vis_msg)
@@ -726,7 +726,7 @@
playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, TRUE)
Consume(nom)
/obj/machinery/power/supermatter_crystal/attackby(obj/item/I, mob/living/user, params)
/obj/machinery/atmospherics/supermatter_crystal/attackby(obj/item/I, mob/living/user, params)
if(!istype(I) || (I.flags & ABSTRACT) || !istype(user))
return
if(moveable && default_unfasten_wrench(user, I, time = 20))
@@ -769,7 +769,7 @@
radiation_pulse(src, 150, 4)
/obj/machinery/power/supermatter_crystal/Bumped(atom/movable/AM)
/obj/machinery/atmospherics/supermatter_crystal/Bumped(atom/movable/AM)
if(isliving(AM))
AM.visible_message("<span class='danger'>[AM] slams into [src] inducing a resonance... [AM.p_their()] body starts to glow and burst into flames before flashing into dust!</span>",\
"<span class='userdanger'>You slam into [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"</span>",\
@@ -783,7 +783,7 @@
playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, TRUE)
Consume(AM)
/obj/machinery/power/supermatter_crystal/proc/Consume(atom/movable/AM)
/obj/machinery/atmospherics/supermatter_crystal/proc/Consume(atom/movable/AM)
if(isliving(AM))
var/mob/living/user = AM
if(user.status_flags & GODMODE)
@@ -802,7 +802,7 @@
suspicion = "last touched by [AM.fingerprintslast]"
message_admins("[src] has consumed [AM], [suspicion] [ADMIN_JMP(src)].")
investigate_log("has consumed [AM] - [suspicion].", "supermatter")
if(istype(AM, /obj/machinery/power/supermatter_crystal))
if(istype(AM, /obj/machinery/atmospherics/supermatter_crystal))
power += 5000//releases A LOT of power
matter_power += 500000
damage += 180//drops the integrety by 20%
@@ -822,10 +822,10 @@
else
L.show_message("<span class='italics'>You hear an unearthly ringing and notice your skin is covered in fresh radiation burns.</span>", 2)
/obj/machinery/power/supermatter_crystal/engine
/obj/machinery/atmospherics/supermatter_crystal/engine
is_main_engine = TRUE
/obj/machinery/power/supermatter_crystal/shard
/obj/machinery/atmospherics/supermatter_crystal/shard
name = "supermatter shard"
desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure."
base_icon_state = "darkmatter_shard"
@@ -836,7 +836,7 @@
layer = ABOVE_MOB_LAYER
moveable = TRUE
/obj/machinery/power/supermatter_crystal/shard/engine
/obj/machinery/atmospherics/supermatter_crystal/shard/engine
name = "anchored supermatter shard"
is_main_engine = TRUE
anchored = TRUE
@@ -844,7 +844,7 @@
// When you wanna make a supermatter shard for the dramatic effect, but
// don't want it exploding suddenly
/obj/machinery/power/supermatter_crystal/shard/hugbox
/obj/machinery/atmospherics/supermatter_crystal/shard/hugbox
name = "anchored supermatter shard"
takes_damage = FALSE
produces_gas = FALSE
@@ -853,12 +853,12 @@
moveable = FALSE
anchored = TRUE
/obj/machinery/power/supermatter_crystal/shard/hugbox/fakecrystal //Hugbox shard with crystal visuals, used in the Supermatter/Hyperfractal shuttle
/obj/machinery/atmospherics/supermatter_crystal/shard/hugbox/fakecrystal //Hugbox shard with crystal visuals, used in the Supermatter/Hyperfractal shuttle
name = "supermatter crystal"
base_icon_state = "darkmatter"
icon_state = "darkmatter"
/obj/machinery/power/supermatter_crystal/proc/supermatter_pull(turf/center, pull_range = 3)
/obj/machinery/atmospherics/supermatter_crystal/proc/supermatter_pull(turf/center, pull_range = 3)
playsound(center, 'sound/weapons/marauder.ogg', 100, TRUE, extrarange = pull_range - world.view, channel = CHANNEL_ENGINE)
for(var/atom/movable/P in orange(pull_range,center))
if((P.anchored || P.move_resist >= MOVE_FORCE_EXTREMELY_STRONG)) //move resist memes.
@@ -876,7 +876,7 @@
visible_message("<span class='danger'>[src]'s sheer force rips [M] away from [buckler]!</span>")
step_towards(P,center)
/obj/machinery/power/supermatter_crystal/proc/supermatter_anomaly_gen(turf/anomalycenter, type = FLUX_ANOMALY, anomalyrange = 5)
/obj/machinery/atmospherics/supermatter_crystal/proc/supermatter_anomaly_gen(turf/anomalycenter, type = FLUX_ANOMALY, anomalyrange = 5)
var/turf/L = pick(orange(anomalyrange, anomalycenter))
if(L)
switch(type)
@@ -888,7 +888,7 @@
if(PYRO_ANOMALY)
new /obj/effect/anomaly/pyro(L, 200, FALSE)
/obj/machinery/power/supermatter_crystal/proc/supermatter_zap(atom/zapstart = src, range = 5, zap_str = 4000, zap_flags = ZAP_SUPERMATTER_FLAGS, list/targets_hit = list())
/obj/machinery/atmospherics/supermatter_crystal/proc/supermatter_zap(atom/zapstart = src, range = 5, zap_str = 4000, zap_flags = ZAP_SUPERMATTER_FLAGS, list/targets_hit = list())
if(QDELETED(zapstart))
return
. = zapstart.dir
+1 -1
View File
@@ -223,7 +223,7 @@
var/closest_type = 0
var/static/things_to_shock = typecacheof(list(/obj/machinery, /mob/living, /obj/structure, /obj/vehicle))
var/static/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics,
/obj/machinery/portable_atmospherics,
/obj/machinery/atmospherics/portable,
/obj/machinery/power/emitter,
/obj/machinery/field/generator,
/mob/living/simple_animal/slime,
+10 -9
View File
@@ -2,21 +2,22 @@
// Store Item
/////////////////////////////
/datum/storeitem
var/name="Thing"
var/desc="It's a thing."
var/typepath=/obj/item/storage/box
var/cost=0
var/name = "Thing"
var/desc = "It's a thing."
var/typepath = /obj/item/storage/box
var/cost = 0
/datum/storeitem/proc/deliver(mob/usr)
/datum/storeitem/proc/deliver(mob/user)
if(!istype(typepath,/obj/item/storage))
var/obj/item/storage/box/box=new(usr.loc)
var/obj/item/storage/box/box=new(user.loc)
new typepath(box)
box.name="[name] package"
box.desc="A special gift for doing your job."
usr.put_in_hands(box)
user.put_in_hands(box)
else
var/thing = new typepath(usr.loc)
usr.put_in_hands(thing)
var/thing = new typepath(user.loc)
user.put_in_hands(thing)
/////////////////////////////
+8 -6
View File
@@ -52,14 +52,16 @@ GLOBAL_DATUM_INIT(centcomm_store, /datum/store, new())
linked_db = DB
break
/datum/store/proc/PlaceOrder(mob/living/usr, itemID)
/datum/store/proc/PlaceOrder(mob/living/user, itemID)
// Get our item, first.
var/datum/storeitem/item = items[itemID]
if(!item)
return 0
return FALSE
// Try to deduct funds.
if(!charge(usr.mind,item.cost,item))
return 0
if(!charge(user.mind,item.cost,item))
return FALSE
// Give them the item.
item.deliver(usr)
return 1
item.deliver(user)
return TRUE