/// @private
        public override void OnDeactivation()
        {
            UIState ui = MainMenuLibraries.GetMenuUI(this.MenuDefinitionOfContext);

            this.MyElement.Remove();

            UIElement elem = this.GetInsertElem(ui);

            elem.RemoveChild(this.MyElement);
        }
예제 #2
0
        /// <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));
        }
예제 #3
0
        ////////////////

        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));
            }
        }