Centralize all conversion-related stuff under TypeConverter

instead of having singletons for everything, which are a nightmare to manage for multi version
This commit is contained in:
Dylan K. Taylor
2023-05-03 16:33:17 +01:00
parent 5e462db0f8
commit 01f340985a
26 changed files with 88 additions and 130 deletions

View File

@ -32,8 +32,6 @@ use pocketmine\item\Item;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\network\mcpe\protocol\serializer\ItemTypeDictionary;
use pocketmine\utils\AssumptionFailedError;
use pocketmine\utils\SingletonTrait;
use pocketmine\world\format\io\GlobalItemDataHandlers;
/**
* This class handles translation between network item ID+metadata to PocketMine-MP internal ID+metadata and vice versa.
@ -41,17 +39,6 @@ use pocketmine\world\format\io\GlobalItemDataHandlers;
final class ItemTranslator{
public const NO_BLOCK_RUNTIME_ID = 0;
use SingletonTrait;
private static function make() : self{
return new self(
GlobalItemTypeDictionary::getInstance()->getDictionary(),
RuntimeBlockMapping::getInstance()->getBlockStateDictionary(),
GlobalItemDataHandlers::getSerializer(),
GlobalItemDataHandlers::getDeserializer()
);
}
public function __construct(
private ItemTypeDictionary $itemTypeDictionary,
private BlockStateDictionary $blockStateDictionary,