public static List <Mod> GetModsFromActive(bool useVersionChecking = false) { List <Mod> activeMods = new List <Mod>(); foreach (var RimworldMod in LoadedModManager.RunningMods) { var mod = new Mod(RimworldMod.PackageId, RimworldMod.Name, RimworldMod.loadOrder); if (useVersionChecking) { mod.Version = MetaHeaderUtility.GetVersionFromManifestFile(RimworldMod); } activeMods.Add(mod); } return(activeMods); }
static List <Mod> ReadModsFromSaveHeader(bool readModVersion) { List <Mod> saveMods = new List <Mod>(); MetaHeaderUtility.BeginReading(MetaHeaderUtility.LastAccessedSaveFilePathInLoadSelection); for (int i = 0; i < ScribeMetaHeaderUtility.loadedModNamesList.Count; i++) { var mod = new Mod(ScribeMetaHeaderUtility.loadedModIdsList[i], ScribeMetaHeaderUtility.loadedModNamesList[i], i); string identifier = mod.Identifier; if (readModVersion) { mod.Version = MetaHeaderUtility.GetVersion(identifier); } saveMods.Add(mod); } MetaHeaderUtility.EndReading(); return(saveMods); }
public static void UpdateModVersionMetaHeader() { string rawFilePath = SaveFilePathCache; string filePath = GenFilePaths.FilePathForSavedGame(rawFilePath); MetaHeaderUtility.BeginReading(filePath); List <ModMetaHeader> metaHeaders = new List <ModMetaHeader>(); foreach (var modContentPack in LoadedModManager.RunningMods) { // var metadata = modContentPack.GetMetaData(); var version = MetaHeaderUtility.GetVersionFromManifestFile(modContentPack); metaHeaders.Add(new ModMetaHeader() { Identifier = modContentPack.PackageId, Version = version }); SimpleLog.Log($"Add metadata to metaHeaders list : {modContentPack.PackageId}, {version}"); } MetaHeaderUtility.SetVersions(metaHeaders); MetaHeaderUtility.EndReading(); }