Make a trait for blocks which share the same horizontal facing metadata logic

This commit is contained in:
Dylan K. Taylor
2021-04-27 20:58:56 +01:00
parent 11263909ab
commit f204d6b3dd
8 changed files with 57 additions and 102 deletions

View File

@ -24,8 +24,7 @@ declare(strict_types=1);
namespace pocketmine\block;
use pocketmine\block\tile\Chest as TileChest;
use pocketmine\block\utils\BlockDataSerializer;
use pocketmine\block\utils\HorizontalFacingTrait;
use pocketmine\block\utils\NormalHorizontalFacingInMetadataTrait;
use pocketmine\item\Item;
use pocketmine\math\AxisAlignedBB;
use pocketmine\math\Facing;
@ -34,24 +33,12 @@ use pocketmine\player\Player;
use pocketmine\world\BlockTransaction;
class Chest extends Transparent{
use HorizontalFacingTrait;
use NormalHorizontalFacingInMetadataTrait;
public function __construct(BlockIdentifier $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){
parent::__construct($idInfo, $name, $breakInfo ?? new BlockBreakInfo(2.5, BlockToolType::AXE));
}
protected function writeStateToMeta() : int{
return BlockDataSerializer::writeHorizontalFacing($this->facing);
}
public function readStateFromData(int $id, int $stateMeta) : void{
$this->facing = BlockDataSerializer::readHorizontalFacing($stateMeta);
}
public function getStateBitmask() : int{
return 0b111;
}
/**
* @return AxisAlignedBB[]
*/