コード例 #1
0
    private void TurnOffWalls(ScriptableNode bridgeTo)
    {
        Vector2Int dir = bridgeTo.ExploredFrom;

        bridgeTo.TurnOffWalls(-dir);
        currentNode.TurnOffWalls(dir);
    }
コード例 #2
0
    private void TurnOffSideWalls(ScriptableNode bridgeTo)
    {
        string bridgeSide = bridgeTo.Parent;

        bridgeTo.TurnOffWalls(WallDeactivator.DeactivateNeigbourWall(bridgeSide, currentNodeParent));
        currentNode.TurnOffWalls(WallDeactivator.DeactivateOwnWall(bridgeSide, currentNodeParent));
    }
コード例 #3
0
    // refactor this
    private void RemoveDuplicates()
    {
        foreach (var node in visitedNodes)
        {
            string nodeParent = node.Parent;
            currentNode = node;

            foreach (var direction in directions)
            {
                if (!node.GetWall(direction))
                {
                    continue;
                }

                string     parent = nodeParent;
                Vector2Int cords  = node.Coordinates + direction;

                //CheckParentAndCords(ref parent, ref cords);
                ScriptableNode connect = TryGetNode(cords, parent);

                if (connect == null)
                {
                    continue;
                }

/*                string connectParent = connect.Parent;
 *
 *              if (connectParent != nodeParent)
 *              {
 *                  connect.TurnOffWalls(WallDeactivator.DeactivateNeigbourWall(connectParent, nodeParent));
 *              }
 *              else
 *              {
 *                  connect.TurnOffWalls(-direction);
 *              }*/

                connect.TurnOffWalls(-direction);
            }
        }
    }