Example #1
0
            static IEnumerable <CodeInstruction> Transpiler(IEnumerable <CodeInstruction> instructions)
            {
                var m_DrawOptionListing = SymbolExtensions.GetMethodInfo(() => OptionListingUtility.DrawOptionListing(Rect.zero, null));

                var instructionsList = instructions.ToList();
                var patched          = false;

                for (var i = 0; i < instructionsList.Count; i++)
                {
                    var instruction = instructionsList[i];
                    if (i + 2 < instructionsList.Count)
                    {
                        var checkingIns = instructionsList[i + 2];
                        if (!patched && checkingIns != null && checkingIns.Calls(m_DrawOptionListing))
                        {
                            yield return(new CodeInstruction(OpCodes.Ldloc_2));

                            yield return(new CodeInstruction(OpCodes.Call, ListingOption));

                            patched = true;
                        }
                    }
                    yield return(instruction);
                }
            }
        public override void DoWindowContents(Rect inRect)
        {
            GUI.BeginGroup(inRect);

            Text.Font = GameFont.Medium;
            Widgets.Label(new Rect(inRect.width / 2 - inRect.width / 6f, 0.0f, inRect.width, 45f), "FilUnderscore.PersistentRimWorlds".Translate());
            Text.Font = GameFont.Small;

            var rect1 = new Rect((inRect.width - 170f) / 2, 0.0f + 45f, 170f, inRect.height);

            var optList = new List <ListableOption>
            {
                new ListableOption("FilUnderscore.PersistentRimWorlds.Load.World".Translate(),
                                   delegate
                {
                    this.next = new Page_PersistentWorlds_LoadWorld_FileList {
                        prev = this
                    };
                    this.DoNext();
                }, null),
            };

            var num1 = (double)OptionListingUtility.DrawOptionListing(rect1, optList);

            GUI.EndGroup();
        }
Example #3
0
 public static float DrawOptionListing(Rect rect, List <ListableOption> optList)
 {
     if (optList.Count > 0 && optList[0].GetType() == typeof(ListableOption))
     {
         if (Current.ProgramState == ProgramState.Entry)
         {
             var item = new ListableOption("OCity_LAN_btn".Translate(), delegate
             {
                 OnMainMenuNetClick();
             }, null);
             optList.Insert(0, item);
         }
     }
     return(OptionListingUtility.DrawOptionListing(rect, optList));
 }
        private void DoHomePage(Rect rect)
        {
            rect.yMin += 17f;
            Text.Font  = GameFont.Small;
            GUI.BeginGroup(rect);


            List <ListableOption> list = new List <ListableOption>();

            list.Add(new ListableOption("ColonistHistory.ForceRecordButton".Translate(), delegate {
                CompRecorder.Record(true);
            }, null));
            list.Add(new ListableOption("ColonistHistory.OutputRecordButton".Translate(), delegate {
                Find.WindowStack.Add(new Dialog_NameSaveFile(GameComponent_ColonistHistoryRecorder.SaveFileName));
            }, null));

            Rect rectButtonList = new Rect(0f, 0f, 170f, rect.height);

            OptionListingUtility.DrawOptionListing(rectButtonList, list);


            StringBuilder stringBuilder = new StringBuilder();

            {
                string lastRecordDateTimeString = "ColonistHistory.NoRecord".Translate();
                if (CompRecorder.LastRecordTick != -1)
                {
                    lastRecordDateTimeString = CompRecorder.LastRecordDateTime;
                }
                string lastRecordIsManual = "";
                if (CompRecorder.LastRecordIsManual)
                {
                    lastRecordIsManual = "ColonistHistory.LastRecordIsManual".Translate();
                }
                stringBuilder.AppendLine("ColonistHistory.LastRecordDateTime".Translate(lastRecordDateTimeString, lastRecordIsManual));
            }

            {
                int leftTick = CompRecorder.NextRecordTick - Current.Game.tickManager.TicksAbs;
                stringBuilder.AppendLine("ColonistHistory.NextRecordTimeLeft".Translate(leftTick.ToStringTicksToPeriod()));
            }

            Text.Anchor = TextAnchor.UpperLeft;
            Widgets.Label(new Rect(rectButtonList.xMax + 16f, 0f, rect.width - rectButtonList.xMax - 16f, rect.height), stringBuilder.ToString());


            GUI.EndGroup();
        }
Example #5
0
            static void Prefix(Rect rect, bool anyMapFiles)
            {
                rect.xMin -= 170f;
                rect.yMin += 52;
                GUI.BeginGroup(rect);
                Rect rect2 = new Rect(0f, 0f, 170f, rect.height);

                Rect rect3 = new Rect(rect2.xMax + 17f, 0f, 145f, rect.height);
                Rect rect4 = new Rect(0, 0, 170f, rect.height);

                Text.Font = GameFont.Small;
                List <ListableOption> list = new List <ListableOption>();
                string label = "Cooperative";

                list.Add(new ListableOption(label, CooperativeButtonPressed));
                OptionListingUtility.DrawOptionListing(rect2, list);
            }
Example #6
0
        public override void DoSettingsWindowContents(Rect inRect)
        {
            floVertSpacer = inRect.height * .025f;
            Rect rectDTMBanner = new Rect();

            if (inRect.width > vecDTMBanner.x)
            {
                rectDTMBanner = new Rect(0f, 40f, vecDTMBanner.x, vecDTMBanner.y);
            }
            else
            {
                vecDTMBannerSize.x = inRect.width;
                vecDTMBannerSize.y = (vecDTMBannerSize.x / vecDTMBanner.x) * vecDTMBanner.y;
                rectDTMBanner      = new Rect(0f, 40f, vecDTMBannerSize.x, vecDTMBannerSize.y);
            }

            Rect rectOpenDebugLogMenu   = new Rect(rectDTMBanner.x, rectDTMBanner.y + rectDTMBanner.height + floVertSpacer, inRect.width * .25f, inRect.height * .05f);
            Rect rectOpenDebugLogWindow = new Rect(rectDTMBanner.x, rectOpenDebugLogMenu.y + rectOpenDebugLogMenu.height + floVertSpacer, inRect.width * .25f, inRect.height * .05f);
            Rect rectListOptions        = new Rect(rectDTMBanner.x, rectOpenDebugLogWindow.y + rectOpenDebugLogWindow.height + floVertSpacer, inRect.width * .25f, inRect.height * .05f);

            GUI.DrawTexture(rectDTMBanner, DTMBin.DTMBanner);
            if (GUI.Button(rectOpenDebugLogMenu, "Debug Log Menu"))
            {
                if (!Find.WindowStack.TryRemove(typeof(Dialog_DebugLogMenu), true))
                {
                    Find.WindowStack.Add(new Dialog_DebugLogMenu());
                }
            }
            if (GUI.Button(rectOpenDebugLogWindow, "Debug Log Window"))
            {
                if (!Find.WindowStack.TryRemove(typeof(EditWindow_Log), true))
                {
                    Find.WindowStack.Add(new EditWindow_Log());
                }
            }

            List <ListableOption> lstOptions = new List <ListableOption>();
            ListableOption        lOpt       = new ListableOption_WebLink("Information and Help".Translate(), "https://www.reddit.com/r/KeenKrozzy/", DTMBin.RedditIcon);

            lstOptions.Add(lOpt);

            OptionListingUtility.DrawOptionListing(rectListOptions, lstOptions);
        }
        public void DoComponents(Rect rect)
        {
            UnityEngine.GUI.BeginGroup(rect);
            Rect rect2 = new Rect(0f, 0f, 170f, rect.height);

            Text.Font = GameFont.Small;
            List <ListableOption> list = new List <ListableOption>();

            list.Add(new ListableOption("BtnTextGCWP".Translate(), delegate {
                GC_wrapped();
            }, null));

            list.Add(new ListableOption("BtnTextGCV".Translate(), delegate {
                GC_wrapped(true);
            }, null));

            list.Add(new ListableOption("BtnTextAddOn".Translate(), delegate {
                FloatMenuUtil.GenerateFloatMenuGroup(FloatMenuUtil.GroupTools);
            }, null));

            list.Add(new ListableOption("BtnTextFix".Translate(), delegate {
                FloatMenuUtil.GenerateFloatMenuGroup(FloatMenuUtil.GroupFix);
            }, null));

            list.Add(new ListableOption("BtnTextQB".Translate(), delegate {
                FloatMenuUtil.GenerateFloatMenuGroup(FloatMenuUtil.GroupQuickbar);
            }, null));

            list.Add(new ListableOption("BtnTextSysGC".Translate(), delegate {
                if (Event.current.shift)
                {
                    FloatMenuUtil.GenerateMemoryReclaimOptions();
                }
                CleanserUtil.GCObject.DisposeTmpForSystemGC();
                System.GC.Collect();
                Messages.Message("MsgTextSysGC".Translate(), MessageTypeDefOf.PositiveEvent);
            }, null));

            OptionListingUtility.DrawOptionListing(rect2, list);
            UnityEngine.GUI.EndGroup();
        }
        public void DoHelpContents(Rect rect)
        {
            UnityEngine.GUI.BeginGroup(rect);
            Rect rect2 = new Rect(0f, 0f, 35f, rect.height);

            Text.Font = GameFont.Small;
            List <ListableOption> list = new List <ListableOption>();

            list.Add(new ListableOption("?", delegate {
                //GC_wrapped();
                Find.WindowStack.Add(new Dialog_MessageBox("HelpTextGCWP".Translate()));
            }, null));

            list.Add(new ListableOption("?", delegate {
                //GC_wrapped(true);
                Find.WindowStack.Add(new Dialog_MessageBox("HelpTextGCV".Translate()));
            }, null));

            list.Add(new ListableOption("?", delegate {
                //FloatMenuUtil.GenerateFloatMenuGroup(FloatMenuUtil.GroupTools);
                Find.WindowStack.Add(new Dialog_MessageBox("HelpTextAddOn".Translate()));
            }, null));

            list.Add(new ListableOption("?", delegate {
                //FloatMenuUtil.GenerateFloatMenuGroup(FloatMenuUtil.GroupFix);
                Find.WindowStack.Add(new Dialog_MessageBox("HelpTextFix".Translate()));
            }, null));

            list.Add(new ListableOption("?", delegate {
                //FloatMenuUtil.GenerateFloatMenuGroup(FloatMenuUtil.GroupQuickAccess);
                Find.WindowStack.Add(new Dialog_MessageBox("HelpTextQB".Translate()));
            }, null));

            list.Add(new ListableOption("?", delegate {
                //System.GC.Collect();
                Find.WindowStack.Add(new Dialog_MessageBox("HelpTextSysGC".Translate()));
            }, null));

            OptionListingUtility.DrawOptionListing(rect2, list);
            UnityEngine.GUI.EndGroup();
        }
Example #9
0
        public static void DoMainMenuControls(Rect rect, bool anyMapFiles)
        {
            GUI.BeginGroup(rect);
            Rect rect2 = new Rect(0f, 0f, 170f, rect.height);
            Rect rect3 = new Rect(rect2.xMax + 17f, 0f, 145f, rect.height);

            Text.Font = GameFont.Small;
            List <ListableOption> list = new List <ListableOption>();

            if (Current.ProgramState == ProgramState.Entry)
            {
                string label = ("Tutorial".CanTranslate() ? ((string)"Tutorial".Translate()) : ((string)"LearnToPlay".Translate()));
                list.Add(new ListableOption(label, delegate
                {
                    InitLearnToPlay();
                }));
                list.Add(new ListableOption("NewColony".Translate(), delegate
                {
                    Find.WindowStack.Add(new Page_SelectScenario());
                }));
            }
            if (Current.ProgramState == ProgramState.Playing && !Current.Game.Info.permadeathMode)
            {
                list.Add(new ListableOption("Save".Translate(), delegate
                {
                    CloseMainTab();
                    Find.WindowStack.Add(new Dialog_SaveFileList_Save());
                }));
            }
            ListableOption item;

            if (anyMapFiles && (Current.ProgramState != ProgramState.Playing || !Current.Game.Info.permadeathMode))
            {
                item = new ListableOption("LoadGame".Translate(), delegate
                {
                    CloseMainTab();
                    Find.WindowStack.Add(new Dialog_SaveFileList_Load());
                });
                list.Add(item);
            }
            if (Current.ProgramState == ProgramState.Playing)
            {
                list.Add(new ListableOption("ReviewScenario".Translate(), delegate
                {
                    Find.WindowStack.Add(new Dialog_MessageBox(Find.Scenario.GetFullInformationText(), null, null, null, null, Find.Scenario.name));
                }));
            }
            item = new ListableOption("Options".Translate(), delegate
            {
                CloseMainTab();
                Find.WindowStack.Add(new Dialog_Options());
            }, "MenuButton-Options");
            list.Add(item);
            if (Current.ProgramState == ProgramState.Entry)
            {
                item = new ListableOption("Mods".Translate(), delegate
                {
                    Find.WindowStack.Add(new Page_ModsConfig());
                });
                list.Add(item);
                if (Prefs.DevMode && LanguageDatabase.activeLanguage == LanguageDatabase.defaultLanguage && LanguageDatabase.activeLanguage.anyError)
                {
                    item = new ListableOption("SaveTranslationReport".Translate(), delegate
                    {
                        LanguageReportGenerator.SaveTranslationReport();
                    });
                    list.Add(item);
                }
                item = new ListableOption("Credits".Translate(), delegate
                {
                    Find.WindowStack.Add(new Screen_Credits());
                });
                list.Add(item);
            }
            if (Current.ProgramState == ProgramState.Playing)
            {
                if (Current.Game.Info.permadeathMode)
                {
                    item = new ListableOption("SaveAndQuitToMainMenu".Translate(), delegate
                    {
                        LongEventHandler.QueueLongEvent(delegate
                        {
                            GameDataSaveLoader.SaveGame(Current.Game.Info.permadeathModeUniqueName);
                            MemoryUtility.ClearAllMapsAndWorld();
                        }, "Entry", "SavingLongEvent", doAsynchronously: false, null, showExtraUIInfo: false);
                    });
                    list.Add(item);
                    item = new ListableOption("SaveAndQuitToOS".Translate(), delegate
                    {
                        LongEventHandler.QueueLongEvent(delegate
                        {
                            GameDataSaveLoader.SaveGame(Current.Game.Info.permadeathModeUniqueName);
                            LongEventHandler.ExecuteWhenFinished(delegate
                            {
                                Root.Shutdown();
                            });
                        }, "SavingLongEvent", doAsynchronously: false, null, showExtraUIInfo: false);
                    });
                    list.Add(item);
                }
                else
                {
                    Action action = delegate
                    {
                        if (GameDataSaveLoader.CurrentGameStateIsValuable)
                        {
                            Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("ConfirmQuit".Translate(), delegate
                            {
                                GenScene.GoToMainMenu();
                            }, destructive: true));
                        }
                        else
                        {
                            GenScene.GoToMainMenu();
                        }
                    };
                    item = new ListableOption("QuitToMainMenu".Translate(), action);
                    list.Add(item);
                    Action action2 = delegate
                    {
                        if (GameDataSaveLoader.CurrentGameStateIsValuable)
                        {
                            Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("ConfirmQuit".Translate(), delegate
                            {
                                Root.Shutdown();
                            }, destructive: true));
                        }
                        else
                        {
                            Root.Shutdown();
                        }
                    };
                    item = new ListableOption("QuitToOS".Translate(), action2);
                    list.Add(item);
                }
            }
            else
            {
                item = new ListableOption("QuitToOS".Translate(), delegate
                {
                    Root.Shutdown();
                });
                list.Add(item);
            }
            OptionListingUtility.DrawOptionListing(rect2, list);
            Text.Font = GameFont.Small;
            List <ListableOption> list2 = new List <ListableOption>();
            ListableOption        item2 = new ListableOption_WebLink("FictionPrimer".Translate(), "https://rimworldgame.com/backstory", TexButton.IconBlog);

            list2.Add(item2);
            item2 = new ListableOption_WebLink("LudeonBlog".Translate(), "https://ludeon.com/blog", TexButton.IconBlog);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("Forums".Translate(), "https://ludeon.com/forums", TexButton.IconForums);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("OfficialWiki".Translate(), "https://rimworldwiki.com", TexButton.IconBlog);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("TynansTwitter".Translate(), "https://twitter.com/TynanSylvester", TexButton.IconTwitter);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("TynansDesignBook".Translate(), "https://tynansylvester.com/book", TexButton.IconBook);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("HelpTranslate".Translate(), TranslationsContributeURL, TexButton.IconForums);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("BuySoundtrack".Translate(), "http://www.lasgameaudio.co.uk/#!store/t04fw", TexButton.IconSoundtrack);
            list2.Add(item2);
            float num = OptionListingUtility.DrawOptionListing(rect3, list2);

            GUI.BeginGroup(rect3);
            if (Current.ProgramState == ProgramState.Entry && Widgets.ButtonText(new Rect(0f, num + 10f, rect3.width, 50f), LanguageDatabase.activeLanguage.FriendlyNameNative))
            {
                List <FloatMenuOption> list3 = new List <FloatMenuOption>();
                foreach (LoadedLanguage allLoadedLanguage in LanguageDatabase.AllLoadedLanguages)
                {
                    LoadedLanguage localLang = allLoadedLanguage;
                    list3.Add(new FloatMenuOption(localLang.DisplayName, delegate
                    {
                        LanguageDatabase.SelectLanguage(localLang);
                        Prefs.Save();
                    }));
                }
                Find.WindowStack.Add(new FloatMenu(list3));
            }
            GUI.EndGroup();
            GUI.EndGroup();
        }
        public void DoTab3Contents(Rect inRect)
        {
            Text.Font = GameFont.Medium;
            Widgets.Label(inRect, "OCity_Dialog_AboutMode".Translate());

            Text.Font = GameFont.Small;
            var chatAreaOuter = new Rect(inRect.x + 150f, inRect.y + 40f, inRect.width - 150f, inRect.height - 30f - 40f);

            AboutBox.Drow(chatAreaOuter);

            var rect2 = new Rect(inRect.x, inRect.y + inRect.height / 2f, 150f, inRect.height - 30f - 40f);

            Text.Font = GameFont.Small;
            List <ListableOption> list2 = new List <ListableOption>();
            ListableOption        item2 = new ListableOption_WebLink("OCity_Dialog_AutorPage".Translate(), "https://steamcommunity.com/sharedfiles/filedetails/?id=1908437382", GeneralTexture.IconForums);

            list2.Add(item2);

            rect2     = new Rect(inRect.x, inRect.y + 30f, 150f, 40f);
            Text.Font = GameFont.Small;
            list2     = new List <ListableOption>();
            item2     = new ListableOption_WebLink("OCity_Dialog_Regame".Translate(), () =>
            {
                var form             = new Dialog_Input("OCity_Dialog_DeleteData".Translate(), "OCity_Dialog_DeleteDataCheck".Translate());
                form.PostCloseAction = () =>
                {
                    if (form.ResultOK)
                    {
                        var mainCannal = SessionClientController.Data.Chats[0];
                        SessionClientController.Command((connect) =>
                        {
                            var res = connect.PostingChat(mainCannal.Id, "/killmyallplease");
                            if (res != null && res.Status == 0)
                            {
                                SessionClientController.Disconnected("OCity_Dialog_DeletedData".Translate());
                            }
                        });
                    }
                };
                Find.WindowStack.Add(form);
            }, GeneralTexture.IconDelTex);
            list2.Add(item2);

            float num = OptionListingUtility.DrawOptionListing(rect2, list2);

            GUI.BeginGroup(rect2);
            if (Current.ProgramState == ProgramState.Entry && Widgets.ButtonImage(new Rect(0f, num + 10f, 64f, 32f), LanguageDatabase.activeLanguage.icon))
            {
                List <FloatMenuOption> list3 = new List <FloatMenuOption>();
                foreach (LoadedLanguage current in LanguageDatabase.AllLoadedLanguages)
                {
                    LoadedLanguage localLang = current;
                    list3.Add(new FloatMenuOption(localLang.FriendlyNameNative, delegate
                    {
                        LanguageDatabase.SelectLanguage(localLang);
                        Prefs.Save();
                    }, MenuOptionPriority.Default, null, null, 0f, null, null));
                }
                Find.WindowStack.Add(new FloatMenu(list3));
            }
            GUI.EndGroup();

            /*
             * var rectCannals = new Rect(inRect.x, inRect.y, 100f, (float)Math.Round((decimal)(inRect.height / 2f * 10f)) / 10f);
             * Widgets.DrawBoxSolid(inRect, new Color(0.2f, 0.2f, 0));
             * Widgets.DrawBoxSolid(rectCannals, new Color(0.4f, 0.4f, 0));
             *
             *
             * Widgets.DrawBoxSolid(new Rect(inRect.x + 110f, inRect.y, inRect.width - 110f, inRect.height - 40f)
             *  , new Color(0.4f, 0, 0));
             *
             * Widgets.DrawBoxSolid(new Rect(inRect.x + 110f, inRect.y + inRect.height - 35f, inRect.width - 110f, 25f)
             *  , new Color(0, 0, 0.4f));
             *
             * Widgets.Label(inRect, "Вкладка 3");
             */
        }
Example #11
0
        internal static void _DoMainMenuButtons(Rect rect, bool anyWorldFiles, bool anyMapFiles, Action backToGameButtonAction = null)
        {
            #region Set Single Column Rect
            var optionColumnRect = new Rect(0.0f, 0.0f, MainMenuDrawerExt.GameRectWidth, rect.height);
            Text.Font = GameFont.Small;
            #endregion

            #region Main Buttons

            #region Get Defs and Make Buttons

            var mainOptions         = new List <ListableOption>();
            var currentMainMenuDefs = MainMenuDrawerExt.CurrentMainMenuDefs(anyWorldFiles, anyMapFiles);

            foreach (var menu in currentMainMenuDefs)
            {
                mainOptions.Add(new ListableOption_MainMenu(menu));
            }

            #endregion

            #region Calculate Height for Buttons
            var currentMainMenuButtonCount  = currentMainMenuDefs.Count;
            var currentMainMenuButtonHeight = MainMenuDrawerExt.OptionButtonSpacingFor(currentMainMenuButtonCount);
            #endregion

            #region Handle Scroll Region Prefix
            Rect mainOptionsViewRect;
            if (currentMainMenuButtonHeight > rect.y)
            {
                // More buttons than the area allows, begin a scroll area
                var scrollRect = new Rect(
                    0f,
                    MainMenuDrawerExt.OptionListSpacing,
                    MainMenuDrawerExt.GameRectWidth,
                    optionColumnRect.height - MainMenuDrawerExt.OptionListSpacing);
                optionColumnRect.width -= MainMenuDrawerExt.OptionListSpacing;
                optionColumnRect.height = currentMainMenuButtonHeight;
                _optionsScroll          = GUI.BeginScrollView(scrollRect, _optionsScroll, optionColumnRect);
                mainOptionsViewRect     = optionColumnRect;
            }
            else
            {
                mainOptionsViewRect = optionColumnRect.ContractedBy(MainMenuDrawerExt.OptionListSpacing);
            }
            #endregion

            #region Draw Buttons
            var mainOptionsHeight = OptionListingUtility.DrawOptionListing(mainOptionsViewRect, mainOptions);
            #endregion

            #region Handle Scroll Region Suffix
            if (currentMainMenuButtonHeight > rect.y)
            {
                // End the scroll area
                GUI.EndScrollView();
                optionColumnRect.xMax += MainMenuDrawerExt.OptionListSpacing;
            }
            #endregion

            #endregion

            #region Links and Language

            var linkOptionAreaRect = new Rect(optionColumnRect.xMax, 0.0f, -1f, rect.height);
            linkOptionAreaRect.xMax = rect.width;

            Text.Font = GameFont.Small;

            #region Draw Links
            var linkOptionRect   = linkOptionAreaRect.ContractedBy(MainMenuDrawerExt.OptionListSpacing);
            var linkOptionHeight = OptionListingUtility.DrawOptionListing(linkOptionRect, MainMenuDrawerExt.LinkOptions);
            #endregion

            #region Draw Language Selection
            var languageRect = new Rect(
                linkOptionRect.x,
                linkOptionHeight + MainMenuDrawerExt.OptionSpacingDefault + MainMenuDrawerExt.LanguageOptionSpacing,
                MainMenuDrawerExt.LanguageOptionWidth,
                MainMenuDrawerExt.LanguageOptionHeight
                );

            MainMenuDrawerExt.DrawLanguageOption(languageRect);
            #endregion

            #endregion
        }
Example #12
0
        public void DoTab2Contents(Rect inRect)
        {
            Text.Font = GameFont.Medium;
            Widgets.Label(inRect, "OCity_Dialog_AboutMode".Translate());

            Text.Font = GameFont.Small;
            //var chatTextSize = Text.CalcSize(InfoTabText);
            var chatAreaOuter = new Rect(inRect.x + 150f, inRect.y + 40f, inRect.width - 150f, inRect.height - 30f - 40f);
            var chatAreaInner = new Rect(0, 0
                                         , /*inRect.width - (inRect.x + 50f)*/ chatAreaOuter.width - ListBox <string> .WidthScrollLine
                                         , 0 /*chatTextSize.y*/);

            chatAreaInner.height = Text.CalcHeight(AboutTabText, chatAreaInner.width);

            InfoScrollPosition = GUI.BeginScrollView(chatAreaOuter, InfoScrollPosition, chatAreaInner);
            GUILayout.BeginArea(chatAreaInner);
            GUILayout.TextField(AboutTabText, "Label");
            GUILayout.EndArea();
            GUI.EndScrollView();

            var rect2 = new Rect(inRect.x, inRect.y + inRect.height / 2f, 150f, inRect.height - 30f - 40f);

            Text.Font = GameFont.Small;
            List <ListableOption> list2 = new List <ListableOption>();
            ListableOption        item2 = new ListableOption_WebLink("OCity_Dialog_AutorPage".Translate(), "https://vk.com/rimworldonline", IconForums);

            list2.Add(item2);
            float num = OptionListingUtility.DrawOptionListing(rect2, list2);

            rect2     = new Rect(inRect.x, inRect.y + 30f, 150f, 40f);
            Text.Font = GameFont.Small;
            list2     = new List <ListableOption>();
            item2     = new ListableOption_WebLink("OCity_Dialog_Regame".Translate(), () =>
            {
                var form             = new Dialog_Input("OCity_Dialog_DeleteData".Translate(), "OCity_Dialog_DeleteDataCheck".Translate());
                form.PostCloseAction = () =>
                {
                    if (form.ResultOK)
                    {
                        var mainCannal = SessionClientController.Data.Chats[0];
                        SessionClientController.Command((connect) =>
                        {
                            if (connect.PostingChat(mainCannal.Id, "/killmyallpleace"))
                            {
                                SessionClientController.Disconnected("OCity_Dialog_DeletedData".Translate());
                            }
                        });
                    }
                };
                Find.WindowStack.Add(form);
            }, IconDelTex);
            list2.Add(item2);
            num = OptionListingUtility.DrawOptionListing(rect2, list2);

            /*
             * GUI.BeginGroup(rect2);
             * if (Current.ProgramState == ProgramState.Entry && Widgets.ButtonImage(new Rect(0f, num + 10f, 64f, 32f), LanguageDatabase.activeLanguage.icon))
             * {
             *  List<FloatMenuOption> list3 = new List<FloatMenuOption>();
             *  foreach (LoadedLanguage current in LanguageDatabase.AllLoadedLanguages)
             *  {
             *      LoadedLanguage localLang = current;
             *      list3.Add(new FloatMenuOption(localLang.FriendlyNameNative, delegate
             *      {
             *          LanguageDatabase.SelectLanguage(localLang);
             *          Prefs.Save();
             *      }, MenuOptionPriority.Default, null, null, 0f, null, null));
             *  }
             *  Find.WindowStack.Add(new FloatMenu(list3));
             * }
             * GUI.EndGroup();
             */

            /*
             * var rectCannals = new Rect(inRect.x, inRect.y, 100f, (float)Math.Round((decimal)(inRect.height / 2f * 10f)) / 10f);
             * Widgets.DrawBoxSolid(inRect, new Color(0.2f, 0.2f, 0));
             * Widgets.DrawBoxSolid(rectCannals, new Color(0.4f, 0.4f, 0));
             *
             *
             * Widgets.DrawBoxSolid(new Rect(inRect.x + 110f, inRect.y, inRect.width - 110f, inRect.height - 40f)
             *  , new Color(0.4f, 0, 0));
             *
             * Widgets.DrawBoxSolid(new Rect(inRect.x + 110f, inRect.y + inRect.height - 35f, inRect.width - 110f, 25f)
             *  , new Color(0, 0, 0.4f));
             *
             * Widgets.Label(inRect, "Вкладка 3");
             */
        }
Example #13
0
        public static void DoMainMenuButtons(Rect rect, bool anyWorldFiles, bool anyMapFiles, Action backToGameButtonAction = null)
        {
            Rect rect2 = new Rect(0f, 0f, 200f, rect.height);
            Rect rect3 = new Rect(rect2.xMax + 17f, 0f, -1f, rect.height);

            rect3.xMax = rect.width;
            Text.Font  = GameFont.Small;
            List <ListableOption> list = new List <ListableOption>();
            ListableOption        item;

            if (Game.Mode == GameMode.Entry)
            {
                item = new ListableOption("CreateWorld".Translate(), delegate
                {
                    MapInitData.Reset();
                    Find.WindowStack.Add(new Page_CreateWorldParams());
                });
                list.Add(item);
                if (anyWorldFiles)
                {
                    item = new ListableOption("NewColony".Translate(), delegate
                    {
                        MapInitData.Reset();
                        Find.WindowStack.Add(new Page_SelectStoryteller());
                    });
                    list.Add(item);
                }
            }
            if (Game.Mode == GameMode.MapPlaying)
            {
                if (backToGameButtonAction != null)
                {
                    item = new ListableOption("BackToGame".Translate(), backToGameButtonAction);
                    list.Add(item);
                }
                item = new ListableOption("Save".Translate(), delegate
                {
                    MainMenuDrawer.CloseMainTab();
                    Find.WindowStack.Add(new Dialog_MapList_Save());
                });
                list.Add(item);
            }
            if (anyMapFiles)
            {
                item = new ListableOption("Load".Translate(), delegate
                {
                    MainMenuDrawer.CloseMainTab();
                    Find.WindowStack.Add(new Dialog_MapList_Load());
                });
                list.Add(item);
            }
            item = new ListableOption("EdB.InterfaceOptions.Button.GameOptions".Translate(), delegate
            {
                MainMenuDrawer.CloseMainTab();
                Find.WindowStack.Add(new Dialog_Options());
            });
            list.Add(item);
            if (Preferences.Instance.AtLeastOne)
            {
                item = new ListableOption("EdB.InterfaceOptions.Button.InterfaceOptions".Translate(), delegate
                {
                    MainMenuDrawer.CloseMainTab();
                    Find.WindowStack.Add(new Dialog_InterfaceOptions());
                });
                list.Add(item);
            }
            if (Game.Mode == GameMode.Entry)
            {
                item = new ListableOption("Mods".Translate(), delegate
                {
                    Find.WindowStack.Add(new Page_ModsConfig());
                });
                list.Add(item);
                item = new ListableOption("Credits".Translate(), delegate
                {
                    Find.WindowStack.Add(new Page_Credits());
                });
                list.Add(item);
            }
            if (Game.Mode == GameMode.MapPlaying)
            {
                Action action = delegate
                {
                    Find.WindowStack.Add(new Dialog_Confirm("ConfirmQuit".Translate(), delegate
                    {
                        Application.LoadLevel("Entry");
                    }, true));
                };
                item = new ListableOption("QuitToMainMenu".Translate(), action);
                list.Add(item);
                Action action2 = delegate
                {
                    Find.WindowStack.Add(new Dialog_Confirm("ConfirmQuit".Translate(), delegate
                    {
                        Root.Shutdown();
                    }, true));
                };
                item = new ListableOption("QuitToOS".Translate(), action2);
                list.Add(item);
            }
            else
            {
                item = new ListableOption("QuitToOS".Translate(), delegate
                {
                    Root.Shutdown();
                });
                list.Add(item);
            }
            Rect rect4 = rect2.ContractedBy(17f);

            OptionListingUtility.DrawOptionListing(rect4, list);
            Text.Font = GameFont.Small;
            List <ListableOption> list2 = new List <ListableOption>();
            ListableOption        item2 = new ListableOption_WebLink("FictionPrimer".Translate(), "https://docs.google.com/document/d/1pIZyKif0bFbBWten4drrm7kfSSfvBoJPgG9-ywfN8j8/pub", MainMenuDrawer.IconBlog);

            list2.Add(item2);
            item2 = new ListableOption_WebLink("LudeonBlog".Translate(), "http://ludeon.com/blog", MainMenuDrawer.IconBlog);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("Forums".Translate(), "http://ludeon.com/forums", MainMenuDrawer.IconForums);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("OfficialWiki".Translate(), "http://rimworldwiki.com", MainMenuDrawer.IconBlog);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("TynansTwitter".Translate(), "https://twitter.com/TynanSylvester", MainMenuDrawer.IconTwitter);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("TynansDesignBook".Translate(), "http://tynansylvester.com/book", MainMenuDrawer.IconBook);
            list2.Add(item2);
            item2 = new ListableOption_WebLink("HelpTranslate".Translate(), "http://ludeon.com/forums/index.php?topic=2933.0", MainMenuDrawer.IconForums);
            list2.Add(item2);
            Rect  rect5 = rect3.ContractedBy(17f);
            float num   = OptionListingUtility.DrawOptionListing(rect5, list2);

            GUI.BeginGroup(rect5);
            if (Game.Mode == GameMode.Entry && Widgets.ImageButton(new Rect(0f, num + 10f, 64f, 32f), LanguageDatabase.activeLanguage.icon))
            {
                List <FloatMenuOption> list3 = new List <FloatMenuOption>();
                foreach (LoadedLanguage current in LanguageDatabase.AllLoadedLanguages)
                {
                    LoadedLanguage localLang = current;
                    list3.Add(new FloatMenuOption(localLang.FriendlyNameNative, delegate
                    {
                        LanguageDatabase.SelectLanguage(localLang);
                        Prefs.Save();
                    }, MenuOptionPriority.Medium, null, null));
                }
                Find.WindowStack.Add(new FloatMenu(list3, false));
            }
            GUI.EndGroup();
        }