diff --git a/composer.lock b/composer.lock index b419066c8..16160f851 100644 --- a/composer.lock +++ b/composer.lock @@ -253,12 +253,12 @@ "source": { "type": "git", "url": "https://github.com/pmmp/BedrockBlockUpgradeSchema.git", - "reference": "826fb285c7e8e6fd8e0f0184b9ce37813d5102f4" + "reference": "68a411921c52260248f18716a129f85126b871fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/826fb285c7e8e6fd8e0f0184b9ce37813d5102f4", - "reference": "826fb285c7e8e6fd8e0f0184b9ce37813d5102f4", + "url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/68a411921c52260248f18716a129f85126b871fb", + "reference": "68a411921c52260248f18716a129f85126b871fb", "shasum": "" }, "default-branch": true, @@ -272,7 +272,7 @@ "issues": "https://github.com/pmmp/BedrockBlockUpgradeSchema/issues", "source": "https://github.com/pmmp/BedrockBlockUpgradeSchema/tree/master" }, - "time": "2022-05-13T19:44:35+00:00" + "time": "2022-06-07T17:46:29+00:00" }, { "name": "pocketmine/bedrock-data", diff --git a/src/data/bedrock/blockstate/BlockStateNames.php b/src/data/bedrock/blockstate/BlockStateNames.php index 2d4645ac0..e902df92d 100644 --- a/src/data/bedrock/blockstate/BlockStateNames.php +++ b/src/data/bedrock/blockstate/BlockStateNames.php @@ -42,6 +42,7 @@ final class BlockStateNames{ public const BREWING_STAND_SLOT_B_BIT = "brewing_stand_slot_b_bit"; public const BREWING_STAND_SLOT_C_BIT = "brewing_stand_slot_c_bit"; public const BUTTON_PRESSED_BIT = "button_pressed_bit"; + public const CAN_SUMMON = "can_summon"; public const CANDLES = "candles"; public const CAULDRON_LIQUID = "cauldron_liquid"; public const CHEMISTRY_TABLE_TYPE = "chemistry_table_type"; @@ -105,6 +106,7 @@ final class BlockStateNames{ public const PORTAL_AXIS = "portal_axis"; public const POWERED_BIT = "powered_bit"; public const PRISMARINE_BLOCK_TYPE = "prismarine_block_type"; + public const PROPAGULE_STAGE = "propagule_stage"; public const RAIL_DATA_BIT = "rail_data_bit"; public const RAIL_DIRECTION = "rail_direction"; public const REDSTONE_SIGNAL = "redstone_signal"; diff --git a/src/data/bedrock/blockstate/BlockTypeNames.php b/src/data/bedrock/blockstate/BlockTypeNames.php index 6bd912fbd..dcfb2e71f 100644 --- a/src/data/bedrock/blockstate/BlockTypeNames.php +++ b/src/data/bedrock/blockstate/BlockTypeNames.php @@ -220,10 +220,10 @@ final class BlockTypeNames{ public const DISPENSER = "minecraft:dispenser"; public const DOUBLE_CUT_COPPER_SLAB = "minecraft:double_cut_copper_slab"; public const DOUBLE_PLANT = "minecraft:double_plant"; - public const DOUBLE_STONE_SLAB = "minecraft:double_stone_slab"; - public const DOUBLE_STONE_SLAB2 = "minecraft:double_stone_slab2"; - public const DOUBLE_STONE_SLAB3 = "minecraft:double_stone_slab3"; - public const DOUBLE_STONE_SLAB4 = "minecraft:double_stone_slab4"; + public const DOUBLE_STONE_BLOCK_SLAB = "minecraft:double_stone_block_slab"; + public const DOUBLE_STONE_BLOCK_SLAB2 = "minecraft:double_stone_block_slab2"; + public const DOUBLE_STONE_BLOCK_SLAB3 = "minecraft:double_stone_block_slab3"; + public const DOUBLE_STONE_BLOCK_SLAB4 = "minecraft:double_stone_block_slab4"; public const DOUBLE_WOODEN_SLAB = "minecraft:double_wooden_slab"; public const DRAGON_EGG = "minecraft:dragon_egg"; public const DRIED_KELP_BLOCK = "minecraft:dried_kelp_block"; @@ -467,9 +467,23 @@ final class BlockTypeNames{ public const MAGENTA_CANDLE_CAKE = "minecraft:magenta_candle_cake"; public const MAGENTA_GLAZED_TERRACOTTA = "minecraft:magenta_glazed_terracotta"; public const MAGMA = "minecraft:magma"; + public const MANGROVE_BUTTON = "minecraft:mangrove_button"; + public const MANGROVE_DOOR = "minecraft:mangrove_door"; + public const MANGROVE_DOUBLE_SLAB = "minecraft:mangrove_double_slab"; + public const MANGROVE_FENCE = "minecraft:mangrove_fence"; + public const MANGROVE_FENCE_GATE = "minecraft:mangrove_fence_gate"; public const MANGROVE_LEAVES = "minecraft:mangrove_leaves"; + public const MANGROVE_LOG = "minecraft:mangrove_log"; + public const MANGROVE_PLANKS = "minecraft:mangrove_planks"; + public const MANGROVE_PRESSURE_PLATE = "minecraft:mangrove_pressure_plate"; public const MANGROVE_PROPAGULE = "minecraft:mangrove_propagule"; - public const MANGROVE_PROPAGULE_HANGING = "minecraft:mangrove_propagule_hanging"; + public const MANGROVE_ROOTS = "minecraft:mangrove_roots"; + public const MANGROVE_SLAB = "minecraft:mangrove_slab"; + public const MANGROVE_STAIRS = "minecraft:mangrove_stairs"; + public const MANGROVE_STANDING_SIGN = "minecraft:mangrove_standing_sign"; + public const MANGROVE_TRAPDOOR = "minecraft:mangrove_trapdoor"; + public const MANGROVE_WALL_SIGN = "minecraft:mangrove_wall_sign"; + public const MANGROVE_WOOD = "minecraft:mangrove_wood"; public const MEDIUM_AMETHYST_BUD = "minecraft:medium_amethyst_bud"; public const MELON_BLOCK = "minecraft:melon_block"; public const MELON_STEM = "minecraft:melon_stem"; @@ -487,6 +501,7 @@ final class BlockTypeNames{ public const MUD_BRICK_STAIRS = "minecraft:mud_brick_stairs"; public const MUD_BRICK_WALL = "minecraft:mud_brick_wall"; public const MUD_BRICKS = "minecraft:mud_bricks"; + public const MUDDY_MANGROVE_ROOTS = "minecraft:muddy_mangrove_roots"; public const MYCELIUM = "minecraft:mycelium"; public const NETHER_BRICK = "minecraft:nether_brick"; public const NETHER_BRICK_FENCE = "minecraft:nether_brick_fence"; @@ -640,13 +655,13 @@ final class BlockTypeNames{ public const STICKY_PISTON = "minecraft:sticky_piston"; public const STICKY_PISTON_ARM_COLLISION = "minecraft:sticky_piston_arm_collision"; public const STONE = "minecraft:stone"; + public const STONE_BLOCK_SLAB = "minecraft:stone_block_slab"; + public const STONE_BLOCK_SLAB2 = "minecraft:stone_block_slab2"; + public const STONE_BLOCK_SLAB3 = "minecraft:stone_block_slab3"; + public const STONE_BLOCK_SLAB4 = "minecraft:stone_block_slab4"; public const STONE_BRICK_STAIRS = "minecraft:stone_brick_stairs"; public const STONE_BUTTON = "minecraft:stone_button"; public const STONE_PRESSURE_PLATE = "minecraft:stone_pressure_plate"; - public const STONE_SLAB = "minecraft:stone_slab"; - public const STONE_SLAB2 = "minecraft:stone_slab2"; - public const STONE_SLAB3 = "minecraft:stone_slab3"; - public const STONE_SLAB4 = "minecraft:stone_slab4"; public const STONE_STAIRS = "minecraft:stone_stairs"; public const STONEBRICK = "minecraft:stonebrick"; public const STONECUTTER = "minecraft:stonecutter"; @@ -657,6 +672,8 @@ final class BlockTypeNames{ public const STRIPPED_CRIMSON_STEM = "minecraft:stripped_crimson_stem"; public const STRIPPED_DARK_OAK_LOG = "minecraft:stripped_dark_oak_log"; public const STRIPPED_JUNGLE_LOG = "minecraft:stripped_jungle_log"; + public const STRIPPED_MANGROVE_LOG = "minecraft:stripped_mangrove_log"; + public const STRIPPED_MANGROVE_WOOD = "minecraft:stripped_mangrove_wood"; public const STRIPPED_OAK_LOG = "minecraft:stripped_oak_log"; public const STRIPPED_SPRUCE_LOG = "minecraft:stripped_spruce_log"; public const STRIPPED_WARPED_HYPHAE = "minecraft:stripped_warped_hyphae"; diff --git a/src/data/bedrock/blockstate/convert/BlockStateSerializerHelper.php b/src/data/bedrock/blockstate/convert/BlockStateSerializerHelper.php index 4fe10ee90..9fc53c20e 100644 --- a/src/data/bedrock/blockstate/convert/BlockStateSerializerHelper.php +++ b/src/data/bedrock/blockstate/convert/BlockStateSerializerHelper.php @@ -222,19 +222,19 @@ final class BlockStateSerializerHelper{ } public static function encodeStoneSlab1(Slab $block, string $typeValue) : BlockStateWriter{ - return self::encodeStoneSlab($block, Ids::STONE_SLAB, Ids::DOUBLE_STONE_SLAB, BlockStateNames::STONE_SLAB_TYPE, $typeValue); + return self::encodeStoneSlab($block, Ids::STONE_BLOCK_SLAB, Ids::DOUBLE_STONE_BLOCK_SLAB, BlockStateNames::STONE_SLAB_TYPE, $typeValue); } public static function encodeStoneSlab2(Slab $block, string $typeValue) : BlockStateWriter{ - return self::encodeStoneSlab($block, Ids::STONE_SLAB2, Ids::DOUBLE_STONE_SLAB2, BlockStateNames::STONE_SLAB_TYPE_2, $typeValue); + return self::encodeStoneSlab($block, Ids::STONE_BLOCK_SLAB2, Ids::DOUBLE_STONE_BLOCK_SLAB2, BlockStateNames::STONE_SLAB_TYPE_2, $typeValue); } public static function encodeStoneSlab3(Slab $block, string $typeValue) : BlockStateWriter{ - return self::encodeStoneSlab($block, Ids::STONE_SLAB3, Ids::DOUBLE_STONE_SLAB3, BlockStateNames::STONE_SLAB_TYPE_3, $typeValue); + return self::encodeStoneSlab($block, Ids::STONE_BLOCK_SLAB3, Ids::DOUBLE_STONE_BLOCK_SLAB3, BlockStateNames::STONE_SLAB_TYPE_3, $typeValue); } public static function encodeStoneSlab4(Slab $block, string $typeValue) : BlockStateWriter{ - return self::encodeStoneSlab($block, Ids::STONE_SLAB4, Ids::DOUBLE_STONE_SLAB4, BlockStateNames::STONE_SLAB_TYPE_4, $typeValue); + return self::encodeStoneSlab($block, Ids::STONE_BLOCK_SLAB4, Ids::DOUBLE_STONE_BLOCK_SLAB4, BlockStateNames::STONE_SLAB_TYPE_4, $typeValue); } public static function encodeTrapdoor(Trapdoor $block, BlockStateWriter $out) : BlockStateWriter{ diff --git a/src/data/bedrock/blockstate/convert/BlockStateToBlockObjectDeserializer.php b/src/data/bedrock/blockstate/convert/BlockStateToBlockObjectDeserializer.php index d81b7d2d6..95f755e81 100644 --- a/src/data/bedrock/blockstate/convert/BlockStateToBlockObjectDeserializer.php +++ b/src/data/bedrock/blockstate/convert/BlockStateToBlockObjectDeserializer.php @@ -298,19 +298,19 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize default => throw $in->badValueException(StateNames::DOUBLE_PLANT_TYPE, $type), })->setTop($in->readBool(StateNames::UPPER_BLOCK_BIT)); }); - $this->map(Ids::DOUBLE_STONE_SLAB, function(Reader $in) : Block{ + $this->map(Ids::DOUBLE_STONE_BLOCK_SLAB, function(Reader $in) : Block{ $in->ignored(StateNames::TOP_SLOT_BIT); //useless for double slabs return Helper::mapStoneSlab1Type($in)->setSlabType(SlabType::DOUBLE()); }); - $this->map(Ids::DOUBLE_STONE_SLAB2, function(Reader $in) : Block{ + $this->map(Ids::DOUBLE_STONE_BLOCK_SLAB2, function(Reader $in) : Block{ $in->ignored(StateNames::TOP_SLOT_BIT); //useless for double slabs return Helper::mapStoneSlab2Type($in)->setSlabType(SlabType::DOUBLE()); }); - $this->map(Ids::DOUBLE_STONE_SLAB3, function(Reader $in) : Block{ + $this->map(Ids::DOUBLE_STONE_BLOCK_SLAB3, function(Reader $in) : Block{ $in->ignored(StateNames::TOP_SLOT_BIT); //useless for double slabs return Helper::mapStoneSlab3Type($in)->setSlabType(SlabType::DOUBLE()); }); - $this->map(Ids::DOUBLE_STONE_SLAB4, function(Reader $in) : Block{ + $this->map(Ids::DOUBLE_STONE_BLOCK_SLAB4, function(Reader $in) : Block{ $in->ignored(StateNames::TOP_SLOT_BIT); //useless for double slabs return Helper::mapStoneSlab4Type($in)->setSlabType(SlabType::DOUBLE()); }); @@ -939,10 +939,10 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize $this->map(Ids::STONE_BRICK_STAIRS, fn(Reader $in) => Helper::decodeStairs(Blocks::STONE_BRICK_STAIRS(), $in)); $this->map(Ids::STONE_BUTTON, fn(Reader $in) => Helper::decodeButton(Blocks::STONE_BUTTON(), $in)); $this->map(Ids::STONE_PRESSURE_PLATE, fn(Reader $in) => Helper::decodeSimplePressurePlate(Blocks::STONE_PRESSURE_PLATE(), $in)); - $this->map(Ids::STONE_SLAB, fn(Reader $in) => Helper::mapStoneSlab1Type($in)->setSlabType($in->readSlabPosition())); - $this->map(Ids::STONE_SLAB2, fn(Reader $in) => Helper::mapStoneSlab2Type($in)->setSlabType($in->readSlabPosition())); - $this->map(Ids::STONE_SLAB3, fn(Reader $in) => Helper::mapStoneSlab3Type($in)->setSlabType($in->readSlabPosition())); - $this->map(Ids::STONE_SLAB4, fn(Reader $in) => Helper::mapStoneSlab4Type($in)->setSlabType($in->readSlabPosition())); + $this->map(Ids::STONE_BLOCK_SLAB, fn(Reader $in) => Helper::mapStoneSlab1Type($in)->setSlabType($in->readSlabPosition())); + $this->map(Ids::STONE_BLOCK_SLAB2, fn(Reader $in) => Helper::mapStoneSlab2Type($in)->setSlabType($in->readSlabPosition())); + $this->map(Ids::STONE_BLOCK_SLAB3, fn(Reader $in) => Helper::mapStoneSlab3Type($in)->setSlabType($in->readSlabPosition())); + $this->map(Ids::STONE_BLOCK_SLAB4, fn(Reader $in) => Helper::mapStoneSlab4Type($in)->setSlabType($in->readSlabPosition())); $this->map(Ids::STONE_STAIRS, fn(Reader $in) => Helper::decodeStairs(Blocks::COBBLESTONE_STAIRS(), $in)); $this->map(Ids::STONEBRICK, function(Reader $in) : Block{ return match($type = $in->readString(StateNames::STONE_BRICK_TYPE)){ diff --git a/src/world/format/io/data/BedrockWorldData.php b/src/world/format/io/data/BedrockWorldData.php index dbe05f4e4..5378be7f2 100644 --- a/src/world/format/io/data/BedrockWorldData.php +++ b/src/world/format/io/data/BedrockWorldData.php @@ -48,12 +48,7 @@ use function time; class BedrockWorldData extends BaseNbtWorldData{ public const CURRENT_STORAGE_VERSION = 9; - /** - * WARNING: In the future, this should be only as high as the newest world format currently supported. We don't - * actually support worlds from 1.18.10 yet, but due to an old stupid bug, all worlds created by PM will report this - * version. - */ - public const CURRENT_STORAGE_NETWORK_VERSION = 503; // 1.18.10 + public const CURRENT_STORAGE_NETWORK_VERSION = 527; // 1.19.0 public const GENERATOR_LIMITED = 0; public const GENERATOR_INFINITE = 1;