private static void AddOrUpdateJSONToManifest() { try { string filePath = "mods/CommanderPortraitLoader/Portraits/"; VersionManifest manifest = VersionManifestUtilities.ManifestFromCSV("mods/CommanderPortraitLoader/VersionManifest.csv"); DirectoryInfo d1 = new DirectoryInfo(filePath); FileInfo[] f1 = d1.GetFiles("*.png"); foreach (VersionManifestEntry entry in manifest.Entries) { if (!File.Exists(entry.FilePath.Replace(".json", ".png"))) { if (File.Exists(entry.FilePath)) { File.Delete(entry.FilePath); } manifest.Remove(entry.Id, entry.Type, DateTime.Now); manifest.ClearRemoved(); } } f1 = d1.GetFiles("*.json"); CustomPreset preset = new CustomPreset(); foreach (FileInfo info in f1) { using (StreamReader r = new StreamReader(info.FullName)) { string json = r.ReadToEnd(); preset = JsonConvert.DeserializeObject <CustomPreset>(json); } manifest.AddOrUpdate(preset.Description.Id, info.FullName, "PortraitSettings", DateTime.Now, null, false); } VersionManifestUtilities.ManifestToCSV(manifest, "mods/CommanderPortraitLoader/VersionManifest.csv"); } catch (Exception e) { Logger.LogError(e); } }
public static void Postfix(ref VersionManifest __result) { try { var addendum = VersionManifestUtilities.ManifestFromCSV($"{ CommanderPortraitLoader.ModDirectory}/VersionManifest.csv"); foreach (var entry in addendum.Entries) { __result.AddOrUpdate(entry.Id, entry.FilePath, entry.Type, entry.AddedOn, entry.AssetBundleName, entry.IsAssetBundlePersistent); } } catch (Exception e) { Logger.LogError(e); } }
public static void Prefix() { DataManager dm = SceneSingletonBehavior <DataManagerUnityInstance> .Instance.DataManager; RLog.LogWrite("Forcing refresh of BTRL Manifest..."); Traverse.Create(dm.ResourceLocator).Property("manifest").SetValue(VersionManifestUtilities.LoadDefaultManifest()); RLog.LogWrite(" DONE"); Traverse refreshTypedEntriesT = Traverse.Create(dm.ResourceLocator).Method("RefreshTypedEntries"); RLog.LogWrite("Forcing refresh of TypedEntities to prevent Shadowhawk DLC bug..."); refreshTypedEntriesT.GetValue(); RLog.LogWrite(" DONE"); }
internal static void BuildCachedManifest() { // First load the default battletech manifest, then it'll get appended to VersionManifest vanillaManifest = VersionManifestUtilities.LoadDefaultManifest(); // Wrapper to be able to submit a parameterless work function IEnumerator <ProgressReport> NestedFunc() { IEnumerator <ProgressReport> reports = BuildCachedManifestLoop(vanillaManifest); while (reports.MoveNext()) { yield return(reports.Current); } } ProgressPanel.SubmitWork(NestedFunc); }
public static void Prefix() { DataManager dm = SceneSingletonBehavior <DataManagerUnityInstance> .Instance.DataManager; Stopwatch sw = new Stopwatch(); sw.Start(); if (ModTek.Config.EnableDebugLogging) { RLog.LogWrite("Forcing refresh of BTRL Manifest...\n"); } Traverse.Create(dm.ResourceLocator).Property("manifest").SetValue(VersionManifestUtilities.LoadDefaultManifest()); sw.Stop(); if (ModTek.Config.EnableDebugLogging) { RLog.LogWrite($"Refresh of BTRL manifest complete in {sw.ElapsedMilliSeconds}ms \n"); } sw.Restart(); if (ModTek.Config.EnableDebugLogging) { RLog.LogWrite("Forcing refresh of TypedEntities to prevent Shadowhawk DLC bug...\n"); } Traverse refreshTypedEntriesT = Traverse.Create(dm.ResourceLocator).Method("RefreshTypedEntries"); refreshTypedEntriesT.GetValue(); sw.Stop(); if (ModTek.Config.EnableDebugLogging) { RLog.LogWrite($"Forced refresh of TypedEntities complete in {sw.ElapsedMilliSeconds}ms\n"); } }
internal static void BuildModManifestEntries() { CachedVersionManifest = VersionManifestUtilities.LoadDefaultManifest(); ProgressPanel.SubmitWork(BuildModManifestEntriesLoop); }