MinecraftForge 1.19.3矿石生成(Java版)

myzjeezk  于 2023-01-15  发布在  Java
关注(0)|答案(1)|浏览(222)

使用Minecraftforge修改Minecraft的教程使用一个名为BuiltInRegistries.CONFIGURED_FEATURE的常量来允许mod注册自定义功能。这个常量在Minecraft 1.19.3中缺失。例如,类似问题的解决方案在1.19中不起作用:Minecraft Forge Modding 1.18.1 Ore Generation Confusion
有谁知道在1.19.3中它被替换成了什么,或者知道更新的教程吗?下面是我们正在做的:

final Block MY_ORE_BLOCK = Registry.register(BuiltInRegistries.BLOCK, "my_ore", new DropExperienceBlock(BlockBehaviour.Properties.of(Material.STONE).requiresCorrectToolForDrops().strength(3.0F, 3.0F), UniformInt.of(3, 7)));
        final ResourceKey<ConfiguredFeature<?, ?>> MY_ORE_LARGE = FeatureUtils.createKey("my_ore_large");
        List<OreConfiguration.TargetBlockState> list = List.of(OreConfiguration.target(ruletest1, MY_ORE_BLOCK.defaultBlockState()));
        ConfiguredFeature<?,?> feature = new ConfiguredFeature(Feature.ORE, new OreConfiguration(list, 4, 0.5F));
        Registry.register(BuiltInRegistries.CONFIGURED_FEATURE, MY_ORE_LARGE, feature);

该代码的目的是创建一种新类型的矿石,并将其注册为一个特征,以便世界生成器生成其矿床。
我们尝试编译,但BuiltInRegistries在1.19.3中没有CONFIGURED_FEATURE常量,因此无法编译。我们还尝试使用FeatureUtils.register()注册该功能,但无法找到如何获取BootstapContext以传递给它的第一个参数。

p8h8hvxi

p8h8hvxi1#

使用FEATURESdeferred registry
Forge Docs on registries,伪造FEATURES注册表的JavaDocs。

private static final DeferredRegister<Feature<?>> FEATURES = DeferredRegister.create(ForgeRegistries.FEATURES, MODID);

相关问题