/// <summary>
        ///     Checks the base hash.
        /// </summary>
        public void CheckBaseHash()
        {
            var    reg   = new AtsRegWork(true);
            var    acGam = reg.Read(RegKeys.CURRENT_GAME);
            string tmp;
            string hsh;
            string newHash;

            switch (acGam)
            {
            case "ATS":
                tmp = reg.Read(AtsRegKeys.ATS_BASE_SCS_LOCATION);
                if (tmp.IsNullOrEmpty())
                {
                    LocateBase();
                    tmp = reg.Read(AtsRegKeys.ATS_BASE_SCS_LOCATION);
                }

                hsh     = reg.Read(AtsRegKeys.ATS_BASE_HASH);
                newHash = Hasher.HashFile(tmp);
                if (!string.Equals(newHash, hsh, StringComparison.OrdinalIgnoreCase))
                {
                    reg.Write(AtsRegKeys.ATS_BASE_HASH, newHash);
                    ExtractBaseFiles();
                    ExtractDefFiles();
                }
                else
                {
                    MsgBx.Msg("No Update Necessary", "Up to Date Base Files");
                }

                break;

            case "ETS":
                tmp = reg.Read(EtsRegKeys.ETS_BASE_SCS_LOCATION);
                if (tmp.IsNullOrEmpty())
                {
                    LocateBase();
                    tmp = reg.Read(EtsRegKeys.ETS_BASE_SCS_LOCATION);
                }

                hsh     = reg.Read(EtsRegKeys.ETS_BASE_HASH);
                newHash = Hasher.HashFile(tmp);
                if (!string.Equals(newHash, hsh, StringComparison.OrdinalIgnoreCase))
                {
                    reg.Write(EtsRegKeys.ETS_BASE_HASH, newHash);
                    ExtractBaseFiles();
                    ExtractDefFiles();
                }
                else
                {
                    MsgBx.Msg("No Update Necessary", "Up to Date Base Files");
                }

                break;
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     Loads the ats mod choice.
        /// </summary>
        /// <param name="chc">The CHC.</param>
        /// <returns></returns>
        public string LoadAtsModChoice(string chc)
        {
            var ats = new AtsRegWork(true);
            var fnd = string.Empty;
            var dic = Serializer.DeserializeDictionary(ats.Read(AtsRegKeys.ATS_XML) + "sortedFileListComplete.xml");

            if (dic.Any(v => string.Equals(v.Key, chc, StringComparison.OrdinalIgnoreCase)))
            {
                dic.TryGetValue(chc, out fnd);
            }
            return(fnd + chc);
        }
        private static void ExtractBaseFiles()
        {
            var    reg   = new AtsRegWork(true);
            var    acGam = reg.Read(RegKeys.CURRENT_GAME);
            string tmp;

            switch (acGam)
            {
            case "ATS":
                var fld = reg.Read(AtsRegKeys.ATS_EXTRACTION);
                tmp                  = reg.Read(AtsRegKeys.ATS_BASE_SCS_LOCATION);
                FileCopy.Source      = ScsExtractor;
                FileCopy.Destination = fld + ScsExtractor.GetFileName();
                FileCopy.DoCopy();

                FileCopy.Source      = tmp;
                FileCopy.Destination = fld + "base.scs";
                FileCopy.DoCopy();

                ExtractScs(fld, tmp);

                break;

            case "ETS":
                tmp = reg.Read(EtsRegKeys.ETS_BASE_SCS_LOCATION);
                fld = reg.Read(EtsRegKeys.ETS_EXTRACTION);

                FileCopy.Source      = ScsExtractor;
                FileCopy.Destination = fld + ScsExtractor.GetFileName();
                FileCopy.DoCopy();

                FileCopy.Source      = tmp;
                FileCopy.Destination = fld + "base.scs";
                FileCopy.DoCopy();

                ExtractScs(fld, tmp);

                break;
            }
        }
Esempio n. 4
0
        /// <summary>
        ///     Loads the ats profile mods.
        /// </summary>
        /// <param name="prof">The PTH.</param>
        /// <returns></returns>
        public Dictionary <string, string> LoadAtsProfileMods(string prof)
        {
            var ats = new AtsRegWork(true);
            var pro = ats.Read(AtsRegKeys.ATS_PROFILES) + prof + "\\" + prof + ".xml";

            if (!pro.FileExists())
            {
                return(null);
            }
            var dic = Serializer.DeserializeDictionary(pro);

            return(dic);
        }
Esempio n. 5
0
        private static string GetLocation()
        {
            var gi  = new GameInfo();
            var tmp = gi.GetGame();

            if (tmp.IsNullOrEmpty())
            {
                return(null);
            }


            var pth = string.Empty;

            switch (tmp)
            {
            case "ATS":
                var atsp = new AtsRegWork(true);
                pth = atsp.Read(AtsRegKeys.ATS_GROUPS);
                break;

            case "ETS":
                var etsp = new EtsRegWork(true);
                pth = etsp.Read(EtsRegKeys.ETS_GROUPS);
                break;

            case "FS15":
                var fs15 = new Fs15RegWork(true);
                pth = fs15.Read(Fs15RegKeys.FS15_GROUPS);
                break;

            case "FS17":
                var fs17 = new Fs17RegWork(true);
                pth = fs17.Read(Fs17RegKeys.FS17_GROUPS);
                break;
            }

            var lst = GetFilesFolders.GetFolders(pth, "*.*");
            var frm = new ModMover();

            foreach (var f in lst)
            {
                frm.lstModMove.Items.Add(f);
            }

            frm.ShowDialog();

            var fld = frm.lstModMove.SelectedItem.ToString();

            frm.Close();
            return(fld);
        }
Esempio n. 6
0
        private void checkForBaseFilesUpdateToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);

            switch (gam)
            {
            case "ATS":
            case "ETS":
                var bs = new BaseFileExtractor();
                bs.CheckBaseHash();
                break;
            }
        }
Esempio n. 7
0
        private void LoadProfileMods()
        {
            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);

            if (lstSortMods.SelectedItem.IsNull())
            {
                return;
            }
            var chc = lstSortMods.SelectedItem.ToString();

            lstAvailableMods.Items.Clear();
            IEnumerable <string> lst = null;

            switch (gam)
            {
            case "ATS":
                var ats = new AtsLoader();
                lst = ats.LoadAtsGroupMods(chc);
                break;

            case "ETS":
                var ets = new EtsLoader();
                lst = ets.LoadEtsGroupMods(chc);
                break;

            case "FS15":
                var fs15 = new Fs15Loader();
                lst = fs15.LoadFs15GroupMods(chc);
                break;

            case "FS17":
                var fs17 = new Fs17Loader();
                lst = fs17.LoadFs17GroupMods(chc);
                break;
            }

            if (lst == null)
            {
                return;
            }
            foreach (var v in lst)
            {
                lstAvailableMods.Items.Add(v.GetFileName());
            }

            CheckModCount();
        }
Esempio n. 8
0
        private void bAddNewProfile_Click(object sender, EventArgs e)
        {
            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);

            if (txtAddProfile.Text.IsNullOrEmpty())
            {
                return;
            }
            var prof = new ProfileWorker();

            prof.AddNewProfile(txtAddProfile.Text);
            txtAddProfile.Text = string.Empty;
            lblProfiles.Text   = @"Active Profiles: " + lstProfiles.Items.Count;
            GameLoader(gam);
        }
Esempio n. 9
0
        /// <summary>
        ///     Starts the ats.
        /// </summary>
        public void StartAts()
        {
            var ats = new AtsRegWork(true);
            var gam = ats.Read(AtsRegKeys.ATS_START_GAME_PATH);

            if (gam.IsNullOrEmpty())
            {
                var ofd = new OpenFileDialog {
                    CheckFileExists = true,
                    Title           = @"Navigate to the American Truck Simulator Exe"
                };

                ofd.ShowDialog();
                gam = ofd.FileName;
                ats.Write(AtsRegKeys.ATS_START_GAME_PATH, ofd.FileName);
            }

            Process.Start(gam);
        }
Esempio n. 10
0
        /// <summary>
        ///     Removes the mod.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <returns></returns>
        public Dictionary <string, string> ProfileRemoveMod(string key)
        {
            var reg     = new AtsRegWork(true);
            var gam     = reg.Read(RegKeys.CURRENT_GAME);
            var profile = reg.Read(RegKeys.CURRENT_PROFILE);
            var modPath = string.Empty;

            switch (gam)
            {
            case "ATS":
                modPath = reg.Read(AtsRegKeys.ATS_PROFILES) + profile + "\\" + profile + XML_EXT;
                break;

            case "ETS":
                modPath = reg.Read(EtsRegKeys.ETS_PROFILES) + profile + "\\" + profile + XML_EXT;
                break;

            case "FS15":
                modPath = reg.Read(Fs15RegKeys.FS15_PROFILES) + profile + "\\" + profile + XML_EXT;
                break;

            case "FS17":
                modPath = reg.Read(Fs17RegKeys.FS17_PROFILES) + profile + "\\" + profile + XML_EXT;
                break;
            }

            var dic = Serializer.DeserializeDictionary(modPath);

            if (dic.Any(v => string.Equals(v.Key, key, StringComparison.OrdinalIgnoreCase)))
            {
                var mod = reg.Read(Fs17RegKeys.FS17_PROFILES) + profile + "\\" + key;
                dic.Remove(key);
                DeleteFiles.DeleteFilesOrFolders(mod);

                var ls = new ListCreator();
                ls.CreateSortedLists();
                ls.SortedFileListComplete();
                MsgBx.Msg("Operation completed successfully", "Mod Remover");
            }

            Serializer.SerializeDictionary(modPath, dic);

            return(dic);
        }
Esempio n. 11
0
        /// <summary>
        ///     Initializes the ats.
        /// </summary>
        public void InitializeAts()
        {
            var atsw = new AtsRegWork(true);
            var tmp  = atsw.Read(AtsRegKeys.ATS_REPO);

            if (!tmp.IsNullOrEmpty())
            {
                return;
            }

            var diag = MessageBox.Show(@"Do you want me to setup American Truck Simulator?", @"ATS Init",
                                       MessageBoxButtons.YesNo);

            if (diag != DialogResult.Yes)
            {
                return;
            }

            CreateFolders();
        }
Esempio n. 12
0
        private void DeleteRepoMod(string pth)
        {
            var    reg = new AtsRegWork(true);
            var    gam = reg.Read(RegKeys.CURRENT_GAME);
            var    dic = Serializer.DeserializeDictionary(pth);
            var    lc  = new ListCreator();
            var    key = lstAvailableMods.SelectedItem.ToString();
            string pt;

            if (!dic.Any(v => string.Equals(v.Key, key, StringComparison.OrdinalIgnoreCase)))
            {
                return;
            }
            dic.TryGetValue(key, out pt);
            var mPth = pt + key;

            DeleteFiles.DeleteFilesOrFolders(mPth);
            lstAvailableMods.Items.Remove(key);
            lc.CreateSortedLists();
            lc.SortedFileListComplete();
            switch (gam)
            {
            case "ETS":
                EtsLoad();
                break;

            case "ATS":
                AtsLoad();
                break;

            case "FS15":
                Fs15Load();
                break;

            case "FS17":
                Fs17Load();
                CheckModCount();
                break;
            }
        }
Esempio n. 13
0
        public string GetMapName(string saveGame)
        {
            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);
            var tmp = string.Empty;

            switch (gam)
            {
            case "FS15":

                break;

            case "FS17":
                var xdoc = new XmlDocument();
                if (!saveGame.FolderExists())
                {
                    return(string.Empty);
                }
                xdoc.Load(saveGame + "\\careerSavegame.xml");
                var nodes = xdoc.SelectNodes("careerSavegame/settings/savegameName");
                if (nodes == null)
                {
                    return(string.Empty);
                }
                foreach (XmlNode node in nodes)
                {
                    if (node.Name != "savegameName")
                    {
                        continue;
                    }
                    tmp = node.InnerText;
                    break;
                }

                break;
            }

            return(tmp);
        }
Esempio n. 14
0
        /// <summary>
        ///     Copy the mods to profile
        /// </summary>
        /// <returns></returns>
        public Dictionary <string, string> CopyProfileMods()
        {
            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);
            var ofd = new FolderBrowserDialog {
                Description         = @"Navigate to mods",
                ShowNewFolderButton = false
            };

            ofd.ShowDialog();
            if (!ofd.SelectedPath.FolderExists())
            {
                return(null);
            }
            IEnumerable <string> lst = null;

            switch (gam)
            {
            case "ATS":
                lst = GetFilesFolders.GetFiles(ofd.SelectedPath, "*.scs");
                break;

            case "ETS":
                lst = GetFilesFolders.GetFiles(ofd.SelectedPath, "*.scs");
                break;

            case "FS15":
                lst = GetFilesFolders.GetFiles(ofd.SelectedPath, "*.zip");
                break;

            case "FS17":
                lst = GetFilesFolders.GetFiles(ofd.SelectedPath, "*.zip");
                break;
            }

            return(CreateLinks(lst));
        }
Esempio n. 15
0
        /// <summary>
        ///     Adds the new profile.
        /// </summary>
        /// <param name="nam">The nam.</param>
        public void AddNewProfile(string nam)
        {
            var gi  = new GameInfo();
            var gam = gi.GetGame();

            if (gam.IsNullOrEmpty())
            {
                return;
            }
            var pth = string.Empty;

            switch (gam)
            {
            case "ATS":
                var atsp = new AtsRegWork(true);
                pth = atsp.Read(AtsRegKeys.ATS_PROFILES) + nam;
                break;

            case "ETS":
                var etsp = new EtsRegWork(true);
                pth = etsp.Read(EtsRegKeys.ETS_PROFILES) + nam;
                break;

            case "FS15":
                var fs15 = new Fs15RegWork(true);
                pth = fs15.Read(Fs15RegKeys.FS15_PROFILES) + nam;
                break;

            case "FS17":
                var fs17 = new Fs17RegWork(true);
                pth = fs17.Read(Fs17RegKeys.FS17_PROFILES) + nam;
                break;
            }

            FolderCreator.CreatePublicFolders(pth);
        }
Esempio n. 16
0
        /// <summary>
        ///     Removes a Profile
        /// </summary>
        /// <returns></returns>
        public IEnumerable <string> ProfileRemove()
        {
            var    reg     = new AtsRegWork(true);
            var    gam     = reg.Read(RegKeys.CURRENT_GAME);
            var    profile = reg.Read(RegKeys.CURRENT_PROFILE);
            string proPath;
            IEnumerable <string> proList = null;

            switch (gam)
            {
            case "ATS":
                var ldr = new AtsLoader();
                proPath = reg.Read(AtsRegKeys.ATS_PROFILES) + profile;
                DeleteFiles.DeleteFilesOrFolders(proPath);
                proList = ldr.LoadAtsProfiles();
                break;

            case "ETS":
                var edr = new EtsLoader();
                proPath = reg.Read(EtsRegKeys.ETS_PROFILES) + profile;
                DeleteFiles.DeleteFilesOrFolders(proPath);
                proList = edr.LoadEtsProfiles();
                break;

            case "FS15":
                proPath = reg.Read(Fs15RegKeys.FS15_PROFILES) + profile;
                var fs15 = new Fs15Loader();
                DeleteFiles.DeleteFilesOrFolders(proPath);
                proList = fs15.LoadFs15Profiles();
                break;

            case "FS17":
                proPath = reg.Read(Fs17RegKeys.FS17_PROFILES) + profile;
                var fs17 = new Fs15Loader();
                DeleteFiles.DeleteFilesOrFolders(proPath);
                proList = fs17.LoadFs15Profiles();
                break;
            }

            return(proList);
        }
Esempio n. 17
0
        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            var reg   = new AtsRegWork(true);
            var gam   = reg.Read(RegKeys.CURRENT_GAME);
            var cProf = reg.Read(RegKeys.CURRENT_PROFILE);

            if (gam.IsNullOrEmpty() || cProf.IsNullOrEmpty())
            {
                MsgBx.Msg("You need to have a Profile / Game active", "Process Error");
                return;
            }

            string tmp;
            string profPath;
            Dictionary <string, string> lst = null;

            lstProfileMods.Items.Clear();

            switch (gam)
            {
            case "ATS":
                var ats  = new AtsLoader();
                var atsp = new AtsRegWork(true);
                var prof = new ProfileWorker();
                tmp      = ats.LoadAtsModChoice(lstAvailableMods.SelectedItem.ToString());
                profPath = atsp.Read(AtsRegKeys.ATS_GAME_MOD_FOLDER) + tmp.GetFileName();
                prof.BuildProfileList(lstAvailableMods.SelectedItem.ToString());
                SymLinks.CreateSymLink(profPath, tmp, 0);
                lst = ats.LoadAtsProfileMods(reg.Read(RegKeys.CURRENT_PROFILE));
                break;

            case "ETS":
                var ets  = new EtsLoader();
                var etsp = new EtsRegWork(true);
                prof     = new ProfileWorker();
                tmp      = ets.LoadEtsModChoice(lstAvailableMods.SelectedItem.ToString());
                profPath = etsp.Read(EtsRegKeys.ETS_GAME_MOD_FOLDER) + tmp.GetFileName();
                prof.BuildProfileList(lstAvailableMods.SelectedItem.ToString());
                SymLinks.CreateSymLink(profPath, tmp, 0);
                lst = ets.LoadEtsProfileMods(reg.Read(RegKeys.CURRENT_PROFILE));
                break;

            case "FS15":
                var fs15  = new Fs15Loader();
                var fs15P = new Fs15RegWork(true);
                tmp      = fs15.LoadFs15ModChoice(lstAvailableMods.SelectedItem.ToString());
                profPath = fs15P.Read(Fs15RegKeys.FS15_PROFILES) + reg.Read(RegKeys.CURRENT_PROFILE) + "\\" +
                           tmp.GetFileName();
                prof = new ProfileWorker();
                prof.BuildProfileList(lstAvailableMods.SelectedItem.ToString());
                SymLinks.CreateSymLink(profPath, tmp, 0);
                lst = fs15.LoadFs15ProfileMods(reg.Read(RegKeys.CURRENT_PROFILE));
                break;

            case "FS17":
                var fs17  = new Fs17Loader();
                var fs17P = new Fs17RegWork(true);
                tmp      = fs17.LoadFs17ModChoice(lstAvailableMods.SelectedItem.ToString());
                profPath = fs17P.Read(Fs17RegKeys.FS17_PROFILES) + reg.Read(RegKeys.CURRENT_PROFILE) + "\\" +
                           tmp.GetFileName();
                prof = new ProfileWorker();
                prof.BuildProfileList(lstAvailableMods.SelectedItem.ToString());
                SymLinks.CreateSymLink(profPath, tmp, 0);
                lst = fs17.LoadFs17ProfileMods(reg.Read(RegKeys.CURRENT_PROFILE));
                break;
            }

            if (lst == null)
            {
                return;
            }
            foreach (var v in lst)
            {
                lstProfileMods.Items.Add(v.Key);
            }

            CheckModCount();
            label2.Text = @"Active Mods: " + lstProfileMods.Items.Count;

            // MsgBx.Msg("Profile Link Created", "Linker");
        }
Esempio n. 18
0
        /// <summary>
        ///     Extracts the mod SCS.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <returns>System.String.</returns>
        public static string ExtractModScs(string path)
        {
            SevenZipBase.SetLibraryPath(LibraryFilePath);
            var reg            = new AtsRegWork(true);
            var acGam          = reg.Read(RegKeys.CURRENT_GAME);
            var extractionPath = string.Empty;

            switch (acGam)
            {
            case "ATS":
                extractionPath = reg.Read(AtsRegKeys.ATS_WORK);
                break;

            case "ETS":
                extractionPath = reg.Read(EtsRegKeys.ETS_WORK);
                break;
            }

            var folderName = path.GetNameNoExtension();

            reg.Write(RegKeys.CURRENT_EXTRACTED_FOLDER_PATH, extractionPath + folderName + "\\");

            var sbePath = new StringBuilder();

            sbePath.Append(extractionPath);
            sbePath.Append(Path.DirectorySeparatorChar);
            sbePath.Append(folderName);
            sbePath.Append(Path.DirectorySeparatorChar);

            if (folderName.IsNullOrEmpty() || extractionPath.IsNullOrEmpty())
            {
                return("There was a problem with the archive / " +
                       "extraction path, please try again");
            }

            SevenZipExtractor svChecker = null;
            bool chk;

            try {
                svChecker = new SevenZipExtractor(path);
                chk       = svChecker.Check();
            }
            catch (Exception) {
                svChecker?.Dispose();
                return("This archive cannot be extracted, possible encryption or a damaged archive");
            }

            if (chk)
            {
                using (var extract = new SevenZipExtractor(path)) {
                    extract.ExtractArchive(sbePath.ToString());
                    extract.Dispose();
                }
            }
            else
            {
                MsgBx.Msg(@"This archive appears to be password protected, please enter password now",
                          @"Password Error");

                var input = Interaction.InputBox("Enter Password", "Enter Password");
                using (var pswdExtract = new SevenZipExtractor(path, input)) {
                    try {
                        pswdExtract.ExtractArchive(sbePath.ToString());
                        pswdExtract.Dispose();
                    }
                    catch (Exception) {
                        pswdExtract.Dispose();
                        MsgBx.Msg(@"That password seems to be invalid, I cannot continue", "Invalid Password");
                        return("Invalid password attempt");
                    }
                }
            }

            return("All files have been extracted from " + path.GetFileName());
        }
Esempio n. 19
0
        private void lstProfiles_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lstProfiles.SelectedItem.IsNull())
            {
                return;
            }
            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);

            if (gam.IsNullOrEmpty())
            {
                return;
            }
            lstProfileMods.Items.Clear();
            Dictionary <string, string> lst = null;

            lblActiveProfile.Text = @"Active Profile: " + lstProfiles.SelectedItem;
            reg.Write(RegKeys.CURRENT_PROFILE, lstProfiles.SelectedItem);

            switch (gam)
            {
            case "ATS":
                var prof = new ProfileWorker();
                var ats  = new AtsLoader();
                lst = ats.LoadAtsProfileMods(lstProfiles.SelectedItem.ToString());
                prof.SetProfileActive();
                break;

            case "ETS":
                prof = new ProfileWorker();
                var ets = new EtsLoader();
                lst = ets.LoadEtsProfileMods(lstProfiles.SelectedItem.ToString());
                prof.SetProfileActive();
                break;

            case "FS15":
                prof = new ProfileWorker();
                var fs15 = new Fs15Loader();
                lst = fs15.LoadFs15ProfileMods(lstProfiles.SelectedItem.ToString());
                prof.SetProfileActive();
                break;

            case "FS17":
                prof = new ProfileWorker();
                var fs17 = new Fs17Loader();
                lst = fs17.LoadFs17ProfileMods(lstProfiles.SelectedItem.ToString());
                prof.SetProfileActive();
                lblProfiles.Text = @"Active Profiles: " + lstProfiles.Items.Count;
                break;
            }

            if (lst == null)
            {
                return;
            }
            foreach (var v in lst)
            {
                lstProfileMods.Items.Add(v.Key);
            }

            label2.Text = @"Active Mods: " + lstProfileMods.Items.Count;
        }
Esempio n. 20
0
        /// <summary>
        ///     Loads the tree.
        /// </summary>
        /// <param name="path">The path.</param>
        public void LoadTree(string path = null)
        {
            var reg = new AtsRegWork(true);

            tree.Nodes.Clear();
            tree.ImageList = imageList1;
            var dir = reg.Read(RegKeys.CURRENT_EXTRACTED_FOLDER_PATH);

            if (path != null)
            {
                dir = path;
            }
            if (dir.IsNullOrEmpty() && path.IsNullOrEmpty())
            {
                return;
            }

            var stack         = new Stack <TreeNode>();
            var rootDirectory = new DirectoryInfo(dir);
            var node          = new TreeNode(rootDirectory.FullName)
            {
                Tag = rootDirectory, ImageIndex = 4
            };

            stack.Push(node);

            while (stack.Count > 0)
            {
                var currentNode   = stack.Pop();
                var directoryInfo = (DirectoryInfo)currentNode.Tag;
                foreach (
                    var childDirectoryNode in
                    directoryInfo.EnumerateDirectories()
                    .Select(directory => new TreeNode(directory.Name)
                {
                    Tag = directory, ImageIndex = 0
                }))
                {
                    if (childDirectoryNode.Text == @"mods" || childDirectoryNode.Text == @"music" ||
                        childDirectoryNode.Text == @"pdlc" ||
                        childDirectoryNode.Text == @"pending_downloads" ||
                        childDirectoryNode.Text == @"savegameBackup" ||
                        childDirectoryNode.Text == @"shader_cache" ||
                        childDirectoryNode.Text == @"screenshots" ||
                        childDirectoryNode.Text == @"vehicleSort")
                    {
                        continue;
                    }
                    currentNode.Nodes.Add(childDirectoryNode);
                    stack.Push(childDirectoryNode);
                }

                foreach (var file in directoryInfo.GetFiles())
                {
                    var ext = file.Extension;
                    switch (ext)
                    {
                    case ".scs":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 9, 9));
                        break;

                    case ".xml":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 6, 6));
                        break;

                    case ".tobj":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 3, 3));
                        break;

                    case ".dds":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 7, 7));
                        break;

                    case ".jpg":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 7, 7));
                        break;

                    case ".png":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 7, 7));
                        break;

                    case ".bmp":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 7, 7));
                        break;

                    case ".mat":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 10, 10));
                        break;

                    case ".sii":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 13, 13));
                        break;

                    case ".zip":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 8, 8));
                        break;

                    case ".gdm":
                    case ".grle":
                    case "":
                    case ".dat":
                    case ".gmss":
                    case ".cache":
                        break;

                    case ".pmc":
                    case ".pmd":
                    case ".pmg":
                    case ".pma":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 5, 5));
                        break;

                    case ".ogg":
                        currentNode.Nodes.Add(new TreeNode(file.Name, 12, 12));
                        break;

                    default:
                        currentNode.Nodes.Add(new TreeNode(file.Name, 3, 3));
                        break;
                    }
                }
            }

            tree.Nodes.Add(node);
        }
Esempio n. 21
0
        /// <summary>
        ///     Loads the favorites.
        /// </summary>
        public static Dictionary <string, string> LoadFavorites(string mke)
        {
            var fs17  = new Fs17Loader();
            var reg   = new AtsRegWork(true);
            var gam   = reg.Read(RegKeys.CURRENT_GAME);
            var cProf = reg.Read(RegKeys.CURRENT_PROFILE);

            if (gam.IsNullOrEmpty() || cProf.IsNullOrEmpty())
            {
                MsgBx.Msg("You need to have a Profile / Game active", "Process Error");
                return(null);
            }

            var dic = new Dictionary <string, string>()
            ;

            switch (mke)
            {
            case "Claas":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\claas.xml");
                break;

            case "Krone":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\krone.xml");
                break;

            case "NewHolland":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\newholland.xml");
                break;

            case "JohnDeere":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\johndeere.xml");
                break;

            case "MasseyFerguson":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\masseyferguson.xml");
                break;

            case "Fendt":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\fendt.xml");
                break;

            case "Case":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\case.xml");
                break;

            case "Plows":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\plows.xml");
                break;

            case "Cultivators":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\cultivators.xml");
                break;

            case "Placeables":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\placeables.xml");
                break;

            case "Specials":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\specials.xml");
                break;

            case "TractorsOther":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\tractorsOther.xml");
                break;

            case "Balers":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\balers.xml");
                break;

            case "Trailers":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\trailers.xml");
                break;

            case "Tools":
                dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_GROUPS) + @"\tools.xml");
                break;
            }


            var lnkPth = reg.Read(Fs17RegKeys.FS17_PROFILES) + cProf + "\\";

            foreach (var v in dic)
            {
                var tmp = lnkPth + v.Key;
                if (tmp.FileExists())
                {
                    continue;
                }
                var org = v.Value + v.Key;
                if (!org.FileExists())
                {
                    continue;
                }
                //CreateSymbolicLink(tmp, org, SymbolicLink.File);
                //SymLinks.CreateSymLink(tmp, org, 0);
                // FileCopyMove.FileCopy(org, tmp);

                CreateHardLink(tmp, org, IntPtr.Zero);
            }

            var lc = new ListCreator();

            lc.CreateSortedLists();

            var lst = fs17.LoadFs17ProfileMods(reg.Read(RegKeys.CURRENT_PROFILE));

            return(lst);
        }
Esempio n. 22
0
        /// <summary>
        ///     Sets the cheat values.
        /// </summary>
        public void SetCheatValues(string saveGame)
        {
            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);

            switch (gam)
            {
            case "FS15":
                var pth = saveGame;
                if (!pth.FileExists())
                {
                    return;
                }
                var xmlFile = XDocument.Load(pth + "\\careerSavegame.xml");
                var query   = from c in xmlFile.Elements("careerSavegame")
                              select c;

                foreach (var element in query)
                {
                    var xAttribute = element.Attribute("money");
                    if (xAttribute != null)
                    {
                        xAttribute.Value = MONEY;
                    }
                    var attribute = element.Attribute("isPlantWitheringEnabled");
                    if (attribute != null)
                    {
                        attribute.Value = WITHER;
                    }
                }

                xmlFile.Save(pth + "\\careerSavegame.xml");

                MsgBx.Msg("Money / Wither Cheat Applied to " + saveGame.GetLastFolderName(), "Cheat");
                break;

            case "FS17":
                var xdoc = new XmlDocument();
                xdoc.Load(saveGame + "\\careerSavegame.xml");

                var nodes = xdoc.SelectNodes("careerSavegame/statistics/money");
                if (nodes == null)
                {
                    return;
                }
                foreach (XmlNode node in nodes)
                {
                    if (node.Name != "money")
                    {
                        continue;
                    }
                    var amt  = node.InnerText;
                    var cash = Convert.ToInt32(amt);
                    var done = cash + Convert.ToInt32(MONEY);
                    node.InnerText = done.ToString();
                    break;
                }

                xdoc.Save(saveGame + "\\careerSavegame.xml");
                MsgBx.Msg("Money Cheat Applied to " + saveGame.GetLastFolderName(), "Money Cheat");
                break;
            }
        }
Esempio n. 23
0
        /// <summary>
        ///     Reads the log files.
        /// </summary>
        public void ReadLogFiles()
        {
            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);
            var ofd = new OpenFileDialog();
            var pth = string.Empty;

            switch (gam)
            {
            case "ATS":
                pth = reg.Read(AtsRegKeys.ATS_LOG_FILE);
                if (pth.IsNullOrEmpty())
                {
                    ofd.Title =
                        @"Navigate to the ATS Log File, usually in my documents under American Truck Simulator";
                    ofd.ShowDialog();
                    if (!ofd.FileName.FileExists())
                    {
                        return;
                    }
                    reg.Write(AtsRegKeys.ATS_LOG_FILE, ofd.FileName);
                    pth = ofd.FileName;
                }

                break;

            case "ETS":
                pth = reg.Read(EtsRegKeys.ETS_LOG_FILE);
                if (pth.IsNullOrEmpty())
                {
                    ofd.Title =
                        @"Navigate to the ETS Log File, usually in my documents under Euro Truck Simulator 2";
                    ofd.ShowDialog();
                    if (!ofd.FileName.FileExists())
                    {
                        return;
                    }
                    reg.Write(EtsRegKeys.ETS_LOG_FILE, ofd.FileName);
                    pth = ofd.FileName;
                }

                break;

            case "FS15":
                pth = reg.Read(Fs15RegKeys.FS15_LOG_FILE);
                if (pth.IsNullOrEmpty())
                {
                    ofd.Title =
                        @"Navigate to the FS15 Log File, usually in my documents/My Games under Farming Simulator 2015";
                    ofd.ShowDialog();
                    if (!ofd.FileName.FileExists())
                    {
                        return;
                    }
                    reg.Write(Fs15RegKeys.FS15_LOG_FILE, ofd.FileName);
                    pth = ofd.FileName;
                }

                break;

            case "FS17":
                pth = reg.Read(Fs17RegKeys.FS17_LOG_FILE);
                if (pth.IsNullOrEmpty())
                {
                    ofd.Title =
                        @"Navigate to the FS17 Log File, usually in my documents/My Games under Farming Simulator 2017";
                    ofd.ShowDialog();
                    if (!ofd.FileName.FileExists())
                    {
                        return;
                    }
                    reg.Write(Fs17RegKeys.FS17_LOG_FILE, ofd.FileName);
                    pth = ofd.FileName;
                }

                break;
            }

            if (!pth.FileExists())
            {
                return;
            }
            Process.Start(pth);
        }
Esempio n. 24
0
        public void OrganizeMaps()
        {
            var mapLst = new List <string> {
                "map",
                "Map"
            };

            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);

            if (gam.IsNullOrEmpty())
            {
                MsgBx.Msg("Mod Sorting is Game specific, you need to choose a game", "Game Error");
                return;
            }

            SetSearchLists();

            string tmp;
            IEnumerable <string> lst;

            switch (gam)
            {
            case "ATS":
                tmp = reg.Read(AtsRegKeys.ATS_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.scs");
                if (lst.IsNull())
                {
                    return;
                }
                foreach (var v in lst)
                {
                    foreach (var t in _srchLstTs)
                    {
                        if (!v.Contains(t, StringComparison.OrdinalIgnoreCase))
                        {
                            continue;
                        }
                        FolderCreator.CreatePublicFolders(reg.Read(AtsRegKeys.ATS_GROUPS) + t);
                        FileCopyMove.FileCopy(v, reg.Read(AtsRegKeys.ATS_GROUPS) + t + "\\" + v.GetFileName(),
                                              true);
                    }
                }

                break;

            case "ETS":
                var ets = new EtsRegWork(true);
                tmp = ets.Read(EtsRegKeys.ETS_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.scs");
                if (lst.IsNull())
                {
                    return;
                }
                foreach (var v in lst)
                {
                    foreach (var t in _srchLstTs)
                    {
                        if (!v.Contains(t, StringComparison.OrdinalIgnoreCase))
                        {
                            continue;
                        }
                        FolderCreator.CreatePublicFolders(ets.Read(EtsRegKeys.ETS_GROUPS) + t);
                        FileCopyMove.FileCopy(v, ets.Read(EtsRegKeys.ETS_GROUPS) + t + "\\" + v.GetFileName(),
                                              true);
                    }
                }

                break;

            case "FS15":
                var fs15 = new Fs15RegWork(true);
                tmp = fs15.Read(Fs15RegKeys.FS15_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.zip");
                if (lst.IsNull())
                {
                    return;
                }
                foreach (var v in lst)
                {
                    foreach (var t in _srchLstFs)
                    {
                        if (!v.Contains(t, StringComparison.OrdinalIgnoreCase))
                        {
                            continue;
                        }
                        FolderCreator.CreatePublicFolders(fs15.Read(Fs15RegKeys.FS15_GROUPS) + t);
                        FileCopyMove.FileCopy(v, fs15.Read(Fs15RegKeys.FS15_GROUPS) + t + "\\" + v.GetFileName(),
                                              true);
                    }
                }

                break;

            case "FS17":
                var fs17      = new Fs17RegWork(true);
                var bypass    = new SortingBypass();
                var byPassDat = bypass.GetBypassList();
                tmp = fs17.Read(Fs17RegKeys.FS17_GROUPS);
                var fldLst  = GetFilesFolders.GetFolders(tmp, "*.*");
                var chkList = new List <string>();
                var enu     = fldLst.ToList();
                foreach (var v in enu)
                {
                    var chk = v.GetLastFolderName();
                    if (byPassDat.ContainsKey(chk))
                    {
                        continue;
                    }
                    chkList.Add(v);
                }

                if (chkList.IsNull())
                {
                    return;
                }
                foreach (var v in chkList)
                {
                    lst = GetFilesFolders.GetFiles(v + "\\", "*.zip");
                    foreach (var f in lst)
                    {
                        foreach (var t in mapLst)
                        {
                            if (!f.Contains(t, StringComparison.OrdinalIgnoreCase))
                            {
                                continue;
                            }
                            var src = tmp + "\\" + "Map" + "\\" + f.GetFileName();
                            if (src.FileExists())
                            {
                                continue;
                            }
                            FileCopyMove.FileCopy(f, src, true);
                        }
                    }
                }

                break;
            }

            var lstCreate = new ListCreator();

            lstCreate.CreateSortedLists();
            lstCreate.SortedFileListComplete();
            MsgBx.Msg("Map Sorting Complete", "Map Sorter");
        }
Esempio n. 25
0
        private static Dictionary <string, string> CreateLinks(IEnumerable <string> lst)
        {
            var reg      = new AtsRegWork(true);
            var pf       = new ProfileWorker();
            var gam      = reg.Read(RegKeys.CURRENT_GAME);
            var profile  = reg.Read(RegKeys.CURRENT_PROFILE);
            var pth      = string.Empty;
            var dic      = new Dictionary <string, string>();
            var linkPath = string.Empty;

            switch (gam)
            {
            case "ATS":
                pth      = reg.Read(AtsRegKeys.ATS_PROFILES) + profile + "\\" + profile + ".xml";
                linkPath = reg.Read(AtsRegKeys.ATS_GAME_MOD_FOLDER);
                break;

            case "ETS":
                pth      = reg.Read(EtsRegKeys.ETS_PROFILES) + profile + "\\" + profile + ".xml";
                linkPath = reg.Read(EtsRegKeys.ETS_GAME_MOD_FOLDER);
                break;

            case "FS15":
                pth      = reg.Read(Fs15RegKeys.FS15_PROFILES) + profile + "\\" + profile + ".xml";
                linkPath = reg.Read(Fs15RegKeys.FS15_PROFILES) + profile + "\\";
                break;

            case "FS17":
                pth      = reg.Read(Fs17RegKeys.FS17_PROFILES) + profile + "\\" + profile + ".xml";
                linkPath = reg.Read(Fs17RegKeys.FS17_PROFILES) + profile + "\\";
                break;
            }

            if (pth.FileExists())
            {
                dic = Serializer.DeserializeDictionary(pth);
                foreach (var v in lst)
                {
                    var file = v.GetFileName();
                    var pt   = Path.GetDirectoryName(v) + "\\";
                    SymLinks.CreateSymLink(linkPath + file, v, 0);
                    dic.Add(file, pt);
                }

                Serializer.SerializeDictionary(pth, dic);
            }
            else if (!pth.FileExists())
            {
                foreach (var v in lst)
                {
                    var file = v.GetFileName();
                    var pt   = Path.GetDirectoryName(v) + "\\";
                    SymLinks.CreateSymLink(linkPath + file, v, 0);
                    dic.Add(file, pt);
                }

                Serializer.SerializeDictionary(pth, dic);
            }

            pf.SetProfileActive();

            return(dic);
        }
Esempio n. 26
0
        /// <summary>
        ///     Makes the sorted list.
        /// </summary>
        public void SortedFileListComplete()
        {
            var dic = new Dictionary <string, string>();
            var gi  = new GameInfo();
            var tmp = gi.GetGame();

            if (tmp.IsNullOrEmpty())
            {
                return;
            }
            IEnumerable <string> lst = null;
            var path = string.Empty;

            switch (tmp)
            {
            case "ATS":
                var atsP = new AtsRegWork(true);
                path       = atsP.Read(AtsRegKeys.ATS_XML) + "sortedFileListComplete.xml";
                FolderPath = atsP.Read(AtsRegKeys.ATS_GROUPS);
                lst        = GetFilesFolders.GetFilesRecursive(FolderPath, "*.scs");
                break;

            case "ETS":
                var etsP = new EtsRegWork(true);
                path       = etsP.Read(EtsRegKeys.ETS_XML) + "sortedFileListComplete.xml";
                FolderPath = etsP.Read(EtsRegKeys.ETS_GROUPS);
                lst        = GetFilesFolders.GetFilesRecursive(FolderPath, "*.scs");
                break;

            case "FS15":
                var fs15 = new Fs15RegWork(true);
                path       = fs15.Read(Fs15RegKeys.FS15_XML) + "sortedFileListComplete.xml";
                FolderPath = fs15.Read(Fs15RegKeys.FS15_GROUPS);
                lst        = GetFilesFolders.GetFilesRecursive(FolderPath, "*.zip");
                break;

            case "FS17":
                var fs17 = new Fs17RegWork(true);
                path       = fs17.Read(Fs17RegKeys.FS17_XML) + "sortedFileListComplete.xml";
                FolderPath = fs17.Read(Fs17RegKeys.FS17_GROUPS);
                lst        = GetFilesFolders.GetFilesRecursive(FolderPath, "*.zip");
                break;
            }

            if (lst.IsNull())
            {
                return;
            }
            Debug.Assert(lst != null, nameof(lst) + " != null");
            foreach (var v in lst)
            {
                var file = v.GetFileName();
                var pth  = Path.GetDirectoryName(v);
                if (dic.ContainsKey(file))
                {
                    continue;
                }
                dic.Add(file, pth + "\\");
            }

            Serializer.SerializeDictionary(path, dic);
            MsgBx.Msg("List Creation Completed", "List Creator");
        }
Esempio n. 27
0
        /// <summary>
        ///     Browses the folders.
        /// </summary>
        /// <param name="fold">The fold.</param>
        public static void BrowseFolders(string fold)
        {
            var          reg     = new AtsRegWork(true);
            var          gam     = reg.Read(RegKeys.CURRENT_GAME);
            const string modList = "sortedFileListComplete.xml";
            var          pth     = string.Empty;

            switch (fold)
            {
            case "repo":
                switch (gam)
                {
                case "ATS":
                    pth = reg.Read(AtsRegKeys.ATS_REPO);
                    break;

                case "ETS":
                    pth = reg.Read(EtsRegKeys.ETS_REPO);
                    break;

                case "FS15":
                    pth = reg.Read(Fs15RegKeys.FS15_REPO);
                    break;

                case "FS17":
                    pth = reg.Read(Fs17RegKeys.FS17_REPO);
                    break;
                }

                break;

            case "profiles":
                switch (gam)
                {
                case "ATS":
                    pth = reg.Read(AtsRegKeys.ATS_PROFILES);
                    break;

                case "ETS":
                    pth = reg.Read(EtsRegKeys.ETS_PROFILES);
                    break;

                case "FS15":
                    pth = reg.Read(Fs15RegKeys.FS15_PROFILES);
                    break;

                case "FS17":
                    pth = reg.Read(Fs17RegKeys.FS17_PROFILES);
                    break;
                }

                break;

            case "groups":
                switch (gam)
                {
                case "ATS":
                    pth = reg.Read(AtsRegKeys.ATS_GROUPS);
                    break;

                case "ETS":
                    pth = reg.Read(AtsRegKeys.ATS_GROUPS);
                    break;

                case "FS15":
                    pth = reg.Read(Fs15RegKeys.FS15_GROUPS);
                    break;

                case "FS17":
                    pth = reg.Read(Fs17RegKeys.FS17_GROUPS);
                    break;
                }

                break;

            case "work":
                switch (gam)
                {
                case "ATS":
                    pth = reg.Read(AtsRegKeys.ATS_WORK);
                    break;

                case "ETS":
                    pth = reg.Read(EtsRegKeys.ETS_WORK);
                    break;

                case "FS15":
                    pth = reg.Read(Fs15RegKeys.FS15_WORK);
                    break;

                case "FS17":
                    pth = reg.Read(Fs17RegKeys.FS17_WORK);
                    break;
                }

                break;

            case "list":
                switch (gam)
                {
                case "ATS":
                    pth = reg.Read(AtsRegKeys.ATS_XML) + modList;
                    break;

                case "ETS":
                    pth = reg.Read(EtsRegKeys.ETS_XML) + modList;
                    break;

                case "FS15":
                    pth = reg.Read(Fs15RegKeys.FS15_XML) + modList;
                    break;

                case "FS17":
                    pth = reg.Read(Fs17RegKeys.FS17_XML) + modList;
                    break;
                }

                break;

            case "fav":
                switch (gam)
                {
                case "FS17":
                    pth = reg.Read(Fs17RegKeys.FS17_GROUPS) + "BypassSorting.xml";
                    break;
                }

                break;
            }

            Process.Start(pth);
        }
Esempio n. 28
0
        private static void DoCleanUp()
        {
            var    reg = new AtsRegWork(true);
            var    gam = reg.Read(RegKeys.CURRENT_GAME);
            string tmp;
            IEnumerable <string> lst;

            switch (gam)
            {
            case "ATS":
                tmp = reg.Read(AtsRegKeys.ATS_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.scs");
                FolderCreator.CreatePublicFolders(reg.Read(AtsRegKeys.ATS_GROUPS) + "misc");
                foreach (var v in lst)
                {
                    FileCopyMove.FileCopy(v, reg.Read(AtsRegKeys.ATS_GROUPS) + "misc" + "\\" + v.GetFileName(),
                                          true);
                }

                break;

            case "ETS":
                var ets = new EtsRegWork(true);
                tmp = ets.Read(EtsRegKeys.ETS_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.scs");
                FolderCreator.CreatePublicFolders(ets.Read(EtsRegKeys.ETS_GROUPS) + "misc");
                foreach (var t in lst)
                {
                    FileCopyMove.FileCopy(t, ets.Read(EtsRegKeys.ETS_GROUPS) + "misc" + "\\" + t.GetFileName(),
                                          true);
                }

                break;

            case "FS15":
                var fs15 = new Fs15RegWork(true);
                tmp = fs15.Read(Fs15RegKeys.FS15_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.zip");
                FolderCreator.CreatePublicFolders(fs15.Read(Fs15RegKeys.FS15_GROUPS) + "misc");
                foreach (var v in lst)
                {
                    FileCopyMove.FileCopy(v, fs15.Read(Fs15RegKeys.FS15_GROUPS) + "misc" + "\\" + v.GetFileName(),
                                          true);
                }

                break;

            case "FS17":
                var fs17 = new Fs17RegWork(true);
                tmp = fs17.Read(Fs17RegKeys.FS17_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.zip");
                FolderCreator.CreatePublicFolders(fs17.Read(Fs17RegKeys.FS17_GROUPS) + "misc");
                foreach (var v in lst)
                {
                    FileCopyMove.FileCopy(v, fs17.Read(Fs17RegKeys.FS17_GROUPS) + "misc" + "\\" + v.GetFileName(),
                                          true);
                }

                break;
            }

            var lstCreate = new ListCreator();

            lstCreate.CreateSortedLists();
            lstCreate.SortedFileListComplete();
            MsgBx.Msg("Mod Sorting Complete", "Mod Sorter");
        }
Esempio n. 29
0
        /// <summary>
        ///     Creates the sorted lists.
        /// </summary>
        public void CreateSortedLists()
        {
            var gi  = new GameInfo();
            var tmp = gi.GetGame();

            if (tmp.IsNullOrEmpty())
            {
                return;
            }
            var src = string.Empty;

            var pth   = string.Empty;
            var cProf = string.Empty;

            switch (tmp)
            {
            case "ATS":
                var atsp = new AtsRegWork(true);
                pth = atsp.Read(AtsRegKeys.ATS_GROUPS);
                src = "*.scs";
                break;

            case "ETS":
                var etsp = new EtsRegWork(true);
                pth = etsp.Read(EtsRegKeys.ETS_GROUPS);
                src = "*.scs";
                break;

            case "FS15":
                var fs15 = new Fs15RegWork(true);
                pth = fs15.Read(Fs15RegKeys.FS15_GROUPS);
                src = "*.zip";
                break;

            case "FS17":
                var fs17 = new Fs17RegWork(true);
                pth   = fs17.Read(Fs17RegKeys.FS17_GROUPS);
                cProf = fs17.Read(Fs17RegKeys.FS17_PROFILES);
                src   = "*.zip";
                break;
            }

            var foldList = GetFilesFolders.GetFolders(pth, "*.*");
            var profList = GetFilesFolders.GetFolders(cProf, "*.*");

            foreach (var v in foldList)
            {
                var lst = GetFilesFolders.GetFiles(v, src);
                var dic = new Dictionary <string, string>();
                foreach (var t in lst)
                {
                    if (CheckPath(t))
                    {
                        continue;
                    }
                    var file = t.GetFileName();
                    var ph   = Path.GetDirectoryName(t);
                    if (dic.ContainsKey(file))
                    {
                        continue;
                    }
                    dic.Add(file, ph + "\\");
                }

                var nam = v.GetLastFolderName();
                Serializer.SerializeDictionary(v + "\\" + nam + ".xml", dic);
            }

            foreach (var v in profList)
            {
                var lst = GetFilesFolders.GetFiles(v, src);
                var dic = new Dictionary <string, string>();
                foreach (var t in lst)
                {
                    if (CheckPath(t))
                    {
                        continue;
                    }
                    var file = t.GetFileName();
                    var ph   = Path.GetDirectoryName(t);
                    if (dic.ContainsKey(file))
                    {
                        continue;
                    }
                    dic.Add(file, ph + "\\");
                }

                var nam = v.GetLastFolderName();
                Serializer.SerializeDictionary(v + "\\" + nam + ".xml", dic);
            }
        }
Esempio n. 30
0
        /// <summary>
        ///     Sorts the mods.
        /// </summary>
        public void SortMods()
        {
            SetSearchLists();

            var reg = new AtsRegWork(true);
            var gam = reg.Read(RegKeys.CURRENT_GAME);

            if (gam.IsNullOrEmpty())
            {
                MsgBx.Msg("Mod Sorting is Game specific, you need to choose a game", "Game Error");
                return;
            }

            string tmp;
            IEnumerable <string> lst;

            switch (gam)
            {
            case "ATS":
                tmp = reg.Read(AtsRegKeys.ATS_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.scs");
                if (lst.IsNull())
                {
                    return;
                }
                foreach (var v in lst)
                {
                    foreach (var t in _srchLstTs)
                    {
                        if (!v.Contains(t, StringComparison.OrdinalIgnoreCase))
                        {
                            continue;
                        }
                        FolderCreator.CreatePublicFolders(reg.Read(AtsRegKeys.ATS_GROUPS) + t);
                        FileCopyMove.FileCopy(v, reg.Read(AtsRegKeys.ATS_GROUPS) + t + "\\" + v.GetFileName(),
                                              true);
                    }
                }

                break;

            case "ETS":
                var ets = new EtsRegWork(true);
                tmp = ets.Read(EtsRegKeys.ETS_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.scs");
                if (lst.IsNull())
                {
                    return;
                }
                foreach (var v in lst)
                {
                    foreach (var t in _srchLstTs)
                    {
                        if (!v.Contains(t, StringComparison.OrdinalIgnoreCase))
                        {
                            continue;
                        }
                        FolderCreator.CreatePublicFolders(ets.Read(EtsRegKeys.ETS_GROUPS) + t);
                        FileCopyMove.FileCopy(v, ets.Read(EtsRegKeys.ETS_GROUPS) + t + "\\" + v.GetFileName(),
                                              true);
                    }
                }

                break;

            case "FS15":
                var fs15 = new Fs15RegWork(true);
                tmp = fs15.Read(Fs15RegKeys.FS15_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.zip");
                if (lst.IsNull())
                {
                    return;
                }
                foreach (var v in lst)
                {
                    foreach (var t in _srchLstFs)
                    {
                        if (!v.Contains(t, StringComparison.OrdinalIgnoreCase))
                        {
                            continue;
                        }
                        FolderCreator.CreatePublicFolders(fs15.Read(Fs15RegKeys.FS15_GROUPS) + t);
                        FileCopyMove.FileCopy(v, fs15.Read(Fs15RegKeys.FS15_GROUPS) + t + "\\" + v.GetFileName(),
                                              true);
                    }
                }

                break;

            case "FS17":
                var fs17 = new Fs17RegWork(true);
                tmp = fs17.Read(Fs17RegKeys.FS17_REPO);
                lst = GetFilesFolders.GetFiles(tmp, "*.zip");
                if (lst.IsNull())
                {
                    return;
                }
                foreach (var v in lst)
                {
                    foreach (var t in _srchLstFs)
                    {
                        if (!v.Contains(t, StringComparison.OrdinalIgnoreCase))
                        {
                            continue;
                        }
                        FolderCreator.CreatePublicFolders(fs17.Read(Fs17RegKeys.FS17_GROUPS) + t);
                        FileCopyMove.FileCopy(v, fs17.Read(Fs17RegKeys.FS17_GROUPS) + t + "\\" + v.GetFileName(),
                                              true);
                    }
                }

                break;
            }

            DoCleanUp();
        }