From 7ee21f6254d569b9ff625ff8feb02b4d977e0d78 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Wed, 15 Apr 2015 22:14:51 +0200 Subject: [PATCH] Try to clean chunks on other threads --- src/pocketmine/level/SimpleChunkManager.php | 4 ++++ src/pocketmine/level/generator/PopulationTask.php | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pocketmine/level/SimpleChunkManager.php b/src/pocketmine/level/SimpleChunkManager.php index 7375bd7a6..bd480e9dd 100644 --- a/src/pocketmine/level/SimpleChunkManager.php +++ b/src/pocketmine/level/SimpleChunkManager.php @@ -117,6 +117,10 @@ class SimpleChunkManager implements ChunkManager{ $this->chunks[Level::chunkHash($chunkX, $chunkZ)] = $chunk; } + public function cleanChunks(){ + $this->chunks = []; + } + /** * Gets the level seed * diff --git a/src/pocketmine/level/generator/PopulationTask.php b/src/pocketmine/level/generator/PopulationTask.php index 5743b02b6..ecd8708cb 100644 --- a/src/pocketmine/level/generator/PopulationTask.php +++ b/src/pocketmine/level/generator/PopulationTask.php @@ -127,13 +127,14 @@ class PopulationTask extends AsyncTask{ if(!$c->hasChanged()){ $chunks[$i] = null; } - $manager->setChunk($c->getX(), $c->getZ(), null); }else{ //This way non-changed chunks are not set $chunks[$i] = null; } } + $manager->cleanChunks(); + $this->chunk00 = $chunks[0] !== null ? $chunks[0]->toFastBinary() : null; $this->chunk01 = $chunks[1] !== null ? $chunks[1]->toFastBinary() : null; $this->chunk02 = $chunks[2] !== null ? $chunks[2]->toFastBinary() : null;