mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 08:44:01 +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": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/pmmp/BedrockBlockUpgradeSchema.git",
|
||||
"reference": "63f5f5e02e952ffa196a4c0671d7fcf8b8cdd9a4"
|
||||
"reference": "b0cc441e029cf5a6de5b05dd0f5657208855232b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/63f5f5e02e952ffa196a4c0671d7fcf8b8cdd9a4",
|
||||
"reference": "63f5f5e02e952ffa196a4c0671d7fcf8b8cdd9a4",
|
||||
"url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/b0cc441e029cf5a6de5b05dd0f5657208855232b",
|
||||
"reference": "b0cc441e029cf5a6de5b05dd0f5657208855232b",
|
||||
"shasum": ""
|
||||
},
|
||||
"default-branch": true,
|
||||
@ -273,7 +273,7 @@
|
||||
"issues": "https://github.com/pmmp/BedrockBlockUpgradeSchema/issues",
|
||||
"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",
|
||||
|
@ -24,7 +24,8 @@ declare(strict_types=1);
|
||||
namespace pocketmine\data\bedrock\block\upgrade;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
@ -75,15 +76,24 @@ final class BlockIdMetaUpgrader{
|
||||
$mappingTable = [];
|
||||
|
||||
$legacyStateMapReader = new BinaryStream($data);
|
||||
$nbtReader = new NetworkNbtSerializer();
|
||||
while(!$legacyStateMapReader->feof()){
|
||||
$id = $legacyStateMapReader->get($legacyStateMapReader->getUnsignedVarInt());
|
||||
$meta = $legacyStateMapReader->getLShort();
|
||||
$nbtReader = new LittleEndianNbtSerializer();
|
||||
|
||||
$offset = $legacyStateMapReader->getOffset();
|
||||
$state = $nbtReader->read($legacyStateMapReader->getBuffer(), $offset)->mustGetCompoundTag();
|
||||
$legacyStateMapReader->setOffset($offset);
|
||||
$mappingTable[$id][$meta] = $blockStateUpgrader->upgrade(BlockStateData::fromNbt($state));
|
||||
$idCount = $legacyStateMapReader->getUnsignedVarInt();
|
||||
for($idIndex = 0; $idIndex < $idCount; $idIndex++){
|
||||
$id = $legacyStateMapReader->get($legacyStateMapReader->getUnsignedVarInt());
|
||||
|
||||
$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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user