From accaa0acce17f5601a8d3412efac97344f4d7171 Mon Sep 17 00:00:00 2001 From: ipad54 <63200545+ipad54@users.noreply.github.com> Date: Wed, 10 Jul 2024 19:15:06 +0300 Subject: [PATCH] Implement ICopper interface for blocks with common properties (#6390) --- src/block/Copper.php | 3 +- src/block/CopperSlab.php | 3 +- src/block/CopperStairs.php | 3 +- src/block/utils/ICopper.php | 38 +++++++++++++++++++ .../convert/BlockStateDeserializerHelper.php | 12 +++--- 5 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 src/block/utils/ICopper.php diff --git a/src/block/Copper.php b/src/block/Copper.php index 1da253fa4..8e678bf42 100644 --- a/src/block/Copper.php +++ b/src/block/Copper.php @@ -24,7 +24,8 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\block\utils\CopperTrait; +use pocketmine\block\utils\ICopper; -class Copper extends Opaque{ +class Copper extends Opaque implements ICopper{ use CopperTrait; } diff --git a/src/block/CopperSlab.php b/src/block/CopperSlab.php index 088ace11e..4194cd854 100644 --- a/src/block/CopperSlab.php +++ b/src/block/CopperSlab.php @@ -24,7 +24,8 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\block\utils\CopperTrait; +use pocketmine\block\utils\ICopper; -class CopperSlab extends Slab{ +class CopperSlab extends Slab implements ICopper{ use CopperTrait; } diff --git a/src/block/CopperStairs.php b/src/block/CopperStairs.php index b16d49ec1..dd8f44f7a 100644 --- a/src/block/CopperStairs.php +++ b/src/block/CopperStairs.php @@ -24,7 +24,8 @@ declare(strict_types=1); namespace pocketmine\block; use pocketmine\block\utils\CopperTrait; +use pocketmine\block\utils\ICopper; -class CopperStairs extends Stair{ +class CopperStairs extends Stair implements ICopper{ use CopperTrait; } diff --git a/src/block/utils/ICopper.php b/src/block/utils/ICopper.php new file mode 100644 index 000000000..a749efe63 --- /dev/null +++ b/src/block/utils/ICopper.php @@ -0,0 +1,38 @@ +setOxidation($oxidation); $block->setWaxed(false); return $block; } /** - * @phpstan-template TBlock of Copper|CopperSlab|CopperStairs + * @phpstan-template TBlock of ICopper * * @phpstan-param TBlock $block * @phpstan-return TBlock */ - public static function decodeWaxedCopper(Copper|CopperSlab|CopperStairs $block, CopperOxidation $oxidation) : Copper|CopperSlab|CopperStairs{ + public static function decodeWaxedCopper(ICopper $block, CopperOxidation $oxidation) : ICopper{ $block->setOxidation($oxidation); $block->setWaxed(true); return $block;