From 93b8a6c44a8a38d26cd48d98c3ceb83644dfbfa2 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 19 Oct 2018 18:52:42 +0100 Subject: [PATCH] Level: fix light removal bugs caused by 48a5eeb3a459cb90b302990d3f243a34b0bb7da0 and 19e68f98a707536866c33bb1e9fad9f7c280447d BlockFactory::\$lightFilter and Block->getLightFilter() are not equivalent. --- src/pocketmine/level/Level.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index d5ffaf30e..537b1caf1 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -1418,7 +1418,7 @@ class Level implements ChunkManager, Metadatable{ $this->skyLightUpdate->setAndUpdateLight($x, $i, $z, 15); } }else{ //No heightmap change, block changed "underground" - $this->skyLightUpdate->setAndUpdateLight($x, $y, $z, max(0, $this->getHighestAdjacentBlockSkyLight($x, $y, $z) - $source->getLightFilter())); + $this->skyLightUpdate->setAndUpdateLight($x, $y, $z, max(0, $this->getHighestAdjacentBlockSkyLight($x, $y, $z) - BlockFactory::$lightFilter[($source->getId() << 4) | $source->getDamage()])); } $this->timings->doBlockSkyLightUpdates->stopTiming(); @@ -1448,7 +1448,7 @@ class Level implements ChunkManager, Metadatable{ $this->timings->doBlockLightUpdates->startTiming(); $block = $this->getBlockAt($x, $y, $z); - $newLevel = max($block->getLightLevel(), $this->getHighestAdjacentBlockLight($x, $y, $z) - $block->getLightFilter()); + $newLevel = max($block->getLightLevel(), $this->getHighestAdjacentBlockLight($x, $y, $z) - BlockFactory::$lightFilter[($block->getId() << 4) | $block->getDamage()]); if($this->blockLightUpdate === null){ $this->blockLightUpdate = new BlockLightUpdate($this);