/// <summary> /// Tos the input combination. /// </summary> /// <param name="combos">Combos.</param> /// <param name="input">Input.</param> void toInputCombination(InputCombination combos, InputAction input) { if (combos.numActions + 1 > maxCombosNum || (combos.numActions == 1 && combos.GetActionAt(0).getCode(_playerSelected.Device) == 0)) { combos.Clear(); } combos.Add(input); }
/// <summary> /// Resolves empty or None input or restricts input to max num of combinaition(maxCombosNum) /// </summary> /// <param name="combos">Combos. ex. w+Mouse1(x2)+Joystick1Button3(-)</param> /// <param name="input">Input.</param> void toInputCombination(InputCombination combos, InputAction input) { if (combos.numActions + 1 > maxCombosNum || (combos.numActions == 1 && combos.GetActionAt(0).getCode(_deviceByProfile) == 0)) { combos.Clear(); } combos.Add(input); //Debug.Log(input); }
/// <summary> /// Fill StringBuilde with StateName=Hash,...values /// </summary> /// <returns></returns> StringBuilder HashStateInputsToStringBuilder() { Dictionary <int, InputState> stateInputsCurrent; List <int> inputStatesToBeRemoved; List <string> profilesToBeRemoved; StringBuilder statesStringBuilder; statesStringBuilder = new StringBuilder(); Dictionary <int, bool> stateInputsCombined = new Dictionary <int, bool> (); int numPlayers = settings.Players.Length; for (int i = 0; i < numPlayers; i++) { profilesToBeRemoved = new List <string> (); foreach (var DeviceProfileHashStateInput in settings.Players[i].DeviceProfileStateInputs) { stateInputsCurrent = DeviceProfileHashStateInput.Value; if (stateInputsCurrent.Count == 0) { profilesToBeRemoved.Add(DeviceProfileHashStateInput.Key); continue; } inputStatesToBeRemoved = new List <int> (); //Filter foreach (var HashStateInput in stateInputsCurrent) { //fill String Builder with unique StateInputs if (!stateInputsCombined.ContainsKey(HashStateInput.Key)) { stateInputsCombined [HashStateInput.Key] = true; statesStringBuilder.Append("\t" + HashStateInput.Value.name.Replace(" ", "_") + "=" + HashStateInput.Key + ",\n\r"); } InputCombination combos = HashStateInput.Value.combinations [0]; if (combos != null && combos.GetActionAt(0).codeString == "None") { combos.Clear(); inputStatesToBeRemoved.Add(HashStateInput.Key); } combos = HashStateInput.Value.combinations [1]; if (combos != null && combos.GetActionAt(0).codeString == "None") { combos.Clear(); HashStateInput.Value.combinations [1] = null; } } //remove those with "None" as Primary combination foreach (var key in inputStatesToBeRemoved) { stateInputsCurrent.Remove(key); } } //remove empty profiles foreach (var key in profilesToBeRemoved) { settings.Players [i].DeviceProfileStateInputs.Remove(key); } } //end for Players return(statesStringBuilder); }