Возникли проблемы с Случайное генерирование руды для minecraft 1.15.2 - PullRequest
0 голосов
/ 23 февраля 2020

Так что я пытаюсь сделать мод для Minecraft, который имеет случайно сгенерированную руду. Я столкнулся с проблемой в этой части кода.

import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.Biomes;
import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.OreFeatureConfig;
import net.minecraft.world.gen.placement.ConfiguredPlacement;
import net.minecraft.world.gen.placement.CountRangeConfig;
import net.minecraft.world.gen.placement.Placement;
import net.minecraftforge.registries.ForgeRegistries;

public class ModOreGen {
    public static void generateOre() {
        for (Biome biome : ForgeRegistries.BIOMES) {
            if (biome == Biomes.BAMBOO_JUNGLE) {
                ConfiguredPlacement<CountRangeConfig> customConfig = Placement.COUNT_RANGE
                        .func_227446_a_(new CountRangeConfig(9, 10, 10, 0));
                biome.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES,Feature.ORE.withConfiguration(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.NATURAL_STONE, blockinit.chocolate_ore.getDefaultState(), 10)).withPlacement(customConfig));
            }
        }
    }
}

Там, где написано .withConfiguration, выдается ошибка:

The method withConfiguration(OreFeatureConfig) is undefined for the type Feature<OreFeatureConfig>

I уже пытался обновить мои сопоставления и тому подобное, но ничего не помогло. Это была проблема, которая действительно раздражала меня в течение нескольких дней. Что происходит?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Саммерсон сделал очевидную вещь: убрал строгую типизацию для CountRangeConfig: ConfiguredPlacement<?>, но это не имеет значения.

Чего вы не видите, так это обновления Forge до 1.15.2.

Скорее всего, это ваше лучшее решение. В вашем build.gradle, где-то в верхней части (моя строка 28), вы, вероятно, уже обновили свои отображения на:

    mappings channel: 'snapshot', version: '20200409-1.15.1'

Но вы также хотите go вниз и обновить версию Forge. (для меня это строка 90).

    dependencies {
        minecraft 'net.minecraftforge:forge:1.15.2-31.1.0'
    }

Вам нужно сделать то же самое

gradlew genEclipseRuns
gradlew eclipse

, как обновить сопоставления.

(Вы можете проверить на странице Forge может появиться более новая версия, чем 1.15.2, когда кто-то другой прочтет это. И я надеюсь, что любой, кто использует IntelliJ, сможет выяснить, как обновить ваши собственные отображения / подделки.))

0 голосов
/ 03 марта 2020

У меня была такая же проблема с моим кодом, и я наконец исправил ее. Попробуйте это!

import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.Biomes;
import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.OreFeatureConfig;
import net.minecraft.world.gen.placement.ConfiguredPlacement;
import net.minecraft.world.gen.placement.CountRangeConfig;
import net.minecraft.world.gen.placement.Placement;
import net.minecraftforge.registries.ForgeRegistries;

public class ModOreGen {
    public static void generateOre() {
        for (Biome biome : ForgeRegistries.BIOMES) {
            if(biome == Biomes.BAMBOO_JUNGLE) {  
                ConfiguredPlacement<?> customConfig = Placement.COUNT_RANGE
                    .configure(new CountRangeConfig(9, 10, 10, 0));
            biome.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.ORE.withConfiguration(newOreFeatureConfig(OreFeatureConfig.FillerBlockType.NATURAL_STONE,BlockInit.chocolate_ore.getDefaultState(), 10)).withPlacement(customConfig));
            }
        }
    }
}
...