1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Генерация гор в ChunkGenerator.

Тема в разделе "Разработка плагинов для новичков", создана пользователем Lisenochek, 17 сен 2018.

Статус темы:
Закрыта.
  1. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Всем привет. Сделал свою генерацию мира, используя класс ChunkGenerator, но столкнулся с такой проблемой, что я не могу сгенерировать банальную гору. При попытках получалось, что гора создавалась ТОЛЬКО на чанке во входящем аргументе. Также пробовал создать горы в биоме, но выходила та же петрушка. Как можно создать гору на множествах чанках?

    Прошерстил весь интернет и практически нет никаких статей об 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;
            }
     
    Последнее редактирование: 17 сен 2018
Статус темы:
Закрыта.

Поделиться этой страницей