package world import ( "fmt" ) // TilePosition describes the location of a tile/block entity within a chunk. type TilePosition uint32 func (p TilePosition) Pos() (x, y, z int) { return int((p >> 8) & 0xff), int((p >> 16) & 0xff), int(p & 0xff) } func (p TilePosition) String() string { x, y, z := p.Pos() return fmt.Sprintf("(%d, %d, %d)", x, y, z) } func ToTilePos(x, y, z int) TilePosition { return TilePosition((y&0xff)<<16 | (x&15)<<8 | (z & 15)) }