Resend blocks around targeted blocks when interactions & block-break are cancelled, fixes #906

this solution is dumber but more effective (also solves the beds & doors placement problem)
This commit is contained in:
Dylan K. Taylor
2017-10-03 19:28:01 +01:00
parent 04ba41c58c
commit fc9c264e77
2 changed files with 46 additions and 8 deletions

View File

@ -445,6 +445,35 @@ class Block extends Position implements BlockIds, Metadatable{
return BlockFactory::get(Block::AIR, 0, Position::fromObject(Vector3::getSide($side, $step)));
}
/**
* Returns the 4 blocks on the horizontal axes around the block (north, south, east, west)
*
* @return Block[]
*/
public function getHorizontalSides() : array{
return [
$this->getSide(Vector3::SIDE_NORTH),
$this->getSide(Vector3::SIDE_SOUTH),
$this->getSide(Vector3::SIDE_WEST),
$this->getSide(Vector3::SIDE_EAST)
];
}
/**
* Returns the six blocks around this block.
*
* @return Block[]
*/
public function getAllSides() : array{
return array_merge(
[
$this->getSide(Vector3::SIDE_DOWN),
$this->getSide(Vector3::SIDE_UP)
],
$this->getHorizontalSides()
);
}
/**
* @return string
*/