pocketmine\level\format\leveldb\LevelDB::requestChunkTask PHP Method

requestChunkTask() public method

public requestChunkTask ( $x, $z )
    public function requestChunkTask($x, $z)
    {
        $chunk = $this->getChunk($x, $z, false);
        if (!$chunk instanceof Chunk) {
            throw new ChunkException("Invalid Chunk sent");
        }
        $tiles = "";
        $nbt = new NBT(NBT::LITTLE_ENDIAN);
        foreach ($chunk->getTiles() as $tile) {
            if ($tile instanceof Spawnable) {
                $nbt->setData($tile->getSpawnCompound());
                $tiles .= $nbt->write();
            }
        }
        $heightmap = pack("C*", ...$chunk->getHeightMapArray());
        $biomeColors = pack("N*", ...$chunk->getBiomeColorArray());
        $extraData = new BinaryStream();
        $extraData->putLInt(count($chunk->getBlockExtraDataArray()));
        foreach ($chunk->getBlockExtraDataArray() as $key => $value) {
            $extraData->putLInt($key);
            $extraData->putLShort($value);
        }
        $ordered = $chunk->getBlockIdArray() . $chunk->getBlockDataArray() . $chunk->getBlockSkyLightArray() . $chunk->getBlockLightArray() . $heightmap . $biomeColors . $extraData->getBuffer() . $tiles;
        $this->getLevel()->chunkRequestCallback($x, $z, $ordered);
        return null;
    }