Example #1
0
        private void SteamVR_NexHUD_PostUpdateCallback(object sender, EventArgs e)
        {
            if (m_state == MenuState.Initialize)
            {
                return;
            }


            if (Shortcuts.holdMode)
            {
                if (NexHudEngine.isShortcutIsHold(Shortcuts.get(ShortcutId.menu)))
                {
                    if (!m_frame.renderOverlay)
                    {
                        m_frame.renderOverlay = true;
                        if (NexHudSettings.GetInstance().stealFocus)
                        {
                            FocusHelper.focusonNexHud();
                        }
                    }

                    if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.back)))
                    {
                        if (m_state != MenuState.Main && m_state != MenuState.Improve && m_state != MenuState.Search)
                        {
                            changeState(MenuState.Main);
                        }
                    }
                }
                else
                {
                    if (m_frame.renderOverlay)
                    {
                        m_frame.renderOverlay = false;
                        if (NexHudSettings.GetInstance().stealFocus)
                        {
                            FocusHelper.focusOnGame();
                        }
                    }
                    return;
                }
            }
            else
            {
                if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.menu)))
                {
                    if (m_frame.renderOverlay)
                    {
                        if (m_state != MenuState.Main)
                        {
                            if (m_state != MenuState.Improve && m_state != MenuState.Search)
                            {
                                changeState(MenuState.Main);
                            }
                        }
                        else
                        {
                            m_frame.renderOverlay = false;
                            if (NexHudSettings.GetInstance().stealFocus)
                            {
                                FocusHelper.focusOnGame();
                            }
                        }
                    }
                    else
                    {
                        changeState(MenuState.Main);
                        m_frame.renderOverlay = true;
                        if (NexHudSettings.GetInstance().stealFocus)
                        {
                            FocusHelper.focusonNexHud();
                        }
                    }
                }
            }

            if (m_frame.renderOverlay)
            {
                //MAIN MENU NAVIGATION
                if (m_uiMainMenu.isVisible)
                {
                    bool up     = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.up));
                    bool down   = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.down));
                    bool left   = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.left));
                    bool right  = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.right));
                    bool select = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.select));



                    if (Cursor.Y == 0)
                    {
                        if (right)
                        {
                            m_uiMainMenu.selectNext();
                        }
                        else if (left)
                        {
                            m_uiMainMenu.selectPrev();
                        }
                        else if (down)
                        {
                            Cursor = new Point(1, 1);
                        }
                        else if (select)
                        {
                            if (m_uiMainMenu.isSelectedMenuActive())
                            {
                                switch (m_uiMainMenu.SelectedMenu)
                                {
                                case UiMainMenuButton.MenuButtonType.Search:
                                    changeState(MenuState.Search);
                                    break;

                                case UiMainMenuButton.MenuButtonType.Improve:
                                    changeState(MenuState.Improve);
                                    break;

                                case UiMainMenuButton.MenuButtonType.Trade:
                                    changeState(MenuState.Trade);
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (up)
                        {
                            Cursor.Y--;
                        }
                        else if (down && Cursor.Y < 2)
                        {
                            Cursor.Y++;
                        }

                        else if (left && Cursor.X > 0 && Cursor.Y < 2)
                        {
                            Cursor.X--;
                        }
                        else if (right && Cursor.X < 2 && Cursor.Y < 2)
                        {
                            Cursor.X++;
                        }
                        m_UiRadio.PreviousRadio.Selected = Cursor == new Point(0, 1);
                        m_UiRadio.Radio.Selected         = Cursor == new Point(1, 1);
                        m_UiRadio.NextRadio.Selected     = Cursor == new Point(2, 1);

                        m_UiRadio.VolumeSelected = Cursor.Y == 2;
                    }
                }
            }
        }