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)); } }
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(); }
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; }
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); } }
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; }
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; }
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; }
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; }
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)); } }
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; }