【发布时间】:2015-09-08 02:59:46
【问题描述】:
我目前正在制作一个 Minecraft 块处理程序,我想知道 Minecraft 块部分是如何存储的。
来自Minecraft Wiki Article on how Minecraft Stores its chunks。
Sections:复合标签列表,每个标签都是排序的子块。
一个单独的部分。
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 将块存储在 1-d 数组的一个部分中。
【问题讨论】: