anchor.diff:  		if(!QDELETED(on_mob))
   			on_mob.set_light_flags(on_mob.light_flags | LIGHT_ATTACHED)
   			on_mob.forceMove(src)
  +	active = FALSE
   
   /obj/item/organ/eyes/robotic/glow/proc/start_visuals()
   	if(!islist(eye_lighting))
  
positive.code: 	start_visuals()
  	if(!silent)
  		to_chat(owner, "<span class='warning'>Your [src] clicks and makes a whining noise, before shooting out a beam of light!</span>")
  	active = TRUE
  	cycle_mob_overlay()
  
  /obj/item/organ/eyes/robotic/glow/proc/deactivate(silent = FALSE)
  	clear_visuals()
  	if(!silent)
  		to_chat(owner, "<span class='warning'>Your [src] shuts off!</span>")
  	active = FALSE
  	remove_mob_overlay()
  
  /obj/item/organ/eyes/robotic/glow/proc/update_visuals(datum/source, olddir, newdir)
  	if((LAZYLEN(eye_lighting) < light_beam_distance) || !on_mob)
  		regenerate_light_effects()
  	var/turf/scanfrom = get_turf(owner)
  
negative.code: 	if(!C || QDELETED(src) || QDELETED(user) || QDELETED(owner) || owner != user)
  		return
  	var/range = input(user, "Enter range (0 - [max_light_beam_distance])", "Range Select", 0) as null|num
  	var/old_active = active // Get old active because set_distance() -> clear_visuals()  will set it to FALSE.
  	set_distance(clamp(range, 0, max_light_beam_distance))
  	assume_rgb(C)
  	// Reactivate if eyes were already active for real time colour swapping!
  	if(old_active)
  		activate(FALSE)
  
  /obj/item/organ/eyes/robotic/glow/proc/assume_rgb(newcolor)
  	current_color_string = newcolor
  	eye_color = RGB2EYECOLORSTRING(current_color_string)
  	if(!QDELETED(owner) && ishuman(owner))		//Other carbon mobs don't have eye color.
  		owner.dna.species.handle_body(owner)
  
  