Exemplo n.º 1
0
        /// <summary>
        /// Check whether key-binds for the chat box are pressed.
        /// </summary>
        /// <param name="modSettings">The mod settings instance.</param>
        private void CheckKeyBinds(ModSettings modSettings)
        {
            if (!_chatBoxGroup.IsActive())
            {
                return;
            }

            if (_isOpen)
            {
                if (InputHandler.Instance.inputActions.pause.WasPressed)
                {
                    HideChatInput();
                }
            }
            else
            {
                var gameManager = GameManager.instance;
                var uiManager   = UIManager.instance;
                if (gameManager == null ||
                    uiManager == null ||
                    gameManager.gameState != GameState.PLAYING ||
                    uiManager.uiState != UIState.PLAYING ||
                    IsInventoryOpen()
                    )
                {
                    return;
                }

                if (gameManager.gameState == GameState.PLAYING &&
                    Input.GetKeyDown((KeyCode)modSettings.OpenChatKey))
                {
                    _isOpen = true;

                    for (var i = 0; i < MaxMessages; i++)
                    {
                        _messages[i]?.OnChatToggle(true);
                    }

                    _chatInput.SetActive(true);
                    _chatInput.Focus();

                    InputHandler.Instance.PreventPause();
                    SetEnabledHeroActions(false);
                }
            }
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public virtual void SetActive(bool active)
        {
            _activeSelf = active;

            GameObject.SetActive(_activeSelf && _componentGroup.IsActive());
        }