From 6211c7423ec025c617808fc8b2efa0c1f7ad627b Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Thu, 4 May 2023 16:20:25 -0500 Subject: [PATCH 01/15] [MDB Ignore] Adds a unit test for typepaths that are required to be mapped onto each station map (#74985) Inspired by #74967 and #68459 , and the fact that Tramstation regresses very often - Adds a unit test, `required_map_items`, which ensures that certain typepaths which should definitely be mapped onto every map is mapped onto every map It can also be used to ensure that items which should not be mapped in multiple times are not, among other things. I included a few examples - - Min 1, max inf of each head of staff stamps - Min 1, max 1 departmental order consoles - Min 1, max inf comms console - Min 1, max 1 Pun Pun - Min 1, max 1 Poly - Min 1, max 1 Ian If, in the future, a mapper decides they (for some reason) do not want a certain previously-required item on their map, the test can be adjusted such that it allows excluding or something, but currently it should be for items which require conscious thought about. I attempted to make this a linter before realizing two things 1. Someone might make a spawner which spawns the items, or they might get placed in a locker, in any case this accounts for everything on init 2. Linters run on every map, non-station maps included So I went with a test Why is it always the CMO stamp? Not necessary (unless I find a map missing something, then this will be updated) --- .../SpaceRuins/hilbertresearchfacility.dmm | 2 +- _maps/RandomRuins/SpaceRuins/waystation.dmm | 2 +- _maps/RandomZLevels/moonoutpost19.dmm | 2 +- _maps/RandomZLevels/undergroundoutpost45.dmm | 4 +- _maps/map_files/BoxStation/BoxStation.dmm | 14 ++-- .../map_files/Deltastation/DeltaStation2.dmm | 14 ++-- .../map_files/IceBoxStation/IceBoxStation.dmm | 14 ++-- _maps/map_files/KiloStation/KiloStation.dmm | 12 +-- _maps/map_files/MetaStation/MetaStation.dmm | 14 ++-- _maps/map_files/NorthStar/north_star.dmm | 14 ++-- _maps/map_files/tramstation/tramstation.dmm | 12 +-- _maps/multiz_debug.json | 11 ++- _maps/northstar.json | 3 + _maps/runtimestation.json | 3 + _maps/shuttles/emergency_tranquility.dmm | 2 +- code/__DEFINES/unit_tests.dm | 30 ++++++++ code/_globalvars/phobias.dm | 18 +---- code/datums/components/crafting/misc.dm | 2 +- code/datums/map_config.dm | 13 ++++ .../game/machinery/computer/communications.dm | 3 + code/modules/cargo/department_order.dm | 2 + code/modules/jobs/job_types/captain.dm | 2 +- code/modules/jobs/job_types/chief_engineer.dm | 2 +- .../jobs/job_types/chief_medical_officer.dm | 2 +- .../jobs/job_types/head_of_personnel.dm | 2 +- .../jobs/job_types/head_of_security.dm | 2 +- code/modules/jobs/job_types/quartermaster.dm | 2 +- .../jobs/job_types/research_director.dm | 2 +- .../modules/mob/living/basic/pets/dog/_dog.dm | 1 + .../mob/living/basic/pets/parrot/poly.dm | 1 + .../mob/living/carbon/human/monkey/monkey.dm | 2 + .../mob/living/simple_animal/friendly/cat.dm | 1 + code/modules/paperwork/paperwork.dm | 14 ++-- code/modules/paperwork/stamps.dm | 29 +++++--- code/modules/unit_tests/_unit_tests.dm | 7 ++ code/modules/unit_tests/required_map_items.dm | 73 +++++++++++++++++++ code/modules/unit_tests/unit_test.dm | 54 +++++++++----- .../cassettes/machines/cassette_rack.dm | 1 + .../modules/cassettes/machines/dj_station.dm | 1 + .../cassettes/machines/portable_mixer.dm | 4 + .../modules/cassettes/machines/postbox.dm | 4 + .../modules/cassettes/machines/radio_mic.dm | 2 + .../code/modules/cryopods/_cryopod.dm | 2 + monkestation/code/modules/store/atm/_atm.dm | 1 + tools/UpdatePaths/Scripts/74985_stamps.txt | 7 ++ 45 files changed, 291 insertions(+), 118 deletions(-) create mode 100644 code/modules/unit_tests/required_map_items.dm create mode 100644 tools/UpdatePaths/Scripts/74985_stamps.txt diff --git a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm index 50cdbe733db9..2d06c716c2f8 100644 --- a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm @@ -1187,7 +1187,7 @@ "BL" = ( /obj/structure/table/wood, /obj/item/folder/white, -/obj/item/stamp/rd, +/obj/item/stamp/head/rd, /turf/open/floor/iron/grimy, /area/ruin/space/has_grav/powered/hilbertresearchfacility) "BM" = ( diff --git a/_maps/RandomRuins/SpaceRuins/waystation.dmm b/_maps/RandomRuins/SpaceRuins/waystation.dmm index 4e92c32d61eb..e62ea1e36e76 100644 --- a/_maps/RandomRuins/SpaceRuins/waystation.dmm +++ b/_maps/RandomRuins/SpaceRuins/waystation.dmm @@ -29,7 +29,7 @@ pixel_x = 7; pixel_y = 4 }, -/obj/item/stamp/qm{ +/obj/item/stamp/head/qm{ pixel_x = 7; pixel_y = -2 }, diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 6a8be5f8c6e2..e93c32049931 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -2904,7 +2904,7 @@ /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/west, /obj/item/folder/white, -/obj/item/stamp/rd{ +/obj/item/stamp/head/rd{ pixel_x = 3; pixel_y = -2 }, diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 850824bc4336..049d4ef2470f 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -5519,7 +5519,7 @@ /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/west, /obj/item/folder/white, -/obj/item/stamp/rd{ +/obj/item/stamp/head/rd{ pixel_x = 3; pixel_y = -2 }, @@ -10161,7 +10161,7 @@ /obj/item/clothing/glasses/meson{ pixel_y = 4 }, -/obj/item/stamp/ce, +/obj/item/stamp/head/ce, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron{ heat_capacity = 1e+006 diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index e65fa7bdb511..3bddd9ae9ab2 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -25289,7 +25289,7 @@ pixel_x = -6; pixel_y = 7 }, -/obj/item/stamp/qm{ +/obj/item/stamp/head/qm{ pixel_x = 8; pixel_y = 12 }, @@ -36714,7 +36714,7 @@ pixel_y = 4; pixel_x = 9 }, -/obj/item/stamp/hos{ +/obj/item/stamp/head/hos{ pixel_x = 10; pixel_y = 6 }, @@ -42943,7 +42943,7 @@ /obj/item/pen{ pixel_y = 4 }, -/obj/item/stamp/ce, +/obj/item/stamp/head/ce, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) "one" = ( @@ -58375,7 +58375,7 @@ /obj/structure/table, /obj/item/paper_bin, /obj/item/pen, -/obj/item/stamp/hop, +/obj/item/stamp/head/hop, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/hop) "tyG" = ( @@ -59307,7 +59307,7 @@ /obj/item/paper_bin, /obj/item/folder/blue, /obj/item/pen/fountain, -/obj/item/stamp/captain, +/obj/item/stamp/head/captain, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "tQJ" = ( @@ -65305,7 +65305,7 @@ pixel_x = 3; pixel_y = 2 }, -/obj/item/stamp/cmo, +/obj/item/stamp/head/cmo, /turf/open/floor/iron/dark/side, /area/station/command/heads_quarters/cmo) "vPG" = ( @@ -65554,7 +65554,7 @@ /obj/item/pen{ pixel_y = 7 }, -/obj/item/stamp/rd{ +/obj/item/stamp/head/rd{ pixel_y = 10 }, /turf/open/floor/carpet/purple, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 756eaee810fb..62ba86e36e99 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -30978,7 +30978,7 @@ /obj/item/pen/red{ pixel_x = 1 }, -/obj/item/stamp/hos{ +/obj/item/stamp/head/hos{ pixel_x = 1; pixel_y = -1 }, @@ -36025,7 +36025,7 @@ "iBB" = ( /obj/structure/table/reinforced, /obj/item/folder/white, -/obj/item/stamp/rd, +/obj/item/stamp/head/rd, /turf/open/floor/iron/white, /area/station/command/heads_quarters/rd) "iBO" = ( @@ -48340,7 +48340,7 @@ pixel_x = 3; pixel_y = 3 }, -/obj/item/stamp/ce, +/obj/item/stamp/head/ce, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) "lwN" = ( @@ -51058,7 +51058,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/table, /obj/item/folder/yellow, -/obj/item/stamp/qm, +/obj/item/stamp/head/qm, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/cargo/quartermaster) @@ -57359,7 +57359,7 @@ /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/item/paper_bin, -/obj/item/stamp/cmo, +/obj/item/stamp/head/cmo, /obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 @@ -67253,7 +67253,7 @@ /obj/structure/table/wood, /obj/item/folder/blue, /obj/item/pen/fourcolor, -/obj/item/stamp/captain, +/obj/item/stamp/head/captain, /obj/machinery/door/window/brigdoor/left/directional/north{ name = "Captain's Desk"; req_access = list("captain") @@ -84088,7 +84088,7 @@ "ucZ" = ( /obj/structure/table/wood, /obj/item/paper_bin/carbon, -/obj/item/stamp/hop, +/obj/item/stamp/head/hop, /obj/machinery/requests_console/directional/north{ anon_tips_receiver = 1; assistance_requestable = 1; diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index f88d781c7753..df98ac9bed52 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -10248,7 +10248,7 @@ /obj/structure/table, /obj/item/folder/white, /obj/item/pen, -/obj/item/stamp/rd{ +/obj/item/stamp/head/rd{ pixel_x = 3; pixel_y = -2 }, @@ -19463,7 +19463,7 @@ /obj/machinery/light/directional/east, /obj/structure/table/glass, /obj/item/folder/white, -/obj/item/stamp/cmo, +/obj/item/stamp/head/cmo, /obj/item/clothing/neck/stethoscope, /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/dark, @@ -42233,7 +42233,7 @@ pixel_x = 8; pixel_y = 3 }, -/obj/item/stamp/hos{ +/obj/item/stamp/head/hos{ pixel_x = 10; pixel_y = 6 }, @@ -43718,7 +43718,7 @@ /area/station/maintenance/port/fore) "nWk" = ( /obj/structure/table, -/obj/item/stamp/qm, +/obj/item/stamp/head/qm, /turf/open/floor/carpet, /area/station/cargo/quartermaster) "nWr" = ( @@ -67203,7 +67203,7 @@ pixel_y = 7 }, /obj/item/pen, -/obj/item/stamp/hop, +/obj/item/stamp/head/hop, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) "vEE" = ( @@ -69276,7 +69276,7 @@ /obj/item/clipboard, /obj/item/folder/yellow, /obj/item/paper/monitorkey, -/obj/item/stamp/ce, +/obj/item/stamp/head/ce, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) "woF" = ( @@ -75456,7 +75456,7 @@ "ykW" = ( /obj/structure/table/wood, /obj/item/folder/blue, -/obj/item/stamp/captain, +/obj/item/stamp/head/captain, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "ykZ" = ( diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index b3b223ee1e8f..1bc03edb7688 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -8221,7 +8221,7 @@ pixel_y = 6 }, /obj/item/pen/fourcolor, -/obj/item/stamp/hop{ +/obj/item/stamp/head/hop{ pixel_x = 8; pixel_y = 6 }, @@ -15301,7 +15301,7 @@ pixel_x = 8; pixel_y = 6 }, -/obj/item/stamp/qm{ +/obj/item/stamp/head/qm{ pixel_x = 8; pixel_y = 10 }, @@ -31222,7 +31222,7 @@ }, /obj/item/lighter, /obj/item/clothing/mask/cigarette/cigar/cohiba, -/obj/item/stamp/ce, +/obj/item/stamp/head/ce, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) @@ -49081,7 +49081,7 @@ pixel_y = 7 }, /obj/item/pen, -/obj/item/stamp/captain{ +/obj/item/stamp/head/captain{ pixel_x = 8; pixel_y = 6 }, @@ -66425,7 +66425,7 @@ pixel_x = 8; pixel_y = 8 }, -/obj/item/stamp/rd{ +/obj/item/stamp/head/rd{ pixel_x = 8 }, /obj/machinery/power/apc/auto_name/directional/north, @@ -72070,7 +72070,7 @@ "wTK" = ( /obj/structure/cable, /obj/structure/table/wood, -/obj/item/stamp/hos, +/obj/item/stamp/head/hos, /obj/item/stamp/denied{ pixel_x = 4; pixel_y = 4 diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index fc309d010dff..9f461ac29192 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -3554,7 +3554,7 @@ "bkT" = ( /obj/structure/chair/office/light, /obj/structure/cable, -/obj/item/stamp/cmo, +/obj/item/stamp/head/cmo, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) "bla" = ( @@ -28994,7 +28994,7 @@ pixel_x = 7; pixel_y = 4 }, -/obj/item/stamp/qm{ +/obj/item/stamp/head/qm{ pixel_x = 7; pixel_y = -2 }, @@ -31399,7 +31399,7 @@ pixel_x = -2; pixel_y = 4 }, -/obj/item/stamp/hop{ +/obj/item/stamp/head/hop{ pixel_x = -4; pixel_y = 4 }, @@ -35922,7 +35922,7 @@ "mOa" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/stamp/rd, +/obj/item/stamp/head/rd, /obj/item/toy/figure/rd{ pixel_y = 10 }, @@ -37036,7 +37036,7 @@ /obj/item/radio/intercom/directional/east, /obj/item/folder/blue, /obj/item/hand_tele, -/obj/item/stamp/captain, +/obj/item/stamp/head/captain, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) "niG" = ( @@ -57179,7 +57179,7 @@ pixel_x = -7; pixel_y = 6 }, -/obj/item/stamp/hos, +/obj/item/stamp/head/hos, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) "uiB" = ( @@ -67639,7 +67639,7 @@ "xSA" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/stamp/ce, +/obj/item/stamp/head/ce, /obj/item/reagent_containers/pill/patch/aiuri, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 4fdf1be95ac5..7cf314e6eba5 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -998,7 +998,7 @@ pixel_x = -9; pixel_y = 3 }, -/obj/item/stamp/rd{ +/obj/item/stamp/head/rd{ pixel_x = 5 }, /obj/item/toy/figure/rd{ @@ -2883,7 +2883,7 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table, /obj/structure/disposalpipe/segment, -/obj/item/stamp/hos, +/obj/item/stamp/head/hos, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hos) "aKC" = ( @@ -45618,7 +45618,7 @@ pixel_x = -2; pixel_y = 4 }, -/obj/item/stamp/hop{ +/obj/item/stamp/head/hop{ pixel_x = -4; pixel_y = 4 }, @@ -46691,7 +46691,7 @@ pixel_y = 7 }, /obj/item/pen, -/obj/item/stamp/ce{ +/obj/item/stamp/head/ce{ pixel_x = -8 }, /turf/open/floor/catwalk_floor/iron_dark, @@ -67515,7 +67515,7 @@ "rWL" = ( /obj/structure/table/wood, /obj/item/folder/blue, -/obj/item/stamp/captain, +/obj/item/stamp/head/captain, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) "rWT" = ( @@ -73449,7 +73449,7 @@ /obj/item/folder/yellow{ pixel_x = -6 }, -/obj/item/stamp/qm{ +/obj/item/stamp/head/qm{ pixel_x = -6 }, /obj/structure/cable, @@ -73555,7 +73555,7 @@ }, /obj/structure/table/reinforced/rglass, /obj/item/paper_bin, -/obj/item/stamp/cmo, +/obj/item/stamp/head/cmo, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) "tJd" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index b03da3ca36c5..ed384e9ab4cf 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -12992,7 +12992,7 @@ "daU" = ( /obj/structure/table/wood, /obj/item/folder/blue, -/obj/item/stamp/hop, +/obj/item/stamp/head/hop, /obj/item/trapdoor_remote/preloaded{ pixel_x = -8 }, @@ -23417,7 +23417,7 @@ "gws" = ( /obj/structure/table/wood, /obj/item/folder/red, -/obj/item/stamp/hos, +/obj/item/stamp/head/hos, /obj/item/food/spaghetti/pastatomato/soulful, /turf/open/floor/carpet, /area/station/command/heads_quarters/hos) @@ -53034,7 +53034,7 @@ pixel_x = -3; pixel_y = 7 }, -/obj/item/stamp/qm, +/obj/item/stamp/head/qm, /turf/open/floor/carpet, /area/station/cargo/quartermaster) "pVb" = ( @@ -57407,7 +57407,7 @@ "rnc" = ( /obj/structure/table/wood, /obj/item/folder/blue, -/obj/item/stamp/captain, +/obj/item/stamp/head/captain, /obj/machinery/door/window{ base_state = "right"; icon_state = "right"; @@ -59966,7 +59966,7 @@ "sgu" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow, -/obj/item/stamp/ce, +/obj/item/stamp/head/ce, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, @@ -61194,7 +61194,7 @@ /obj/item/folder/white{ pixel_x = 5 }, -/obj/item/stamp/rd{ +/obj/item/stamp/head/rd{ pixel_x = 6; pixel_y = 2 }, diff --git a/_maps/multiz_debug.json b/_maps/multiz_debug.json index b380a2b7fd0a..5cfe3104728c 100644 --- a/_maps/multiz_debug.json +++ b/_maps/multiz_debug.json @@ -3,19 +3,22 @@ "map_name": "MultiZ Debug", "map_path": "map_files/debug", "map_file": "multiz.dmm", + "ignored_unit_tests": [ + "/datum/unit_test/required_map_items" + ], "traits": [ { - "Up": true, + "Up": 1, "Linkage": "Cross" }, { - "Up": true, - "Down": true, + "Up": 1, + "Down": -1, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" }, { - "Down": true, + "Down": -1, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/_maps/northstar.json b/_maps/northstar.json index 0dc25fd0df2f..9de8a4fd6866 100644 --- a/_maps/northstar.json +++ b/_maps/northstar.json @@ -12,6 +12,9 @@ }, "space_ruin_levels": 0, "space_empty_levels": 2, + "ignored_unit_tests": [ + "/datum/unit_test/required_map_items" + ], "traits": [ { "Up": true, diff --git a/_maps/runtimestation.json b/_maps/runtimestation.json index 6b77a7321f21..ccc971a9cc55 100644 --- a/_maps/runtimestation.json +++ b/_maps/runtimestation.json @@ -4,6 +4,9 @@ "map_path": "map_files/debug", "map_file": "runtimestation.dmm", "space_ruin_levels": 1, + "ignored_unit_tests": [ + "/datum/unit_test/required_map_items" + ], "shuttles": { "cargo": "cargo_delta" } diff --git a/_maps/shuttles/emergency_tranquility.dmm b/_maps/shuttles/emergency_tranquility.dmm index 88c061cd0276..71bf3f0f4dcc 100644 --- a/_maps/shuttles/emergency_tranquility.dmm +++ b/_maps/shuttles/emergency_tranquility.dmm @@ -898,7 +898,7 @@ /obj/item/stamp/denied{ pixel_x = 8 }, -/obj/item/stamp/qm{ +/obj/item/stamp/head/qm{ pixel_y = -5; pixel_x = 8 }, diff --git a/code/__DEFINES/unit_tests.dm b/code/__DEFINES/unit_tests.dm index 29deeb1716c5..9b36bdb6640b 100644 --- a/code/__DEFINES/unit_tests.dm +++ b/code/__DEFINES/unit_tests.dm @@ -18,3 +18,33 @@ #else #define TEST_ONLY_ASSERT(test, explanation) #endif + +/** + * Used for registering typepaths of item to be tracked as a "required map item" + * This is used to ensure that that all station maps have certain items mapped in that they should have + * Or that people aren't mapping in an excess of items that they shouldn't be + * (For example, all map should only ever have 1 Pun Pun) + * + * Min is inclusive, Max is inclusive (so 1, 1 means min of 1, max of 1, or only 1 allowed) + * + * This should only be used in Initialize(). And don't forget to update the unit test with the type itself! + */ +#ifdef UNIT_TESTS +#define REGISTER_REQUIRED_MAP_ITEM(min, max) \ + do { \ + if(mapload) { \ + var/turf/spawn_turf = get_turf(src); \ + if(is_station_level(spawn_turf?.z || 0)) { \ + var/datum/required_item/existing_value = GLOB.required_map_items[type]; \ + if(isnull(existing_value)) { \ + var/datum/required_item/new_value = new(type, min, max); \ + GLOB.required_map_items[type] = new_value; \ + } else { \ + existing_value.total_amount += 1; \ + }; \ + }; \ + }; \ + } while (FALSE) +#else +#define REGISTER_REQUIRED_MAP_ITEM(min, max) +#endif diff --git a/code/_globalvars/phobias.dm b/code/_globalvars/phobias.dm index b2066d68077f..f493e82c1eb6 100644 --- a/code/_globalvars/phobias.dm +++ b/code/_globalvars/phobias.dm @@ -144,7 +144,7 @@ GLOBAL_LIST_INIT(phobia_objs, list( /obj/item/megaphone/sec, /obj/item/melee/baton, /obj/item/restraints/handcuffs, - /obj/item/stamp/hos, + /obj/item/stamp/head/hos, /obj/item/toy/figure/hos, /obj/item/toy/figure/secofficer, /obj/machinery/door/airlock/security, @@ -238,14 +238,8 @@ GLOBAL_LIST_INIT(phobia_objs, list( /obj/item/radio/headset/heads, /obj/item/megaphone/command, /obj/item/melee/baton/abductor, - /obj/item/stamp/captain, - /obj/item/stamp/ce, /obj/item/stamp/centcom, - /obj/item/stamp/cmo, - /obj/item/stamp/hop, - /obj/item/stamp/hos, - /obj/item/stamp/rd, - /obj/item/stamp/qm, + /obj/item/stamp/head, /obj/item/storage/belt/military/abductor, /obj/item/toy/figure/captain, /obj/item/toy/figure/ce, @@ -402,14 +396,8 @@ GLOBAL_LIST_INIT(phobia_objs, list( /obj/item/encryptionkey/heads, /obj/item/radio/headset/heads, /obj/item/melee/baton/telescopic, - /obj/item/stamp/captain, - /obj/item/stamp/ce, /obj/item/stamp/centcom, - /obj/item/stamp/cmo, - /obj/item/stamp/hop, - /obj/item/stamp/hos, - /obj/item/stamp/rd, - /obj/item/stamp/qm, + /obj/item/stamp/head, /obj/item/toy/figure/captain, /obj/item/toy/figure/ce, /obj/item/toy/figure/cmo, diff --git a/code/datums/components/crafting/misc.dm b/code/datums/components/crafting/misc.dm index e73c56ca67d5..dd850874d68f 100644 --- a/code/datums/components/crafting/misc.dm +++ b/code/datums/components/crafting/misc.dm @@ -32,5 +32,5 @@ /obj/item/paper/paperslip = 1, /obj/item/stack/sheet/plastic = 3, ) - tool_paths = list(/obj/item/stamp/captain) + tool_paths = list(/obj/item/stamp/head/captain) category = CAT_MISC diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index cd141561bd78..bc3985009a8c 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -41,6 +41,9 @@ /// List of additional areas that count as a part of the library var/library_areas = list() + /// List of unit tests that are skipped when running this map + var/list/skipped_tests + //List of particle_weather types for this map var/particle_weathers = list() //Monkestation addition @@ -210,6 +213,16 @@ continue library_areas += path +#ifdef UNIT_TESTS + // Check for unit tests to skip, no reason to check these if we're not running tests + for(var/path_as_text in json["ignored_unit_tests"]) + var/path_real = text2path(path_as_text) + if(!ispath(path_real, /datum/unit_test)) + stack_trace("Invalid path in mapping config for ignored unit tests: \[[path_as_text]\]") + continue + LAZYADD(skipped_tests, path_real) +#endif + defaulted = FALSE return TRUE #undef CHECK_EXISTS diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 8ffaba16f6d6..a047ea743033 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -87,6 +87,9 @@ /obj/machinery/computer/communications/Initialize(mapload) . = ..() + // All maps should have at least 1 comms console + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) + GLOB.shuttle_caller_list += src AddComponent(/datum/component/gps, "Secured Communications Signal") diff --git a/code/modules/cargo/department_order.dm b/code/modules/cargo/department_order.dm index 57c0cbf0a814..66b67a885b86 100644 --- a/code/modules/cargo/department_order.dm +++ b/code/modules/cargo/department_order.dm @@ -33,6 +33,8 @@ GLOBAL_LIST_INIT(department_order_cooldowns, list( /obj/machinery/computer/department_orders/Initialize(mapload, obj/item/circuitboard/board) . = ..() + // All maps should have ONLY ONE of each order console roundstart + REGISTER_REQUIRED_MAP_ITEM(1, 1) if (radio_channel && radio_key_typepath) radio = new(src) diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index c4f5d4e7e3a2..7f28d8ffbb00 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -79,7 +79,7 @@ accessory = /obj/item/clothing/accessory/medal/gold/captain chameleon_extras = list( /obj/item/gun/energy/e_gun, - /obj/item/stamp/captain, + /obj/item/stamp/head/captain, ) implants = list(/obj/item/implant/mindshield) skillchips = list(/obj/item/skillchip/disk_verifier) diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index d5a7b6bca106..fa6a077c082a 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -78,7 +78,7 @@ duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/survival/engineer - chameleon_extras = /obj/item/stamp/ce + chameleon_extras = /obj/item/stamp/head/ce skillchips = list(/obj/item/skillchip/job/engineer) implants = list(/obj/item/implant/mindshield) pda_slot = ITEM_SLOT_LPOCKET diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index 7ce73d4e7a5e..daebcfa9d845 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -78,7 +78,7 @@ box = /obj/item/storage/box/survival/medical chameleon_extras = list( /obj/item/gun/syringe, - /obj/item/stamp/cmo, + /obj/item/stamp/head/cmo, ) skillchips = list(/obj/item/skillchip/entrails_reader) diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index 7c2849e67c85..169260079dda 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -68,7 +68,7 @@ chameleon_extras = list( /obj/item/gun/energy/e_gun, - /obj/item/stamp/hop, + /obj/item/stamp/head/hop, ) /datum/outfit/job/hop/pre_equip(mob/living/carbon/human/H) diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index 4b0d7aaaaa39..259c828f47c0 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -71,7 +71,7 @@ box = /obj/item/storage/box/survival/security chameleon_extras = list( /obj/item/gun/energy/e_gun/hos, - /obj/item/stamp/hos, + /obj/item/stamp/head/hos, ) implants = list(/obj/item/implant/mindshield) diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm index 200742195922..49d26f09d62a 100644 --- a/code/modules/jobs/job_types/quartermaster.dm +++ b/code/modules/jobs/job_types/quartermaster.dm @@ -47,4 +47,4 @@ shoes = /obj/item/clothing/shoes/sneakers/brown l_hand = /obj/item/clipboard - chameleon_extras = /obj/item/stamp/qm + chameleon_extras = /obj/item/stamp/head/qm diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm index f1a1d8135d41..d0d711411061 100644 --- a/code/modules/jobs/job_types/research_director.dm +++ b/code/modules/jobs/job_types/research_director.dm @@ -73,7 +73,7 @@ satchel = /obj/item/storage/backpack/satchel/science duffelbag = /obj/item/storage/backpack/duffelbag/science - chameleon_extras = /obj/item/stamp/rd + chameleon_extras = /obj/item/stamp/head/rd skillchips = list(/obj/item/skillchip/job/research_director) implants = list(/obj/item/implant/mindshield) diff --git a/code/modules/mob/living/basic/pets/dog/_dog.dm b/code/modules/mob/living/basic/pets/dog/_dog.dm index f82caad827e7..4ee85907f639 100644 --- a/code/modules/mob/living/basic/pets/dog/_dog.dm +++ b/code/modules/mob/living/basic/pets/dog/_dog.dm @@ -47,6 +47,7 @@ /mob/living/basic/pet/dog/Initialize(mapload) . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, 1) AddElement(/datum/element/pet_bonus, "woofs happily!") AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW) AddElement(/datum/element/unfriend_attacker, untamed_reaction = "%SOURCE% fixes %TARGET% with a look of betrayal.") diff --git a/code/modules/mob/living/basic/pets/parrot/poly.dm b/code/modules/mob/living/basic/pets/parrot/poly.dm index d5490389c434..3a1647726a60 100644 --- a/code/modules/mob/living/basic/pets/parrot/poly.dm +++ b/code/modules/mob/living/basic/pets/parrot/poly.dm @@ -31,6 +31,7 @@ /mob/living/basic/parrot/poly/Initialize(mapload) . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, 1) if(!memory_saved) roundend_callback = CALLBACK(src, PROC_REF(Write_Memory)) diff --git a/code/modules/mob/living/carbon/human/monkey/monkey.dm b/code/modules/mob/living/carbon/human/monkey/monkey.dm index 2f1b8535d363..db8f2f4f1e3d 100644 --- a/code/modules/mob/living/carbon/human/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/human/monkey/monkey.dm @@ -65,6 +65,8 @@ GLOBAL_DATUM(the_one_and_only_punpun, /mob/living/carbon/human/species/monkey/pu if(!GLOB.the_one_and_only_punpun && mapload) GLOB.the_one_and_only_punpun = src + // 1 Pun Pun should exist + REGISTER_REQUIRED_MAP_ITEM(1, 1) fully_replace_character_name(real_name, name_to_use) diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index a7a36a476b75..bd27c482caf0 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -118,6 +118,7 @@ held_state = "cat" /mob/living/simple_animal/pet/cat/runtime/Initialize(mapload) + REGISTER_REQUIRED_MAP_ITEM(1, 1) if(prob(5)) icon_state = "original" icon_living = "original" diff --git a/code/modules/paperwork/paperwork.dm b/code/modules/paperwork/paperwork.dm index cffa480e4a14..280bff58890a 100644 --- a/code/modules/paperwork/paperwork.dm +++ b/code/modules/paperwork/paperwork.dm @@ -113,7 +113,7 @@ //HEAD OF STAFF DOCUMENTS /obj/item/paperwork/cargo - stamp_requested = /obj/item/stamp/qm + stamp_requested = /obj/item/stamp/head/qm stamp_job = /datum/job/quartermaster stamp_icon = "paper_stamp-qm" @@ -126,7 +126,7 @@ detailed_desc += span_info(" Despite how disorganized the documents are, they're all appropriately filled in. You should probably stamp this.") /obj/item/paperwork/security - stamp_requested = /obj/item/stamp/hos + stamp_requested = /obj/item/stamp/head/hos stamp_job = /datum/job/head_of_security stamp_icon = "paper_stamp-hos" @@ -139,7 +139,7 @@ detailed_desc += span_info(" What a bunch of crap, the security team were clearly just doing what they had to. You should probably stamp this.") /obj/item/paperwork/service - stamp_requested = /obj/item/stamp/hop + stamp_requested = /obj/item/stamp/head/hop stamp_job = /datum/job/head_of_personnel stamp_icon = "paper_stamp-hop" @@ -152,7 +152,7 @@ detailed_desc += span_info(" A MAXIMUM priority request like this is nothing to balk at. You should probably stamp this.") /obj/item/paperwork/medical - stamp_requested = /obj/item/stamp/cmo + stamp_requested = /obj/item/stamp/head/cmo stamp_job = /datum/job/chief_medical_officer stamp_icon = "paper_stamp-cmo" @@ -166,7 +166,7 @@ /obj/item/paperwork/engineering - stamp_requested = /obj/item/stamp/ce + stamp_requested = /obj/item/stamp/head/ce stamp_job = /datum/job/chief_engineer stamp_icon = "paper_stamp-ce" @@ -179,7 +179,7 @@ detailed_desc += span_info(" Damn, that's impressive stuff. You should probably stamp this.") /obj/item/paperwork/research - stamp_requested = /obj/item/stamp/rd + stamp_requested = /obj/item/stamp/head/rd stamp_job = /datum/job/research_director stamp_icon = "paper_stamp-rd" @@ -192,7 +192,7 @@ detailed_desc += span_info(" Regardless, they're still perfectly usable test results. You should probably stamp this.") /obj/item/paperwork/captain - stamp_requested = /obj/item/stamp/captain + stamp_requested = /obj/item/stamp/head/captain stamp_job = /datum/job/captain stamp_icon = "paper_stamp-cap" diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 12caa3c003e1..342833a7caec 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -26,46 +26,53 @@ stamp_class = sheet.icon_class_name(icon_state) ) -/obj/item/stamp/qm - name = "quartermaster's rubber stamp" - icon_state = "stamp-qm" - dye_color = DYE_QM - /obj/item/stamp/law name = "law office's rubber stamp" icon_state = "stamp-law" dye_color = DYE_LAW -/obj/item/stamp/captain +/obj/item/stamp/head + +/obj/item/stamp/head/Initialize(mapload) + . = ..() + // All maps should have at least 1 of each head of staff stamp + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) + +/obj/item/stamp/head/captain name = "captain's rubber stamp" icon_state = "stamp-cap" dye_color = DYE_CAPTAIN -/obj/item/stamp/hop +/obj/item/stamp/head/hop name = "head of personnel's rubber stamp" icon_state = "stamp-hop" dye_color = DYE_HOP -/obj/item/stamp/hos +/obj/item/stamp/head/hos name = "head of security's rubber stamp" icon_state = "stamp-hos" dye_color = DYE_HOS -/obj/item/stamp/ce +/obj/item/stamp/head/ce name = "chief engineer's rubber stamp" icon_state = "stamp-ce" dye_color = DYE_CE -/obj/item/stamp/rd +/obj/item/stamp/head/rd name = "research director's rubber stamp" icon_state = "stamp-rd" dye_color = DYE_RD -/obj/item/stamp/cmo +/obj/item/stamp/head/cmo name = "chief medical officer's rubber stamp" icon_state = "stamp-cmo" dye_color = DYE_CMO +/obj/item/stamp/head/qm + name = "quartermaster's rubber stamp" + icon_state = "stamp-qm" + dye_color = DYE_QM + /obj/item/stamp/denied name = "\improper DENIED rubber stamp" icon_state = "stamp-deny" diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index ae5669d104f1..b04db4d2812c 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -70,6 +70,12 @@ #else #define TEST_OUTPUT_GREEN(text) (text) #endif +/// Change color to yellow on ANSI terminal output, if enabled with -DANSICOLORS. +#ifdef ANSICOLORS +#define TEST_OUTPUT_YELLOW(text) "\x1B\x5B1;33m[text]\x1B\x5B0m" +#else +#define TEST_OUTPUT_YELLOW(text) (text) +#endif /// A trait source when adding traits through unit tests #define TRAIT_SOURCE_UNIT_TESTS "unit_tests" @@ -181,6 +187,7 @@ #include "reagent_names.dm" #include "reagent_recipe_collisions.dm" #include "reagent_transfer.dm" +#include "required_map_items.dm" #include "resist.dm" #include "say.dm" #include "screenshot_antag_icons.dm" diff --git a/code/modules/unit_tests/required_map_items.dm b/code/modules/unit_tests/required_map_items.dm new file mode 100644 index 000000000000..6c6e05536d8b --- /dev/null +++ b/code/modules/unit_tests/required_map_items.dm @@ -0,0 +1,73 @@ +/** + * Tests that all expected items are mapped in roundstart. + * + * How to add an item to this test: + * - Add the typepath(s) to setup_expected_types + * - In the type's initialize, REGISTER_REQUIRED_MAP_ITEM() a minimum and maximum + */ +/datum/unit_test/required_map_items + /// A list of all typepaths that we expect to be in the required items list + var/list/expected_types = list() + +/// Used to fill the expected types list with all the types we look for on the map. +/// This list will just be full of typepaths that we expect. +/// More detailed information about each item (mainly, how much of each should exist) is set on a per item basis +/datum/unit_test/required_map_items/proc/setup_expected_types() + expected_types += subtypesof(/obj/item/stamp/head) + expected_types += subtypesof(/obj/machinery/computer/department_orders) + expected_types += /obj/machinery/computer/communications + expected_types += /mob/living/carbon/human/species/monkey/punpun + expected_types += /mob/living/basic/pet/dog/corgi/ian + expected_types += /mob/living/simple_animal/pet/cat/runtime + expected_types += /mob/living/basic/parrot/poly + // monkestation start + expected_types += /obj/item/device/cassette_deck + expected_types += /obj/item/radio/radio_mic + expected_types += /obj/machinery/atm + expected_types += /obj/machinery/cassette/dj_station + expected_types += /obj/structure/cassette_rack/prefilled + expected_types += /obj/machinery/cryopod + expected_types += /obj/machinery/computer/cryopod + expected_types += /obj/machinery/cassette/mailbox + // monkestation end + +/datum/unit_test/required_map_items/Run() + setup_expected_types() + + var/list/required_map_items = GLOB.required_map_items.Copy() + for(var/got_type in expected_types) + var/datum/required_item/item = required_map_items[got_type] + var/items_found = item?.total_amount || 0 + required_map_items -= got_type + if(items_found <= 0) + TEST_FAIL("Item [got_type] was not found, but is expected to be mapped in on mapload!") + continue + + if(items_found < item.minimum_amount) + TEST_FAIL("Item [got_type] should have at least [item.minimum_amount] mapped in but only had [items_found] on mapload!") + continue + + if(items_found > item.maximum_amount) + TEST_FAIL("Item [got_type] should have at most [item.maximum_amount] mapped in but had [items_found] on mapload!") + continue + + // This primarily serves as a reminder to include the typepath in the expected types list above. + // However we can easily delete this line in the future if it runs into false positives. + TEST_ASSERT(length(required_map_items) == 0, "The following paths were found in required map items, but weren't checked: [english_list(required_map_items)]") + +/// Datum for tracking required map items +/datum/required_item + /// Type (exact) being tracked + var/tracked_type + /// How many exist in the world + var/total_amount = 0 + /// Min. amount of this type that should exist roundstart (inclusive) + var/minimum_amount = 1 + /// Max. amount of this type that should exist roundstart (inclusive) + var/maximum_amount = 1 + +/datum/required_item/New(tracked_type, minimum_amount = 1, maximum_amount = 1) + src.tracked_type = tracked_type + src.minimum_amount = minimum_amount + src.maximum_amount = maximum_amount + total_amount += 1 diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index fbcec6159f00..8647b026adc4 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -15,6 +15,8 @@ GLOBAL_DATUM(current_test, /datum/unit_test) GLOBAL_VAR_INIT(failed_any_test, FALSE) /// When unit testing, all logs sent to log_mapping are stored here and retrieved in log_mapping unit test. GLOBAL_LIST_EMPTY(unit_test_mapping_logs) +/// Global assoc list of required mapping items, [item typepath] to [required item datum]. +GLOBAL_LIST_EMPTY(required_map_items) /// A list of every test that is currently focused. /// Use the PERFORM_ALL_TESTS macro instead. @@ -165,43 +167,55 @@ GLOBAL_VAR_INIT(focused_tests, focused_tests()) GLOB.current_test = test var/duration = REALTIMEOFDAY + var/skip_test = (test_path in SSmapping.config.skipped_tests) + var/test_output_desc = "[test_path]" + var/message = "" log_world("::group::[test_path]") - test.Run() - duration = REALTIMEOFDAY - duration - GLOB.current_test = null - GLOB.failed_any_test |= !test.succeeded + if(skip_test) + log_world("[TEST_OUTPUT_YELLOW("SKIPPED")] Skipped run on map [SSmapping.config.map_name].") - var/list/log_entry = list() - var/list/fail_reasons = test.fail_reasons + else + + test.Run() + + duration = REALTIMEOFDAY - duration + GLOB.current_test = null + GLOB.failed_any_test |= !test.succeeded - for(var/reasonID in 1 to LAZYLEN(fail_reasons)) - var/text = fail_reasons[reasonID][1] - var/file = fail_reasons[reasonID][2] - var/line = fail_reasons[reasonID][3] + var/list/log_entry = list() + var/list/fail_reasons = test.fail_reasons - test.log_for_test(text, "error", file, line) + for(var/reasonID in 1 to LAZYLEN(fail_reasons)) + var/text = fail_reasons[reasonID][1] + var/file = fail_reasons[reasonID][2] + var/line = fail_reasons[reasonID][3] - // Normal log message - log_entry += "\tFAILURE #[reasonID]: [text] at [file]:[line]" + test.log_for_test(text, "error", file, line) - var/message = log_entry.Join("\n") - log_test(message) + // Normal log message + log_entry += "\tFAILURE #[reasonID]: [text] at [file]:[line]" - var/test_output_desc = "[test_path] [duration / 10]s" - if (test.succeeded) - log_world("[TEST_OUTPUT_GREEN("PASS")] [test_output_desc]") + if(length(log_entry)) + message = log_entry.Join("\n") + log_test(message) + + test_output_desc += " [duration / 10]s" + if (test.succeeded) + log_world("[TEST_OUTPUT_GREEN("PASS")] [test_output_desc]") log_world("::endgroup::") - if (!test.succeeded) + if (!test.succeeded && !skip_test) log_world("::error::[TEST_OUTPUT_RED("FAIL")] [test_output_desc]") - test_results[test_path] = list("status" = test.succeeded ? UNIT_TEST_PASSED : UNIT_TEST_FAILED, "message" = message, "name" = test_path) + var/final_status = skip_test ? UNIT_TEST_SKIPPED : (test.succeeded ? UNIT_TEST_PASSED : UNIT_TEST_FAILED) + test_results[test_path] = list("status" = final_status, "message" = message, "name" = test_path) qdel(test) + /// Builds (and returns) a list of atoms that we shouldn't initialize in generic testing, like Create and Destroy. /// It is appreciated to add the reason why the atom shouldn't be initialized if you add it to this list. /datum/unit_test/proc/build_list_of_uncreatables() diff --git a/monkestation/code/modules/cassettes/machines/cassette_rack.dm b/monkestation/code/modules/cassettes/machines/cassette_rack.dm index 3d3ef21aaebd..1b9141d52237 100644 --- a/monkestation/code/modules/cassettes/machines/cassette_rack.dm +++ b/monkestation/code/modules/cassettes/machines/cassette_rack.dm @@ -47,6 +47,7 @@ /obj/structure/cassette_rack/prefilled/Initialize(mapload) . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) for(var/i in 1 to spawn_blanks) new /obj/item/device/cassette_tape/blank(src) for(var/id in unique_random_tapes(spawn_random)) diff --git a/monkestation/code/modules/cassettes/machines/dj_station.dm b/monkestation/code/modules/cassettes/machines/dj_station.dm index c0e6155c2b6d..67ac5075633c 100644 --- a/monkestation/code/modules/cassettes/machines/dj_station.dm +++ b/monkestation/code/modules/cassettes/machines/dj_station.dm @@ -35,6 +35,7 @@ GLOBAL_VAR(dj_booth) /obj/machinery/cassette/dj_station/Initialize(mapload) . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) GLOB.dj_booth = src register_context() diff --git a/monkestation/code/modules/cassettes/machines/portable_mixer.dm b/monkestation/code/modules/cassettes/machines/portable_mixer.dm index 4f95b833c7da..d284bf95a003 100644 --- a/monkestation/code/modules/cassettes/machines/portable_mixer.dm +++ b/monkestation/code/modules/cassettes/machines/portable_mixer.dm @@ -21,6 +21,10 @@ ///Did we add a non approved song to an approved tape if so remove the cassette's approved status var/broke_approval = FALSE +/obj/item/device/cassette_deck/Initialize(mapload) + . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) + /obj/item/device/cassette_deck/AltClick(mob/user) if(recieve || send) eject_tape(user) diff --git a/monkestation/code/modules/cassettes/machines/postbox.dm b/monkestation/code/modules/cassettes/machines/postbox.dm index 5d066a6843ce..14d5c7eb0660 100644 --- a/monkestation/code/modules/cassettes/machines/postbox.dm +++ b/monkestation/code/modules/cassettes/machines/postbox.dm @@ -10,6 +10,10 @@ anchored = TRUE density = TRUE +/obj/machinery/cassette/mailbox/Initialize(mapload) + . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) + /obj/machinery/cassette/mailbox/attackby(obj/item/weapon, mob/user, params) if(!istype(weapon, /obj/item/device/cassette_tape) || !user.client) diff --git a/monkestation/code/modules/cassettes/machines/radio_mic.dm b/monkestation/code/modules/cassettes/machines/radio_mic.dm index 1e933ab7943d..75ecbcdc7994 100644 --- a/monkestation/code/modules/cassettes/machines/radio_mic.dm +++ b/monkestation/code/modules/cassettes/machines/radio_mic.dm @@ -25,6 +25,8 @@ /obj/item/radio/radio_mic/Initialize(mapload) . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) + frequency = FREQ_RADIO broadcasting = TRUE use_command = TRUE diff --git a/monkestation/code/modules/cryopods/_cryopod.dm b/monkestation/code/modules/cryopods/_cryopod.dm index 4ea563ea72a7..02b0a7a57402 100644 --- a/monkestation/code/modules/cryopods/_cryopod.dm +++ b/monkestation/code/modules/cryopods/_cryopod.dm @@ -50,6 +50,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod, 32) /obj/machinery/computer/cryopod/Initialize(mapload) . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) GLOB.cryopod_computers += src radio = new radio(src) @@ -180,6 +181,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod, 32) /obj/machinery/cryopod/Initialize(mapload) ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) if(!quiet) GLOB.valid_cryopods += src return INITIALIZE_HINT_LATELOAD //Gotta populate the cryopod computer GLOB first diff --git a/monkestation/code/modules/store/atm/_atm.dm b/monkestation/code/modules/store/atm/_atm.dm index afb175491c93..e86d055aa9a4 100644 --- a/monkestation/code/modules/store/atm/_atm.dm +++ b/monkestation/code/modules/store/atm/_atm.dm @@ -23,6 +23,7 @@ /obj/machinery/atm/Initialize(mapload) . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) if(!lottery_running) lottery_running = TRUE addtimer(CALLBACK(src, PROC_REF(pull_lottery_winner)), 20 MINUTES) diff --git a/tools/UpdatePaths/Scripts/74985_stamps.txt b/tools/UpdatePaths/Scripts/74985_stamps.txt new file mode 100644 index 000000000000..ae165537cb41 --- /dev/null +++ b/tools/UpdatePaths/Scripts/74985_stamps.txt @@ -0,0 +1,7 @@ +/obj/item/stamp/captain : /obj/item/stamp/head/captain {@OLD} +/obj/item/stamp/ce : /obj/item/stamp/head/ce {@OLD} +/obj/item/stamp/cmo : /obj/item/stamp/head/cmo {@OLD} +/obj/item/stamp/hop : /obj/item/stamp/head/hop {@OLD} +/obj/item/stamp/hos : /obj/item/stamp/head/hos {@OLD} +/obj/item/stamp/qm : /obj/item/stamp/head/qm {@OLD} +/obj/item/stamp/rd : /obj/item/stamp/head/rd {@OLD} From c9615a9d573946c466cc9e2abc5de81d5870a12f Mon Sep 17 00:00:00 2001 From: Lucy Date: Fri, 21 Jun 2024 06:30:03 -0400 Subject: [PATCH 02/15] byeah --- code/modules/unit_tests/required_map_items.dm | 3 +-- .../code/modules/cassettes/machines/portable_mixer.dm | 4 ---- .../code/modules/cassettes/machines/stationary_mixer.dm | 4 ++++ 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/unit_tests/required_map_items.dm b/code/modules/unit_tests/required_map_items.dm index 6c6e05536d8b..ce16a48362a7 100644 --- a/code/modules/unit_tests/required_map_items.dm +++ b/code/modules/unit_tests/required_map_items.dm @@ -21,13 +21,12 @@ expected_types += /mob/living/simple_animal/pet/cat/runtime expected_types += /mob/living/basic/parrot/poly // monkestation start - expected_types += /obj/item/device/cassette_deck + expected_types += /obj/machinery/cassette/adv_cassette_deck expected_types += /obj/item/radio/radio_mic expected_types += /obj/machinery/atm expected_types += /obj/machinery/cassette/dj_station expected_types += /obj/structure/cassette_rack/prefilled expected_types += /obj/machinery/cryopod - expected_types += /obj/machinery/computer/cryopod expected_types += /obj/machinery/cassette/mailbox // monkestation end diff --git a/monkestation/code/modules/cassettes/machines/portable_mixer.dm b/monkestation/code/modules/cassettes/machines/portable_mixer.dm index d284bf95a003..4f95b833c7da 100644 --- a/monkestation/code/modules/cassettes/machines/portable_mixer.dm +++ b/monkestation/code/modules/cassettes/machines/portable_mixer.dm @@ -21,10 +21,6 @@ ///Did we add a non approved song to an approved tape if so remove the cassette's approved status var/broke_approval = FALSE -/obj/item/device/cassette_deck/Initialize(mapload) - . = ..() - REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) - /obj/item/device/cassette_deck/AltClick(mob/user) if(recieve || send) eject_tape(user) diff --git a/monkestation/code/modules/cassettes/machines/stationary_mixer.dm b/monkestation/code/modules/cassettes/machines/stationary_mixer.dm index 71ce7031dbd0..7bd3e0e6b13a 100644 --- a/monkestation/code/modules/cassettes/machines/stationary_mixer.dm +++ b/monkestation/code/modules/cassettes/machines/stationary_mixer.dm @@ -10,6 +10,10 @@ ///Selection used to remove songs var/selection +/obj/machinery/cassette/adv_cassette_deck/Initialize(mapload) + . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) + /obj/machinery/cassette/adv_cassette_deck/wrench_act(mob/living/user, obj/item/wrench) ..() default_unfasten_wrench(user, wrench, 15) From 04c8cf5dd89bd5e64fcdf0623e16c8688c4e9fc0 Mon Sep 17 00:00:00 2001 From: Lucy Date: Fri, 21 Jun 2024 06:31:12 -0400 Subject: [PATCH 03/15] bwoh --- monkestation/code/modules/cryopods/_cryopod.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/monkestation/code/modules/cryopods/_cryopod.dm b/monkestation/code/modules/cryopods/_cryopod.dm index 02b0a7a57402..3c85fe48b6f4 100644 --- a/monkestation/code/modules/cryopods/_cryopod.dm +++ b/monkestation/code/modules/cryopods/_cryopod.dm @@ -50,7 +50,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod, 32) /obj/machinery/computer/cryopod/Initialize(mapload) . = ..() - REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) GLOB.cryopod_computers += src radio = new radio(src) From 54b841c990b6801684344035f5f6f10b53e84a6d Mon Sep 17 00:00:00 2001 From: Lucy Date: Fri, 21 Jun 2024 22:52:59 -0400 Subject: [PATCH 04/15] fixup --- code/modules/mob/living/basic/pets/dog/_dog.dm | 1 - code/modules/mob/living/basic/pets/dog/corgi.dm | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/basic/pets/dog/_dog.dm b/code/modules/mob/living/basic/pets/dog/_dog.dm index 4ee85907f639..f82caad827e7 100644 --- a/code/modules/mob/living/basic/pets/dog/_dog.dm +++ b/code/modules/mob/living/basic/pets/dog/_dog.dm @@ -47,7 +47,6 @@ /mob/living/basic/pet/dog/Initialize(mapload) . = ..() - REGISTER_REQUIRED_MAP_ITEM(1, 1) AddElement(/datum/element/pet_bonus, "woofs happily!") AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW) AddElement(/datum/element/unfriend_attacker, untamed_reaction = "%SOURCE% fixes %TARGET% with a look of betrayal.") diff --git a/code/modules/mob/living/basic/pets/dog/corgi.dm b/code/modules/mob/living/basic/pets/dog/corgi.dm index 8337cc4435f7..00b64ffef6f9 100644 --- a/code/modules/mob/living/basic/pets/dog/corgi.dm +++ b/code/modules/mob/living/basic/pets/dog/corgi.dm @@ -353,6 +353,7 @@ /mob/living/basic/pet/dog/corgi/ian/Initialize(mapload) . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, 1) //parent call must happen first to ensure IAN //is not in nullspace when child puppies spawn Read_Memory() From cd356a0369655127da28933effbfefab2a5784c6 Mon Sep 17 00:00:00 2001 From: Lucy Date: Sat, 22 Jun 2024 19:08:28 -0400 Subject: [PATCH 05/15] Bweh --- _maps/multiz_debug.json | 8 ++++---- code/modules/unit_tests/required_map_items.dm | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/_maps/multiz_debug.json b/_maps/multiz_debug.json index 5cfe3104728c..15cf73d599a4 100644 --- a/_maps/multiz_debug.json +++ b/_maps/multiz_debug.json @@ -8,17 +8,17 @@ ], "traits": [ { - "Up": 1, + "Up": true, "Linkage": "Cross" }, { - "Up": 1, - "Down": -1, + "Up": true, + "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" }, { - "Down": -1, + "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/code/modules/unit_tests/required_map_items.dm b/code/modules/unit_tests/required_map_items.dm index ce16a48362a7..a8804645efd8 100644 --- a/code/modules/unit_tests/required_map_items.dm +++ b/code/modules/unit_tests/required_map_items.dm @@ -8,6 +8,8 @@ /datum/unit_test/required_map_items /// A list of all typepaths that we expect to be in the required items list var/list/expected_types = list() + /// Subtypes to ignore. + var/list/ignored_types = list() /// Used to fill the expected types list with all the types we look for on the map. /// This list will just be full of typepaths that we expect. @@ -28,6 +30,7 @@ expected_types += /obj/structure/cassette_rack/prefilled expected_types += /obj/machinery/cryopod expected_types += /obj/machinery/cassette/mailbox + ignored_types += /obj/machinery/cryopod/prison // monkestation end /datum/unit_test/required_map_items/Run() @@ -49,6 +52,7 @@ if(items_found > item.maximum_amount) TEST_FAIL("Item [got_type] should have at most [item.maximum_amount] mapped in but had [items_found] on mapload!") continue + required_map_items -= ignored_types // This primarily serves as a reminder to include the typepath in the expected types list above. // However we can easily delete this line in the future if it runs into false positives. From e78064c3349ddf921369bdbd39e67cae2d245464 Mon Sep 17 00:00:00 2001 From: Lucy Date: Sat, 22 Jun 2024 21:36:56 -0400 Subject: [PATCH 06/15] Add CMO stamp to Tram --- _maps/map_files/tramstation/tramstation.dmm | 1 + 1 file changed, 1 insertion(+) diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 19c27b690470..d18085886241 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -66164,6 +66164,7 @@ /obj/item/paper_bin, /obj/item/pen, /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/item/stamp/head/cmo, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) "udc" = ( From 3d861ec6334a5a39de7808a273b6fa92f7489eb8 Mon Sep 17 00:00:00 2001 From: Lucy Date: Sun, 23 Jun 2024 11:02:34 -0400 Subject: [PATCH 07/15] Add holomaps --- code/modules/unit_tests/required_map_items.dm | 3 ++- monkestation/code/modules/holomaps/machinery.dm | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/unit_tests/required_map_items.dm b/code/modules/unit_tests/required_map_items.dm index a8804645efd8..e72be1703e46 100644 --- a/code/modules/unit_tests/required_map_items.dm +++ b/code/modules/unit_tests/required_map_items.dm @@ -30,7 +30,8 @@ expected_types += /obj/structure/cassette_rack/prefilled expected_types += /obj/machinery/cryopod expected_types += /obj/machinery/cassette/mailbox - ignored_types += /obj/machinery/cryopod/prison + expected_types += /obj/machinery/station_map/engineering + ignored_types += /obj/machinery/cryopod/prison // monkestation end /datum/unit_test/required_map_items/Run() diff --git a/monkestation/code/modules/holomaps/machinery.dm b/monkestation/code/modules/holomaps/machinery.dm index 428df2f60440..ac3c6fd6cc37 100644 --- a/monkestation/code/modules/holomaps/machinery.dm +++ b/monkestation/code/modules/holomaps/machinery.dm @@ -269,9 +269,12 @@ icon_state = "station_map_engi" circuit = /obj/item/circuitboard/machine/station_map/engineering -/obj/machinery/station_map/engineering/attack_hand(mob/user) +/obj/machinery/station_map/engineering/Initialize() . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) +/obj/machinery/station_map/engineering/attack_hand(mob/user) + . = ..() if(.) holomap_datum.update_map(handle_overlays()) From 0289188715a797f1acded628353dc197793cbd8e Mon Sep 17 00:00:00 2001 From: Lucy Date: Sun, 23 Jun 2024 11:30:26 -0400 Subject: [PATCH 08/15] AAAAAAAAAAAAAAAAAAAA --- monkestation/code/modules/holomaps/machinery.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monkestation/code/modules/holomaps/machinery.dm b/monkestation/code/modules/holomaps/machinery.dm index ac3c6fd6cc37..720d075543fa 100644 --- a/monkestation/code/modules/holomaps/machinery.dm +++ b/monkestation/code/modules/holomaps/machinery.dm @@ -269,7 +269,7 @@ icon_state = "station_map_engi" circuit = /obj/item/circuitboard/machine/station_map/engineering -/obj/machinery/station_map/engineering/Initialize() +/obj/machinery/station_map/engineering/Initialize(mapload) . = ..() REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) From 510c8a09d511165171d61bea59b7192696a480b2 Mon Sep 17 00:00:00 2001 From: Lucy Date: Sun, 23 Jun 2024 12:36:09 -0400 Subject: [PATCH 09/15] guh --- code/modules/unit_tests/required_map_items.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/unit_tests/required_map_items.dm b/code/modules/unit_tests/required_map_items.dm index e72be1703e46..f4fef99344c8 100644 --- a/code/modules/unit_tests/required_map_items.dm +++ b/code/modules/unit_tests/required_map_items.dm @@ -30,7 +30,6 @@ expected_types += /obj/structure/cassette_rack/prefilled expected_types += /obj/machinery/cryopod expected_types += /obj/machinery/cassette/mailbox - expected_types += /obj/machinery/station_map/engineering ignored_types += /obj/machinery/cryopod/prison // monkestation end From 8a92d87d5669becbc026b30d8b4fecfba7d53c81 Mon Sep 17 00:00:00 2001 From: Lucy Date: Sun, 23 Jun 2024 13:01:51 -0400 Subject: [PATCH 10/15] me when --- monkestation/code/modules/holomaps/machinery.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/monkestation/code/modules/holomaps/machinery.dm b/monkestation/code/modules/holomaps/machinery.dm index 720d075543fa..0744fdd2a05a 100644 --- a/monkestation/code/modules/holomaps/machinery.dm +++ b/monkestation/code/modules/holomaps/machinery.dm @@ -269,10 +269,6 @@ icon_state = "station_map_engi" circuit = /obj/item/circuitboard/machine/station_map/engineering -/obj/machinery/station_map/engineering/Initialize(mapload) - . = ..() - REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) - /obj/machinery/station_map/engineering/attack_hand(mob/user) . = ..() if(.) From 1a750083df6ad25c8144cda1a52ae593930c1bf5 Mon Sep 17 00:00:00 2001 From: Lucy Date: Mon, 24 Jun 2024 21:29:15 -0400 Subject: [PATCH 11/15] Update stamps on Blueshift, shoddily map missing stuff into Kilo --- _maps/map_files/Blueshift/Blueshift.dmm | 14 +++++----- _maps/map_files/KiloStation/KiloStation.dmm | 30 +++------------------ 2 files changed, 10 insertions(+), 34 deletions(-) diff --git a/_maps/map_files/Blueshift/Blueshift.dmm b/_maps/map_files/Blueshift/Blueshift.dmm index a3c509373e77..1ba5e095bfb2 100644 --- a/_maps/map_files/Blueshift/Blueshift.dmm +++ b/_maps/map_files/Blueshift/Blueshift.dmm @@ -5536,7 +5536,7 @@ pixel_x = -3; pixel_y = 9 }, -/obj/item/stamp/hop{ +/obj/item/stamp/head/hop{ pixel_x = -3; pixel_y = 6 }, @@ -6832,7 +6832,7 @@ }, /obj/item/folder/yellow, /obj/item/lighter, -/obj/item/stamp/ce, +/obj/item/stamp/head/ce, /obj/effect/turf_decal/tile/yellow/full, /turf/open/floor/iron/large, /area/station/command/heads_quarters/ce) @@ -17535,7 +17535,7 @@ /obj/structure/table/reinforced, /obj/item/folder/red, /obj/item/pen/red, -/obj/item/stamp/hos, +/obj/item/stamp/head/hos, /obj/machinery/keycard_auth{ pixel_x = 15 }, @@ -87392,7 +87392,7 @@ "qZR" = ( /obj/structure/table/glass, /obj/item/folder/white, -/obj/item/stamp/rd, +/obj/item/stamp/head/rd, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) "rah" = ( @@ -96039,7 +96039,7 @@ dir = 4 }, /obj/item/folder/yellow, -/obj/item/stamp/qm, +/obj/item/stamp/head/qm, /obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ pixel_x = 6; pixel_y = 16 @@ -99388,7 +99388,7 @@ pixel_x = -6; pixel_y = 4 }, -/obj/item/stamp/captain{ +/obj/item/stamp/head/captain{ pixel_x = 5; pixel_y = 2 }, @@ -105921,7 +105921,7 @@ pixel_y = 6 }, /obj/item/folder/white, -/obj/item/stamp/cmo{ +/obj/item/stamp/head/cmo{ pixel_y = 5 }, /turf/open/floor/carpet/blue, diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index b46e446abc59..6298f5f2ec1b 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -23167,6 +23167,7 @@ pixel_y = 5 }, /obj/effect/turf_decal/trimline/blue/filled/line, +/obj/item/stamp/head/cmo, /turf/open/floor/iron/showroomfloor, /area/station/command/heads_quarters/cmo) "htn" = ( @@ -67781,35 +67782,9 @@ pixel_y = 7; pixel_x = -8 }, -/obj/item/device/cassette_tape/blank, -/obj/item/device/cassette_tape/blank, -/obj/item/device/cassette_tape/blank, -/obj/item/device/cassette_tape/blank, -/obj/item/device/cassette_tape/blank, -/obj/item/device/cassette_tape/blank, -/obj/item/device/cassette_tape/blank, -/obj/item/device/cassette_tape/blank, -/obj/item/device/cassette_tape/random{ - pixel_y = 8 - }, -/obj/item/device/cassette_tape/random{ - pixel_y = 8 - }, -/obj/item/device/cassette_tape/random{ - pixel_y = 8 - }, -/obj/item/device/cassette_tape/random{ - pixel_y = 8 - }, -/obj/item/device/cassette_tape/random{ - pixel_y = 8 - }, -/obj/item/device/cassette_tape/friday{ - pixel_y = 2; - pixel_x = 9 - }, /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/cassette_rack/prefilled, /turf/open/floor/iron/dark, /area/station/service/library) "vFH" = ( @@ -73142,6 +73117,7 @@ pixel_x = -29 }, /obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/item/radio/radio_mic, /turf/open/floor/iron/dark, /area/station/service/library) "xle" = ( From ba4a262746769dae1f2301ecc4b891494d115a3b Mon Sep 17 00:00:00 2001 From: Lucy Date: Thu, 27 Jun 2024 15:37:26 -0400 Subject: [PATCH 12/15] Directional ATMs, re-add holomaps --- _maps/map_files/Blueshift/Blueshift.dmm | 50 ++++++++++++++++--- _maps/map_files/BoxStation/BoxStation.dmm | 16 +++--- .../map_files/Deltastation/DeltaStation2.dmm | 20 ++++---- .../map_files/IceBoxStation/IceBoxStation.dmm | 18 +++---- _maps/map_files/KiloStation/KiloStation.dmm | 10 ++-- _maps/map_files/MetaStation/MetaStation.dmm | 20 ++++---- _maps/map_files/NorthStar/north_star.dmm | 26 ++++------ _maps/map_files/generic/CentCom.dmm | 2 +- _maps/map_files/tramstation/tramstation.dmm | 14 +++--- _maps/shuttles/emergency_cruise.dmm | 2 +- .../RandomBars/Icebox/Drunkopsbar.dmm | 2 +- .../RandomBars/Icebox/Magbar.dmm | 2 +- .../RandomBars/Icebox/clockwork_icebox.dmm | 2 +- .../RandomBars/Icebox/cultbar_icebox.dmm | 6 +-- .../RandomBars/Icebox/green_bar_disco.dmm | 2 +- .../RandomBars/Icebox/icebox_bar_abductor.dmm | 2 +- .../RandomBars/Icebox/icebox_bar_arcade.dmm | 2 +- .../RandomBars/Icebox/icebox_bar_base.dmm | 2 +- .../RandomBars/Icebox/junglebar.dmm | 2 +- .../RandomBars/Icebox/mime_bar.dmm | 2 +- .../RandomBars/Tram/tram_bar_base.dmm | 4 +- .../RandomBars/Tram/tram_bar_beachside.dmm | 2 +- .../RandomBars/Tram/tram_bar_biodome.dmm | 4 +- .../RandomBars/Tram/tram_bar_cult.dmm | 9 +--- .../RandomBars/Tram/tram_bar_maints_grape.dmm | 4 +- .../RandomBars/Tram/tram_bar_ocean.dmm | 2 +- .../RandomBars/Tram/tram_rvb_bar.dmm | 10 +--- code/__DEFINES/unit_tests.dm | 7 +-- .../~monkestation-helpers/mapping.dm | 10 ++++ code/modules/unit_tests/required_map_items.dm | 7 +-- .../code/modules/holomaps/machinery.dm | 4 ++ monkestation/code/modules/store/atm/_atm.dm | 4 +- ...varedited_atms_to_subtype_directionals.txt | 5 ++ 33 files changed, 158 insertions(+), 116 deletions(-) create mode 100644 tools/UpdatePaths/Scripts/monkestation/2346_varedited_atms_to_subtype_directionals.txt diff --git a/_maps/map_files/Blueshift/Blueshift.dmm b/_maps/map_files/Blueshift/Blueshift.dmm index 38e78165733c..3829194b00d4 100644 --- a/_maps/map_files/Blueshift/Blueshift.dmm +++ b/_maps/map_files/Blueshift/Blueshift.dmm @@ -1556,6 +1556,7 @@ }, /obj/machinery/status_display/evac/directional/south, /obj/effect/landmark/start/hangover, +/obj/machinery/atm/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/secondary/command) "aqb" = ( @@ -4049,6 +4050,7 @@ /obj/machinery/light/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atm/directional/east, /turf/open/floor/iron, /area/station/commons/dorms) "aPq" = ( @@ -4579,6 +4581,7 @@ /obj/effect/turf_decal/arrows/white{ dir = 1 }, +/obj/machinery/atm/directional/west, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "aUY" = ( @@ -6266,6 +6269,7 @@ }, /obj/effect/turf_decal/siding/wood/corner, /obj/effect/landmark/start/hangover, +/obj/machinery/atm/directional/east, /turf/open/floor/wood, /area/station/hallway/primary/central) "bmu" = ( @@ -21011,6 +21015,7 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 }, +/obj/machinery/atm/directional/east, /turf/open/floor/iron, /area/station/commons/storage/primary) "dZR" = ( @@ -21619,6 +21624,13 @@ /obj/machinery/shieldgen, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva/upper) +"egV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "egW" = ( /obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ dir = 4 @@ -27545,6 +27557,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/break_room) +"fmQ" = ( +/obj/machinery/atm/directional/south, +/turf/open/floor/engine, +/area/station/command/secure_bunker) "fmR" = ( /obj/structure/chair/office{ dir = 8 @@ -27694,6 +27710,14 @@ }, /turf/open/floor/wood/large, /area/station/science/auxlab/firing_range) +"foj" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atm/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) "fom" = ( /obj/structure/closet/bombcloset/security, /obj/item/clothing/suit/utility/bomb_suit/security, @@ -55364,6 +55388,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, /obj/machinery/duct, +/obj/machinery/atm/directional/west, /turf/open/floor/iron, /area/station/commons/dorms) "kKm" = ( @@ -57951,10 +57976,10 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/obj/machinery/newscaster/directional/east, /obj/machinery/light/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atm/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "lmd" = ( @@ -58013,8 +58038,10 @@ /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, -/obj/machinery/status_display/ai/directional/east, /obj/machinery/light/directional/east, +/obj/machinery/status_display/supply{ + pixel_x = 32 + }, /turf/open/floor/iron, /area/station/cargo/lobby) "lmz" = ( @@ -59200,6 +59227,7 @@ c_tag = "Bar - Aft 2"; name = "service camera" }, +/obj/machinery/atm/directional/east, /turf/open/floor/wood, /area/station/service/bar/atrium) "lyW" = ( @@ -62451,6 +62479,7 @@ /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atm/directional/east, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "mex" = ( @@ -72251,6 +72280,7 @@ /area/station/maintenance/department/security/lesser) "odS" = ( /obj/machinery/camera/autoname/directional/west, +/obj/machinery/atm/directional/west, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -75942,6 +75972,7 @@ /obj/structure/disposalpipe/trunk{ dir = 2 }, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/diner) "oMC" = ( @@ -79841,6 +79872,7 @@ dir = 10 }, /obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atm/directional/south, /turf/open/floor/iron/white, /area/station/science) "pAO" = ( @@ -94078,6 +94110,7 @@ /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 }, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark/textured_edge{ dir = 1 }, @@ -102526,6 +102559,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/science/lower) "tSE" = ( +/obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) "tSF" = ( @@ -107325,6 +107359,7 @@ name = "Command Chair"; req_access = list("command") }, +/obj/machinery/atm/directional/south, /turf/open/floor/iron, /area/station/command/bridge) "uOU" = ( @@ -122632,6 +122667,7 @@ /area/station/maintenance/rus_gambling) "xKH" = ( /obj/machinery/cassette/mailbox, +/obj/machinery/atm/directional/north, /turf/open/floor/wood, /area/station/service/library) "xKK" = ( @@ -122770,6 +122806,7 @@ dir = 1 }, /obj/machinery/camera/autoname/directional/west, +/obj/machinery/atm/directional/west, /turf/open/floor/iron, /area/station/commons/dorms) "xMj" = ( @@ -122863,6 +122900,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atm/directional/south, /turf/open/floor/iron/white/corner{ dir = 8 }, @@ -123205,8 +123243,8 @@ }, /area/station/security/interrogation) "xQS" = ( -/obj/machinery/light_switch/directional/south, /obj/machinery/camera/autoname/directional/south, +/obj/machinery/atm/directional/south, /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) "xQY" = ( @@ -161084,7 +161122,7 @@ sNz sNz sNz sNz -sNz +egV pSa rfv bTx @@ -219882,7 +219920,7 @@ jYP xai xai xai -hCo +foj sIz xFd cJU @@ -231677,7 +231715,7 @@ eOw vzW kxk aFD -vhb +fmQ uhZ rOD uJF diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index d54fbbc19235..03125504e524 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -6716,7 +6716,7 @@ /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -23395,7 +23395,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/red/line, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "hLW" = ( @@ -31889,7 +31889,7 @@ /area/station/hallway/primary/central) "kFc" = ( /obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "kFf" = ( @@ -40078,7 +40078,7 @@ /area/station/hallway/primary/aft) "nrX" = ( /obj/machinery/light/small/directional/north, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/structure/closet/secure_closet/personal, /turf/open/floor/iron/dark/side{ dir = 1 @@ -43766,7 +43766,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/dark_blue/line, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "oAe" = ( @@ -47186,7 +47186,7 @@ dir = 1 }, /obj/machinery/light/directional/north, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) @@ -56621,7 +56621,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/yellow/line, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/aft) "sWq" = ( @@ -66967,7 +66967,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "wtt" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index f0143c89e958..2835d6b71a5a 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -13331,7 +13331,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/command) "dep" = ( @@ -16878,7 +16878,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "dZD" = ( @@ -20513,7 +20513,7 @@ dir = 4 }, /obj/machinery/status_display/ai/directional/north, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/cafeteria, /area/station/service/cafeteria) "eSq" = ( @@ -35094,7 +35094,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "ipN" = ( @@ -36071,7 +36071,7 @@ /obj/effect/turf_decal/trimline/hot_pink/filled/line{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark/textured_edge{ dir = 1 }, @@ -50017,7 +50017,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/fore) "lPs" = ( @@ -65190,7 +65190,7 @@ c_tag = "Cargo - Waiting Room"; name = "cargo camera" }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/cargo/lobby) "pBH" = ( @@ -66244,7 +66244,7 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "pNq" = ( @@ -69081,7 +69081,7 @@ }, /obj/machinery/duct, /obj/machinery/light/directional/north, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark/corner{ dir = 1 }, @@ -96564,7 +96564,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "xbu" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 515fd1c64aab..56f44ae5a0d3 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -3377,7 +3377,7 @@ /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "ben" = ( @@ -7475,7 +7475,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/fore) "coB" = ( @@ -16225,12 +16225,12 @@ /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/white/smooth_large, /area/station/service/kitchen/diner) "fbt" = ( /obj/effect/turf_decal/tile/green, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) "fbK" = ( @@ -24535,7 +24535,7 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "hTo" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/port) "hTt" = ( @@ -33910,7 +33910,7 @@ /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) "kRE" = ( @@ -46791,7 +46791,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "oUE" = ( @@ -54596,7 +54596,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) "rwQ" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) "rwW" = ( @@ -62289,7 +62289,7 @@ /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/commons/fitness) "tYe" = ( diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 16d12191a256..5c953f9801aa 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -21086,7 +21086,7 @@ name = "service camera" }, /obj/effect/turf_decal/tile/red/opposingcorners, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/service/bar/atrium) "gHA" = ( @@ -30770,7 +30770,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "jDU" = ( @@ -53160,7 +53160,7 @@ /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "qXA" = ( @@ -56886,7 +56886,7 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark/corner{ dir = 4 }, @@ -69928,7 +69928,7 @@ dir = 1 }, /obj/machinery/light/directional/north, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/service/chapel/monastery) "wio" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 153caebea55b..36a260e70e06 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -8118,7 +8118,7 @@ /area/station/engineering/atmospherics_engine) "daz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) "daC" = ( @@ -9419,7 +9419,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "dAG" = ( @@ -14752,7 +14752,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "fAI" = ( @@ -21143,7 +21143,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) "hOR" = ( @@ -22083,7 +22083,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/port) "ifJ" = ( @@ -43584,7 +43584,7 @@ /turf/open/floor/iron, /area/station/security/courtroom) "pyc" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/wood, /area/station/commons/lounge) "pyd" = ( @@ -44602,7 +44602,7 @@ /area/station/service/bar/backroom) "pQD" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/construction/storage_wing) "pQG" = ( @@ -45366,7 +45366,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/spawner/random/engineering/tracking_beacon, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "qfL" = ( @@ -46506,7 +46506,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) "qyT" = ( @@ -51305,7 +51305,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/fore) "sfl" = ( diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 8eb567522753..5d8e9b1e4c7e 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -225,9 +225,7 @@ /obj/effect/turf_decal/stripes/line, /obj/machinery/holopad, /obj/effect/landmark/navigate_destination/dockarrival, -/obj/machinery/atm{ - pixel_y = -30 - }, +/obj/machinery/atm/directional/south, /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) "acl" = ( @@ -2298,7 +2296,7 @@ /area/station/maintenance/floor1/starboard/fore) "aDl" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "aDn" = ( @@ -15442,9 +15440,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atm{ - pixel_y = -30 - }, +/obj/machinery/atm/directional/south, /turf/open/floor/carpet/red, /area/station/service/theater) "dYr" = ( @@ -24146,7 +24142,7 @@ /obj/structure/cable, /obj/structure/table/reinforced, /obj/item/storage/fancy/donut_box, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/half{ dir = 1 }, @@ -33037,7 +33033,7 @@ /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/floor2/fore) "iVL" = ( @@ -36203,7 +36199,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "jMn" = ( @@ -36499,7 +36495,7 @@ /area/station/science/lobby) "jPs" = ( /obj/machinery/camera/autoname/directional/north, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -51903,7 +51899,7 @@ /turf/open/floor/iron/dark, /area/station/security/lockers) "nHB" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -71169,7 +71165,7 @@ /turf/open/floor/eighties, /area/station/commons/fitness/recreation/entertainment) "sZF" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark/side{ dir = 9 }, @@ -73617,7 +73613,7 @@ dir = 8 }, /obj/machinery/light_switch/directional/east, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/wood, /area/station/commons/dorms/apartment2) "tJZ" = ( @@ -79849,7 +79845,7 @@ }, /area/station/engineering/lobby) "vvT" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/floor1/fore) "vvX" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 1f36125564c3..85742b5df225 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -9266,7 +9266,7 @@ pixel_x = 18; pixel_y = 5 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/structure/table, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/arcade) diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index a746c1e3be11..ce8f17253144 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -25941,7 +25941,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/effect/landmark/navigate_destination/common/dorms, /turf/open/floor/iron, /area/station/commons/dorms) @@ -28844,7 +28844,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/escapepodbay) "imY" = ( @@ -28876,7 +28876,7 @@ pixel_x = -25; pixel_y = -5 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "int" = ( @@ -30054,7 +30054,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/warning{ dir = 1 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/tram/right) "iGg" = ( @@ -48005,7 +48005,7 @@ dir = 9 }, /obj/effect/turf_decal/trimline/dark_blue/corner, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) "omT" = ( @@ -54686,7 +54686,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation/entertainment) "qvt" = ( @@ -61262,7 +61262,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 9 }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/service) "szZ" = ( diff --git a/_maps/shuttles/emergency_cruise.dmm b/_maps/shuttles/emergency_cruise.dmm index 3c61e456b8ae..ffa5f86a6d48 100644 --- a/_maps/shuttles/emergency_cruise.dmm +++ b/_maps/shuttles/emergency_cruise.dmm @@ -1119,7 +1119,7 @@ /turf/open/floor/plastic, /area/shuttle/escape/luxury) "uQ" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/wood/tile, /area/shuttle/escape) "uV" = ( diff --git a/_maps/~monkestation/RandomBars/Icebox/Drunkopsbar.dmm b/_maps/~monkestation/RandomBars/Icebox/Drunkopsbar.dmm index 5b6c97d5451a..746f3cd0fdeb 100644 --- a/_maps/~monkestation/RandomBars/Icebox/Drunkopsbar.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/Drunkopsbar.dmm @@ -534,7 +534,7 @@ "CF" = ( /obj/machinery/restaurant_portal/bar, /obj/machinery/camera/directional/north, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/mineral/plastitanium, /area/station/service/bar) "Ds" = ( diff --git a/_maps/~monkestation/RandomBars/Icebox/Magbar.dmm b/_maps/~monkestation/RandomBars/Icebox/Magbar.dmm index 7ba68244769b..3b4c3b15c4da 100644 --- a/_maps/~monkestation/RandomBars/Icebox/Magbar.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/Magbar.dmm @@ -851,7 +851,7 @@ "CU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron{ base_icon_state = "basalt0"; icon_state = "basalt0"; diff --git a/_maps/~monkestation/RandomBars/Icebox/clockwork_icebox.dmm b/_maps/~monkestation/RandomBars/Icebox/clockwork_icebox.dmm index a8890927c179..884feffcabd9 100644 --- a/_maps/~monkestation/RandomBars/Icebox/clockwork_icebox.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/clockwork_icebox.dmm @@ -424,7 +424,7 @@ /turf/open/floor/bronze, /area/station/commons/lounge) "wb" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/bronze, /area/station/commons/lounge) "wg" = ( diff --git a/_maps/~monkestation/RandomBars/Icebox/cultbar_icebox.dmm b/_maps/~monkestation/RandomBars/Icebox/cultbar_icebox.dmm index 1201953d3555..34267a809206 100644 --- a/_maps/~monkestation/RandomBars/Icebox/cultbar_icebox.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/cultbar_icebox.dmm @@ -570,9 +570,7 @@ dir = 1; name = "old bloody sofa" }, -/obj/machinery/atm{ - pixel_y = -30 - }, +/obj/machinery/atm/directional/south, /obj/machinery/airalarm/directional/east, /turf/open/floor/cult, /area/station/commons/lounge) @@ -832,7 +830,7 @@ dir = 4; name = "old bloody sofa" }, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/cult, /area/station/commons/lounge) "Ov" = ( diff --git a/_maps/~monkestation/RandomBars/Icebox/green_bar_disco.dmm b/_maps/~monkestation/RandomBars/Icebox/green_bar_disco.dmm index 6a4bc206155b..19a3317f9a3d 100644 --- a/_maps/~monkestation/RandomBars/Icebox/green_bar_disco.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/green_bar_disco.dmm @@ -489,7 +489,7 @@ /turf/open/floor/carpet/green, /area/station/commons/lounge) "tJ" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/structure/chair/wood{ dir = 4 }, diff --git a/_maps/~monkestation/RandomBars/Icebox/icebox_bar_abductor.dmm b/_maps/~monkestation/RandomBars/Icebox/icebox_bar_abductor.dmm index 5a588d418ebb..f8f0aefbc2e2 100644 --- a/_maps/~monkestation/RandomBars/Icebox/icebox_bar_abductor.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/icebox_bar_abductor.dmm @@ -395,7 +395,7 @@ /turf/open/floor/mineral/fake_abductor, /area/station/commons/lounge) "sH" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/mineral/fake_abductor, /area/station/commons/lounge) "tL" = ( diff --git a/_maps/~monkestation/RandomBars/Icebox/icebox_bar_arcade.dmm b/_maps/~monkestation/RandomBars/Icebox/icebox_bar_arcade.dmm index 40a48926706b..68bcd6dec5ae 100644 --- a/_maps/~monkestation/RandomBars/Icebox/icebox_bar_arcade.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/icebox_bar_arcade.dmm @@ -204,7 +204,7 @@ /area/station/service/bar) "jP" = ( /obj/machinery/light/directional/north, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/effect/turf_decal/siding/purple{ dir = 4 }, diff --git a/_maps/~monkestation/RandomBars/Icebox/icebox_bar_base.dmm b/_maps/~monkestation/RandomBars/Icebox/icebox_bar_base.dmm index 0b4a15f881d4..5dc6cd68802d 100644 --- a/_maps/~monkestation/RandomBars/Icebox/icebox_bar_base.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/icebox_bar_base.dmm @@ -972,7 +972,7 @@ /turf/open/floor/stone, /area/station/service/bar) "Tm" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/wood/parquet, /area/station/commons/lounge) "Uq" = ( diff --git a/_maps/~monkestation/RandomBars/Icebox/junglebar.dmm b/_maps/~monkestation/RandomBars/Icebox/junglebar.dmm index e9dbf68c65bb..6ead7780b6b0 100644 --- a/_maps/~monkestation/RandomBars/Icebox/junglebar.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/junglebar.dmm @@ -467,7 +467,7 @@ /turf/open/floor/wood, /area/station/commons/lounge) "Vd" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, diff --git a/_maps/~monkestation/RandomBars/Icebox/mime_bar.dmm b/_maps/~monkestation/RandomBars/Icebox/mime_bar.dmm index 082161fd595b..b1d9b9a25c31 100644 --- a/_maps/~monkestation/RandomBars/Icebox/mime_bar.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/mime_bar.dmm @@ -1962,7 +1962,7 @@ /turf/open/floor/stone, /area/station/service/bar) "Tm" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/structure/window/reinforced/plasma{ dir = 1; alpha = 0 diff --git a/_maps/~monkestation/RandomBars/Tram/tram_bar_base.dmm b/_maps/~monkestation/RandomBars/Tram/tram_bar_base.dmm index cc58ec88902d..3d15998567b2 100644 --- a/_maps/~monkestation/RandomBars/Tram/tram_bar_base.dmm +++ b/_maps/~monkestation/RandomBars/Tram/tram_bar_base.dmm @@ -823,7 +823,7 @@ "wu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/wood/large, /area/station/service/theater) "wx" = ( @@ -1784,7 +1784,7 @@ "Vq" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/iron/dark, /area/station/commons/lounge) "Vs" = ( diff --git a/_maps/~monkestation/RandomBars/Tram/tram_bar_beachside.dmm b/_maps/~monkestation/RandomBars/Tram/tram_bar_beachside.dmm index 041c608df6f3..c3966427f4bd 100644 --- a/_maps/~monkestation/RandomBars/Tram/tram_bar_beachside.dmm +++ b/_maps/~monkestation/RandomBars/Tram/tram_bar_beachside.dmm @@ -1667,7 +1667,7 @@ /turf/open/floor/fakesand, /area/station/commons/lounge) "Wq" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/effect/turf_decal/sand, /turf/open/misc/beach/sand, /area/station/commons/lounge) diff --git a/_maps/~monkestation/RandomBars/Tram/tram_bar_biodome.dmm b/_maps/~monkestation/RandomBars/Tram/tram_bar_biodome.dmm index 15c9c93944e6..e5ce805f2b75 100644 --- a/_maps/~monkestation/RandomBars/Tram/tram_bar_biodome.dmm +++ b/_maps/~monkestation/RandomBars/Tram/tram_bar_biodome.dmm @@ -893,7 +893,7 @@ "wu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/misc/snow/actually_safe, /area/station/service/theater) "wx" = ( @@ -1991,7 +1991,7 @@ "Vq" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/pod/light, /area/station/commons/lounge) "Vs" = ( diff --git a/_maps/~monkestation/RandomBars/Tram/tram_bar_cult.dmm b/_maps/~monkestation/RandomBars/Tram/tram_bar_cult.dmm index 253eb1f6538d..c0938396a975 100644 --- a/_maps/~monkestation/RandomBars/Tram/tram_bar_cult.dmm +++ b/_maps/~monkestation/RandomBars/Tram/tram_bar_cult.dmm @@ -1418,9 +1418,7 @@ /turf/open/floor/cult, /area/station/service/theater) "FA" = ( -/obj/machinery/atm{ - pixel_y = -30 - }, +/obj/machinery/atm/directional/south, /obj/effect/turf_decal/arrows{ pixel_x = -8 }, @@ -1946,10 +1944,7 @@ /turf/open/floor/cult, /area/station/commons/lounge) "Ud" = ( -/obj/machinery/atm{ - pixel_x = -30; - pixel_y = 0 - }, +/obj/machinery/atm/directional/west, /turf/open/floor/cult, /area/station/service/theater) "Uf" = ( diff --git a/_maps/~monkestation/RandomBars/Tram/tram_bar_maints_grape.dmm b/_maps/~monkestation/RandomBars/Tram/tram_bar_maints_grape.dmm index ca61184f3138..61876b3614f1 100644 --- a/_maps/~monkestation/RandomBars/Tram/tram_bar_maints_grape.dmm +++ b/_maps/~monkestation/RandomBars/Tram/tram_bar_maints_grape.dmm @@ -967,7 +967,7 @@ "wu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/service/theater) @@ -2083,7 +2083,7 @@ /area/station/commons/lounge) "Vq" = ( /obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /obj/item/shard{ pixel_x = 14 }, diff --git a/_maps/~monkestation/RandomBars/Tram/tram_bar_ocean.dmm b/_maps/~monkestation/RandomBars/Tram/tram_bar_ocean.dmm index 3df847a9c380..0363b7620519 100644 --- a/_maps/~monkestation/RandomBars/Tram/tram_bar_ocean.dmm +++ b/_maps/~monkestation/RandomBars/Tram/tram_bar_ocean.dmm @@ -795,7 +795,7 @@ /turf/open/floor/fake_seafloor/ironsand, /area/station/service/theater) "JI" = ( -/obj/machinery/atm, +/obj/machinery/atm/directional/north, /turf/open/floor/fake_seafloor/spawning, /area/station/commons/lounge) "Kh" = ( diff --git a/_maps/~monkestation/RandomBars/Tram/tram_rvb_bar.dmm b/_maps/~monkestation/RandomBars/Tram/tram_rvb_bar.dmm index e161d9ce8ff8..7bda319a1554 100644 --- a/_maps/~monkestation/RandomBars/Tram/tram_rvb_bar.dmm +++ b/_maps/~monkestation/RandomBars/Tram/tram_rvb_bar.dmm @@ -192,10 +192,7 @@ /obj/effect/turf_decal/tile/dark{ dir = 8 }, -/obj/machinery/atm{ - pixel_x = 30; - pixel_y = 0 - }, +/obj/machinery/atm/directional/east, /turf/open/floor/iron, /area/station/commons/lounge) "dn" = ( @@ -2271,10 +2268,7 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/machinery/duct, -/obj/machinery/atm{ - pixel_x = -30; - pixel_y = 0 - }, +/obj/machinery/atm/directional/west, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, diff --git a/code/__DEFINES/unit_tests.dm b/code/__DEFINES/unit_tests.dm index 9b36bdb6640b..9cfceb0ed542 100644 --- a/code/__DEFINES/unit_tests.dm +++ b/code/__DEFINES/unit_tests.dm @@ -34,11 +34,12 @@ do { \ if(mapload) { \ var/turf/spawn_turf = get_turf(src); \ + var/fixed_type = trim_directional_helper_suffix(type) if(is_station_level(spawn_turf?.z || 0)) { \ - var/datum/required_item/existing_value = GLOB.required_map_items[type]; \ + var/datum/required_item/existing_value = GLOB.required_map_items[fixed_type]; \ if(isnull(existing_value)) { \ - var/datum/required_item/new_value = new(type, min, max); \ - GLOB.required_map_items[type] = new_value; \ + var/datum/required_item/new_value = new(fixed_type, min, max); \ + GLOB.required_map_items[fixed_type] = new_value; \ } else { \ existing_value.total_amount += 1; \ }; \ diff --git a/code/__HELPERS/~monkestation-helpers/mapping.dm b/code/__HELPERS/~monkestation-helpers/mapping.dm index 62d6f30564da..a4d0a68fca7e 100644 --- a/code/__HELPERS/~monkestation-helpers/mapping.dm +++ b/code/__HELPERS/~monkestation-helpers/mapping.dm @@ -4,3 +4,13 @@ if(a.z == b.z) return TRUE return (b.z in SSmapping.get_connected_levels(a)) + +/// Trims "directional/dir" suffixes from typepaths. +/proc/trim_directional_helper_suffix(typepath) + if(!ispath(typepath)) + CRASH("Passed non-typepath [typepath] to trim_directional_helper_suffix") + var/static/regex/directional_helper_regex + if(!directional_helper_regex) + directional_helper_regex = new(@"\/directional\/(north|south|east|west)$") + var/replaced = replacetext("[typepath]", directional_helper_regex, "") + return text2path(replaced) || typepath diff --git a/code/modules/unit_tests/required_map_items.dm b/code/modules/unit_tests/required_map_items.dm index f4fef99344c8..5f5fe135a950 100644 --- a/code/modules/unit_tests/required_map_items.dm +++ b/code/modules/unit_tests/required_map_items.dm @@ -23,13 +23,14 @@ expected_types += /mob/living/simple_animal/pet/cat/runtime expected_types += /mob/living/basic/parrot/poly // monkestation start - expected_types += /obj/machinery/cassette/adv_cassette_deck expected_types += /obj/item/radio/radio_mic expected_types += /obj/machinery/atm + expected_types += /obj/machinery/cassette/adv_cassette_deck expected_types += /obj/machinery/cassette/dj_station - expected_types += /obj/structure/cassette_rack/prefilled - expected_types += /obj/machinery/cryopod expected_types += /obj/machinery/cassette/mailbox + expected_types += /obj/machinery/cryopod + expected_types += /obj/machinery/station_map/engineering + expected_types += /obj/structure/cassette_rack/prefilled ignored_types += /obj/machinery/cryopod/prison // monkestation end diff --git a/monkestation/code/modules/holomaps/machinery.dm b/monkestation/code/modules/holomaps/machinery.dm index f48d97cdb745..9204f8c77b3a 100644 --- a/monkestation/code/modules/holomaps/machinery.dm +++ b/monkestation/code/modules/holomaps/machinery.dm @@ -269,6 +269,10 @@ icon_state = "station_map_engi" circuit = /obj/item/circuitboard/machine/station_map/engineering +/obj/machinery/station_map/engineering/Initialize(mapload) + . = ..() + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) + /obj/machinery/station_map/engineering/attack_hand(mob/user) . = ..() if(.) diff --git a/monkestation/code/modules/store/atm/_atm.dm b/monkestation/code/modules/store/atm/_atm.dm index fb1335edf1e7..87aeeff4e101 100644 --- a/monkestation/code/modules/store/atm/_atm.dm +++ b/monkestation/code/modules/store/atm/_atm.dm @@ -7,8 +7,6 @@ max_integrity = 10000 - pixel_y = 30 - icon = 'monkestation/icons/obj/machines/atm.dmi' icon_state = "atm" @@ -21,6 +19,8 @@ ///static variable to check if a lottery is running var/static/lottery_running = FALSE +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/atm, 30) + /obj/machinery/atm/Initialize(mapload) . = ..() REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) diff --git a/tools/UpdatePaths/Scripts/monkestation/2346_varedited_atms_to_subtype_directionals.txt b/tools/UpdatePaths/Scripts/monkestation/2346_varedited_atms_to_subtype_directionals.txt new file mode 100644 index 000000000000..8703f62a9d17 --- /dev/null +++ b/tools/UpdatePaths/Scripts/monkestation/2346_varedited_atms_to_subtype_directionals.txt @@ -0,0 +1,5 @@ +/obj/machinery/atm{pixel_x=@UNSET;pixel_y=30} : /obj/machinery/atm/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP} +/obj/machinery/atm{pixel_x=@UNSET;pixel_y=-30} : /obj/machinery/atm/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP} +/obj/machinery/atm{pixel_x=-30;pixel_y=0} : /obj/machinery/atm/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP} +/obj/machinery/atm{pixel_x=30;pixel_y=0} : /obj/machinery/atm/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP} +/obj/machinery/atm : /obj/machinery/atm/directional/north From ba8d979171e7f8d7758529b0f9e7b3480305e141 Mon Sep 17 00:00:00 2001 From: Lucy Date: Thu, 27 Jun 2024 19:17:10 -0400 Subject: [PATCH 13/15] Whoopsie daisy --- code/__DEFINES/unit_tests.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/unit_tests.dm b/code/__DEFINES/unit_tests.dm index 9cfceb0ed542..ea9af66f2d8d 100644 --- a/code/__DEFINES/unit_tests.dm +++ b/code/__DEFINES/unit_tests.dm @@ -34,7 +34,7 @@ do { \ if(mapload) { \ var/turf/spawn_turf = get_turf(src); \ - var/fixed_type = trim_directional_helper_suffix(type) + var/fixed_type = trim_directional_helper_suffix(type) \ if(is_station_level(spawn_turf?.z || 0)) { \ var/datum/required_item/existing_value = GLOB.required_map_items[fixed_type]; \ if(isnull(existing_value)) { \ From 1380468218e844c526338f4c90d9b310bef20f07 Mon Sep 17 00:00:00 2001 From: Lucy Date: Thu, 27 Jun 2024 19:17:23 -0400 Subject: [PATCH 14/15] Wait shit --- code/__DEFINES/unit_tests.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/unit_tests.dm b/code/__DEFINES/unit_tests.dm index ea9af66f2d8d..60482923ec20 100644 --- a/code/__DEFINES/unit_tests.dm +++ b/code/__DEFINES/unit_tests.dm @@ -34,7 +34,7 @@ do { \ if(mapload) { \ var/turf/spawn_turf = get_turf(src); \ - var/fixed_type = trim_directional_helper_suffix(type) \ + var/fixed_type = trim_directional_helper_suffix(type); \ if(is_station_level(spawn_turf?.z || 0)) { \ var/datum/required_item/existing_value = GLOB.required_map_items[fixed_type]; \ if(isnull(existing_value)) { \ From 35ca67d931db46a8a474834f5ca724a931be4817 Mon Sep 17 00:00:00 2001 From: Lucy Date: Thu, 27 Jun 2024 23:42:14 -0400 Subject: [PATCH 15/15] Add a generous amount of holomaps to blueshift --- _maps/map_files/Blueshift/Blueshift.dmm | 212 +++++++++++++++++++----- 1 file changed, 170 insertions(+), 42 deletions(-) diff --git a/_maps/map_files/Blueshift/Blueshift.dmm b/_maps/map_files/Blueshift/Blueshift.dmm index 3829194b00d4..42de3d0ab59d 100644 --- a/_maps/map_files/Blueshift/Blueshift.dmm +++ b/_maps/map_files/Blueshift/Blueshift.dmm @@ -542,6 +542,7 @@ dir = 1 }, /obj/machinery/light_switch/directional/west, +/obj/machinery/station_map/engineering/directional/south, /turf/open/floor/carpet/black, /area/station/commons/dorms/room5) "aga" = ( @@ -822,6 +823,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron/white, /area/station/commons/toilet/restrooms) "aiN" = ( @@ -3170,6 +3172,13 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/atmos/office) +"aFX" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/station_map/engineering/directional/north, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "aGc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3982,6 +3991,7 @@ }, /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) "aOC" = ( @@ -5245,8 +5255,8 @@ /area/station/maintenance/fore/upper) "bbG" = ( /obj/structure/table/reinforced, -/obj/item/binoculars, /obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/machinery/station_map/engineering, /turf/open/floor/iron/dark, /area/station/command/bridge) "bbH" = ( @@ -11237,6 +11247,7 @@ /obj/structure/bed/double, /obj/item/bedsheet/green/double, /obj/machinery/light_switch/directional/east, +/obj/machinery/station_map/engineering/directional/south, /turf/open/floor/carpet/green, /area/station/commons/dorms/room2) "chS" = ( @@ -21441,6 +21452,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, +/obj/machinery/station_map/engineering/directional/east, /turf/open/floor/iron, /area/station/commons/dorms) "efd" = ( @@ -22400,6 +22412,7 @@ /obj/item/bedsheet/medical{ dir = 1 }, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron/white, /area/station/medical/patients_rooms) "epH" = ( @@ -24944,6 +24957,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/carpet/purple, /area/station/command/heads_quarters/rd) "eMI" = ( @@ -25244,6 +25258,7 @@ dir = 1 }, /obj/machinery/light_switch/directional/west, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/carpet/orange, /area/station/commons/dorms/room1) "ePt" = ( @@ -25393,8 +25408,8 @@ /turf/open/floor/iron/dark, /area/station/security/brig) "eQF" = ( -/obj/machinery/airalarm/directional/east, /obj/effect/landmark/blobstart, +/obj/machinery/station_map/engineering/directional/east, /turf/open/floor/iron/white, /area/station/medical/coldroom) "eQK" = ( @@ -25513,10 +25528,10 @@ /area/station/command/gateway) "eRP" = ( /obj/item/kirbyplants/random, -/obj/machinery/status_display/evac/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) "eRY" = ( @@ -25547,6 +25562,10 @@ /obj/item/trash/energybar, /turf/open/floor/plating, /area/station/maintenance/fore/upper) +"eSf" = ( +/obj/machinery/station_map/engineering/directional/south, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) "eSi" = ( /obj/effect/turf_decal/stripes/blue/line{ dir = 8 @@ -28702,6 +28721,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/machinery/station_map/engineering/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "fxV" = ( @@ -29117,6 +29137,7 @@ /area/station/maintenance/department/crew_quarters/dorms) "fCB" = ( /obj/item/radio/intercom/directional/south, +/obj/machinery/station_map/engineering/directional/south, /turf/open/floor/wood, /area/station/service/library) "fCD" = ( @@ -33666,6 +33687,7 @@ dir = 1 }, /obj/machinery/light_switch/directional/west, +/obj/machinery/station_map/engineering/directional/south, /turf/open/floor/carpet/blue, /area/station/commons/dorms/room3) "gxT" = ( @@ -33968,6 +33990,7 @@ dir = 4 }, /obj/effect/landmark/start/assistant, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -34262,6 +34285,7 @@ dir = 8 }, /obj/machinery/light/directional/south, +/obj/machinery/station_map/engineering/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/upper) "gDy" = ( @@ -34933,6 +34957,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "gLj" = ( @@ -37939,6 +37964,7 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/upper) "hqv" = ( @@ -39473,6 +39499,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -42177,6 +42204,10 @@ /obj/machinery/shower/directional/north, /turf/open/floor/iron/checker, /area/station/engineering/gravity_generator) +"ihe" = ( +/obj/machinery/station_map/engineering/directional/east, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) "ihg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43269,6 +43300,7 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/newscaster/directional/west, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -43637,12 +43669,12 @@ /area/station/maintenance/starboard/fore) "iwv" = ( /obj/effect/turf_decal/trimline/purple/filled/line, -/obj/machinery/light_switch/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/station_map/engineering/directional/south, /turf/open/floor/iron/white, /area/station/science) "iwD" = ( @@ -45648,6 +45680,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 6 }, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/wood/parquet, /area/station/service/theater) "iTW" = ( @@ -45869,7 +45902,7 @@ normaldoorcontrol = 1; pixel_y = -7 }, -/obj/item/radio/intercom/directional/west, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron, /area/station/security/checkpoint/science/research) "iVF" = ( @@ -45957,6 +45990,7 @@ "iWJ" = ( /obj/structure/bed, /obj/item/bedsheet/medical, +/obj/machinery/station_map/engineering/directional/east, /turf/open/floor/iron/white, /area/station/medical/patients_rooms) "iWN" = ( @@ -48006,7 +48040,6 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/obj/structure/sign/poster/random/directional/east, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) "jqK" = ( @@ -50442,6 +50475,15 @@ /obj/machinery/duct, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/captain) +"jOP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/bluespace_vendor/directional/north, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/hallway/secondary/entry) "jOV" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -51372,6 +51414,15 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron, /area/station/engineering/storage) +"jWC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/station_map/engineering/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "jWJ" = ( /obj/machinery/door/firedoor, /turf/open/floor/iron/stairs/right, @@ -52888,10 +52939,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) -"klO" = ( -/obj/machinery/status_display/shuttle, -/turf/closed/wall, -/area/station/hallway/secondary/entry) "klU" = ( /obj/machinery/power/solar{ id = "aftstarboard"; @@ -54039,6 +54086,7 @@ /obj/structure/bed/double, /obj/item/bedsheet/purple/double, /obj/machinery/light_switch/directional/east, +/obj/machinery/station_map/engineering/directional/south, /turf/open/floor/carpet/purple, /area/station/commons/dorms/room4) "kww" = ( @@ -56514,6 +56562,12 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"kXC" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/duct, +/obj/machinery/station_map/engineering/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms) "kXG" = ( /obj/item/screwdriver, /obj/item/clothing/glasses/welding, @@ -58975,6 +59029,7 @@ /obj/structure/bed/double, /obj/item/bedsheet/red/double, /obj/machinery/light_switch/directional/east, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/carpet/red, /area/station/commons/dorms/room6) "lvA" = ( @@ -59770,6 +59825,7 @@ dir = 4 }, /obj/machinery/light_switch/directional/west, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/carpet, /area/station/commons/dorms/room7) "lDX" = ( @@ -62922,6 +62978,7 @@ /obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ dir = 1 }, +/obj/item/binoculars, /turf/open/floor/iron/dark, /area/station/command/bridge) "mjB" = ( @@ -68185,11 +68242,10 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 }, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/iron/white, /area/station/science/research) "nnx" = ( @@ -68206,6 +68262,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron/white, /area/station/commons/toilet/restrooms) "nnB" = ( @@ -68584,12 +68641,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/newscaster/directional/west, /obj/machinery/camera/directional/west{ c_tag = "Upper Central Hallway - Upper Starboard Central"; name = "hallway camera" }, /obj/machinery/light/directional/west, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/upper) "nsg" = ( @@ -69797,6 +69854,7 @@ "nEW" = ( /obj/machinery/light_switch/directional/north, /obj/structure/closet/crate/freezer/blood, +/obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white, /area/station/medical/coldroom) "nFc" = ( @@ -71130,6 +71188,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"nSB" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/obj/machinery/station_map/engineering/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) "nSD" = ( /obj/structure/chair/plastic, /turf/open/floor/plating, @@ -73233,6 +73302,7 @@ /obj/structure/bed/double, /obj/item/bedsheet/brown/double, /obj/machinery/light_switch/directional/east, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/carpet/royalblack, /area/station/commons/dorms/room8) "olW" = ( @@ -90051,6 +90121,7 @@ dir = 1 }, /obj/effect/landmark/start/medical_doctor, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron/white, /area/station/medical/break_room) "ryu" = ( @@ -90701,6 +90772,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science) +"rEF" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/station_map/engineering/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) "rEH" = ( /obj/structure/curtain/bounty, /obj/effect/spawner/structure/window, @@ -91775,6 +91851,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/machinery/station_map/engineering/directional/east, /turf/open/floor/iron/white, /area/station/commons/toilet/restrooms) "rPQ" = ( @@ -92399,6 +92476,7 @@ /area/station/science/xenobiology) "rXp" = ( /obj/machinery/camera/autoname/directional/west, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/command) "rXr" = ( @@ -97603,6 +97681,15 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/atmos/office) +"sWQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/station_map/engineering/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "sWX" = ( /obj/effect/turf_decal/trimline/purple/filled/warning, /obj/effect/turf_decal/trimline/purple/filled/corner{ @@ -101670,6 +101757,7 @@ "tKH" = ( /obj/machinery/photocopier, /obj/structure/noticeboard/directional/north, +/obj/machinery/status_display/evac/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) "tKJ" = ( @@ -101802,6 +101890,7 @@ dir = 1 }, /obj/effect/landmark/start/hangover, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/carpet/black, /area/station/commons/dorms/room5) "tMn" = ( @@ -106902,6 +106991,17 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva/upper) +"uJw" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) "uJz" = ( /obj/effect/spawner/random/trash/garbage, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -110155,16 +110255,6 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/engine, /area/station/command/secure_bunker) -"vqT" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/bluespace_vendor/directional/east, -/turf/open/floor/iron/white/corner{ - dir = 4 - }, -/area/station/hallway/secondary/entry) "vqU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/curtain/cloth/fancy/mechanical{ @@ -111556,6 +111646,7 @@ /obj/structure/closet/secure_closet/personal, /obj/effect/turf_decal/bot, /obj/machinery/light/small/directional/west, +/obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron, /area/station/science/breakroom) "vDO" = ( @@ -111829,6 +111920,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/machinery/station_map/engineering/directional/east, /turf/open/floor/iron/white, /area/station/commons/toilet/restrooms) "vGn" = ( @@ -111979,6 +112071,7 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/station_map/engineering/directional/east, /turf/open/floor/iron/white, /area/station/medical/cryo) "vHQ" = ( @@ -114131,6 +114224,7 @@ dir = 8 }, /obj/machinery/light/directional/east, +/obj/machinery/station_map/engineering/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "wde" = ( @@ -117338,6 +117432,20 @@ /obj/item/clothing/mask/breath, /turf/open/floor/plating/airless, /area/space/nearstation) +"wGq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/obj/machinery/station_map/engineering/directional/west, +/turf/open/floor/iron, +/area/station/commons/dorms) "wGx" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -118655,9 +118763,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/machinery/light/directional/north, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) "wUv" = ( @@ -120752,6 +120860,7 @@ dir = 1 }, /obj/machinery/door/firedoor, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "xrl" = ( @@ -120917,6 +121026,14 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/sorting) +"xsB" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/station_map/engineering/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "xsC" = ( /obj/item/stack/ore/iron, /turf/open/floor/plating/airless, @@ -121235,6 +121352,10 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"xuY" = ( +/obj/machinery/station_map/engineering/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) "xva" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -123434,6 +123555,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/station_map/engineering/directional/north, /turf/open/floor/iron, /area/station/science/research) "xTr" = ( @@ -124107,7 +124229,6 @@ /area/station/engineering/main) "xZS" = ( /obj/effect/turf_decal/bot, -/obj/machinery/status_display/ai/directional/south, /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/science/auxlab/firing_range) @@ -125330,6 +125451,13 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) +"ykx" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/station_map/engineering/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "yky" = ( /obj/item/assembly/shock_kit, /obj/structure/rack, @@ -153842,7 +153970,7 @@ gdj lBJ lBJ gdj -cYq +nSB pvr sXy fAw @@ -154449,7 +154577,7 @@ bkw ail wGh slp -amx +xsB uTj xMs lwf @@ -155407,7 +155535,7 @@ csj uiE ceg mOg -knY +jWC mME ntd qGV @@ -169609,8 +169737,8 @@ iwN mpD tAy iwN -klO -ilJ +tAj +jOP aqq olO llO @@ -170124,7 +170252,7 @@ rfm mWW hCB eId -vqT +ixC kXP kXP uFh @@ -170382,7 +170510,7 @@ aAb iwN ahn ahn -adv +aFX dFQ ixC kXP @@ -170390,7 +170518,7 @@ xSK jec jNK uAS -adv +ykx ahn ahn gLc @@ -213009,7 +213137,7 @@ rCV bcK ucm fjj -rCV +wGq bcK fic eVg @@ -218890,7 +219018,7 @@ rXp qsP gwW qsP -qsP +xuY neN hcL sIz @@ -219205,7 +219333,7 @@ hJR hJR hJR hJR -uIq +uJw aKI fQu hJR @@ -219393,7 +219521,7 @@ bbX xEE rdo iKj -qsP +ihe qsP qsP qsP @@ -220233,7 +220361,7 @@ xwD lZX nLy hJR -uIq +nnj sXH etB vtz @@ -231504,7 +231632,7 @@ lNi nNB fem hTD -hTD +sWQ iOb gzR tph @@ -234322,7 +234450,7 @@ sPm sPm sPm tff -dRn +kXC kys dRn dRn @@ -234846,7 +234974,7 @@ iWJ cGO nBU aEh -qma +eSf cmP hwO cEu @@ -236377,7 +236505,7 @@ tSL tSL sPm dZZ -tNy +rEF cmP cjk xlA