00 从眼前的方块开始
1 概述
当我们站在 Minecraft 的一个维度中时,眼前似乎只有一整片连续的地形:脚下是方块,远处仍然是方块,穿过传送门后又会到达另一个维度。
但是,当游戏需要查找、保存或改变其中的某个方块时,“一整片地形” 并不是一个足够精确的描述。游戏需要知道这个方块属于哪个维度、哪个区块、哪组坐标;还需要分辨 “这是一个活塞” 和 “这是一个朝东且没有伸出的活塞” 之间的区别。
本章将从这些可以直接观察的现象出发,依次介绍:
- 存档与维度;
- 区块与子区块;
- 方块、方块状态与方块实体之间的区别;
- 放置、改变和破坏一个方块时发生的事情。
读完本章后,你不需要记住 Minecraft 的完整运算流程,但应该能够回答三个问题:
- 给出一个坐标时,游戏去哪里寻找对应的方块?
- 同一种方块为什么能够表现出不同朝向、能量或形状?
- 一个方块发生变化时,哪些事情属于 “写入新状态”,哪些事情是由写入操作进一步引发的?
2 术语与参考
本章采用 “维度(World)”“维度类型(Dimension Type)”“区块(Chunk)”“子区块(Chunk Section)”“方块状态(Block State)” 等译名。BlockPos 直接称为 “坐标”。术语选择参考了 Discovering Minecraft,并以 1.20.1 Yarn 中的实际类型与方法进行校对。
