public override void PreOpen()
 {
     base.PreOpen();
     ModLister.RebuildModList();
     modsInListOrderDirty     = true;
     selectedMod              = ModsInListOrder().FirstOrDefault();
     activeModsWhenOpenedHash = ModLister.InstalledModsListHash(activeOnly: true);
     RecacheSelectedModRequirements();
     foreach (ModMetaData mod in ModLister.AllInstalledMods)
     {
         ModContentPack modContentPack = LoadedModManager.RunningModsListForReading.FirstOrDefault((ModContentPack p) => mod.SamePackageId(p.PackageId));
         if (modContentPack != null)
         {
             mod.translationMod = !modContentPack.AnyNonTranslationContentLoaded() && modContentPack.AnyTranslationsLoaded();
             continue;
         }
         List <string> list = (from d in mod.RootDir.EnumerateDirectories()
                               select d.Name).ToList();
         for (int i = 0; i < translationOnlyModFolders.Count; i++)
         {
             if (list.Count == translationOnlyModFolders[i].Count && list.ListsEqualIgnoreOrder(translationOnlyModFolders[i]))
             {
                 mod.translationMod = true;
                 break;
             }
         }
     }
 }
示例#2
0
 public override void PreOpen()
 {
     base.PreOpen();
     ModLister.RebuildModList();
     this.selectedMod = this.ModsInListOrder().FirstOrDefault <ModMetaData>();
     this.activeModsWhenOpenedHash = ModLister.InstalledModsListHash(true);
 }
示例#3
0
        static CrossPromotion()
        {
            if (Harmony.HasAnyPatches(_crosspromotion))
            {
                return;
            }

            var instance = new Harmony(_crosspromotion);

            _ = instance.Patch(
                SymbolExtensions.GetMethodInfo(() => ModLister.RebuildModList()),
                postfix: new HarmonyMethod(SymbolExtensions.GetMethodInfo(() => ModLister_RebuildModList_Postfix()))
                );

            _ = instance.Patch(
                AccessTools.DeclaredMethod(typeof(Page_ModsConfig), nameof(Page_ModsConfig.PostClose)),
                postfix: new HarmonyMethod(SymbolExtensions.GetMethodInfo(() => Page_ModsConfig_PostClose_Postfix()))
                );

            _ = instance.Patch(
                AccessTools.DeclaredMethod(typeof(WorkshopItems), "Notify_Subscribed"),
                postfix: new HarmonyMethod(SymbolExtensions.GetMethodInfo(() => WorkshopItems_Notify_Subscribed_Postfix(new PublishedFileId_t(0))))
                );

            _ = instance.Patch(
                AccessTools.DeclaredMethod(typeof(Page_ModsConfig), nameof(Page_ModsConfig.DoWindowContents)),
                transpiler: new HarmonyMethod(SymbolExtensions.GetMethodInfo(() => Page_ModsConfig_DoWindowContents_Transpiler(null, null)))
                );
        }
示例#4
0
 public override void PreOpen()
 {
     base.PreOpen();
     ModLister.RebuildModList();
     selectedMod = ModsInListOrder().FirstOrDefault();
     activeModsWhenOpenedHash = ModLister.InstalledModsListHash(activeOnly: true);
 }
示例#5
0
 public override void PreOpen()
 {
     base.PreOpen();
     ModLister.RebuildModList();
     modsInListOrderDirty     = true;
     selectedMod              = ModsInListOrder().FirstOrDefault();
     activeModsWhenOpenedHash = ModLister.InstalledModsListHash(activeOnly: true);
     RecacheSelectedModRequirements();
 }
 private static void RebuildItemsList()
 {
     if (SteamManager.Initialized)
     {
         WorkshopItems.subbedItems.Clear();
         foreach (PublishedFileId_t pfid in Workshop.AllSubscribedItems())
         {
             WorkshopItems.subbedItems.Add(WorkshopItem.MakeFrom(pfid));
         }
         ModLister.RebuildModList();
         ScenarioLister.MarkDirty();
     }
 }