// 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();
                }
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
            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;
            }
Esempio n. 6
0
 public static void DoModSettings(this Dialog_ModSettings instance, Mod mod)
 {
     AccessTools.Field(typeof(Dialog_ModSettings), "selMod").SetValue(instance, mod);
 }
Esempio n. 7
0
 private static void Postfix(ref Dialog_ModSettings __instance) => __instance.closeOnAccept = false;