Exemple #1
0
        private void button_mod_Click(object sender, EventArgs e)
        {
            // set user interface into the modding state (disable buttons etc)
            setUIToModdingState(true);
            // Modding in second task to avoid UI freeze
            var activeMods = new List <Mod>();
            //get file count of all active mods
            var fileCount = 0;

            foreach (ListViewItem modItem in activeModsListView.Items)
            {
                var mod = modItem.Tag as Mod;
                activeMods.Add(mod);
                fileCount += mod.FileCount;
            }
            Task.Factory.StartNew(() =>
            {
                SetMessage(Resources.PleaseWait, Color.Black);
                //reset progress bar to new file count
                _progressBarManipulator.Reset(fileCount + 3);
                _progressBarManipulator.Increment();

                _moddingService.Restore();
                _progressBarManipulator.Increment();

                var warning = false;
                var error   = false;
                foreach (var mod in activeMods)
                {
                    var returnValue = _moddingService.LetsMod(mod, mod.ModDirectoryInfo, new DirectoryInfo(Paths.ExePath), activeMods, _progressBarManipulator);
                    warning         = warning || returnValue == ModdingService.WARNING_CODE;
                    error           = error || returnValue == ModdingService.ERROR_CODE;
                    //cancel when error occured
                    if (error)
                    {
                        break;
                    }
                }

                _moddingService.SaveActiveMods(_language, activeMods);
                _progressBarManipulator.Finish();

                if (error)
                {
                    SetMessage(Resources.Error, Color.Red);
                    Helpers.ShowMessage(Resources.ModdingService_ErrorMessage, Resources.Error);
                }
                else if (warning)
                {
                    SetMessage(Resources.Warning, Color.Orange);
                    Helpers.ShowMessage(Resources.ModdingService_WarningMessage, Resources.Warning);
                }
                else
                {
                    SetMessage(Resources.ModdingSuccessful, Color.Green);
                }
                // set user interface into normal state (enable buttons etc)
                setUIToModdingState(false);
            });
        }
Exemple #2
0
        public FormMain()
        {
            InitializeComponent();
            Text = string.Format(Resources.FormMainTitle, typeof(FormMain).Assembly.GetName().Version);

            //add imagelist to listviews
            var imageList = new ImageList();

            imageList.Images.Add("info", Resources.InfoIcon);
            imageList.Images.Add("warning", Resources.WarningIcon);
            imageList.Images.Add("error", Resources.ErrorIcon);

            availableModsListView.SmallImageList = imageList;
            activeModsListView.SmallImageList    = imageList;

            FormBorderStyle = FormBorderStyle.FixedSingle;

            //set language menu items for checking
            languageMenuItems.Add("cz", cestinaToolStripMenuItem);
            languageMenuItems.Add("de", deutschToolStripMenuItem);
            languageMenuItems.Add("en", englishToolStripMenuItem);
            languageMenuItems.Add("es", espanolToolStripMenuItem);
            languageMenuItems.Add("fr", francaisToolStripMenuItem);
            languageMenuItems.Add("it", italianoToolStripMenuItem);
            languageMenuItems.Add("nl", nederlandsToolStripMenuItem);
            languageMenuItems.Add("pl", polishToolStripMenuItem);
            languageMenuItems.Add("ru", russianToolStripMenuItem);

            //get language
            var appSettingsFilePath = $"{Paths.ExePath}\\{Paths.AppSettingsName}";

            if (File.Exists(appSettingsFilePath))
            {
                var json        = File.ReadAllText(appSettingsFilePath, Encoding.Default);
                var appSettings = JsonConvert.DeserializeObject <AppSettings>(json);
                _language = appSettings.Language;
            }
            setCheckOfLanguageInMenu(true);

            _moddingService         = new ModdingService();
            _progressBarManipulator = new ProgressBarManipulator(this, modProgressStatusBar);

            // check, if the exe is in the correct directory
            var correctDirectory = false;

            foreach (var digglesExe in Paths.DigglesExecutableNames)
            {
                if (File.Exists($"{Paths.ExePath}\\{digglesExe}"))
                {
                    correctDirectory = true;
                    break;
                }
            }

            //Only start, when exe is in the correct directory
            if (correctDirectory)
            {
                ResetStatusNote();
                ReadMods();
            }
            else
            {
                Helpers.ShowMessage(Resources.FormMain_CouldNotFindDigglesExeErrorText, Resources.Error);
            }
        }