diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 1c8298bd0b..a2db829cdd 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -283,4 +283,12 @@ return 0 return 1 busy = 0 - return 0 \ No newline at end of file + return 0 + +/obj/machinery/camera/proc/is_functional() + if(istype(loc,/mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = loc + if(!R.stat && R.is_component_functioning("camera")) + return 1 + return 0 + return status diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index ef434955a1..406c2e85af 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -69,7 +69,7 @@ proc/can_access_camera(var/obj/machinery/camera/C) var/list/shared_networks = src.network & C.network - if(shared_networks.len) + if(shared_networks.len && C.is_functional()) return 1 return 0 @@ -80,7 +80,7 @@ A.eyeobj.setLoc(get_turf(C)) A.client.eye = A.eyeobj return 1 - + if (!C.can_use() || user.stat || (get_dist(user, src) > 1 || user.machine != src || user.blinded || !( user.canmove ) && !istype(user, /mob/living/silicon))) return 0 src.current = C