コード例 #1
0
 private void RegisterOwnSettings()
 {
     try {
         var pack = Settings.GetModSettings(ModIdentifier);
         pack.EntryName         = "HugsLib_ownSettingsName".Translate();
         pack.DisplayPriority   = ModSettingsPack.ListPriority.Lowest;
         pack.AlwaysExpandEntry = true;
         updateNewsSetting      = pack.GetHandle("modUpdateNews", "HugsLib_setting_showNews_label".Translate(), "HugsLib_setting_showNews_desc".Translate(), true);
         var allNewsHandle = pack.GetHandle("showAllNews", "HugsLib_setting_allNews_label".Translate(), "HugsLib_setting_allNews_desc".Translate(), false);
         allNewsHandle.Unsaved      = true;
         allNewsHandle.CustomDrawer = rect => {
             if (Widgets.ButtonText(rect, "HugsLib_setting_allNews_button".Translate()))
             {
                 if (!UpdateFeatures.TryShowDialog(true))
                 {
                     Find.WindowStack.Add(new Dialog_MessageBox("HugsLib_setting_allNews_fail".Translate()));
                 }
             }
             return(false);
         };
         QuickstartController.RegisterSettings(pack);
     } catch (Exception e) {
         Logger.ReportException(e);
     }
 }
コード例 #2
0
 // will run on startup and on reload. On reload it will add newly loaded mods
 private void EnumerateChildMods()
 {
     foreach (var subclass in typeof(ModBase).InstantiableDescendantsAndSelf())
     {
         if (childMods.Find(cm => cm.GetType() == subclass) != null)
         {
             continue;                                                                         // skip duplicate types present in multiple assemblies
         }
         ModContentPack pack;
         assemblyContentPacks.TryGetValue(subclass.Assembly, out pack);
         if (pack == null)
         {
             continue;                               // mod is disabled
         }
         ModBase modbase = null;
         try {
             modbase = (ModBase)Activator.CreateInstance(subclass, true);
             modbase.ModContentPack = pack;
             if (childMods.Find(m => m.ModIdentifier == modbase.ModIdentifier) != null)
             {
                 Logger.Error("Duplicate mod identifier: " + modbase.ModIdentifier);
                 continue;
             }
             childMods.Add(modbase);
         } catch (Exception e) {
             Logger.ReportException(e, subclass.ToString(), false, "child mod instantiation");
         }
         if (modbase != null)
         {
             UpdateFeatures.InspectActiveMod(modbase.ModIdentifier, modbase.GetVersion());
         }
     }
     // sort by load order
     childMods.Sort((cm1, cm2) => cm1.ModContentPack.loadOrder.CompareTo(cm2.ModContentPack.loadOrder));
 }
コード例 #3
0
 private void InspectUpdateNews()
 {
     foreach (var modBase in childMods)
     {
         try {
             var version = modBase.GetVersion();
             UpdateFeatures.InspectActiveMod(modBase.ModIdentifier, version);
         } catch (Exception e) {
             Logger.ReportException(e, modBase.ModIdentifier);
         }
     }
 }
コード例 #4
0
 private void RegisterOwnSettings()
 {
     try {
         var pack = Settings.GetModSettings(ModIdentifier);
         pack.EntryName         = assemblyContentPacks[Assembly.GetCallingAssembly()]?.Name ?? "HugsLib";
         pack.DisplayPriority   = ModSettingsPack.ListPriority.Lowest;
         pack.AlwaysExpandEntry = true;
         UpdateFeatures.RegisterSettings(pack);
         LogPublisher.RegisterSettings(pack);
     } catch (Exception e) {
         Logger.ReportException(e);
     }
 }
コード例 #5
0
 private void RegisterOwnSettings()
 {
     try {
         var pack = Settings.GetModSettings(ModIdentifier);
         pack.EntryName         = "HugsLib_ownSettingsName".Translate();
         pack.DisplayPriority   = ModSettingsPack.ListPriority.Lowest;
         pack.AlwaysExpandEntry = true;
         UpdateFeatures.RegisterSettings(pack);
         QuickstartController.RegisterSettings(pack);
     } catch (Exception e) {
         Logger.ReportException(e);
     }
 }
コード例 #6
0
 private void OnMapLoaded(Map map)
 {
     try {
         DoLater.OnMapLoaded(map);
         for (int i = 0; i < childMods.Count; i++)
         {
             try {
                 childMods[i].MapLoaded(map);
             } catch (Exception e) {
                 Logger.ReportException(e, childMods[i].LogIdentifierSafe);
             }
         }
         // show update news dialog
         UpdateFeatures.TryShowDialog(false);
     } catch (Exception e) {
         Logger.ReportException(e);
     }
 }
コード例 #7
0
 private void OnMapLoaded(Map map)
 {
     try {
         for (int i = 0; i < childMods.Count; i++)
         {
             try {
                 childMods[i].MapLoaded(map);
             } catch (Exception e) {
                 Logger.ReportException(e, childMods[i].ModIdentifier);
             }
         }
         // show update news dialog
         if (updateNewsSetting.Value)
         {
             UpdateFeatures.TryShowDialog();
         }
     } catch (Exception e) {
         Logger.ReportException(e);
     }
 }