Esempio n. 1
0
        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);
        }
Esempio n. 3
0
            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;
     }
 }
Esempio n. 7
0
            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);
        }
Esempio n. 9
0
            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);
            }
Esempio n. 10
0
 private static Scenario TryGetScenarioByName(string name)
 {
     return(ScenarioLister.AllScenarios().FirstOrDefault(s => s.name == name));
 }