private void PlayButton_Click(object sender, RoutedEventArgs e) { CMLauncher.ProgressChanged += (o, ef) => { Dispatcher.Invoke(() => { MainProgressBar.Value = ef.ProgressPercentage; }); }; CMLauncher.FileChanged += (fu) => { }; CMLauncher.LogOutput += (ee, Log) => { Dispatcher.Invoke(() => { Label L = new Label() { Content = Log }; LogList.Items.Add(L); LogList.ScrollIntoView(L); }); }; if (!Directory.Exists("Data/Game")) { Directory.CreateDirectory("Data/Game"); } if (!Directory.Exists("Data/Game/mods")) { Directory.CreateDirectory("Data/Game/mods"); } if (!File.Exists("Mods.zip")) { ModDownloader.DownloadFile((obj, prog) => { Dispatcher.Invoke(() => MainProgressBar.Value = prog.ProgressPercentage); }, (f, ff) => { Directory.Delete("Data/Game/mods", true); Directory.CreateDirectory("Data/Game/mods"); ZipFile.ExtractToDirectory("Mods.zip", "Data/Game/mods"); LaunchGame(); }); } else { Directory.Delete("Data/Game/mods", true); Directory.CreateDirectory("Data/Game/mods"); ZipFile.ExtractToDirectory("Mods.zip", "Data/Game/mods"); LaunchGame(); } }
/// <summary> /// Gets the screenshot from Gamebanana's API /// </summary> /// <param name="_ItemType">Gamebanana's Mod Type</param> /// <param name="_ItemID">Gamebanana's Mod ID</param> /// <param name="_GameID">Gamebanana's Game ID</param> /// <param name="_TypeID">Gamebanana's Category ID</param> /// <returns></returns> public static async Task <int> GetScreenshot(string _ItemType, string _ItemID, string Guid) { string downloadURL = ""; queryParameters = GetDefaultParameters(); queryParameters.Add(new QueryStringItem("itemid", _ItemID)); queryParameters.Add(new QueryStringItem("itemtype", _ItemType)); queryParameters.Add(new QueryStringItem("fields", "Preview().sSubFeedImageUrl()")); string queryURL = FormatAPIRequest("Core/Item/Data", queryParameters); try { using (HttpClient webClient = new HttpClient()) { HttpResponseMessage response = await webClient.GetAsync(queryURL); if (response.IsSuccessStatusCode) { string responseText = await response.Content.ReadAsStringAsync(); Regex fileMatch = new Regex("sSubFeedImageUrl\\(\\)\":\"(.*?)\""); Match match = fileMatch.Match(responseText); downloadURL = match.Value; downloadURL = downloadURL.Split('"')[2]; downloadURL = downloadURL.Replace("\\/", "/"); string downloadextension = downloadURL.Split('.')[downloadURL.Split('.').Length - 1]; string imageSource = Properties.Settings.Default.DefaultDir + @"\Library\Screenshots\" + Guid + "." + downloadextension; string wimageSource = Properties.Settings.Default.DefaultDir + @"\Library\Screenshots\" + Guid + ".webp"; await ModDownloader.DownloadFile(downloadURL, imageSource); if (downloadextension != "webp") { try { using (FileStream fsSource = new FileStream(imageSource, FileMode.Open, FileAccess.Read)) { byte[] ImageData = new byte[fsSource.Length]; fsSource.Read(ImageData, 0, ImageData.Length); using (var webPFileStream = new FileStream(wimageSource, FileMode.Create)) { using (ImageFactory imageFactory = new ImageFactory(preserveExifData: false)) { imageFactory.Load(ImageData) .Format(new WebPFormat()) .Quality(100) .Save(webPFileStream); } } } if (File.Exists(wimageSource)) { File.Delete(imageSource); } } catch (Exception e) { Console.WriteLine(e.Message); } } } } } catch (Exception e) { Console.Write("fak"); } return(0); }