diff --git a/src/pocketmine/block/Water.php b/src/pocketmine/block/Water.php index e80d1e3a4..4ca589815 100644 --- a/src/pocketmine/block/Water.php +++ b/src/pocketmine/block/Water.php @@ -33,7 +33,9 @@ class Water extends Liquid{ public function onEntityCollide(Entity $entity){ $entity->fallDistance = 0; - $entity->extinguish(); + if($entity->fireTicks > 0){ + $entity->extinguish(); + } } public function place(Item $item, Block $block, Block $target, $face, $fx, $fy, $fz, Player $player = null){ diff --git a/src/pocketmine/entity/Living.php b/src/pocketmine/entity/Living.php index d98f00653..d3b4f7fdc 100644 --- a/src/pocketmine/entity/Living.php +++ b/src/pocketmine/entity/Living.php @@ -151,8 +151,6 @@ abstract class Living extends Entity implements Damageable{ $this->attack($ev->getFinalDamage(), $ev); } } - - $this->extinguish(); }else{ $this->airTicks = 300; } diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 5a11821f2..d820b4d2a 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -500,7 +500,7 @@ class Level implements ChunkManager, Metadatable{ $this->tickChunks(); $this->timings->doTickTiles->stopTiming(); - if(($currentTick % 20) === 0){ + if(($currentTick % 200) === 0){ $this->blockCache = []; } @@ -1409,6 +1409,7 @@ class Level implements ChunkManager, Metadatable{ * @param int $id 0-255 */ public function setBlockIdAt($x, $y, $z, $id){ + unset($this->blockCache["$x:$y:$z"]); $this->getChunk($x >> 4, $z >> 4, true)->setBlockId($x & 0x0f, $y & 0x7f, $z & 0x0f, $id & 0xff); } @@ -1434,6 +1435,7 @@ class Level implements ChunkManager, Metadatable{ * @param int $data 0-15 */ public function setBlockDataAt($x, $y, $z, $data){ + unset($this->blockCache["$x:$y:$z"]); $this->getChunk($x >> 4, $z >> 4, true)->setBlockData($x & 0x0f, $y & 0x7f, $z & 0x0f, $data & 0x0f); }