Esempio n. 1
0
        /// <summary>
        /// Extract a file to a path
        /// </summary>
        /// <param name="path"></param>
        /// <param name="extractor"></param>
        /// <param name="status"></param>
        private void TryExtractMod(string path, SevenZipExtractor extractor, DownloadStatus status)
        {
            status.Label.Invoke(
                (MethodInvoker)(() =>
            {
                status.Label.Text = @"Extracting Files...";
                status.ProgressBar.Step = -100;
                status.ProgressBar.PerformStep();
            }));

            extractor.Extracting += (sender, e) => Extractor_Extracting(sender, e, status);
            Mod.ArchivePath       = path;
            var folderPath = App.FactorioLoader.Config.ReserveFolder + "\\" + Mod.FolderName;

            ModFileHelper.Extract(extractor, folderPath);
        }
Esempio n. 2
0
        /// <summary>
        /// Extract the current mod
        /// </summary>
        /// <param name="status"></param>
        /// <returns></returns>
        private bool ExtractMod(DownloadStatus status)
        {
            var path = GetDownloadPath(Mod);

            SevenZipExtractor extractor;

            if (ModFileHelper.IsArchive(path, out extractor))
            {
                TryExtractMod(path, extractor, status);

                status.CancelButton.Invoke((MethodInvoker)(
                                               () =>
                {
                    status.CancelButton.Text = @"Done";
                    status.Label.Text = @"Mod added successfully!";
                }));
                return(true);
            }

            return(false);
        }