mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-10-17 04:06:54 +00:00
Yay generation uses async tasks
This commit is contained in:
@@ -91,7 +91,6 @@ use pocketmine\plugin\Plugin;
|
||||
use pocketmine\plugin\PluginLoadOrder;
|
||||
use pocketmine\plugin\PluginManager;
|
||||
use pocketmine\scheduler\CallbackTask;
|
||||
use pocketmine\scheduler\GarbageCollectionTask;
|
||||
use pocketmine\scheduler\SendUsageTask;
|
||||
use pocketmine\scheduler\ServerScheduler;
|
||||
use pocketmine\tile\Chest;
|
||||
@@ -100,7 +99,6 @@ use pocketmine\tile\Sign;
|
||||
use pocketmine\tile\Tile;
|
||||
use pocketmine\updater\AutoUpdater;
|
||||
use pocketmine\utils\Binary;
|
||||
use pocketmine\utils\Cache;
|
||||
use pocketmine\utils\Config;
|
||||
use pocketmine\utils\LevelException;
|
||||
use pocketmine\utils\MainLogger;
|
||||
@@ -147,9 +145,6 @@ class Server{
|
||||
/** @var ServerScheduler */
|
||||
private $scheduler = null;
|
||||
|
||||
/** @var GenerationRequestManager */
|
||||
private $generationManager = null;
|
||||
|
||||
/**
|
||||
* Counts the ticks since the server start
|
||||
*
|
||||
@@ -569,13 +564,6 @@ class Server{
|
||||
return $this->scheduler;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return GenerationRequestManager
|
||||
*/
|
||||
public function getGenerationManager(){
|
||||
return $this->generationManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
@@ -1192,7 +1180,7 @@ class Server{
|
||||
|
||||
foreach($order as $index => $distance){
|
||||
Level::getXZ($index, $chunkX, $chunkZ);
|
||||
$level->generateChunk($chunkX, $chunkZ);
|
||||
$level->generateChunk($chunkX, $chunkZ, true);
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -1624,12 +1612,6 @@ class Server{
|
||||
|
||||
$this->enablePlugins(PluginLoadOrder::STARTUP);
|
||||
|
||||
if($this->getProperty("chunk-generation.use-async", true)){
|
||||
$this->generationManager = new GenerationRequestManager($this);
|
||||
}else{
|
||||
$this->generationManager = new GenerationInstanceManager($this);
|
||||
}
|
||||
|
||||
LevelProviderManager::addProvider($this, Anvil::class);
|
||||
LevelProviderManager::addProvider($this, McRegion::class);
|
||||
if(extension_loaded("leveldb")){
|
||||
@@ -1692,8 +1674,6 @@ class Server{
|
||||
$this->scheduler->scheduleDelayedRepeatingTask(new CallbackTask([$this, "doLevelGC"]), $this->getProperty("chunk-gc.period-in-ticks", 600), $this->getProperty("chunk-gc.period-in-ticks", 600));
|
||||
}
|
||||
|
||||
$this->scheduler->scheduleRepeatingTask(new GarbageCollectionTask(), 900);
|
||||
|
||||
$this->enablePlugins(PluginLoadOrder::POSTWORLD);
|
||||
|
||||
$this->start();
|
||||
@@ -1967,10 +1947,6 @@ class Server{
|
||||
$this->unloadLevel($level, true);
|
||||
}
|
||||
|
||||
if($this->generationManager instanceof GenerationRequestManager){
|
||||
$this->generationManager->shutdown();
|
||||
}
|
||||
|
||||
HandlerList::unregisterAll();
|
||||
|
||||
$this->scheduler->cancelAllTasks();
|
||||
@@ -2368,16 +2344,6 @@ class Server{
|
||||
}
|
||||
}
|
||||
|
||||
Timings::$generationTimer->startTiming();
|
||||
try{
|
||||
$this->generationManager->process();
|
||||
}catch(\Exception $e){
|
||||
if($this->logger instanceof MainLogger){
|
||||
$this->logger->logException($e);
|
||||
}
|
||||
}
|
||||
Timings::$generationTimer->stopTiming();
|
||||
|
||||
if(($this->tickCounter % 100) === 0){
|
||||
foreach($this->levels as $level){
|
||||
$level->clearCache();
|
||||
|
Reference in New Issue
Block a user