我目前正在制作一个 Minecraft 块操作程序,我想知道 Minecraft 块部分是如何存储的。
来自Minecraft Wiki 文章,了解 Minecraft 如何存储其区块。
部分:复合标签列表,每个标签都是一个子块。
一个单独的部分。
Y:该部分的 Y 索引(不是坐标)。范围 0 到 15(从下到上),没有重复项,但如果为空,某些部分可能会丢失。
块:定义地形的 4096 字节块 ID。每块 8 位,加上 ? 来自下面的添加标签的位。
添加:可能不存在。2048 字节的附加块 ID 数据。添加到(组合)上述块 ID 以形成 0 到 4095 范围内的真实块 ID 的值。每个块 4 位。组合是通过将该值移至左侧 8 位,然后将其添加到上面的块 ID 来完成的。
数据:2048 字节的块数据另外定义了部分地形。每块 4 位。
BlockLight:2048字节记录每个块中块发射的光量。与加载时重新计算相比,加载时间更快。每块 4 位。
SkyLight:2048 字节记录照射到每个块的阳光或月光量。每块 4 位。
但我不明白怎么Blocks读。块中的每个部分都是 16 x 16 x 16 块。但 Minecraft 将块存储在一维数组的一个部分中。