// add a button to the previews dialog for easy access to terrain settings private static void ExtraMapPreviewsDialogOnGUI(Dialog_MapPreviews previewsDialog, Rect inRect) { var closeButtonSize = new Vector2(120f, 40f); var configureButtonSize = new Vector2(140f, 40f); var elementSpacing = 10f; var buttonRect = new Rect(inRect.width - closeButtonSize.x - elementSpacing - configureButtonSize.x, inRect.yMax - configureButtonSize.y, configureButtonSize.x, configureButtonSize.y); if (Widgets.ButtonText(buttonRect, "Reroll2_previews_configureMap".Translate())) { var mod = LoadedModManager.ModHandles.FirstOrDefault(m => m.GetType().FullName == "ConfigurableMaps.Settings.TerrainSettingsController"); if (mod != null) { previewsDialog.Close(); var settingsDialog = new Dialog_ModSettings(); // pre-select the terrain settings Mod ReflectionCache.DialogModSettings_SelMod.SetValue(settingsDialog, mod); Find.WindowStack.Add(settingsDialog); void TryReopenPreviews() { if (Find.WindowStack.IsOpen(settingsDialog)) { HugsLibController.Instance.DoLater.DoNextUpdate(TryReopenPreviews); } else { Find.WindowStack.Add(new Dialog_MapPreviews()); } } TryReopenPreviews(); } } }
public static void OpenModSettingsPage() { Dialog_ModSettings dlg = new Dialog_ModSettings(); Mod gc = LoadedModManager.ModHandles.FirstOrFallback((Mod m) => m is RuntimeGC); selMod.SetValue(dlg, gc); Find.WindowStack.Add(dlg); }
public static void OpenSettingsFor(Mod mod) { if (mod.SettingsCategory().NullOrEmpty()) { return; } var dialog = new Dialog_ModSettings(); Traverse.Create(dialog).Field <Mod>("selMod").Value = mod; Find.WindowStack.Add(dialog); }
private static List <Dialog_ModSettings.ModEntry> GetList(Dialog_ModSettings __instance) { if (string.IsNullOrEmpty(_searchStr)) { return(__instance.listedMods); } if (_cachedFiltered == null) { var searchKey = _searchStr.ToLower(); _cachedFiltered = __instance.listedMods.Where(x => x.ModName.ToLower().Contains(searchKey)).ToList(); } return(_cachedFiltered); }
static void AdjustList(List <ListableOption> optList) { var label = "Options".Translate(); var idx = optList.FirstIndexOf(opt => opt.label == label); if (idx > 0 && idx < optList.Count) { optList.Insert(idx + 1, new ListableOption("Graphics Settings", delegate { var dialog = new Dialog_ModSettings(); var me = LoadedModManager.GetMod <GraphicSetter>(); StaticContent.selModByRef(dialog) = me; Find.WindowStack.Add(dialog); }, null)); } OptionList = optList; }
public static void DoModSettings(this Dialog_ModSettings instance, Mod mod) { AccessTools.Field(typeof(Dialog_ModSettings), "selMod").SetValue(instance, mod); }
private static void Postfix(ref Dialog_ModSettings __instance) => __instance.closeOnAccept = false;