示例#1
0
        private void OnHotkeyActionToggleValueChanged(HotkeyActionPanel actionPanel, bool value)
        {
            if (!value)
            {
                return;
            }

            m_ChangingSelectedAction = true;

            var action = GetHotkeyActionForPanel <IHotkeyAction>(actionPanel);

            bool isObjectAction = action is HotkeyObjectAction;

            if (isObjectAction)
            {
                m_AutoSendCheckboxWrapper.DisableComponent();
            }
            else
            {
                m_AutoSendCheckboxWrapper.EnableComponent();
            }

            m_HotkeyTextInputField.interactable = !isObjectAction;
            m_ObjectImage.enabled = isObjectAction;

            if (action is HotkeyTextAction textAction)
            {
                m_HotkeyTextInputField.text = textAction.Text;
                m_AutoSendCheckboxWrapper.checkbox.Checked = textAction.AutoSend;
            }
            else
            {
                m_HotkeyTextInputField.text = string.Empty;
                m_AutoSendCheckboxWrapper.checkbox.Checked = false;
            }

            if (action is HotkeyObjectAction objectAction)
            {
                EnableObjectToggles();
                SelectObjectToggle(objectAction.ActionTarget);

                if (!m_ObjectInstance || m_ObjectInstance.ID != objectAction.AppearanceType.ID)
                {
                    m_ObjectInstance = new Core.Appearances.ObjectInstance(objectAction.AppearanceType.ID, objectAction.AppearanceType, 0);
                }
            }
            else
            {
                DisableObjectToggles();
            }

            m_ActiveActionPanel      = actionPanel;
            m_ChangingSelectedAction = false;
        }
示例#2
0
        private T GetHotkeyActionForPanel <T>(HotkeyActionPanel panel) where T : HotkeyAction
        {
            HotkeyAction[] actionList;
            if (!!panel && _lists.TryGetValue(panel.EventModifiers, out actionList))
            {
                if (actionList[panel.KeyCode - StartKeyCode] is T action)
                {
                    return(action);
                }
            }

            return(default);
示例#3
0
        private void OnHotkeyActionToggleValueChanged(HotkeyActionPanel actionPanel, bool value)
        {
            if (_changingVisibility || !value)
            {
                return;
            }

            _changingSelectedAction = true;

            var action = GetHotkeyActionForPanel <HotkeyAction>(actionPanel);

            bool isObjectAction = action is HotkeyObjectAction;

            if (isObjectAction)
            {
                _autoSendCheckboxWrapper.DisableComponent();
            }
            else
            {
                _autoSendCheckboxWrapper.EnableComponent();
            }

            _hotkeyTextInputField.interactable = !isObjectAction;
            _objectImage.enabled = isObjectAction;

            if (action is HotkeyTextAction textAction)
            {
                _hotkeyTextInputField.text = textAction.Text;
                _autoSendCheckboxWrapper.checkbox.Checked = textAction.AutoSend;
            }
            else
            {
                _hotkeyTextInputField.text = string.Empty;
                _autoSendCheckboxWrapper.checkbox.Checked = false;
            }

            if (action is HotkeyObjectAction objectAction)
            {
                if (objectAction.ActionTarget != UseActionTarget.Auto)
                {
                    EnableObjectToggles();
                    SelectObjectToggle(objectAction.ActionTarget);
                }
                else
                {
                    DisableObjectToggles();
                }

                if (!_objectInstance || _objectInstance.Id != objectAction.AppearanceType.Id)
                {
                    _objectInstance = new Core.Appearances.ObjectInstance(objectAction.AppearanceType.Id, objectAction.AppearanceType, 0);
                }
            }
            else
            {
                OpenTibiaUnity.GameManager.InvokeOnMainThread(() => {
                    if (action == null || action is HotkeyTextAction)
                    {
                        _hotkeyTextInputField.ActivateInputField();
                        _hotkeyTextInputField.MoveTextEnd(false);
                    }
                });

                DisableObjectToggles();

                if (action == null || action is HotkeyTextAction)
                {
                    OpenTibiaUnity.GameManager.InvokeOnMainThread(() => {
                        _hotkeyTextInputField.ActivateInputField();
                        _hotkeyTextInputField.MoveTextEnd(false);
                    });
                }
            }

            _activeActionPanel      = actionPanel;
            _changingSelectedAction = false;
        }
示例#4
0
 private T GetHotkeyActionForPanel <T>(HotkeyActionPanel panel) where T : IHotkeyAction
 {
     if (!panel)
     {
         return(default);