- Баллы
- 76
- Имя в Minecraft
- Lisenochek
Всем привет. Сделал свою генерацию мира, используя класс ChunkGenerator, но столкнулся с такой проблемой, что я не могу сгенерировать банальную гору. При попытках получалось, что гора создавалась ТОЛЬКО на чанке во входящем аргументе. Также пробовал создать горы в биоме, но выходила та же петрушка. Как можно создать гору на множествах чанках?
Прошерстил весь интернет и практически нет никаких статей об ChunkData, но есть кучу гайдов об генерации чанков с помощью байт-кода, который щас устарел. Есть гайд, по которому я и написал код ниже, но я так и не понял, как создавать разные шумы и уровни генерации.
Код.
Прошерстил весь интернет и практически нет никаких статей об ChunkData, но есть кучу гайдов об генерации чанков с помощью байт-кода, который щас устарел. Есть гайд, по которому я и написал код ниже, но я так и не понял, как создавать разные шумы и уровни генерации.
Код.
Код:
@Override
public ChunkData generateChunkData(World world, Random random, int chunkX, int chunkZ, BiomeGrid biome) {
SimplexOctaveGenerator generator = new SimplexOctaveGenerator(new Random(world.getSeed()), 8);
ChunkData chunk = createChunkData(world);
generator.setScale(0.01D);
List<Biome> biomes = Arrays.asList(Biome.TAIGA, Biome.FOREST, Biome.PLAINS);
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
if (!biomes.contains(biome.getBiome(x, z))) biome.setBiome(x, z, Biome.PLAINS);
currentHeight = (int) (generator.noise(chunkX * 16 + x, chunkZ * 16 + z, 0.6D, 0.6D) * 15D + 70D);
if (biome.getBiome(x, z) == Biome.TAIGA) {
currentHeight = (int) (generator.noise(chunkX * 16 + x, chunkZ * 16 + z, 0.6D, 0.6D) * 15D + 80D);
chunk.setBlock(x, currentHeight, z, Material.SNOW_BLOCK);
for (int i = currentHeight - 1; i > 0; i--) chunk.setBlock(x, i, z, Material.STONE);
continue;
}
chunk.setBlock(x, currentHeight, z, Material.GRASS);
chunk.setBlock(x, currentHeight - 1, z, Material.DIRT);
for (int i = currentHeight - 2; i > 0; i--) chunk.setBlock(x, i, z, Material.STONE);
chunk.setBlock(x, 0, z, Material.BEDROCK);
}
}
return chunk;
}
Последнее редактирование: