* villages will be placed.
*/
protected boolean addBiomeBlocksAndCheckWater(ChunkBuffer chunkBuffer)
{
ChunkCoordinate chunkCoord = chunkBuffer.getChunkCoordinate();
WorldConfig worldConfig = configProvider.getWorldConfig();
int dryBlocksOnSurface = 256;
final double d1 = 0.03125D;
this.noise4 = this.noiseGen4.a(this.noise4, chunkCoord.getBlockX(), chunkCoord.getBlockZ(), CHUNK_X_SIZE, CHUNK_Z_SIZE, d1 * 2.0D,
d1 * 2.0D, 1.0D);
for (int x = 0; x < CHUNK_X_SIZE; x++)
{
for (int z = 0; z < CHUNK_Z_SIZE; z++)
{
// The following code is executed for each column in the chunk
// Get the current biome config and some properties
final BiomeConfig biomeConfig = this.configProvider.getBiomeByIdOrNull(this.biomeArray[(x + z * CHUNK_X_SIZE)]).getBiomeConfig();
final float currentTemperature = biomeConfig.biomeTemperature;
final int surfaceBlocksNoise = (int) (this.noise4[(x + z * CHUNK_X_SIZE)] / 3.0D + 3.0D + this.random.nextDouble() * 0.25D);
// Bedrock on the ceiling
if (worldConfig.ceilingBedrock)
{
// Moved one block lower to fix lighting issues
chunkBuffer.setBlock(x, this.heightCap - 2, z, worldConfig.bedrockBlock);
}
// Loop from map height to zero to place bedrock and surface
// blocks
LocalMaterialData currentSurfaceBlock = biomeConfig.surfaceBlock;
LocalMaterialData currentGroundBlock = biomeConfig.groundBlock;
int surfaceBlocksCount = -1;
final int currentWaterLevel = this.waterLevel[z + x * 16];
for (int y = CHUNK_Y_SIZE - 1; y >= 0; y--)
{
if (y < 5 && (worldConfig.createAdminium(y)) && y <= this.random.nextInt(5))
{
// Place bottom bedrock
chunkBuffer.setBlock(x, y, z, worldConfig.bedrockBlock);
} else
{