User Tools

Site Tools


zh_cn:tutorial:ores
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
Next revision
zh_cn:tutorial:ores [2021/09/23 00:12] – [在世界中添加矿石] solidblock
Line 1: Line 1:
 +====== 在世界中添加矿石 ======
 +许多模组会添加自己的矿石,您需要找到一种方法以将其放置在现有生物群系中让玩家寻找。在本教程中,我们将研究将矿石添加到现有生物群系以及其他模组添加的生物群系。将矿石添加到生物群系需要2个步骤。
 +  * 制作一个 ConfiguredFeature,定义你的矿石方块如何生成。
 +  * 使用 [[https://github.com/FabricMC/fabric/pull/1097|Fabric API 中的 Biome Modification API]]以将地物添加到生物群系。
 +
 +注意 Biome Modification API 仍是实验性的。如果 API 不起作用,考虑 [[?rev=1599388827|mixin 版本]]。
 +
 +我们假设您此时已经创建了自己的矿石。本教程中,我们使用羊毛方块进行替换。你可以适时将羊毛改成你自己的矿石。
 +==== 在群系中添加矿石 ====
 +
 +首先,我们需要创建一种方法来处理生物群系,检查其是否为有效的生物群系,然后添加矿石。
 +<code java [enable_line_numbers="true"]>
 +private void handleBiome(Biome biome) {
 + if(biome.getCategory() != Biome.Category.NETHER && biome.getCategory() != Biome.Category.THEEND) {
 + biome.addFeature(
 +            GenerationStep.Feature.UNDERGROUND_ORES,
 +            Biome.configureFeature(
 +                Feature.ORE,
 +        new OreFeatureConfig(
 +        OreFeatureConfig.Target.NATURAL_STONE,
 +        Blocks.NETHER_QUARTZ_ORE.getDefaultState(),
 +                8 //Ore vein size
 +        ),
 +                Decorator.COUNT_RANGE,
 +        new RangeDecoratorConfig(
 +        8, //Number of veins per chunk
 +        0, //Bottom Offset
 +        0, //Min y level
 +        64 //Max y level
 +        )));
 + }
 +}
 +</code>
 +
 +此方法通过提供的生成设置将您的矿石添加到整个世界。 随意更改值以适合您的mod。
 +
 +==== 迭代生物群系注册表 ====
 +
 +接下来,我们需要处理已注册的所有生物群系以及将来将要注册的所有生物群落(由其他模块添加)。 我们首先遍历当前注册表,然后注册一个侦听器,以供将来添加。
 +
 +<code java [enable_line_numbers="true"]>
 +@Override
 +public void onInitialize() {
 + //Loop over existing biomes
 + Registry.BIOME.forEach(this::handleBiome);
 +
 + //Listen for other biomes being registered
 + RegistryEntryAddedCallback.event(Registry.BIOME).register((i, identifier, biome) -> handleBiome(biome));
 +}
 +</code>
 +
 +==== 结论 ====
 +您应该会在整个世界中看到石英矿石的生成:
 +
 +{{https://i.imgur.com/UemsMaI.png|Quartz Ores}}
 +
  
zh_cn/tutorial/ores.txt · Last modified: 2023/12/18 01:03 by solidblock