User Tools

Site Tools


zh_cn:tutorial:ores

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
zh_cn:tutorial:ores [2021/09/23 00:15] – [在群系中添加矿石] solidblockzh_cn:tutorial:ores [2021/09/23 00:19] – [结论] solidblock
Line 43: Line 43:
 {{tutorial:ores.png?800}} {{tutorial:ores.png?800}}
  
-==== 迭代生物群系注册表 ====+==== 添加到下界生物群系 ==== 
 +本段落将会基于前面的段落添加矿石到下界生物群系。
  
-我们需要处理已注册的所有生物群系及将来将注册的所有生物群落(由其他模块添加)。 我们首先遍历当前注册表,然后注册一个侦听器,以供将来添加+,需要替换方块和主世界地不同,所以把 ''OreFeatureConfig.Rules.BASE_STONE_OVERWORLD'' 替换成 ''OreFeatureConfig.Rules.BASE_STONE_NETHER''
  
-<code java [enable_line_numbers="true"]> +<code java> 
-@Override +public class ExampleMod implements ModInitializer 
-public void onInitialize() +  private static ConfiguredFeature<?, ?> ORE_WOOL_NETHER = Feature.ORE 
- //Loop over existing biomes +    .configure(new OreFeatureConfig( 
- Registry.BIOME.forEach(this::handleBiome);+      OreFeatureConfig.Rules.BASE_STONE_NETHER, // 对于下界,我们使用 OreFeatureConfig.Rules.BASE_STONE_NETHER 
 +      Blocks.WHITE_WOOL.getDefaultState(), 
 +      9)) 
 +    .range(new RangeDecoratorConfig( 
 +      UniformHeightProvider.create(YOffset.fixed(0), YOffset.fixed(64)))) 
 +    .spreadHorizontally() 
 +    .repeat(20);
  
- //Listen for other biomes being registered +  @Override 
- RegistryEntryAddedCallback.event(Registry.BIOME).register((i, identifierbiome-> handleBiome(biome));+  public void onInitialize() { 
 +    RegistryKey<ConfiguredFeature<?, ?>> oreWoolNether = RegistryKey.of(Registry.CONFIGURED_FEATURE_WORLDGEN, 
 +        new Identifier("tutorial", "ore_wool_nether")); 
 +    Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, oreWoolNether.getValue()ORE_WOOL_NETHER)
 +    BiomeModifications.addFeature(BiomeSelectors.foundInTheNether(), GenerationStep.Feature.UNDERGROUND_ORES, oreWoolNether); 
 +  }
 } }
 </code> </code>
  
-==== 结论 ==== +==== 添加到末地生物群系 ==== 
-您应该在整个世界中看到石英矿石生成:+本段落将基于主世界的代码添加矿石到末地物群系。 
 + 
 +在末地,基础方块是末地石,所以需要把 ''OreFeatureConfig.Rules.BASE_STONE_OVERWORLD'' 替换成 ''new BlockMatchRuleTest(Blocks.END_STONE)''。 
 + 
 +<code java> 
 +public class ExampleMod implements ModInitializer { 
 +  private static ConfiguredFeature<?, ?> ORE_WOOL_END = Feature.ORE 
 +    .configure(new OreFeatureConfig( 
 +      new BlockMatchRuleTest(Blocks.END_STONE), // 在末地生物群系,基础方块是末地石 
 +      Blocks.WHITE_WOOL.getDefaultState(), 
 +      9)) 
 +    .range(new RangeDecoratorConfig( 
 +      UniformHeightProvider.create(YOffset.fixed(0), YOffset.fixed(64)))) 
 +    .spreadHorizontally() 
 +    .repeat(20); 
 + 
 +  @Override 
 +  public void onInitialize() { 
 +    RegistryKey<ConfiguredFeature<?, ?>> oreWoolEnd = RegistryKey.of(Registry.CONFIGURED_FEATURE_KEY, 
 +        new Identifier("tutorial", "ore_wool_end")); 
 +    Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, oreWoolEnd.getValue(), ORE_WOOL_END); 
 +    BiomeModifications.addFeature(BiomeSelectors.foundInTheEnd(), GenerationStep.Feature.UNDERGROUND_ORES, oreWoolEnd); 
 +  } 
 +
 +</code>
  
-{{https://i.imgur.com/UemsMaI.png|Quartz Ores}} 
  
  
zh_cn/tutorial/ores.txt · Last modified: 2023/12/18 01:03 by solidblock