Beispiel #1
0
        void ParseVersions(CachePlatform cachePlatform, HubUnityVersion[] versions, List <VersionMetadata> results)
        {
            foreach (var version in versions)
            {
                var metadata = new VersionMetadata();
                metadata.version = new UnityVersion(version.version);

                var platform = new VersionPlatformMetadata();
                platform.packages    = new PackageMetadata[version.modules.Length + 1];
                platform.packages[0] = new PackageMetadata()
                {
                    name          = "Unity ",
                    title         = "Unity " + version.version,
                    description   = "Unity Editor",
                    url           = version.downloadUrl,
                    install       = true,
                    mandatory     = false,
                    size          = long.Parse(version.downloadSize),
                    installedsize = long.Parse(version.installedSize),
                    version       = version.version,
                    md5           = version.checksum
                };

                var i = 1;
                foreach (var module in version.modules)
                {
                    platform.packages[i++] = new PackageMetadata()
                    {
                        name          = module.id,
                        title         = module.name,
                        description   = module.description,
                        url           = module.downloadUrl,
                        install       = module.selected,
                        mandatory     = false,
                        size          = long.Parse(module.downloadSize),
                        installedsize = long.Parse(module.installedSize),
                        version       = version.version,
                        md5           = module.checksum
                    };
                }

                Logger.LogDebug($"Found version {metadata.version} with {platform.packages.Length} packages");
                metadata.SetPlatform(cachePlatform, platform);
                results.Add(metadata);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Set platform specific metadata by platform name.
        /// </summary>
        /// <param name="platform">Platform to set.</param>
        public void SetPlatform(CachePlatform platform, VersionPlatformMetadata metadata)
        {
            switch (platform)
            {
            case CachePlatform.macOS:
                mac = metadata;
                break;

            case CachePlatform.Windows:
                win = metadata;
                break;

            case CachePlatform.Linux:
                linux = metadata;
                break;

            default:
                throw new Exception("Invalid platform name: " + platform);
            }
        }