From 778c30321592228095241fa418cee2d54db9c1d4 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Thu, 29 Jul 2021 00:28:01 +0200 Subject: [PATCH] [MIRROR] Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. (#7197) * Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. (#60222) Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com> * Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. * a Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com> Co-authored-by: Gandalf --- .../map_files/Deltastation/DeltaStation2.dmm | 157 +-- .../Deltastation/DeltaStation2_skyrat.dmm | 1 + .../map_files/IceBoxStation/IceBoxStation.dmm | 1113 ++++++++-------- .../IceBoxStation/IceBoxStation_skyrat.dmm | 1 + _maps/map_files/KiloStation/KiloStation.dmm | 494 ++++--- .../KiloStation/KiloStation_skyrat.dmm | 24 +- _maps/map_files/MetaStation/MetaStation.dmm | 1177 +++++++++-------- .../MetaStation/MetaStation_skyrat.dmm | 1 + _maps/map_files/tramstation/tramstation.dmm | 404 +++--- .../tramstation/tramstation_skyrat.dmm | 6 +- code/__DEFINES/dcs/signals.dm | 6 + code/__DEFINES/wiremod.dm | 4 +- code/datums/components/shell.dm | 44 +- code/datums/components/usb_port.dm | 102 +- code/modules/admin/admin_verbs.dm | 3 +- .../research/designs/machine_designs.dm | 8 + code/modules/research/techweb/all_nodes.dm | 1 + code/modules/wiremod/component_printer.dm | 176 +++ .../wiremod/components/abstract/module.dm | 65 +- code/modules/wiremod/duplicator.dm | 194 +++ code/modules/wiremod/integrated_circuit.dm | 11 + code/modules/wiremod/port.dm | 4 + icons/obj/wiremod_fab.dmi | Bin 8522 -> 8897 bytes tgstation.dme | 1 + .../interfaces/IntegratedCircuit/index.js | 348 +++-- 25 files changed, 2433 insertions(+), 1912 deletions(-) create mode 100644 code/modules/wiremod/duplicator.dm 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 d41ec99ce5f140296abd4a31a4b8663be7412853..e0b1254025635560816f744b83a4a56b0ee2b520 100644 GIT binary patch literal 8897 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 SS>Qb>fazIFlj76vasLZR|8)TX literal 8522 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 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()}> - - - ) || port.name} + )) + || (isOutput && ( + + )) + || port.name} - {port.type || "any"} + textAlign={isOutput ? 'right' : 'left'}> + {port.type || 'any'}