Move PM core-specific serializer/deserializer stuff to data/bedrock/blockstate/convert

This commit is contained in:
Dylan K. Taylor 2022-02-04 17:21:32 +00:00
parent 337aab4f0d
commit 8f5813b003
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
6 changed files with 29 additions and 13 deletions

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\data\bedrock\blockstate;
namespace pocketmine\data\bedrock\blockstate\convert;
use pocketmine\block\Bamboo;
use pocketmine\block\Block;
@ -32,9 +32,11 @@ use pocketmine\block\utils\CoralType;
use pocketmine\block\utils\LeverFacing;
use pocketmine\block\utils\SlabType;
use pocketmine\block\VanillaBlocks as Blocks;
use pocketmine\data\bedrock\blockstate\BlockStateDeserializerHelper as Helper;
use pocketmine\data\bedrock\blockstate\BlockStateData;
use pocketmine\data\bedrock\blockstate\BlockStateDeserializeException;
use pocketmine\data\bedrock\blockstate\convert\BlockStateDeserializerHelper as Helper;
use pocketmine\data\bedrock\blockstate\BlockStateNames as StateNames;
use pocketmine\data\bedrock\blockstate\BlockStateReader as Reader;
use pocketmine\data\bedrock\blockstate\convert\BlockStateReader as Reader;
use pocketmine\data\bedrock\blockstate\BlockStateStringValues as StringValues;
use pocketmine\data\bedrock\blockstate\BlockTypeNames as Ids;
use pocketmine\math\Axis;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\data\bedrock\blockstate;
namespace pocketmine\data\bedrock\blockstate\convert;
use pocketmine\block\Block;
use pocketmine\block\BlockLegacyMetadata;
@ -47,7 +47,10 @@ use pocketmine\block\Wall;
use pocketmine\block\WallCoralFan;
use pocketmine\block\WallSign;
use pocketmine\block\WeightedPressurePlate;
use pocketmine\data\bedrock\blockstate\BlockStateNames;
use pocketmine\data\bedrock\blockstate\convert\BlockStateReader;
use pocketmine\data\bedrock\blockstate\BlockStateStringValues as StringValues;
use pocketmine\data\bedrock\blockstate\BlockStateDeserializeException;
use pocketmine\data\bedrock\MushroomBlockTypeIdMap;
use pocketmine\math\Axis;
use pocketmine\math\Facing;

View File

@ -21,13 +21,16 @@
declare(strict_types=1);
namespace pocketmine\data\bedrock\blockstate;
namespace pocketmine\data\bedrock\blockstate\convert;
use pocketmine\block\utils\BellAttachmentType;
use pocketmine\block\utils\CoralType;
use pocketmine\block\utils\DyeColor;
use pocketmine\block\utils\SlabType;
use pocketmine\data\bedrock\blockstate\BlockStateData;
use pocketmine\data\bedrock\blockstate\BlockStateNames;
use pocketmine\data\bedrock\blockstate\BlockStateStringValues as StringValues;
use pocketmine\data\bedrock\blockstate\BlockStateDeserializeException;
use pocketmine\math\Axis;
use pocketmine\math\Facing;
use pocketmine\nbt\tag\ByteTag;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\data\bedrock\blockstate;
namespace pocketmine\data\bedrock\blockstate\convert;
use pocketmine\block\ActivatorRail;
use pocketmine\block\Anvil;
@ -137,10 +137,12 @@ use pocketmine\block\WoodenPressurePlate;
use pocketmine\block\WoodenStairs;
use pocketmine\block\WoodenTrapdoor;
use pocketmine\block\Wool;
use pocketmine\data\bedrock\blockstate\BlockStateData;
use pocketmine\data\bedrock\blockstate\BlockStateNames as StateNames;
use pocketmine\data\bedrock\blockstate\BlockStateSerializerHelper as Helper;
use pocketmine\data\bedrock\blockstate\BlockStateSerializeException;
use pocketmine\data\bedrock\blockstate\convert\BlockStateSerializerHelper as Helper;
use pocketmine\data\bedrock\blockstate\BlockStateStringValues as StringValues;
use pocketmine\data\bedrock\blockstate\BlockStateWriter as Writer;
use pocketmine\data\bedrock\blockstate\convert\BlockStateWriter as Writer;
use pocketmine\data\bedrock\blockstate\BlockTypeNames as Ids;
use pocketmine\math\Axis;
use pocketmine\math\Facing;
@ -873,15 +875,15 @@ final class BlockStateSerializer{
->writeInt(StateNames::RAIL_DIRECTION, $block->getShape());
});
$this->map(Blocks::REDSTONE(), fn() => new Writer(Ids::REDSTONE_BLOCK));
$this->map(Blocks::REDSTONE_COMPARATOR(), function(RedstoneComparator $block) : BlockStateWriter{
return BlockStateWriter::create($block->isPowered() ? Ids::POWERED_COMPARATOR : Ids::UNPOWERED_COMPARATOR)
$this->map(Blocks::REDSTONE_COMPARATOR(), function(RedstoneComparator $block) : Writer{
return Writer::create($block->isPowered() ? Ids::POWERED_COMPARATOR : Ids::UNPOWERED_COMPARATOR)
->writeBool(StateNames::OUTPUT_LIT_BIT, $block->isPowered())
->writeBool(StateNames::OUTPUT_SUBTRACT_BIT, $block->isSubtractMode())
->writeLegacyHorizontalFacing($block->getFacing());
});
$this->map(Blocks::REDSTONE_LAMP(), fn(RedstoneLamp $block) => new Writer($block->isPowered() ? Ids::LIT_REDSTONE_LAMP : Ids::REDSTONE_LAMP));
$this->map(Blocks::REDSTONE_ORE(), fn(RedstoneOre $block) => new Writer($block->isLit() ? Ids::LIT_REDSTONE_ORE : Ids::REDSTONE_ORE));
$this->map(Blocks::REDSTONE_REPEATER(), function(RedstoneRepeater $block) : BlockStateWriter{
$this->map(Blocks::REDSTONE_REPEATER(), function(RedstoneRepeater $block) : Writer{
return Writer::create($block->isPowered() ? Ids::POWERED_REPEATER : Ids::UNPOWERED_REPEATER)
->writeLegacyHorizontalFacing($block->getFacing())
->writeInt(StateNames::REPEATER_DELAY, $block->getDelay() - 1);

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\data\bedrock\blockstate;
namespace pocketmine\data\bedrock\blockstate\convert;
use pocketmine\block\Button;
use pocketmine\block\ChemistryTable;
@ -47,6 +47,9 @@ use pocketmine\block\utils\SlabType;
use pocketmine\block\Wall;
use pocketmine\block\WallSign;
use pocketmine\block\Wood;
use pocketmine\data\bedrock\blockstate\BlockStateNames;
use pocketmine\data\bedrock\blockstate\BlockStateStringValues;
use pocketmine\data\bedrock\blockstate\convert\BlockStateWriter;
use pocketmine\data\bedrock\blockstate\BlockTypeNames as Ids;
use pocketmine\data\bedrock\MushroomBlockTypeIdMap;
use pocketmine\math\Axis;

View File

@ -21,14 +21,17 @@
declare(strict_types=1);
namespace pocketmine\data\bedrock\blockstate;
namespace pocketmine\data\bedrock\blockstate\convert;
use pocketmine\block\utils\BellAttachmentType;
use pocketmine\block\utils\CoralType;
use pocketmine\block\utils\DyeColor;
use pocketmine\block\utils\SlabType;
use pocketmine\block\utils\TreeType;
use pocketmine\data\bedrock\blockstate\BlockStateData;
use pocketmine\data\bedrock\blockstate\BlockStateNames;
use pocketmine\data\bedrock\blockstate\BlockStateStringValues as StringValues;
use pocketmine\data\bedrock\blockstate\BlockStateSerializeException;
use pocketmine\math\Axis;
use pocketmine\math\Facing;
use pocketmine\nbt\tag\CompoundTag;