anchor.diff:  /datum/PathNode
   	var/turf/source 			//turf associated with the PathNode
   	var/astar_id				//Id of the astar operation we belong to
  -	var/closed = FALSE			//has this node been already eliminated?
   	var/datum/PathNode/parent	//link to the parent PathNode
   	var/weight					//f A* Node weight (f = g + h)
   	var/cost					//g A* movement cost variable
   	var/heuristic				//h A* heuristic variable = h
   	var/depth					//ht count the number of Nodes traversed
  +	var/PathNode/next			//next node in the linked list stack.
   
   /datum/PathNode/New(s, id, p, pg, ph, pnt)
   	source = s
  
positive.code: 		path = list()
  	return path
  
  //the actual algorithm
  /proc/AStar(caller, end, dist, maxnodes, maxnodedepth = 30, mintargetdist, adjacent = /turf/proc/reachableAdjacentTurfs, id=null, list/exclude=null, simulated_only = 1)
  	var/static/next_astar_id = 1
  
negative.code: //////////////////////
  
  //the weighting function, used in the A* algorithm
  ///proc/PathWeightCompare(datum/PathNode/a, datum/PathNode/b)
  //	return a.weight - b.weight
  
  //reversed so that the Heap is a MinHeap rather than a MaxHeap
  /proc/HeapPathWeightCompare(datum/PathNode/a, datum/PathNode/b)
  