fromFastBinary() public static method

public static fromFastBinary ( string $data, pocketmine\level\format\LevelProvider $provider = null ) : Chunk
$data string
$provider pocketmine\level\format\LevelProvider
return Chunk
コード例 #1
0
ファイル: ChunkRequestTask.php プロジェクト: kniffo80/Genisys
 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);
 }
コード例 #2
0
 public function onRun()
 {
     $chunk = Chunk::fromFastBinary($this->chunk);
     $ids = $chunk->getBlockIdArray();
     $meta = $chunk->getBlockDataArray();
     $blockLight = $chunk->getBlockLightArray();
     $skyLight = $chunk->getBlockSkyLightArray();
     $orderedIds = "";
     $orderedData = "";
     $orderedSkyLight = "";
     $orderedLight = "";
     for ($x = 0; $x < 16; ++$x) {
         for ($z = 0; $z < 16; ++$z) {
             $orderedIds .= $this->getColumn($ids, $x, $z);
             $orderedData .= $this->getHalfColumn($meta, $x, $z);
             $orderedSkyLight .= $this->getHalfColumn($skyLight, $x, $z);
             $orderedLight .= $this->getHalfColumn($blockLight, $x, $z);
         }
     }
     $biomeColors = pack("N*", ...$chunk->getBiomeColorArray());
     $ordered = $orderedIds . $orderedData . $orderedSkyLight . $orderedLight . $chunk->getBiomeIdArray() . $biomeColors . $this->tiles;
     $this->setResult($ordered, false);
 }