/** * This function will generate a city with a grid lay out. 4 rounds running * North and South and 4 roads running east west * * @author Torren (Jason Tighe) * @return */ public ArrayList<BuildingTemplate> generateCity(boolean genericRoad) { int width = mapSettings.getBoardWidth(); int height = mapSettings.getBoardHeight(); int roads = mapSettings.getCityBlocks(); roads = (roads * Math.min(width, height)) / 16; // scale for bigger maps String cityType = mapSettings.getCityType(); cityPlan = new HashSet<Coords>(); if (genericRoad) { addGenericRoad(); } if (cityType.equalsIgnoreCase("HUB")) buildHubCity(width, height, roads); else if (cityType.equalsIgnoreCase("METRO")) buildMetroCity(width, height); else if (cityType.equalsIgnoreCase("GRID")) buildGridCity(width, height, (roads + 5) / 6); else if (cityType.equalsIgnoreCase("TOWN")) return buildTown(width, height, roads, mapSettings.getTownSize()); else return new ArrayList<BuildingTemplate>(); return placeBuildings(0); }