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); } }
// 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)); }
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); } } }
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); } }
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); } }
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); } }
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); } }