mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-12 14:35:35 +00:00
RuntimeBlockMapping: avoid unnecessary PacketSerializer usage
This commit is contained in:
parent
fa7c38276c
commit
8e280ebb8b
@ -29,8 +29,7 @@ use pocketmine\data\bedrock\BedrockDataFiles;
|
|||||||
use pocketmine\data\bedrock\LegacyBlockIdToStringIdMap;
|
use pocketmine\data\bedrock\LegacyBlockIdToStringIdMap;
|
||||||
use pocketmine\nbt\tag\CompoundTag;
|
use pocketmine\nbt\tag\CompoundTag;
|
||||||
use pocketmine\network\mcpe\protocol\serializer\NetworkNbtSerializer;
|
use pocketmine\network\mcpe\protocol\serializer\NetworkNbtSerializer;
|
||||||
use pocketmine\network\mcpe\protocol\serializer\PacketSerializer;
|
use pocketmine\utils\BinaryStream;
|
||||||
use pocketmine\network\mcpe\protocol\serializer\PacketSerializerContext;
|
|
||||||
use pocketmine\utils\Filesystem;
|
use pocketmine\utils\Filesystem;
|
||||||
use pocketmine\utils\SingletonTrait;
|
use pocketmine\utils\SingletonTrait;
|
||||||
|
|
||||||
@ -55,14 +54,14 @@ final class RuntimeBlockMapping{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function __construct(string $canonicalBlockStatesFile, string $r12ToCurrentBlockMapFile){
|
public function __construct(string $canonicalBlockStatesFile, string $r12ToCurrentBlockMapFile){
|
||||||
$stream = PacketSerializer::decoder(
|
$stream = new BinaryStream(Filesystem::fileGetContents($canonicalBlockStatesFile));
|
||||||
Filesystem::fileGetContents($canonicalBlockStatesFile),
|
|
||||||
0,
|
|
||||||
new PacketSerializerContext(GlobalItemTypeDictionary::getInstance()->getDictionary())
|
|
||||||
);
|
|
||||||
$list = [];
|
$list = [];
|
||||||
|
$nbtReader = new NetworkNbtSerializer();
|
||||||
while(!$stream->feof()){
|
while(!$stream->feof()){
|
||||||
$list[] = $stream->getNbtCompoundRoot();
|
$offset = $stream->getOffset();
|
||||||
|
$blockState = $nbtReader->read($stream->getBuffer(), $offset)->mustGetCompoundTag();
|
||||||
|
$stream->setOffset($offset);
|
||||||
|
$list[] = $blockState;
|
||||||
}
|
}
|
||||||
$this->bedrockKnownStates = $list;
|
$this->bedrockKnownStates = $list;
|
||||||
|
|
||||||
@ -73,14 +72,10 @@ final class RuntimeBlockMapping{
|
|||||||
$legacyIdMap = LegacyBlockIdToStringIdMap::getInstance();
|
$legacyIdMap = LegacyBlockIdToStringIdMap::getInstance();
|
||||||
/** @var R12ToCurrentBlockMapEntry[] $legacyStateMap */
|
/** @var R12ToCurrentBlockMapEntry[] $legacyStateMap */
|
||||||
$legacyStateMap = [];
|
$legacyStateMap = [];
|
||||||
$legacyStateMapReader = PacketSerializer::decoder(
|
$legacyStateMapReader = new BinaryStream(Filesystem::fileGetContents($r12ToCurrentBlockMapFile));
|
||||||
Filesystem::fileGetContents($r12ToCurrentBlockMapFile),
|
|
||||||
0,
|
|
||||||
new PacketSerializerContext(GlobalItemTypeDictionary::getInstance()->getDictionary())
|
|
||||||
);
|
|
||||||
$nbtReader = new NetworkNbtSerializer();
|
$nbtReader = new NetworkNbtSerializer();
|
||||||
while(!$legacyStateMapReader->feof()){
|
while(!$legacyStateMapReader->feof()){
|
||||||
$id = $legacyStateMapReader->getString();
|
$id = $legacyStateMapReader->get($legacyStateMapReader->getUnsignedVarInt());
|
||||||
$meta = $legacyStateMapReader->getLShort();
|
$meta = $legacyStateMapReader->getLShort();
|
||||||
|
|
||||||
$offset = $legacyStateMapReader->getOffset();
|
$offset = $legacyStateMapReader->getOffset();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user