public static void FillRoom(MapGrid grid, Room room) { var left = (int)room.GetLeft() + grid.GetWidth() / 2; var right = (int)room.GetRight() + grid.GetWidth() / 2; var top = (int)room.GetTop() + grid.GetHeight() / 2; var bottom = (int)room.GetBottom() + grid.GetHeight() / 2; for (var x = left; x < right; x++) { for (var y = top; y < bottom; y++) { if (room.IsMainRoom) { grid.SetTileType(x, y, TileType.ROOM); } else if (grid.GetTileType(x, y) == TileType.EMPTY) { grid.SetTileType(x, y, TileType.HALLWAY_ROOM); } } } }
public static void FillCorridor(MapGrid grid, Vector2 @from, Vector2 to, int width, Orientation ori) { var left = (int)Math.Min(from.x, to.x) + grid.GetWidth() / 2; var right = (int)Math.Max(from.x, to.x) + grid.GetWidth() / 2; var top = (int)Math.Min(from.y, to.y) + grid.GetHeight() / 2; var bottom = (int)Math.Max(from.y, to.y) + grid.GetHeight() / 2; left -= width / 2; right += width / 2; top -= width / 2; bottom += width / 2; for (var x = left; x < right; x++) { for (var y = top; y < bottom; y++) { if (grid.GetTileType(x, y) == TileType.EMPTY || grid.GetTileType(x, y) == TileType.HALLWAY_ROOM) { grid.SetTileType(x, y, TileType.HALLWAY); } } } }