/// <summary> /// Returns whether or not a node is valid /// A node is not valid if already in the open list /// or if the node is an obstacle /// </summary> /// <returns></returns> private bool IsTileValid(Vector2 tile) { // Map bounderies if (tile.x >= MAP_LIMIT || tile.x <= -MAP_LIMIT || tile.y >= MAP_LIMIT || tile.y <= -MAP_LIMIT) { return(false); } // is node an obstacle? if (_tileHandler.IsTileOccupied(tile)) { return(false); } // Is node in innerNodelist? foreach (Node n in _innerNodes) { if (tile == n.Tile) { return(false); } } return(true); }
/// <summary> /// Adds obstacle from tile where mouse clicked /// </summary> private void AddObstacle() { Vector2 tile = MousePositionToTile(); // If tile occupied by obstacle already if (_tileHandler.IsTileOccupied(tile)) { return; } // If space is occupied by player og goal if ((_tileHandler.ClosestTile(Player.transform.position) == tile) || (_tileHandler.ClosestTile(Goal.transform.position) == tile)) { return; } _tileHandler.AddTile(tile, CreateObstacle(tile)); }