Esempio n. 1
0
    void OnSceneLoad(Scene scene, LoadSceneMode mode)
    {
        Debug.Log("Scene load");
        menuStatus.Clear();
        _eventSystem = FindObjectOfType <EventSystem>();
        //very specific scene, if in this scene, I want to remove the last panel
        if (scene.buildIndex == 1)
        {
            //defaultPanel = FindObjectOfType<DefaultPanel>().gameObject;
            //Button ResumeButton = defaultPanel.transform.GetChild(0).transform.Find("ResumeButton").GetChild(0).GetComponent<Button>();
            //ResumeButton.onClick.AddListener(delegate { UnpauseGame(); });
            //m_bRemoveLastPanel = false;
            //    defaultPanel.gameObject.SetActive(false);
        }

        else if (scene.buildIndex != 0) //otherwise don't allow the removal of the last panel;
        {
            //don't allow the last panel to be removed
            m_bRemoveLastPanel = false;
        }
        else if (scene.buildIndex == 0) //else if I am in the main scene menu (assuming it is 0 as of right now)
        {
            m_SettingsPanel = GameObject.Find("Options_Panel");
            m_bInMainMenu   = true;
            m_bMenuAnimator = FindObjectOfType <Canvas>().GetComponent <Animator>();
            if (!m_SettingsPanel)
            {
                m_SettingsPanel = GameObject.Find("Options_Panel");
            }
            m_CreditsPanel            = GameObject.Find("Credits_Panel"); //Currently null;
            m_CharacterSelectionPanel = GameObject.Find("Character_Selection");
            _eventSystem = GameObject.Find("EventSystem").GetComponent <EventSystem>();
            Button vsButton       = GameObject.Find("VS_Button").GetComponent <Button>();
            Button SettingsButton = GameObject.Find("Settings_Button").GetComponent <Button>();
            Button CreditsButton  = GameObject.Find("Credits_Button").GetComponent <Button>();
            Button QuitBUtton     = GameObject.Find("Quit_Button").GetComponent <Button>();
            _creditsScroller = FindObjectOfType <CreditsScroll>();

            //Clear all listeners
            //vsButton.onClick.RemoveAllListeners();
            //SettingsButton.onClick.RemoveAllListeners();
            //CreditsButton.onClick.RemoveAllListeners();
            //QuitBUtton.onClick.RemoveAllListeners();

            //Add new listeners
            vsButton.onClick.AddListener(delegate { UIManager.Instance.MainMenuChangePanel(GameObject.Find("Second_Panel")); });
            SettingsButton.onClick.AddListener(delegate { UIManager.Instance.MenuOpenPanel(m_SettingsPanel, "IsSettings", SettingsButton); });
            CreditsButton.onClick.AddListener(delegate { UIManager.Instance.MenuOpenPanel(m_CreditsPanel, "IsCredits", CreditsButton); });
            QuitBUtton.onClick.AddListener(delegate { UIManager.Instance.QuitGame(); });
            //find the first panel and push it to the stack
            menuStatus.Push(GameObject.Find("First_Panel"));
            m_ButtonAnimator = menuStatus.Peek().GetComponent <Animator>();
        }
        else
        {
            m_bRemoveLastPanel = true;
        }
    }
Esempio n. 2
0
    /// <summary>
    ///   Setup the main menu.
    /// </summary>
    private void RunMenuSetup()
    {
        Background           = GetNode <TextureRect>("Background");
        guiAnimations        = GetNode <AnimationPlayer>("GUIAnimations");
        thriveLogo           = GetNode <TextureRect>(ThriveLogoPath);
        newGameButton        = GetNode <Button>(NewGameButtonPath);
        freebuildButton      = GetNode <Button>(FreebuildButtonPath);
        creditsContainer     = GetNode <Control>(CreditsContainerPath);
        credits              = GetNode <CreditsScroll>(CreditsScrollPath);
        licensesDisplay      = GetNode <LicensesDisplay>(LicensesDisplayPath);
        storeLoggedInDisplay = GetNode <Label>(StoreLoggedInDisplayPath);
        modManager           = GetNode <ModManager>(ModManagerPath);

        MenuArray?.Clear();

        // Get all of menu items
        MenuArray = GetTree().GetNodesInGroup("MenuItem");

        if (MenuArray == null)
        {
            GD.PrintErr("Failed to find all the menu items!");
            return;
        }

        RandomizeBackground();

        options         = GetNode <OptionsMenu>("OptionsMenu");
        saves           = GetNode <SaveManagerGUI>("SaveManagerGUI");
        gles2Popup      = GetNode <CustomConfirmationDialog>(GLES2PopupPath);
        modLoadFailures = GetNode <ErrorDialog>(ModLoadFailuresPath);

        // Set initial menu
        SwitchMenu();

        // Easter egg message
        thriveLogo.RegisterToolTipForControl("thriveLogoEasterEgg", "mainMenu");

        if (OS.GetCurrentVideoDriver() == OS.VideoDriver.Gles2 && !IsReturningToMenu)
        {
            gles2Popup.PopupCenteredShrink();
        }

        UpdateStoreNameLabel();
    }