/// <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); } }
/// <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); }
public static string ToActualString(this FactorioBuild buildVersion) => BuildVersions[buildVersion];
/// <summary> /// Gets the version of a specific build. /// </summary> public AccurateVersion this[FactorioBuild build] { get => internalDict[build];
static bool TryGetBuildFromString(string buildString, out FactorioBuild build) { return(BuildVersions.TryGetValue(buildString.ToLowerInvariant(), out build)); }