Level: Stop unnecessarily initializing the generator on the main thread

this is just slowing down startup times for no good reason.
This commit is contained in:
Dylan K. Taylor
2018-05-31 10:22:44 +01:00
parent 7fce48d38c
commit c493d0e6ac
5 changed files with 13 additions and 19 deletions

View File

@ -239,10 +239,8 @@ class Level implements ChunkManager, Metadatable{
/** @var int */
public $tickRateCounter = 0;
/** @var Generator */
/** @var string|Generator */
private $generator;
/** @var Generator */
private $generatorInstance;
/** @var bool */
private $closed = false;
@ -379,17 +377,13 @@ class Level implements ChunkManager, Metadatable{
}
public function initLevel(){
$generator = $this->generator;
$this->generatorInstance = new $generator($this->provider->getGeneratorOptions());
$this->generatorInstance->init($this, new Random($this->getSeed()));
$this->registerGenerator();
}
public function registerGenerator(){
$size = $this->server->getScheduler()->getAsyncTaskPoolSize();
for($i = 0; $i < $size; ++$i){
$this->server->getScheduler()->scheduleAsyncTaskToWorker(new GeneratorRegisterTask($this, $this->generatorInstance), $i);
$this->server->getScheduler()->scheduleAsyncTaskToWorker(new GeneratorRegisterTask($this, $this->generator, $this->provider->getGeneratorOptions()), $i);
}
}