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.
Next revision | |||
— | zh_cn:tutorial:features [2020/01/08 12:18] – created lightcolour | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== 在您的世界中生成Feature ===== | ||
+ | 岩石,树木,矿石和池塘都是Feature的示例。 它们是对世界的简单补充,它们的生成取决于它们的配置方式。 在本教程中,我们将研究如何在我们的世界中随机生成一个简单的石螺旋Feature。 | ||
+ | ==== 创建Feature类 ==== | ||
+ | 一个简单的Feature如下所示: | ||
+ | <code java [enable_line_numbers=" | ||
+ | public class StoneSpiralFeature extends Feature< | ||
+ | public StoneSpiralFeature(Function< | ||
+ | super(config); | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public boolean generate(IWorld world, ChunkGenerator<? | ||
+ | BlockPos topPos = world.getTopPosition(Heightmap.Type.WORLD_SURFACE, | ||
+ | Direction offset = Direction.NORTH; | ||
+ | |||
+ | for (int y = 1; y < 16; y++) { | ||
+ | offset = offset.rotateYClockwise(); | ||
+ | world.setBlockState(topPos.up(y).offset(offset), | ||
+ | } | ||
+ | |||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 构造函数采用'' | ||
+ | |||
+ | 当块决定生成Feature时,将调用``generate``。 如果将功能配置为产生每个块,则也会为正在生成的每个块调用此功能。 在将功能配置为以每个生物群落以一定速率生成的情况下,仅在世界想要生成结构的情况下才调用``generate``。 | ||
+ | |||
+ | 在我们的实现中,我们将从世界的最高位置开始构建一个简单的16块高的石头螺旋: | ||
+ | |||
+ | <code java> | ||
+ | @Override | ||
+ | public boolean generate(IWorld world, ChunkGenerator<? | ||
+ | BlockPos topPos = world.getTopPosition(Heightmap.Type.WORLD_SURFACE, | ||
+ | Direction offset = Direction.NORTH; | ||
+ | |||
+ | for (int y = 1; y < 16; y++) { | ||
+ | offset = offset.rotateYClockwise(); | ||
+ | world.setBlockState(topPos.up(y).offset(offset), | ||
+ | } | ||
+ | |||
+ | return true; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== 注册一个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