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); } }
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); }
/// <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); }