LevelManager::generateLevel(): avoid multiple return points

this could cause unexpected results if additional code is added after background generation in the future.
This commit is contained in:
Dylan K. Taylor 2019-04-26 18:05:34 +01:00
parent 7c7f42eba6
commit 854c3a816c

View File

@ -292,33 +292,31 @@ class LevelManager{
(new LevelLoadEvent($level))->call(); (new LevelLoadEvent($level))->call();
if(!$backgroundGeneration){ if($backgroundGeneration){
return true; $this->server->getLogger()->notice($this->server->getLanguage()->translateString("pocketmine.level.backgroundGeneration", [$name]));
}
$this->server->getLogger()->notice($this->server->getLanguage()->translateString("pocketmine.level.backgroundGeneration", [$name])); $spawnLocation = $level->getSpawnLocation();
$centerX = $spawnLocation->getFloorX() >> 4;
$centerZ = $spawnLocation->getFloorZ() >> 4;
$spawnLocation = $level->getSpawnLocation(); $order = [];
$centerX = $spawnLocation->getFloorX() >> 4;
$centerZ = $spawnLocation->getFloorZ() >> 4;
$order = []; for($X = -3; $X <= 3; ++$X){
for($Z = -3; $Z <= 3; ++$Z){
for($X = -3; $X <= 3; ++$X){ $distance = $X ** 2 + $Z ** 2;
for($Z = -3; $Z <= 3; ++$Z){ $chunkX = $X + $centerX;
$distance = $X ** 2 + $Z ** 2; $chunkZ = $Z + $centerZ;
$chunkX = $X + $centerX; $index = Level::chunkHash($chunkX, $chunkZ);
$chunkZ = $Z + $centerZ; $order[$index] = $distance;
$index = Level::chunkHash($chunkX, $chunkZ); }
$order[$index] = $distance;
} }
}
asort($order); asort($order);
foreach($order as $index => $distance){ foreach($order as $index => $distance){
Level::getXZ($index, $chunkX, $chunkZ); Level::getXZ($index, $chunkX, $chunkZ);
$level->populateChunk($chunkX, $chunkZ, true); $level->populateChunk($chunkX, $chunkZ, true);
}
} }
return true; return true;