diff --git a/code/game/objects/structures/crates_lockers/closets/bluespace_locker.dm b/code/game/objects/structures/crates_lockers/closets/bluespace_locker.dm index 9e2fadc69dd4..ef96e171cc75 100644 --- a/code/game/objects/structures/crates_lockers/closets/bluespace_locker.dm +++ b/code/game/objects/structures/crates_lockers/closets/bluespace_locker.dm @@ -151,7 +151,7 @@ /obj/structure/closet/bluespace/external/Destroy() SSbluespace_locker.external_locker = null - SSbluespace_locker.bluespaceify_random_locker() + SSbluespace_locker.redistribute_locker() return ..() /obj/structure/closet/bluespace/external/can_open() diff --git a/yogstation/code/controllers/subsystem/bluespace_locker.dm b/yogstation/code/controllers/subsystem/bluespace_locker.dm index fc97e2545728..9ac6ef56e347 100644 --- a/yogstation/code/controllers/subsystem/bluespace_locker.dm +++ b/yogstation/code/controllers/subsystem/bluespace_locker.dm @@ -67,3 +67,15 @@ SUBSYSTEM_DEF(bluespace_locker) internal_locker.dump_contents() internal_locker.update_icon() external_locker.update_icon() + +/datum/controller/subsystem/bluespace_locker/proc/redistribute_locker() + if(!internal_locker) + return + var/area/A = get_area(internal_locker) + for(var/atom/movable/M in A) + if(M == internal_locker) + continue + if(istype(M, /obj/machinery/light)) + continue + M.forceMove(find_safe_turf()) + bluespaceify_random_locker()