public static void AddPath(LinkedList <Vector2> path, SimplePriorityQueue <Node> openPositions, Dictionary <Axial, Node> closedPositions)
    {
        if (!isOn)
        {
            return;
        }

        PathEntry entry = new PathEntry();

        foreach (Vector2 position in path)
        {
            Axial axialPosition = Axial.FromWorldPosition(position);

            Node node = closedPositions[axialPosition];
            entry.Nodes.Add(axialPosition, (node, NodeType.Path));
        }
        foreach (Node node in openPositions)
        {
            if (!entry.Nodes.ContainsKey(node.Position))
            {
                entry.Nodes.Add(node.Position, (node, NodeType.Open));
            }
        }
        foreach (var pair in closedPositions)
        {
            if (!entry.Nodes.ContainsKey(pair.Key))
            {
                Node node = closedPositions[pair.Key];
                entry.Nodes.Add(pair.Key, (node, NodeType.Closed));
            }
        }

        entries.Add(entry);
        shouldUpdateText = true;
    }
Пример #2
0
    public void Initialize(Node node)
    {
        worldPosition = Utility.AxialToWorldPosition(node.Position);

        costElement.text      = GetText(node.Cost);
        heuristicElement.text = GetText(node.Heuristic);
        fullCostElement.text  = GetText(node.FullValue);
    }