@Override
public void populate(int chunkX, int chunkZ) {
int globalX = chunkX << 4;
int globalZ = chunkZ << 4;
this.random.setSeed(chunkX * 341873128712L + chunkZ * 132897987541L);
BlockFalling.fallInstantly = true;
RegionGenerationHandler regionHandler = this.regionHandler.get();
regionHandler.prepareChunk(globalX + 8, globalZ + 8);
ForgeEventFactory.onChunkPopulate(true, this, this.world, this.random, chunkX, chunkZ, false);
ChunkCompositionProcedure compositionProcedure = this.compositionProcedure.get();
compositionProcedure.composeDecoration(this, this.world, regionHandler, chunkX, chunkZ);
compositionProcedure.populateStructures(this.world, regionHandler, chunkX, chunkZ);
ForgeEventFactory.onChunkPopulate(false, this, this.world, this.random, chunkX, chunkZ, false);
BlockFalling.fallInstantly = false;
}