anchor.diff:  
   //Pick up monkey
   /obj/machinery/computer/camera_advanced/xenobio/proc/XenoMonkeyClickCtrl(mob/living/user, mob/living/carbon/human/M)
  +	SIGNAL_HANDLER
   	if(!ismonkey(M))
   		return
   	if(!isturf(M.loc) || !GLOB.cameranet.checkTurfVis(M.loc))
  
positive.code: 	SEND_SIGNAL(user, COMSIG_XENO_TURF_CLICK_SHIFT, src)
  	..()
  
  /obj/machinery/computer/camera_advanced/xenobio/proc/on_ctrl_click(datum/source, atom/clicked_atom)
  	SIGNAL_HANDLER
  	if(ismonkey(clicked_atom))
  		XenoMonkeyClickCtrl(source, clicked_atom)
  	if(isopenturf(clicked_atom))
  		XenoTurfClickCtrl(source, clicked_atom)
  	if(isslime(clicked_atom))
  		XenoSlimeClickCtrl(source, clicked_atom)
  
  // Scans slime
  /obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickCtrl(mob/living/user, mob/living/simple_animal/slime/S)
  	if(!GLOB.cameranet.checkTurfVis(S.loc))
  		to_chat(user, span_warning("Target is not near a camera. Cannot proceed."))
  		return
  
negative.code: 		hotkey_help.Grant(user)
  		actions += hotkey_help
  
  	RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL, .proc/XenoSlimeClickCtrl)
  	RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, .proc/XenoTurfClickCtrl)
  	RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, .proc/XenoMonkeyClickCtrl)
  	RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, .proc/XenoSlimeClickAlt)
  	RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, .proc/XenoSlimeClickShift)
  	RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, .proc/XenoTurfClickShift)
  