zh_cn:tutorial:structures
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
zh_cn:tutorial:structures [2021/07/24 16:23] – solidblock | zh_cn:tutorial:structures [2021/07/24 16:27] – [创建特征] solidblock | ||
---|---|---|---|
Line 8: | Line 8: | ||
注意本教程依赖标记为实验性的[[https:// | 注意本教程依赖标记为实验性的[[https:// | ||
- | ==== 创建特征 | + | ===== 创建地物 |
+ | 要创建基本的结构,我们推荐创建扩展'' | ||
- | 要创建基本功能,我们建议创建一个扩展AbstractTempleFeature < | + | 你需要覆写'' |
- | * shouldStartAt:出于测试目的,返回true。 | + | <code java> |
- | * getName:您的结构的名称 | + | public class MyFeature extends StructureFeature< |
- | * getRadius:结构的半径,用于放置 | + | |
- | * getSeeedModifier | + | super(codec); |
+ | } | ||
- | 您可以将DefaultFeatureConfig :: deserialize传递给构造函数进行测试。 | + | @Override |
+ | public StructureFeature.StructureStartFactory< | ||
+ | return Start::new; | ||
+ | } | ||
- | 对于getStructureStartFactory,大多数原始结构会创建一个在其Feature类中扩展StructureStart的类: | + | public static class Start extends |
+ | public Start(StructureFeature< | ||
+ | long seed) { | ||
+ | super(feature, | ||
+ | } | ||
- | <code java [enable_line_numbers=" | + | // 世界尝试在新的结构中生成时调用,同时也是地物和结构之间的“空隙(gap)”。 |
- | public static class MyStructureStart extends StructureStart { | + | public |
- | public | + | |
- | super(structureFeature_1, | + | int x = chunkX * 16; |
- | } | + | int z = chunkZ * 16; |
- | @Override | + | int y = chunkGenerator.getHeight(x, |
- | public void initialize(ChunkGenerator<?> | + | |
- | | + | |
- | | + | MyGenerator.addPieces(manager, pos, rotation, this.children); |
- | int z = chunkZ * 16; | + | this.setBoundingBoxFromChildren(); |
- | BlockPos | + | |
- | | + | |
- | MyGenerator.addParts(structureManager, startingPos, rotation, this.children, this.random, | + | |
- | this.setBoundingBoxFromChildren(); | + | |
} | } | ||
+ | } | ||
} | } | ||
</ | </ | ||
- | | ||
- | 当世界尝试以新结构生成时,这称为“要素”和“生成器”之间的差距。 在您的主类中对该变量的引用尚不存在,但我们将在最后创建它。 您也可以将配置设置为等于新的DefaultFeatureConfig。 您可以在getStructureStartFactory中使用返回MyStructureStart :: new返回此函数。 | ||
- | 这是结构文件和直接从generate方法生成的部分方式。 有两种解决方法: | ||
- | |||
- | | ||
- | | ||
==== 创建一个生成器 ==== | ==== 创建一个生成器 ==== |