*/ public array $renamedIds = []; /** * @var Tag[][] * @phpstan-var array> */ public array $addedProperties = []; /** * @var string[][] * @phpstan-var array> */ public array $removedProperties = []; /** * @var string[][] * @phpstan-var array> */ public array $renamedProperties = []; /** * @var ValueRemap[][][] * @phpstan-var array>> */ public array $remappedPropertyValues = []; /** * @var FlattenInfo[] * @phpstan-var array */ public array $flattenedProperties = []; /** * @var BlockStateUpgradeSchemaBlockRemap[][] * @phpstan-var array> */ public array $remappedStates = []; public readonly int $versionId; public function __construct( public readonly int $maxVersionMajor, public readonly int $maxVersionMinor, public readonly int $maxVersionPatch, public readonly int $maxVersionRevision, private int $schemaId ){ $this->versionId = ($this->maxVersionMajor << 24) | ($this->maxVersionMinor << 16) | ($this->maxVersionPatch << 8) | $this->maxVersionRevision; } /** * @deprecated This is defined by Mojang, and therefore cannot be relied on. Use getSchemaId() instead for * internal version management. */ public function getVersionId() : int{ return $this->versionId; } public function getSchemaId() : int{ return $this->schemaId; } public function isEmpty() : bool{ foreach([ $this->renamedIds, $this->addedProperties, $this->removedProperties, $this->renamedProperties, $this->remappedPropertyValues, $this->flattenedProperties, $this->remappedStates, ] as $list){ if(count($list) !== 0){ return false; } } return true; } }