From f245d8ab79cf7d0d430bbbc7927e11c9c8c198bd Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Tue, 20 May 2025 04:07:13 -0500 Subject: [PATCH] Screenshot Tests Airlocks (#91203) ## About The Pull Request Tests that both normal and glass airlocks, and some of their overlays work. --- code/game/machinery/doors/airlock.dm | 6 +++ code/modules/unit_tests/_unit_tests.dm | 1 + .../modules/unit_tests/screenshot_airlocks.dm | 40 ++++++++++++++++++ .../screenshots/screenshot_airlocks_icons.png | Bin 0 -> 4871 bytes 4 files changed, 47 insertions(+) create mode 100644 code/modules/unit_tests/screenshot_airlocks.dm create mode 100644 code/modules/unit_tests/screenshots/screenshot_airlocks_icons.png diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 81b187c849c..a1ef9687aae 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -2533,6 +2533,7 @@ SEND_SIGNAL(src, COMSIG_AIRLOCK_OPEN, forced) set_density(FALSE) operating = FALSE + update_appearance() return TRUE /obj/machinery/door/airlock/instant/close(forced = DEFAULT_DOOR_CHECKS, force_crush = FALSE) @@ -2540,8 +2541,13 @@ SEND_SIGNAL(src, COMSIG_AIRLOCK_CLOSE, forced) set_density(TRUE) operating = FALSE + update_appearance() return TRUE +/obj/machinery/door/airlock/instant/glass + opacity = FALSE + glass = TRUE + #undef AIRLOCK_SECURITY_NONE #undef AIRLOCK_SECURITY_IRON #undef AIRLOCK_SECURITY_PLASTEEL_I_S diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 6da2477304a..587551dfdc4 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -257,6 +257,7 @@ #include "required_map_items.dm" #include "resist.dm" #include "say.dm" +#include "screenshot_airlocks.dm" #include "screenshot_antag_icons.dm" #include "screenshot_basic.dm" #include "screenshot_digi.dm" diff --git a/code/modules/unit_tests/screenshot_airlocks.dm b/code/modules/unit_tests/screenshot_airlocks.dm new file mode 100644 index 00000000000..f43cb7c2a7c --- /dev/null +++ b/code/modules/unit_tests/screenshot_airlocks.dm @@ -0,0 +1,40 @@ +/// Ensures common airlock overlays work +/datum/unit_test/screenshot_airlocks + +/datum/unit_test/screenshot_airlocks/Run() + var/obj/machinery/door/airlock/instant/door = allocate(__IMPLIED_TYPE__) + var/obj/machinery/door/airlock/instant/glass/glass_door = allocate(__IMPLIED_TYPE__) + + var/icon/final_icon = icon('icons/effects/effects.dmi', "nothing") + + final_icon.Insert(getFlatIcon(door, no_anim = TRUE), dir = NORTH, frame = 1) + final_icon.Insert(getFlatIcon(glass_door, no_anim = TRUE), dir = SOUTH, frame = 1) + + door.open() + glass_door.open() + + final_icon = icon(final_icon) + final_icon.Insert(getFlatIcon(door, no_anim = TRUE), dir = NORTH, frame = 2) + final_icon.Insert(getFlatIcon(glass_door, no_anim = TRUE), dir = SOUTH, frame = 2) + + door.close() + glass_door.close() + door.bolt() + glass_door.bolt() + + final_icon = icon(final_icon) + final_icon.Insert(getFlatIcon(door, no_anim = TRUE), dir = NORTH, frame = 3) + final_icon.Insert(getFlatIcon(glass_door, no_anim = TRUE), dir = SOUTH, frame = 3) + + door.unbolt() + glass_door.unbolt() + door.welded = TRUE + door.update_appearance() + glass_door.welded = TRUE + glass_door.update_appearance() + + final_icon = icon(final_icon) + final_icon.Insert(getFlatIcon(door, no_anim = TRUE), dir = NORTH, frame = 4) + final_icon.Insert(getFlatIcon(glass_door, no_anim = TRUE), dir = SOUTH, frame = 4) + + test_screenshot("icons", final_icon) diff --git a/code/modules/unit_tests/screenshots/screenshot_airlocks_icons.png b/code/modules/unit_tests/screenshots/screenshot_airlocks_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f288056b5b55ec7cc86711f1e4bdefd1afca3e62 GIT binary patch literal 4871 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 literal 0 HcmV?d00001