pocketmine\level\format\anvil\Chunk::fromFastBinary PHP Метод

fromFastBinary() публичный статический Метод

public static fromFastBinary ( string $data, pocketmine\level\format\LevelProvider $provider = null ) : Chunk
$data string
$provider pocketmine\level\format\LevelProvider
Результат Chunk
    public static function fromFastBinary($data, LevelProvider $provider = null)
    {
        $nbt = new NBT(NBT::BIG_ENDIAN);
        try {
            $nbt->read($data);
            $chunk = $nbt->getData();
            if (!isset($chunk->Level) or !$chunk->Level instanceof CompoundTag) {
                return null;
            }
            return new Chunk($provider instanceof LevelProvider ? $provider : Anvil::class, $chunk->Level);
        } catch (\Throwable $e) {
            return null;
        }
    }

Usage Example

Пример #1
0
 public function onRun()
 {
     $chunk = Chunk::fromFastBinary($this->chunk);
     $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() . pack("C*", ...$chunk->getHeightMapArray()) . pack("N*", ...$chunk->getBiomeColorArray()) . $extraData->getBuffer() . $this->tiles;
     $this->setResult($ordered, false);
 }
All Usage Examples Of pocketmine\level\format\anvil\Chunk::fromFastBinary