From a91e7f72021c5ce680ea5c0ac46a7c2e022b94dd Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 31 Jan 2022 20:45:33 +0000 Subject: [PATCH] deduplicate weighted pressure plate deserializer code --- src/data/bedrock/blockstate/BlockStateDeserializer.php | 10 ++-------- .../blockstate/BlockStateDeserializerHelper.php | 6 ++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/data/bedrock/blockstate/BlockStateDeserializer.php b/src/data/bedrock/blockstate/BlockStateDeserializer.php index 9d65d3dbe..cc02416e7 100644 --- a/src/data/bedrock/blockstate/BlockStateDeserializer.php +++ b/src/data/bedrock/blockstate/BlockStateDeserializer.php @@ -510,10 +510,7 @@ final class BlockStateDeserializer{ //TODO: intentionally ignored "deprecated" blockstate (useless) return VanillaBlocks::HAY_BALE()->setAxis($in->readPillarAxis()); }); - $this->map(Ids::HEAVY_WEIGHTED_PRESSURE_PLATE, function(BlockStateReader $in) : Block{ - return VanillaBlocks::WEIGHTED_PRESSURE_PLATE_HEAVY() - ->setOutputSignalStrength($in->readBoundedInt(BlockStateNames::REDSTONE_SIGNAL, 0, 15)); - }); + $this->map(Ids::HEAVY_WEIGHTED_PRESSURE_PLATE, fn(BlockStateReader $in) => Helper::decodeWeightedPressurePlate(VanillaBlocks::WEIGHTED_PRESSURE_PLATE_HEAVY(), $in)); $this->map(Ids::HOPPER, function(BlockStateReader $in) : Block{ return VanillaBlocks::HOPPER() ->setFacing($in->readFacingWithoutUp()) @@ -589,10 +586,7 @@ final class BlockStateDeserializer{ }); }); $this->map(Ids::LIGHT_BLUE_GLAZED_TERRACOTTA, fn(BlockStateReader $in) => Helper::decodeGlazedTerracotta(VanillaBlocks::LIGHT_BLUE_GLAZED_TERRACOTTA(), $in)); - $this->map(Ids::LIGHT_WEIGHTED_PRESSURE_PLATE, function(BlockStateReader $in) : Block{ - return VanillaBlocks::WEIGHTED_PRESSURE_PLATE_LIGHT() - ->setOutputSignalStrength($in->readBoundedInt(BlockStateNames::REDSTONE_SIGNAL, 0, 15)); - }); + $this->map(Ids::LIGHT_WEIGHTED_PRESSURE_PLATE, fn(BlockStateReader $in) => Helper::decodeWeightedPressurePlate(VanillaBlocks::WEIGHTED_PRESSURE_PLATE_LIGHT(), $in)); $this->map(Ids::LIME_GLAZED_TERRACOTTA, fn(BlockStateReader $in) => Helper::decodeGlazedTerracotta(VanillaBlocks::LIME_GLAZED_TERRACOTTA(), $in)); $this->map(Ids::LIT_BLAST_FURNACE, function(BlockStateReader $in) : Block{ return VanillaBlocks::BLAST_FURNACE() diff --git a/src/data/bedrock/blockstate/BlockStateDeserializerHelper.php b/src/data/bedrock/blockstate/BlockStateDeserializerHelper.php index 418286a27..b88064592 100644 --- a/src/data/bedrock/blockstate/BlockStateDeserializerHelper.php +++ b/src/data/bedrock/blockstate/BlockStateDeserializerHelper.php @@ -46,6 +46,7 @@ use pocketmine\block\VanillaBlocks; use pocketmine\block\Wall; use pocketmine\block\WallCoralFan; use pocketmine\block\WallSign; +use pocketmine\block\WeightedPressurePlate; use pocketmine\data\bedrock\blockstate\BlockStateStringValues as StringValues; use pocketmine\data\bedrock\MushroomBlockTypeIdMap; use pocketmine\math\Axis; @@ -209,6 +210,11 @@ final class BlockStateDeserializerHelper{ ->setFacing($in->readHorizontalFacing()); } + public static function decodeWeightedPressurePlate(WeightedPressurePlate $block, BlockStateReader $in) : WeightedPressurePlate{ + return $block + ->setOutputSignalStrength($in->readBoundedInt(BlockStateNames::REDSTONE_SIGNAL, 0, 15)); + } + /** @throws BlockStateDeserializeException */ public static function mapStoneSlab1Type(BlockStateReader $in) : Slab{ //* stone_slab_type (StringTag) = brick, cobblestone, nether_brick, quartz, sandstone, smooth_stone, stone_brick, wood