From 8e47c93fbcefc39b03aeea47cb1a8309fa8297db Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Tue, 16 Dec 2014 02:57:44 +0100 Subject: [PATCH] Fixed some issues with chunks being generated on a loop --- src/pocketmine/level/Level.php | 4 ++-- src/pocketmine/level/generator/GenerationChunkManager.php | 2 +- src/pocketmine/level/generator/GenerationLevelManager.php | 3 ++- src/pocketmine/level/generator/GenerationManager.php | 3 ++- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 33734c7af..8b29fc824 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -2220,8 +2220,8 @@ class Level implements ChunkManager, Metadatable{ public function generateChunk($x, $z){ - if(!isset($this->chunkGenerationQueue[Level::chunkHash($x, $z)])){ - $this->chunkGenerationQueue[Level::chunkHash($x, $z)] = true; + if(!isset($this->chunkGenerationQueue[$index = Level::chunkHash($x, $z)])){ + $this->chunkGenerationQueue[$index] = true; $this->server->getGenerationManager()->requestChunk($this, $x, $z); } } diff --git a/src/pocketmine/level/generator/GenerationChunkManager.php b/src/pocketmine/level/generator/GenerationChunkManager.php index 37347b70f..40bf3a3ab 100644 --- a/src/pocketmine/level/generator/GenerationChunkManager.php +++ b/src/pocketmine/level/generator/GenerationChunkManager.php @@ -179,7 +179,7 @@ class GenerationChunkManager implements ChunkManager{ protected function requestChunk($chunkX, $chunkZ){ $chunk = $this->manager->requestChunk($this->levelID, $chunkX, $chunkZ); - $this->chunks[$index = Level::chunkHash($chunkX, $chunkZ)] = $chunk; + $this->chunks[Level::chunkHash($chunkX, $chunkZ)] = $chunk; return $chunk; } diff --git a/src/pocketmine/level/generator/GenerationLevelManager.php b/src/pocketmine/level/generator/GenerationLevelManager.php index 0ab3e706d..bdb5f6271 100644 --- a/src/pocketmine/level/generator/GenerationLevelManager.php +++ b/src/pocketmine/level/generator/GenerationLevelManager.php @@ -83,7 +83,8 @@ class GenerationLevelManager extends GenerationManager{ if(count($chunks) === 0){ unset($this->requestQueue[$levelID]); }else{ - Level::getXZ($key = key($chunks), $chunkX, $chunkZ); + $key = key($chunks); + Level::getXZ($key, $chunkX, $chunkZ); unset($this->requestQueue[$levelID][$key]); $this->generateChunk($levelID, $chunkX, $chunkZ); ++$count; diff --git a/src/pocketmine/level/generator/GenerationManager.php b/src/pocketmine/level/generator/GenerationManager.php index a27bc00d1..692152959 100644 --- a/src/pocketmine/level/generator/GenerationManager.php +++ b/src/pocketmine/level/generator/GenerationManager.php @@ -126,7 +126,8 @@ class GenerationManager{ if(count($chunks) === 0){ unset($this->requestQueue[$levelID]); }else{ - Level::getXZ($key = key($chunks), $chunkX, $chunkZ); + $key = key($chunks); + Level::getXZ($key, $chunkX, $chunkZ); unset($this->requestQueue[$levelID][$key]); $this->generateChunk($levelID, $chunkX, $chunkZ); }