mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 20:28:31 +00:00
FormatConverter: do not hardcode progress update interval
This commit is contained in:
parent
c95951479c
commit
b05fab3e3c
@ -51,11 +51,15 @@ class FormatConverter{
|
|||||||
/** @var \Logger */
|
/** @var \Logger */
|
||||||
private $logger;
|
private $logger;
|
||||||
|
|
||||||
public function __construct(WorldProvider $oldProvider, string $newProvider, string $backupPath, \Logger $logger){
|
/** @var int */
|
||||||
|
private $chunksPerProgressUpdate;
|
||||||
|
|
||||||
|
public function __construct(WorldProvider $oldProvider, string $newProvider, string $backupPath, \Logger $logger, int $chunksPerProgressUpdate = 256){
|
||||||
$this->oldProvider = $oldProvider;
|
$this->oldProvider = $oldProvider;
|
||||||
Utils::testValidInstance($newProvider, WritableWorldProvider::class);
|
Utils::testValidInstance($newProvider, WritableWorldProvider::class);
|
||||||
$this->newProvider = $newProvider;
|
$this->newProvider = $newProvider;
|
||||||
$this->logger = new \PrefixedLogger($logger, "World Converter: " . $this->oldProvider->getWorldData()->getName());
|
$this->logger = new \PrefixedLogger($logger, "World Converter: " . $this->oldProvider->getWorldData()->getName());
|
||||||
|
$this->chunksPerProgressUpdate = $chunksPerProgressUpdate;
|
||||||
|
|
||||||
if(!file_exists($backupPath)){
|
if(!file_exists($backupPath)){
|
||||||
@mkdir($backupPath, 0777, true);
|
@mkdir($backupPath, 0777, true);
|
||||||
@ -134,16 +138,15 @@ class FormatConverter{
|
|||||||
|
|
||||||
$start = microtime(true);
|
$start = microtime(true);
|
||||||
$thisRound = $start;
|
$thisRound = $start;
|
||||||
static $reportInterval = 256;
|
|
||||||
foreach($this->oldProvider->getAllChunks(true, $this->logger) as $chunk){
|
foreach($this->oldProvider->getAllChunks(true, $this->logger) as $chunk){
|
||||||
$chunk->setDirty();
|
$chunk->setDirty();
|
||||||
$new->saveChunk($chunk);
|
$new->saveChunk($chunk);
|
||||||
$counter++;
|
$counter++;
|
||||||
if(($counter % $reportInterval) === 0){
|
if(($counter % $this->chunksPerProgressUpdate) === 0){
|
||||||
$time = microtime(true);
|
$time = microtime(true);
|
||||||
$diff = $time - $thisRound;
|
$diff = $time - $thisRound;
|
||||||
$thisRound = $time;
|
$thisRound = $time;
|
||||||
$this->logger->info("Converted $counter / $count chunks (" . floor($reportInterval / $diff) . " chunks/sec)");
|
$this->logger->info("Converted $counter / $count chunks (" . floor($this->chunksPerProgressUpdate / $diff) . " chunks/sec)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$total = microtime(true) - $start;
|
$total = microtime(true) - $start;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user