//TODO, This doesn't handle schematics quite right yet
// let the user add their stuff first, then plug any remaining holes with our stuff
//mapsSchematics.populate(generator, platmap);
// random fluff
Odds odds = platmap.getOddsGenerator();
// where it all begins
int originX = platmap.originX;
int originZ = platmap.originZ;
HeightInfo heights;
boolean addingBases = false;
// is this natural or buildable?
for (int x = 0; x < PlatMap.Width; x++) {
for (int z = 0; z < PlatMap.Width; z++) {
PlatLot current = platmap.getLot(x, z);
if (current == null) {
// what is the world location of the lot?
int blockX = (originX + x) * SupportChunk.chunksBlockWidth;
int blockZ = (originZ + z) * SupportChunk.chunksBlockWidth;
// get the height info for this chunk
heights = HeightInfo.getHeightsFaster(generator, blockX, blockZ);
if (!heights.anyEmpties && heights.averageHeight < generator.seaLevel - 8) {
if (!addingBases)
addingBases = odds.playOdds(oddsOfIsolatedLots);
if (addingBases) {
if (odds.playOdds(oddsOfUnfinishedBuildings))
current = new AstralTownEmptyLot(platmap, originX + x, originZ + z);
else {
switch (odds.getRandomInt(7)) {
case 1:
current = new AstralTownBuildingLot(platmap, originX + x, originZ + z, BunkerType.BALLSY);
break;
case 2:
current = new AstralTownBuildingLot(platmap, originX + x, originZ + z, BunkerType.FLOORED);