public function sendChunk($x, $z, $payload) { if ($this->connected === \false) { return; } $this->usedChunks[\PHP_INT_SIZE === 8 ? ($x & 0xffffffff) << 32 | $z & 0xffffffff : $x . ":" . $z] = \true; $this->chunkLoadCount++; $pk = new FullChunkDataPacket(); $pk->chunkX = $x; $pk->chunkZ = $z; $pk->data = $payload; $this->batchDataPacket($pk->setChannel(Network::CHANNEL_WORLD_CHUNKS)); if ($this->spawned) { foreach ($this->level->getChunkEntities($x, $z) as $entity) { if ($entity !== $this and !$entity->closed and !$entity->dead) { $entity->spawnTo($this); } } } }
public function sendChunk($x, $z, $payload) { if ($this->connected === false) { return; } $this->usedChunks[Level::chunkHash($x, $z)] = true; $this->chunkLoadCount++; if ($payload instanceof DataPacket) { $this->dataPacket($payload); } else { $pk = new FullChunkDataPacket(); $pk->chunkX = $x; $pk->chunkZ = $z; $pk->data = $payload; $this->batchDataPacket($pk->setChannel($this->spawned ? Network::CHANNEL_WORLD_CHUNKS : Network::CHANNEL_PRIORITY)); } if ($this->spawned) { foreach ($this->level->getChunkEntities($x, $z) as $entity) { if ($entity !== $this and !$entity->closed and $entity->isAlive()) { $entity->spawnTo($this); } } } }
public function sendChunks($data = array()) { if ($this->connected === \false) { return; } $bt = new BatchPacket(); $str = ""; foreach ($data as $set) { $x = $set["x"]; $z = $set["z"]; $payload = $set["payload"]; $this->usedChunks[Level::chunkHash($x, $z)] = true; $this->chunkLoadCount++; $pk = new FullChunkDataPacket(); $pk->chunkX = $x; $pk->chunkZ = $z; $pk->data = $payload; $pk->setChannel(Network::CHANNEL_WORLD_CHUNKS); $pk->encode(); $str .= $pk->buffer; } $bt->setChannel($this->spawned ? Network::CHANNEL_WORLD_CHUNKS : Network::CHANNEL_PRIORITY); $bt->payload = zlib_encode($str, ZLIB_ENCODING_DEFLATE, 6); $bt->encode(); $bt->isEncoded = true; $this->dataPacket($bt); foreach ($data as $set) { $x = $set["x"]; $z = $set["z"]; $payload = $set["payload"]; if ($this->spawned) { foreach ($this->level->getChunkEntities($x, $z) as $entity) { if ($entity !== $this and !$entity->closed and !$entity->dead) { $entity->spawnTo($this); } } } } }