diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 823f759e67..39c35654cc 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1039,3 +1039,6 @@ if(current && eyeobj) return eyeobj.emote(act, m_type, message, intentional, forced = TRUE) return ..() + +/mob/living/silicon/ai/zMove(dir, feedback = FALSE) + . = eyeobj.zMove(dir, feedback) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 17de811cdd..dcaa28b39c 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -94,6 +94,25 @@ if(ai.master_multicam) ai.master_multicam.refresh_view() +//it uses setLoc not forceMove, talks to the sillycone and not the camera mob +/mob/camera/aiEye/zMove(dir, feedback = FALSE) + if(dir != UP && dir != DOWN) + return FALSE + var/turf/target = get_step_multiz(src, dir) + if(!target) + if(feedback) + to_chat(ai, "There's nowhere to go in that direction!") + return FALSE + if(!canZMove(dir, target)) + if(feedback) + to_chat(ai, "You couldn't move there!") + return FALSE + setLoc(target, TRUE) + return TRUE + +/mob/camera/aiEye/canZMove(direction, turf/target) //cameras do not respect these FLOORS you speak so much of + return TRUE + /mob/camera/aiEye/Move() return 0