mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-28 06:09:57 +00:00
Leaves: Replace a big mess of code with something nice and simple (#2432)
This commit is contained in:
parent
c0962a47be
commit
fee42e9f34
@ -81,50 +81,15 @@ class Leaves extends Transparent{
|
|||||||
if($down === $this->woodType){
|
if($down === $this->woodType){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if($fromSide === null){
|
|
||||||
for($side = 2; $side <= 5; ++$side){
|
foreach([
|
||||||
if($this->findLog($pos->getSide($side), $visited, $distance + 1, $side)){
|
Facing::NORTH,
|
||||||
return true;
|
Facing::SOUTH,
|
||||||
}
|
Facing::WEST,
|
||||||
}
|
Facing::EAST
|
||||||
}else{ //No more loops
|
] as $side){
|
||||||
switch($fromSide){
|
if($side !== $fromSide and $this->findLog($pos->getSide($side), $visited, $distance + 1, Facing::opposite($side))){
|
||||||
case 2:
|
return true;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user