From 32e6fdd95adbf43d4d08d361fd75eb2c7819751b Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 3 May 2023 22:18:27 +0100 Subject: [PATCH] Rename RuntimeBlockMapping -> BlockTranslator --- ...ntimeBlockMapping.php => BlockTranslator.php} | 2 +- src/network/mcpe/convert/TypeConverter.php | 6 +++--- src/network/mcpe/serializer/ChunkSerializer.php | 16 ++++++++-------- src/world/World.php | 8 ++++---- ...ckMappingTest.php => BlockTranslatorTest.php} | 2 +- tools/generate-bedrock-data-from-packets.php | 12 ++++++------ 6 files changed, 23 insertions(+), 23 deletions(-) rename src/network/mcpe/convert/{RuntimeBlockMapping.php => BlockTranslator.php} (99%) rename tests/phpunit/network/mcpe/convert/{RuntimeBlockMappingTest.php => BlockTranslatorTest.php} (96%) diff --git a/src/network/mcpe/convert/RuntimeBlockMapping.php b/src/network/mcpe/convert/BlockTranslator.php similarity index 99% rename from src/network/mcpe/convert/RuntimeBlockMapping.php rename to src/network/mcpe/convert/BlockTranslator.php index 4df98f15c..a475109f4 100644 --- a/src/network/mcpe/convert/RuntimeBlockMapping.php +++ b/src/network/mcpe/convert/BlockTranslator.php @@ -32,7 +32,7 @@ use pocketmine\utils\AssumptionFailedError; /** * @internal */ -final class RuntimeBlockMapping{ +final class BlockTranslator{ /** * @var int[] * @phpstan-var array diff --git a/src/network/mcpe/convert/TypeConverter.php b/src/network/mcpe/convert/TypeConverter.php index ad9f631ee..2da58ca14 100644 --- a/src/network/mcpe/convert/TypeConverter.php +++ b/src/network/mcpe/convert/TypeConverter.php @@ -58,7 +58,7 @@ class TypeConverter{ private const RECIPE_INPUT_WILDCARD_META = 0x7fff; private BlockItemIdMap $blockItemIdMap; - private RuntimeBlockMapping $blockTranslator; + private BlockTranslator $blockTranslator; private ItemTranslator $itemTranslator; private ItemTypeDictionary $itemTypeDictionary; private int $shieldRuntimeId; @@ -69,7 +69,7 @@ class TypeConverter{ $canonicalBlockStatesRaw = Filesystem::fileGetContents(BedrockDataFiles::CANONICAL_BLOCK_STATES_NBT); $metaMappingRaw = Filesystem::fileGetContents(BedrockDataFiles::BLOCK_STATE_META_MAP_JSON); - $this->blockTranslator = new RuntimeBlockMapping( + $this->blockTranslator = new BlockTranslator( BlockStateDictionary::loadFromString($canonicalBlockStatesRaw, $metaMappingRaw), GlobalBlockStateHandlers::getSerializer() ); @@ -85,7 +85,7 @@ class TypeConverter{ ); } - public function getBlockTranslator() : RuntimeBlockMapping{ return $this->blockTranslator; } + public function getBlockTranslator() : BlockTranslator{ return $this->blockTranslator; } public function getItemTypeDictionary() : ItemTypeDictionary{ return $this->itemTypeDictionary; } diff --git a/src/network/mcpe/serializer/ChunkSerializer.php b/src/network/mcpe/serializer/ChunkSerializer.php index 772587855..88c03ae38 100644 --- a/src/network/mcpe/serializer/ChunkSerializer.php +++ b/src/network/mcpe/serializer/ChunkSerializer.php @@ -27,7 +27,7 @@ use pocketmine\block\tile\Spawnable; use pocketmine\data\bedrock\BiomeIds; use pocketmine\data\bedrock\LegacyBiomeIdToStringIdMap; use pocketmine\nbt\TreeRoot; -use pocketmine\network\mcpe\convert\RuntimeBlockMapping; +use pocketmine\network\mcpe\convert\BlockTranslator; use pocketmine\network\mcpe\protocol\serializer\NetworkNbtSerializer; use pocketmine\network\mcpe\protocol\serializer\PacketSerializer; use pocketmine\network\mcpe\protocol\serializer\PacketSerializerContext; @@ -58,13 +58,13 @@ final class ChunkSerializer{ return 0; } - public static function serializeFullChunk(Chunk $chunk, RuntimeBlockMapping $blockMapper, PacketSerializerContext $encoderContext, ?string $tiles = null) : string{ + public static function serializeFullChunk(Chunk $chunk, BlockTranslator $blockTranslator, PacketSerializerContext $encoderContext, ?string $tiles = null) : string{ $stream = PacketSerializer::encoder($encoderContext); $subChunkCount = self::getSubChunkCount($chunk); $writtenCount = 0; for($y = Chunk::MIN_SUBCHUNK_INDEX; $writtenCount < $subChunkCount; ++$y, ++$writtenCount){ - self::serializeSubChunk($chunk->getSubChunk($y), $blockMapper, $stream, false); + self::serializeSubChunk($chunk->getSubChunk($y), $blockTranslator, $stream, false); } $biomeIdMap = LegacyBiomeIdToStringIdMap::getInstance(); @@ -84,13 +84,13 @@ final class ChunkSerializer{ return $stream->getBuffer(); } - public static function serializeSubChunk(SubChunk $subChunk, RuntimeBlockMapping $blockMapper, PacketSerializer $stream, bool $persistentBlockStates) : void{ + public static function serializeSubChunk(SubChunk $subChunk, BlockTranslator $blockTranslator, PacketSerializer $stream, bool $persistentBlockStates) : void{ $layers = $subChunk->getBlockLayers(); $stream->putByte(8); //version $stream->putByte(count($layers)); - $blockStateDictionary = $blockMapper->getBlockStateDictionary(); + $blockStateDictionary = $blockTranslator->getBlockStateDictionary(); foreach($layers as $blocks){ $bitsPerBlock = $blocks->getBitsPerBlock(); @@ -109,16 +109,16 @@ final class ChunkSerializer{ $nbtSerializer = new NetworkNbtSerializer(); foreach($palette as $p){ //TODO: introduce a binary cache for this - $state = $blockStateDictionary->getDataFromStateId($blockMapper->toRuntimeId($p)); + $state = $blockStateDictionary->getDataFromStateId($blockTranslator->toRuntimeId($p)); if($state === null){ - $state = $blockMapper->getFallbackStateData(); + $state = $blockTranslator->getFallbackStateData(); } $stream->put($nbtSerializer->write(new TreeRoot($state->toNbt()))); } }else{ foreach($palette as $p){ - $stream->put(Binary::writeUnsignedVarInt($blockMapper->toRuntimeId($p) << 1)); + $stream->put(Binary::writeUnsignedVarInt($blockTranslator->toRuntimeId($p) << 1)); } } } diff --git a/src/world/World.php b/src/world/World.php index a4528f4c2..a965974b7 100644 --- a/src/world/World.php +++ b/src/world/World.php @@ -1062,7 +1062,7 @@ class World implements ChunkManager{ public function createBlockUpdatePackets(array $blocks) : array{ $packets = []; - $blockMapping = TypeConverter::getInstance()->getBlockTranslator(); + $blockTranslator = TypeConverter::getInstance()->getBlockTranslator(); foreach($blocks as $b){ if(!($b instanceof Vector3)){ @@ -1074,7 +1074,7 @@ class World implements ChunkManager{ $tile = $this->getTileAt($b->x, $b->y, $b->z); if($tile instanceof Spawnable && count($fakeStateProperties = $tile->getRenderUpdateBugWorkaroundStateProperties($fullBlock)) > 0){ - $originalStateData = $blockMapping->toStateData($fullBlock->getStateId()); + $originalStateData = $blockTranslator->toStateData($fullBlock->getStateId()); $fakeStateData = new BlockStateData( $originalStateData->getName(), array_merge($originalStateData->getStates(), $fakeStateProperties), @@ -1082,14 +1082,14 @@ class World implements ChunkManager{ ); $packets[] = UpdateBlockPacket::create( $blockPosition, - $blockMapping->getBlockStateDictionary()->lookupStateIdFromData($fakeStateData) ?? throw new AssumptionFailedError("Unmapped fake blockstate data: " . $fakeStateData->toNbt()), + $blockTranslator->getBlockStateDictionary()->lookupStateIdFromData($fakeStateData) ?? throw new AssumptionFailedError("Unmapped fake blockstate data: " . $fakeStateData->toNbt()), UpdateBlockPacket::FLAG_NETWORK, UpdateBlockPacket::DATA_LAYER_NORMAL ); } $packets[] = UpdateBlockPacket::create( $blockPosition, - $blockMapping->toRuntimeId($fullBlock->getStateId()), + $blockTranslator->toRuntimeId($fullBlock->getStateId()), UpdateBlockPacket::FLAG_NETWORK, UpdateBlockPacket::DATA_LAYER_NORMAL ); diff --git a/tests/phpunit/network/mcpe/convert/RuntimeBlockMappingTest.php b/tests/phpunit/network/mcpe/convert/BlockTranslatorTest.php similarity index 96% rename from tests/phpunit/network/mcpe/convert/RuntimeBlockMappingTest.php rename to tests/phpunit/network/mcpe/convert/BlockTranslatorTest.php index 46fb709ab..f2dc6ccea 100644 --- a/tests/phpunit/network/mcpe/convert/RuntimeBlockMappingTest.php +++ b/tests/phpunit/network/mcpe/convert/BlockTranslatorTest.php @@ -26,7 +26,7 @@ namespace pocketmine\network\mcpe\convert; use PHPUnit\Framework\TestCase; use pocketmine\block\RuntimeBlockStateRegistry; -class RuntimeBlockMappingTest extends TestCase{ +class BlockTranslatorTest extends TestCase{ /** * @doesNotPerformAssertions diff --git a/tools/generate-bedrock-data-from-packets.php b/tools/generate-bedrock-data-from-packets.php index 2201a9159..83f684884 100644 --- a/tools/generate-bedrock-data-from-packets.php +++ b/tools/generate-bedrock-data-from-packets.php @@ -39,7 +39,7 @@ use pocketmine\nbt\tag\CompoundTag; use pocketmine\nbt\tag\ListTag; use pocketmine\nbt\TreeRoot; use pocketmine\network\mcpe\convert\BlockStateDictionary; -use pocketmine\network\mcpe\convert\RuntimeBlockMapping; +use pocketmine\network\mcpe\convert\BlockTranslator; use pocketmine\network\mcpe\handler\PacketHandler; use pocketmine\network\mcpe\protocol\AvailableActorIdentifiersPacket; use pocketmine\network\mcpe\protocol\BiomeDefinitionListPacket; @@ -109,10 +109,10 @@ require dirname(__DIR__) . '/vendor/autoload.php'; class ParserPacketHandler extends PacketHandler{ public ?ItemTypeDictionary $itemTypeDictionary = null; - private RuntimeBlockMapping $blockMapping; + private BlockTranslator $blockTranslator; public function __construct(private string $bedrockDataPath){ - $this->blockMapping = new RuntimeBlockMapping( + $this->blockTranslator = new BlockTranslator( BlockStateDictionary::loadFromString( Filesystem::fileGetContents(Path::join($this->bedrockDataPath, "canonical_block_states.nbt")), Filesystem::fileGetContents(Path::join($this->bedrockDataPath, "block_state_meta_map.json")), @@ -150,7 +150,7 @@ class ParserPacketHandler extends PacketHandler{ if($meta !== 0){ throw new PacketHandlingException("Unexpected non-zero blockitem meta"); } - $blockState = $this->blockMapping->getBlockStateDictionary()->getDataFromStateId($itemStack->getBlockRuntimeId()) ?? null; + $blockState = $this->blockTranslator->getBlockStateDictionary()->getDataFromStateId($itemStack->getBlockRuntimeId()) ?? null; if($blockState === null){ throw new PacketHandlingException("Unmapped blockstate ID " . $itemStack->getBlockRuntimeId()); } @@ -268,9 +268,9 @@ class ParserPacketHandler extends PacketHandler{ } $meta = $descriptor->getMeta(); if($meta !== 32767){ - $blockStateId = $this->blockMapping->getBlockStateDictionary()->lookupStateIdFromIdMeta($data->name, $meta); + $blockStateId = $this->blockTranslator->getBlockStateDictionary()->lookupStateIdFromIdMeta($data->name, $meta); if($blockStateId !== null){ - $blockState = $this->blockMapping->getBlockStateDictionary()->getDataFromStateId($blockStateId); + $blockState = $this->blockTranslator->getBlockStateDictionary()->getDataFromStateId($blockStateId); if($blockState !== null && count($blockState->getStates()) > 0){ $data->block_states = self::blockStatePropertiesToString($blockState); }