mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-12 14:35:35 +00:00
Updated to newer BedrockBlockUpgradeSchema
This commit is contained in:
parent
aeb26141b2
commit
d3fff4e0b2
8
composer.lock
generated
8
composer.lock
generated
@ -254,12 +254,12 @@
|
|||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/pmmp/BedrockBlockUpgradeSchema.git",
|
"url": "https://github.com/pmmp/BedrockBlockUpgradeSchema.git",
|
||||||
"reference": "63f5f5e02e952ffa196a4c0671d7fcf8b8cdd9a4"
|
"reference": "b0cc441e029cf5a6de5b05dd0f5657208855232b"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/63f5f5e02e952ffa196a4c0671d7fcf8b8cdd9a4",
|
"url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/b0cc441e029cf5a6de5b05dd0f5657208855232b",
|
||||||
"reference": "63f5f5e02e952ffa196a4c0671d7fcf8b8cdd9a4",
|
"reference": "b0cc441e029cf5a6de5b05dd0f5657208855232b",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"default-branch": true,
|
"default-branch": true,
|
||||||
@ -273,7 +273,7 @@
|
|||||||
"issues": "https://github.com/pmmp/BedrockBlockUpgradeSchema/issues",
|
"issues": "https://github.com/pmmp/BedrockBlockUpgradeSchema/issues",
|
||||||
"source": "https://github.com/pmmp/BedrockBlockUpgradeSchema/tree/master"
|
"source": "https://github.com/pmmp/BedrockBlockUpgradeSchema/tree/master"
|
||||||
},
|
},
|
||||||
"time": "2022-08-07T19:29:31+00:00"
|
"time": "2023-02-01T21:11:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "pocketmine/bedrock-data",
|
"name": "pocketmine/bedrock-data",
|
||||||
|
@ -24,7 +24,8 @@ declare(strict_types=1);
|
|||||||
namespace pocketmine\data\bedrock\block\upgrade;
|
namespace pocketmine\data\bedrock\block\upgrade;
|
||||||
|
|
||||||
use pocketmine\data\bedrock\block\BlockStateData;
|
use pocketmine\data\bedrock\block\BlockStateData;
|
||||||
use pocketmine\network\mcpe\protocol\serializer\NetworkNbtSerializer;
|
use pocketmine\nbt\LittleEndianNbtSerializer;
|
||||||
|
use pocketmine\utils\BinaryDataException;
|
||||||
use pocketmine\utils\BinaryStream;
|
use pocketmine\utils\BinaryStream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -75,15 +76,24 @@ final class BlockIdMetaUpgrader{
|
|||||||
$mappingTable = [];
|
$mappingTable = [];
|
||||||
|
|
||||||
$legacyStateMapReader = new BinaryStream($data);
|
$legacyStateMapReader = new BinaryStream($data);
|
||||||
$nbtReader = new NetworkNbtSerializer();
|
$nbtReader = new LittleEndianNbtSerializer();
|
||||||
while(!$legacyStateMapReader->feof()){
|
|
||||||
$id = $legacyStateMapReader->get($legacyStateMapReader->getUnsignedVarInt());
|
|
||||||
$meta = $legacyStateMapReader->getLShort();
|
|
||||||
|
|
||||||
$offset = $legacyStateMapReader->getOffset();
|
$idCount = $legacyStateMapReader->getUnsignedVarInt();
|
||||||
$state = $nbtReader->read($legacyStateMapReader->getBuffer(), $offset)->mustGetCompoundTag();
|
for($idIndex = 0; $idIndex < $idCount; $idIndex++){
|
||||||
$legacyStateMapReader->setOffset($offset);
|
$id = $legacyStateMapReader->get($legacyStateMapReader->getUnsignedVarInt());
|
||||||
$mappingTable[$id][$meta] = $blockStateUpgrader->upgrade(BlockStateData::fromNbt($state));
|
|
||||||
|
$metaCount = $legacyStateMapReader->getUnsignedVarInt();
|
||||||
|
for($metaIndex = 0; $metaIndex < $metaCount; $metaIndex++){
|
||||||
|
$meta = $legacyStateMapReader->getUnsignedVarInt();
|
||||||
|
|
||||||
|
$offset = $legacyStateMapReader->getOffset();
|
||||||
|
$state = $nbtReader->read($legacyStateMapReader->getBuffer(), $offset)->mustGetCompoundTag();
|
||||||
|
$legacyStateMapReader->setOffset($offset);
|
||||||
|
$mappingTable[$id][$meta] = $blockStateUpgrader->upgrade(BlockStateData::fromNbt($state));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!$legacyStateMapReader->feof()){
|
||||||
|
throw new BinaryDataException("Unexpected trailing data in legacy state map data");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new self($mappingTable, $idMap);
|
return new self($mappingTable, $idMap);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user