mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-10 20:08:01 +00:00
Fixed burning animations for fireproof entities
creative players are not technically fireproof; they just don't take any damage from fire
This commit is contained in:
parent
8414c78969
commit
763241b11f
@ -691,8 +691,10 @@ abstract class Entity{
|
|||||||
if($fireTicks < 0 || $fireTicks > 0x7fff){
|
if($fireTicks < 0 || $fireTicks > 0x7fff){
|
||||||
throw new \InvalidArgumentException("Fire ticks must be in range 0 ... " . 0x7fff . ", got $fireTicks");
|
throw new \InvalidArgumentException("Fire ticks must be in range 0 ... " . 0x7fff . ", got $fireTicks");
|
||||||
}
|
}
|
||||||
$this->fireTicks = $fireTicks;
|
if(!$this->isFireProof()){
|
||||||
$this->networkPropertiesDirty = true;
|
$this->fireTicks = $fireTicks;
|
||||||
|
$this->networkPropertiesDirty = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function extinguish() : void{
|
public function extinguish() : void{
|
||||||
@ -705,12 +707,13 @@ abstract class Entity{
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function doOnFireTick(int $tickDiff = 1) : bool{
|
protected function doOnFireTick(int $tickDiff = 1) : bool{
|
||||||
if($this->isFireProof() && $this->fireTicks > 1){
|
if($this->isFireProof() && $this->isOnFire()){
|
||||||
$this->fireTicks = 1;
|
$this->extinguish();
|
||||||
}else{
|
return false;
|
||||||
$this->fireTicks -= $tickDiff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->fireTicks -= $tickDiff;
|
||||||
|
|
||||||
if(($this->fireTicks % 20 === 0) || $tickDiff > 20){
|
if(($this->fireTicks % 20 === 0) || $tickDiff > 20){
|
||||||
$this->dealFireDamage();
|
$this->dealFireDamage();
|
||||||
}
|
}
|
||||||
|
@ -1195,10 +1195,6 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
|
|||||||
return !$this->gamemode->equals(GameMode::CREATIVE());
|
return !$this->gamemode->equals(GameMode::CREATIVE());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isFireProof() : bool{
|
|
||||||
return $this->isCreative();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getDrops() : array{
|
public function getDrops() : array{
|
||||||
if($this->hasFiniteResources()){
|
if($this->hasFiniteResources()){
|
||||||
return parent::getDrops();
|
return parent::getDrops();
|
||||||
@ -1436,6 +1432,10 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
|
|||||||
$this->entityBaseTick($tickDiff);
|
$this->entityBaseTick($tickDiff);
|
||||||
Timings::$entityBaseTick->stopTiming();
|
Timings::$entityBaseTick->stopTiming();
|
||||||
|
|
||||||
|
if($this->isCreative() && $this->fireTicks > 1){
|
||||||
|
$this->fireTicks = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if(!$this->isSpectator() && $this->isAlive()){
|
if(!$this->isSpectator() && $this->isAlive()){
|
||||||
Timings::$playerCheckNearEntities->startTiming();
|
Timings::$playerCheckNearEntities->startTiming();
|
||||||
$this->checkNearEntities();
|
$this->checkNearEntities();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user