diff --git a/src/block/Door.php b/src/block/Door.php index ee0bc63bb..312c404a0 100644 --- a/src/block/Door.php +++ b/src/block/Door.php @@ -25,6 +25,7 @@ namespace pocketmine\block; use pocketmine\block\utils\BlockDataSerializer; use pocketmine\block\utils\HorizontalFacingTrait; +use pocketmine\block\utils\PoweredByRedstoneTrait; use pocketmine\item\Item; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Facing; @@ -35,6 +36,7 @@ use pocketmine\world\sound\DoorSound; class Door extends Transparent{ use HorizontalFacingTrait; + use PoweredByRedstoneTrait; /** @var bool */ protected $top = false; @@ -43,8 +45,6 @@ class Door extends Transparent{ /** @var bool */ protected $open = false; - /** @var bool */ - protected $powered = false; protected function writeStateToMeta() : int{ if($this->top){ diff --git a/src/block/Hopper.php b/src/block/Hopper.php index be6a4b6de..e07f800dd 100644 --- a/src/block/Hopper.php +++ b/src/block/Hopper.php @@ -26,6 +26,7 @@ namespace pocketmine\block; use pocketmine\block\tile\Hopper as TileHopper; use pocketmine\block\utils\BlockDataSerializer; use pocketmine\block\utils\InvalidBlockStateException; +use pocketmine\block\utils\PoweredByRedstoneTrait; use pocketmine\item\Item; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Facing; @@ -34,11 +35,10 @@ use pocketmine\player\Player; use pocketmine\world\BlockTransaction; class Hopper extends Transparent{ + use PoweredByRedstoneTrait; /** @var int */ private $facing = Facing::DOWN; - /** @var bool */ - private $powered = false; public function readStateFromData(int $id, int $stateMeta) : void{ $facing = BlockDataSerializer::readFacing($stateMeta & 0x07); diff --git a/src/block/RedstoneComparator.php b/src/block/RedstoneComparator.php index 083046dc3..883a8152e 100644 --- a/src/block/RedstoneComparator.php +++ b/src/block/RedstoneComparator.php @@ -27,6 +27,7 @@ use pocketmine\block\tile\Comparator; use pocketmine\block\utils\AnalogRedstoneSignalEmitterTrait; use pocketmine\block\utils\BlockDataSerializer; use pocketmine\block\utils\HorizontalFacingTrait; +use pocketmine\block\utils\PoweredByRedstoneTrait; use pocketmine\item\Item; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Facing; @@ -38,14 +39,13 @@ use function assert; class RedstoneComparator extends Flowable{ use HorizontalFacingTrait; use AnalogRedstoneSignalEmitterTrait; + use PoweredByRedstoneTrait; /** @var BlockIdentifierFlattened */ protected $idInfo; /** @var bool */ protected $isSubtractMode = false; - /** @var bool */ - protected $powered = false; public function __construct(BlockIdentifierFlattened $idInfo, string $name, ?BlockBreakInfo $breakInfo = null){ parent::__construct($idInfo, $name, $breakInfo ?? BlockBreakInfo::instant()); @@ -96,16 +96,6 @@ class RedstoneComparator extends Flowable{ return $this; } - public function isPowered() : bool{ - return $this->powered; - } - - /** @return $this */ - public function setPowered(bool $powered) : self{ - $this->powered = $powered; - return $this; - } - /** * @return AxisAlignedBB[] */ diff --git a/src/block/RedstoneRepeater.php b/src/block/RedstoneRepeater.php index f777ad41b..7553dc560 100644 --- a/src/block/RedstoneRepeater.php +++ b/src/block/RedstoneRepeater.php @@ -25,6 +25,7 @@ namespace pocketmine\block; use pocketmine\block\utils\BlockDataSerializer; use pocketmine\block\utils\HorizontalFacingTrait; +use pocketmine\block\utils\PoweredByRedstoneTrait; use pocketmine\item\Item; use pocketmine\math\AxisAlignedBB; use pocketmine\math\Facing; @@ -34,12 +35,11 @@ use pocketmine\world\BlockTransaction; class RedstoneRepeater extends Flowable{ use HorizontalFacingTrait; + use PoweredByRedstoneTrait; /** @var BlockIdentifierFlattened */ protected $idInfo; - /** @var bool */ - protected $powered = false; /** @var int */ protected $delay = 1; @@ -72,18 +72,6 @@ class RedstoneRepeater extends Flowable{ return [AxisAlignedBB::one()->trim(Facing::UP, 7 / 8)]; } - public function isPowered() : bool{ - return $this->powered; - } - - /** - * @return $this - */ - public function setPowered(bool $powered = true) : self{ - $this->powered = $powered; - return $this; - } - public function place(BlockTransaction $tx, Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{ if(!$blockReplace->getSide(Facing::DOWN)->isTransparent()){ if($player !== null){