public static void ExitToMenu(bool save = true) { IngameOptions.Close(); Main.menuMode = 10; if (save) { WorldGen.SaveAndQuit((Action)null); } else { ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(object state) { Main.invasionProgress = 0; Main.invasionProgressDisplayLeft = 0; Main.invasionProgressAlpha = 0f; Main.StopTrackedSounds(); CaptureInterface.ResetFocus(); Main.ActivePlayerFileData.StopPlayTimer(); Main.gameMenu = true; if (Main.netMode != 0) { Netplay.disconnect = true; Main.netMode = 0; } Main.fastForwardTime = false; Main.UpdateSundial(); Main.menuMode = 0; }), (Action)null); } }
/// <summary> /// Loads the UI for mod configs. /// </summary> /// <param name="config"></param> public static void OpenModConfigUI(ModConfig config) { Type interfaceType = ReflectionHelpers.GetMainAssembly() .GetType("Terraria.ModLoader.UI.Interface"); if (!Main.gameMenu) { IngameOptions.Close(); IngameFancyUI.CoverNextFrame(); Main.playerInventory = false; Main.editChest = false; Main.npcChatText = ""; Main.inFancyUI = true; } else { if (!ReflectionHelpers.Get(interfaceType, null, "modConfigID", out Main.menuMode)) { LogHelpers.Warn("Could not get Interface.modConfigID"); return; } } UIState modConfigInterfaceObj; if (!ReflectionHelpers.Get(interfaceType, null, "modConfig", out modConfigInterfaceObj) || modConfigInterfaceObj == null) { LogHelpers.Warn("Could not get Interface.modConfig"); return; } object _; if (!ReflectionHelpers.RunMethod(modConfigInterfaceObj, "SetMod", new object[] { config.mod, config }, out _)) { LogHelpers.Warn("Could not run Interface.modConfig.SetMod"); return; } Main.InGameUI.SetState(modConfigInterfaceObj); Main.PlaySound(SoundID.MenuTick); }
/// <summary> /// Switches to the list of mod configs menu. /// </summary> public static void OpenModConfigListUI() { Type interfaceType = ReflectionLibraries.GetMainAssembly() .GetType("Terraria.ModLoader.UI.Interface"); if (!Main.gameMenu) { IngameOptions.Close(); IngameFancyUI.CoverNextFrame(); Main.playerInventory = false; Main.editChest = false; Main.npcChatText = ""; Main.inFancyUI = true; } else { if (!ReflectionLibraries.Get(interfaceType, null, "modConfigID", out Main.menuMode)) { LogLibraries.Warn("Could not get Interface.modConfigID"); return; } } UIState modConfigListInterfaceObj; if (!ReflectionLibraries.Get(interfaceType, null, "modConfigList", out modConfigListInterfaceObj) || modConfigListInterfaceObj == null) { LogLibraries.Warn("Could not get Interface.modConfigList"); return; } Main.InGameUI.SetState(modConfigListInterfaceObj); Main.PlaySound(SoundID.MenuTick); }
public override void OnClick() { IngameOptions.Close(); IngameFancyUI.OpenAchievementsAndGoto(this._achievement); }
public override void OnClick() { IngameOptions.Close(); AchievementsUI.OpenAndGoto(_achievement); }