获取 Id 组件的算法

Algorithm to get an Id's components

我有一个块,它只是一个 16 x 16 的分组(一个块可以是正数也可以是负数),我用它来创建一个唯一的 ID。问题是我现在需要获取该 chunkID 并将其转回其 x 和 z 组件,我该怎么做?

long chunkID = (long) chunk.getX() & 0xffffffffL | ((long) chunk.getZ() & 0xffffffffL) << 32;

您将 x 值存储在您的 chunkID 的低 32 位中,以便将那些值转换回 int:

int x = (int) chunkID;

z值在高32位,所以需要先下移:

int z = (int) (chunkID >> 32);