payload = $payload; } private static function idx(int $x, int $z) : int{ if($x >= 16 or $z >= 16){ throw new \InvalidArgumentException("x and z must be in the range 0-15"); } return ($z << 4) | $x; } public function get(int $x, int $z) : int{ return ord($this->payload[self::idx($x, $z)]); } public function set(int $x, int $z, int $biomeId) : void{ if($biomeId < 0 or $biomeId >= 256){ throw new \InvalidArgumentException("Biome ID must be in the range 0-255"); } $this->payload[self::idx($x, $z)] = chr($biomeId); } /** * @return string ZZZZXXXX key bits */ public function getData() : string{ return $this->payload; } }