Fabric 文档
本文档编写时对应版本:26.1.2。
方块状态
方块状态是附加到 Minecraft 世界中单个方块上的一条数据,以属性的形式包含方块的信息——以下是原版存储在方块状态中的一些属性示例:
- 旋转方向:主要用于原木和其他自然方块。
- 激活状态:大量用于红石器件以及熔炉、烟熏炉等方块。
- 生长阶段:用于作物、植物、树苗、海带等。
你大概能看出它们为什么有用——它们避免在方块实体中存储 NBT 数据,从而减小世界体积,并防止 TPS 问题!
方块状态定义位于assets/example-mod/blockstates文件夹中。
示例:柱状方块
Minecraft 已经提供了一些自定义类,让你可以快速创建某些类型的方块——本示例将演示如何通过创建一个“压缩橡木原木”方块来制作带有轴属性的方块。
原版的RotatedPillarBlock类允许方块沿 X、Y 或 Z 轴放置。
publicstaticfinalBlockCONDENSED_OAK_LOG=register("condensed_oak_log",RotatedPillarBlock::new,BlockBehaviour.Properties.of().sound(SoundType.WOOD),true);柱状方块有两个纹理:顶部和侧面——它们使用block/cube_column模型。
与所有方块纹理一样,纹理文件位于assets/example-mod/textures/block文件夹中。
下载纹理
由于柱状方块有两种位置(水平放置和垂直放置),我们需要制作两个单独的模型文件:
condensed_oak_log_horizontal.json,继承自block/cube_column模型。condensed_oak_log.json,继承自block/cube_column模型。
condensed_oak_log_horizontal.json文件示例:
{"parent":"minecraft:block/cube_column_horizontal","textures":{"end":"example-mod:block/condensed_oak_log_top","side":"example-mod:block/condensed_oak_log"}}请记住,方块状态文件位于assets/example-mod/blockstates文件夹中,方块状态文件的名称必须与你在ModBlocks类中注册方块时使用的方块 ID 一致。例如,如果方块 ID 是condensed_oak_log,那么文件应该命名为condensed_oak_log.json。
要更深入地了解方块状态文件中所有可用的修饰符,请查看 Minecraft Wiki - 模型(方块状态)页面。
接下来,我们需要创建一个方块状态文件,这才是魔法发生的地方。柱状方块有三个轴,因此我们将针对以下情况使用特定的模型:
axis=x—— 当方块沿 X 轴放置时,我们将模型旋转到面向正 X 方向。axis=y