Esempio n. 1
0
        public static void GenerateMergeDLC(GameTarget target, Guid guid)
        {
            // Generate M3 DLC Folder

            // Does not work for LE1/ME1!
            var sko = new StarterKitGeneratorWindow.StarterKitOptions()
            {
                ModGame                = target.Game,
                GenerateModdesc        = false,
                OutputFolderOverride   = M3Directories.GetDLCPath(target),
                ModDescription         = null,
                ModInternalName        = @"ME3Tweaks Mod Manager Merge DLC",
                ModInternalTLKID       = 1928304430,
                ModMountFlag           = target.Game.IsGame3() ? new MountFlag(EME3MountFileFlag.LoadsInSingleplayer) : new MountFlag(0, true),
                ModDeveloper           = @"ME3Tweaks Mod Manager",
                ModMountPriority       = 1900000000,
                ModDLCFolderNameSuffix = MERGE_DLC_FOLDERNAME.Substring(@"DLC_MOD_".Length)
            };

            StarterKitGeneratorWindow.CreateStarterKitMod(sko, null);
            MetaCMM mcmm = new MetaCMM()
            {
                ModName = @"ME3Tweaks Mod Manager Auto-Generated Merge DLC",
                Version = @"1.0"
            };

            mcmm.WriteMetaCMM(Path.Combine(M3Directories.GetDLCPath(target), MERGE_DLC_FOLDERNAME, @"_metacmm.txt"));
        }
            private void parseMetaCmm(bool disabled, bool modNamePrefersTPMI)
            {
                DLCFolderNameString = DLCFolderName.TrimStart('x'); //this string is not to show M3L.GetString(M3L.string_disabled)
                var metaFile = Path.Combine(dlcFolderPath, @"_metacmm.txt");

                if (File.Exists(metaFile))
                {
                    InstalledByManagedSolution = true;
                    InstalledBy = M3L.GetString(M3L.string_installedByModManager); //Default value when finding metacmm.
                    MetaCMM mcmm = new MetaCMM(metaFile);
                    if (DLCFolderNameString != ModName && mcmm.ModName != ModName)
                    {
                        DLCFolderNameString += $@" ({ModName})";
                        if (!modNamePrefersTPMI || ModName == null)
                        {
                            ModName = mcmm.ModName;
                        }
                    }

                    ModName = mcmm.ModName;
                    Version = mcmm.Version;
                    InstallerInstanceBuild = mcmm.InstalledBy;
                    if (int.TryParse(InstallerInstanceBuild, out var _))
                    {
                        InstalledBy = M3L.GetString(M3L.string_installedByModManager);
                    }
                    else
                    {
                        InstalledBy = M3L.GetString(M3L.string_interp_installedByX, InstallerInstanceBuild);
                    }

                    // MetaCMM Extended
                    if (mcmm.OptionsSelectedAtInstallTime != null)
                    {
                        ChosenInstallOptions.ReplaceAll(mcmm.OptionsSelectedAtInstallTime);
                    }
                    if (mcmm.IncompatibleDLC != null)
                    {
                        IncompatibleDLC.ReplaceAll(mcmm.IncompatibleDLC);
                    }
                }
                else
                {
                    InstalledBy = M3L.GetString(M3L.string_notInstalledByModManager);
                }
                if (disabled)
                {
                    DLCFolderNameString += @" - " + M3L.GetString(M3L.string_disabled);
                }
            }
Esempio n. 3
0
        public static Dictionary <string, MetaCMM> GetMetaMappedInstalledDLC(GameTarget target)
        {
            var installedDLC = GetInstalledDLC(target);
            var metamap      = new Dictionary <string, MetaCMM>();
            var dlcpath      = DLCPath(target);

            foreach (var v in installedDLC)
            {
                var     meta = Path.Combine(dlcpath, v, "_metacmm.txt");
                MetaCMM mf   = null;
                if (File.Exists(meta))
                {
                    mf = new MetaCMM(meta);
                }

                metamap[v] = mf;
            }

            return(metamap);
        }
Esempio n. 4
0
        /// <summary>
        /// Maps each DLC folder to it's MetaCMM file, if one exists. Otherwise it is mapped to null
        /// </summary>
        /// <param name="target"></param>
        /// <returns></returns>
        public static Dictionary <string, MetaCMM> GetMetaMappedInstalledDLC(GameTarget target, bool includeOfficial = true)
        {
            var installedDLC = GetInstalledDLC(target);
            var metamap      = new Dictionary <string, MetaCMM>();
            var dlcpath      = GetDLCPath(target);

            foreach (var v in installedDLC)
            {
                if (!includeOfficial && MEDirectories.OfficialDLC(target.Game).Contains(v))
                {
                    continue;                                                                         // This is not a mod
                }
                var     meta = Path.Combine(dlcpath, v, @"_metacmm.txt");
                MetaCMM mf   = null;
                if (File.Exists(meta))
                {
                    mf = new MetaCMM(meta);
                }

                metamap[v] = mf;
            }

            return(metamap);
        }