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; }
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);
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; }
private T GetHotkeyActionForPanel <T>(HotkeyActionPanel panel) where T : IHotkeyAction { if (!panel) { return(default);