anchor.diff:  			return FALSE
   		else if(!(get_turf(target) in get_hear(world.view, user)))
   			return FALSE
  -	else //user is an atom
  -		if(!(get_turf(target) in view(world.view, user)))
  +	else //user is an atom or null
  +		if(!(get_turf(target) in view(world.view, user || src)))
   			return FALSE
   	return TRUE
   
  
positive.code: 	var/list/dead_spotted = list()
  	var/ai_user = isAI(user)
  	var/list/seen
  	var/list/viewlist = (user && user.client)? getviewsize(user.client.view) : getviewsize(world.view)
  	var/viewr = max(viewlist[1], viewlist[2]) + max(size_x, size_y)
  	var/viewc = user.client? user.client.eye : target
  	seen = get_hear(viewr, viewc)
  	var/list/turfs = list()
  	var/list/mobs = list()
  
negative.code: 	picture_taken.set_output(COMPONENT_SIGNAL)
  
  /obj/item/circuit_component/camera/input_received(datum/port/input/port)
  	var/atom/target = picture_target.value
  	if(!target)
  		var/turf/our_turf = get_location()
  		target = locate(our_turf.x + picture_coord_x.value, our_turf.y + picture_coord_y.value, our_turf.z)
  		if(!target)
  			return
  	if(!camera.can_target(target))
  