Faster chunk setting on provider

This commit is contained in:
Shoghi Cervantes 2014-12-12 15:51:31 +01:00
parent c81bbdaaa9
commit 71d602a4cf
2 changed files with 3 additions and 4 deletions

View File

@ -1756,8 +1756,7 @@ class Level implements ChunkManager, Metadatable{
$oldChunk = $this->getChunk($x, $z, false); $oldChunk = $this->getChunk($x, $z, false);
unset($this->chunkGenerationQueue[Level::chunkHash($x, $z)]); unset($this->chunkGenerationQueue[Level::chunkHash($x, $z)]);
$this->setChunk($x, $z, $chunk); $this->setChunk($x, $z, $chunk);
$chunk = $this->getChunk($x, $z, false); if($chunk !== null and ($oldChunk === null or $oldChunk->isPopulated() === false) and $chunk->isPopulated()){
if($chunk !== null and (!($oldChunk !== null) or $oldChunk->isPopulated() === false) and $chunk->isPopulated()){
$this->server->getPluginManager()->callEvent(new ChunkPopulateEvent($chunk)); $this->server->getPluginManager()->callEvent(new ChunkPopulateEvent($chunk));
} }
} }

View File

@ -251,11 +251,11 @@ class McRegion extends BaseLevelProvider{
$chunk->setZ($chunkZ); $chunk->setZ($chunkZ);
if($this->getChunk($chunkX, $chunkZ, false) !== $chunk){ if(isset($this->chunks[$index = Level::chunkHash($chunkX, $chunkZ)]) and $this->chunks[$index] !== $chunk){
$this->unloadChunk($chunkX, $chunkZ, false); $this->unloadChunk($chunkX, $chunkZ, false);
} }
$this->chunks[Level::chunkHash($chunkX, $chunkZ)] = $chunk; $this->chunks[$index] = $chunk;
} }
public static function createChunkSection($Y){ public static function createChunkSection($Y){