setProvider() public method

public setProvider ( pocketmine\level\format\LevelProvider $provider )
$provider pocketmine\level\format\LevelProvider
コード例 #1
0
ファイル: Level.php プロジェクト: RedstoneAlmeida/Steadfast2
 public function generateChunkCallback($x, $z, FullChunk $chunk)
 {
     $oldChunk = $this->getChunk($x, $z, false);
     unset($this->chunkGenerationQueue[PHP_INT_SIZE === 8 ? ($x & 4294967295.0) << 32 | $z & 4294967295.0 : $x . ":" . $z]);
     $chunk->setProvider($this->provider);
     $this->setChunk($x, $z, $chunk);
     $chunk = $this->getChunk($x, $z, false);
     if ($chunk !== null and ($oldChunk === null or $oldChunk->isPopulated() === false) and $chunk->isPopulated()) {
         $this->server->getPluginManager()->callEvent(new ChunkPopulateEvent($chunk));
     }
 }
コード例 #2
0
ファイル: Level.php プロジェクト: robozeri/Yuriko-MP
 public function generateChunkCallback($x, $z, FullChunk $chunk)
 {
     Timings::$generationCallbackTimer->startTiming();
     if (isset($this->chunkPopulationQueue[$index = Level::chunkHash($x, $z)])) {
         $oldChunk = $this->getChunk($x, $z, false);
         for ($xx = -1; $xx <= 1; ++$xx) {
             for ($zz = -1; $zz <= 1; ++$zz) {
                 unset($this->chunkPopulationLock[Level::chunkHash($x + $xx, $z + $zz)]);
             }
         }
         unset($this->chunkPopulationQueue[$index]);
         $chunk->setProvider($this->provider);
         $this->setChunk($x, $z, $chunk, false);
         $chunk = $this->getChunk($x, $z, false);
         if ($chunk !== null and ($oldChunk === null or $oldChunk->isPopulated() === false) and $chunk->isPopulated() and $chunk->getProvider() !== null) {
             $this->server->getPluginManager()->callEvent(new ChunkPopulateEvent($chunk));
             foreach ($this->getChunkLoaders($x, $z) as $loader) {
                 $loader->onChunkPopulated($chunk);
             }
         }
     } elseif (isset($this->chunkGenerationQueue[$index]) or isset($this->chunkPopulationLock[$index])) {
         unset($this->chunkGenerationQueue[$index]);
         unset($this->chunkPopulationLock[$index]);
         $chunk->setProvider($this->provider);
         $this->setChunk($x, $z, $chunk, false);
     } else {
         $chunk->setProvider($this->provider);
         $this->setChunk($x, $z, $chunk, false);
     }
     Timings::$generationCallbackTimer->stopTiming();
 }
コード例 #3
0
 public function setChunk($chunkX, $chunkZ, FullChunk $chunk)
 {
     if (!$chunk instanceof Chunk) {
         throw new ChunkException("Invalid Chunk class");
     }
     $chunk->setProvider($this);
     self::getRegionIndex($chunkX, $chunkZ, $regionX, $regionZ);
     $this->loadRegion($regionX, $regionZ);
     $chunk->setX($chunkX);
     $chunk->setZ($chunkZ);
     if (isset($this->chunks[$index = Level::chunkHash($chunkX, $chunkZ)]) and $this->chunks[$index] !== $chunk) {
         $this->unloadChunk($chunkX, $chunkZ, false);
     }
     $this->chunks[$index] = $chunk;
 }
コード例 #4
0
ファイル: McRegion.php プロジェクト: boybook/PocketMine-MP
 public function setChunk($chunkX, $chunkZ, FullChunk $chunk)
 {
     if (!$chunk instanceof Chunk) {
         throw new \Exception("Invalid Chunk class");
     }
     $chunk->setProvider($this);
     if ($chunk->isPopulated() === false) {
         $this->unloadChunk($chunkX, $chunkZ, false);
         $regionX = $regionZ = null;
         self::getRegionIndex($chunkX, $chunkZ, $regionX, $regionZ);
         $this->loadRegion($regionX, $regionZ);
         $region = $this->getRegion($regionX, $regionZ);
         $region->removeChunk($chunkX - $region->getX() * 32, $chunkZ - $region->getZ() * 32);
         $this->loadChunk($chunkX, $chunkZ);
     } else {
         $chunk->setX($chunkX);
         $chunk->setZ($chunkZ);
         $this->chunks[Level::chunkHash($chunkX, $chunkZ)] = $chunk;
         //$this->saveChunk($chunkX, $chunkZ);
     }
 }
コード例 #5
0
 public function setChunk($chunkX, $chunkZ, FullChunk $chunk)
 {
     if (!$chunk instanceof Chunk) {
         throw new ChunkException("Invalid Chunk class");
     }
     $chunk->setProvider($this);
     $chunk->setX($chunkX);
     $chunk->setZ($chunkZ);
     if (isset($this->chunks[$index = \PHP_INT_SIZE === 8 ? ($chunkX & 0xffffffff) << 32 | $chunkZ & 0xffffffff : $chunkX . ":" . $chunkZ]) and $this->chunks[$index] !== $chunk) {
         $this->unloadChunk($chunkX, $chunkZ, \false);
     }
     $this->chunks[$index] = $chunk;
 }
コード例 #6
0
ファイル: Anvil.php プロジェクト: Edwardthedog2/Steadfast2
 public function setChunk($chunkX, $chunkZ, FullChunk $chunk)
 {
     if (!$chunk instanceof Chunk) {
         throw new ChunkException("Invalid Chunk class");
     }
     $chunk->setProvider($this);
     self::getRegionIndex($chunkX, $chunkZ, $regionX, $regionZ);
     $this->loadRegion($regionX, $regionZ);
     $chunk->setX($chunkX);
     $chunk->setZ($chunkZ);
     $this->chunks[\PHP_INT_SIZE === 8 ? ($chunkX & 0xffffffff) << 32 | $chunkZ & 0xffffffff : $chunkX . ":" . $chunkZ] = $chunk;
 }
コード例 #7
0
 public function setChunk($chunkX, $chunkZ, FullChunk $chunk)
 {
     if (!$chunk instanceof Chunk) {
         throw new ChunkException("Invalid Chunk class");
     }
     $chunk->setProvider($this);
     $chunk->setX($chunkX);
     $chunk->setZ($chunkZ);
     if (isset($this->chunks[$index = ($chunkX & 4294967295.0) << 32 | $chunkZ & 4294967295.0]) and $this->chunks[$index] !== $chunk) {
         $this->unloadChunk($chunkX, $chunkZ, \false);
     }
     $this->chunks[$index] = $chunk;
 }
コード例 #8
0
ファイル: McRegion.php プロジェクト: Hydreon/PMSoft238
 public function setChunk($chunkX, $chunkZ, FullChunk $chunk)
 {
     if (!$chunk instanceof Chunk) {
         throw new ChunkException("Invalid Chunk class");
     }
     $chunk->setProvider($this);
     self::getRegionIndex($chunkX, $chunkZ, $regionX, $regionZ);
     $this->loadRegion($regionX, $regionZ);
     $chunk->setX($chunkX);
     $chunk->setZ($chunkZ);
     if (isset($this->chunks[$index = PHP_INT_SIZE === 8 ? ($chunkX & 4294967295.0) << 32 | $chunkZ & 4294967295.0 : $chunkX . ":" . $chunkZ]) and $this->chunks[$index] !== $chunk) {
         $this->unloadChunk($chunkX, $chunkZ, false);
     }
     $this->chunks[$index] = $chunk;
 }
コード例 #9
0
ファイル: Level.php プロジェクト: hlogeon/PocketMineJs-MP
 public function generateChunkCallback($x, $z, FullChunk $chunk)
 {
     $oldChunk = $this->getChunk($x, $z, false);
     unset($this->chunkGenerationQueue[Level::chunkHash($x, $z)]);
     $chunk->setProvider($this->provider);
     $this->setChunk($x, $z, $chunk);
     $chunk = $this->getChunk($x, $z, false);
     if ($chunk !== null and ($oldChunk === null or $oldChunk->isPopulated() === false) and $chunk->isPopulated()) {
         $this->server->getPluginManager()->callEvent(new ChunkPopulateEvent($chunk));
     }
 }
コード例 #10
0
 public function setChunk($chunkX, $chunkZ, FullChunk $chunk)
 {
     if (!$chunk instanceof Chunk) {
         throw new ChunkException("Invalid Chunk class");
     }
     $chunk->setProvider($this);
     self::getRegionIndex($chunkX, $chunkZ, $regionX, $regionZ);
     $this->loadRegion($regionX, $regionZ);
     $chunk->setX($chunkX);
     $chunk->setZ($chunkZ);
     $this->chunks[($chunkX & 4294967295.0) << 32 | $chunkZ & 4294967295.0] = $chunk;
 }