private static void TryQueueNewNode(IPathNode pNewNode, PathLink pLink, AStarStack pNodesToVisit, IPathNode pGoal) { IPathNode previousNode = pLink.GetOtherNode(pNewNode); float linkDistance = pLink.Distance; float newPathCost = previousNode.PathCostHere + pNewNode.CostMultiplier * linkDistance; if (pNewNode.LinkLeadingHere == null || (pNewNode.PathCostHere > newPathCost)) { pNewNode.DistanceToGoal = pNewNode.DistanceTo(pGoal) * 2f; pNewNode.PathCostHere = newPathCost; pNewNode.LinkLeadingHere = pLink; pNodesToVisit.Push(pNewNode); } }
private void TryQueueNewTile(IPathNode pNewNode, PathLink pLink, AStarStack pNodesToVisit, IPathNode pGoal) { IPathNode previousNode = pLink.GetOtherNode(pNewNode); float linkDistance = pLink.distance; float newPathCost = previousNode.pathCostHere + pNewNode.baseCost + linkDistance; if (pNewNode.linkLeadingHere == null || (pNewNode.pathCostHere > newPathCost)) { pNewNode.distanceToGoal = pNewNode.DistanceTo(pGoal) * 2f; pNewNode.pathCostHere = newPathCost; pNewNode.linkLeadingHere = pLink; pNodesToVisit.Push(pNewNode); } }