@Override public void postGenerateChunk( WorldGenerator generator, PlatLot lot, ByteChunk chunk, CachedYs blockYs) { OreProvider ores = generator.oreProvider; int lotBottomY = lot.getBottomY(generator); if (lotBottomY != 0) { // shape the underworld if (lot.style == LotStyle.STRUCTURE || lot.style == LotStyle.ROAD) { for (int x = 0; x < chunk.width; x++) { for (int z = 0; z < chunk.width; z++) { if (odds.playOdds(underworldOdds)) { int y = lotBottomY - odds.getRandomInt(underworldLength); if (!chunk.isEmpty(x, lotBottomY, z)) chunk.setBlocks(x, y, lotBottomY, z, ores.subsurfaceId); } } } } // cross beams chunk.setBlocks(7, 9, lotBottomY - 2, lotBottomY, 0, 16, stoneId); chunk.setBlocks(0, 16, lotBottomY - 2, lotBottomY, 7, 9, stoneId); } }
@Override public void preGenerateChunk( WorldGenerator generator, PlatLot lot, ByteChunk chunk, BiomeGrid biomes, CachedYs blockYs) { Biome resultBiome = lot.getChunkBiome(); OreProvider ores = generator.oreProvider; // shape the world for (int x = 0; x < chunk.width; x++) { for (int z = 0; z < chunk.width; z++) { if (generator.settings.includeFloatingSubsurface) { // where is the ground? int groundY = findGroundY(generator, chunk.getBlockX(x), chunk.getBlockZ(z)); // make the base chunk.setBlock(x, 0, z, ores.substratumId); // place the way down there bits chunk.setBlocks(x, 1, groundY - 1, z, ores.stratumId); // seas? if (groundY < seaLevel) { chunk.setBlock(x, groundY - 1, z, ores.fluidSubsurfaceId); chunk.setBlock(x, groundY, z, ores.fluidSurfaceId); if (generator.settings.includeAbovegroundFluids) { if (generator.settings.includeDecayedNature) chunk.setBlocks(x, groundY + 1, deepSeaLevel, z, ores.fluidId); else chunk.setBlocks(x, groundY + 1, seaLevel, z, ores.fluidId); } } else { chunk.setBlock(x, groundY - 1, z, ores.subsurfaceId); chunk.setBlock(x, groundY, z, ores.surfaceId); } } // set biome for block biomes.setBiome(x, z, generator.oreProvider.remapBiome(resultBiome)); } } }
@Override public void postGenerateBlocks( WorldGenerator generator, PlatLot lot, RealChunk chunk, CachedYs blockYs) { // there is always something to plant! lot.generateSurface(generator, chunk, true); }