Vector coordList = new Vector();
Vector<Coords> coordList = new Vector<Coords>();
    public Vector placeBuildings(int radius) {        int width = mapSettings.getBoardWidth();        int height = mapSettings.getBoardHeight();        Vector<BuildingTemplate> buildingList = new Vector<BuildingTemplate>();        HashSet<Coords> buildingUsed = new HashSet<Coords>();                Vector coordList = new Vector();                Coords centre = new Coords(width/2,height/2);        double falloff = (double)mapSettings.getCityDensity() / (double)(radius*radius);                for ( int x = 0; x < width; x++){            for ( int y = 0; y < height; y++ ){                Coords coord = new Coords(x,y);                                                if(cityPlan.contains(coord)                        || buildingUsed.contains(coord)                         || !board.contains(coord)                        || !isHexBuildable(board.getHex(coord))) {                    continue;                }                                int localdensity = mapSettings.getCityDensity();                if(radius > 0)                {                    int distance = coord.distance(centre);                    localdensity = (int)(mapSettings.getCityDensity() - (falloff*distance*distance));                }                                if(Compute.randomInt(100) > localdensity) {                    continue; //empty lot                }                coordList = new Vector();                coordList.add(coord);                buildingUsed.add(coord);                while(Compute.randomInt(100) < localdensity) {                    //try to make a bigger building!                    int dir = Compute.randomInt(6);                    Coords next = coord.translated(dir);                    if(cityPlan.contains(next)                             || buildingUsed.contains(next)                             || !board.contains(next)                            || !isHexBuildable(board.getHex(next))) {                        break; //oh well, cant expand here                    }                    coordList.add(next);                    buildingUsed.add(next);                                    }                    int floors = mapSettings.getCityMaxFloors()-mapSettings.getCityMinFloors();                                if ( floors <= 0 )                    floors = mapSettings.getCityMinFloors();                else                    floors = Compute.randomInt(floors + 1)+mapSettings.getCityMinFloors();                                int totalCF = mapSettings.getCityMaxCF()-mapSettings.getCityMinCF();                                if ( totalCF <= 0)                    totalCF = mapSettings.getCityMinCF();                else                    totalCF = Compute.randomInt(totalCF + 1)+mapSettings.getCityMinCF();                                int type = getBuildingTypeByCF(totalCF);                                buildingList.add(new BuildingTemplate(type,coordList,totalCF,floors,-1));            }        }                        return buildingList;    }