diff --git a/src/pocketmine/level/generator/PopulationTask.php b/src/pocketmine/level/generator/PopulationTask.php index 29c1f96df..95019457a 100644 --- a/src/pocketmine/level/generator/PopulationTask.php +++ b/src/pocketmine/level/generator/PopulationTask.php @@ -102,48 +102,26 @@ class PopulationTask extends AsyncTask{ } foreach($chunks as $c){ - if($c !== null){ - $manager->setChunk($c->getX(), $c->getZ(), $c); - if(!$c->isGenerated()){ - $generator->generateChunk($c->getX(), $c->getZ()); - $c = $manager->getChunk($c->getX(), $c->getZ()); - $c->setGenerated(); - } + $manager->setChunk($c->getX(), $c->getZ(), $c); + if(!$c->isGenerated()){ + $generator->generateChunk($c->getX(), $c->getZ()); + $c->setGenerated(); } } $generator->populateChunk($chunk->getX(), $chunk->getZ()); - $chunk = $manager->getChunk($chunk->getX(), $chunk->getZ()); $chunk->recalculateHeightMap(); $chunk->populateSkyLight(); $chunk->setLightPopulated(); $chunk->setPopulated(); $this->chunk = $chunk->fastSerialize(); - $manager->setChunk($chunk->getX(), $chunk->getZ(), null); - foreach($chunks as $i => $c){ - if($c !== null){ - $c = $chunks[$i] = $manager->getChunk($c->getX(), $c->getZ()); - if(!$c->hasChanged()){ - $chunks[$i] = null; - } - }else{ - //This way non-changed chunks are not set - $chunks[$i] = null; - } + $this->{"chunk$i"} = $c->hasChanged() ? $c->fastSerialize() : null; } $manager->cleanChunks(); - - for($i = 0; $i < 9; ++$i){ - if($i === 4){ - continue; - } - - $this->{"chunk$i"} = $chunks[$i] !== null ? $chunks[$i]->fastSerialize() : null; - } } public function onCompletion(Server $server){