コード例 #1
0
 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);
     }
 }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
        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");
        }
コード例 #4
0
ファイル: ModTek.cs プロジェクト: m22spencer/ModTek
        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);
        }
コード例 #5
0
        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");
            }
        }
コード例 #6
0
ファイル: ModTek.cs プロジェクト: janxious/ModTek
 internal static void BuildModManifestEntries()
 {
     CachedVersionManifest = VersionManifestUtilities.LoadDefaultManifest();
     ProgressPanel.SubmitWork(BuildModManifestEntriesLoop);
 }