diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 1c202efaf8d..56441fb3b1e 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -7824,13 +7824,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/cafeteria,
/area/security/prison)
-"bhD" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"bhH" = (
/obj/machinery/light/small/directional/north,
/obj/effect/turf_decal/tile/blue{
@@ -29016,17 +29009,6 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/engineering/main)
-"dvn" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/iron,
-/area/engineering/supermatter/room)
"dvF" = (
/obj/effect/decal/cleanable/oil,
/obj/effect/turf_decal/tile/neutral{
@@ -41444,20 +41426,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/service/library/abandoned)
-"fls" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/engineering/supermatter/room)
"flu" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -41594,6 +41562,15 @@
},
/turf/open/floor/iron/dark,
/area/science/mixing/chamber)
+"fnw" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/engineering/supermatter/room)
"fnx" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral{
@@ -42441,6 +42418,15 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/hallway/primary/central/aft)
+"fzP" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/meter,
+/turf/open/floor/iron,
+/area/engineering/supermatter/room)
"fAd" = (
/obj/machinery/light/directional/north,
/obj/item/kirbyplants/random,
@@ -42507,17 +42493,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/service/kitchen)
-"fAN" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow,
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Atmos to Loop"
- },
-/turf/open/floor/iron,
-/area/engineering/supermatter/room)
"fAX" = (
/turf/closed/wall,
/area/commons/locker)
@@ -53309,15 +53284,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/dark,
/area/command/bridge)
-"iDs" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/machinery/meter,
-/turf/open/floor/iron,
-/area/engineering/supermatter/room)
"iDt" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -53983,6 +53949,17 @@
},
/turf/open/floor/iron/white,
/area/science/misc_lab)
+"iNQ" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Atmos to Loop"
+ },
+/turf/open/floor/iron,
+/area/engineering/supermatter/room)
"iNS" = (
/obj/structure/chair/office{
dir = 4
@@ -63560,15 +63537,6 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/command)
-"lpp" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron,
-/area/engineering/supermatter/room)
"lpN" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/disposalpipe/segment,
@@ -63722,15 +63690,6 @@
},
/turf/open/floor/iron/dark,
/area/command/heads_quarters/hos)
-"lsa" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron,
-/area/engineering/supermatter/room)
"lsd" = (
/obj/structure/table/reinforced,
/obj/item/storage/box/lights/mixed,
@@ -75445,6 +75404,14 @@
},
/turf/open/floor/iron/dark,
/area/engineering/atmos)
+"ooN" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"ooT" = (
/obj/effect/spawner/randomsnackvend,
/obj/effect/turf_decal/tile/red{
@@ -89886,6 +89853,17 @@
/obj/item/crowbar,
/turf/open/floor/plating,
/area/engineering/supermatter/room)
+"sbS" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/iron,
+/area/engineering/supermatter/room)
"sch" = (
/obj/structure/chair/stool/bar/directional/east,
/obj/structure/sign/poster/random{
@@ -102217,6 +102195,20 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
/area/engineering/main)
+"vlN" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/engineering/supermatter/room)
"vlO" = (
/obj/machinery/suit_storage_unit/atmos,
/obj/effect/decal/cleanable/dirt,
@@ -102511,6 +102503,15 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/cargo/storage)
+"vqO" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/engineering/supermatter/room)
"vqQ" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment,
@@ -132619,11 +132620,11 @@ wZs
oLh
oLh
oLh
-fAN
-lsa
-lpp
-lpp
-iDs
+iNQ
+fnw
+vqO
+vqO
+fzP
wqK
vXq
wWd
@@ -132876,7 +132877,7 @@ fWC
otP
cpr
hfi
-dvn
+sbS
lAe
gep
vIw
@@ -133133,7 +133134,7 @@ fWC
otP
vNO
vzm
-fls
+vlN
idx
qzf
tKt
@@ -139848,7 +139849,7 @@ joJ
tCh
sKO
rKf
-bhD
+ooN
mLZ
dQV
qhk
diff --git a/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm b/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm
index 62514a2bcff..cc847af9548 100644
--- a/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm
@@ -7535,6 +7535,7 @@
dir = 4
},
/obj/effect/turf_decal/tile/purple,
+/obj/machinery/module_duplicator,
/turf/open/floor/iron/white,
/area/science/misc_lab)
"bhH" = (
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index d482d62f6be..cb92e862e7b 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -3031,9 +3031,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/solars/starboard/fore)
-"amy" = (
-/turf/closed/wall,
-/area/commons/vacant_room/office)
"amA" = (
/turf/open/floor/plating,
/area/maintenance/solars/port/fore)
@@ -9383,6 +9380,11 @@
/obj/structure/plaque/static_plaque/golden/commission/icebox,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
+"bdf" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"bdg" = (
/obj/structure/cable,
/turf/open/floor/circuit,
@@ -10022,24 +10024,6 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/lobby)
-"bha" = (
-/obj/structure/table/wood,
-/obj/item/taperecorder{
- pixel_x = 9;
- pixel_y = 9
- },
-/obj/item/folder/blue{
- pixel_x = -8;
- pixel_y = -2
- },
-/obj/item/pen/blue{
- pixel_y = -2
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"bhc" = (
/obj/structure/chair,
/obj/effect/turf_decal/stripes/line{
@@ -11633,6 +11617,11 @@
/obj/machinery/door/poddoor/preopen,
/turf/open/floor/plating,
/area/medical/pharmacy)
+"bpv" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"bpE" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -17863,6 +17852,10 @@
"cfw" = (
/turf/closed/wall/r_wall,
/area/maintenance/solars/port/aft)
+"cfI" = (
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"cfV" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -18035,10 +18028,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
-"cjt" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/closed/wall/r_wall,
-/area/engineering/supermatter)
"cjD" = (
/turf/closed/wall/r_wall,
/area/maintenance/solars/starboard/aft)
@@ -18281,13 +18270,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/maintenance/solars/starboard/aft)
-"cnC" = (
-/obj/structure/chair/office{
- dir = 8
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/carpet/red,
-/area/commons/vacant_room/office)
"cnD" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -20345,6 +20327,13 @@
/mob/living/simple_animal/mouse/white,
/turf/open/floor/iron,
/area/maintenance/starboard/fore)
+"cKo" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"cKD" = (
/obj/machinery/camera{
c_tag = "Engineering Foyer";
@@ -21436,6 +21425,9 @@
/obj/item/storage/box,
/turf/open/floor/iron,
/area/engineering/atmos)
+"dob" = (
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"dov" = (
/turf/open/floor/iron/white,
/area/science/misc_lab)
@@ -21903,13 +21895,6 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron/dark,
/area/science/nanite)
-"dFm" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"dFo" = (
/obj/effect/turf_decal/trimline/blue/corner{
dir = 8
@@ -22781,13 +22766,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/primary/aft)
-"edG" = (
-/obj/structure/closet/crate/bin,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"edL" = (
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron/dark,
@@ -22831,12 +22809,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron,
/area/science/misc_lab)
-"efi" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"efr" = (
/obj/structure/flora/ausbushes/brflowers,
/obj/item/shovel,
@@ -22875,6 +22847,12 @@
},
/turf/open/floor/engine/vacuum,
/area/engineering/atmos)
+"ehs" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"ehF" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -22890,16 +22868,6 @@
"eia" = (
/turf/closed/wall/r_wall,
/area/engineering/supermatter/room)
-"eir" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "Cooling Loop to Gas"
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"eiL" = (
/obj/machinery/firealarm/directional/north,
/obj/effect/turf_decal/tile/neutral{
@@ -23147,6 +23115,18 @@
},
/turf/open/floor/iron/dark,
/area/medical/virology)
+"epw" = (
+/obj/structure/table/wood,
+/obj/item/phone{
+ pixel_x = -5;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/food/drinks/britcup{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/turf/open/floor/carpet/red,
+/area/commons/vacant_room/office)
"epI" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -23413,16 +23393,6 @@
},
/turf/open/floor/iron,
/area/science/mixing)
-"exs" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 8;
- name = "Gas to Cooling Loop"
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"exy" = (
/obj/machinery/power/terminal{
dir = 4
@@ -23448,12 +23418,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/maintenance/port)
-"eyq" = (
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/south,
-/obj/machinery/light_switch/directional/west,
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"eyC" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
@@ -23788,10 +23752,6 @@
},
/turf/open/floor/iron,
/area/commons/fitness)
-"eLJ" = (
-/obj/structure/chair/office,
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"eLP" = (
/obj/machinery/light_switch/directional/north,
/turf/open/floor/circuit,
@@ -24382,6 +24342,13 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
+"feX" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"ffa" = (
/obj/structure/tank_holder/oxygen/red,
/turf/open/floor/plating,
@@ -24415,20 +24382,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"fgm" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/item/tank/internals/plasma,
-/obj/structure/cable,
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/plating,
-/area/engineering/supermatter)
"fgs" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -24751,6 +24704,14 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/plating,
/area/engineering/storage/tech)
+"fqA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"fqK" = (
/obj/machinery/air_sensor/atmos/nitrous_tank,
/turf/open/floor/engine/n2o,
@@ -24899,6 +24860,13 @@
},
/turf/closed/wall/r_wall,
/area/engineering/supermatter)
+"fuF" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"fuV" = (
/obj/structure/railing{
dir = 8
@@ -25335,6 +25303,13 @@
/obj/effect/landmark/start/assistant,
/turf/open/floor/wood,
/area/service/library)
+"fKK" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/carpet/red,
+/area/commons/vacant_room/office)
"fKW" = (
/obj/structure/noticeboard/directional/south,
/obj/effect/turf_decal/tile/red,
@@ -25815,18 +25790,6 @@
},
/turf/open/floor/circuit,
/area/ai_monitored/command/nuke_storage)
-"fWp" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/plating,
-/area/engineering/supermatter)
"fWs" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/sign/poster/contraband/random{
@@ -26188,12 +26151,6 @@
},
/turf/open/floor/iron,
/area/engineering/main)
-"ghn" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"ghz" = (
/turf/closed/wall,
/area/engineering/break_room)
@@ -26593,6 +26550,13 @@
},
/turf/open/floor/iron/dark,
/area/science/server)
+"gsp" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"gsx" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -26690,12 +26654,6 @@
},
/turf/open/floor/plating,
/area/security/processing)
-"gvB" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"gvP" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
@@ -27432,11 +27390,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/hallway/primary/central)
-"gRO" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green,
-/turf/open/floor/carpet/red,
-/area/commons/vacant_room/office)
"gRQ" = (
/obj/structure/bed/dogbed/runtime,
/mob/living/simple_animal/pet/cat/runtime,
@@ -28069,6 +28022,10 @@
},
/turf/open/floor/carpet,
/area/commons/dorms)
+"hnR" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/closed/wall/r_wall,
+/area/engineering/supermatter)
"hoJ" = (
/obj/machinery/shower{
dir = 4
@@ -28231,12 +28188,6 @@
},
/turf/open/floor/iron,
/area/engineering/break_room)
-"htO" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"hua" = (
/turf/closed/wall/r_wall,
/area/engineering/supermatter)
@@ -28449,6 +28400,17 @@
},
/turf/closed/wall,
/area/commons/fitness)
+"hAr" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Port";
+ dir = 4;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"hAv" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
@@ -28619,6 +28581,18 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/hallway/primary/central)
+"hDO" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"hDQ" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -28652,6 +28626,16 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/wood,
/area/maintenance/space_hut/cabin)
+"hEI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Cooling Loop to Gas"
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"hFg" = (
/obj/machinery/door/airlock/external{
name = "Port Docking Bay 1";
@@ -29421,13 +29405,6 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plating,
/area/maintenance/aft)
-"icb" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"icd" = (
/obj/machinery/gibber,
/turf/open/floor/iron/showroomfloor,
@@ -29911,16 +29888,6 @@
},
/turf/open/floor/iron,
/area/security/office)
-"itl" = (
-/obj/item/radio/intercom/directional/south,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"itm" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 1
@@ -30046,13 +30013,6 @@
"iwd" = (
/turf/open/floor/carpet,
/area/service/chapel/main)
-"iwf" = (
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"iwH" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -30480,6 +30440,12 @@
/obj/machinery/defibrillator_mount/directional/north,
/turf/open/floor/iron,
/area/medical/medbay/central)
+"iIb" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"iIk" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
@@ -32307,20 +32273,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/science/storage)
-"jMr" = (
-/obj/effect/mapping_helpers/airlock/abandoned,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/door/airlock/grunge{
- name = "Vacant Office A"
- },
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"jMW" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -32507,6 +32459,16 @@
},
/turf/open/floor/iron/cafeteria,
/area/service/kitchen)
+"jSd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Gas to Cooling Loop"
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"jSj" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt,
@@ -32784,6 +32746,9 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"kaJ" = (
+/turf/closed/wall,
+/area/commons/vacant_room/office)
"kaN" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -33149,6 +33114,20 @@
/obj/item/trash/waffles,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"klb" = (
+/obj/effect/mapping_helpers/airlock/abandoned,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/grunge{
+ name = "Vacant Office A"
+ },
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"kld" = (
/obj/structure/sign/warning/securearea{
pixel_y = -32
@@ -33569,6 +33548,13 @@
},
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
+"kwL" = (
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"kxf" = (
/obj/structure/cable,
/mob/living/simple_animal/sloth/paperwork,
@@ -33733,6 +33719,12 @@
/obj/structure/cable,
/turf/open/floor/iron/cafeteria,
/area/service/kitchen)
+"kAu" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"kAE" = (
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/iron,
@@ -34137,6 +34129,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/commons/storage/mining)
+"kNQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"kNU" = (
/obj/machinery/light/small/directional/west,
/obj/structure/closet/emcloset/anchored,
@@ -34333,10 +34332,6 @@
/obj/structure/closet/radiation,
/turf/open/floor/iron,
/area/engineering/main)
-"kUt" = (
-/obj/structure/filingcabinet/chestdrawer,
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"kUv" = (
/obj/structure/chair/stool/directional/north,
/turf/open/floor/plating,
@@ -34399,6 +34394,13 @@
},
/turf/open/floor/iron,
/area/service/hydroponics)
+"kWA" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"kWH" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 8
@@ -34583,6 +34585,18 @@
/obj/structure/closet/cardboard,
/turf/open/floor/iron,
/area/maintenance/port/fore)
+"lcR" = (
+/obj/structure/table/wood,
+/obj/item/pen/red{
+ pixel_x = 6;
+ pixel_y = 11
+ },
+/obj/item/folder/red{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/turf/open/floor/carpet/red,
+/area/commons/vacant_room/office)
"lcU" = (
/obj/structure/chair{
dir = 1
@@ -35577,11 +35591,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/engineering/atmos)
-"lEy" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp,
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"lEN" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -35955,16 +35964,6 @@
},
/turf/open/floor/iron,
/area/cargo/sorting)
-"lQb" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"lQm" = (
/obj/machinery/camera{
c_tag = "Nanite Lab";
@@ -36050,6 +36049,18 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/command/heads_quarters/hos)
+"lRt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/engineering/supermatter)
"lRB" = (
/obj/machinery/suit_storage_unit/standard_unit,
/obj/machinery/light/directional/south,
@@ -36087,6 +36098,13 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron,
/area/command/gateway)
+"lSs" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"lSx" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -36901,13 +36919,6 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
-"mnb" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"mnd" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -37001,13 +37012,6 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron/dark,
/area/engineering/supermatter/room)
-"mpI" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"mpJ" = (
/obj/effect/turf_decal/trimline/blue/filled/corner,
/obj/effect/turf_decal/trimline/blue/filled/corner{
@@ -37211,6 +37215,17 @@
},
/turf/open/floor/iron/cafeteria,
/area/service/kitchen)
+"myq" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/engineering/supermatter)
"myw" = (
/obj/machinery/door/airlock/command/glass{
name = "Research Director";
@@ -37529,15 +37544,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/service/bar)
-"mFX" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/meter,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"mGa" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -37813,10 +37819,6 @@
},
/turf/open/floor/iron/grimy,
/area/service/chapel/office)
-"mKG" = (
-/obj/item/kirbyplants/random,
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"mKO" = (
/obj/machinery/light/small/directional/north,
/obj/structure/chair/stool/directional/north,
@@ -38647,18 +38649,6 @@
},
/turf/open/floor/iron,
/area/engineering/main)
-"nkr" = (
-/obj/structure/table/wood,
-/obj/item/phone{
- pixel_x = -5;
- pixel_y = 6
- },
-/obj/item/reagent_containers/food/drinks/britcup{
- pixel_x = 8;
- pixel_y = 8
- },
-/turf/open/floor/carpet/red,
-/area/commons/vacant_room/office)
"nkz" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 8
@@ -39093,6 +39083,9 @@
"nuf" = (
/turf/closed/wall,
/area/command/meeting_room)
+"nuo" = (
+/turf/open/floor/carpet/red,
+/area/commons/vacant_room/office)
"nup" = (
/obj/machinery/airalarm/directional/north,
/turf/open/floor/iron,
@@ -39136,6 +39129,10 @@
/obj/item/paicard,
/turf/open/floor/iron,
/area/commons/dorms)
+"nwG" = (
+/obj/structure/chair/office,
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"nwJ" = (
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
@@ -39210,9 +39207,10 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/hallway/primary/central)
-"nyP" = (
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
+"nyE" = (
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"nyY" = (
/obj/machinery/computer/crew,
/obj/effect/turf_decal/tile/green,
@@ -39509,6 +39507,21 @@
},
/turf/open/floor/plating,
/area/command/meeting_room)
+"nGH" = (
+/obj/machinery/camera{
+ c_tag = "Vacant Office";
+ dir = 4
+ },
+/obj/machinery/photocopier,
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
+"nHm" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"nHv" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -39564,15 +39577,6 @@
/obj/machinery/lapvend,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
-"nJb" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/portable_atmospherics/canister,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark,
-/area/engineering/supermatter/room)
"nJf" = (
/obj/machinery/power/apc/auto_name/north,
/obj/structure/cable,
@@ -39590,13 +39594,6 @@
/obj/structure/closet/crate/maint,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
-"nKv" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"nKz" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible,
@@ -39840,6 +39837,10 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/maintenance/solars/port/aft)
+"nRT" = (
+/obj/structure/filingcabinet,
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"nSI" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -39997,18 +39998,6 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
-"nXs" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"nXC" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -40237,14 +40226,6 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
-"ofw" = (
-/obj/structure/table/wood,
-/obj/item/camera_film{
- pixel_x = -4;
- pixel_y = 4
- },
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"ofE" = (
/obj/machinery/computer/prisoner/management,
/obj/effect/turf_decal/tile/red{
@@ -40330,6 +40311,12 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
+"ohP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"oik" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -40976,6 +40963,24 @@
/obj/machinery/atmospherics/pipe/smart/simple/green/visible,
/turf/open/floor/plating,
/area/engineering/atmos)
+"oBo" = (
+/obj/structure/table/wood,
+/obj/item/taperecorder{
+ pixel_x = 9;
+ pixel_y = 9
+ },
+/obj/item/folder/blue{
+ pixel_x = -8;
+ pixel_y = -2
+ },
+/obj/item/pen/blue{
+ pixel_y = -2
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"oBY" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
@@ -41500,18 +41505,6 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
-"oRa" = (
-/obj/structure/table/wood,
-/obj/item/pen/red{
- pixel_x = 6;
- pixel_y = 11
- },
-/obj/item/folder/red{
- pixel_x = -3;
- pixel_y = 2
- },
-/turf/open/floor/carpet/red,
-/area/commons/vacant_room/office)
"oRm" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/wood,
@@ -41708,6 +41701,13 @@
},
/turf/open/floor/iron,
/area/security/brig)
+"oXE" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"oXL" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -41771,12 +41771,6 @@
/obj/structure/closet/radiation,
/turf/open/floor/iron,
/area/engineering/main)
-"paP" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"paT" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
@@ -44125,6 +44119,15 @@
/obj/structure/grille,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"qjr" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"qjN" = (
/obj/machinery/light/directional/east,
/turf/open/floor/iron/white/side{
@@ -44216,6 +44219,20 @@
},
/turf/open/floor/iron/dark,
/area/security/prison/safe)
+"qmA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/item/tank/internals/plasma,
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/engineering/supermatter)
"qnj" = (
/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{
dir = 4
@@ -44951,15 +44968,6 @@
/obj/machinery/disposal/bin,
/turf/open/floor/iron,
/area/commons/storage/primary)
-"qNw" = (
-/obj/item/wrench,
-/obj/effect/turf_decal/delivery,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark,
-/area/engineering/supermatter/room)
"qNx" = (
/obj/item/stack/rods/fifty,
/obj/structure/rack,
@@ -45547,6 +45555,16 @@
},
/turf/open/floor/iron/cafeteria,
/area/service/kitchen)
+"rfQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"rgu" = (
/obj/effect/turf_decal/trimline/green/filled/line,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
@@ -45894,6 +45912,17 @@
"rqA" = (
/turf/open/floor/iron/freezer,
/area/commons/toilet)
+"rqF" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"rrg" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -46336,13 +46365,6 @@
},
/turf/open/floor/iron,
/area/service/janitor)
-"rCh" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"rCp" = (
/obj/structure/grille,
/turf/open/floor/plating,
@@ -46843,6 +46865,18 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/medical/storage)
+"rNq" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"rNt" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -47146,6 +47180,16 @@
},
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
+"rYN" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"rYP" = (
/obj/structure/closet/wardrobe/pjs,
/obj/effect/turf_decal/tile/neutral,
@@ -47263,17 +47307,6 @@
dir = 5
},
/area/science/research)
-"scx" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/plating,
-/area/engineering/supermatter)
"scD" = (
/obj/structure/table/wood,
/obj/item/book/manual/wiki/security_space_law,
@@ -47286,18 +47319,6 @@
},
/turf/open/floor/wood,
/area/service/lawoffice)
-"scU" = (
-/obj/structure/table/wood,
-/obj/item/newspaper{
- pixel_x = 8;
- pixel_y = 8
- },
-/obj/item/paper_bin/carbon{
- pixel_x = -6;
- pixel_y = 4
- },
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"sdo" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/airalarm/directional/north,
@@ -47505,14 +47526,6 @@
icon_state = "platingdmg3"
},
/area/construction)
-"siF" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"siK" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply,
@@ -47774,6 +47787,12 @@
},
/turf/open/floor/iron/showroomfloor,
/area/hallway/secondary/service)
+"soI" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"soT" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -47938,6 +47957,10 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/carpet,
/area/commons/dorms)
+"sup" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"suz" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -48103,16 +48126,6 @@
},
/turf/open/floor/iron,
/area/cargo/storage)
-"sAa" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"sAm" = (
/obj/structure/window/reinforced{
dir = 1;
@@ -48588,6 +48601,15 @@
/obj/item/gavelhammer,
/turf/open/floor/iron,
/area/security/courtroom)
+"sMV" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"sMZ" = (
/obj/structure/kitchenspike,
/obj/item/stack/sheet/leather,
@@ -48608,6 +48630,15 @@
"sNB" = (
/turf/open/floor/iron/dark,
/area/service/chapel/main)
+"sNC" = (
+/obj/item/wrench,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark,
+/area/engineering/supermatter/room)
"sNX" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = -32
@@ -49151,13 +49182,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/medical/morgue)
-"tee" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"tel" = (
/turf/closed/wall,
/area/cargo/sorting)
@@ -49514,17 +49538,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/commons/dorms)
-"tmR" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"tnP" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/trinary/filter/atmos/co2,
@@ -49954,14 +49967,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/engineering/break_room)
-"tAJ" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"tAQ" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/white/side{
@@ -50262,30 +50267,10 @@
/obj/structure/barricade/wooden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"tLe" = (
-/obj/machinery/camera{
- c_tag = "Vacant Office";
- dir = 4
- },
-/obj/machinery/photocopier,
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"tLg" = (
/obj/structure/closet/crate,
/turf/open/floor/iron,
/area/engineering/atmos)
-"tLA" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"tLH" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -50510,6 +50495,14 @@
/obj/machinery/power/apc/auto_name/north,
/turf/open/floor/iron,
/area/service/hydroponics)
+"tRs" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"tRt" = (
/obj/structure/ladder,
/turf/open/floor/plating/snowed/icemoon,
@@ -51006,20 +50999,17 @@
},
/turf/open/floor/plating,
/area/maintenance/space_hut/cabin)
+"ueO" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/turf/open/floor/carpet/red,
+/area/commons/vacant_room/office)
"ueT" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/commons/storage/mining)
-"ueZ" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"ufl" = (
/obj/effect/turf_decal/tile/brown{
dir = 1
@@ -51469,17 +51459,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"upM" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/camera{
- c_tag = "Engineering Supermatter Port";
- dir = 4;
- network = list("ss13","engine")
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"upT" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall,
@@ -51768,13 +51747,6 @@
/obj/effect/spawner/lootdrop/gross_decal_spawner,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"uwY" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/commons/vacant_room/office)
"uxn" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/iron,
@@ -52142,6 +52114,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible,
/turf/open/floor/iron,
/area/engineering/atmos)
+"uFD" = (
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/south,
+/obj/machinery/light_switch/directional/west,
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"uFV" = (
/obj/machinery/shower{
dir = 4
@@ -52342,11 +52320,14 @@
dir = 10
},
/area/science/xenobiology)
-"uPu" = (
+"uPd" = (
+/obj/item/radio/intercom/directional/south,
/obj/effect/turf_decal/siding/wood{
- dir = 1
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
},
-/obj/machinery/light/directional/west,
/turf/open/floor/wood,
/area/commons/vacant_room/office)
"uPx" = (
@@ -52513,15 +52494,6 @@
},
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"uUp" = (
-/obj/structure/table,
-/obj/item/stack/cable_coil{
- pixel_x = 3;
- pixel_y = -7
- },
-/obj/item/stack/cable_coil,
-/turf/open/floor/iron/dark,
-/area/engineering/supermatter/room)
"uUH" = (
/obj/machinery/camera{
c_tag = "Bar South";
@@ -52545,6 +52517,14 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"uWx" = (
+/obj/structure/table/wood,
+/obj/item/camera_film{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"uWC" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -52766,10 +52746,6 @@
dir = 8
},
/area/science/research)
-"vdx" = (
-/obj/structure/filingcabinet,
-/turf/open/floor/iron/grimy,
-/area/commons/vacant_room/office)
"vdE" = (
/obj/structure/chair/office{
dir = 1
@@ -52858,6 +52834,15 @@
/obj/effect/spawner/lootdrop/gross_decal_spawner,
/turf/open/floor/plating,
/area/maintenance/port)
+"vgK" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark,
+/area/engineering/supermatter/room)
"vhk" = (
/obj/machinery/airalarm/directional/north,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
@@ -52877,6 +52862,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/closed/wall/r_wall,
/area/engineering/supermatter)
+"vhD" = (
+/obj/structure/sign/poster/random{
+ pixel_x = -32
+ },
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/open/floor/plating,
+/area/maintenance/port)
"vhM" = (
/obj/structure/table/glass,
/obj/item/storage/fancy/candle_box,
@@ -52953,6 +52946,18 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/iron/white,
/area/medical/virology)
+"vja" = (
+/obj/structure/table/wood,
+/obj/item/newspaper{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/item/paper_bin/carbon{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/turf/open/floor/iron/grimy,
+/area/commons/vacant_room/office)
"vjI" = (
/obj/machinery/light/directional/north,
/obj/effect/decal/cleanable/dirt,
@@ -53047,6 +53052,13 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay)
+"vop" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/wood,
+/area/commons/vacant_room/office)
"vov" = (
/obj/structure/closet/secure_closet/miner,
/turf/open/floor/iron,
@@ -53741,9 +53753,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/security/brig)
-"vHt" = (
-/turf/open/floor/iron,
-/area/science/misc_lab)
"vHw" = (
/obj/machinery/door/airlock/security/glass{
name = "Equipment Room";
@@ -53847,9 +53856,6 @@
},
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"vLi" = (
-/turf/open/floor/carpet/red,
-/area/commons/vacant_room/office)
"vLk" = (
/obj/structure/table,
/obj/item/radio/off{
@@ -55016,15 +55022,6 @@
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/iron/white,
/area/maintenance/port/fore)
-"wsW" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"wtb" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -56021,6 +56018,14 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"wWx" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"wXh" = (
/obj/structure/closet/firecloset,
/turf/open/floor/plating,
@@ -56752,6 +56757,15 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/commons/fitness)
+"xrJ" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/item/stack/cable_coil,
+/turf/open/floor/iron/dark,
+/area/engineering/supermatter/room)
"xrV" = (
/obj/structure/cable,
/turf/open/floor/plating/snowed/icemoon,
@@ -57641,11 +57655,6 @@
"xQa" = (
/turf/open/floor/wood,
/area/command/meeting_room)
-"xQe" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"xQr" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -58165,14 +58174,6 @@
},
/turf/open/floor/iron,
/area/maintenance/starboard/fore)
-"yhF" = (
-/obj/structure/sign/poster/random{
- pixel_x = -32
- },
-/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plating,
-/area/maintenance/port)
"yhK" = (
/obj/machinery/light/directional/west,
/turf/open/openspace,
@@ -71350,13 +71351,13 @@ aLw
fxH
aQI
aNh
-amy
-amy
-amy
-amy
-jMr
-amy
-amy
+kaJ
+kaJ
+kaJ
+kaJ
+klb
+kaJ
+kaJ
wIN
beO
beO
@@ -71607,13 +71608,13 @@ aOj
aPx
aQJ
ayl
-amy
-nyP
-tLe
-uPu
-lQb
-eyq
-amy
+kaJ
+dob
+nGH
+vop
+rYN
+uFD
+kaJ
qWo
bcl
beQ
@@ -71864,13 +71865,13 @@ aNR
aOY
aQJ
ayl
-amy
-eLJ
-lEy
-mnb
-tLA
-iwf
-amy
+kaJ
+nwG
+bpv
+gsp
+rNq
+kwL
+kaJ
jwi
beO
beP
@@ -72121,13 +72122,13 @@ aNe
aLz
aQo
drO
-amy
-nyP
-ofw
-siF
-tmR
-kUt
-amy
+kaJ
+dob
+uWx
+fqA
+rqF
+cfI
+kaJ
jwi
beO
eTt
@@ -72378,13 +72379,13 @@ aNe
aPx
aRd
ayl
-amy
-tee
-efi
-uwY
-bha
-nKv
-amy
+kaJ
+oXE
+iIb
+kWA
+oBo
+cKo
+kaJ
jwi
beO
beR
@@ -72635,13 +72636,13 @@ aNf
aLA
aRd
pNH
-amy
-rCh
-htO
-sAa
-nXs
-itl
-amy
+kaJ
+feX
+soI
+rfQ
+hDO
+uPd
+kaJ
jwi
beO
beU
@@ -72892,13 +72893,13 @@ asE
asE
fbK
ayl
-amy
-mKG
-nyP
-nyP
-nyP
-nyP
-amy
+kaJ
+sup
+dob
+dob
+dob
+dob
+kaJ
jwi
beO
beO
@@ -73149,13 +73150,13 @@ aOk
aPy
aRd
ayl
-amy
-scU
-gRO
-oRa
-nkr
-nyP
-amy
+kaJ
+vja
+ueO
+lcR
+epw
+dob
+kaJ
mgw
mZP
eyd
@@ -73406,13 +73407,13 @@ aLB
aLB
aQK
jSy
-amy
-vdx
-vLi
-cnC
-vLi
-nyP
-amy
+kaJ
+nRT
+nuo
+fKK
+nuo
+dob
+kaJ
bcI
aPz
bdt
@@ -73663,13 +73664,13 @@ ayl
ayl
ayl
aSf
-amy
-amy
-amy
-amy
-amy
-amy
-amy
+kaJ
+kaJ
+kaJ
+kaJ
+kaJ
+kaJ
+kaJ
aPz
aPz
bdt
@@ -73923,7 +73924,7 @@ aPz
aPz
pYU
aWj
-yhF
+vhD
vgq
aPz
cQh
@@ -85550,16 +85551,16 @@ rMp
iLd
iLd
kZt
-gvB
-gvB
-gvB
-upM
-exs
-icb
+ohP
+ohP
+ohP
+hAr
+jSd
+lSs
tHa
-eir
-gvB
-edG
+hEI
+ohP
+fuF
eia
eia
eia
@@ -85806,7 +85807,7 @@ knk
pFQ
eia
rDh
-mpI
+nHm
tHa
tHa
tHa
@@ -85816,10 +85817,10 @@ tHa
tHa
klJ
tHa
-ghn
-paP
+ehs
+kAu
eia
-uUp
+xrJ
tPd
mpz
tPd
@@ -86063,7 +86064,7 @@ rmN
pFQ
iLd
hYK
-xQe
+bdf
ben
hXf
hXf
@@ -86074,7 +86075,7 @@ owj
owx
oxH
iBX
-ueZ
+wWx
ifB
rsV
tjK
@@ -86320,18 +86321,18 @@ dcE
iaH
iLd
hYK
-xQe
-mFX
-qNw
-nJb
-cjt
-fWp
-fgm
-scx
-cjt
-dFm
-tAJ
-wsW
+bdf
+sMV
+sNC
+vgK
+hnR
+lRt
+qmA
+myq
+hnR
+kNQ
+tRs
+qjr
lEZ
fQX
fQX
@@ -105064,7 +105065,7 @@ bPN
uOi
cba
gZY
-vHt
+nyE
bQZ
nlW
xIk
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm b/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm
index aa36f32048f..b6020cabbbe 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm
@@ -55755,6 +55755,7 @@
/turf/open/floor/iron/dark,
/area/security/brig)
"vHt" = (
+/obj/machinery/module_duplicator,
/turf/open/floor/iron,
/area/science/misc_lab)
"vHw" = (
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 6f346550e14..a6bae4a5c33 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -511,11 +511,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/security/warden)
-"abP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/purple/filled/line,
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"abS" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/north,
@@ -37023,6 +37018,24 @@
icon_state = "platingdmg3"
},
/area/maintenance/port/aft)
+"cxk" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 4
+ },
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/solars/port/aft)
"cxl" = (
/obj/structure/sign/warning/nosmoking{
pixel_x = 30
@@ -41992,6 +42005,18 @@
/obj/effect/landmark/start/bartender,
/turf/open/floor/wood,
/area/service/bar)
+"dyq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/rebels_unite{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner,
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 1
+ },
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"dyu" = (
/obj/structure/flora/grass/jungle{
icon_state = "bushb1"
@@ -43338,6 +43363,14 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/security/prison)
+"ehM" = (
+/mob/living/simple_animal/hostile/carp{
+ environment_smash = 0;
+ name = "Tuna";
+ real_name = "Tuna"
+ },
+/turf/open/floor/plating/asteroid/airless,
+/area/space/nearstation)
"eih" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -45396,11 +45429,6 @@
/obj/structure/flora/ausbushes/ppflowers,
/turf/open/floor/grass,
/area/service/chapel/main)
-"eXi" = (
-/obj/effect/turf_decal/box,
-/obj/structure/cable,
-/turf/open/floor/iron/solarpanel/airless,
-/area/solars/starboard/aft)
"eXm" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -46411,14 +46439,6 @@
},
/turf/open/floor/iron,
/area/cargo/sorting)
-"fxc" = (
-/mob/living/simple_animal/hostile/carp{
- environment_smash = 0;
- name = "Tuna";
- real_name = "Tuna"
- },
-/turf/open/floor/plating/asteroid/airless,
-/area/space/nearstation)
"fxf" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -47536,18 +47556,6 @@
},
/turf/open/floor/iron/dark,
/area/service/kitchen)
-"fSM" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/rebels_unite{
- pixel_x = -32;
- pixel_y = 32
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner,
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 1
- },
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"fSZ" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -49362,26 +49370,6 @@
/obj/item/cartridge/quartermaster,
/turf/open/floor/iron,
/area/cargo/qm)
-"gQJ" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 10
- },
-/obj/structure/cable,
-/obj/machinery/computer/shuttle/mining/common,
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/commons/fitness/recreation)
"gQN" = (
/obj/machinery/suit_storage_unit/security,
/obj/effect/turf_decal/tile/neutral{
@@ -49728,11 +49716,6 @@
"gYM" = (
/turf/open/floor/engine,
/area/engineering/supermatter)
-"gZm" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/item/stack/sheet/glass,
-/turf/open/floor/plating/airless,
-/area/space/nearstation)
"gZo" = (
/obj/item/radio/intercom/directional/west{
freerange = 1;
@@ -50088,6 +50071,11 @@
/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/iron/dark,
/area/engineering/supermatter/room)
+"heK" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/item/stack/sheet/glass,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
"hfo" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/neutral{
@@ -50883,24 +50871,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
-"hzl" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/obj/structure/sign/warning/vacuum/external{
- pixel_x = -32
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/structure/frame/computer{
- anchored = 1;
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/maintenance/solars/port/aft)
"hzm" = (
/obj/structure/flora/ausbushes/ywflowers,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -55837,23 +55807,6 @@
"jHS" = (
/turf/closed/wall/r_wall/rust,
/area/engineering/break_room)
-"jIa" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/rebels_unite{
- pixel_x = 32;
- pixel_y = 32
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 4
- },
-/obj/item/toy/plush/plasmamanplushie{
- name = "Lithium II"
- },
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"jId" = (
/obj/structure/easel,
/obj/effect/turf_decal/bot,
@@ -56196,6 +56149,37 @@
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/iron/dark,
/area/engineering/supermatter/room)
+"jPh" = (
+/obj/structure/cable,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/stack/sheet/glass/fifty,
+/obj/structure/closet/crate/engineering/electrical,
+/obj/structure/sign/warning/xeno_mining{
+ pixel_x = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
"jPk" = (
/obj/structure/table/glass,
/obj/item/storage/box/rxglasses{
@@ -58242,37 +58226,6 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron/dark,
/area/engineering/storage/tech)
-"kBq" = (
-/obj/structure/cable,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/stack/sheet/glass/fifty,
-/obj/structure/closet/crate/engineering/electrical,
-/obj/structure/sign/warning/xeno_mining{
- pixel_x = 32
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/plating,
-/area/maintenance/solars/starboard/aft)
"kBH" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -58553,6 +58506,22 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/engineering/atmos)
+"kFF" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/machinery/camera{
+ c_tag = "Toxins Launch Site";
+ name = "science camera";
+ network = list("ss13","rd")
+ },
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron/dark,
+/area/science/test_area)
"kFL" = (
/obj/effect/turf_decal/stripes/end{
dir = 1
@@ -58864,23 +58833,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/cargo/office)
-"kMg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/rebels_unite{
- pixel_x = -32;
- pixel_y = -32
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 8
- },
-/obj/item/toy/plush/plasmamanplushie{
- name = "Dianion XV"
- },
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"kNl" = (
/obj/structure/sign/warning/fire,
/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{
@@ -65450,11 +65402,6 @@
/mob/living/simple_animal/hostile/giant_spider/hunter/scrawny,
/turf/open/floor/plating,
/area/maintenance/department/electrical)
-"nNC" = (
-/obj/structure/lattice/catwalk,
-/obj/item/stack/sheet/glass,
-/turf/open/space/basic,
-/area/solars/port/aft)
"nNZ" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -69167,6 +69114,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
+"pqf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/purple/filled/line,
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"pqg" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -70972,6 +70924,11 @@
},
/turf/open/floor/iron/dark,
/area/cargo/miningoffice)
+"pZk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/electrolyzer,
+/turf/open/floor/iron/dark,
+/area/maintenance/disposal/incinerator)
"pZn" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
@@ -72139,6 +72096,23 @@
/obj/machinery/vending/drugs,
/turf/open/floor/iron/showroomfloor,
/area/medical/surgery)
+"qBh" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/rebels_unite{
+ pixel_x = 32;
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 4
+ },
+/obj/item/toy/plush/plasmamanplushie{
+ name = "Lithium II"
+ },
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"qCn" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -72525,13 +72499,6 @@
},
/turf/open/floor/plating,
/area/service/lawoffice)
-"qKX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"qLt" = (
/obj/item/kirbyplants{
icon_state = "plant-05"
@@ -73189,11 +73156,6 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
-"qZP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/electrolyzer,
-/turf/open/floor/iron/dark,
-/area/maintenance/disposal/incinerator)
"qZU" = (
/obj/structure/table,
/obj/item/storage/toolbox/electrical,
@@ -73274,10 +73236,6 @@
/obj/machinery/rnd/bepis,
/turf/open/floor/iron,
/area/cargo/storage)
-"rcl" = (
-/obj/item/circuitboard/computer/solar_control,
-/turf/open/floor/plating/asteroid/airless,
-/area/space/nearstation)
"rcA" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -74242,6 +74200,11 @@
},
/turf/open/floor/iron/dark/corner,
/area/hallway/primary/port)
+"rtX" = (
+/obj/effect/turf_decal/box,
+/obj/structure/cable,
+/turf/open/floor/iron/solarpanel/airless,
+/area/solars/starboard/aft)
"rtZ" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -79499,6 +79462,10 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/commons/fitness/recreation)
+"tMV" = (
+/obj/item/circuitboard/computer/solar_control,
+/turf/open/floor/plating/asteroid/airless,
+/area/space/nearstation)
"tNa" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/delivery,
@@ -80413,21 +80380,6 @@
},
/turf/open/floor/iron/dark,
/area/cargo/warehouse)
-"ugg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/tank/internals/plasmaman/belt/full,
-/obj/structure/table,
-/obj/structure/sign/poster/contraband/rebels_unite{
- pixel_x = 32;
- pixel_y = -32
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner,
-/obj/item/flashlight/lamp,
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"ugj" = (
/obj/effect/turf_decal/stripes/corner{
dir = 8
@@ -80552,22 +80504,6 @@
/obj/machinery/light/floor,
/turf/open/floor/engine/vacuum,
/area/engineering/atmos)
-"uhS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/light/small/directional/north,
-/obj/machinery/camera{
- c_tag = "Toxins Launch Site";
- name = "science camera";
- network = list("ss13","rd")
- },
-/obj/machinery/research/explosive_compressor,
-/obj/structure/cable,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron/dark,
-/area/science/test_area)
"uij" = (
/obj/machinery/door/poddoor/preopen{
id = "gravity";
@@ -82657,6 +82593,11 @@
},
/turf/open/floor/iron/showroomfloor,
/area/security/warden)
+"vcT" = (
+/obj/structure/lattice/catwalk,
+/obj/item/stack/sheet/glass,
+/turf/open/space/basic,
+/area/solars/port/aft)
"vdd" = (
/obj/effect/landmark/event_spawn,
/obj/effect/landmark/start/hangover,
@@ -83032,6 +82973,21 @@
},
/turf/open/floor/iron/dark,
/area/medical/medbay/central)
+"vkC" = (
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/research/explosive_compressor,
+/turf/open/floor/iron/showroomfloor,
+/area/science/test_area)
"vkF" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -83715,6 +83671,13 @@
dir = 1
},
/area/maintenance/aft)
+"vzj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"vzr" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -83772,41 +83735,6 @@
},
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
-"vAo" = (
-/obj/effect/turf_decal/stripes/corner,
-/obj/structure/table,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 9
- },
-/obj/item/paper_bin{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/assembly/signaler{
- desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted.";
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/assembly/signaler{
- desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted.";
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/assembly/signaler{
- desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted.";
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/pen,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/iron/showroomfloor,
-/area/science/test_area)
"vAx" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -85224,6 +85152,21 @@
},
/turf/open/floor/iron/dark,
/area/commons/storage/primary)
+"wiR" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/structure/table,
+/obj/structure/sign/poster/contraband/rebels_unite{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner,
+/obj/item/flashlight/lamp,
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"wje" = (
/obj/structure/table/glass,
/obj/machinery/computer/med_data/laptop,
@@ -87155,6 +87098,26 @@
},
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
+"wYW" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable,
+/obj/machinery/computer/shuttle/mining/common,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/commons/fitness/recreation)
"wZx" = (
/obj/machinery/light/small/directional/south,
/obj/effect/turf_decal/sand/plating,
@@ -89396,6 +89359,23 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/ce)
+"xUP" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/rebels_unite{
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 8
+ },
+/obj/item/toy/plush/plasmamanplushie{
+ name = "Dianion XV"
+ },
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"xUW" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -102366,7 +102346,7 @@ tnI
oUy
aau
aeU
-gZm
+heK
jOe
jOe
jOe
@@ -102882,7 +102862,7 @@ asO
cmU
cmU
foo
-nNC
+vcT
foo
foo
foo
@@ -104357,7 +104337,7 @@ aeu
aeU
aeU
coy
-fxc
+ehM
aDS
nBm
bFI
@@ -104682,7 +104662,7 @@ acK
cmU
aeU
aUz
-rcl
+tMV
aeU
cnS
cuU
@@ -105457,7 +105437,7 @@ vIb
cnO
kuW
cuZ
-hzl
+cxk
cnN
aeu
aeU
@@ -107734,7 +107714,7 @@ wrV
wrV
wrV
ich
-gQJ
+wYW
ney
vqR
qlh
@@ -115756,7 +115736,7 @@ vAc
dCE
pwM
rFl
-qZP
+pZk
ute
qeZ
wvg
@@ -129887,7 +129867,7 @@ erS
deb
aeu
ckU
-kBq
+jPh
cGv
cGV
clb
@@ -131940,10 +131920,10 @@ aeu
aUz
cmU
nRr
-eXi
-eXi
-eXi
-eXi
+rtX
+rtX
+rtX
+rtX
kuv
nRr
nRr
@@ -132455,15 +132435,15 @@ aeU
cmU
nRr
nRr
-eXi
-eXi
-eXi
+rtX
+rtX
+rtX
kuv
nRr
nRr
nRr
-eXi
-eXi
+rtX
+rtX
acm
aeo
acm
@@ -132649,7 +132629,7 @@ bbi
caT
xpL
pbn
-vAo
+vkC
xEu
xEu
gVX
@@ -132904,7 +132884,7 @@ cbk
aOU
kRX
qoN
-uhS
+kFF
sln
cHQ
sLE
@@ -132968,7 +132948,7 @@ aeU
cmU
nRr
nRr
-eXi
+rtX
nRr
nRr
xOh
@@ -133484,12 +133464,12 @@ nRr
nRr
nRr
nRr
-eXi
+rtX
xOh
kuv
xOh
-eXi
-eXi
+rtX
+rtX
nRr
nRr
nRr
@@ -134001,9 +133981,9 @@ nRr
nRr
nRr
kuv
-eXi
-eXi
-eXi
+rtX
+rtX
+rtX
nRr
nRr
acm
@@ -139851,8 +139831,8 @@ aaa
aeo
aaa
pFC
-fSM
-kMg
+dyq
+xUP
pFC
viq
aaa
@@ -140108,8 +140088,8 @@ aaa
aaQ
aaa
pFC
-abP
-qKX
+pqf
+vzj
pFC
viq
aaa
@@ -140365,8 +140345,8 @@ aaa
aeo
aaa
pFC
-jIa
-ugg
+qBh
+wiR
pFC
viq
aaa
diff --git a/_maps/map_files/KiloStation/KiloStation_skyrat.dmm b/_maps/map_files/KiloStation/KiloStation_skyrat.dmm
index 22c2a522ef7..6802c16f35e 100644
--- a/_maps/map_files/KiloStation/KiloStation_skyrat.dmm
+++ b/_maps/map_files/KiloStation/KiloStation_skyrat.dmm
@@ -80598,9 +80598,9 @@
name = "science camera";
network = list("ss13","rd")
},
-/obj/machinery/research/explosive_compressor,
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
+/obj/machinery/module_duplicator,
/turf/open/floor/iron/dark,
/area/science/test_area)
"uij" = (
@@ -83808,37 +83808,17 @@
/area/maintenance/disposal/incinerator)
"vAo" = (
/obj/effect/turf_decal/stripes/corner,
-/obj/structure/table,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 8
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 9
},
-/obj/item/paper_bin{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/assembly/signaler{
- desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted.";
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/assembly/signaler{
- desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted.";
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/assembly/signaler{
- desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted.";
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/pen,
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
dir = 8
},
+/obj/machinery/research/explosive_compressor,
/turf/open/floor/iron/showroomfloor,
/area/science/test_area)
"vAx" = (
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index fdbbe3df903..a0a2a19d8e3 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -4994,6 +4994,16 @@
},
/turf/open/floor/iron,
/area/security/prison)
+"aNQ" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/pharmacy)
"aNT" = (
/obj/effect/turf_decal/trimline/brown/filled/corner{
dir = 1
@@ -5371,6 +5381,13 @@
},
/turf/open/floor/iron/dark,
/area/security/courtroom)
+"aRZ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger,
+/obj/machinery/firealarm/directional/north,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/iron/dark,
+/area/medical/storage)
"aSc" = (
/obj/structure/table/wood,
/obj/item/lipstick{
@@ -6603,12 +6620,6 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
-"bcr" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/engineering/supermatter)
"bcs" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
@@ -7293,6 +7304,20 @@
/obj/item/extinguisher,
/turf/open/floor/plating,
/area/maintenance/central)
+"bkF" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/machinery/button/door/directional/north{
+ id = "chem_lockdown";
+ name = "chemistry lockdown control";
+ req_access_txt = "69"
+ },
+/turf/open/floor/iron/white,
+/area/medical/chemistry)
"bkQ" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/neutral{
@@ -9081,6 +9106,10 @@
/obj/machinery/announcement_system,
/turf/open/floor/iron/grimy,
/area/tcommsat/computer)
+"bGn" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron/white,
+/area/medical/pharmacy)
"bGo" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -9839,6 +9868,14 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal)
+"bQe" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"bQF" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -11126,6 +11163,27 @@
},
/turf/open/space,
/area/space/nearstation)
+"ceW" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/door/airlock/research/glass{
+ name = "Pharmacy";
+ req_access_txt = "5; 69"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/pharmacy)
"cfk" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/siding/wood{
@@ -13424,16 +13482,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white,
/area/security/prison)
-"cBn" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"cBv" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
@@ -17508,17 +17556,6 @@
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
/area/maintenance/starboard/secondary)
-"dxe" = (
-/obj/effect/turf_decal/trimline/blue/filled/corner,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/office)
"dxh" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -17603,12 +17640,6 @@
icon_state = "platingdmg3"
},
/area/security/prison)
-"dxP" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engineering/supermatter/room)
"dxS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 10
@@ -17692,6 +17723,13 @@
/obj/machinery/space_heater,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"dzi" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"dzr" = (
/obj/item/instrument/violin,
/obj/structure/table/wood,
@@ -18778,16 +18816,6 @@
},
/turf/open/floor/iron/dark,
/area/command/heads_quarters/ce)
-"dQu" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 1;
- name = "Cold Loop to Gas"
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"dRe" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -18798,11 +18826,6 @@
},
/turf/open/floor/carpet,
/area/command/bridge)
-"dRg" = (
-/obj/machinery/power/apc/auto_name/west,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/medical/storage)
"dRv" = (
/obj/effect/turf_decal/delivery,
/obj/effect/turf_decal/stripes/line{
@@ -19070,6 +19093,19 @@
/obj/structure/window/reinforced,
/turf/open/floor/holofloor/dark,
/area/science/cytology)
+"dWu" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/light/directional/north,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
+/obj/machinery/status_display/evac/directional/north,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"dWv" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -19089,20 +19125,6 @@
},
/turf/open/floor/wood,
/area/service/theater)
-"dXn" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/machinery/button/door/directional/north{
- id = "chem_lockdown";
- name = "chemistry lockdown control";
- req_access_txt = "69"
- },
-/turf/open/floor/iron/white,
-/area/medical/chemistry)
"dXG" = (
/obj/structure/table,
/obj/item/stack/wrapping_paper,
@@ -19686,6 +19708,15 @@
},
/turf/open/floor/iron,
/area/hallway/primary/starboard)
+"ehm" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"ehE" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -20539,11 +20570,6 @@
/obj/structure/light_construct/directional/east,
/turf/open/floor/wood,
/area/maintenance/port/aft)
-"evy" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/cable,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"evA" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -20567,6 +20593,17 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/command/bridge)
+"evJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"evL" = (
/obj/machinery/airalarm/directional/south,
/obj/structure/disposalpipe/segment{
@@ -20769,13 +20806,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/hallway/primary/central)
-"eyP" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/white,
-/area/medical/pharmacy)
"eyR" = (
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
@@ -20843,17 +20873,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard)
-"ezG" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/meter,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"ezJ" = (
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
@@ -21551,11 +21570,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/cargo/sorting)
-"eLa" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/white,
-/area/science/cytology)
"eLf" = (
/obj/effect/spawner/lootdrop/maintenance/two,
/obj/structure/rack,
@@ -22168,10 +22182,6 @@
dir = 5
},
/area/service/kitchen)
-"eSY" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
-/turf/closed/wall/r_wall,
-/area/science/xenobiology)
"eTd" = (
/obj/structure/reflector/box/anchored{
dir = 8
@@ -22609,6 +22619,13 @@
},
/turf/closed/wall/r_wall,
/area/engineering/atmos)
+"fbx" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engineering/supermatter/room)
"fbA" = (
/obj/machinery/requests_console/directional/south{
department = "Mining";
@@ -24161,18 +24178,6 @@
},
/turf/open/floor/iron,
/area/commons/dorms)
-"fBm" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/pharmacy)
"fBo" = (
/obj/machinery/door/airlock/maintenance{
name = "Research Maintenance";
@@ -25906,9 +25911,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/commons/fitness/recreation)
-"giD" = (
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"giP" = (
/obj/structure/bookcase/random/reference,
/turf/open/floor/wood,
@@ -26233,6 +26235,9 @@
/obj/item/canvas/twentythree_twentythree,
/turf/open/space/basic,
/area/space/nearstation)
+"gnE" = (
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"gnR" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -26254,6 +26259,13 @@
},
/turf/open/floor/iron/white,
/area/medical/chemistry)
+"gon" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"goo" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -27587,10 +27599,6 @@
/obj/item/paicard,
/turf/open/floor/iron/white,
/area/hallway/primary/central)
-"gMS" = (
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/iron/dark,
-/area/engineering/supermatter/room)
"gNb" = (
/obj/effect/turf_decal/trimline/red/filled/corner,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -28231,21 +28239,6 @@
},
/turf/open/floor/iron/white,
/area/science/xenobiology)
-"hcR" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/trimline/purple,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"hcY" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -28417,6 +28410,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/maintenance/port)
+"hfK" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"hfX" = (
/obj/effect/decal/cleanable/oil,
/obj/structure/cable,
@@ -28719,10 +28717,6 @@
},
/turf/open/floor/iron/white,
/area/hallway/primary/central)
-"hmz" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"hmD" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/vacuum/external,
@@ -29345,6 +29339,12 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/hallway/primary/port)
+"hxR" = (
+/obj/structure/lattice,
+/obj/structure/grille/broken,
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w,
+/turf/open/space/basic,
+/area/space/nearstation)
"hya" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -29779,13 +29779,6 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron/dark/corner,
/area/engineering/storage_shared)
-"hGm" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"hGn" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 6
@@ -30423,6 +30416,10 @@
},
/turf/open/floor/iron,
/area/service/hydroponics)
+"hPJ" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"hPW" = (
/obj/machinery/hydroponics/soil{
pixel_y = 8
@@ -30610,18 +30607,6 @@
},
/turf/open/floor/iron,
/area/service/hydroponics)
-"hTn" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/camera{
- c_tag = "Xenobiology Lab - Central East";
- dir = 4;
- network = list("ss13","rd")
- },
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"hTU" = (
/obj/structure/chair{
dir = 8
@@ -30714,6 +30699,39 @@
},
/turf/open/floor/iron,
/area/engineering/break_room)
+"hWh" = (
+/obj/machinery/door_buttons/access_button{
+ idDoor = "xeno_airlock_exterior";
+ idSelf = "xeno_airlock_control";
+ name = "Access Button";
+ pixel_y = -24;
+ req_access_txt = "55"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/research{
+ autoclose = 0;
+ frequency = 1449;
+ id_tag = "xeno_airlock_exterior";
+ name = "Xenobiology Lab External Airlock";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/white,
+/area/science/cytology)
"hWi" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
@@ -31227,11 +31245,6 @@
},
/turf/open/floor/iron/white,
/area/science/cytology)
-"ieT" = (
-/obj/effect/landmark/carpspawn,
-/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w,
-/turf/open/space/basic,
-/area/space)
"ieV" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -31936,14 +31949,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/closed/wall,
/area/maintenance/starboard)
-"irp" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/obj/machinery/light/directional/west,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"irs" = (
/obj/machinery/atmospherics/pipe/smart/simple/green/visible{
dir = 1
@@ -32400,6 +32405,26 @@
/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible,
/turf/open/floor/iron/dark,
/area/engineering/atmos)
+"iyW" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 4;
+ sortType = 28
+ },
+/turf/open/floor/iron/white,
+/area/science/cytology)
"iyZ" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -32496,6 +32521,10 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
/area/service/hydroponics)
+"iBG" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/science/xenobiology)
"iBZ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -33305,13 +33334,6 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
-"iQH" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/engineering/supermatter/room)
"iQI" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command/glass{
@@ -33561,6 +33583,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/secondary/entry)
+"iTM" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"iTQ" = (
/obj/item/clothing/suit/caution,
/turf/open/floor/plating,
@@ -33924,6 +33955,16 @@
dir = 8
},
/area/hallway/primary/aft)
+"jaU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"jbh" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/wood{
@@ -34055,11 +34096,6 @@
/obj/structure/chair/stool/directional/south,
/turf/open/floor/iron,
/area/commons/dorms)
-"jep" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
-/turf/open/floor/plating,
-/area/maintenance/department/science/xenobiology)
"jeM" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -34861,15 +34897,6 @@
},
/turf/open/floor/iron/dark,
/area/commons/cryopods)
-"jsK" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"jsY" = (
/obj/structure/bed,
/obj/item/clothing/suit/straight_jacket,
@@ -35443,6 +35470,10 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/ai)
+"jCH" = (
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/iron/dark,
+/area/engineering/supermatter/room)
"jCW" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -35769,6 +35800,22 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/carpet,
/area/security/detectives_office)
+"jJO" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/office)
+"jJS" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w,
+/turf/open/space/basic,
+/area/space)
"jKe" = (
/obj/structure/window/reinforced{
dir = 4
@@ -36345,6 +36392,14 @@
},
/turf/open/floor/iron/white,
/area/medical/virology)
+"jTA" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"jTC" = (
/obj/machinery/light/small/directional/east,
/obj/machinery/camera{
@@ -38875,19 +38930,6 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/aisat/exterior)
-"kLR" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/cable,
-/obj/machinery/light/directional/north,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
-/obj/machinery/status_display/evac/directional/north,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"kMg" = (
/obj/machinery/computer/crew{
dir = 4
@@ -39080,6 +39122,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/command/bridge)
+"kPJ" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 6
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/office)
"kPN" = (
/obj/structure/rack,
/obj/structure/sign/poster/contraband/random{
@@ -39908,6 +39963,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/commons/vacant_room/office)
+"leE" = (
+/obj/machinery/power/apc/auto_name/west,
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/medical/storage)
"leO" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -40344,22 +40404,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron,
/area/service/hydroponics/garden)
-"llm" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 8
- },
-/obj/machinery/portable_atmospherics/canister/toxins,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"llr" = (
/obj/machinery/rnd/production/protolathe/department/science,
/obj/machinery/light/directional/south,
@@ -40638,6 +40682,16 @@
},
/turf/open/floor/iron,
/area/commons/fitness/recreation)
+"lpY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"lqa" = (
/obj/structure/table/reinforced,
/obj/item/kitchen/fork/plastic,
@@ -41078,6 +41132,19 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/medical/treatment_center)
+"lwY" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/turf/open/floor/iron,
+/area/science/xenobiology)
"lxb" = (
/turf/closed/wall,
/area/command/gateway)
@@ -41248,6 +41315,16 @@
/mob/living/simple_animal/hostile/lizard/wags_his_tail,
/turf/open/floor/plating,
/area/service/janitor)
+"lBG" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Cold Loop to Gas"
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"lBT" = (
/turf/open/floor/grass,
/area/service/hydroponics/garden)
@@ -41881,6 +41958,14 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/starboard)
+"lNI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/light/directional/west,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"lNJ" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -42170,6 +42255,18 @@
},
/turf/open/floor/iron/dark,
/area/medical/break_room)
+"lTC" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Xenobiology Lab - Central East";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"lTG" = (
/obj/structure/sign/painting/library{
pixel_y = 32
@@ -43549,6 +43646,16 @@
},
/turf/open/floor/iron/freezer,
/area/commons/toilet/restrooms)
+"moy" = (
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/supermatter)
"moL" = (
/obj/structure/table,
/obj/structure/extinguisher_cabinet/directional/east,
@@ -44246,18 +44353,6 @@
},
/turf/closed/wall/r_wall,
/area/command/heads_quarters/captain/private)
-"mzw" = (
-/obj/item/crowbar,
-/obj/structure/cable,
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engineering/supermatter)
"mzG" = (
/obj/machinery/holopad,
/turf/open/floor/iron,
@@ -44525,13 +44620,6 @@
},
/turf/open/floor/iron,
/area/security/warden)
-"mDV" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"mEX" = (
/obj/machinery/bookbinder,
/turf/open/floor/wood,
@@ -44828,6 +44916,22 @@
"mJI" = (
/turf/open/space,
/area/space/nearstation)
+"mJP" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/toxins,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"mJY" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -44993,10 +45097,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/closed/wall,
/area/commons/toilet/auxiliary)
-"mMh" = (
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/iron/white,
-/area/science/cytology)
"mMr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
@@ -47284,6 +47384,18 @@
/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
+"nwJ" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/pharmacy)
"nwM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -47702,39 +47814,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
-"nEh" = (
-/obj/machinery/door_buttons/access_button{
- idDoor = "xeno_airlock_exterior";
- idSelf = "xeno_airlock_control";
- name = "Access Button";
- pixel_y = -24;
- req_access_txt = "55"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/locked,
-/obj/machinery/door/airlock/research{
- autoclose = 0;
- frequency = 1449;
- id_tag = "xeno_airlock_exterior";
- name = "Xenobiology Lab External Airlock";
- req_access_txt = "55"
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron/white,
-/area/science/cytology)
"nEw" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -48296,13 +48375,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/security/brig)
-"nLN" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/components/binary/pump/on{
- name = "Gas to Cold Loop"
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"nLW" = (
/obj/structure/cable,
/obj/structure/sign/poster/contraband/random{
@@ -48552,11 +48624,6 @@
/obj/effect/mapping_helpers/airlock/unres,
/turf/open/floor/iron/white,
/area/science/research)
-"nPy" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w,
-/turf/open/space/basic,
-/area/space/nearstation)
"nPS" = (
/obj/effect/turf_decal/tile/purple{
dir = 4
@@ -50053,15 +50120,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"opG" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/camera{
- c_tag = "Engineering Supermatter Aft";
- dir = 1;
- network = list("ss13","engine")
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"opJ" = (
/obj/structure/window/reinforced{
dir = 8
@@ -50300,16 +50358,6 @@
/obj/item/reagent_containers/food/drinks/bottle/goldschlager,
/turf/open/space/basic,
/area/space/nearstation)
-"ouM" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"ouU" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -50678,6 +50726,13 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/engine/co2,
/area/engineering/atmos)
+"oAZ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"oBd" = (
/obj/structure/chair{
pixel_y = -2
@@ -51034,6 +51089,11 @@
/obj/item/radio/intercom/directional/east,
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"oHR" = (
+/obj/effect/landmark/carpspawn,
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w,
+/turf/open/space/basic,
+/area/space)
"oHU" = (
/obj/machinery/ai_slipper{
uses = 10
@@ -52754,15 +52814,6 @@
"pjc" = (
/turf/open/floor/iron/white,
/area/medical/office)
-"pjP" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"pki" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -54015,6 +54066,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/primary/central)
+"pFN" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron/white,
+/area/science/cytology)
"pFS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -54860,6 +54916,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/security/detectives_office)
+"pVw" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron/white,
+/area/medical/pharmacy)
"pVx" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -55419,6 +55482,11 @@
},
/turf/open/floor/iron/dark,
/area/security/office)
+"qgr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
+/turf/open/floor/plating,
+/area/maintenance/department/science/xenobiology)
"qgx" = (
/obj/machinery/computer/security/telescreen{
desc = "Used for monitoring medbay to ensure patient safety.";
@@ -55642,13 +55710,6 @@
/obj/structure/cable,
/turf/open/floor/carpet,
/area/service/chapel/main)
-"qiW" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"qje" = (
/obj/machinery/light/directional/east,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -56135,19 +56196,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"qtH" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 6
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/office)
"quc" = (
/obj/structure/lattice/catwalk,
/obj/structure/marker_beacon/burgundy,
@@ -57950,12 +57998,6 @@
/obj/effect/turf_decal/tile/bar,
/turf/open/floor/iron,
/area/service/bar)
-"qXS" = (
-/obj/structure/lattice,
-/obj/structure/grille/broken,
-/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w,
-/turf/open/space/basic,
-/area/space/nearstation)
"qXZ" = (
/obj/structure/chair/office/light,
/obj/structure/disposalpipe/segment{
@@ -58844,16 +58886,6 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/service)
-"rnl" = (
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engineering/supermatter)
"rnA" = (
/obj/machinery/airalarm/directional/west,
/obj/structure/displaycase/trophy,
@@ -59706,6 +59738,11 @@
/obj/effect/landmark/start/roboticist,
/turf/open/floor/iron,
/area/science/robotics/lab)
+"rzL" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w,
+/turf/open/space/basic,
+/area/space/nearstation)
"rzR" = (
/turf/closed/wall/r_wall,
/area/engineering/gravity_generator)
@@ -60322,11 +60359,6 @@
initial_gas_mix = "TEMP=2.7"
},
/area/space/nearstation)
-"rLw" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
-/turf/open/floor/plating,
-/area/maintenance/department/science/xenobiology)
"rLz" = (
/obj/structure/window/reinforced{
dir = 8
@@ -61133,6 +61165,13 @@
},
/turf/open/floor/iron,
/area/science/robotics/lab)
+"rXf" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Gas to Cold Loop"
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"rXg" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/neutral{
@@ -61207,19 +61246,6 @@
icon_state = "platingdmg2"
},
/area/maintenance/starboard/secondary)
-"rYR" = (
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -2;
- pixel_y = 6
- },
-/obj/item/pen{
- pixel_x = -2;
- pixel_y = 5
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
-/turf/open/floor/iron,
-/area/science/xenobiology)
"rYV" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -61478,13 +61504,6 @@
},
/turf/open/floor/iron/dark,
/area/science/mixing)
-"sdu" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"sdv" = (
/obj/machinery/door/airlock/maintenance{
name = "Mining Dock Maintenance";
@@ -63411,6 +63430,19 @@
},
/turf/open/floor/iron/white,
/area/science/cytology)
+"sMr" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/iron/white,
+/area/medical/pharmacy)
"sMV" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance/two,
@@ -63517,6 +63549,14 @@
/obj/machinery/light/small/broken/directional/north,
/turf/open/floor/plating,
/area/maintenance/aft/secondary)
+"sOO" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Atmos to Loop"
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"sOS" = (
/obj/machinery/ai_slipper{
uses = 10
@@ -64104,13 +64144,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/engineering/main)
-"sVU" = (
-/obj/effect/turf_decal/trimline/blue/filled/corner{
- dir = 8
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"sWb" = (
/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{
dir = 6
@@ -64245,6 +64278,30 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard)
+"sYb" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/science/cytology)
"sYi" = (
/obj/machinery/duct,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -64268,6 +64325,15 @@
},
/turf/open/floor/iron/dark,
/area/engineering/atmos)
+"sYF" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Aft";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"sYH" = (
/turf/closed/wall/r_wall,
/area/medical/medbay/central)
@@ -64572,6 +64638,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/engineering/atmos)
+"tec" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engineering/supermatter)
"tee" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -65211,6 +65283,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible,
/turf/open/floor/iron,
/area/engineering/atmos)
+"tpt" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible,
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"tpu" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/chair/stool/directional/east,
@@ -65766,10 +65845,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central)
-"tyi" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/white,
-/area/medical/pharmacy)
"tyk" = (
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating{
@@ -65908,14 +65983,6 @@
},
/turf/open/floor/engine,
/area/science/misc_lab/range)
-"tBA" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/airalarm/directional/west,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
-/turf/open/floor/iron/white,
-/area/science/xenobiology)
"tBE" = (
/obj/effect/turf_decal/trimline/purple/corner{
dir = 1
@@ -66289,16 +66356,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/engineering/break_room)
-"tIj" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/pharmacy)
"tIk" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -68609,14 +68666,6 @@
/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2,
/turf/open/floor/iron,
/area/commons/locker)
-"utH" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Atmos to Loop"
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"utK" = (
/obj/structure/table,
/obj/item/razor{
@@ -68755,13 +68804,6 @@
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden,
/turf/open/floor/iron,
/area/engineering/atmos)
-"uwl" = (
-/obj/structure/table/reinforced,
-/obj/machinery/cell_charger,
-/obj/machinery/firealarm/directional/north,
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/iron/dark,
-/area/medical/storage)
"uwr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 6
@@ -69200,6 +69242,17 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"uEs" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/office)
"uEx" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -69273,27 +69326,6 @@
/obj/machinery/air_sensor/atmos/nitrous_tank,
/turf/open/floor/engine/n2o,
/area/engineering/atmos)
-"uFI" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/door/airlock/research/glass{
- name = "Pharmacy";
- req_access_txt = "5; 69"
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/pharmacy)
"uFM" = (
/obj/structure/reflector/single/anchored{
dir = 9
@@ -70552,18 +70584,6 @@
/obj/machinery/nanite_chamber,
/turf/open/floor/circuit/green,
/area/science/nanite)
-"vak" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/office)
"vaD" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -71774,10 +71794,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/command/gateway)
-"vtm" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w,
-/turf/open/space/basic,
-/area/space)
"vtn" = (
/obj/item/target,
/obj/item/target,
@@ -72068,19 +72084,6 @@
},
/turf/open/floor/iron/white,
/area/medical/surgery)
-"vzH" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/iron/white,
-/area/medical/pharmacy)
"vzJ" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 4
@@ -72590,6 +72593,12 @@
/obj/effect/landmark/start/hangover/closet,
/turf/open/floor/iron/dark,
/area/commons/fitness/recreation)
+"vHz" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/supermatter/room)
"vHG" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/blue{
@@ -72616,6 +72625,10 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
+"vIc" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/iron/white,
+/area/science/cytology)
"vIC" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -74015,6 +74028,11 @@
/obj/effect/turf_decal/trimline/blue/filled/line,
/turf/open/floor/iron/white,
/area/medical/surgery)
+"whH" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/department/science/xenobiology)
"wic" = (
/obj/structure/table/wood,
/obj/item/paper_bin{
@@ -77642,6 +77660,21 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
+"xvk" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/trimline/purple,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/science/xenobiology)
"xvC" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/tile/neutral{
@@ -78589,30 +78622,6 @@
/obj/machinery/power/apc/auto_name/north,
/turf/open/floor/iron/dark,
/area/science/nanite)
-"xJW" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/holopad,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/science/cytology)
"xJX" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/external{
@@ -79658,26 +79667,6 @@
},
/turf/open/floor/iron,
/area/commons/vacant_room/commissary)
-"ycN" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/structure/disposalpipe/sorting/mail{
- dir = 4;
- sortType = 28
- },
-/turf/open/floor/iron/white,
-/area/science/cytology)
"ycU" = (
/turf/open/floor/plating{
icon_state = "platingdmg3"
@@ -80079,6 +80068,18 @@
},
/turf/open/floor/iron/white,
/area/command/heads_quarters/rd)
+"yiR" = (
+/obj/item/crowbar,
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/supermatter)
"yiS" = (
/obj/structure/window/reinforced,
/obj/effect/turf_decal/tile/red{
@@ -100317,10 +100318,10 @@ sNA
tVS
iYO
bXK
-uwl
+aRZ
iCa
mzg
-dRg
+leE
eiC
bXK
poc
@@ -103386,8 +103387,8 @@ sXw
gDS
bYV
pAP
-dxe
-vak
+uEs
+jJO
cex
cfN
ifK
@@ -103643,7 +103644,7 @@ sXw
cHb
ifK
lbR
-qtH
+kPJ
sme
cey
jAu
@@ -105704,7 +105705,7 @@ duu
cVV
cfV
uGS
-uFI
+ceW
cfY
cls
uGS
@@ -105961,7 +105962,7 @@ fHp
xdb
cfW
mVs
-fBm
+nwJ
cjS
clt
vsI
@@ -106218,12 +106219,12 @@ kTK
sJz
cfX
chc
-tIj
-tyi
-tyi
-tyi
-eyP
-vzH
+aNQ
+bGn
+bGn
+bGn
+pVw
+sMr
tFm
vgi
tIk
@@ -106485,7 +106486,7 @@ eeY
uGS
vfe
rAF
-dXn
+bkF
cmB
cmB
rtp
@@ -113931,7 +113932,7 @@ yjC
lGi
eAF
xAx
-sVU
+jTA
nhL
oLk
kYe
@@ -121143,7 +121144,7 @@ aaa
aaa
qeW
vqh
-nEh
+hWh
vqh
vqh
lMJ
@@ -123135,8 +123136,8 @@ qcU
jXM
kbN
fPi
-bcr
-kLR
+tec
+dWu
vAW
oma
alq
@@ -123199,8 +123200,8 @@ rtc
dVf
dJj
eCr
-xJW
-mMh
+sYb
+vIc
ies
lfQ
vqh
@@ -123392,9 +123393,9 @@ toS
mNF
mDk
cuj
-rnl
+moy
jqt
-hmz
+hPJ
oma
rWr
kDC
@@ -123456,8 +123457,8 @@ cRi
vqh
xfy
mTR
-ycN
-eLa
+iyW
+pFN
oTb
vqh
cRi
@@ -123649,9 +123650,9 @@ ctk
mNF
mDk
wST
-mzw
+yiR
tAg
-utH
+sOO
wXy
wng
wno
@@ -123713,8 +123714,8 @@ tQb
qto
rGV
qie
-hcR
-evy
+xvk
+hfK
wzC
qMG
nxE
@@ -123906,9 +123907,9 @@ toS
mNF
mDk
toS
-rnl
+moy
xVP
-opG
+sYF
oma
atm
alr
@@ -124163,9 +124164,9 @@ qdD
mpY
fPi
fPi
-bcr
+tec
xgC
-nLN
+rXf
tNb
dgd
dgj
@@ -124420,9 +124421,9 @@ pmg
sFe
pgy
pgy
-cBn
+jaU
mVZ
-hmz
+hPJ
kkt
aaa
aYx
@@ -124677,9 +124678,9 @@ pNI
kkL
nsU
pTi
-ezG
+evJ
xfM
-dQu
+lBG
tNb
dge
azd
@@ -125191,7 +125192,7 @@ eTd
gkE
udw
udw
-dxP
+vHz
ohk
udw
oma
@@ -125448,9 +125449,9 @@ udw
udw
udw
udw
-iQH
+fbx
ohk
-gMS
+jCH
oma
dgg
azd
@@ -126037,9 +126038,9 @@ cSn
dlV
ddq
rhT
-nPy
-nPy
-vtm
+rzL
+rzL
+jJS
aaa
aaa
aaa
@@ -126294,9 +126295,9 @@ cRi
dlV
ddq
dbv
-vtm
+jJS
fwb
-vtm
+jJS
aaa
aaa
aaa
@@ -126537,23 +126538,23 @@ cRi
fEA
sEX
uFs
-jsK
-hTn
-hGm
-sdu
-sdu
-tBA
-mDV
-qiW
-irp
-rYR
-eSY
-rLw
-rLw
-jep
-vtm
+ehm
+lTC
+tpt
+oAZ
+oAZ
+bQe
+dzi
+gon
+lNI
+lwY
+iBG
+whH
+whH
+qgr
+jJS
fwb
-vtm
+jJS
aaa
aaa
aaa
@@ -126795,9 +126796,9 @@ eEh
sLb
qRo
opp
-ouM
-pjP
-giD
+lpY
+iTM
+gnE
cSb
dcT
dcT
@@ -126808,9 +126809,9 @@ cRi
ddq
rhT
rhT
-nPy
+rzL
nYJ
-vtm
+jJS
aaa
aaa
aaa
@@ -127053,7 +127054,7 @@ tig
wnQ
aYQ
fsy
-llm
+mJP
dcT
rUu
pnf
@@ -127064,10 +127065,10 @@ wXH
cRi
ddq
dbv
-vtm
-vtm
+jJS
+jJS
fwb
-vtm
+jJS
aaa
aaa
aaa
@@ -127321,10 +127322,10 @@ cSn
cRi
ddq
dbv
-vtm
-vtm
+jJS
+jJS
nYJ
-ieT
+oHR
aaa
aaa
aaa
@@ -127578,10 +127579,10 @@ gAH
cRi
ddq
rhT
-nPy
-qXS
+rzL
+hxR
fwb
-vtm
+jJS
aaa
aaa
aaa
@@ -127835,10 +127836,10 @@ cRi
cRi
ddq
rhT
-vtm
-vtm
-vtm
-vtm
+jJS
+jJS
+jJS
+jJS
aaa
aaa
aaa
diff --git a/_maps/map_files/MetaStation/MetaStation_skyrat.dmm b/_maps/map_files/MetaStation/MetaStation_skyrat.dmm
index 99a49b4cbc0..830b813d13f 100644
--- a/_maps/map_files/MetaStation/MetaStation_skyrat.dmm
+++ b/_maps/map_files/MetaStation/MetaStation_skyrat.dmm
@@ -65210,6 +65210,7 @@
dir = 8
},
/obj/machinery/light/directional/south,
+/obj/machinery/module_duplicator,
/turf/open/floor/iron/white,
/area/science/misc_lab)
"sWb" = (
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index e3f8088d694..1be96e88235 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -3754,15 +3754,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/tram/mid)
-"ant" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/sign/warning/vacuum/external{
- pixel_x = -32
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"anu" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 8
@@ -12378,10 +12369,6 @@
dir = 5
},
/area/science/breakroom)
-"aUi" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/closed/wall/r_wall,
-/area/engineering/supermatter)
"aUj" = (
/obj/effect/turf_decal/trimline/yellow/filled/line,
/obj/effect/turf_decal/trimline/yellow/filled/corner{
@@ -13942,6 +13929,10 @@
/obj/machinery/status_display/ai/directional/south,
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/aisat/foyer)
+"bpl" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"bpR" = (
/obj/effect/turf_decal/trimline/brown/filled/corner{
dir = 4
@@ -17009,18 +17000,6 @@
/obj/effect/turf_decal/trimline/neutral/filled/line,
/turf/open/floor/iron,
/area/hallway/secondary/command)
-"cxi" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/camera/emp_proof{
- c_tag = "Engineering - Engine Room South-West";
- dir = 1;
- network = list("ss13","engine","engineering")
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"cxs" = (
/obj/machinery/light/small/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -18864,9 +18843,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/maintenance/disposal)
-"dmC" = (
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"dmZ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -19166,6 +19142,19 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"drp" = (
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 6
+ },
+/obj/structure/rack,
+/obj/machinery/light/directional/south,
+/obj/item/controller,
+/obj/item/compact_remote,
+/obj/item/integrated_circuit/loaded/hello_world,
+/obj/item/integrated_circuit/loaded/speech_relay,
+/obj/item/compact_remote,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"drE" = (
/obj/structure/table,
/obj/item/flashlight/lamp,
@@ -24194,16 +24183,6 @@
/obj/item/trash/candy,
/turf/open/floor/plating/asteroid/airless,
/area/mine/explored)
-"fpM" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "Cooling Loop to Gas"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"fqi" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -27601,17 +27580,6 @@
"gHd" = (
/turf/closed/wall,
/area/engineering/storage/tech)
-"gHk" = (
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/plating,
-/area/engineering/supermatter)
"gHx" = (
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 1
@@ -27941,6 +27909,18 @@
},
/turf/open/floor/iron,
/area/ai_monitored/security/armory)
+"gNA" = (
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/engineering/supermatter)
"gNH" = (
/obj/effect/turf_decal/siding/wood,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -28642,6 +28622,12 @@
},
/turf/open/floor/iron/dark,
/area/science/research)
+"hbB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"hbS" = (
/obj/effect/turf_decal/trimline/blue/filled/line,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -30504,6 +30490,16 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit)
+"hJt" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Gas to Cooling Loop"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"hJD" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -30918,6 +30914,13 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit)
+"hRf" = (
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 10
+ },
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"hRu" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 5
@@ -31174,6 +31177,13 @@
},
/turf/open/floor/iron,
/area/cargo/miningdock)
+"hYh" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"hYr" = (
/turf/closed/wall,
/area/hallway/secondary/command)
@@ -31300,6 +31310,12 @@
/obj/machinery/teleport/station,
/turf/open/floor/plating,
/area/command/teleporter)
+"iaX" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"iaY" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 8
@@ -32831,6 +32847,15 @@
},
/turf/open/floor/iron,
/area/security/prison)
+"iFS" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"iFZ" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 1
@@ -33294,14 +33319,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/cargo/storage)
-"iNz" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"iNB" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner{
dir = 8
@@ -33811,6 +33828,14 @@
},
/turf/open/floor/iron/dark,
/area/medical/psychology)
+"iWO" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"iWV" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -34505,6 +34530,17 @@
},
/turf/open/floor/iron,
/area/cargo/office)
+"jnj" = (
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/engineering/supermatter)
"jnv" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/closed/wall/r_wall,
@@ -36911,6 +36947,16 @@
/obj/machinery/portable_atmospherics/pump,
/turf/open/floor/iron,
/area/engineering/main)
+"khk" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/status_display/ai/directional/south,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"khm" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -37767,6 +37813,15 @@
},
/turf/open/floor/plating,
/area/hallway/primary/tram/center)
+"kvN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"kvP" = (
/obj/machinery/door/airlock/engineering/glass{
name = "Server Room";
@@ -38158,6 +38213,14 @@
/obj/structure/girder,
/turf/open/floor/plating,
/area/maintenance/starboard/secondary)
+"kCt" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"kCS" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/donut_box,
@@ -40489,14 +40552,6 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron,
/area/security/prison)
-"lwe" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/status_display/evac/directional/north,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"lwl" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 1
@@ -40862,6 +40917,10 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white,
/area/medical/storage)
+"lBf" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/closed/wall/r_wall,
+/area/engineering/supermatter)
"lBE" = (
/obj/structure/filingcabinet/chestdrawer,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -41230,27 +41289,6 @@
},
/turf/closed/wall/r_wall,
/area/engineering/atmos)
-"lKg" = (
-/obj/machinery/requests_console/directional/north{
- announcementConsole = 1;
- department = "Head of Personnel's Desk";
- departmentType = 5;
- name = "Head of Personnel's Requests Console"
- },
-/obj/structure/table/wood,
-/obj/item/storage/secure/briefcase{
- pixel_x = -2;
- pixel_y = 6
- },
-/obj/item/storage/box/silver_ids{
- pixel_x = 5;
- pixel_y = 3
- },
-/obj/item/assembly/flash/handheld{
- pixel_x = -8
- },
-/turf/open/floor/wood,
-/area/command/heads_quarters/hop)
"lKt" = (
/obj/machinery/camera/motion{
c_tag = "Secure - AI Upper External North";
@@ -43160,17 +43198,6 @@
},
/turf/open/floor/iron/dark,
/area/command/teleporter)
-"mzy" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 6
- },
-/obj/structure/rack,
-/obj/machinery/light/directional/south,
-/obj/item/controller,
-/obj/item/compact_remote,
-/obj/item/compact_remote,
-/turf/open/floor/iron,
-/area/science/misc_lab)
"mzF" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/grille/broken,
@@ -43282,14 +43309,12 @@
/obj/item/stock_parts/cell/high/empty,
/turf/open/floor/iron/airless,
/area/mine/explored)
-"mBF" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 8;
- name = "Gas to Cooling Loop"
- },
+"mCl" = (
/obj/effect/turf_decal/stripes/line{
- dir = 8
+ dir = 1
},
+/obj/machinery/status_display/evac/directional/north,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/engine,
/area/engineering/supermatter/room)
"mCm" = (
@@ -43300,10 +43325,6 @@
/obj/machinery/power/apc/auto_name/north,
/turf/open/floor/iron/white,
/area/science/explab)
-"mCp" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"mDh" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/stack/cable_coil/cut,
@@ -43596,12 +43617,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/security/checkpoint/escape)
-"mJU" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"mKa" = (
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 1
@@ -45452,6 +45467,16 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/plating,
/area/maintenance/tram/mid)
+"nzp" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Cooling Loop to Gas"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"nzq" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -48255,16 +48280,6 @@
/obj/effect/landmark/start/roboticist,
/turf/open/floor/iron/dark,
/area/science/robotics/lab)
-"oEq" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 1
- },
-/obj/machinery/portable_atmospherics/canister,
-/obj/machinery/status_display/ai/directional/south,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"oEz" = (
/obj/machinery/porta_turret/ai{
dir = 4
@@ -48405,15 +48420,6 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/security/armory)
-"oHX" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 10
- },
-/obj/structure/rack,
-/obj/item/integrated_circuit/loaded/speech_relay,
-/obj/item/integrated_circuit/loaded/hello_world,
-/turf/open/floor/iron,
-/area/science/misc_lab)
"oIj" = (
/obj/effect/turf_decal/trimline/purple/filled/line,
/obj/effect/turf_decal/trimline/neutral/filled/warning,
@@ -50721,13 +50727,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/tram/left)
-"pAF" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"pAW" = (
/turf/closed/wall/r_wall,
/area/engineering/main)
@@ -54551,6 +54550,18 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"reE" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/camera/emp_proof{
+ c_tag = "Engineering - Engine Room South-West";
+ dir = 1;
+ network = list("ss13","engine","engineering")
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"reH" = (
/obj/effect/turf_decal/trimline/brown/filled/corner,
/turf/open/floor/iron,
@@ -55559,6 +55570,9 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/hallway/primary/tram/right)
+"ryT" = (
+/turf/open/floor/engine,
+/area/engineering/supermatter/room)
"ryX" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/structure/disposalpipe/segment,
@@ -57269,18 +57283,6 @@
},
/turf/open/floor/iron/white,
/area/science/explab)
-"shC" = (
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/plating,
-/area/engineering/supermatter)
"shF" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 4
@@ -58708,14 +58710,6 @@
},
/turf/open/floor/iron,
/area/command/gateway)
-"sIb" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible{
- dir = 4
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"sIY" = (
/obj/effect/turf_decal/trimline/brown/filled/line,
/obj/effect/turf_decal/trimline/neutral/filled/warning,
@@ -64945,15 +64939,6 @@
/obj/structure/cable,
/turf/open/floor/engine/hull/reinforced,
/area/space/nearstation)
-"vbZ" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible{
- dir = 4
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"vcb" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -67543,6 +67528,27 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/entry)
+"waQ" = (
+/obj/machinery/requests_console/directional/north{
+ announcementConsole = 1;
+ department = "Head of Personnel's Desk";
+ departmentType = 5;
+ name = "Head of Personnel's Requests Console"
+ },
+/obj/structure/table/wood,
+/obj/item/storage/secure/briefcase{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/obj/item/storage/box/silver_ids{
+ pixel_x = 5;
+ pixel_y = 3
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -8
+ },
+/turf/open/floor/wood,
+/area/command/heads_quarters/hop)
"wbl" = (
/obj/effect/turf_decal/siding/thinplating{
dir = 8
@@ -68087,12 +68093,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden,
/turf/open/floor/plating,
/area/maintenance/central/secondary)
-"wlW" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engineering/supermatter/room)
"wlZ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -102620,18 +102620,18 @@ jED
eTD
tBO
xPP
-wlW
-pAF
-ant
-wlW
-wlW
-mBF
-wlW
-wlW
-fpM
-pAF
-wlW
-mJU
+hbB
+hYh
+kvN
+hbB
+hbB
+hJt
+hbB
+hbB
+nzp
+hYh
+hbB
+iaX
tBO
xll
iTD
@@ -102877,7 +102877,7 @@ jED
ngN
tBO
xzd
-dmC
+ryT
aTB
svf
svf
@@ -102888,7 +102888,7 @@ mQb
lVq
dJi
jBg
-cxi
+reE
paJ
oFG
oFG
@@ -103134,17 +103134,17 @@ dTU
ayG
tBO
cjg
-mCp
-vbZ
-iNz
-oEq
-aUi
-gHk
-shC
-gHk
-aUi
-lwe
-sIb
+bpl
+iFS
+kCt
+khk
+lBf
+jnj
+gNA
+jnj
+lBf
+mCl
+iWO
mAL
kVP
ffs
@@ -119580,7 +119580,7 @@ xVI
omI
kgw
nAo
-oHX
+hRf
der
mkm
czI
@@ -119837,7 +119837,7 @@ pft
ixB
utS
vVw
-mzy
+drp
der
der
der
@@ -171446,7 +171446,7 @@ vGu
iEx
jgJ
vGu
-lKg
+waQ
dUE
vGR
qWH
diff --git a/_maps/map_files/tramstation/tramstation_skyrat.dmm b/_maps/map_files/tramstation/tramstation_skyrat.dmm
index 25e19ede942..db5bd968477 100644
--- a/_maps/map_files/tramstation/tramstation_skyrat.dmm
+++ b/_maps/map_files/tramstation/tramstation_skyrat.dmm
@@ -43204,6 +43204,8 @@
/obj/machinery/light/directional/south,
/obj/item/controller,
/obj/item/compact_remote,
+/obj/item/integrated_circuit/loaded/hello_world,
+/obj/item/integrated_circuit/loaded/speech_relay,
/obj/item/compact_remote,
/turf/open/floor/iron,
/area/science/misc_lab)
@@ -48493,9 +48495,7 @@
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 10
},
-/obj/structure/rack,
-/obj/item/integrated_circuit/loaded/speech_relay,
-/obj/item/integrated_circuit/loaded/hello_world,
+/obj/machinery/module_duplicator,
/turf/open/floor/iron,
/area/science/misc_lab)
"oIj" = (
diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index 74397ff6fc8..816dd507022 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -1369,6 +1369,12 @@
/// Cancels the attack chain, but without performing any other action.
#define COMSIG_CANCEL_USB_CABLE_ATTACK (1<<2)
+/// Called when the circuit component is saved.
+#define COMSIG_CIRCUIT_COMPONENT_SAVE "circuit_component_save"
+
+/// Called when an external object is loaded.
+#define COMSIG_MOVABLE_CIRCUIT_LOADED "movable_circuit_loaded"
+
/// Sent from /obj/structure/industrial_lift/tram when its travelling status updates. (travelling)
#define COMSIG_TRAM_SET_TRAVELLING "tram_set_travelling"
diff --git a/code/__DEFINES/wiremod.dm b/code/__DEFINES/wiremod.dm
index 07278ad0f7d..a34ce29423b 100644
--- a/code/__DEFINES/wiremod.dm
+++ b/code/__DEFINES/wiremod.dm
@@ -138,5 +138,7 @@
#define CIRCUIT_FLAG_INPUT_SIGNAL (1<<0)
/// Creates an output trigger that sends a pulse whenever the component is successfully triggered
#define CIRCUIT_FLAG_OUTPUT_SIGNAL (1<<1)
+/// Prohibits the component from being duplicated via the module duplicator
+#define CIRCUIT_FLAG_UNDUPEABLE (1<<2)
/// This circuit component does not show in the menu.
-#define CIRCUIT_FLAG_HIDDEN (1<<2)
+#define CIRCUIT_FLAG_HIDDEN (1<<3)
diff --git a/code/datums/components/shell.dm b/code/datums/components/shell.dm
index 9633575f583..3e875dc4393 100644
--- a/code/datums/components/shell.dm
+++ b/code/datums/components/shell.dm
@@ -23,10 +23,7 @@
src.shell_flags = shell_flags || src.shell_flags
src.capacity = capacity || src.capacity
- src.unremovable_circuit_components = unremovable_circuit_components
-
- for(var/obj/item/circuit_component/circuit_component as anything in unremovable_circuit_components)
- circuit_component.removable = FALSE
+ set_unremovable_circuit_components(unremovable_circuit_components)
/datum/component/shell/RegisterWithParent()
RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/on_attack_by)
@@ -39,6 +36,35 @@
if(shell_flags & SHELL_FLAG_REQUIRE_ANCHOR)
RegisterSignal(parent, COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH, .proc/on_unfasten)
RegisterSignal(parent, COMSIG_ATOM_USB_CABLE_TRY_ATTACH, .proc/on_atom_usb_cable_try_attach)
+ RegisterSignal(parent, COMSIG_MOVABLE_CIRCUIT_LOADED, .proc/on_load)
+
+/datum/component/shell/proc/set_unremovable_circuit_components(list/components)
+ if(unremovable_circuit_components)
+ QDEL_LIST(unremovable_circuit_components)
+
+ unremovable_circuit_components = components
+
+ for(var/obj/item/circuit_component/circuit_component as anything in unremovable_circuit_components)
+ circuit_component.removable = FALSE
+ RegisterSignal(circuit_component, COMSIG_CIRCUIT_COMPONENT_SAVE, .proc/save_component)
+
+/datum/component/shell/proc/save_component(datum/source, list/objects)
+ SIGNAL_HANDLER
+ objects += parent
+
+/datum/component/shell/proc/on_load(datum/source, obj/item/integrated_circuit/circuit, list/components)
+ SIGNAL_HANDLER
+ var/list/components_in_list = list()
+ for(var/obj/item/circuit_component/component as anything in components)
+ components_in_list += component.type
+
+ for(var/obj/item/circuit_component/component as anything in unremovable_circuit_components)
+ if(component.type in components_in_list)
+ continue
+ var/new_type = component.type
+ components += new new_type()
+ set_unremovable_circuit_components(components)
+ attach_circuit(circuit)
/datum/component/shell/UnregisterFromParent()
@@ -51,6 +77,7 @@
COMSIG_PARENT_EXAMINE,
COMSIG_ATOM_ATTACK_GHOST,
COMSIG_ATOM_USB_CABLE_TRY_ATTACH,
+ COMSIG_MOVABLE_CIRCUIT_LOADED,
))
QDEL_NULL(attached_circuit)
@@ -181,9 +208,9 @@
/**
* Checks for when the circuitboard moves. If it moves, removes it from the component.
*/
-/datum/component/shell/proc/on_circuit_moved(obj/item/integrated_circuit/circuit, atom/new_loc)
+/datum/component/shell/proc/on_circuit_moved(obj/item/integrated_circuit/circuit, atom/old_loc)
SIGNAL_HANDLER
- if(new_loc != parent)
+ if(circuit.loc != parent)
remove_circuit()
/**
@@ -208,7 +235,7 @@
*/
/datum/component/shell/proc/attach_circuit(obj/item/integrated_circuit/circuitboard, mob/living/user)
var/atom/movable/parent_atom = parent
- if(!user.transferItemToLoc(circuitboard, parent_atom))
+ if(user && !user.transferItemToLoc(circuitboard, parent_atom))
return
locked = FALSE
attached_circuit = circuitboard
@@ -226,6 +253,9 @@
if(shell_flags & SHELL_FLAG_REQUIRE_ANCHOR)
on_unfasten(parent_atom, parent_atom.anchored)
+ if(circuitboard.loc != parent_atom)
+ circuitboard.forceMove(parent_atom)
+
/**
* Removes the circuit from the component. Doesn't do any checks to see for an existing circuit so that should be done beforehand.
*/
diff --git a/code/datums/components/usb_port.dm b/code/datums/components/usb_port.dm
index 4770fd600f8..e4022f5ff18 100644
--- a/code/datums/components/usb_port.dm
+++ b/code/datums/components/usb_port.dm
@@ -15,20 +15,39 @@
/// The beam connecting the USB cable to the machine
var/datum/beam/usb_cable_beam
+ /// The current physical object that the beam is connected to and listens to.
+ var/atom/movable/physical_object
+
/datum/component/usb_port/Initialize(list/circuit_component_types)
if (!isatom(parent))
return COMPONENT_INCOMPATIBLE
circuit_components = list()
- for(var/circuit_component_type in circuit_component_types)
- var/obj/item/circuit_component/circuit_component = new circuit_component_type(null)
- circuit_components += circuit_component
+ set_circuit_components(circuit_component_types)
+
+/datum/component/usb_port/proc/set_circuit_components(list/components)
+ var/should_register = FALSE
+ if(length(circuit_components))
+ UnregisterFromParent()
+ should_register = TRUE
+ QDEL_LIST(circuit_components)
+
+ for(var/circuit_component in components)
+ var/obj/item/circuit_component/component = circuit_component
+ if(ispath(circuit_component))
+ component = new circuit_component(null)
+ RegisterSignal(component, COMSIG_CIRCUIT_COMPONENT_SAVE, .proc/save_component)
+ circuit_components += component
+
+ if(should_register)
+ RegisterWithParent()
/datum/component/usb_port/RegisterWithParent()
RegisterSignal(parent, COMSIG_ATOM_USB_CABLE_TRY_ATTACH, .proc/on_atom_usb_cable_try_attach)
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_moved)
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine)
+ RegisterSignal(parent, COMSIG_MOVABLE_CIRCUIT_LOADED, .proc/on_load)
for(var/obj/item/circuit_component/component as anything in circuit_components)
component.register_usb_parent(parent)
@@ -38,14 +57,36 @@
COMSIG_ATOM_USB_CABLE_TRY_ATTACH,
COMSIG_MOVABLE_MOVED,
COMSIG_PARENT_EXAMINE,
+ COMSIG_MOVABLE_CIRCUIT_LOADED,
))
for(var/obj/item/circuit_component/component as anything in circuit_components)
component.unregister_usb_parent(parent)
unregister_circuit_signals()
+ unregister_physical_signals()
attached_circuit = null
+/datum/component/usb_port/proc/save_component(datum/source, list/objects)
+ SIGNAL_HANDLER
+ objects += parent
+
+/datum/component/usb_port/proc/on_load(datum/source, obj/item/integrated_circuit/circuit, list/components)
+ SIGNAL_HANDLER
+ var/list/components_in_list = list()
+ for(var/obj/item/circuit_component/component as anything in components)
+ components_in_list += component.type
+
+ for(var/obj/item/circuit_component/component as anything in circuit_components)
+ if(component.type in components_in_list)
+ continue
+ components += component.type
+ set_circuit_components(components)
+ var/obj/item/usb_cable/cable = new(circuit.drop_location())
+ cable.attached_circuit = circuit
+
+ on_atom_usb_cable_try_attach(src, cable, null)
+
/datum/component/usb_port/Destroy()
QDEL_LIST(circuit_components)
QDEL_NULL(usb_cable_beam)
@@ -62,20 +103,23 @@
UnregisterSignal(attached_circuit, list(
COMSIG_CIRCUIT_SHELL_REMOVED,
COMSIG_PARENT_QDELETING,
+ COMSIG_CIRCUIT_SET_SHELL,
))
- var/shell = attached_circuit.shell
- if (!isnull(shell))
- UnregisterSignal(shell, COMSIG_MOVABLE_MOVED)
- UnregisterSignal(shell, COMSIG_PARENT_EXAMINE)
+/datum/component/usb_port/proc/unregister_physical_signals()
+ if (isnull(physical_object))
+ return
+
+ UnregisterSignal(physical_object, list(
+ COMSIG_MOVABLE_MOVED,
+ COMSIG_PARENT_EXAMINE,
+ ))
/datum/component/usb_port/proc/attach_circuit_components(obj/item/integrated_circuit/circuitboard)
for(var/obj/item/circuit_component/component as anything in circuit_components)
circuitboard.add_component(component)
RegisterSignal(component, COMSIG_CIRCUIT_COMPONENT_REMOVED, .proc/on_circuit_component_removed)
- return
-
/datum/component/usb_port/proc/on_examine(datum/source, mob/user, list/examine_text)
SIGNAL_HANDLER
@@ -95,15 +139,18 @@
var/atom/atom_parent = parent
if (!isnull(attached_circuit))
- atom_parent.balloon_alert(user, "usb already connected")
+ if(user)
+ atom_parent.balloon_alert(user, "usb already connected")
return COMSIG_CANCEL_USB_CABLE_ATTACK
if (isnull(connecting_cable.attached_circuit))
- connecting_cable.balloon_alert(user, "connect to a shell first")
+ if(user)
+ connecting_cable.balloon_alert(user, "connect to a shell first")
return COMSIG_CANCEL_USB_CABLE_ATTACK
if (!IN_GIVEN_RANGE(connecting_cable.attached_circuit, parent, USB_CABLE_MAX_RANGE))
- connecting_cable.balloon_alert(user, "too far away")
+ if(user)
+ connecting_cable.balloon_alert(user, "too far away")
return COMSIG_CANCEL_USB_CABLE_ATTACK
usb_cable_ref = WEAKREF(connecting_cable)
@@ -111,17 +158,38 @@
connecting_cable.forceMove(attached_circuit)
attach_circuit_components(attached_circuit)
- attached_circuit.interact(user)
+ if(user)
+ attached_circuit.interact(user)
- usb_cable_beam = atom_parent.Beam(attached_circuit.shell, "usb_cable_beam", 'icons/obj/wiremod.dmi')
+ var/new_physical_object = attached_circuit.shell
+ if(!new_physical_object)
+ new_physical_object = attached_circuit
RegisterSignal(attached_circuit, COMSIG_CIRCUIT_SHELL_REMOVED, .proc/on_circuit_shell_removed)
RegisterSignal(attached_circuit, COMSIG_PARENT_QDELETING, .proc/on_circuit_deleting)
- RegisterSignal(attached_circuit.shell, COMSIG_MOVABLE_MOVED, .proc/on_moved)
- RegisterSignal(attached_circuit.shell, COMSIG_PARENT_EXAMINE, .proc/on_examine_shell)
+ RegisterSignal(attached_circuit, COMSIG_CIRCUIT_SET_SHELL, .proc/on_set_shell)
+ set_physical_object(new_physical_object)
return COMSIG_USB_CABLE_ATTACHED
+/datum/component/usb_port/proc/set_physical_object(atom/movable/new_physical_object)
+ if(physical_object)
+ unregister_physical_signals()
+ if(usb_cable_beam)
+ QDEL_NULL(usb_cable_beam)
+
+ var/atom/atom_parent = parent
+ usb_cable_beam = atom_parent.Beam(new_physical_object, "usb_cable_beam", 'icons/obj/wiremod.dmi')
+
+ RegisterSignal(new_physical_object, COMSIG_MOVABLE_MOVED, .proc/on_moved)
+ RegisterSignal(new_physical_object, COMSIG_PARENT_EXAMINE, .proc/on_examine_shell)
+ physical_object = new_physical_object
+
+// Adds support for loading circuits without shells but with usb cables, or loading circuits with shells because the shells might not load first.
+/datum/component/usb_port/proc/on_set_shell(datum/source, atom/movable/new_shell)
+ SIGNAL_HANDLER
+ set_physical_object(new_shell)
+
/datum/component/usb_port/proc/on_moved()
SIGNAL_HANDLER
@@ -157,11 +225,13 @@
component.moveToNullspace()
unregister_circuit_signals()
+ unregister_physical_signals()
var/atom/atom_parent = parent
usb_cable.forceMove(atom_parent.drop_location())
usb_cable.balloon_alert_to_viewers("snap")
+ physical_object = null
attached_circuit = null
usb_cable_ref = null
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index c20e2b96d61..df05f7a897e 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -119,7 +119,8 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list(
/client/proc/polymorph_all,
/client/proc/show_tip,
/client/proc/smite,
- /client/proc/admin_away
+ /client/proc/admin_away,
+ /client/proc/load_circuit,
))
GLOBAL_PROTECT(admin_verbs_fun)
GLOBAL_LIST_INIT(admin_verbs_spawn, list(/datum/admins/proc/spawn_atom, /datum/admins/proc/podspawn_atom, /datum/admins/proc/spawn_cargo, /datum/admins/proc/spawn_objasmob, /client/proc/respawn_character, /datum/admins/proc/beaker_panel))
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index 12f697b8a23..a1a81a566ea 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -780,3 +780,11 @@
build_path = /obj/item/circuitboard/machine/component_printer
category = list("Misc. Machinery")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
+
+/datum/design/board/module_printer
+ name = "Machine Design (Module Duplicator)"
+ desc = "The circuit board for a module duplicator"
+ id = "module_duplicator"
+ build_path = /obj/item/circuitboard/machine/module_duplicator
+ category = list("Misc. Machinery")
+ departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 39dce586cdb..c8f7776bdd3 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -253,6 +253,7 @@
"compact_remote_shell",
"component_printer",
"integrated_circuit",
+ "module_duplicator",
"usb_cable",
)
diff --git a/code/modules/wiremod/component_printer.dm b/code/modules/wiremod/component_printer.dm
index b04d5c70592..e170dcd83b6 100644
--- a/code/modules/wiremod/component_printer.dm
+++ b/code/modules/wiremod/component_printer.dm
@@ -132,3 +132,179 @@
/obj/item/stock_parts/manipulator = 2,
/obj/item/reagent_containers/glass/beaker = 2,
)
+
+/// Module duplicator, allows you to save and recreate module components.
+/obj/machinery/module_duplicator
+ name = "module duplicator"
+ desc = "Allows you to duplicate module components so that you don't have to recreate them. Scan a module component over this machine to add it as an entry."
+ icon = 'icons/obj/wiremod_fab.dmi'
+ icon_state = "module-fab-idle"
+ circuit = /obj/item/circuitboard/machine/module_duplicator
+
+ /// The internal material bus
+ var/datum/component/remote_materials/materials
+
+ density = TRUE
+
+ var/list/scanned_designs = list()
+
+ var/cost_per_component = 1000
+
+/obj/machinery/module_duplicator/Initialize(mapload)
+ . = ..()
+
+ materials = AddComponent( \
+ /datum/component/remote_materials, \
+ "module_duplicator", \
+ mapload, \
+ mat_container_flags = BREAKDOWN_FLAGS_LATHE, \
+ )
+
+/obj/machinery/module_duplicator/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "ComponentPrinter", name)
+ ui.open()
+
+/obj/machinery/module_duplicator/ui_assets(mob/user)
+ return list(
+ get_asset_datum(/datum/asset/spritesheet/sheetmaterials)
+ )
+
+/obj/machinery/module_duplicator/ui_act(action, list/params)
+ . = ..()
+ if (.)
+ return
+
+ switch (action)
+ if ("print")
+ var/design_id = text2num(params["designId"])
+
+ if (design_id < 1 || design_id > length(scanned_designs))
+ return TRUE
+
+ var/list/design = scanned_designs[design_id]
+
+ if (materials.on_hold())
+ say("Mineral access is on hold, please contact the quartermaster.")
+ return TRUE
+
+ if (!materials.mat_container?.has_materials(design["materials"]))
+ say("Not enough materials.")
+ return TRUE
+
+ balloon_alert_to_viewers("printed [design["name"]]")
+ materials.mat_container?.use_materials(design["materials"])
+ materials.silo_log(src, "printed", -1, design["name"], design["materials"])
+ var/atom/printed_design = print_module(design)
+ printed_design.pixel_x = printed_design.base_pixel_x + rand(-5, 5)
+ printed_design.pixel_y = printed_design.base_pixel_y + rand(-5, 5)
+ if ("remove_mat")
+ var/datum/material/material = locate(params["ref"])
+ var/amount = text2num(params["amount"])
+
+ if (!amount)
+ return TRUE
+
+ // SAFETY: eject_sheets checks for valid mats
+ materials.eject_sheets(material, amount)
+
+ return TRUE
+
+/obj/machinery/module_duplicator/proc/print_module(list/design)
+ var/obj/item/circuit_component/module/module = new(drop_location())
+ module.load_data_from_list(design["dupe_data"])
+ return module
+
+/obj/machinery/module_duplicator/attackby(obj/item/weapon, mob/user, params)
+ if(!istype(weapon, /obj/item/circuit_component/module))
+ return ..()
+
+ var/obj/item/circuit_component/module/module = weapon
+ if(module.circuit_flags & CIRCUIT_FLAG_UNDUPEABLE)
+ balloon_alert(user, "module cannot be saved!")
+ return ..()
+
+ if(module.display_name == initial(module.display_name))
+ balloon_alert(user, "module needs a name!")
+ return ..()
+
+ for(var/list/component_data as anything in scanned_designs)
+ if(component_data["name"] == module.display_name)
+ balloon_alert(user, "module name already exists!")
+ return ..()
+
+ var/total_cost = 0
+ for(var/obj/item/circuit_component/component as anything in module.internal_circuit.attached_components)
+ if(component.circuit_flags & CIRCUIT_FLAG_UNDUPEABLE)
+ balloon_alert(user, "module contains prohibited components!")
+ return ..()
+
+ total_cost += cost_per_component
+
+ var/list/data = list()
+
+ data["dupe_data"] = list()
+ module.save_data_to_list(data["dupe_data"])
+
+ data["name"] = module.display_name
+ data["desc"] = "A module that has been loaded in by [user]."
+ data["materials"] = list(/datum/material/glass = total_cost)
+
+ scanned_designs += list(data)
+
+ balloon_alert(user, "module has been saved.")
+ playsound(src, 'sound/machines/ping.ogg', 50)
+
+
+/obj/machinery/module_duplicator/ui_data(mob/user)
+ var/list/data = list()
+ data["materials"] = materials.mat_container.ui_data()
+ return data
+
+/obj/machinery/module_duplicator/ui_static_data(mob/user)
+ var/list/data = list()
+
+ var/list/designs = list()
+
+ var/index = 1
+ for (var/list/design as anything in scanned_designs)
+ designs["[index]"] = list(
+ "name" = design["name"],
+ "description" = design["desc"],
+ "materials" = get_material_cost_data(design["materials"]),
+ "categories" = list("Circuitry"),
+ )
+ index++
+
+ data["designs"] = designs
+
+ return data
+
+/obj/machinery/module_duplicator/crowbar_act(mob/living/user, obj/item/tool)
+ if(..())
+ return TRUE
+ return default_deconstruction_crowbar(tool)
+
+/obj/machinery/module_duplicator/screwdriver_act(mob/living/user, obj/item/tool)
+ if(..())
+ return TRUE
+ return default_deconstruction_screwdriver(user, "module-fab-o", "module-fab-idle", tool)
+
+/obj/machinery/module_duplicator/proc/get_material_cost_data(list/materials)
+ var/list/data = list()
+
+ for (var/datum/material/material_type as anything in materials)
+ data[initial(material_type.name)] = materials[material_type]
+
+ return data
+
+/obj/item/circuitboard/machine/module_duplicator
+ name = "\improper Module Duplicator (Machine Board)"
+ greyscale_colors = CIRCUIT_COLOR_SCIENCE
+ build_path = /obj/machinery/module_duplicator
+ req_components = list(
+ /obj/item/stock_parts/matter_bin = 2,
+ /obj/item/stock_parts/manipulator = 2,
+ /obj/item/reagent_containers/glass/beaker = 2,
+ )
diff --git a/code/modules/wiremod/components/abstract/module.dm b/code/modules/wiremod/components/abstract/module.dm
index ba55b12c56b..a7da816e6b1 100644
--- a/code/modules/wiremod/components/abstract/module.dm
+++ b/code/modules/wiremod/components/abstract/module.dm
@@ -18,7 +18,7 @@
var/port_limit = 10
/obj/item/integrated_circuit/module
- var/obj/item/circuit_component/attached_module
+ var/obj/item/circuit_component/module/attached_module
/obj/item/integrated_circuit/module/ui_host(mob/user)
. = ..()
@@ -29,6 +29,18 @@
. = ..()
attached_module.display_name = new_name
+/obj/item/integrated_circuit/module/load_component(type)
+ if(!attached_module)
+ return ..()
+
+ if(ispath(type, /obj/item/circuit_component/module_input))
+ return attached_module.input_component
+
+ if(ispath(type, /obj/item/circuit_component/module_output))
+ return attached_module.output_component
+
+ return ..()
+
/obj/item/integrated_circuit/module/Destroy()
attached_module = null
return ..()
@@ -88,7 +100,7 @@
input_component = new(internal_circuit)
input_component.attached_module = src
internal_circuit.add_component(input_component)
- input_component.rel_x = 400
+ input_component.rel_x = 0
input_component.rel_y = 200
output_component = new(internal_circuit)
@@ -97,6 +109,49 @@
output_component.rel_x = 400
output_component.rel_y = 200
+/obj/item/circuit_component/module/save_data_to_list(list/component_data)
+ . = ..()
+ component_data["integrated_circuit"] = internal_circuit.convert_to_json()
+
+ var/list/input_data = list()
+ for(var/datum/port/input/input_port as anything in input_ports)
+ input_data += list(list(
+ "name" = input_port.name,
+ "type" = input_port.datatype,
+ ))
+
+ var/list/output_data = list()
+ for(var/datum/port/output/output_port as anything in output_ports)
+ output_data += list(list(
+ "name" = output_port.name,
+ "type" = output_port.datatype,
+ ))
+
+ component_data["input_ports"] = input_data
+ component_data["output_ports"] = output_data
+
+/obj/item/circuit_component/module/load_data_from_list(list/component_data)
+ . = ..()
+
+ var/list/input_ports = component_data["input_ports"]
+ for(var/list/port_data as anything in input_ports)
+ add_and_link_input_port(port_data["name"], port_data["type"])
+
+ var/list/output_ports = component_data["output_ports"]
+ for(var/list/port_data as anything in output_ports)
+ add_and_link_output_port(port_data["name"], port_data["type"])
+
+ if(component_data["integrated_circuit"])
+ internal_circuit.load_circuit_data(component_data["integrated_circuit"])
+
+/obj/item/circuit_component/module/proc/add_and_link_input_port(name, type)
+ var/datum/port/new_port = add_input_port(name, type)
+ linked_ports[new_port] = input_component.add_output_port(name, type)
+
+/obj/item/circuit_component/module/proc/add_and_link_output_port(name, type)
+ var/datum/port/new_port = output_component.add_input_port(name, type)
+ linked_ports[new_port] = add_output_port(name, type)
+
/obj/item/circuit_component/module/add_to(obj/item/integrated_circuit/added_to)
. = ..()
RegisterSignal(added_to, COMSIG_CIRCUIT_SET_CELL, .proc/handle_set_cell)
@@ -177,8 +232,7 @@
if("add_input_port")
if(length(input_ports) > port_limit)
return
- var/datum/port/new_port = add_input_port("Input Port", PORT_TYPE_ANY)
- linked_ports[new_port] = input_component.add_output_port("Input Port", PORT_TYPE_ANY)
+ add_and_link_input_port("Input Port", PORT_TYPE_ANY)
. = TRUE
if("remove_input_port")
var/port_id = text2num(params["port_id"])
@@ -192,8 +246,7 @@
if("add_output_port")
if(length(output_ports) > port_limit)
return
- var/datum/port/new_port = output_component.add_input_port("Output Port", PORT_TYPE_ANY)
- linked_ports[new_port] = add_output_port("Output Port", PORT_TYPE_ANY)
+ add_and_link_output_port("Output Port", PORT_TYPE_ANY)
. = TRUE
if("remove_output_port")
var/port_id = text2num(params["port_id"])
diff --git a/code/modules/wiremod/duplicator.dm b/code/modules/wiremod/duplicator.dm
new file mode 100644
index 00000000000..d7546833206
--- /dev/null
+++ b/code/modules/wiremod/duplicator.dm
@@ -0,0 +1,194 @@
+#define LOG_ERROR(list, error) if(list) { list.Add(error) }
+
+// Determines if a port can have a predefined input value if it is of this type.
+GLOBAL_LIST_INIT(circuit_dupe_whitelisted_types, list(
+ PORT_TYPE_NUMBER,
+ PORT_TYPE_STRING,
+ PORT_TYPE_ANY,
+))
+
+/// Loads a circuit based on json data at a location. Can also load usb connections, such as arrest consoles.
+/obj/item/integrated_circuit/proc/load_circuit_data(json_data, list/errors)
+ var/list/general_data = json_decode(json_data)
+
+ if(!general_data)
+ LOG_ERROR(errors, "Invalid json format!")
+ return
+
+ if(general_data["display_name"])
+ set_display_name(general_data["display_name"])
+
+ var/list/circuit_data = general_data["components"]
+ var/list/identifiers_to_circuit = list()
+ for(var/identifier in circuit_data)
+ var/list/component_data = circuit_data[identifier]
+ var/type = text2path(component_data["type"])
+ if(!ispath(type, /obj/item/circuit_component))
+ LOG_ERROR(errors, "Invalid path for circuit component, expected [/obj/item/circuit_component], got [type]")
+ continue
+ var/obj/item/circuit_component/component = load_component(type)
+ identifiers_to_circuit[identifier] = component
+ component.load_data_from_list(component_data)
+
+ var/list/external_objects = general_data["external_objects"]
+ for(var/identifier in external_objects)
+ var/list/object_data = external_objects[identifier]
+ var/type = text2path(object_data["type"])
+ if(!ispath(type))
+ LOG_ERROR(errors, "Invalid path for external object, expected a path, got [type]")
+ continue
+ var/atom/movable/object = new type(drop_location())
+ var/list/connected_components = list()
+ for(var/component_id in object_data["connected_components"])
+ var/obj/item/circuit_component/component = identifiers_to_circuit[component_id]
+ if(!component)
+ continue
+ connected_components += component
+ SEND_SIGNAL(object, COMSIG_MOVABLE_CIRCUIT_LOADED, src, connected_components)
+
+ for(var/identifier in identifiers_to_circuit)
+ var/obj/item/circuit_component/component = identifiers_to_circuit[identifier]
+ var/list/component_data = circuit_data[identifier]
+
+ var/list/connections = component_data["connections"]
+ for(var/port_name in connections)
+ var/datum/port/input/port
+ var/list/connection_data = connections[port_name]
+ for(var/datum/port/input/port_to_check as anything in component.input_ports)
+ if(port_to_check.name == port_name)
+ port = port_to_check
+ break
+
+ if(!port)
+ LOG_ERROR(errors, "Port [port_name] not found for [component.type].")
+ continue
+
+ if(connection_data["stored_data"])
+ if(!(port.datatype in GLOB.circuit_dupe_whitelisted_types))
+ continue
+ port.set_input(connection_data["stored_data"])
+ continue
+
+ var/obj/item/circuit_component/connected_component = identifiers_to_circuit[connection_data["component_id"]]
+ if(!connected_component)
+ LOG_ERROR(errors, "No connected component found for [component.type] for port [connection_data["port_name"]]. (connected component identifier: [connection_data["component_id"]])")
+ continue
+
+ var/datum/port/output/output_port
+ var/output_port_name = connection_data["port_name"]
+ for(var/datum/port/output/port_to_check as anything in connected_component.output_ports)
+ if(port_to_check.name == output_port_name)
+ output_port = port_to_check
+ break
+
+ if(!output_port)
+ LOG_ERROR(errors, "No output port found for [component.type] for port [output_port_name] on component [connected_component.type]")
+ continue
+
+ port.register_output_port(output_port)
+
+#undef LOG_ERROR
+
+/// Converts a circuit into json.
+/obj/item/integrated_circuit/proc/convert_to_json()
+ var/list/circuit_to_identifiers = list()
+ var/list/identifiers = list()
+ var/list/external_objects = list() // Objects that are connected to a component. These objects will be linked to the components.
+ for(var/obj/item/circuit_component/component as anything in attached_components)
+ var/identifier = "[component.type][length(identifiers)]"
+ identifiers += identifier
+ circuit_to_identifiers[component] = identifier
+ var/list/objects = list()
+ SEND_SIGNAL(component, COMSIG_CIRCUIT_COMPONENT_SAVE, objects)
+
+ for(var/atom/movable/object as anything in objects)
+ if(object in external_objects)
+ external_objects[object] += identifier
+ continue
+ external_objects[object] = list(identifier)
+
+ var/list/circuit_data = list()
+ for(var/obj/item/circuit_component/component as anything in circuit_to_identifiers)
+ var/identifier = circuit_to_identifiers[component]
+ var/list/component_data = list()
+
+ component_data["type"] = component.type
+
+ var/list/connections = list()
+ for(var/datum/port/input/port as anything in component.input_ports)
+ var/list/connection_data = list()
+ var/datum/port/output/output_port = port.connected_port
+ if(!output_port)
+ if(isnull(port.input_value) || !(port.datatype in GLOB.circuit_dupe_whitelisted_types))
+ continue
+ connection_data["stored_data"] = port.input_value
+ connections[port.name] = connection_data
+ continue
+ connection_data["component_id"] = circuit_to_identifiers[output_port.connected_component]
+ connection_data["port_name"] = output_port.name
+ connections[port.name] = connection_data
+ component_data["connections"] = connections
+
+ component.save_data_to_list(component_data)
+ circuit_data[identifier] = component_data
+
+ var/external_objects_key = list()
+ for(var/atom/movable/object as anything in external_objects)
+ var/list/new_data = list()
+ new_data["type"] = object.type
+ new_data["connected_components"] = external_objects[object]
+ external_objects_key["[object.type][length(external_objects_key)]"] = new_data
+
+ var/list/general_data = list()
+ general_data["components"] = circuit_data
+ general_data["external_objects"] = external_objects_key
+ general_data["display_name"] = display_name
+
+ return json_encode(general_data)
+
+/obj/item/integrated_circuit/proc/load_component(type)
+ var/obj/item/circuit_component/component = new type(src)
+ add_component(component)
+ return component
+
+/// Saves data to a list. Shouldn't be used unless you are quite literally saving the data of a component to a list. Input value is the list to save the data to
+/obj/item/circuit_component/proc/save_data_to_list(list/component_data)
+ component_data["rel_x"] = rel_x
+ component_data["rel_y"] = rel_y
+
+ component_data["option"] = current_option
+
+/// Loads data from a list
+/obj/item/circuit_component/proc/load_data_from_list(list/component_data)
+ rel_x = component_data["rel_x"]
+ rel_y = component_data["rel_y"]
+
+ set_option(component_data["option"])
+
+/client/proc/load_circuit()
+ set name = "Load Circuit"
+ set category = "Admin.Fun"
+
+ if(!check_rights(R_ADMIN) || !check_rights(R_FUN))
+ return
+
+ var/list/errors = list()
+
+ var/option = alert(usr, "Load by file or direct input?", "Load by file or string", "File", "Direct Input")
+ var/txt
+ switch(option)
+ if("File")
+ txt = file2text(input(usr, "Input File") as file|null)
+ if("Direct Input")
+ txt = input(usr, "Input JSON", "Input JSON") as text|null
+
+ if(!txt)
+ return
+
+ var/obj/item/integrated_circuit/loaded/circuit = new(mob.drop_location())
+ circuit.load_circuit_data(txt, errors)
+
+ if(length(errors))
+ to_chat(src, span_warning("The following errors were found whilst compiling the circuit data:"))
+ for(var/error in errors)
+ to_chat(src, span_warning(error))
diff --git a/code/modules/wiremod/integrated_circuit.dm b/code/modules/wiremod/integrated_circuit.dm
index b203be6411e..37ec8397c1b 100644
--- a/code/modules/wiremod/integrated_circuit.dm
+++ b/code/modules/wiremod/integrated_circuit.dm
@@ -271,6 +271,8 @@
.["examined_rel_x"] = examined_rel_x
.["examined_rel_y"] = examined_rel_y
+ .["is_admin"] = check_rights_for(user.client, R_ADMIN)
+
/obj/item/integrated_circuit/ui_host(mob/user)
if(shell)
return shell
@@ -461,6 +463,15 @@
if("remove_examined_component")
examined_component = null
. = TRUE
+ if("save_circuit")
+ var/client/saver = usr.client
+ if(!check_rights_for(saver, R_ADMIN))
+ return
+ var/temp_file = file("data/CircuitDownloadTempFile")
+ fdel(temp_file)
+ WRITE_FILE(temp_file, convert_to_json())
+ DIRECT_OUTPUT(saver, ftp(temp_file, "[display_name || "circuit"].json"))
+ . = TRUE
/obj/item/integrated_circuit/proc/on_atom_usb_cable_try_attach(datum/source, obj/item/usb_cable/usb_cable, mob/user)
SIGNAL_HANDLER
diff --git a/code/modules/wiremod/port.dm b/code/modules/wiremod/port.dm
index a9b2b9b962b..8a195f9a897 100644
--- a/code/modules/wiremod/port.dm
+++ b/code/modules/wiremod/port.dm
@@ -76,6 +76,10 @@
return PORT_TYPE_ATOM
else
return copytext("[value_to_convert]", 1, PORT_MAX_STRING_LENGTH)
+ if(PORT_TYPE_NUMBER)
+ if(!istext(value_to_convert) && !isnum(value_to_convert))
+ return null
+ return text2num(value_to_convert)
if(isatom(value_to_convert))
var/atom/atom_to_check = value_to_convert
diff --git a/icons/obj/wiremod_fab.dmi b/icons/obj/wiremod_fab.dmi
index d41ec99ce5f..e0b12540256 100644
Binary files a/icons/obj/wiremod_fab.dmi and b/icons/obj/wiremod_fab.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index b38a0c8b09c..2e68e0feeed 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3687,6 +3687,7 @@
#include "code\modules\vending\youtool.dm"
#include "code\modules\wiremod\component.dm"
#include "code\modules\wiremod\component_printer.dm"
+#include "code\modules\wiremod\duplicator.dm"
#include "code\modules\wiremod\integrated_circuit.dm"
#include "code\modules\wiremod\marker.dm"
#include "code\modules\wiremod\port.dm"
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js
index 3667c66f9fd..3ef75b84014 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js
@@ -1,5 +1,15 @@
import { useBackend, useLocalState } from '../../backend';
-import { Box, Stack, Icon, Button, Input, Flex, NumberInput, Dropdown, InfinitePlane } from '../../components';
+import {
+ Box,
+ Stack,
+ Icon,
+ Button,
+ Input,
+ Flex,
+ NumberInput,
+ Dropdown,
+ InfinitePlane,
+} from '../../components';
import { Component, createRef } from 'inferno';
import { Window } from '../../layouts';
import { CSS_COLORS } from '../../constants';
@@ -7,52 +17,41 @@ import { classes, shallowDiffers } from '../../../common/react';
import { resolveAsset } from '../../assets';
import { CircuitInfo } from './CircuitInfo';
-const NULL_REF = "[0x0]";
+const NULL_REF = '[0x0]';
const ABSOLUTE_Y_OFFSET = -32;
const SVG_CURVE_INTENSITY = 64;
const BasicInput = (props, context) => {
- const {
- children,
- name,
- setValue,
- defaultValue,
- value,
- } = props;
- return (value !== null) && (
- e.stopPropagation()}>
-
-
-
- {children}
-
-
- ) || (
-