예제 #1
0
        /// <summary>
        /// Downloads a specific release of Factorio.
        /// </summary>
        /// <param name="version">The version of Factorio.</param>
        /// <param name="build">The build of Factorio.</param>
        /// <param name="platform">The target platform.</param>
        /// <param name="username">Username for authentication.</param>
        /// <param name="token">Login token for authentication.</param>
        /// <param name="file">The destination file.</param>
        public async static Task DownloadReleaseAsync(AccurateVersion version, FactorioBuild build, Platform platform, string username, string token, FileInfo file,
                                                      CancellationToken cancellationToken = default, IProgress <double>?progress = null)
        {
            string versionStr  = version.ToString(3);
            string buildStr    = build.ToActualString();
            string platformStr = platform.ToActualString();
            string url         = $"{DownloadUrl}/{versionStr}/{buildStr}/{platformStr}?username={username}&token={token}";

            try
            {
                await WebHelper.DownloadFileAsync(url, file, cancellationToken, progress);
            }
            catch (WebException ex)
            {
                throw ApiException.FromWebException(ex);
            }
        }
예제 #2
0
        /// <summary>
        /// Downloads a specific release of Factorio.
        /// </summary>
        /// <param name="version">The version of Factorio.</param>
        /// <param name="build">The build of Factorio.</param>
        /// <param name="platform">The target platform.</param>
        /// <param name="username">Username for authentication.</param>
        /// <param name="token">Login token for authentication.</param>
        /// <param name="fileName">The destination file name.</param>
        public async static Task <FileInfo> DownloadReleaseAsync(AccurateVersion version, FactorioBuild build, Platform platform, string username, string token, string fileName,
                                                                 CancellationToken cancellationToken = default, IProgress <double>?progress = null)
        {
            var file = new FileInfo(fileName);

            await DownloadReleaseAsync(version, build, platform, username, token, file, cancellationToken, progress);

            return(file);
        }
예제 #3
0
 public static string ToActualString(this FactorioBuild buildVersion) => BuildVersions[buildVersion];
예제 #4
0
 /// <summary>
 /// Gets the version of a specific build.
 /// </summary>
 public AccurateVersion this[FactorioBuild build]
 {
     get => internalDict[build];
예제 #5
0
 static bool TryGetBuildFromString(string buildString, out FactorioBuild build)
 {
     return(BuildVersions.TryGetValue(buildString.ToLowerInvariant(), out build));
 }