/// @private public override void OnDeactivation() { UIState ui = MainMenuLibraries.GetMenuUI(this.MenuDefinitionOfContext); this.MyElement.Remove(); UIElement elem = this.GetInsertElem(ui); elem.RemoveChild(this.MyElement); }
/// <summary> /// Gets the previous active main menu UI object (if any). /// </summary> /// <returns></returns> public static UIState GetPreviousMenuUI() { var menuCtxMngr = ModContent.GetInstance <MenuContextServiceManager>(); if ((menuCtxMngr?.CurrentMenuUI ?? 0) == 0) { return(null); } return(MainMenuLibraries.GetMenuUI(menuCtxMngr.PreviousMenuUI)); }
//////////////// private void SwitchToUI(UIState ui) { MenuUIDefinition openingUiDef = 0; MenuUIDefinition closingUiDef = this.CurrentMenuUI; // Out with the old if (closingUiDef != 0 && this.Contexts.ContainsKey(closingUiDef)) { foreach ((string ctxName, MenuContext ctx) in this.Contexts[closingUiDef]) { ctx.Hide(MainMenuLibraries.GetMenuUI(closingUiDef)); } } // Validate if (ui != null) { if (!Enum.TryParse(ui.GetType().Name, out openingUiDef)) { if (ModLibsUIConfig.Instance.DebugModeMenuInfo) { LogLibraries.WarnOnce("Could not get MenuUIDefinition " + ui.GetType().Name); } this.CurrentMenuUI = 0; return; } } else { this.PreviousMenuUI = this.CurrentMenuUI; this.CurrentMenuUI = 0; } // In with the new if (this.Contexts.ContainsKey(openingUiDef)) { foreach (MenuContext ctx in this.Contexts[openingUiDef].Values.ToArray()) { ctx.ActivateIfInactive(ui); ctx.Show(ui); } } this.PreviousMenuUI = this.CurrentMenuUI; this.CurrentMenuUI = openingUiDef; }
//////////////// private void HideAllForCurrentMenuUI() { if (this.CurrentMenuUI == 0) { return; } MenuUIDefinition menuDef = this.CurrentMenuUI; if (!this.Contexts.ContainsKey(menuDef)) { LogLibraries.Warn("Missing menu context " + menuDef); return; } IDictionary <string, MenuContext> contexts = this.Contexts[menuDef]; foreach (MenuContext context in contexts.Values) { context.Hide(MainMenuLibraries.GetMenuUI(this.CurrentMenuUI)); } }