// Gets if the given key is not pressed public bool isKeyUp(KKL key) { for(int i= 0; i< keysHeld.Length; i++) { if(keysHeld[i]== key) return false; } return true; }
// Adds in a keyProc public bool addKeyProcessor(KKL key) { if(keyProcExists(key)) return false; // Variables int[] temp= new int[keyProc.Length+1]; for(int i= 0; i< keyProc.Length; i++) temp[i]= keyProc[i]; temp[keyProc.Length]= (int)key; keyProc= temp; return true; }
// Gets if the given key is down public bool isKeyDown(KKL key) { switch(key) { case KKL.ANY: return isAnyKeyDown(); case KKL.CTRL_BREAK: return kstate.IsKeyDown(Key.Pause); case KKL.BACKSPACE: return kstate.IsKeyDown(Key.Back); case KKL.TAB: return kstate.IsKeyDown(Key.Tab); case KKL.ENTER: return kstate.IsKeyDown(Key.Enter); case KKL.CLEAR: return kstate.IsKeyDown(Key.Clear); case KKL.SHIFT: return (kstate.IsKeyDown(Key.ShiftLeft) || kstate.IsKeyDown(Key.ShiftRight)); case KKL.CTRL: return (kstate.IsKeyDown(Key.ControlLeft) || kstate.IsKeyDown(Key.ControlRight)); case KKL.ALT: return (kstate.IsKeyDown(Key.AltLeft) || kstate.IsKeyDown(Key.AltRight)); case KKL.PAUSE: return kstate.IsKeyDown(Key.Pause); case KKL.CAPS_LOCK: return kstate.IsKeyDown(Key.CapsLock); case KKL.ESC: return kstate.IsKeyDown(Key.Escape); case KKL.SPACE: return kstate.IsKeyDown(Key.Space); case KKL.PAGE_UP: return kstate.IsKeyDown(Key.PageUp); case KKL.PAGE_DOWN: return kstate.IsKeyDown(Key.PageDown); case KKL.END: return kstate.IsKeyDown(Key.End); case KKL.HOME: return kstate.IsKeyDown(Key.Home); case KKL.LEFT: return kstate.IsKeyDown(Key.Left); case KKL.UP: return kstate.IsKeyDown(Key.Up); case KKL.RIGHT: return kstate.IsKeyDown(Key.Right); case KKL.DOWN: return kstate.IsKeyDown(Key.Down); case KKL.PRINT_SCREEN: return kstate.IsKeyDown(Key.PrintScreen); case KKL.INSERT: return kstate.IsKeyDown(Key.Insert); case KKL.DELETE: return kstate.IsKeyDown(Key.Delete); case KKL.NUM_0: return kstate.IsKeyDown(Key.Number0); case KKL.NUM_1: return kstate.IsKeyDown(Key.Number1); case KKL.NUM_2: return kstate.IsKeyDown(Key.Number2); case KKL.NUM_3: return kstate.IsKeyDown(Key.Number3); case KKL.NUM_4: return kstate.IsKeyDown(Key.Number4); case KKL.NUM_5: return kstate.IsKeyDown(Key.Number5); case KKL.NUM_6: return kstate.IsKeyDown(Key.Number6); case KKL.NUM_7: return kstate.IsKeyDown(Key.Number7); case KKL.NUM_8: return kstate.IsKeyDown(Key.Number8); case KKL.NUM_9: return kstate.IsKeyDown(Key.Number9); case KKL.A: return kstate.IsKeyDown(Key.A); case KKL.B: return kstate.IsKeyDown(Key.B); case KKL.C: return kstate.IsKeyDown(Key.C); case KKL.D: return kstate.IsKeyDown(Key.D); case KKL.E: return kstate.IsKeyDown(Key.E); case KKL.F: return kstate.IsKeyDown(Key.F); case KKL.G: return kstate.IsKeyDown(Key.G); case KKL.H: return kstate.IsKeyDown(Key.H); case KKL.I: return kstate.IsKeyDown(Key.I); case KKL.J: return kstate.IsKeyDown(Key.J); case KKL.K: return kstate.IsKeyDown(Key.K); case KKL.L: return kstate.IsKeyDown(Key.L); case KKL.M: return kstate.IsKeyDown(Key.M); case KKL.N: return kstate.IsKeyDown(Key.N); case KKL.O: return kstate.IsKeyDown(Key.O); case KKL.P: return kstate.IsKeyDown(Key.P); case KKL.Q: return kstate.IsKeyDown(Key.Q); case KKL.R: return kstate.IsKeyDown(Key.R); case KKL.S: return kstate.IsKeyDown(Key.S); case KKL.T: return kstate.IsKeyDown(Key.T); case KKL.U: return kstate.IsKeyDown(Key.U); case KKL.V: return kstate.IsKeyDown(Key.V); case KKL.W: return kstate.IsKeyDown(Key.W); case KKL.X: return kstate.IsKeyDown(Key.X); case KKL.Y: return kstate.IsKeyDown(Key.Y); case KKL.Z: return kstate.IsKeyDown(Key.Z); case KKL.L_WINDOWS: return kstate.IsKeyDown(Key.LWin); case KKL.R_WINDOWS: return kstate.IsKeyDown(Key.RWin); case KKL.SLEEP: return kstate.IsKeyDown(Key.Sleep); case KKL.NUMPAD_0: return kstate.IsKeyDown(Key.Keypad0); case KKL.NUMPAD_1: return kstate.IsKeyDown(Key.Keypad1); case KKL.NUMPAD_2: return kstate.IsKeyDown(Key.Keypad2); case KKL.NUMPAD_3: return kstate.IsKeyDown(Key.Keypad3); case KKL.NUMPAD_4: return kstate.IsKeyDown(Key.Keypad4); case KKL.NUMPAD_5: return kstate.IsKeyDown(Key.Keypad5); case KKL.NUMPAD_6: return kstate.IsKeyDown(Key.Keypad6); case KKL.NUMPAD_7: return kstate.IsKeyDown(Key.Keypad7); case KKL.NUMPAD_8: return kstate.IsKeyDown(Key.Keypad8); case KKL.NUMPAD_9: return kstate.IsKeyDown(Key.Keypad9); case KKL.MULTIPLY: return kstate.IsKeyDown(Key.KeypadMultiply); case KKL.ADD: return kstate.IsKeyDown(Key.KeypadAdd); case KKL.SUBTRACT: return kstate.IsKeyDown(Key.KeypadMinus); case KKL.DECIMAL_POINT: return kstate.IsKeyDown(Key.KeypadPeriod); case KKL.DIVIDE: return kstate.IsKeyDown(Key.KeypadDivide); case KKL.F1: return kstate.IsKeyDown(Key.F1); case KKL.F2: return kstate.IsKeyDown(Key.F2); case KKL.F3: return kstate.IsKeyDown(Key.F3); case KKL.F4: return kstate.IsKeyDown(Key.F4); case KKL.F5: return kstate.IsKeyDown(Key.F5); case KKL.F6: return kstate.IsKeyDown(Key.F6); case KKL.F7: return kstate.IsKeyDown(Key.F7); case KKL.F8: return kstate.IsKeyDown(Key.F8); case KKL.F9: return kstate.IsKeyDown(Key.F9); case KKL.F10: return kstate.IsKeyDown(Key.F10); case KKL.F11: return kstate.IsKeyDown(Key.F11); case KKL.F12: return kstate.IsKeyDown(Key.F12); case KKL.F13: return kstate.IsKeyDown(Key.F13); case KKL.F14: return kstate.IsKeyDown(Key.F14); case KKL.F15: return kstate.IsKeyDown(Key.F15); case KKL.F16: return kstate.IsKeyDown(Key.F16); case KKL.F17: return kstate.IsKeyDown(Key.F17); case KKL.F18: return kstate.IsKeyDown(Key.F18); case KKL.F19: return kstate.IsKeyDown(Key.F19); case KKL.F20: return kstate.IsKeyDown(Key.F20); case KKL.F21: return kstate.IsKeyDown(Key.F21); case KKL.F22: return kstate.IsKeyDown(Key.F22); case KKL.F23: return kstate.IsKeyDown(Key.F23); case KKL.F24: return kstate.IsKeyDown(Key.F24); case KKL.NUM_LOCK: return kstate.IsKeyDown(Key.NumLock); case KKL.SCROLL_LOCK: return kstate.IsKeyDown(Key.ScrollLock); case KKL.L_SHIFT: return kstate.IsKeyDown(Key.ShiftLeft); case KKL.R_SHIFT: return kstate.IsKeyDown(Key.ShiftRight); case KKL.L_CTRL: return kstate.IsKeyDown(Key.ControlLeft); case KKL.R_CTRL: return kstate.IsKeyDown(Key.ControlRight); case KKL.L_ALT: return kstate.IsKeyDown(Key.AltLeft); case KKL.R_ALT: return kstate.IsKeyDown(Key.AltRight); case KKL.SEMI_COLON: return kstate.IsKeyDown(Key.Semicolon); case KKL.PLUS: return kstate.IsKeyDown(Key.Plus); case KKL.COMMA: return kstate.IsKeyDown(Key.Comma); case KKL.MINUS: return kstate.IsKeyDown(Key.Minus); case KKL.PERIOD: return kstate.IsKeyDown(Key.Period); case KKL.FORWARD_SLASH: return kstate.IsKeyDown(Key.Slash); case KKL.TILDE: return kstate.IsKeyDown(Key.Tilde); case KKL.L_BRACKET: return kstate.IsKeyDown(Key.LBracket); case KKL.BACK_SLASH: return kstate.IsKeyDown(Key.BackSlash); case KKL.R_BRACKET: return kstate.IsKeyDown(Key.RBracket); case KKL.QUOTE: return kstate.IsKeyDown(Key.Quote); } return false; }
// Gets if the given key is down public bool this[KKL key] { get { return isKeyDown(key); } }
// Gets if the given key is up public bool isKeyUp(KKL key) { return !isKeyDown(key); }
// Gets if the given key is not pressed public bool isKeyUp(KKL key) { return keyboard.isKeyUp(key); }
// Gets if the given key is pressed public bool isKeyDown(KKL key) { return keyboard.isKeyDown(key); }
public KBI(int pmFlag, string pmName) { flag= (KKL)pmFlag; name= pmName; }
// Removes a keyProc with the given key public bool removeKeyProcessor(KKL key) { return removeKeyProcessor(getKeyProcIndex(key)); }
// Finds if the keyProc key exists already public bool keyProcExists(KKL key) { for(int i= 0; i< keyProc.Length; i++) { if(keyProc[i]== (int)key) return true; } return false; }
// Gets if the key was pressed public bool isKeyPressed(KKL key) { if((int)key== -8) return isAnyKeyPressed(); if(!exists((int)key)) add((int)key, new KeyState()); return states[getIndex((int)key)].isPressed(); }
// Gets the index of a keyProc public int getKeyProcIndex(KKL key) { for(int i= 0; i< keyProc.Length; i++) { if(keyProc[i]== (int)key) return i; } return -1; }