public InputActionData GetInputActionData(TriggerAction.TYPE trigger) { InputActionData[] array = null; int actionId = InputHelpers.GetActionId(trigger); this.m_ActionsByInputAction.TryGetValue(actionId, out array); return(array[(int)GreenHellGame.Instance.m_Settings.m_ControllerType]); }
public InputActionData GetActionDataByTriggerAction(TriggerAction.TYPE trigger_action, ControllerType controller_type = ControllerType._Count) { InputActionData[] array; if (this.m_ActionsByInputAction.TryGetValue(InputHelpers.GetActionId(trigger_action), out array)) { return(array[(int)((controller_type == ControllerType._Count) ? GreenHellGame.Instance.m_Settings.m_ControllerType : controller_type)]); } return(null); }
public void ApplyOptions(Dictionary <int, int> actions_by_input_action, Dictionary <int, int> actions_by_trigger_action, ControllerType controller_type) { foreach (KeyValuePair <int, int> keyValuePair in actions_by_input_action) { int actionId = ((InputsManager.InputAction)keyValuePair.Key).GetActionId(TriggerAction.TYPE.None); InputActionData[] array; if (!this.m_ActionsByInputAction.TryGetValue(actionId, out array)) { array = new InputActionData[2]; this.m_ActionsByInputAction.Add(actionId, array); } if (array[(int)controller_type] != null) { array[(int)controller_type].m_KeyCode = (KeyCode)keyValuePair.Value; } else { Debug.Log(""); } } foreach (KeyValuePair <int, int> keyValuePair2 in actions_by_trigger_action) { int actionId2 = InputHelpers.GetActionId((TriggerAction.TYPE)keyValuePair2.Key); InputActionData[] array2; if (!this.m_ActionsByInputAction.TryGetValue(actionId2, out array2)) { array2 = new InputActionData[2]; this.m_ActionsByInputAction.Add(actionId2, array2); } if (array2[(int)controller_type] != null) { array2[(int)controller_type].m_KeyCode = (KeyCode)keyValuePair2.Value; } else { Debug.Log(""); } } foreach (KeyValuePair <int, InputActionData[]> keyValuePair3 in this.m_ActionsByInputAction) { InputActionData[] value = keyValuePair3.Value; for (int i = 0; i < value.Length; i++) { InputActionData act = value[i]; if (act != null && act.m_KeyCode != KeyCode.None) { KeyCode keyCode = act.m_KeyCode; List <InputActionData> list; if (!this.m_ActionsByKeyCode.TryGetValue((int)keyCode, out list)) { list = new List <InputActionData>(); this.m_ActionsByKeyCode.Add((int)keyCode, list); } if (!list.Any((InputActionData a) => a.m_Action == act.m_Action && a.m_TriggerAction == act.m_TriggerAction)) { if (keyValuePair3.Value[(int)controller_type] != null) { InputActionData inputActionData = keyValuePair3.Value[(int)controller_type].ShallowCopy(); foreach (int key in this.m_ActionsByKeyCode.Keys) { List <InputActionData> list2 = this.m_ActionsByKeyCode[key]; bool flag = false; foreach (InputActionData inputActionData2 in list2) { if ((inputActionData2.m_Action != InputsManager.InputAction.None && inputActionData2.m_Action == inputActionData.m_Action) || (inputActionData2.m_TriggerAction != TriggerAction.TYPE.None && inputActionData2.m_TriggerAction == inputActionData.m_TriggerAction)) { this.m_ActionsByKeyCode[key].Remove(inputActionData2); flag = true; break; } } if (flag) { break; } } list.Add(inputActionData); } else { Debug.Log(""); } } } } } this.m_ActiveActionsByInputAction.Clear(); this.m_ActiveHoldActionsByTriggerAction.Clear(); this.m_InputActionsToRemove.Clear(); GC.Collect(); }
public float GetActionValue(TriggerAction.TYPE action) { return(this.GetActionValue(InputHelpers.GetActionId(action))); }
private void UpdateActions() { bool pause = Time.timeScale == 0f; foreach (KeyValuePair <int, List <InputActionData> > keyValuePair in this.GetActionsByKeyCode()) { int key = keyValuePair.Key; if (Input.GetKeyDown((KeyCode)key)) { foreach (InputActionData inputActionData in this.GetActionsByKeyCode()[key]) { if (inputActionData.m_ControllerType == GreenHellGame.Instance.m_Settings.m_ControllerType) { if (inputActionData.m_Type == InputsManager.InputActionType.Down && inputActionData.m_Hold == 0f) { this.OnAction(inputActionData, pause); if (inputActionData.m_TriggerAction != TriggerAction.TYPE.None) { if (!this.m_ActiveActionsByInputAction.ContainsKey(InputHelpers.GetActionId(inputActionData.m_TriggerAction))) { this.m_ActiveActionsByInputAction.Add(InputHelpers.GetActionId(inputActionData.m_TriggerAction), (KeyCode)key); } } else if (!this.m_ActiveActionsByInputAction.ContainsKey(inputActionData.m_Action.GetActionId(TriggerAction.TYPE.None))) { this.m_ActiveActionsByInputAction.Add(inputActionData.m_Action.GetActionId(TriggerAction.TYPE.None), (KeyCode)key); } } else if (this.CanActivateHold(inputActionData)) { inputActionData.m_StartHoldTime = Time.time; if (!this.m_ActiveHoldActionsByTriggerAction.ContainsKey((int)inputActionData.m_TriggerAction)) { this.m_ActiveHoldActionsByTriggerAction.Add((int)inputActionData.m_TriggerAction, inputActionData); } } if (inputActionData.m_Type == InputsManager.InputActionType.Down) { inputActionData.m_LastPressTime = Time.time; } } } } else if (Input.GetKeyUp((KeyCode)key)) { if (key == 323 && this.m_OmitMouseUp) { this.m_OmitMouseUp = false; } else { foreach (InputActionData inputActionData2 in this.GetActionsByKeyCode()[key]) { if (inputActionData2.m_ControllerType == GreenHellGame.Instance.m_Settings.m_ControllerType) { if (inputActionData2.m_Type == InputsManager.InputActionType.Up && inputActionData2.m_Hold == 0f) { this.OnAction(inputActionData2, pause); } else if (inputActionData2.m_Type == InputsManager.InputActionType.Up && inputActionData2.m_Hold > 0f && inputActionData2.m_StartHoldTime > 0f && Time.time - inputActionData2.m_StartHoldTime >= inputActionData2.m_Hold) { this.OnAction(inputActionData2, pause); } inputActionData2.m_StartHoldTime = 0f; if (this.m_ActiveHoldActionsByTriggerAction.ContainsKey((int)inputActionData2.m_TriggerAction)) { this.m_ActiveHoldActionsByTriggerAction.Remove((int)inputActionData2.m_TriggerAction); } if (inputActionData2.m_Type == InputsManager.InputActionType.Up) { inputActionData2.m_LastReleaseTime = Time.time; } } } } } foreach (InputActionData inputActionData3 in this.GetActionsByKeyCode()[key]) { if (inputActionData3.m_ControllerType == GreenHellGame.Instance.m_Settings.m_ControllerType && inputActionData3.m_Type == InputsManager.InputActionType.Down && inputActionData3.m_StartHoldTime > 0f && Time.time - inputActionData3.m_StartHoldTime >= inputActionData3.m_Hold) { this.OnAction(inputActionData3, pause); if (inputActionData3.m_TriggerAction != TriggerAction.TYPE.None) { this.m_ActiveActionsByInputAction.Remove(InputHelpers.GetActionId(inputActionData3.m_TriggerAction)); } else { this.m_ActiveActionsByInputAction.Remove(inputActionData3.m_Action.GetActionId(TriggerAction.TYPE.None)); } inputActionData3.m_StartHoldTime = 0f; if (this.m_ActiveHoldActionsByTriggerAction.ContainsKey((int)inputActionData3.m_TriggerAction)) { this.m_ActiveHoldActionsByTriggerAction.Remove((int)inputActionData3.m_TriggerAction); } } } Dictionary <string, List <InputActionData> > .Enumerator enumerator5; foreach (KeyValuePair <string, List <InputActionData> > keyValuePair2 in this.m_ActionsByAxis) { float axis = this.GetAxis(keyValuePair2.Key); keyValuePair2 = enumerator5.Current; foreach (InputActionData inputActionData4 in keyValuePair2.Value) { if (inputActionData4.m_ControllerType == GreenHellGame.Instance.m_Settings.m_ControllerType) { float num = Mathf.Max(0f, axis * (inputActionData4.m_Inverted ? -1f : 1f)); if (!inputActionData4.m_Analog) { if (inputActionData4.m_Value == 0f) { if (inputActionData4.m_AxisValue <= inputActionData4.m_Histeresis.x && num > inputActionData4.m_Histeresis.x) { if (inputActionData4.m_Type == InputsManager.InputActionType.Down) { if (inputActionData4.m_Hold == 0f) { this.OnAction(inputActionData4, pause); } else if (this.CanActivateHold(inputActionData4)) { inputActionData4.m_StartHoldTime = Time.time; if (!this.m_ActiveHoldActionsByTriggerAction.ContainsKey((int)inputActionData4.m_TriggerAction)) { this.m_ActiveHoldActionsByTriggerAction.Add((int)inputActionData4.m_TriggerAction, inputActionData4); } } inputActionData4.m_LastPressTime = Time.time; } inputActionData4.m_Value = 1f; } } else if (inputActionData4.m_AxisValue > inputActionData4.m_Histeresis.y && num <= inputActionData4.m_Histeresis.y) { if (inputActionData4.m_Type == InputsManager.InputActionType.Up) { this.OnAction(inputActionData4, pause); } inputActionData4.m_LastReleaseTime = Time.time; inputActionData4.m_StartHoldTime = 0f; inputActionData4.m_Value = 0f; } } if (num != inputActionData4.m_AxisValue) { inputActionData4.m_AxisValue = num; if (inputActionData4.m_Analog) { inputActionData4.m_Value = num; } } } } } foreach (KeyValuePair <string, List <InputActionData> > keyValuePair2 in this.m_ActionsByAxis) { this.GetAxis(keyValuePair2.Key); keyValuePair2 = enumerator5.Current; foreach (InputActionData inputActionData5 in keyValuePair2.Value) { if (inputActionData5.m_ControllerType == GreenHellGame.Instance.m_Settings.m_ControllerType && !inputActionData5.m_Analog && inputActionData5.m_Type == InputsManager.InputActionType.Down && inputActionData5.m_StartHoldTime > 0f && Time.time - inputActionData5.m_StartHoldTime >= inputActionData5.m_Hold) { this.OnAction(inputActionData5, pause); if (inputActionData5.m_TriggerAction != TriggerAction.TYPE.None) { this.m_ActiveActionsByInputAction.Remove(InputHelpers.GetActionId(inputActionData5.m_TriggerAction)); } else { this.m_ActiveActionsByInputAction.Remove(inputActionData5.m_Action.GetActionId(TriggerAction.TYPE.None)); } inputActionData5.m_StartHoldTime = 0f; if (this.m_ActiveHoldActionsByTriggerAction.ContainsKey((int)inputActionData5.m_TriggerAction)) { this.m_ActiveHoldActionsByTriggerAction.Remove((int)inputActionData5.m_TriggerAction); } } } } } }