Example #1
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);
        }
Example #2
0
        public override void DoWindowContents(Rect inRect)
        {
            const float categoryPadding      = 10f;
            const float categoryInset        = 30f;
            const float radioLabelInset      = 40f;
            const float mainListingSpacing   = 6f;
            const float subListingSpacing    = 6f;
            const float subListingLabelWidth = 100f;
            const float subListingRowHeight  = 30f;
            const float checkboxListingWidth = 280f;
            const float listingColumnSpacing = 17f;

            var btnSize      = new Vector2(140f, 40f);
            var buttonYStart = inRect.height - btnSize.y;


            //кнопки
            var ev = Event.current;

            if (Widgets.ButtonText(new Rect(inRect.width - btnSize.x * 3, buttonYStart, btnSize.x, btnSize.y), "OCity_LoginForm_BtnEnter".Translate()) ||
                ev.isKey && ev.type == EventType.keyDown && ev.keyCode == KeyCode.Return)
            {
                var msgError = SessionClientController.Login(InputAddr, InputLogin, InputPassword);
                if (msgError == null)
                {
                    StorageData.GlobalData.LastIP.Value        = InputAddr;
                    StorageData.GlobalData.LastLoginName.Value = InputLogin;
                    HugsLibController.SettingsManager.SaveChanges();
                    //Loger.Log("login " + StorageData.GlobalData.LastIP.Value);
                    Close();
                }
            }

            if (Widgets.ButtonText(new Rect(inRect.width - btnSize.x * 2, buttonYStart, btnSize.x, btnSize.y), "OCity_LoginForm_Register".Translate()))
            {
                Close();
                Find.WindowStack.Add(new Dialog_Registration());
            }

            if (Widgets.ButtonText(new Rect(inRect.width - btnSize.x, buttonYStart, btnSize.x, btnSize.y), "OCity_LoginForm_Close".Translate()))
            {
                Close();
            }

            //заголовок
            var mainListing = new Listing_Standard();

            mainListing.verticalSpacing = mainListingSpacing;
            mainListing.Begin(inRect);
            Text.Font = GameFont.Medium;
            mainListing.Label("OCity_LoginForm_LabelEnter".Translate());

            Text.Font = GameFont.Small;
            mainListing.GapLine();
            mainListing.Gap();

            var iresct = mainListing.GetRect(20f);

            //что к чему
            ListableOption item = new ListableOption_WebLink("Что к чему".NeedTranslate(), () =>
            {
                var textForm = new Dialog_TextOut(Dialog_MainOnlineCity.AboutGeneralText);
                Find.WindowStack.Add(textForm);
            }, Dialog_MainOnlineCity.IconForums);

            item.DrawOption(new Vector2(iresct.x, iresct.y), iresct.width);

            //поля ввода
            var textEditSize = new Vector2(150f, 25f);

            TextInput(mainListing, "OCity_LoginForm_Server".Translate(),
                      (sub, rect) =>
            {
                InputAddr = GUI.TextField(new Rect(rect.x, rect.y, textEditSize.x, textEditSize.y), InputAddr, 100);
            });

            TextInput(mainListing, "OCity_LoginForm_Login".Translate(),
                      (sub, rect) =>
            {
                InputLogin = GUI.TextField(new Rect(rect.x, rect.y, textEditSize.x, textEditSize.y), InputLogin, 100);
            });

            TextInput(mainListing, "OCity_LoginForm_Pass".Translate(),
                      (sub, rect) =>
            {
                GUI.SetNextControlName("StartTextField");
                InputPassword = GUI.PasswordField(new Rect(rect.x, rect.y, textEditSize.x, textEditSize.y), InputPassword, "*"[0], 100);
            });

            if (NeedFockus)
            {
                NeedFockus = false;
                GUI.FocusControl("StartTextField");
            }

            mainListing.End();
            //Text.Anchor = TextAnchor.UpperLeft;
        }
Example #3
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");
             */
        }
 // Stops the link from being drawn if setting is inactive.
 static bool Prefix(ListableOption_WebLink __instance) => ToggleManager.IsActive(Format(__instance.label, Current.ProgramState));
 public static void DoMainMenuLinks(Rect rect, bool anyWorldFiles, bool anyMapFiles,
     Action backToGameButtonAction = null)
 {
     //Widgets.DrawWindowBackground(rect);
     Text.Font = GameFont.Small;
     var list = new List<ListableOption>();
     ListableOption item = new ListableOption_WebLink("FictionPrimer".Translate(),
         "https://docs.google.com/document/d/1pIZyKif0bFbBWten4drrm7kfSSfvBoJPgG9-ywfN8j8/pub", IconBlog);
     list.Add(item);
     item = new ListableOption_WebLink("LudeonBlog".Translate(), "http://ludeon.com/blog", IconBlog);
     list.Add(item);
     item = new ListableOption_WebLink("Forums".Translate(), "http://ludeon.com/forums", IconForums);
     list.Add(item);
     item = new ListableOption_WebLink("OfficialWiki".Translate(), "http://rimworldwiki.com", IconBlog);
     list.Add(item);
     item = new ListableOption_WebLink("TynansTwitter".Translate(), "https://twitter.com/TynanSylvester",
         IconTwitter);
     list.Add(item);
     item = new ListableOption_WebLink("TynansDesignBook".Translate(), "http://tynansylvester.com/book", IconBook);
     list.Add(item);
     item = new ListableOption_WebLink("HelpTranslate".Translate(),
         "http://ludeon.com/forums/index.php?topic=2933.0", IconForums);
     list.Add(item);
     var num = OptionListingUtility.DrawOptionListing(rect, list);
     GUI.BeginGroup(rect);
     if (Current.ProgramState == ProgramState.Entry &&
         Widgets.ButtonImage(new Rect(0f, num + 10f, 64f, 32f), LanguageDatabase.activeLanguage.icon))
     {
         var list3 = new List<FloatMenuOption>();
         foreach (var current in LanguageDatabase.AllLoadedLanguages)
         {
             var localLang = current;
             list3.Add(new FloatMenuOption(localLang.FriendlyNameNative, delegate
             {
                 LanguageDatabase.SelectLanguage(localLang);
                 Prefs.Save();
             }));
         }
         Find.WindowStack.Add(new FloatMenu(list3));
     }
     GUI.EndGroup();
 }
Example #7
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 #8
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();
        }