From 0626edbcddf16463b4a69566976bc2b47c64660a Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 31 Jan 2022 17:49:29 +0000 Subject: [PATCH] BlockStateValues now includes integer values too --- .../blockstate/BlockStateDeserializer.php | 250 ++--- .../BlockStateDeserializerHelper.php | 72 +- .../bedrock/blockstate/BlockStateReader.php | 70 +- .../blockstate/BlockStateStringValues.php | 297 ------ .../bedrock/blockstate/BlockStateValues.php | 863 ++++++++++++++++++ .../bedrock/blockstate/BlockStateWriter.php | 68 +- 6 files changed, 1093 insertions(+), 527 deletions(-) delete mode 100644 src/data/bedrock/blockstate/BlockStateStringValues.php create mode 100644 src/data/bedrock/blockstate/BlockStateValues.php diff --git a/src/data/bedrock/blockstate/BlockStateDeserializer.php b/src/data/bedrock/blockstate/BlockStateDeserializer.php index 89a580e3a..64ce43116 100644 --- a/src/data/bedrock/blockstate/BlockStateDeserializer.php +++ b/src/data/bedrock/blockstate/BlockStateDeserializer.php @@ -33,7 +33,7 @@ use pocketmine\block\utils\LeverFacing; use pocketmine\block\utils\SlabType; use pocketmine\block\VanillaBlocks; use pocketmine\data\bedrock\blockstate\BlockStateDeserializerHelper as Helper; -use pocketmine\data\bedrock\blockstate\BlockStateStringValues as StringValues; +use pocketmine\data\bedrock\blockstate\BlockStateValues as Values; use pocketmine\data\bedrock\blockstate\BlockTypeNames as Ids; use pocketmine\math\Axis; use pocketmine\math\Facing; @@ -82,10 +82,10 @@ final class BlockStateDeserializer{ $this->map(Ids::ANVIL, function(BlockStateReader $in) : Block{ return VanillaBlocks::ANVIL() ->setDamage(match($value = $in->readString(BlockStateNames::DAMAGE)){ - StringValues::DAMAGE_UNDAMAGED => 0, - StringValues::DAMAGE_SLIGHTLY_DAMAGED => 1, - StringValues::DAMAGE_VERY_DAMAGED => 2, - StringValues::DAMAGE_BROKEN => 0, + Values::DAMAGE_UNDAMAGED => 0, + Values::DAMAGE_SLIGHTLY_DAMAGED => 1, + Values::DAMAGE_VERY_DAMAGED => 2, + Values::DAMAGE_BROKEN => 0, default => throw $in->badValueException(BlockStateNames::DAMAGE, $value), }) ->setFacing($in->readLegacyHorizontalFacing()); @@ -93,15 +93,15 @@ final class BlockStateDeserializer{ $this->map(Ids::BAMBOO, function(BlockStateReader $in) : Block{ return VanillaBlocks::BAMBOO() ->setLeafSize(match($value = $in->readString(BlockStateNames::BAMBOO_LEAF_SIZE)){ - StringValues::BAMBOO_LEAF_SIZE_NO_LEAVES => Bamboo::NO_LEAVES, - StringValues::BAMBOO_LEAF_SIZE_SMALL_LEAVES => Bamboo::SMALL_LEAVES, - StringValues::BAMBOO_LEAF_SIZE_LARGE_LEAVES => Bamboo::LARGE_LEAVES, + Values::BAMBOO_LEAF_SIZE_NO_LEAVES => Bamboo::NO_LEAVES, + Values::BAMBOO_LEAF_SIZE_SMALL_LEAVES => Bamboo::SMALL_LEAVES, + Values::BAMBOO_LEAF_SIZE_LARGE_LEAVES => Bamboo::LARGE_LEAVES, default => throw $in->badValueException(BlockStateNames::BAMBOO_LEAF_SIZE, $value), }) ->setReady($in->readBool(BlockStateNames::AGE_BIT)) ->setThick(match($value = $in->readString(BlockStateNames::BAMBOO_STALK_THICKNESS)){ - StringValues::BAMBOO_STALK_THICKNESS_THIN => false, - StringValues::BAMBOO_STALK_THICKNESS_THICK => true, + Values::BAMBOO_STALK_THICKNESS_THIN => false, + Values::BAMBOO_STALK_THICKNESS_THICK => true, default => throw $in->badValueException(BlockStateNames::BAMBOO_STALK_THICKNESS, $value), }); }); @@ -191,10 +191,10 @@ final class BlockStateDeserializer{ $this->map(Ids::CHEMICAL_HEAT, fn() => VanillaBlocks::CHEMICAL_HEAT()); $this->map(Ids::CHEMISTRY_TABLE, function(BlockStateReader $in) : Block{ return (match($type = $in->readString(BlockStateNames::CHEMISTRY_TABLE_TYPE)){ - StringValues::CHEMISTRY_TABLE_TYPE_COMPOUND_CREATOR => VanillaBlocks::COMPOUND_CREATOR(), - StringValues::CHEMISTRY_TABLE_TYPE_ELEMENT_CONSTRUCTOR => VanillaBlocks::ELEMENT_CONSTRUCTOR(), - StringValues::CHEMISTRY_TABLE_TYPE_LAB_TABLE => VanillaBlocks::LAB_TABLE(), - StringValues::CHEMISTRY_TABLE_TYPE_MATERIAL_REDUCER => VanillaBlocks::MATERIAL_REDUCER(), + Values::CHEMISTRY_TABLE_TYPE_COMPOUND_CREATOR => VanillaBlocks::COMPOUND_CREATOR(), + Values::CHEMISTRY_TABLE_TYPE_ELEMENT_CONSTRUCTOR => VanillaBlocks::ELEMENT_CONSTRUCTOR(), + Values::CHEMISTRY_TABLE_TYPE_LAB_TABLE => VanillaBlocks::LAB_TABLE(), + Values::CHEMISTRY_TABLE_TYPE_MATERIAL_REDUCER => VanillaBlocks::MATERIAL_REDUCER(), default => throw $in->badValueException(BlockStateNames::CHEMISTRY_TABLE_TYPE, $type), })->setFacing($in->readLegacyHorizontalFacing()); }); @@ -240,8 +240,8 @@ final class BlockStateDeserializer{ ->setCoralType($in->readCoralType()) ->setDead($in->readBool(BlockStateNames::DEAD_BIT)); }); - $this->map(Ids::CORAL_FAN, fn(BlockStateReader $in) => Helper::decodeFloorCoralFan($in)->setDead(false)); - $this->map(Ids::CORAL_FAN_DEAD, fn(BlockStateReader $in) => Helper::decodeFloorCoralFan($in)->setDead(true)); + $this->map(Ids::CORAL_FAN, fn(BlockStateReader $in) => Helper::decodeFloorCoralFan(VanillaBlocks::CORAL_FAN(), $in)->setDead(false)); + $this->map(Ids::CORAL_FAN_DEAD, fn(BlockStateReader $in) => Helper::decodeFloorCoralFan(VanillaBlocks::CORAL_FAN(), $in)->setDead(true)); $this->map(Ids::CORAL_FAN_HANG, function(BlockStateReader $in) : Block{ return VanillaBlocks::WALL_CORAL_FAN() ->setCoralType($in->readBool(BlockStateNames::CORAL_HANG_TYPE_BIT) ? CoralType::BRAIN() : CoralType::TUBE()) @@ -299,19 +299,19 @@ final class BlockStateDeserializer{ $this->map(Ids::DIRT, function(BlockStateReader $in) : Block{ return VanillaBlocks::DIRT() ->setCoarse(match($value = $in->readString(BlockStateNames::DIRT_TYPE)){ - StringValues::DIRT_TYPE_NORMAL => false, - StringValues::DIRT_TYPE_COARSE => true, + Values::DIRT_TYPE_NORMAL => false, + Values::DIRT_TYPE_COARSE => true, default => throw $in->badValueException(BlockStateNames::DIRT_TYPE, $value), }); }); $this->map(Ids::DOUBLE_PLANT, function(BlockStateReader $in) : Block{ return (match($type = $in->readString(BlockStateNames::DOUBLE_PLANT_TYPE)){ - StringValues::DOUBLE_PLANT_TYPE_FERN => VanillaBlocks::LARGE_FERN(), - StringValues::DOUBLE_PLANT_TYPE_GRASS => VanillaBlocks::DOUBLE_TALLGRASS(), - StringValues::DOUBLE_PLANT_TYPE_PAEONIA => VanillaBlocks::PEONY(), - StringValues::DOUBLE_PLANT_TYPE_ROSE => VanillaBlocks::ROSE_BUSH(), - StringValues::DOUBLE_PLANT_TYPE_SUNFLOWER => VanillaBlocks::SUNFLOWER(), - StringValues::DOUBLE_PLANT_TYPE_SYRINGA => VanillaBlocks::LILAC(), + Values::DOUBLE_PLANT_TYPE_FERN => VanillaBlocks::LARGE_FERN(), + Values::DOUBLE_PLANT_TYPE_GRASS => VanillaBlocks::DOUBLE_TALLGRASS(), + Values::DOUBLE_PLANT_TYPE_PAEONIA => VanillaBlocks::PEONY(), + Values::DOUBLE_PLANT_TYPE_ROSE => VanillaBlocks::ROSE_BUSH(), + Values::DOUBLE_PLANT_TYPE_SUNFLOWER => VanillaBlocks::SUNFLOWER(), + Values::DOUBLE_PLANT_TYPE_SYRINGA => VanillaBlocks::LILAC(), default => throw $in->badValueException(BlockStateNames::DOUBLE_PLANT_TYPE, $type), })->setTop($in->readBool(BlockStateNames::UPPER_BLOCK_BIT)); }); @@ -476,12 +476,12 @@ final class BlockStateDeserializer{ }); $this->map(Ids::FENCE, function(BlockStateReader $in) : Block{ return match($woodName = $in->readString(BlockStateNames::WOOD_TYPE)){ - StringValues::WOOD_TYPE_OAK => VanillaBlocks::OAK_FENCE(), - StringValues::WOOD_TYPE_SPRUCE => VanillaBlocks::SPRUCE_FENCE(), - StringValues::WOOD_TYPE_BIRCH => VanillaBlocks::BIRCH_FENCE(), - StringValues::WOOD_TYPE_JUNGLE => VanillaBlocks::JUNGLE_FENCE(), - StringValues::WOOD_TYPE_ACACIA => VanillaBlocks::ACACIA_FENCE(), - StringValues::WOOD_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_FENCE(), + Values::WOOD_TYPE_OAK => VanillaBlocks::OAK_FENCE(), + Values::WOOD_TYPE_SPRUCE => VanillaBlocks::SPRUCE_FENCE(), + Values::WOOD_TYPE_BIRCH => VanillaBlocks::BIRCH_FENCE(), + Values::WOOD_TYPE_JUNGLE => VanillaBlocks::JUNGLE_FENCE(), + Values::WOOD_TYPE_ACACIA => VanillaBlocks::ACACIA_FENCE(), + Values::WOOD_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_FENCE(), default => throw $in->badValueException(BlockStateNames::WOOD_TYPE, $woodName), }; }); @@ -590,10 +590,10 @@ final class BlockStateDeserializer{ $this->map(Ids::LAVA, fn(BlockStateReader $in) => Helper::decodeStillLiquid(VanillaBlocks::LAVA(), $in)); $this->map(Ids::LEAVES, function(BlockStateReader $in) : Block{ return (match($type = $in->readString(BlockStateNames::OLD_LEAF_TYPE)){ - StringValues::OLD_LEAF_TYPE_BIRCH => VanillaBlocks::BIRCH_LEAVES(), - StringValues::OLD_LEAF_TYPE_JUNGLE => VanillaBlocks::JUNGLE_LEAVES(), - StringValues::OLD_LEAF_TYPE_OAK => VanillaBlocks::OAK_LEAVES(), - StringValues::OLD_LEAF_TYPE_SPRUCE => VanillaBlocks::SPRUCE_LEAVES(), + Values::OLD_LEAF_TYPE_BIRCH => VanillaBlocks::BIRCH_LEAVES(), + Values::OLD_LEAF_TYPE_JUNGLE => VanillaBlocks::JUNGLE_LEAVES(), + Values::OLD_LEAF_TYPE_OAK => VanillaBlocks::OAK_LEAVES(), + Values::OLD_LEAF_TYPE_SPRUCE => VanillaBlocks::SPRUCE_LEAVES(), default => throw $in->badValueException(BlockStateNames::OLD_LEAF_TYPE, $type), }) ->setNoDecay($in->readBool(BlockStateNames::PERSISTENT_BIT)) @@ -601,8 +601,8 @@ final class BlockStateDeserializer{ }); $this->map(Ids::LEAVES2, function(BlockStateReader $in) : Block{ return (match($type = $in->readString(BlockStateNames::NEW_LEAF_TYPE)){ - StringValues::NEW_LEAF_TYPE_ACACIA => VanillaBlocks::ACACIA_LEAVES(), - StringValues::NEW_LEAF_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_LEAVES(), + Values::NEW_LEAF_TYPE_ACACIA => VanillaBlocks::ACACIA_LEAVES(), + Values::NEW_LEAF_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_LEAVES(), default => throw $in->badValueException(BlockStateNames::NEW_LEAF_TYPE, $type), }) ->setNoDecay($in->readBool(BlockStateNames::PERSISTENT_BIT)) @@ -617,14 +617,14 @@ final class BlockStateDeserializer{ return VanillaBlocks::LEVER() ->setActivated($in->readBool(BlockStateNames::OPEN_BIT)) ->setFacing(match($value = $in->readString(BlockStateNames::LEVER_DIRECTION)){ - StringValues::LEVER_DIRECTION_DOWN_NORTH_SOUTH => LeverFacing::DOWN_AXIS_Z(), - StringValues::LEVER_DIRECTION_DOWN_EAST_WEST => LeverFacing::DOWN_AXIS_X(), - StringValues::LEVER_DIRECTION_UP_NORTH_SOUTH => LeverFacing::UP_AXIS_Z(), - StringValues::LEVER_DIRECTION_UP_EAST_WEST => LeverFacing::UP_AXIS_X(), - StringValues::LEVER_DIRECTION_NORTH => LeverFacing::NORTH(), - StringValues::LEVER_DIRECTION_SOUTH => LeverFacing::SOUTH(), - StringValues::LEVER_DIRECTION_WEST => LeverFacing::WEST(), - StringValues::LEVER_DIRECTION_EAST => LeverFacing::EAST(), + Values::LEVER_DIRECTION_DOWN_NORTH_SOUTH => LeverFacing::DOWN_AXIS_Z(), + Values::LEVER_DIRECTION_DOWN_EAST_WEST => LeverFacing::DOWN_AXIS_X(), + Values::LEVER_DIRECTION_UP_NORTH_SOUTH => LeverFacing::UP_AXIS_Z(), + Values::LEVER_DIRECTION_UP_EAST_WEST => LeverFacing::UP_AXIS_X(), + Values::LEVER_DIRECTION_NORTH => LeverFacing::NORTH(), + Values::LEVER_DIRECTION_SOUTH => LeverFacing::SOUTH(), + Values::LEVER_DIRECTION_WEST => LeverFacing::WEST(), + Values::LEVER_DIRECTION_EAST => LeverFacing::EAST(), default => throw $in->badValueException(BlockStateNames::LEVER_DIRECTION, $value), }); }); @@ -663,18 +663,18 @@ final class BlockStateDeserializer{ }); $this->map(Ids::LOG, function(BlockStateReader $in) : Block{ return (match($type = $in->readString(BlockStateNames::OLD_LOG_TYPE)){ - StringValues::OLD_LOG_TYPE_BIRCH => VanillaBlocks::BIRCH_LOG(), - StringValues::OLD_LOG_TYPE_JUNGLE => VanillaBlocks::JUNGLE_LOG(), - StringValues::OLD_LOG_TYPE_OAK => VanillaBlocks::OAK_LOG(), - StringValues::OLD_LOG_TYPE_SPRUCE => VanillaBlocks::SPRUCE_LOG(), + Values::OLD_LOG_TYPE_BIRCH => VanillaBlocks::BIRCH_LOG(), + Values::OLD_LOG_TYPE_JUNGLE => VanillaBlocks::JUNGLE_LOG(), + Values::OLD_LOG_TYPE_OAK => VanillaBlocks::OAK_LOG(), + Values::OLD_LOG_TYPE_SPRUCE => VanillaBlocks::SPRUCE_LOG(), default => throw $in->badValueException(BlockStateNames::OLD_LOG_TYPE, $type), }) ->setAxis($in->readPillarAxis()); }); $this->map(Ids::LOG2, function(BlockStateReader $in) : Block{ return (match($type = $in->readString(BlockStateNames::NEW_LOG_TYPE)){ - StringValues::NEW_LOG_TYPE_ACACIA => VanillaBlocks::ACACIA_LOG(), - StringValues::NEW_LOG_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_LOG(), + Values::NEW_LOG_TYPE_ACACIA => VanillaBlocks::ACACIA_LOG(), + Values::NEW_LOG_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_LOG(), default => throw $in->badValueException(BlockStateNames::NEW_LOG_TYPE, $type), }) ->setAxis($in->readPillarAxis()); @@ -690,12 +690,12 @@ final class BlockStateDeserializer{ $this->map(Ids::MOB_SPAWNER, fn() => VanillaBlocks::MONSTER_SPAWNER()); $this->map(Ids::MONSTER_EGG, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::MONSTER_EGG_STONE_TYPE)){ - StringValues::MONSTER_EGG_STONE_TYPE_CHISELED_STONE_BRICK => VanillaBlocks::INFESTED_CHISELED_STONE_BRICK(), - StringValues::MONSTER_EGG_STONE_TYPE_COBBLESTONE => VanillaBlocks::INFESTED_COBBLESTONE(), - StringValues::MONSTER_EGG_STONE_TYPE_CRACKED_STONE_BRICK => VanillaBlocks::INFESTED_CRACKED_STONE_BRICK(), - StringValues::MONSTER_EGG_STONE_TYPE_MOSSY_STONE_BRICK => VanillaBlocks::INFESTED_MOSSY_STONE_BRICK(), - StringValues::MONSTER_EGG_STONE_TYPE_STONE => VanillaBlocks::INFESTED_STONE(), - StringValues::MONSTER_EGG_STONE_TYPE_STONE_BRICK => VanillaBlocks::INFESTED_STONE_BRICK(), + Values::MONSTER_EGG_STONE_TYPE_CHISELED_STONE_BRICK => VanillaBlocks::INFESTED_CHISELED_STONE_BRICK(), + Values::MONSTER_EGG_STONE_TYPE_COBBLESTONE => VanillaBlocks::INFESTED_COBBLESTONE(), + Values::MONSTER_EGG_STONE_TYPE_CRACKED_STONE_BRICK => VanillaBlocks::INFESTED_CRACKED_STONE_BRICK(), + Values::MONSTER_EGG_STONE_TYPE_MOSSY_STONE_BRICK => VanillaBlocks::INFESTED_MOSSY_STONE_BRICK(), + Values::MONSTER_EGG_STONE_TYPE_STONE => VanillaBlocks::INFESTED_STONE(), + Values::MONSTER_EGG_STONE_TYPE_STONE_BRICK => VanillaBlocks::INFESTED_STONE_BRICK(), default => throw $in->badValueException(BlockStateNames::MONSTER_EGG_STONE_TYPE, $type), }; }); @@ -722,12 +722,12 @@ final class BlockStateDeserializer{ $this->map(Ids::PINK_GLAZED_TERRACOTTA, fn(BlockStateReader $in) => Helper::decodeGlazedTerracotta(VanillaBlocks::PINK_GLAZED_TERRACOTTA(), $in)); $this->map(Ids::PLANKS, function(BlockStateReader $in) : Block{ return match($woodName = $in->readString(BlockStateNames::WOOD_TYPE)){ - StringValues::WOOD_TYPE_OAK => VanillaBlocks::OAK_PLANKS(), - StringValues::WOOD_TYPE_SPRUCE => VanillaBlocks::SPRUCE_PLANKS(), - StringValues::WOOD_TYPE_BIRCH => VanillaBlocks::BIRCH_PLANKS(), - StringValues::WOOD_TYPE_JUNGLE => VanillaBlocks::JUNGLE_PLANKS(), - StringValues::WOOD_TYPE_ACACIA => VanillaBlocks::ACACIA_PLANKS(), - StringValues::WOOD_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_PLANKS(), + Values::WOOD_TYPE_OAK => VanillaBlocks::OAK_PLANKS(), + Values::WOOD_TYPE_SPRUCE => VanillaBlocks::SPRUCE_PLANKS(), + Values::WOOD_TYPE_BIRCH => VanillaBlocks::BIRCH_PLANKS(), + Values::WOOD_TYPE_JUNGLE => VanillaBlocks::JUNGLE_PLANKS(), + Values::WOOD_TYPE_ACACIA => VanillaBlocks::ACACIA_PLANKS(), + Values::WOOD_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_PLANKS(), default => throw $in->badValueException(BlockStateNames::WOOD_TYPE, $woodName), }; }); @@ -738,9 +738,9 @@ final class BlockStateDeserializer{ $this->map(Ids::PORTAL, function(BlockStateReader $in) : Block{ return VanillaBlocks::NETHER_PORTAL() ->setAxis(match($value = $in->readString(BlockStateNames::PORTAL_AXIS)){ - StringValues::PORTAL_AXIS_UNKNOWN => Axis::X, - StringValues::PORTAL_AXIS_X => Axis::X, - StringValues::PORTAL_AXIS_Z => Axis::Z, + Values::PORTAL_AXIS_UNKNOWN => Axis::X, + Values::PORTAL_AXIS_X => Axis::X, + Values::PORTAL_AXIS_Z => Axis::Z, default => throw $in->badValueException(BlockStateNames::PORTAL_AXIS, $value), }); }); @@ -750,9 +750,9 @@ final class BlockStateDeserializer{ ->setPowered(true)); $this->map(Ids::PRISMARINE, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::PRISMARINE_BLOCK_TYPE)){ - StringValues::PRISMARINE_BLOCK_TYPE_BRICKS => VanillaBlocks::PRISMARINE_BRICKS(), - StringValues::PRISMARINE_BLOCK_TYPE_DARK => VanillaBlocks::DARK_PRISMARINE(), - StringValues::PRISMARINE_BLOCK_TYPE_DEFAULT => VanillaBlocks::PRISMARINE(), + Values::PRISMARINE_BLOCK_TYPE_BRICKS => VanillaBlocks::PRISMARINE_BRICKS(), + Values::PRISMARINE_BLOCK_TYPE_DARK => VanillaBlocks::DARK_PRISMARINE(), + Values::PRISMARINE_BLOCK_TYPE_DEFAULT => VanillaBlocks::PRISMARINE(), default => throw $in->badValueException(BlockStateNames::PRISMARINE_BLOCK_TYPE, $type), }; }); @@ -766,20 +766,20 @@ final class BlockStateDeserializer{ $this->map(Ids::PURPLE_GLAZED_TERRACOTTA, fn(BlockStateReader $in) => Helper::decodeGlazedTerracotta(VanillaBlocks::PURPLE_GLAZED_TERRACOTTA(), $in)); $this->map(Ids::PURPUR_BLOCK, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::CHISEL_TYPE)){ - StringValues::CHISEL_TYPE_CHISELED, //TODO: bug in MCPE - StringValues::CHISEL_TYPE_SMOOTH, //TODO: bug in MCPE - StringValues::CHISEL_TYPE_DEFAULT => VanillaBlocks::PURPUR(), //TODO: axis intentionally ignored (useless) - StringValues::CHISEL_TYPE_LINES => VanillaBlocks::PURPUR_PILLAR()->setAxis($in->readPillarAxis()), + Values::CHISEL_TYPE_CHISELED, //TODO: bug in MCPE + Values::CHISEL_TYPE_SMOOTH, //TODO: bug in MCPE + Values::CHISEL_TYPE_DEFAULT => VanillaBlocks::PURPUR(), //TODO: axis intentionally ignored (useless) + Values::CHISEL_TYPE_LINES => VanillaBlocks::PURPUR_PILLAR()->setAxis($in->readPillarAxis()), default => throw $in->badValueException(BlockStateNames::CHISEL_TYPE, $type), }; }); $this->map(Ids::PURPUR_STAIRS, fn(BlockStateReader $in) => Helper::decodeStairs(VanillaBlocks::PURPUR_STAIRS(), $in)); $this->map(Ids::QUARTZ_BLOCK, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::CHISEL_TYPE)){ - StringValues::CHISEL_TYPE_CHISELED => VanillaBlocks::CHISELED_QUARTZ()->setAxis($in->readPillarAxis()), - StringValues::CHISEL_TYPE_DEFAULT => VanillaBlocks::QUARTZ(), //TODO: axis intentionally ignored (useless) - StringValues::CHISEL_TYPE_LINES => VanillaBlocks::QUARTZ_PILLAR()->setAxis($in->readPillarAxis()), - StringValues::CHISEL_TYPE_SMOOTH => VanillaBlocks::SMOOTH_QUARTZ(), //TODO: axis intentionally ignored (useless) + Values::CHISEL_TYPE_CHISELED => VanillaBlocks::CHISELED_QUARTZ()->setAxis($in->readPillarAxis()), + Values::CHISEL_TYPE_DEFAULT => VanillaBlocks::QUARTZ(), //TODO: axis intentionally ignored (useless) + Values::CHISEL_TYPE_LINES => VanillaBlocks::QUARTZ_PILLAR()->setAxis($in->readPillarAxis()), + Values::CHISEL_TYPE_SMOOTH => VanillaBlocks::SMOOTH_QUARTZ(), //TODO: axis intentionally ignored (useless) default => throw $in->badValueException(BlockStateNames::CHISEL_TYPE, $type), }; }); @@ -791,17 +791,17 @@ final class BlockStateDeserializer{ }); $this->map(Ids::RED_FLOWER, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::FLOWER_TYPE)){ - StringValues::FLOWER_TYPE_ALLIUM => VanillaBlocks::ALLIUM(), - StringValues::FLOWER_TYPE_CORNFLOWER => VanillaBlocks::CORNFLOWER(), - StringValues::FLOWER_TYPE_HOUSTONIA => VanillaBlocks::AZURE_BLUET(), //wtf ??? - StringValues::FLOWER_TYPE_LILY_OF_THE_VALLEY => VanillaBlocks::LILY_OF_THE_VALLEY(), - StringValues::FLOWER_TYPE_ORCHID => VanillaBlocks::BLUE_ORCHID(), - StringValues::FLOWER_TYPE_OXEYE => VanillaBlocks::OXEYE_DAISY(), - StringValues::FLOWER_TYPE_POPPY => VanillaBlocks::POPPY(), - StringValues::FLOWER_TYPE_TULIP_ORANGE => VanillaBlocks::ORANGE_TULIP(), - StringValues::FLOWER_TYPE_TULIP_PINK => VanillaBlocks::PINK_TULIP(), - StringValues::FLOWER_TYPE_TULIP_RED => VanillaBlocks::RED_TULIP(), - StringValues::FLOWER_TYPE_TULIP_WHITE => VanillaBlocks::WHITE_TULIP(), + Values::FLOWER_TYPE_ALLIUM => VanillaBlocks::ALLIUM(), + Values::FLOWER_TYPE_CORNFLOWER => VanillaBlocks::CORNFLOWER(), + Values::FLOWER_TYPE_HOUSTONIA => VanillaBlocks::AZURE_BLUET(), //wtf ??? + Values::FLOWER_TYPE_LILY_OF_THE_VALLEY => VanillaBlocks::LILY_OF_THE_VALLEY(), + Values::FLOWER_TYPE_ORCHID => VanillaBlocks::BLUE_ORCHID(), + Values::FLOWER_TYPE_OXEYE => VanillaBlocks::OXEYE_DAISY(), + Values::FLOWER_TYPE_POPPY => VanillaBlocks::POPPY(), + Values::FLOWER_TYPE_TULIP_ORANGE => VanillaBlocks::ORANGE_TULIP(), + Values::FLOWER_TYPE_TULIP_PINK => VanillaBlocks::PINK_TULIP(), + Values::FLOWER_TYPE_TULIP_RED => VanillaBlocks::RED_TULIP(), + Values::FLOWER_TYPE_TULIP_WHITE => VanillaBlocks::WHITE_TULIP(), default => throw $in->badValueException(BlockStateNames::FLOWER_TYPE, $type), }; }); @@ -812,10 +812,10 @@ final class BlockStateDeserializer{ $this->map(Ids::RED_NETHER_BRICK_STAIRS, fn(BlockStateReader $in) => Helper::decodeStairs(VanillaBlocks::RED_NETHER_BRICK_STAIRS(), $in)); $this->map(Ids::RED_SANDSTONE, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::SAND_STONE_TYPE)){ - StringValues::SAND_STONE_TYPE_CUT => VanillaBlocks::CUT_RED_SANDSTONE(), - StringValues::SAND_STONE_TYPE_DEFAULT => VanillaBlocks::RED_SANDSTONE(), - StringValues::SAND_STONE_TYPE_HEIROGLYPHS => VanillaBlocks::CHISELED_RED_SANDSTONE(), - StringValues::SAND_STONE_TYPE_SMOOTH => VanillaBlocks::SMOOTH_RED_SANDSTONE(), + Values::SAND_STONE_TYPE_CUT => VanillaBlocks::CUT_RED_SANDSTONE(), + Values::SAND_STONE_TYPE_DEFAULT => VanillaBlocks::RED_SANDSTONE(), + Values::SAND_STONE_TYPE_HEIROGLYPHS => VanillaBlocks::CHISELED_RED_SANDSTONE(), + Values::SAND_STONE_TYPE_SMOOTH => VanillaBlocks::SMOOTH_RED_SANDSTONE(), default => throw $in->badValueException(BlockStateNames::SAND_STONE_TYPE, $type), }; }); @@ -845,29 +845,29 @@ final class BlockStateDeserializer{ $this->map(Ids::RESERVED6, fn() => VanillaBlocks::RESERVED6()); $this->map(Ids::SAND, function(BlockStateReader $in) : Block{ return match($value = $in->readString(BlockStateNames::SAND_TYPE)){ - StringValues::SAND_TYPE_NORMAL => VanillaBlocks::SAND(), - StringValues::SAND_TYPE_RED => VanillaBlocks::RED_SAND(), + Values::SAND_TYPE_NORMAL => VanillaBlocks::SAND(), + Values::SAND_TYPE_RED => VanillaBlocks::RED_SAND(), default => throw $in->badValueException(BlockStateNames::SAND_TYPE, $value), }; }); $this->map(Ids::SANDSTONE, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::SAND_STONE_TYPE)){ - StringValues::SAND_STONE_TYPE_CUT => VanillaBlocks::CUT_SANDSTONE(), - StringValues::SAND_STONE_TYPE_DEFAULT => VanillaBlocks::SANDSTONE(), - StringValues::SAND_STONE_TYPE_HEIROGLYPHS => VanillaBlocks::CHISELED_SANDSTONE(), - StringValues::SAND_STONE_TYPE_SMOOTH => VanillaBlocks::SMOOTH_SANDSTONE(), + Values::SAND_STONE_TYPE_CUT => VanillaBlocks::CUT_SANDSTONE(), + Values::SAND_STONE_TYPE_DEFAULT => VanillaBlocks::SANDSTONE(), + Values::SAND_STONE_TYPE_HEIROGLYPHS => VanillaBlocks::CHISELED_SANDSTONE(), + Values::SAND_STONE_TYPE_SMOOTH => VanillaBlocks::SMOOTH_SANDSTONE(), default => throw $in->badValueException(BlockStateNames::SAND_STONE_TYPE, $type), }; }); $this->map(Ids::SANDSTONE_STAIRS, fn(BlockStateReader $in) => Helper::decodeStairs(VanillaBlocks::SANDSTONE_STAIRS(), $in)); $this->map(Ids::SAPLING, function(BlockStateReader $in) : Block{ return (match($type = $in->readString(BlockStateNames::SAPLING_TYPE)){ - StringValues::SAPLING_TYPE_ACACIA => VanillaBlocks::ACACIA_SAPLING(), - StringValues::SAPLING_TYPE_BIRCH => VanillaBlocks::BIRCH_SAPLING(), - StringValues::SAPLING_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_SAPLING(), - StringValues::SAPLING_TYPE_JUNGLE => VanillaBlocks::JUNGLE_SAPLING(), - StringValues::SAPLING_TYPE_OAK => VanillaBlocks::OAK_SAPLING(), - StringValues::SAPLING_TYPE_SPRUCE => VanillaBlocks::SPRUCE_SAPLING(), + Values::SAPLING_TYPE_ACACIA => VanillaBlocks::ACACIA_SAPLING(), + Values::SAPLING_TYPE_BIRCH => VanillaBlocks::BIRCH_SAPLING(), + Values::SAPLING_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_SAPLING(), + Values::SAPLING_TYPE_JUNGLE => VanillaBlocks::JUNGLE_SAPLING(), + Values::SAPLING_TYPE_OAK => VanillaBlocks::OAK_SAPLING(), + Values::SAPLING_TYPE_SPRUCE => VanillaBlocks::SPRUCE_SAPLING(), default => throw $in->badValueException(BlockStateNames::SAPLING_TYPE, $type), }) ->setReady($in->readBool(BlockStateNames::AGE_BIT)); @@ -906,8 +906,8 @@ final class BlockStateDeserializer{ $this->map(Ids::SOUL_SAND, fn() => VanillaBlocks::SOUL_SAND()); $this->map(Ids::SPONGE, function(BlockStateReader $in) : Block{ return VanillaBlocks::SPONGE()->setWet(match($type = $in->readString(BlockStateNames::SPONGE_TYPE)){ - StringValues::SPONGE_TYPE_DRY => false, - StringValues::SPONGE_TYPE_WET => true, + Values::SPONGE_TYPE_DRY => false, + Values::SPONGE_TYPE_WET => true, default => throw $in->badValueException(BlockStateNames::SPONGE_TYPE, $type), }); }); @@ -947,13 +947,13 @@ final class BlockStateDeserializer{ }); $this->map(Ids::STONE, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::STONE_TYPE)){ - StringValues::STONE_TYPE_ANDESITE => VanillaBlocks::ANDESITE(), - StringValues::STONE_TYPE_ANDESITE_SMOOTH => VanillaBlocks::POLISHED_ANDESITE(), - StringValues::STONE_TYPE_DIORITE => VanillaBlocks::DIORITE(), - StringValues::STONE_TYPE_DIORITE_SMOOTH => VanillaBlocks::POLISHED_DIORITE(), - StringValues::STONE_TYPE_GRANITE => VanillaBlocks::GRANITE(), - StringValues::STONE_TYPE_GRANITE_SMOOTH => VanillaBlocks::POLISHED_GRANITE(), - StringValues::STONE_TYPE_STONE => VanillaBlocks::STONE(), + Values::STONE_TYPE_ANDESITE => VanillaBlocks::ANDESITE(), + Values::STONE_TYPE_ANDESITE_SMOOTH => VanillaBlocks::POLISHED_ANDESITE(), + Values::STONE_TYPE_DIORITE => VanillaBlocks::DIORITE(), + Values::STONE_TYPE_DIORITE_SMOOTH => VanillaBlocks::POLISHED_DIORITE(), + Values::STONE_TYPE_GRANITE => VanillaBlocks::GRANITE(), + Values::STONE_TYPE_GRANITE_SMOOTH => VanillaBlocks::POLISHED_GRANITE(), + Values::STONE_TYPE_STONE => VanillaBlocks::STONE(), default => throw $in->badValueException(BlockStateNames::STONE_TYPE, $type), }; }); @@ -967,11 +967,11 @@ final class BlockStateDeserializer{ $this->map(Ids::STONE_STAIRS, fn(BlockStateReader $in) => Helper::decodeStairs(VanillaBlocks::COBBLESTONE_STAIRS(), $in)); $this->map(Ids::STONEBRICK, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::STONE_BRICK_TYPE)){ - StringValues::STONE_BRICK_TYPE_SMOOTH, //TODO: bug in vanilla - StringValues::STONE_BRICK_TYPE_DEFAULT => VanillaBlocks::STONE_BRICKS(), - StringValues::STONE_BRICK_TYPE_CHISELED => VanillaBlocks::CHISELED_STONE_BRICKS(), - StringValues::STONE_BRICK_TYPE_CRACKED => VanillaBlocks::CRACKED_STONE_BRICKS(), - StringValues::STONE_BRICK_TYPE_MOSSY => VanillaBlocks::MOSSY_STONE_BRICKS(), + Values::STONE_BRICK_TYPE_SMOOTH, //TODO: bug in vanilla + Values::STONE_BRICK_TYPE_DEFAULT => VanillaBlocks::STONE_BRICKS(), + Values::STONE_BRICK_TYPE_CHISELED => VanillaBlocks::CHISELED_STONE_BRICKS(), + Values::STONE_BRICK_TYPE_CRACKED => VanillaBlocks::CRACKED_STONE_BRICKS(), + Values::STONE_BRICK_TYPE_MOSSY => VanillaBlocks::MOSSY_STONE_BRICKS(), default => throw $in->badValueException(BlockStateNames::STONE_BRICK_TYPE, $type), }; }); @@ -1008,8 +1008,8 @@ final class BlockStateDeserializer{ }); $this->map(Ids::TALLGRASS, function(BlockStateReader $in) : Block{ return match($type = $in->readString(BlockStateNames::TALL_GRASS_TYPE)){ - StringValues::TALL_GRASS_TYPE_DEFAULT, StringValues::TALL_GRASS_TYPE_SNOW, StringValues::TALL_GRASS_TYPE_TALL => VanillaBlocks::TALL_GRASS(), - StringValues::TALL_GRASS_TYPE_FERN => VanillaBlocks::FERN(), + Values::TALL_GRASS_TYPE_DEFAULT, Values::TALL_GRASS_TYPE_SNOW, Values::TALL_GRASS_TYPE_TALL => VanillaBlocks::TALL_GRASS(), + Values::TALL_GRASS_TYPE_FERN => VanillaBlocks::FERN(), default => throw $in->badValueException(BlockStateNames::TALL_GRASS_TYPE, $type), }; }); @@ -1078,12 +1078,12 @@ final class BlockStateDeserializer{ //TODO: our impl doesn't support axis yet $stripped = $in->readBool(BlockStateNames::STRIPPED_BIT); return match($woodType = $in->readString(BlockStateNames::WOOD_TYPE)){ - StringValues::WOOD_TYPE_ACACIA => $stripped ? VanillaBlocks::STRIPPED_ACACIA_WOOD() : VanillaBlocks::ACACIA_WOOD(), - StringValues::WOOD_TYPE_BIRCH => $stripped ? VanillaBlocks::STRIPPED_BIRCH_WOOD() : VanillaBlocks::BIRCH_WOOD(), - StringValues::WOOD_TYPE_DARK_OAK => $stripped ? VanillaBlocks::STRIPPED_DARK_OAK_WOOD() : VanillaBlocks::DARK_OAK_WOOD(), - StringValues::WOOD_TYPE_JUNGLE => $stripped ? VanillaBlocks::STRIPPED_JUNGLE_WOOD() : VanillaBlocks::JUNGLE_WOOD(), - StringValues::WOOD_TYPE_OAK => $stripped ? VanillaBlocks::STRIPPED_OAK_WOOD() : VanillaBlocks::OAK_WOOD(), - StringValues::WOOD_TYPE_SPRUCE => $stripped ? VanillaBlocks::STRIPPED_SPRUCE_WOOD() : VanillaBlocks::SPRUCE_WOOD(), + Values::WOOD_TYPE_ACACIA => $stripped ? VanillaBlocks::STRIPPED_ACACIA_WOOD() : VanillaBlocks::ACACIA_WOOD(), + Values::WOOD_TYPE_BIRCH => $stripped ? VanillaBlocks::STRIPPED_BIRCH_WOOD() : VanillaBlocks::BIRCH_WOOD(), + Values::WOOD_TYPE_DARK_OAK => $stripped ? VanillaBlocks::STRIPPED_DARK_OAK_WOOD() : VanillaBlocks::DARK_OAK_WOOD(), + Values::WOOD_TYPE_JUNGLE => $stripped ? VanillaBlocks::STRIPPED_JUNGLE_WOOD() : VanillaBlocks::JUNGLE_WOOD(), + Values::WOOD_TYPE_OAK => $stripped ? VanillaBlocks::STRIPPED_OAK_WOOD() : VanillaBlocks::OAK_WOOD(), + Values::WOOD_TYPE_SPRUCE => $stripped ? VanillaBlocks::STRIPPED_SPRUCE_WOOD() : VanillaBlocks::SPRUCE_WOOD(), default => throw $in->badValueException(BlockStateNames::WOOD_TYPE, $woodType), }; }); diff --git a/src/data/bedrock/blockstate/BlockStateDeserializerHelper.php b/src/data/bedrock/blockstate/BlockStateDeserializerHelper.php index c73b4f7a5..8f28ec786 100644 --- a/src/data/bedrock/blockstate/BlockStateDeserializerHelper.php +++ b/src/data/bedrock/blockstate/BlockStateDeserializerHelper.php @@ -42,7 +42,7 @@ use pocketmine\block\Stem; use pocketmine\block\Trapdoor; use pocketmine\block\VanillaBlocks; use pocketmine\block\Wall; -use pocketmine\data\bedrock\blockstate\BlockStateStringValues as StringValues; +use pocketmine\data\bedrock\blockstate\BlockStateValues as Values; use pocketmine\data\bedrock\MushroomBlockTypeIdMap; use pocketmine\math\Axis; use pocketmine\math\Facing; @@ -184,14 +184,14 @@ final class BlockStateDeserializerHelper{ public static function mapStoneSlab1Type(BlockStateReader $in) : Slab{ //* stone_slab_type (StringTag) = brick, cobblestone, nether_brick, quartz, sandstone, smooth_stone, stone_brick, wood return match($type = $in->readString(BlockStateNames::STONE_SLAB_TYPE)){ - StringValues::STONE_SLAB_TYPE_BRICK => VanillaBlocks::BRICK_SLAB(), - StringValues::STONE_SLAB_TYPE_COBBLESTONE => VanillaBlocks::COBBLESTONE_SLAB(), - StringValues::STONE_SLAB_TYPE_NETHER_BRICK => VanillaBlocks::NETHER_BRICK_SLAB(), - StringValues::STONE_SLAB_TYPE_QUARTZ => VanillaBlocks::QUARTZ_SLAB(), - StringValues::STONE_SLAB_TYPE_SANDSTONE => VanillaBlocks::SANDSTONE_SLAB(), - StringValues::STONE_SLAB_TYPE_SMOOTH_STONE => VanillaBlocks::SMOOTH_STONE_SLAB(), - StringValues::STONE_SLAB_TYPE_STONE_BRICK => VanillaBlocks::STONE_BRICK_SLAB(), - StringValues::STONE_SLAB_TYPE_WOOD => VanillaBlocks::FAKE_WOODEN_SLAB(), + Values::STONE_SLAB_TYPE_BRICK => VanillaBlocks::BRICK_SLAB(), + Values::STONE_SLAB_TYPE_COBBLESTONE => VanillaBlocks::COBBLESTONE_SLAB(), + Values::STONE_SLAB_TYPE_NETHER_BRICK => VanillaBlocks::NETHER_BRICK_SLAB(), + Values::STONE_SLAB_TYPE_QUARTZ => VanillaBlocks::QUARTZ_SLAB(), + Values::STONE_SLAB_TYPE_SANDSTONE => VanillaBlocks::SANDSTONE_SLAB(), + Values::STONE_SLAB_TYPE_SMOOTH_STONE => VanillaBlocks::SMOOTH_STONE_SLAB(), + Values::STONE_SLAB_TYPE_STONE_BRICK => VanillaBlocks::STONE_BRICK_SLAB(), + Values::STONE_SLAB_TYPE_WOOD => VanillaBlocks::FAKE_WOODEN_SLAB(), default => throw $in->badValueException(BlockStateNames::STONE_SLAB_TYPE, $type), }; } @@ -200,14 +200,14 @@ final class BlockStateDeserializerHelper{ public static function mapStoneSlab2Type(BlockStateReader $in) : Slab{ // * stone_slab_type_2 (StringTag) = mossy_cobblestone, prismarine_brick, prismarine_dark, prismarine_rough, purpur, red_nether_brick, red_sandstone, smooth_sandstone return match($type = $in->readString(BlockStateNames::STONE_SLAB_TYPE_2)){ - StringValues::STONE_SLAB_TYPE_2_MOSSY_COBBLESTONE => VanillaBlocks::MOSSY_COBBLESTONE_SLAB(), - StringValues::STONE_SLAB_TYPE_2_PRISMARINE_BRICK => VanillaBlocks::PRISMARINE_BRICKS_SLAB(), - StringValues::STONE_SLAB_TYPE_2_PRISMARINE_DARK => VanillaBlocks::DARK_PRISMARINE_SLAB(), - StringValues::STONE_SLAB_TYPE_2_PRISMARINE_ROUGH => VanillaBlocks::PRISMARINE_SLAB(), - StringValues::STONE_SLAB_TYPE_2_PURPUR => VanillaBlocks::PURPUR_SLAB(), - StringValues::STONE_SLAB_TYPE_2_RED_NETHER_BRICK => VanillaBlocks::RED_NETHER_BRICK_SLAB(), - StringValues::STONE_SLAB_TYPE_2_RED_SANDSTONE => VanillaBlocks::RED_SANDSTONE_SLAB(), - StringValues::STONE_SLAB_TYPE_2_SMOOTH_SANDSTONE => VanillaBlocks::SMOOTH_SANDSTONE_SLAB(), + Values::STONE_SLAB_TYPE_2_MOSSY_COBBLESTONE => VanillaBlocks::MOSSY_COBBLESTONE_SLAB(), + Values::STONE_SLAB_TYPE_2_PRISMARINE_BRICK => VanillaBlocks::PRISMARINE_BRICKS_SLAB(), + Values::STONE_SLAB_TYPE_2_PRISMARINE_DARK => VanillaBlocks::DARK_PRISMARINE_SLAB(), + Values::STONE_SLAB_TYPE_2_PRISMARINE_ROUGH => VanillaBlocks::PRISMARINE_SLAB(), + Values::STONE_SLAB_TYPE_2_PURPUR => VanillaBlocks::PURPUR_SLAB(), + Values::STONE_SLAB_TYPE_2_RED_NETHER_BRICK => VanillaBlocks::RED_NETHER_BRICK_SLAB(), + Values::STONE_SLAB_TYPE_2_RED_SANDSTONE => VanillaBlocks::RED_SANDSTONE_SLAB(), + Values::STONE_SLAB_TYPE_2_SMOOTH_SANDSTONE => VanillaBlocks::SMOOTH_SANDSTONE_SLAB(), default => throw $in->badValueException(BlockStateNames::STONE_SLAB_TYPE_2, $type), }; } @@ -216,14 +216,14 @@ final class BlockStateDeserializerHelper{ public static function mapStoneSlab3Type(BlockStateReader $in) : Slab{ // * stone_slab_type_3 (StringTag) = andesite, diorite, end_stone_brick, granite, polished_andesite, polished_diorite, polished_granite, smooth_red_sandstone return match($type = $in->readString(BlockStateNames::STONE_SLAB_TYPE_3)){ - StringValues::STONE_SLAB_TYPE_3_ANDESITE => VanillaBlocks::ANDESITE_SLAB(), - StringValues::STONE_SLAB_TYPE_3_DIORITE => VanillaBlocks::DIORITE_SLAB(), - StringValues::STONE_SLAB_TYPE_3_END_STONE_BRICK => VanillaBlocks::END_STONE_BRICK_SLAB(), - StringValues::STONE_SLAB_TYPE_3_GRANITE => VanillaBlocks::GRANITE_SLAB(), - StringValues::STONE_SLAB_TYPE_3_POLISHED_ANDESITE => VanillaBlocks::POLISHED_ANDESITE_SLAB(), - StringValues::STONE_SLAB_TYPE_3_POLISHED_DIORITE => VanillaBlocks::POLISHED_DIORITE_SLAB(), - StringValues::STONE_SLAB_TYPE_3_POLISHED_GRANITE => VanillaBlocks::POLISHED_GRANITE_SLAB(), - StringValues::STONE_SLAB_TYPE_3_SMOOTH_RED_SANDSTONE => VanillaBlocks::SMOOTH_RED_SANDSTONE_SLAB(), + Values::STONE_SLAB_TYPE_3_ANDESITE => VanillaBlocks::ANDESITE_SLAB(), + Values::STONE_SLAB_TYPE_3_DIORITE => VanillaBlocks::DIORITE_SLAB(), + Values::STONE_SLAB_TYPE_3_END_STONE_BRICK => VanillaBlocks::END_STONE_BRICK_SLAB(), + Values::STONE_SLAB_TYPE_3_GRANITE => VanillaBlocks::GRANITE_SLAB(), + Values::STONE_SLAB_TYPE_3_POLISHED_ANDESITE => VanillaBlocks::POLISHED_ANDESITE_SLAB(), + Values::STONE_SLAB_TYPE_3_POLISHED_DIORITE => VanillaBlocks::POLISHED_DIORITE_SLAB(), + Values::STONE_SLAB_TYPE_3_POLISHED_GRANITE => VanillaBlocks::POLISHED_GRANITE_SLAB(), + Values::STONE_SLAB_TYPE_3_SMOOTH_RED_SANDSTONE => VanillaBlocks::SMOOTH_RED_SANDSTONE_SLAB(), default => throw $in->badValueException(BlockStateNames::STONE_SLAB_TYPE_3, $type), }; } @@ -232,11 +232,11 @@ final class BlockStateDeserializerHelper{ public static function mapStoneSlab4Type(BlockStateReader $in) : Slab{ // * stone_slab_type_4 (StringTag) = cut_red_sandstone, cut_sandstone, mossy_stone_brick, smooth_quartz, stone return match($type = $in->readString(BlockStateNames::STONE_SLAB_TYPE_4)){ - StringValues::STONE_SLAB_TYPE_4_CUT_RED_SANDSTONE => VanillaBlocks::CUT_RED_SANDSTONE_SLAB(), - StringValues::STONE_SLAB_TYPE_4_CUT_SANDSTONE => VanillaBlocks::CUT_SANDSTONE_SLAB(), - StringValues::STONE_SLAB_TYPE_4_MOSSY_STONE_BRICK => VanillaBlocks::MOSSY_STONE_BRICK_SLAB(), - StringValues::STONE_SLAB_TYPE_4_SMOOTH_QUARTZ => VanillaBlocks::SMOOTH_QUARTZ_SLAB(), - StringValues::STONE_SLAB_TYPE_4_STONE => VanillaBlocks::STONE_SLAB(), + Values::STONE_SLAB_TYPE_4_CUT_RED_SANDSTONE => VanillaBlocks::CUT_RED_SANDSTONE_SLAB(), + Values::STONE_SLAB_TYPE_4_CUT_SANDSTONE => VanillaBlocks::CUT_SANDSTONE_SLAB(), + Values::STONE_SLAB_TYPE_4_MOSSY_STONE_BRICK => VanillaBlocks::MOSSY_STONE_BRICK_SLAB(), + Values::STONE_SLAB_TYPE_4_SMOOTH_QUARTZ => VanillaBlocks::SMOOTH_QUARTZ_SLAB(), + Values::STONE_SLAB_TYPE_4_STONE => VanillaBlocks::STONE_SLAB(), default => throw $in->badValueException(BlockStateNames::STONE_SLAB_TYPE_4, $type), }; } @@ -245,12 +245,12 @@ final class BlockStateDeserializerHelper{ public static function mapWoodenSlabType(BlockStateReader $in) : Slab{ // * wood_type (StringTag) = acacia, birch, dark_oak, jungle, oak, spruce return match($type = $in->readString(BlockStateNames::WOOD_TYPE)){ - StringValues::WOOD_TYPE_ACACIA => VanillaBlocks::ACACIA_SLAB(), - StringValues::WOOD_TYPE_BIRCH => VanillaBlocks::BIRCH_SLAB(), - StringValues::WOOD_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_SLAB(), - StringValues::WOOD_TYPE_JUNGLE => VanillaBlocks::JUNGLE_SLAB(), - StringValues::WOOD_TYPE_OAK => VanillaBlocks::OAK_SLAB(), - StringValues::WOOD_TYPE_SPRUCE => VanillaBlocks::SPRUCE_SLAB(), + Values::WOOD_TYPE_ACACIA => VanillaBlocks::ACACIA_SLAB(), + Values::WOOD_TYPE_BIRCH => VanillaBlocks::BIRCH_SLAB(), + Values::WOOD_TYPE_DARK_OAK => VanillaBlocks::DARK_OAK_SLAB(), + Values::WOOD_TYPE_JUNGLE => VanillaBlocks::JUNGLE_SLAB(), + Values::WOOD_TYPE_OAK => VanillaBlocks::OAK_SLAB(), + Values::WOOD_TYPE_SPRUCE => VanillaBlocks::SPRUCE_SLAB(), default => throw $in->badValueException(BlockStateNames::WOOD_TYPE, $type), }; } diff --git a/src/data/bedrock/blockstate/BlockStateReader.php b/src/data/bedrock/blockstate/BlockStateReader.php index 21537e452..d0767daa1 100644 --- a/src/data/bedrock/blockstate/BlockStateReader.php +++ b/src/data/bedrock/blockstate/BlockStateReader.php @@ -27,7 +27,7 @@ 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\BlockStateStringValues as StringValues; +use pocketmine\data\bedrock\blockstate\BlockStateValues as Values; use pocketmine\math\Axis; use pocketmine\math\Facing; use pocketmine\nbt\tag\ByteTag; @@ -161,22 +161,22 @@ final class BlockStateReader{ public function readColor() : DyeColor{ // * color (StringTag) = black, blue, brown, cyan, gray, green, light_blue, lime, magenta, orange, pink, purple, red, silver, white, yellow return match($color = $this->readString(BlockStateNames::COLOR)){ - StringValues::COLOR_BLACK => DyeColor::BLACK(), - StringValues::COLOR_BLUE => DyeColor::BLUE(), - StringValues::COLOR_BROWN => DyeColor::BROWN(), - StringValues::COLOR_CYAN => DyeColor::CYAN(), - StringValues::COLOR_GRAY => DyeColor::GRAY(), - StringValues::COLOR_GREEN => DyeColor::GREEN(), - StringValues::COLOR_LIGHT_BLUE => DyeColor::LIGHT_BLUE(), - StringValues::COLOR_LIME => DyeColor::LIME(), - StringValues::COLOR_MAGENTA => DyeColor::MAGENTA(), - StringValues::COLOR_ORANGE => DyeColor::ORANGE(), - StringValues::COLOR_PINK => DyeColor::PINK(), - StringValues::COLOR_PURPLE => DyeColor::PURPLE(), - StringValues::COLOR_RED => DyeColor::RED(), - StringValues::COLOR_SILVER => DyeColor::LIGHT_GRAY(), - StringValues::COLOR_WHITE => DyeColor::WHITE(), - StringValues::COLOR_YELLOW => DyeColor::YELLOW(), + Values::COLOR_BLACK => DyeColor::BLACK(), + Values::COLOR_BLUE => DyeColor::BLUE(), + Values::COLOR_BROWN => DyeColor::BROWN(), + Values::COLOR_CYAN => DyeColor::CYAN(), + Values::COLOR_GRAY => DyeColor::GRAY(), + Values::COLOR_GREEN => DyeColor::GREEN(), + Values::COLOR_LIGHT_BLUE => DyeColor::LIGHT_BLUE(), + Values::COLOR_LIME => DyeColor::LIME(), + Values::COLOR_MAGENTA => DyeColor::MAGENTA(), + Values::COLOR_ORANGE => DyeColor::ORANGE(), + Values::COLOR_PINK => DyeColor::PINK(), + Values::COLOR_PURPLE => DyeColor::PURPLE(), + Values::COLOR_RED => DyeColor::RED(), + Values::COLOR_SILVER => DyeColor::LIGHT_GRAY(), + Values::COLOR_WHITE => DyeColor::WHITE(), + Values::COLOR_YELLOW => DyeColor::YELLOW(), default => throw $this->badValueException(BlockStateNames::COLOR, $color), }; } @@ -215,9 +215,9 @@ final class BlockStateReader{ public function readPillarAxis() : int{ $rawValue = $this->readString(BlockStateNames::PILLAR_AXIS); $value = [ - StringValues::PILLAR_AXIS_X => Axis::X, - StringValues::PILLAR_AXIS_Y => Axis::Y, - StringValues::PILLAR_AXIS_Z => Axis::Z + Values::PILLAR_AXIS_X => Axis::X, + Values::PILLAR_AXIS_Y => Axis::Y, + Values::PILLAR_AXIS_Z => Axis::Z ][$rawValue] ?? null; if($value === null){ throw $this->badValueException(BlockStateNames::PILLAR_AXIS, $rawValue, "Invalid axis value"); @@ -236,12 +236,12 @@ final class BlockStateReader{ */ public function readTorchFacing() : int{ return match($rawValue = $this->readString(BlockStateNames::TORCH_FACING_DIRECTION)){ - StringValues::TORCH_FACING_DIRECTION_EAST => Facing::EAST, - StringValues::TORCH_FACING_DIRECTION_NORTH => Facing::NORTH, - StringValues::TORCH_FACING_DIRECTION_SOUTH => Facing::SOUTH, - StringValues::TORCH_FACING_DIRECTION_TOP => Facing::UP, - StringValues::TORCH_FACING_DIRECTION_UNKNOWN => Facing::UP, //should be illegal, but 1.13 allows it - StringValues::TORCH_FACING_DIRECTION_WEST => Facing::WEST, + Values::TORCH_FACING_DIRECTION_EAST => Facing::EAST, + Values::TORCH_FACING_DIRECTION_NORTH => Facing::NORTH, + Values::TORCH_FACING_DIRECTION_SOUTH => Facing::SOUTH, + Values::TORCH_FACING_DIRECTION_TOP => Facing::UP, + Values::TORCH_FACING_DIRECTION_UNKNOWN => Facing::UP, //should be illegal, but 1.13 allows it + Values::TORCH_FACING_DIRECTION_WEST => Facing::WEST, default => throw $this->badValueException(BlockStateNames::TORCH_FACING_DIRECTION, $rawValue, "Invalid torch facing"), }; } @@ -249,11 +249,11 @@ final class BlockStateReader{ /** @throws BlockStateDeserializeException */ public function readCoralType() : CoralType{ return match($type = $this->readString(BlockStateNames::CORAL_COLOR)){ - StringValues::CORAL_COLOR_BLUE => CoralType::TUBE(), - StringValues::CORAL_COLOR_PINK => CoralType::BRAIN(), - StringValues::CORAL_COLOR_PURPLE => CoralType::BUBBLE(), - StringValues::CORAL_COLOR_RED => CoralType::FIRE(), - StringValues::CORAL_COLOR_YELLOW => CoralType::HORN(), + Values::CORAL_COLOR_BLUE => CoralType::TUBE(), + Values::CORAL_COLOR_PINK => CoralType::BRAIN(), + Values::CORAL_COLOR_PURPLE => CoralType::BUBBLE(), + Values::CORAL_COLOR_RED => CoralType::FIRE(), + Values::CORAL_COLOR_YELLOW => CoralType::HORN(), default => throw $this->badValueException(BlockStateNames::CORAL_COLOR, $type), }; } @@ -261,10 +261,10 @@ final class BlockStateReader{ /** @throws BlockStateDeserializeException */ public function readBellAttachmentType() : BellAttachmentType{ return match($type = $this->readString(BlockStateNames::ATTACHMENT)){ - StringValues::ATTACHMENT_HANGING => BellAttachmentType::CEILING(), - StringValues::ATTACHMENT_STANDING => BellAttachmentType::FLOOR(), - StringValues::ATTACHMENT_SIDE => BellAttachmentType::ONE_WALL(), - StringValues::ATTACHMENT_MULTIPLE => BellAttachmentType::TWO_WALLS(), + Values::ATTACHMENT_HANGING => BellAttachmentType::CEILING(), + Values::ATTACHMENT_STANDING => BellAttachmentType::FLOOR(), + Values::ATTACHMENT_SIDE => BellAttachmentType::ONE_WALL(), + Values::ATTACHMENT_MULTIPLE => BellAttachmentType::TWO_WALLS(), default => throw $this->badValueException(BlockStateNames::ATTACHMENT, $type), }; } diff --git a/src/data/bedrock/blockstate/BlockStateStringValues.php b/src/data/bedrock/blockstate/BlockStateStringValues.php deleted file mode 100644 index 689f22be4..000000000 --- a/src/data/bedrock/blockstate/BlockStateStringValues.php +++ /dev/null @@ -1,297 +0,0 @@ -writeString(BlockStateNames::COLOR, match($color->id()){ - DyeColor::BLACK()->id() => StringValues::COLOR_BLACK, - DyeColor::BLUE()->id() => StringValues::COLOR_BLUE, - DyeColor::BROWN()->id() => StringValues::COLOR_BROWN, - DyeColor::CYAN()->id() => StringValues::COLOR_CYAN, - DyeColor::GRAY()->id() => StringValues::COLOR_GRAY, - DyeColor::GREEN()->id() => StringValues::COLOR_GREEN, - DyeColor::LIGHT_BLUE()->id() => StringValues::COLOR_LIGHT_BLUE, - DyeColor::LIGHT_GRAY()->id() => StringValues::COLOR_SILVER, - DyeColor::LIME()->id() => StringValues::COLOR_LIME, - DyeColor::MAGENTA()->id() => StringValues::COLOR_MAGENTA, - DyeColor::ORANGE()->id() => StringValues::COLOR_ORANGE, - DyeColor::PINK()->id() => StringValues::COLOR_PINK, - DyeColor::PURPLE()->id() => StringValues::COLOR_PURPLE, - DyeColor::RED()->id() => StringValues::COLOR_RED, - DyeColor::WHITE()->id() => StringValues::COLOR_WHITE, - DyeColor::YELLOW()->id() => StringValues::COLOR_YELLOW, + DyeColor::BLACK()->id() => Values::COLOR_BLACK, + DyeColor::BLUE()->id() => Values::COLOR_BLUE, + DyeColor::BROWN()->id() => Values::COLOR_BROWN, + DyeColor::CYAN()->id() => Values::COLOR_CYAN, + DyeColor::GRAY()->id() => Values::COLOR_GRAY, + DyeColor::GREEN()->id() => Values::COLOR_GREEN, + DyeColor::LIGHT_BLUE()->id() => Values::COLOR_LIGHT_BLUE, + DyeColor::LIGHT_GRAY()->id() => Values::COLOR_SILVER, + DyeColor::LIME()->id() => Values::COLOR_LIME, + DyeColor::MAGENTA()->id() => Values::COLOR_MAGENTA, + DyeColor::ORANGE()->id() => Values::COLOR_ORANGE, + DyeColor::PINK()->id() => Values::COLOR_PINK, + DyeColor::PURPLE()->id() => Values::COLOR_PURPLE, + DyeColor::RED()->id() => Values::COLOR_RED, + DyeColor::WHITE()->id() => Values::COLOR_WHITE, + DyeColor::YELLOW()->id() => Values::COLOR_YELLOW, default => throw new BlockStateSerializeException("Invalid Color " . $color->name()) }); return $this; @@ -164,9 +164,9 @@ final class BlockStateWriter{ /** @return $this */ public function writePillarAxis(int $axis) : self{ $this->writeString(BlockStateNames::PILLAR_AXIS, match($axis){ - Axis::X => StringValues::PILLAR_AXIS_X, - Axis::Y => StringValues::PILLAR_AXIS_Y, - Axis::Z => StringValues::PILLAR_AXIS_Z, + Axis::X => Values::PILLAR_AXIS_X, + Axis::Y => Values::PILLAR_AXIS_Y, + Axis::Z => Values::PILLAR_AXIS_Z, default => throw new BlockStateSerializeException("Invalid axis $axis") }); return $this; @@ -185,11 +185,11 @@ final class BlockStateWriter{ /** @return $this */ public function writeTorchFacing(int $facing) : self{ $this->writeString(BlockStateNames::TORCH_FACING_DIRECTION, match($facing){ - Facing::UP => StringValues::TORCH_FACING_DIRECTION_TOP, - Facing::NORTH => StringValues::TORCH_FACING_DIRECTION_NORTH, - Facing::SOUTH => StringValues::TORCH_FACING_DIRECTION_SOUTH, - Facing::WEST => StringValues::TORCH_FACING_DIRECTION_WEST, - Facing::EAST => StringValues::TORCH_FACING_DIRECTION_EAST, + Facing::UP => Values::TORCH_FACING_DIRECTION_TOP, + Facing::NORTH => Values::TORCH_FACING_DIRECTION_NORTH, + Facing::SOUTH => Values::TORCH_FACING_DIRECTION_SOUTH, + Facing::WEST => Values::TORCH_FACING_DIRECTION_WEST, + Facing::EAST => Values::TORCH_FACING_DIRECTION_EAST, default => throw new BlockStateSerializeException("Invalid Torch facing $facing") }); return $this; @@ -198,11 +198,11 @@ final class BlockStateWriter{ /** @return $this */ public function writeCoralType(CoralType $coralType) : self{ $this->writeString(BlockStateNames::CORAL_COLOR, match($coralType->id()){ - CoralType::TUBE()->id() => StringValues::CORAL_COLOR_BLUE, - CoralType::BRAIN()->id() => StringValues::CORAL_COLOR_PINK, - CoralType::BUBBLE()->id() => StringValues::CORAL_COLOR_PURPLE, - CoralType::FIRE()->id() => StringValues::CORAL_COLOR_RED, - CoralType::HORN()->id() => StringValues::CORAL_COLOR_YELLOW, + CoralType::TUBE()->id() => Values::CORAL_COLOR_BLUE, + CoralType::BRAIN()->id() => Values::CORAL_COLOR_PINK, + CoralType::BUBBLE()->id() => Values::CORAL_COLOR_PURPLE, + CoralType::FIRE()->id() => Values::CORAL_COLOR_RED, + CoralType::HORN()->id() => Values::CORAL_COLOR_YELLOW, default => throw new BlockStateSerializeException("Invalid Coral type " . $coralType->name()) }); return $this; @@ -211,10 +211,10 @@ final class BlockStateWriter{ /** @return $this */ public function writeBellAttachmentType(BellAttachmentType $attachmentType) : self{ $this->writeString(BlockStateNames::ATTACHMENT, match($attachmentType->id()){ - BellAttachmentType::FLOOR()->id() => StringValues::ATTACHMENT_STANDING, - BellAttachmentType::CEILING()->id() => StringValues::ATTACHMENT_HANGING, - BellAttachmentType::ONE_WALL()->id() => StringValues::ATTACHMENT_SIDE, - BellAttachmentType::TWO_WALLS()->id() => StringValues::ATTACHMENT_MULTIPLE, + BellAttachmentType::FLOOR()->id() => Values::ATTACHMENT_STANDING, + BellAttachmentType::CEILING()->id() => Values::ATTACHMENT_HANGING, + BellAttachmentType::ONE_WALL()->id() => Values::ATTACHMENT_SIDE, + BellAttachmentType::TWO_WALLS()->id() => Values::ATTACHMENT_MULTIPLE, default => throw new BlockStateSerializeException("Invalid Bell attachment type " . $attachmentType->name()) }); return $this;