public static void KeyDown(KeyEventArgs e) { if (RedirectKeys && !e.KeyCode.Equals(keycodes[KeyInputs.escape]) && !e.KeyCode.Equals(keycodes[KeyInputs.console])) { if (DirectKeyCode != null) { DirectKeyCode.Invoke(e.KeyCode); } return; } KeyInputs k = keycodes.FirstOrDefault(x => x.Value == e.KeyCode).Key; //Reverse lookup for the key based on the value given by the keycode event if (keysHeld.ContainsKey(k)) //If it's a key that should be held with others { if (!keysHeld[k]) { keysHeld[k] = true; anyKeysHeld = true; } } else //If it's a one press key { if (ignoreKeys.Contains(k)) { return; } ManualKeys(new KeyInputs[] { k }); if (InputCall != null) { InputCall.Invoke(new KeyInputs[] { k }); } ignoreKeys.Add(k); } }
public static void KeyUp(KeyEventArgs e) { if (RedirectKeys && !e.KeyCode.Equals(Keys.Escape) && !e.KeyCode.Equals(Keys.Oemtilde)) { return; } KeyInputs k = keycodes.FirstOrDefault(x => x.Value == e.KeyCode).Key; //Reverse lookup for the key based on the value given by the keycode event if (keysHeld.ContainsKey(k)) { if (keysHeld[k]) { keysHeld[k] = false; bool newKeys = false; foreach (KeyInputs h in keysHeld.Keys) { newKeys = newKeys | keysHeld[h]; } anyKeysHeld = newKeys; } } else { if (ignoreKeys.Contains(k)) { ignoreKeys.Remove(k); } } }
private void WaitForKeyDown(KeyInputs key, Button button) { setKey = true; Cursor.visible = false; selectedKey = key; button.GetComponentInChildren <Text>().text = "> <"; }
public int AddKey(List <KeyCode> newKeyCode, Action newOnKeyAction, KeyInput.KeyStateEnum newInputMode = KeyInput.KeyStateEnum.KEY_HOLD, KeyInput.CheckingModeEnum newCheckingMode = KeyInput.CheckingModeEnum.CONJUNCTION, KeyInput.OccurrenceModeEnum newOccurrenceMode = KeyInput.OccurrenceModeEnum.KEY_HAS_OCCUR) { KeyInput newKeyInput = new KeyInput(newKeyCode, newInputMode, newCheckingMode, newOnKeyAction, newOccurrenceMode); newKeyInput.SetId(FreeId++); KeyInputs.Add(newKeyInput); return(newKeyInput.Id); }
public void RemoveKey(int idToRemove) { for (int i = KeyInputs.Count - 1; i >= 0; i--) { if (KeyInputs[i].Id == idToRemove) { KeyInputs.RemoveAt(i); return; } } }