/// <summary> /// Gets tiles in random directions from the given one. /// </summary> /// <returns>An enumerable of the adjacent tiles.</returns> public static IEnumerable <TileRef> AdjacentTilesRandom(this GridCoordinates coordinates, bool ignoreSpace = false) { var mapManager = IoCManager.Resolve <IMapManager>(); foreach (var direction in RandomDirections()) { var adjacent = coordinates.Offset(direction).GetTileRef(); if (adjacent == null) { continue; } if (ignoreSpace && adjacent.Value.Tile.IsEmpty) { continue; } yield return(adjacent.Value); } }
public static GridCoordinates Offset(this GridCoordinates coordinates, Direction direction) { return(coordinates.Offset(direction.ToVec())); }