Merge branch 'release/3.3' of https://github.com/pmmp/pocketmine-mp into release/3.3

This commit is contained in:
Dylan K. Taylor 2018-09-23 16:43:36 +01:00
commit e597067a92

View File

@ -241,6 +241,9 @@ class Level implements ChunkManager, Metadatable{
/** @var int */
public $tickRateCounter = 0;
/** @var bool */
private $doingTick = false;
/** @var string|Generator */
private $generator;
@ -528,8 +531,12 @@ class Level implements ChunkManager, Metadatable{
* @param bool $force default false, force unload of default level
*
* @return bool
* @throws \InvalidStateException if trying to unload a level during level tick
*/
public function unload(bool $force = false) : bool{
if($this->doingTick and !$force){
throw new \InvalidStateException("Cannot unload a level during level tick");
}
$ev = new LevelUnloadEvent($this);
@ -697,7 +704,16 @@ class Level implements ChunkManager, Metadatable{
}
$this->timings->doTick->startTiming();
$this->doingTick = true;
try{
$this->actuallyDoTick($currentTick);
}finally{
$this->doingTick = false;
$this->timings->doTick->stopTiming();
}
}
protected function actuallyDoTick(int $currentTick) : void{
$this->checkTime();
$this->sunAnglePercentage = $this->computeSunAnglePercentage(); //Sun angle depends on the current time
@ -818,8 +834,6 @@ class Level implements ChunkManager, Metadatable{
}
$this->chunkPackets = [];
$this->timings->doTick->stopTiming();
}
public function checkSleep(){