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 00000000000..f288056b5b5 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_airlocks_icons.png differ