From fee42e9f34d4007721048d0d270500e68c9e7568 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 13 Sep 2018 16:36:10 +0100 Subject: [PATCH] Leaves: Replace a big mess of code with something nice and simple (#2432) --- src/pocketmine/block/Leaves.php | 53 ++++++--------------------------- 1 file changed, 9 insertions(+), 44 deletions(-) diff --git a/src/pocketmine/block/Leaves.php b/src/pocketmine/block/Leaves.php index 7eea23052..b7c1fa9e8 100644 --- a/src/pocketmine/block/Leaves.php +++ b/src/pocketmine/block/Leaves.php @@ -81,50 +81,15 @@ class Leaves extends Transparent{ if($down === $this->woodType){ return true; } - if($fromSide === null){ - for($side = 2; $side <= 5; ++$side){ - if($this->findLog($pos->getSide($side), $visited, $distance + 1, $side)){ - return true; - } - } - }else{ //No more loops - switch($fromSide){ - case 2: - if($this->findLog($pos->getSide(Facing::NORTH), $visited, $distance + 1, $fromSide)){ - return true; - }elseif($this->findLog($pos->getSide(Facing::WEST), $visited, $distance + 1, $fromSide)){ - return true; - }elseif($this->findLog($pos->getSide(Facing::EAST), $visited, $distance + 1, $fromSide)){ - return true; - } - break; - case 3: - if($this->findLog($pos->getSide(Facing::SOUTH), $visited, $distance + 1, $fromSide)){ - return true; - }elseif($this->findLog($pos->getSide(Facing::WEST), $visited, $distance + 1, $fromSide)){ - return true; - }elseif($this->findLog($pos->getSide(Facing::EAST), $visited, $distance + 1, $fromSide)){ - return true; - } - break; - case 4: - if($this->findLog($pos->getSide(Facing::NORTH), $visited, $distance + 1, $fromSide)){ - return true; - }elseif($this->findLog($pos->getSide(Facing::SOUTH), $visited, $distance + 1, $fromSide)){ - return true; - }elseif($this->findLog($pos->getSide(Facing::WEST), $visited, $distance + 1, $fromSide)){ - return true; - } - break; - case 5: - if($this->findLog($pos->getSide(Facing::NORTH), $visited, $distance + 1, $fromSide)){ - return true; - }elseif($this->findLog($pos->getSide(Facing::SOUTH), $visited, $distance + 1, $fromSide)){ - return true; - }elseif($this->findLog($pos->getSide(Facing::EAST), $visited, $distance + 1, $fromSide)){ - return true; - } - break; + + foreach([ + Facing::NORTH, + Facing::SOUTH, + Facing::WEST, + Facing::EAST + ] as $side){ + if($side !== $fromSide and $this->findLog($pos->getSide($side), $visited, $distance + 1, Facing::opposite($side))){ + return true; } } }