Merge branch 'stable'

This commit is contained in:
Dylan K. Taylor 2019-04-18 19:40:22 +01:00
commit f933ce31dd
2 changed files with 21 additions and 5 deletions

View File

@ -1073,11 +1073,16 @@ class Level implements ChunkManager, Metadatable{
}
public function saveChunks(){
foreach($this->chunks as $chunk){
if(($chunk->hasChanged() or count($chunk->getTiles()) > 0 or count($chunk->getSavableEntities()) > 0) and $chunk->isGenerated()){
$this->provider->saveChunk($chunk);
$chunk->setChanged(false);
$this->timings->syncChunkSaveTimer->startTiming();
try{
foreach($this->chunks as $chunk){
if(($chunk->hasChanged() or count($chunk->getTiles()) > 0 or count($chunk->getSavableEntities()) > 0) and $chunk->isGenerated()){
$this->provider->saveChunk($chunk);
$chunk->setChanged(false);
}
}
}finally{
$this->timings->syncChunkSaveTimer->stopTiming();
}
}
@ -2639,7 +2644,12 @@ class Level implements ChunkManager, Metadatable{
if($trySave and $this->getAutoSave() and $chunk->isGenerated()){
if($chunk->hasChanged() or count($chunk->getTiles()) > 0 or count($chunk->getSavableEntities()) > 0){
$this->provider->saveChunk($chunk);
$this->timings->syncChunkSaveTimer->startTiming();
try{
$this->provider->saveChunk($chunk);
}finally{
$this->timings->syncChunkSaveTimer->stopTiming();
}
}
}

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\level;
use pocketmine\timings\Timings;
use pocketmine\timings\TimingsHandler;
class LevelTimings{
@ -62,6 +63,8 @@ class LevelTimings{
public $syncChunkLoadEntitiesTimer;
/** @var TimingsHandler */
public $syncChunkLoadTileEntitiesTimer;
/** @var TimingsHandler */
public $syncChunkSaveTimer;
public function __construct(Level $level){
$name = $level->getFolderName() . " - ";
@ -85,6 +88,9 @@ class LevelTimings{
$this->syncChunkLoadEntitiesTimer = new TimingsHandler("** " . $name . "syncChunkLoad - Entities");
$this->syncChunkLoadTileEntitiesTimer = new TimingsHandler("** " . $name . "syncChunkLoad - TileEntities");
Timings::init(); //make sure the timer we want is available
$this->syncChunkSaveTimer = new TimingsHandler("** " . $name . "syncChunkSave", Timings::$worldSaveTimer);
$this->doTick = new TimingsHandler($name . "doTick");
}
}