Implements "forbidden" areas into atmospherics_sanity unit test (#96141)

## About The Pull Request
I originally just wanted to change the logging for this so that it's
more helpful for mappers, but I realized that this test doesn't cover
the case where a mapper mistakenly connects a illegal area into the air
loop, so I implemented that.

I had to remap Catwalk so that the actual server room was isolated from
everything else. I tried to keep everything intact to the best of my
ability but there simply wasn't much room.

Also, I added a new subtype for the supermatter engine's area, and
included an UpdatePaths file for it. Behaviour should be identical
across the board.
## Why It's Good For The Game
So we can be 100% absolutely definitely sure we didn't attach the waste
loop inside the supermatter engine.

## Mold Spore

<img width="400" height="400" alt="image"
src="https://github.com/user-attachments/assets/f231ba77-097d-4365-b467-17580aceae14"
/>
This commit is contained in:
tonty
2026-06-03 16:21:31 -04:00
committed by GitHub
parent 74a161aaaf
commit ddb4b35bc2
13 changed files with 3478 additions and 3633 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+242 -242
View File
@@ -265,10 +265,6 @@
/mob/living/basic/sloth/citrus,
/turf/open/floor/iron,
/area/station/cargo/storage)
"aez" = (
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"aeC" = (
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 1
@@ -3420,13 +3416,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central)
"bhv" = (
/obj/structure/window/reinforced/plasma/spawner/directional/south,
/obj/machinery/power/energy_accumulator/tesla_coil/anchored,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"bhB" = (
/obj/structure/cable,
/obj/machinery/door/airlock/engineering{
@@ -5011,6 +5000,14 @@
/obj/machinery/light/directional/north,
/turf/open/openspace,
/area/station/engineering/supermatter/room)
"bMk" = (
/obj/structure/closet/l3closet/janitor,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/camera/autoname/directional/north,
/obj/item/restraints/legcuffs/beartrap,
/obj/item/restraints/legcuffs/beartrap,
/turf/open/floor/iron,
/area/station/service/janitor)
"bMl" = (
/obj/effect/turf_decal/sand/plating,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -5536,10 +5533,6 @@
},
/turf/open/floor/wood/parquet,
/area/station/medical/psychology)
"bWe" = (
/obj/effect/spawner/random/gizmo,
/turf/open/floor/engine,
/area/station/science/explab)
"bWi" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -11431,10 +11424,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/engineering/atmos/upper)
"dYp" = (
/obj/structure/sign/warning/fire,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter)
"dYq" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -12769,17 +12758,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/central/lesser)
"ewL" = (
/obj/machinery/door/airlock/engineering/glass/critical{
heat_proof = 1;
name = "Supermatter Chamber"
},
/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
},
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"ewM" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -13721,6 +13699,10 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
"eOg" = (
/obj/machinery/gizmo/toggle/tucker_tubes,
/turf/open/floor/iron/white,
/area/station/science/explab)
"eOn" = (
/obj/effect/landmark/atmospheric_sanity/ignore_area,
/turf/closed/wall/r_wall,
@@ -14234,6 +14216,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/medical/exam_room)
"eYC" = (
/obj/machinery/door/airlock/engineering/glass/critical{
heat_proof = 1;
name = "Supermatter Chamber"
},
/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"eYF" = (
/obj/structure/railing/corner{
dir = 8
@@ -15953,6 +15946,11 @@
/obj/machinery/status_display/evac/directional/south,
/turf/open/floor/iron,
/area/station/hallway/primary/central)
"fEP" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/obj/machinery/meter,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter/engine)
"fEQ" = (
/obj/structure/table/wood,
/obj/effect/spawner/random/maintenance/three,
@@ -17085,10 +17083,6 @@
/obj/item/pickaxe,
/turf/open/floor/plating,
/area/station/maintenance/department/medical)
"fXt" = (
/obj/effect/spawner/structure/window/reinforced/plasma,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"fXC" = (
/obj/machinery/door/airlock/maintenance_hatch,
/obj/effect/mapping_helpers/airlock/access/any/service/general,
@@ -17261,6 +17255,10 @@
/obj/structure/railing/corner,
/turf/open/floor/iron/white,
/area/station/science/research)
"gar" = (
/obj/machinery/air_sensor/engine_chamber,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"gas" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible,
/obj/effect/turf_decal/stripes{
@@ -17500,6 +17498,13 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron,
/area/station/engineering/lobby)
"gev" = (
/obj/structure/window/reinforced/plasma/spawner/directional/south,
/obj/machinery/power/energy_accumulator/grounding_rod/anchored,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"gey" = (
/obj/machinery/disposal/bin,
/obj/machinery/light_switch/directional/east,
@@ -18098,10 +18103,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/wood,
/area/station/service/lawoffice)
"gqN" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter)
"gqO" = (
/obj/item/radio/intercom/directional/west,
/turf/open/floor/glass/reinforced,
@@ -18272,6 +18273,10 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white/textured_large,
/area/station/science/xenobiology)
"gtF" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"gtK" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -19660,6 +19665,10 @@
/obj/effect/turf_decal/stripes,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
"gRL" = (
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"gRO" = (
/obj/machinery/firealarm/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -20359,6 +20368,10 @@
dir = 1
},
/area/station/engineering/atmos)
"hdh" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter/engine)
"hdq" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -20403,6 +20416,12 @@
/obj/structure/sign/poster/contraband/random/directional/south,
/turf/open/floor/iron/grimy,
/area/station/maintenance/central/lesser)
"hed" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"hef" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -21030,17 +21049,6 @@
/obj/effect/spawner/random/structure/tank_holder,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
"hoM" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"hoQ" = (
/obj/machinery/light/small/directional/north,
/obj/machinery/atmospherics/components/binary/valve/digital/on{
dir = 4
},
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"hoX" = (
/obj/effect/turf_decal/tile/brown/half/contrasted,
/turf/open/floor/iron,
@@ -21696,6 +21704,9 @@
dir = 1
},
/area/station/service/chapel)
"hBf" = (
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"hBi" = (
/obj/structure/reagent_dispensers/watertank,
/obj/effect/turf_decal/tile/yellow/half/contrasted{
@@ -23342,17 +23353,6 @@
/obj/item/grown/bananapeel,
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
"iee" = (
/obj/machinery/bouldertech/refinery/smelter{
dir = 8
},
/obj/machinery/conveyor{
dir = 6;
id = "brm"
},
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
/area/station/cargo/miningoffice)
"ief" = (
/obj/machinery/airalarm/directional/west,
/obj/machinery/portable_atmospherics/canister/oxygen,
@@ -25511,13 +25511,6 @@
/obj/structure/falsewall,
/turf/open/floor/plating,
/area/station/commons/storage/art)
"iTU" = (
/obj/structure/window/reinforced/plasma/spawner/directional/north,
/obj/machinery/power/energy_accumulator/grounding_rod/anchored,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"iTW" = (
/obj/machinery/door/airlock/public/glass{
name = "Locker Room"
@@ -26021,6 +26014,10 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron/freezer,
/area/station/security/prison/shower)
"jeE" = (
/obj/structure/sign/warning/fire,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter/engine)
"jeL" = (
/obj/machinery/suit_storage_unit/standard_unit,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -26451,6 +26448,13 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/hallway/primary/central)
"jlq" = (
/obj/structure/window/reinforced/plasma/spawner/directional/south,
/obj/machinery/power/energy_accumulator/tesla_coil/anchored,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"jlw" = (
/obj/structure/window/reinforced/spawner/directional/north,
/obj/machinery/vending/coffee,
@@ -26725,6 +26729,17 @@
/obj/item/food/sandwich/philly_cheesesteak,
/turf/open/floor/carpet/red,
/area/station/command/heads_quarters/hos)
"jqe" = (
/obj/machinery/bouldertech/refinery{
dir = 8
},
/obj/machinery/conveyor{
dir = 4;
id = "brm"
},
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
/area/station/cargo/miningoffice)
"jqf" = (
/obj/machinery/door/firedoor/border_only{
dir = 4
@@ -29250,11 +29265,6 @@
},
/turf/open/floor/iron/dark/corner,
/area/station/engineering/atmos/project)
"kfZ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/obj/machinery/meter,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter)
"kgb" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/tile/yellow/fourcorners,
@@ -29292,6 +29302,14 @@
},
/turf/open/floor/iron/kitchen,
/area/station/service/kitchen)
"kgH" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "soup";
name = "Radiation Chamber Shutters"
},
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"kgO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/textured_large,
@@ -29880,14 +29898,6 @@
/obj/structure/broken_flooring/pile,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
"kpe" = (
/obj/structure/closet/l3closet/janitor,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/camera/autoname/directional/north,
/obj/item/restraints/legcuffs/beartrap,
/obj/item/restraints/legcuffs/beartrap,
/turf/open/floor/iron,
/area/station/service/janitor)
"kpj" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -29956,6 +29966,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/station/medical/morgue)
"kpL" = (
/obj/effect/spawner/structure/window/reinforced/plasma,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"kpP" = (
/obj/machinery/door/airlock/command{
id_tag = "cmoshower";
@@ -31112,6 +31126,12 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
"kJM" = (
/obj/machinery/camera/autoname/directional/west{
network = list("ss13","engine")
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"kJN" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -32390,10 +32410,6 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
"lfN" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter)
"lgh" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
@@ -33020,6 +33036,18 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/engine,
/area/station/medical/chemistry)
"lsU" = (
/obj/machinery/airalarm/directional/south,
/obj/effect/mapping_helpers/airalarm/engine_access,
/obj/machinery/atmospherics/components/binary/valve/digital/on{
dir = 4
},
/obj/effect/mapping_helpers/airalarm/link{
chamber_id = "engine"
},
/obj/effect/mapping_helpers/airalarm/tlv_no_checks,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"lta" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
@@ -38253,13 +38281,6 @@
/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
"neE" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "soup";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"neT" = (
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating/reinforced/airless,
@@ -38366,18 +38387,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
"ngn" = (
/obj/machinery/airalarm/directional/south,
/obj/effect/mapping_helpers/airalarm/engine_access,
/obj/machinery/atmospherics/components/binary/valve/digital/on{
dir = 4
},
/obj/effect/mapping_helpers/airalarm/link{
chamber_id = "engine"
},
/obj/effect/mapping_helpers/airalarm/tlv_no_checks,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"ngp" = (
/obj/effect/turf_decal/siding/white{
dir = 5
@@ -38938,6 +38947,11 @@
/obj/item/radio/intercom/directional/east,
/turf/open/floor/iron/dark,
/area/station/medical/chemistry/minisat)
"nsm" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/obj/machinery/meter,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter/engine)
"nso" = (
/obj/effect/landmark/event_spawn,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -38953,6 +38967,9 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
"nsD" = (
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter/engine)
"nsI" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -39002,17 +39019,6 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/carpet,
/area/station/commons/dorms)
"nuu" = (
/obj/machinery/bouldertech/refinery{
dir = 8
},
/obj/machinery/conveyor{
dir = 4;
id = "brm"
},
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
/area/station/cargo/miningoffice)
"nuC" = (
/obj/effect/turf_decal/tile/brown/anticorner/contrasted,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -42070,11 +42076,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/solars/port/fore)
"oEf" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/obj/machinery/meter,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter)
"oEo" = (
/obj/machinery/light/directional/north,
/obj/item/assembly/mousetrap/armed,
@@ -46553,12 +46554,6 @@
/obj/machinery/light/floor,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
"qaZ" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"qbd" = (
/obj/effect/turf_decal/siding/purple{
dir = 5
@@ -47036,6 +47031,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/engineering/break_room)
"qjU" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "soup";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"qjW" = (
/obj/effect/spawner/random/vending/colavend,
/obj/effect/turf_decal/siding/brown{
@@ -51045,10 +51047,6 @@
},
/turf/open/floor/engine/n2o,
/area/station/engineering/atmos)
"rBr" = (
/obj/machinery/air_sensor/engine_chamber,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"rBt" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -51306,6 +51304,17 @@
/obj/effect/landmark/start/chemist,
/turf/open/floor/iron/white,
/area/station/medical/chemistry)
"rFN" = (
/obj/machinery/bouldertech/refinery/smelter{
dir = 8
},
/obj/machinery/conveyor{
dir = 6;
id = "brm"
},
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
/area/station/cargo/miningoffice)
"rFV" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -51335,13 +51344,6 @@
},
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
"rGq" = (
/obj/structure/window/reinforced/plasma/spawner/directional/north,
/obj/machinery/power/energy_accumulator/tesla_coil/anchored,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"rGr" = (
/obj/effect/baseturf_helper/reinforced_plating,
/turf/open/floor/glass/reinforced/plasma,
@@ -54975,6 +54977,10 @@
},
/turf/open/floor/iron,
/area/station/engineering/main)
"sOr" = (
/obj/effect/spawner/random/gizmo,
/turf/open/floor/engine,
/area/station/science/explab)
"sOA" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -54982,13 +54988,6 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron,
/area/station/hallway/primary/central)
"sOG" = (
/obj/structure/window/reinforced/plasma/spawner/directional/south,
/obj/machinery/power/energy_accumulator/grounding_rod/anchored,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"sPi" = (
/obj/structure/closet/firecloset,
/obj/effect/landmark/start/hangover,
@@ -56843,14 +56842,6 @@
},
/turf/open/floor/iron/dark,
/area/station/science/ordnance)
"twf" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "soup";
name = "Radiation Chamber Shutters"
},
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"tww" = (
/obj/structure/cable,
/turf/open/floor/catwalk_floor/iron_dark,
@@ -59487,6 +59478,13 @@
/obj/effect/mapping_helpers/airlock/access/any/science/maintenance,
/turf/open/floor/plating,
/area/station/commons/vacant_room/commissary)
"uqA" = (
/obj/structure/window/reinforced/plasma/spawner/directional/north,
/obj/machinery/power/energy_accumulator/grounding_rod/anchored,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"uqI" = (
/obj/structure/railing{
dir = 1
@@ -61292,12 +61290,6 @@
},
/turf/open/space/basic,
/area/space)
"uXw" = (
/obj/machinery/camera/autoname/directional/west{
network = list("ss13","engine")
},
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"uXD" = (
/turf/closed/wall,
/area/station/hallway/secondary/entry)
@@ -61387,6 +61379,10 @@
},
/turf/open/floor/iron,
/area/station/security/office)
"uYt" = (
/obj/machinery/power/supermatter_crystal/engine,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"uYG" = (
/turf/closed/wall/r_wall,
/area/station/maintenance/aft/upper)
@@ -63232,6 +63228,13 @@
},
/turf/open/floor/wood/tile,
/area/station/security/courtroom)
"vHm" = (
/obj/structure/window/reinforced/plasma/spawner/directional/north,
/obj/machinery/power/energy_accumulator/tesla_coil/anchored,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"vHA" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -63896,9 +63899,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/service/janitor)
"vUh" = (
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"vUj" = (
/obj/structure/cable,
/obj/machinery/power/solar{
@@ -64617,10 +64617,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/security/prison/safe)
"wid" = (
/obj/machinery/gizmo/toggle/tucker_tubes,
/turf/open/floor/iron/white,
/area/station/science/explab)
"wie" = (
/obj/structure/lattice/catwalk,
/obj/structure/railing,
@@ -64947,10 +64943,6 @@
},
/turf/open/floor/wood/parquet,
/area/station/medical/psychology)
"wnX" = (
/obj/machinery/power/supermatter_crystal/engine,
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"wnY" = (
/turf/open/floor/carpet/executive,
/area/station/command/corporate_showroom)
@@ -66761,6 +66753,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/carpet,
/area/station/service/theater)
"wSs" = (
/obj/machinery/light/small/directional/north,
/obj/machinery/atmospherics/components/binary/valve/digital/on{
dir = 4
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"wTc" = (
/obj/machinery/meter/monitored/distro_loop,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible,
@@ -68542,6 +68541,10 @@
/obj/effect/mapping_helpers/airlock/access/any/admin/general,
/turf/open/floor/iron/dark/smooth_large,
/area/station/command/corporate_dock)
"xxz" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter/engine)
"xxH" = (
/obj/machinery/firealarm/directional/south,
/obj/effect/turf_decal/stripes/line{
@@ -69115,6 +69118,17 @@
/obj/structure/railing,
/turf/open/floor/iron,
/area/station/engineering/atmos)
"xHe" = (
/obj/machinery/door/airlock/engineering/glass/critical{
heat_proof = 1;
name = "Supermatter Chamber"
},
/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/engine)
"xHf" = (
/obj/effect/landmark/firealarm_sanity,
/turf/open/openspace,
@@ -69186,9 +69200,6 @@
/obj/structure/window/fulltile,
/turf/open/misc/asteroid,
/area/station/asteroid)
"xIV" = (
/turf/closed/wall/r_wall,
/area/station/engineering/supermatter)
"xJd" = (
/obj/effect/spawner/random/decoration/glowstick,
/obj/effect/mapping_helpers/broken_floor,
@@ -70190,17 +70201,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/chemistry/minisat)
"ycf" = (
/obj/machinery/door/airlock/engineering/glass/critical{
heat_proof = 1;
name = "Supermatter Chamber"
},
/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
},
/turf/open/floor/engine,
/area/station/engineering/supermatter)
"ycs" = (
/obj/effect/spawner/random/engineering/tank,
/obj/effect/decal/cleanable/cobweb,
@@ -113670,11 +113670,11 @@ oyV
axQ
yho
yho
dYp
gqN
ycf
lfN
xIV
jeE
hdh
xHe
xxz
nsD
khO
ueA
xwD
@@ -113927,11 +113927,11 @@ gea
xaP
dhn
jjO
xIV
hoQ
vUh
ngn
xIV
nsD
wSs
hBf
lsU
nsD
khO
njX
xwD
@@ -114182,15 +114182,15 @@ lwv
nPW
oyV
xaP
xIV
xIV
gqN
oEf
ewL
kfZ
lfN
xIV
xIV
nsD
nsD
hdh
fEP
eYC
nsm
xxz
nsD
nsD
xwD
cvL
qqB
@@ -114439,15 +114439,15 @@ cUD
nPW
oyV
xaP
neE
uXw
bhv
qaZ
rBr
hoM
rGq
vUh
neE
qjU
kJM
jlq
hed
gar
gtF
vHm
hBf
qjU
xwD
cvL
psF
@@ -114696,15 +114696,15 @@ pbD
nPW
oyV
kiT
twf
aez
sOG
qaZ
wnX
hoM
iTU
aez
twf
kgH
gRL
gev
hed
uYt
gtF
uqA
gRL
kgH
xwD
cvL
jWI
@@ -114953,15 +114953,15 @@ biG
nPW
oyV
xaP
neE
vUh
bhv
qaZ
vUh
hoM
rGq
vUh
neE
qjU
hBf
jlq
hed
hBf
gtF
vHm
hBf
qjU
xwD
cvL
gRG
@@ -115210,15 +115210,15 @@ lCu
pxu
oyV
xaP
xIV
xIV
xIV
xIV
fXt
xIV
xIV
xIV
xIV
nsD
nsD
nsD
nsD
kpL
nsD
nsD
nsD
nsD
rLz
uei
nNN
@@ -149341,7 +149341,7 @@ lEj
lEj
pEH
izF
nuu
jqe
kVS
qXY
wds
@@ -149855,7 +149855,7 @@ dOG
lEj
pEH
mRE
iee
rFN
bPu
uKu
iaN
@@ -160425,7 +160425,7 @@ fZv
fZv
vbY
jGB
kpe
bMk
slM
feu
xWd
@@ -176326,7 +176326,7 @@ hOa
ukx
nas
gKt
wid
eOg
rHF
mHf
xfK
@@ -177608,7 +177608,7 @@ raz
occ
fMz
obA
bWe
sOr
mSY
ddZ
nXL
+5 -1
View File
@@ -82,9 +82,13 @@
icon_state = "engi_lobby"
/area/station/engineering/supermatter
name = "\improper Supermatter Engine"
name = "\improper Place Somewhere Around the Supermatter" // don't use this type
icon_state = "engine_sm"
area_flags = BLOBS_ALLOWED | CULT_PERMITTED
/area/station/engineering/supermatter/engine
name = "\improper Supermatter Engine"
icon_state = "engine_sm"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/station/engineering/supermatter/Initialize(mapload)
+3
View File
@@ -16,6 +16,9 @@
)
airlock_wires = /datum/wires/airlock/engineering
/area/station/tcommsat/maints
name = "\improper Telecomms Maintenance Room"
/area/station/tcommsat/computer
name = "\improper Telecomms Control Room"
icon_state = "tcomsatcomp"
@@ -21,12 +21,19 @@
icon_state = "atmos_sanity_start"
/**
* Marks an area as a goal for atmospheric connectivity; ignored if the map contains the mark all station areas landmark!
* Marks an area as a goal for atmospheric connectivity; ignored if the map contains the mark all station areas landmark
*/
/obj/effect/landmark/atmospheric_sanity/goal_area
name = "Atmospheric Sanity Goal"
icon_state = "atmos_sanity_goal"
/**
* Marks an area as forbidden from atmospheric connectivity; ignored if the map contains the "mark all station areas" landmark
*/
/obj/effect/landmark/atmospheric_sanity/forbidden_area
name = "Atmospheric Sanity Forbidden"
icon_state = "atmos_sanity_forbidden"
/**
* Marks an area as ignored for purposes of default station connectivity.
*/
+73 -44
View File
@@ -1,51 +1,58 @@
/**
* This test checks that all expected areas are connected to a starting area
* This test checks that all areas are connected to their distribution loops
*/
/datum/unit_test/atmospherics_sanity
// we iterate over all atmospherics devices on the starting networks
priority = TEST_LONGER
priority = TEST_LONGER // we iterate over all atmospherics devices on the starting networks
/// List of areas remaining to be checked
var/list/area/remaining_areas
/// List of areas to start crawling from
var/list/area/starting_areas
/// List of areas already crawled, to prevent needless crawling
var/list/area/crawled_areas
/// List of areas to start crawling from
var/list/area/starting_areas
/// List of areas remaining to be checked
var/list/area/remaining_areas
/// List of areas that should absolutely not be encountered
var/list/area/forbidden_areas
/// We run this test in parallel, so we need to keep track of how many crawls are running
/// This is to prevent stack overflow mostly
var/crawls = 0
/datum/unit_test/atmospherics_sanity/proc/get_areas()
/datum/unit_test/atmospherics_sanity/proc/prepare_crawl()
starting_areas = list()
forbidden_areas = list()
crawled_areas = list()
remaining_areas = list()
for(var/obj/effect/landmark/atmospheric_sanity/start_area/start_marker in GLOB.landmarks_list)
var/area/starting_area = get_area(start_marker)
if(starting_area in starting_areas)
TEST_FAIL("Duplicate atmospherics sanity starting marker in '[starting_area]'([starting_area.type]) at ([start_marker.x], [start_marker.y], [start_marker.z])")
continue
if(starting_area.outdoors)
TEST_FAIL("Atmospherics sanity starting marker in outdoors area '[starting_area]'([starting_area.type]) at ([start_marker.x], [start_marker.y], [start_marker.z])")
TEST_FAIL("Atmospherics sanity starting marker cannot be in outdoors area '[starting_area]'([starting_area.type]) at ([start_marker.x], [start_marker.y], [start_marker.z])")
continue
starting_areas |= get_area(start_marker)
// If there are no starting areas, default to these
var/static/list/area/default_starting_areas = list(
/area/station/ai/satellite/chamber,
/area/station/engineering/atmos,
/area/station/medical/virology,
/area/station/science/xenobiology,
)
if(!length(starting_areas))
log_test("No starting areas found, defaulting...")
var/list/area/default_starting_areas = list(
// These areas have their own air supply
/area/station/ai/satellite/chamber,
/area/station/medical/virology,
/area/station/science/xenobiology,
// Otherwise, this should connect to the rest of the station
/area/station/engineering/atmos,
)
for(var/area/starting_area as anything in default_starting_areas)
var/area/station_area = GLOB.areas_by_type[starting_area]
if(!isnull(station_area))
starting_areas += station_area
remaining_areas = list()
var/atom/mark_all_station_areas_marker = locate(/obj/effect/landmark/atmospheric_sanity/mark_all_station_areas_as_goal) in GLOB.landmarks_list
if(!isnull(mark_all_station_areas_marker))
@@ -61,58 +68,76 @@
if(goal_area.outdoors)
TEST_FAIL("Atmospherics sanity goal marker in outdoors area '[goal_area]'([goal_area.type]) at ([goal_marker.x], [goal_marker.y], [goal_marker.z])")
continue
if(istype(goal_area, /area/space))
TEST_FAIL("Atmospherics sanity goal marker in space at ([goal_marker.x], [goal_marker.y], [goal_marker.z])")
continue
remaining_areas |= get_area(goal_marker)
if(!length(remaining_areas))
log_test("No goal areas found, defaulting...")
mark_station_areas_as_goals()
else
for(var/obj/effect/landmark/atmospheric_sanity/forbidden_area/forbidden_marker in GLOB.landmarks_list)
var/area/forbidden_area = get_area(forbidden_marker)
if(forbidden_area in remaining_areas)
var/obj/effect/landmark/atmospheric_sanity/goal_area/goal_marker = locate() in forbidden_area
TEST_FAIL("Area '[forbidden_area]'([forbidden_area.type]) \
has a goal marker at ([goal_marker.x], [goal_marker.y], [goal_marker.z]) \
and a forbidden marker at ([forbidden_marker.x], ([forbidden_marker.y], ([forbidden_marker.z])")
continue
if(forbidden_area in forbidden_areas)
TEST_FAIL("Area '[forbidden_area]'([forbidden_area.type]) is so forbidden it has a duplicate marker at at ([forbidden_marker.x], ([forbidden_marker.y], ([forbidden_marker.z])")
continue
forbidden_areas |= forbidden_area
for(var/obj/effect/landmark/atmospheric_sanity/ignore_area/ignore_marker in GLOB.landmarks_list)
remaining_areas -= get_area(ignore_marker)
/datum/unit_test/atmospherics_sanity/proc/mark_station_areas_as_goals()
// We don't want to check these areas
var/static/list/area/ignored_types = list(
// We don't care if we find these
var/list/area/ignored_types = list(
/area/station/asteroid,
/area/station/engineering/supermatter,
/area/station/holodeck,
/area/station/maintenance,
/area/station/science/ordnance/bomb,
/area/station/solars,
// FIXME, burnchamber is usually mapped with a vent in the buffer airlock
// which causes us to leak into freezer. These two should be forbidden
/area/station/science/ordnance/burnchamber,
/area/station/science/ordnance/freezerchamber,
/area/station/solars,
/area/station/tcommsat/server,
)
for(var/area/ignored as anything in ignored_types)
ignored_types |= subtypesof(ignored)
for(var/area/station/station_area_type as anything in subtypesof(/area/station) - ignored_types)
// We should never find these
var/list/area/forbidden_types = list(
/area/station/engineering/supermatter/engine,
/area/station/tcommsat/server,
)
for(var/area/forbidden as anything in forbidden_types)
forbidden_types |= subtypesof(forbidden)
for(var/area/station/station_area_type as anything in subtypesof(/area/station) - ignored_types - forbidden_types)
var/area/station_area = GLOB.areas_by_type[station_area_type]
if(!isnull(station_area))
remaining_areas += station_area
/datum/unit_test/atmospherics_sanity/Run()
get_areas()
crawl_areas()
UNTIL(crawls == 0)
for(var/area/missed as anything in remaining_areas)
if(missed.has_contained_turfs())
var/turf/first_turf = missed.get_zlevel_turf_lists()[1][1]
TEST_FAIL("Disconnected Area '[missed]'([missed.type]) at ([first_turf.x], [first_turf.y], [first_turf.z])")
else
TEST_NOTICE(src, "Disconnected Area '[missed]'([missed.type]) with no turfs?")
for(var/area/station/forbidden_area_type as anything in forbidden_types)
var/area/forbidden_area = GLOB.areas_by_type[forbidden_area_type]
if(!isnull(forbidden_area))
forbidden_areas += forbidden_area
/// Iterates over starting_areas and ensures that all goal areas are connected to atleast one start
/datum/unit_test/atmospherics_sanity/proc/crawl_areas()
crawled_areas = list()
/datum/unit_test/atmospherics_sanity/Run()
prepare_crawl()
for(var/area/start_area as anything in starting_areas)
ASYNC
crawl_area(start_area)
starting_areas = null
UNTIL(crawls == 0)
for(var/area/missed as anything in remaining_areas)
var/turf/first_turf = missed.get_zlevel_turf_lists()[1][1]
TEST_FAIL("Goal area '[missed]'([missed.type]) is isolated from any distribution loops ([first_turf.x], [first_turf.y], [first_turf.z])")
/// Crawls through an area, iterating over all vents/scrubbers and their connected pipelines
/datum/unit_test/atmospherics_sanity/proc/crawl_area(area/the_area)
@@ -126,12 +151,16 @@
for(var/obj/machinery/atmospherics/components/component as anything in (the_area.air_vents + the_area.air_scrubbers))
for(var/datum/pipeline/parent as anything in component.parents)
if(isnull(parent))
TEST_NOTICE(src, "Found a null parent for [component] in [the_area] at ([component.x], [component.y], [component.z])")
TEST_NOTICE(src, "[component] at ([component.x], [component.y], [component.z]) isn't attached to a pipenet, is this on purpose?")
continue
pipelines |= parent
for(var/datum/pipeline/pipeline as anything in pipelines)
crawl_pipeline(pipeline)
if((the_area in forbidden_areas) && length(pipelines)) // we don't care if this area is forbidden if it isn't actually connected to the air
var/turf/first_turf = the_area.get_zlevel_turf_lists()[1][1]
TEST_FAIL("Forbidden area '[the_area]'([the_area.type]) is connected to a distribution loop at ([first_turf.x], [first_turf.y], [first_turf.z])")
else
for(var/datum/pipeline/pipeline as anything in pipelines)
crawl_pipeline(pipeline)
crawls -= 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 23 KiB

@@ -0,0 +1 @@
/area/station/engineering/supermatter : /area/station/engineering/supermatter/engine{@OLD}