From d8bba6ed3decc7388c0fad650164716368511259 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 23 Jun 2022 16:55:50 +0100 Subject: [PATCH] git add -p bites again --- .../block/upgrade/BlockDataUpgrader.php | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/data/bedrock/block/upgrade/BlockDataUpgrader.php diff --git a/src/data/bedrock/block/upgrade/BlockDataUpgrader.php b/src/data/bedrock/block/upgrade/BlockDataUpgrader.php new file mode 100644 index 000000000..63faa3532 --- /dev/null +++ b/src/data/bedrock/block/upgrade/BlockDataUpgrader.php @@ -0,0 +1,63 @@ +legacyBlockStateMapper->fromIntIdMeta($id, $meta); + } + + public function upgradeStringIdMeta(string $id, int $meta) : ?BlockStateData{ + return $this->legacyBlockStateMapper->fromStringIdMeta($id, $meta); + } + + public function upgradeBlockStateNbt(CompoundTag $tag) : ?BlockStateData{ + if($tag->getTag("name") !== null && $tag->getTag("val") !== null){ + //Legacy (pre-1.13) blockstate - upgrade it to a version we understand + $id = $tag->getString("name"); + $data = $tag->getShort("val"); + + $blockStateData = $this->upgradeStringIdMeta($id, $data); + if($blockStateData === null){ + //unknown block, invalid ID + $blockStateData = new BlockStateData(BlockTypeNames::INFO_UPDATE, CompoundTag::create(), BlockStateData::CURRENT_VERSION); + } + }else{ + //Modern (post-1.13) blockstate + $blockStateData = BlockStateData::fromNbt($tag); + } + + return $this->blockStateUpgrader->upgrade($blockStateData); + } +}