anchor.diff:  	src.simulated_only = simulated_only
   	src.avoid = avoid
   
  -/// The proc you use to run the search, returns a list with the steps to the destination if one is available, or nothing if one couldn't be found
  +/**
  + * search() is the proc you call to kick off and handle the actual pathfinding, and kills the pathfind datum instance when it's done.
  + *
  + * If a valid path was found, it's returned as a list. If invalid or cross-z-level params are entered, returns FALSE.
  + * If no valid path is found, returns an empty list, which is important for simple bot mobs who rely on an empty list meaning no path found.
  + */
   /datum/pathfind/proc/search()
   	start = get_turf(caller)
   	if(!start || !end)
  
positive.code: 	if(path)
  		for(var/i = 1 to round(0.5 * length(path)))
  			path.Swap(i, length(path) - i + 1)
  	sources = null
  	qdel(open)
  	return path
  
negative.code: 	if(start.z != end.z || start == end ) //no pathfinding between z levels
  		return FALSE
  	if(max_distance && (max_distance < get_dist(start, end))) //if start turf is farther than max_distance from end turf, no need to do anything
  		return list()
  
  	//initialization
  	var/datum/jps_node/current_processed_node = new (start, -1, 0, end)
  