结构¶
结构(Structure)是Minecraft基岩版中用于存储和加载一段三维方块排列的数据格式。结构可以通过结构方块保存和放置,也作为世界生成中地物系统的一部分用于在世界中生成建筑物。
概述¶
结构以文件形式存储一个矩形区域内的所有方块、方块实体和实体信息。在游戏内,结构方块(Structure Block)提供了保存、加载、检测和导出结构的功能。在附加包中,结构文件可以被地物系统引用,用于世界生成时在特定位置放置预构建的建筑。
结构方块¶
结构方块是用于管理结构的特殊方块,拥有四种模式:
- 保存模式(Save)
- 将指定区域内的方块和实体保存为结构文件。需要指定结构名称和要保存的区域范围。保存的结构存入存档的结构数据库中。
- 加载模式(Load)
- 从结构数据库中加载指定名称的结构,并放置到世界中。支持设置旋转、镜像、是否包含实体等参数。
- 检测模式(Corner)
- 与另一个检测模式的结构方块配对,自动计算两者之间的区域范围,方便保存大型结构。
- 导出模式(Export)
- 将结构导出为
.mcstructure文件。此模式仅在开发构建中可用。
结构文件¶
结构文件使用NBT格式存储,文件扩展名为.mcstructure。文件中包含以下主要数据:
- 方块数据:区域内所有方块的标识符和方块状态,使用调色板化存储方式。
- 方块实体数据:区域内所有方块实体的完整NBT数据。
- 实体数据:区域内所有实体的完整NBT数据(可选)。
- 尺寸信息:结构在三个轴向上的尺寸。
结构与世界生成¶
在附加包的地物系统中,结构地物(Structure Feature)允许在世界生成过程中放置结构。结构地物引用一个结构文件的名称,并可配置放置时的偏移、旋转等参数。
结构地物通过地物规则与特定的生物群系和放置条件关联,实现在世界生成时自动放置预构建的建筑或装饰物。原版游戏中的村庄、要塞、矿井等建筑均通过类似的机制生成。
结构空位¶
结构空位方块(Structure Void)是一种特殊方块,用于在结构中标记应被忽略的位置。当结构被加载时,结构空位所在位置的原有方块不会被覆盖,从而允许结构自然地融入周围环境。