internal static void Notify_SteamItemUnsubscribed(PublishedFileId_t pfid) { if (selectedMod != null && selectedMod.Identifier == pfid.ToString()) { selectedMod = null; } }
internal static void Notify_ModsListChanged() { UpdateLoadedMods(); string selModId = selectedMod.Identifier; selectedMod = loadedMods.FirstOrDefault(m => m.Identifier == selModId); }
private static Action CreateModRowActionSteam(ModMetaDataEnhanced mod) { return(new Action(() => { List <FloatMenuOption> options = new List <FloatMenuOption> { new FloatMenuOption("InstallLocal".Translate(), () => Find.WindowStack.Add(new InstallModDialog(mod))), new FloatMenuOption("Rename".ToString(), () => StartRename(mod)), new FloatMenuOptionColorPicker((color) => mod.TextColor = color, MenuOptionPriority.Default, textColors), new FloatMenuOption("OpenWorkshopPage".Translate(), () => { SteamUtility.OpenWorkshopPage(mod.OriginalMetaData.GetPublishedFileId()); }), new FloatMenuOption("Unsubscribe".Translate(), () => { RemoveMod(mod); }) }; Find.WindowStack.Add((Window) new FloatMenu(options)); })); }
private static Action CreateModRowActionLocal(ModMetaDataEnhanced mod) { return(new Action(() => { List <FloatMenuOption> options = new List <FloatMenuOption> { new FloatMenuOption("Rename".ToString(), () => StartRename(mod)), new FloatMenuOptionColorPicker((color) => mod.TextColor = color, MenuOptionPriority.Default, textColors), new FloatMenuOption("OpenDirectory".Translate(), () => HugsLib.Shell.ShellOpenDirectory.Execute(mod.RootDir.FullName)) }; if (!mod.Url.NullOrEmpty()) { options.Add(new FloatMenuOption("OpenWebSite".Translate(), () => Application.OpenURL(mod.Url))); } if (!mod.IsCoreMod) { options.Add(new FloatMenuOption("DeleteLocal".Translate(), () => RemoveMod(mod))); } Find.WindowStack.Add((Window) new FloatMenu(options)); })); }
private static void StartRename(ModMetaDataEnhanced mod) { selectedMod = mod; renameBuf = selectedMod.Name; RenameInProgress = true; }
private static void RemoveMod(ModMetaDataEnhanced mod) { Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("ConfirmUninstall".Translate(mod.Name), (Action)(() => { ModController.UnInstallMod(mod); }), true, "AreYouSure".Translate())); }
private static void DoModRow(Listing_Standard listing, ModMetaDataEnhanced mod, int index, int reorderableGroup = -1) { Rect rect = listing.GetRect(26f); if (mod.Active && !SearchInProgress) { ReorderableWidget.Reorderable(reorderableGroup, rect); } Action clickAction = null; if (mod.Source == ContentSource.SteamWorkshop) { clickAction = CreateModRowActionSteam(mod); } else { clickAction = CreateModRowActionLocal(mod); } ContentSourceUtility.DrawContentSource(rect, mod.Source, clickAction); rect.xMin += 28f; bool active = mod.Active; bool isSelected = mod.OriginalMetaData == selectedMod.OriginalMetaData; Rect rect2 = rect; if (mod.Enabled && RenameInProgress == false) { string text = string.Empty; if (mod.Active) { text = text + "DragToReorder".Translate() + ".\n\n"; } if (!text.NullOrEmpty()) { TooltipHandler.TipRegion(rect2, new TipSignal(text, mod.GetHashCode() * 3311)); } Color origColor = GUI.color; GUI.color = mod.TextColor; if (Widgets.CheckboxLabeledSelectable(rect2, mod.Name, ref isSelected, ref active)) { selectedMod = mod; } GUI.color = origColor; if (mod.Active && reorderableGroup >= 0) { Rect texRect = new Rect(rect2.xMax - 48f + 2f, rect2.y, 24f, 24f); GUI.DrawTexture(texRect, Textures.DragHash); } if (mod.HasNotifications) { Color notifColour = Color.gray; string tooltipString = string.Empty; foreach (NotificationBase notification in mod.Notifications) { if (notification.MessageType == NotificationType.Error) { notifColour = Color.red; } else if (notification.MessageType == NotificationType.Warning && notifColour != Color.red) { notifColour = Color.yellow; } tooltipString += notification.MessageText + "\n\n"; } Text.Anchor = TextAnchor.MiddleCenter; Text.Font = GameFont.Medium; GUI.color = notifColour; Rect dupRect = new Rect(rect2.xMax - 72f + 2f, rect.y, 24f, 24f); Widgets.Label(dupRect, "!"); TooltipHandler.ClearTooltipsFrom(dupRect); TooltipHandler.TipRegion(dupRect, tooltipString.Trim()); Text.Anchor = TextAnchor.UpperLeft; Text.Font = GameFont.Small; GUI.color = Color.white; } if (mod.Active && !active && mod.Name == ModContentPack.CoreModIdentifier) { ModMetaData coreMod = mod.OriginalMetaData; Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("ConfirmDisableCoreMod".Translate(), delegate { coreMod.Active = false; truncatedModNamesCache.Clear(); }, false, null)); } else { mod.Active = active; truncatedModNamesCache.Clear(); } } else if (RenameInProgress == true && isSelected) { renameBuf = Widgets.TextField(rect2, renameBuf); } else { GUI.color = Color.gray; Widgets.Label(rect2, mod.Name); } GUI.color = Color.white; }
internal static void PreOpen(this Page_ModsConfig instance) { loadedMods = new List <ModMetaDataEnhanced>(); UpdateLoadedMods(); selectedMod = loadedMods.FirstOrDefault(mod => mod.Identifier == instance.selectedMod.Identifier); }
public InstallModDialog(ModMetaDataEnhanced mod) { this.curMod = mod; this.OnReset(); }