From 23ae0c7cac79d29d5dc23030140dcc32b7d3c6cf Mon Sep 17 00:00:00 2001 From: zSALLAZAR <59490940+zSALLAZAR@users.noreply.github.com> Date: Wed, 23 Nov 2022 13:32:15 +0100 Subject: [PATCH] Add Furnace->getType() : FurnaceType method (#5425) closes #4761 this targets next-major due to BC-breaking changes to Furnace::__construct() --- src/block/Furnace.php | 12 ++++++++++++ src/block/VanillaBlocks.php | 7 ++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/block/Furnace.php b/src/block/Furnace.php index 8b86f3af6..2147169f2 100644 --- a/src/block/Furnace.php +++ b/src/block/Furnace.php @@ -26,6 +26,7 @@ namespace pocketmine\block; use pocketmine\block\tile\Furnace as TileFurnace; use pocketmine\block\utils\FacesOppositePlacingPlayerTrait; use pocketmine\block\utils\HorizontalFacingTrait; +use pocketmine\crafting\FurnaceType; use pocketmine\data\runtime\RuntimeDataReader; use pocketmine\data\runtime\RuntimeDataWriter; use pocketmine\item\Item; @@ -37,8 +38,15 @@ class Furnace extends Opaque{ use FacesOppositePlacingPlayerTrait; use HorizontalFacingTrait; + protected FurnaceType $furnaceType; + protected bool $lit = false; + public function __construct(BlockIdentifier $idInfo, string $name, BlockTypeInfo $typeInfo, FurnaceType $furnaceType){ + $this->furnaceType = $furnaceType; + parent::__construct($idInfo, $name, $typeInfo); + } + public function getRequiredStateDataBits() : int{ return 3; } protected function describeState(RuntimeDataReader|RuntimeDataWriter $w) : void{ @@ -46,6 +54,10 @@ class Furnace extends Opaque{ $w->bool($this->lit); } + public function getFurnaceType() : FurnaceType{ + return $this->furnaceType; + } + public function getLightLevel() : int{ return $this->lit ? 13 : 0; } diff --git a/src/block/VanillaBlocks.php b/src/block/VanillaBlocks.php index bfce7c41b..a4e70031b 100644 --- a/src/block/VanillaBlocks.php +++ b/src/block/VanillaBlocks.php @@ -55,6 +55,7 @@ use pocketmine\block\tile\Skull as TileSkull; use pocketmine\block\tile\Smoker as TileSmoker; use pocketmine\block\utils\TreeType; use pocketmine\block\utils\WoodType; +use pocketmine\crafting\FurnaceType; use pocketmine\entity\projectile\Projectile; use pocketmine\item\Item; use pocketmine\item\ToolTier; @@ -846,9 +847,9 @@ final class VanillaBlocks{ self::register("white_tulip", new Flower(new BID(Ids::WHITE_TULIP), "White Tulip", $flowerTypeInfo)); self::register("flower_pot", new FlowerPot(new BID(Ids::FLOWER_POT, TileFlowerPot::class), "Flower Pot", $flowerTypeInfo)); self::register("frosted_ice", new FrostedIce(new BID(Ids::FROSTED_ICE), "Frosted Ice", new Info(BreakInfo::pickaxe(2.5)))); - self::register("furnace", new Furnace(new BID(Ids::FURNACE, TileNormalFurnace::class), "Furnace", new Info(BreakInfo::pickaxe(3.5, ToolTier::WOOD())))); - self::register("blast_furnace", new Furnace(new BID(Ids::BLAST_FURNACE, TileBlastFurnace::class), "Blast Furnace", new Info(BreakInfo::pickaxe(3.5, ToolTier::WOOD())))); - self::register("smoker", new Furnace(new BID(Ids::SMOKER, TileSmoker::class), "Smoker", new Info(BreakInfo::pickaxe(3.5, ToolTier::WOOD())))); + self::register("furnace", new Furnace(new BID(Ids::FURNACE, TileNormalFurnace::class), "Furnace", new Info(BreakInfo::pickaxe(3.5, ToolTier::WOOD())), FurnaceType::FURNACE())); + self::register("blast_furnace", new Furnace(new BID(Ids::BLAST_FURNACE, TileBlastFurnace::class), "Blast Furnace", new Info(BreakInfo::pickaxe(3.5, ToolTier::WOOD())), FurnaceType::BLAST_FURNACE())); + self::register("smoker", new Furnace(new BID(Ids::SMOKER, TileSmoker::class), "Smoker", new Info(BreakInfo::pickaxe(3.5, ToolTier::WOOD())), FurnaceType::SMOKER())); $glassBreakInfo = new Info(new BreakInfo(0.3)); self::register("glass", new Glass(new BID(Ids::GLASS), "Glass", $glassBreakInfo));