From 3f7b14bf5977b71f761ca60f026724b6ae653a2e Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 11 Mar 2018 13:56:41 +0000 Subject: [PATCH] Level: Remove dead generator leftovers This is all handled by the population mechanism now. Nothing uses these things anymore since years. --- src/pocketmine/level/Level.php | 32 +------ .../level/generator/GenerationTask.php | 88 ------------------- src/pocketmine/resources/pocketmine.yml | 2 - 3 files changed, 1 insertion(+), 121 deletions(-) delete mode 100644 src/pocketmine/level/generator/GenerationTask.php diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 592f9612e..8f9eff4a4 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -51,7 +51,6 @@ use pocketmine\level\format\EmptySubChunk; use pocketmine\level\format\io\BaseLevelProvider; use pocketmine\level\format\io\ChunkRequestTask; use pocketmine\level\format\io\LevelProvider; -use pocketmine\level\generator\GenerationTask; use pocketmine\level\generator\Generator; use pocketmine\level\generator\GeneratorRegisterTask; use pocketmine\level\generator\GeneratorUnregisterTask; @@ -206,10 +205,6 @@ class Level implements ChunkManager, Metadatable{ private $chunkPopulationQueue = []; /** @var bool[] */ private $chunkPopulationLock = []; - /** @var bool[] */ - private $chunkGenerationQueue = []; - /** @var int */ - private $chunkGenerationQueueSize = 8; /** @var int */ private $chunkPopulationQueueSize = 2; @@ -368,7 +363,6 @@ class Level implements ChunkManager, Metadatable{ $this->chunkTickRadius = min($this->server->getViewDistance(), max(1, (int) $this->server->getProperty("chunk-ticking.tick-radius", 4))); $this->chunksPerTick = (int) $this->server->getProperty("chunk-ticking.per-tick", 40); - $this->chunkGenerationQueueSize = (int) $this->server->getProperty("chunk-generation.queue-size", 8); $this->chunkPopulationQueueSize = (int) $this->server->getProperty("chunk-generation.population-queue-size", 2); $this->clearChunksOnTick = (bool) $this->server->getProperty("chunk-ticking.clear-tick-list", true); @@ -2400,8 +2394,7 @@ class Level implements ChunkManager, Metadatable{ $loader->onChunkPopulated($chunk); } } - }elseif(isset($this->chunkGenerationQueue[$index]) or isset($this->chunkPopulationLock[$index])){ - unset($this->chunkGenerationQueue[$index]); + }elseif(isset($this->chunkPopulationLock[$index])){ unset($this->chunkPopulationLock[$index]); $this->setChunk($x, $z, $chunk, false); }else{ @@ -3030,29 +3023,6 @@ class Level implements ChunkManager, Metadatable{ return true; } - public function generateChunk(int $x, int $z, bool $force = false){ - if(count($this->chunkGenerationQueue) >= $this->chunkGenerationQueueSize and !$force){ - return; - } - - if(!isset($this->chunkGenerationQueue[$index = Level::chunkHash($x, $z)])){ - Timings::$generationTimer->startTiming(); - $this->chunkGenerationQueue[$index] = true; - $task = new GenerationTask($this, $this->getChunk($x, $z, true)); - $this->server->getScheduler()->scheduleAsyncTask($task); - Timings::$generationTimer->stopTiming(); - } - } - - public function regenerateChunk(int $x, int $z){ - $this->unloadChunk($x, $z, false); - - $this->cancelUnloadChunkRequest($x, $z); - - $this->generateChunk($x, $z); - //TODO: generate & refresh chunk from the generator object - } - public function doChunkGarbageCollection(){ $this->timings->doChunkGC->startTiming(); diff --git a/src/pocketmine/level/generator/GenerationTask.php b/src/pocketmine/level/generator/GenerationTask.php deleted file mode 100644 index 8909fadf8..000000000 --- a/src/pocketmine/level/generator/GenerationTask.php +++ /dev/null @@ -1,88 +0,0 @@ -state = true; - $this->levelId = $level->getId(); - $this->chunk = $chunk->fastSerialize(); - } - - public function onRun(){ - /** @var SimpleChunkManager $manager */ - $manager = $this->getFromThreadStore("generation.level{$this->levelId}.manager"); - /** @var Generator $generator */ - $generator = $this->getFromThreadStore("generation.level{$this->levelId}.generator"); - if($manager === null or $generator === null){ - $this->state = false; - return; - } - - /** @var Chunk $chunk */ - $chunk = Chunk::fastDeserialize($this->chunk); - if($chunk === null){ - //TODO error - return; - } - - $manager->setChunk($chunk->getX(), $chunk->getZ(), $chunk); - - $generator->generateChunk($chunk->getX(), $chunk->getZ()); - - $chunk = $manager->getChunk($chunk->getX(), $chunk->getZ()); - $chunk->setGenerated(); - $this->chunk = $chunk->fastSerialize(); - - $manager->setChunk($chunk->getX(), $chunk->getZ(), null); - } - - public function onCompletion(Server $server){ - $level = $server->getLevel($this->levelId); - if($level !== null){ - if($this->state === false){ - $level->registerGenerator(); - return; - } - /** @var Chunk $chunk */ - $chunk = Chunk::fastDeserialize($this->chunk); - if($chunk === null){ - //TODO error - return; - } - $level->generateChunkCallback($chunk->getX(), $chunk->getZ(), $chunk); - } - } -} diff --git a/src/pocketmine/resources/pocketmine.yml b/src/pocketmine/resources/pocketmine.yml index 31f42004b..99cd38bd1 100644 --- a/src/pocketmine/resources/pocketmine.yml +++ b/src/pocketmine/resources/pocketmine.yml @@ -142,8 +142,6 @@ chunk-ticking: #- 2 # grass chunk-generation: - #Max. amount of chunks in the waiting queue to be generated - queue-size: 8 #Max. amount of chunks in the waiting queue to be populated population-queue-size: 8