public static Dictionary <string, Scenario> AllScenarios() { var res = new Dictionary <string, Scenario>(); ScenarioLister.AllScenarios().ToList(); foreach (ScenarioDef allDef in DefDatabase <ScenarioDef> .AllDefs) { if (!res.ContainsKey(allDef.defName)) { res.Add(allDef.defName, allDef.scenario); } } foreach (Scenario item in ScenarioFiles.AllScenariosLocal) { if (!res.ContainsKey(item.fileName)) { res.Add(item.fileName, item); } } foreach (Scenario item2 in ScenarioFiles.AllScenariosWorkshop) { if (!res.ContainsKey(item2.fileName)) { res.Add(item2.fileName, item2); } } return(res); }
private void MakeSelectScenarioButton(Listing_Standard sub, QuickstartSettings settings) { const float GenerateNowWidth = 120f; const float HorizontalSpacing = 6f; const float ButtonHeight = 30f; var buttonRect = sub.GetRect(ButtonHeight); var leftHalf = new Rect(buttonRect) { xMax = buttonRect.xMax - (GenerateNowWidth + HorizontalSpacing) }; var rightHalf = new Rect(buttonRect) { xMin = buttonRect.xMin + leftHalf.width + HorizontalSpacing }; var selected = settings.ScenarioToGen; if (Widgets.ButtonText(leftHalf, selected ?? "Select a scenario")) { var menu = new FloatMenu(ScenarioLister.AllScenarios().Select(s => { return(new FloatMenuOption(s.name, () => { settings.ScenarioToGen = s.name; })); }).ToList()); Find.WindowStack.Add(menu); } if (Widgets.ButtonText(rightHalf, "Generate now")) { if (HugsLibUtility.ShiftIsHeld) { settings.OperationMode = QuickstartSettings.QuickstartMode.GenerateMap; } QuickstartController.InitateMapGeneration(); Close(); } sub.Gap(sub.verticalSpacing); }
public static bool Prefix(PublishedFileId_t pfid) { // TODO: display some sort of in-progress indicator Debug.Log("Notify_Subscribed"); // check if item was already present. var item = WorkshopItem.MakeFrom(pfid); if (item is WorkshopItem_Mod item_installed) { // register item in WorkshopItems workshopitems.Add(item_installed); // register item in ModLister var mod = new ModMetaData(item_installed); modlister.Add(mod); // show a message Messages.Message(I18n.ModInstalled(mod.Name), MessageTypeDefOf.PositiveEvent, false); // notify button manager that we done stuff. ModButtonManager.Notify_DownloadCompleted(mod); } else { // add dowloading item to MBM var button = new ModButton_Downloading(pfid); ModButtonManager.TryAdd(button); Page_BetterModConfig.Instance.Selected = button; } // do whatever needs doing for ScenarioLister. ScenarioLister.MarkDirty(); return(false); }
private void MakeSelectScenarioButton(Listing_Standard sub, QuickstartSettings settings) { var selected = settings.ScenarioToGen; if (sub.ButtonText(selected ?? "Select a scenario")) { var menu = new FloatMenu(ScenarioLister.AllScenarios().Select(s => { return(new FloatMenuOption(s.name, () => { settings.ScenarioToGen = s.name; })); }).ToList()); Find.WindowStack.Add(menu); } }
private static void RebuildItemsList() { if (SteamManager.Initialized) { WorkshopItems.subbedItems.Clear(); foreach (PublishedFileId_t pfid in Workshop.AllSubscribedItems()) { WorkshopItems.subbedItems.Add(WorkshopItem.MakeFrom(pfid)); } ModLister.RebuildModList(); ScenarioLister.MarkDirty(); } }
private void EnsureSettingsHaveValidFiles(QuickstartSettings settings) { // make sure our settings are referencing loadable files if (saveFiles.Select(s => s.Name).All(s => s != settings.SaveFileToLoad)) { settings.SaveFileToLoad = null; } if (settings.ScenarioToGen != null && ScenarioLister.AllScenarios().All(s => s.name != settings.ScenarioToGen)) { settings.ScenarioToGen = null; } if (settings.ScenarioToGen == null) { settings.ScenarioToGen = ScenarioDefOf.Crashlanded.defName; } }
public static bool Prefix(PublishedFileId_t pfid) { Debug.Log("Notify_Unsubscribed"); // deregister item in WorkshopItems var item = workshopitems.FirstOrDefault(i => i.PublishedFileId == pfid); workshopitems.TryRemove(item); // deregister item in ModLister var mod = modlister.FirstOrDefault(m => m.Source == ContentSource.SteamWorkshop && m.Identifier == pfid.ToString()); modlister.TryRemove(mod); // remove button ModButtonManager.Notify_Unsubscribed(pfid.ToString()); ScenarioLister.MarkDirty(); return(false); }
public static Scenario GetScenarioDefault() { var listS = ScenarioLister.ScenariosInCategory(ScenarioCategory.FromDef).ToList(); var scenarioDefaultMem = listS.FirstOrDefault(s => s.name == "Crashlanded"); if (scenarioDefaultMem == null) { scenarioDefaultMem = listS.FirstOrDefault(s => s.name == "OCity_SessionCC_Scenario_Classic".Translate()); } if (scenarioDefaultMem == null) { scenarioDefaultMem = listS.FirstOrDefault(s => s.name == "Классика"); } if (scenarioDefaultMem == null) { scenarioDefaultMem = listS.FirstOrDefault(); } return(scenarioDefaultMem); }
public static bool Prefix(PublishedFileId_t pfid) { Debug.Log("Notify_Installed"); // register item in WorkshopItems var item = WorkshopItem.MakeFrom(pfid); workshopitems.Add(item); // register item in ModLister var mod = new ModMetaData(item); modlister.Add(mod); // show a message Messages.Message(I18n.ModInstalled(mod.Name), MessageTypeDefOf.PositiveEvent, false); // notify button manager that we done stuff. ModButtonManager.Notify_DownloadCompleted(mod); ScenarioLister.MarkDirty(); return(false); }
private static Scenario TryGetScenarioByName(string name) { return(ScenarioLister.AllScenarios().FirstOrDefault(s => s.name == name)); }