20 : x((uchar)(pos.x & 0xF)),
21 z((uchar)(pos.z & 0xF)),
26 constexpr static ::ChunkBlockPos from2D(uchar x, uchar z) { return ::ChunkBlockPos{x,
::ChunkLocalHeight{0}, z}; }
28 constexpr static ::ChunkBlockPos fromLegacyIndex(ushort idx) {
29 return ::ChunkBlockPos{(uint8)((idx >> 12) & 0xF),
ChunkLocalHeight{(uint8)idx}, (uint8)((idx >> 8) & 0xF)};
32 return x == other.x && z == other.z && y.mVal == other.y.mVal;
34 constexpr ushort toLegacyIndex()
const {
return (ushort)((x & 0xF) << 12 | (z & 0xF) << 8 | (uint8)y.mVal); }