pocketmine\level\Level::sendBlocks PHP Method

sendBlocks() public method

public sendBlocks ( array $target, array $blocks, integer $flags = UpdateBlockPacket::FLAG_NONE, boolean $optimizeRebuilds = false )
$target array
$blocks array
$flags integer
$optimizeRebuilds boolean
    public function sendBlocks(array $target, array $blocks, $flags = UpdateBlockPacket::FLAG_NONE, bool $optimizeRebuilds = false)
    {
        if ($optimizeRebuilds) {
            $chunks = [];
            foreach ($blocks as $b) {
                if ($b === null) {
                    continue;
                }
                $pk = new UpdateBlockPacket();
                $first = false;
                if (!isset($chunks[$index = Level::chunkHash($b->x >> 4, $b->z >> 4)])) {
                    $chunks[$index] = true;
                    $first = true;
                }
                $pk->x = $b->x;
                $pk->z = $b->z;
                $pk->y = $b->y;
                if ($b instanceof Block) {
                    $pk->blockId = $b->getId();
                    $pk->blockData = $b->getDamage();
                } else {
                    $fullBlock = $this->getFullBlock($b->x, $b->y, $b->z);
                    $pk->blockId = $fullBlock >> 4;
                    $pk->blockData = $fullBlock & 0xf;
                }
                $pk->flags = $first ? $flags : UpdateBlockPacket::FLAG_NONE;
                Server::broadcastPacket($target, $pk);
            }
        } else {
            foreach ($blocks as $b) {
                if ($b === null) {
                    continue;
                }
                $pk = new UpdateBlockPacket();
                $pk->x = $b->x;
                $pk->z = $b->z;
                $pk->y = $b->y;
                if ($b instanceof Block) {
                    $pk->blockId = $b->getId();
                    $pk->blockData = $b->getDamage();
                } else {
                    $fullBlock = $this->getFullBlock($b->x, $b->y, $b->z);
                    $pk->blockId = $fullBlock >> 4;
                    $pk->blockData = $fullBlock & 0xf;
                }
                $pk->flags = $flags;
                Server::broadcastPacket($target, $pk);
            }
        }
    }
Level