zh_cn:tutorial:features
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
Previous revisionNext revision | |||
— | zh_cn:tutorial:features [2021/07/12 01:07] – [创建Feature类] solidblock | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== 添加特征地形 [1.17] ===== | ||
+ | 岩石,树木,矿石和池塘都是Feature的示例。 它们是对世界的简单补充,它们的生成取决于它们的配置方式。 在本教程中,我们将研究如何在我们的世界中随机生成一个简单的石螺旋Feature。 | ||
+ | 岩石、树木、矿石、池塘都是特征地形的例子,是对世界的简单补充生成,并根据配置的方式生成。本教程中,我们将研究如何随机生成简单的石头螺旋地形。 | ||
+ | |||
+ | 往生物群系中添加特征地形需要3个步骤。 | ||
+ | * 创建特征地形 | ||
+ | * 配置特征地形 | ||
+ | * 使用[[https:// | ||
+ | |||
+ | 注意生物群系修改API标记为实验性。如果API不起作用,考虑使用[[? | ||
+ | |||
+ | ==== 创建特征地形 ==== | ||
+ | 一个简单的特征地形如下所示: | ||
+ | <code java> | ||
+ | public class StoneSpiralFeature extends Feature< | ||
+ | public StoneSpiralFeature(Codec< | ||
+ | super(config); | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public boolean generate(StructureWorldAccess world, ChunkGenerator generator, Random random, BlockPos pos, | ||
+ | DefaultFeatureConfig config) { | ||
+ | BlockPos topPos = world.getTopPosition(Heightmap.Type.WORLD_SURFACE, | ||
+ | Direction offset = Direction.NORTH; | ||
+ | |||
+ | for (int y = 1; y <= 15; y++) { | ||
+ | offset = offset.rotateYClockwise(); | ||
+ | world.setBlockState(topPos.up(y).offset(offset), | ||
+ | } | ||
+ | |||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | 区块决定生成特征地形时调用'' | ||
+ | |||
+ | 在我们的实现中,我们从世界最高位置的方块构建一个简单的15个方块高的岩石螺旋。 | ||
+ | |||
+ | 特征地形可以像游戏其他内容一样被注册,且你不需要担心没有特定的构建器(builder)和机制(mechanic)。 | ||
+ | |||
+ | <code java> | ||
+ | public class ExampleMod implements ModInitializer { | ||
+ | private static final Feature< | ||
+ | |||
+ | @Override | ||
+ | public void onInitialize() { | ||
+ | Registry.register(Registry.FEATURE, | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== 注册一个Feature ==== | ||
+ | 可以像注册游戏中的其他大多数内容一样注册Feature,而且您不必担心任何特殊的构建器或机制。 | ||
+ | <code java> | ||
+ | private static final Feature< | ||
+ | Registry.FEATURE, | ||
+ | new Identifier(" | ||
+ | new StoneSpiralFeature(DefaultFeatureConfig:: | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | ==== 向生物群落添加Feature ==== | ||
+ | 生物群系有一种称为'' | ||
+ | |||
+ | 我们可以遍历'' | ||
+ | <code java> | ||
+ | Registry.BIOME.forEach(biome -> biome.addFeature( | ||
+ | GenerationStep.Feature.RAW_GENERATION, | ||
+ | Biome.configureFeature( | ||
+ | LAVA_HOLE, | ||
+ | new DefaultFeatureConfig(), | ||
+ | Decorator.CHANCE_HEIGHTMAP, | ||
+ | new ChanceDecoratorConfig(100) | ||
+ | ) | ||
+ | )); | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | 装饰器代表世界如何选择放置要素。 '' | ||
+ | |||
+ | === 结果 === | ||
+ | {{https:// |
zh_cn/tutorial/features.txt · Last modified: 2022/08/18 03:37 by solidblock