From 0e0b858b696df4d9a4113e9ae121e73e63a4f285 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 2 Jul 2022 23:17:10 +0100 Subject: [PATCH] Added raw copper, gold and iron blocks --- src/block/BlockFactory.php | 4 ++++ src/block/BlockTypeIds.php | 5 ++++- src/block/VanillaBlocks.php | 6 ++++++ .../block/convert/BlockObjectToBlockStateSerializer.php | 3 +++ .../block/convert/BlockStateToBlockObjectDeserializer.php | 3 +++ src/item/StringToItemParser.php | 3 +++ 6 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/block/BlockFactory.php b/src/block/BlockFactory.php index 452de0bce..1e022136d 100644 --- a/src/block/BlockFactory.php +++ b/src/block/BlockFactory.php @@ -874,6 +874,10 @@ class BlockFactory{ private function registerBlocksR17() : void{ //in java this can be acquired using any tool - seems to be a parity issue in bedrock $this->register(new Opaque(new BID(Ids::AMETHYST), "Amethyst", new BreakInfo(1.5, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel()))); + + $this->register(new Opaque(new BID(Ids::RAW_COPPER), "Raw Copper Block", new BreakInfo(5, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); + $this->register(new Opaque(new BID(Ids::RAW_GOLD), "Raw Gold Block", new BreakInfo(5, ToolType::PICKAXE, ToolTier::IRON()->getHarvestLevel()))); + $this->register(new Opaque(new BID(Ids::RAW_IRON), "Raw Iron Block", new BreakInfo(5, ToolType::PICKAXE, ToolTier::STONE()->getHarvestLevel()))); } /** diff --git a/src/block/BlockTypeIds.php b/src/block/BlockTypeIds.php index ee232f860..589d6634b 100644 --- a/src/block/BlockTypeIds.php +++ b/src/block/BlockTypeIds.php @@ -586,6 +586,9 @@ final class BlockTypeIds{ public const POLISHED_BLACKSTONE_BRICK_WALL = 10559; public const CRACKED_POLISHED_BLACKSTONE_BRICKS = 10560; public const LIGHT = 10561; + public const RAW_COPPER = 10562; + public const RAW_GOLD = 10563; + public const RAW_IRON = 10564; - public const FIRST_UNUSED_BLOCK_ID = 10562; + public const FIRST_UNUSED_BLOCK_ID = 10565; } diff --git a/src/block/VanillaBlocks.php b/src/block/VanillaBlocks.php index 576999020..2b45c1d7d 100644 --- a/src/block/VanillaBlocks.php +++ b/src/block/VanillaBlocks.php @@ -469,6 +469,9 @@ use pocketmine\utils\CloningRegistryTrait; * @method static Slab QUARTZ_SLAB() * @method static Stair QUARTZ_STAIRS() * @method static Rail RAIL() + * @method static Opaque RAW_COPPER() + * @method static Opaque RAW_GOLD() + * @method static Opaque RAW_IRON() * @method static Redstone REDSTONE() * @method static RedstoneComparator REDSTONE_COMPARATOR() * @method static RedstoneLamp REDSTONE_LAMP() @@ -1027,6 +1030,9 @@ final class VanillaBlocks{ self::register("quartz_slab", $factory->get(Ids::QUARTZ_SLAB, 0)); self::register("quartz_stairs", $factory->get(Ids::QUARTZ_STAIRS, 0)); self::register("rail", $factory->get(Ids::RAIL, 0)); + self::register("raw_copper", $factory->get(Ids::RAW_COPPER, 0)); + self::register("raw_gold", $factory->get(Ids::RAW_GOLD, 0)); + self::register("raw_iron", $factory->get(Ids::RAW_IRON, 0)); self::register("red_mushroom", $factory->get(Ids::RED_MUSHROOM, 0)); self::register("red_mushroom_block", $factory->get(Ids::RED_MUSHROOM_BLOCK, 10)); self::register("red_nether_brick_slab", $factory->get(Ids::RED_NETHER_BRICK_SLAB, 0)); diff --git a/src/data/bedrock/block/convert/BlockObjectToBlockStateSerializer.php b/src/data/bedrock/block/convert/BlockObjectToBlockStateSerializer.php index 7ac6b3dbd..6eb2a5d90 100644 --- a/src/data/bedrock/block/convert/BlockObjectToBlockStateSerializer.php +++ b/src/data/bedrock/block/convert/BlockObjectToBlockStateSerializer.php @@ -938,6 +938,9 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{ return Writer::create(Ids::RAIL) ->writeInt(StateNames::RAIL_DIRECTION, $block->getShape()); }); + $this->mapSimple(Blocks::RAW_COPPER(), Ids::RAW_COPPER_BLOCK); + $this->mapSimple(Blocks::RAW_GOLD(), Ids::RAW_GOLD_BLOCK); + $this->mapSimple(Blocks::RAW_IRON(), Ids::RAW_IRON_BLOCK); $this->mapSimple(Blocks::REDSTONE(), Ids::REDSTONE_BLOCK); $this->map(Blocks::REDSTONE_COMPARATOR(), function(RedstoneComparator $block) : Writer{ return Writer::create($block->isPowered() ? Ids::POWERED_COMPARATOR : Ids::UNPOWERED_COMPARATOR) diff --git a/src/data/bedrock/block/convert/BlockStateToBlockObjectDeserializer.php b/src/data/bedrock/block/convert/BlockStateToBlockObjectDeserializer.php index 94568e17c..4cd0e6967 100644 --- a/src/data/bedrock/block/convert/BlockStateToBlockObjectDeserializer.php +++ b/src/data/bedrock/block/convert/BlockStateToBlockObjectDeserializer.php @@ -824,6 +824,9 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize return Blocks::RAIL() ->setShape($in->readBoundedInt(StateNames::RAIL_DIRECTION, 0, 9)); }); + $this->map(Ids::RAW_COPPER_BLOCK, fn() => Blocks::RAW_COPPER()); + $this->map(Ids::RAW_GOLD_BLOCK, fn() => Blocks::RAW_GOLD()); + $this->map(Ids::RAW_IRON_BLOCK, fn() => Blocks::RAW_IRON()); $this->map(Ids::RED_FLOWER, function(Reader $in) : Block{ return match($type = $in->readString(StateNames::FLOWER_TYPE)){ StringValues::FLOWER_TYPE_ALLIUM => Blocks::ALLIUM(), diff --git a/src/item/StringToItemParser.php b/src/item/StringToItemParser.php index 7df60292f..5f1d7b2b4 100644 --- a/src/item/StringToItemParser.php +++ b/src/item/StringToItemParser.php @@ -781,6 +781,9 @@ final class StringToItemParser extends StringToTParser{ $result->registerBlock("quartz_slab", fn() => Blocks::QUARTZ_SLAB()); $result->registerBlock("quartz_stairs", fn() => Blocks::QUARTZ_STAIRS()); $result->registerBlock("rail", fn() => Blocks::RAIL()); + $result->registerBlock("raw_copper_block", fn() => Blocks::RAW_COPPER()); + $result->registerBlock("raw_gold_block", fn() => Blocks::RAW_GOLD()); + $result->registerBlock("raw_iron_block", fn() => Blocks::RAW_IRON()); $result->registerBlock("red_flower", fn() => Blocks::POPPY()); $result->registerBlock("red_mushroom", fn() => Blocks::RED_MUSHROOM()); $result->registerBlock("red_mushroom_block", fn() => Blocks::RED_MUSHROOM_BLOCK());