anchor.diff:  	checkLandingSpot()
   
   /obj/machinery/computer/camera_advanced/shuttle_docker/proc/checkLandingTurf(turf/T)
  -	return T && (!blacklisted_turfs || !blacklisted_turfs[T]) && (!space_turfs_only || isspaceturf(T)) && (T.x > 1 && T.y > 1 && T.x < world.maxx && T.y < world.maxy)
  +	return T && (shuttle_port.shuttle_areas[T.loc] || (!blacklisted_turfs || !blacklisted_turfs[T]) && (!space_turfs_only || isspaceturf(T)) ) && (T.x > 1 && T.y > 1 && T.x < world.maxx && T.y < world.maxy)
   
   /obj/machinery/computer/camera_advanced/shuttle_docker/proc/generateBlacklistedTurfs()
   	blacklisted_turfs = list()
  
positive.code: 	var/shuttlePortId = ""
  	var/shuttlePortName = ""
  	var/list/jumpto_ports = list() //hashset of ports to jump to and ignore for collision purposes
  	var/list/blacklisted_turfs
  	var/obj/docking_port/stationary/my_port
  	var/view_range = 7
  	var/x_offset = 0
  	var/y_offset = 0
  
negative.code: 		actions += place_action
  
  /obj/machinery/computer/camera_advanced/shuttle_docker/CreateEye()
  	shuttle_port = SSshuttle.getShuttle(shuttleId)
  	if(QDELETED(shuttle_port))
  		shuttle_port = null
  		return
  
  	eyeobj = new /mob/camera/aiEye/remote/shuttle_docker()
  	var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
  	the_eye.origin = src
  	the_eye.dir = shuttle_port.dir
  	var/turf/origin = locate(shuttle_port.x + x_offset, shuttle_port.y + y_offset, shuttle_port.z)
  	for(var/V in shuttle_port.shuttle_areas)
  		var/area/A = V
  		for(var/turf/T in A)
  			if(T.z != origin.z)
  				continue
  			var/image/I = image('icons/effects/alphacolors.dmi', origin, "red")
  