diff --git a/code/game/objects/micro_structures.dm b/code/game/objects/micro_structures.dm index 702b3ff4ad..78027b5851 100644 --- a/code/game/objects/micro_structures.dm +++ b/code/game/objects/micro_structures.dm @@ -1,3 +1,5 @@ +var/global/list/micro_tunnels = list() + /obj/structure/micro_tunnel name = "mouse hole" desc = "A tiny little hole... where does it go?" @@ -18,6 +20,10 @@ /mob/living/simple_mob/slime ) +/obj/structure/micro_tunnel/New() + . = ..() + micro_tunnels.Add(src) + /obj/structure/micro_tunnel/Initialize() . = ..() if(name == initial(name)) @@ -34,6 +40,8 @@ thing.forceMove(get_turf(src.loc)) thing.cancel_camera() + micro_tunnels.Remove(src) + return ..() /obj/structure/micro_tunnel/set_dir(new_dir) @@ -63,7 +71,7 @@ if(myturf.z in P.expected_z_levels) planet = P else - for(var/obj/structure/micro_tunnel/t in world) + for(var/obj/structure/micro_tunnel/t in micro_tunnels) if(t == src) continue if(magic || t.magic) @@ -342,6 +350,8 @@ return if(QDELETED(src)) return + if(usr.loc != src) + return var/obj/our_choice = choice var/list/new_contained_mobs = list()