User Tools

Site Tools


zh_cn:tutorial:directionalblock

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
zh_cn:tutorial:directionalblock [2024/08/24 14:05] solidblockzh_cn:tutorial:directionalblock [2024/12/08 14:06] (current) – [下一步] solidblock
Line 44: Line 44:
 } }
 </code> </code>
 +
 +然后按照在 [[blocks]] 中提到的方法,注册方块:
 <code java TutorialBlocks.java> <code java TutorialBlocks.java>
 public final class TutorialBlocks implements ModInitializer { public final class TutorialBlocks implements ModInitializer {
-    public static final VerticalSlabBlock POLISHED_ANDESITE_VERTICAL_SLAB = Registry.register( +    [...] 
-        Registries.BLOCK, +     
-        Identifier.of("tutorial", "polished_andesite_vertical_slab"),+    public static final VerticalSlabBlock POLISHED_ANDESITE_VERTICAL_SLAB = register("polished_andesite_vertical_slab", 
         new VerticalSlabBlock(Block.Settings.copy(Blocks.POLISHED_ANDESITE)));         new VerticalSlabBlock(Block.Settings.copy(Blocks.POLISHED_ANDESITE)));
 } }
Line 102: Line 104:
 ===== 定义方块的旋转和翻转 ===== ===== 定义方块的旋转和翻转 =====
 对于带有朝向的方块,你需要覆盖 ''rotate'' 和 ''mirror'' 方法,这样在结构方块中可以正确地被旋转或者翻转。不过,在这个例子中,''HorizontalFacingBlock'' 类已经帮你做好了。 对于带有朝向的方块,你需要覆盖 ''rotate'' 和 ''mirror'' 方法,这样在结构方块中可以正确地被旋转或者翻转。不过,在这个例子中,''HorizontalFacingBlock'' 类已经帮你做好了。
 +
 +
 +===== 影响寻路 =====
 +如果在游戏内放置这些方块,可能会发现个问题,生物寻路时,会尝试这些方块,似乎这些方块不存在,结果被这些方块阻挡。这是因为,生物会将这些非完整的方块视为不挡路的方块。要修改这一寻路行为,需要修改 ''canPathfindThrough'' 方法:
 +<code java>
 +  @Override
 +  protected boolean canPathfindThrough(BlockState state, NavigationType type) {
 +    return false;
 +  }
 +</code>
 +
 +在原版中,有些方块有不同的路径节点类型(path node type)。例如,生物会避免危险的方块,比如岩浆块、凋零玫瑰和仙人掌。你也可以让你的生物以不同方式对待这些方块,方法就是利用 Fabric API 中的 ''LandPathNodeTypesRegistry'' 修改路径节点类型。
  
 ===== 下一步 ===== ===== 下一步 =====
 尝试让它[[waterloggable|可含水]] 尝试让它[[waterloggable|可含水]]
  
zh_cn/tutorial/directionalblock.1724508315.txt.gz · Last modified: 2024/08/24 14:05 by solidblock