/// <summary> /// Sets the default key bindings /// </summary> public void Default() { binds[0] = new InputKeyboard(kbState, Keys.W); binds[1] = new InputKeyboard(kbState, Keys.S); binds[2] = new InputKeyboard(kbState, Keys.A); binds[3] = new InputKeyboard(kbState, Keys.D); binds[4] = new InputMouse(mState, MouseButton.Left); binds[5] = new InputMouse(mState, MouseButton.Right); binds[6] = new InputKeyboard(kbState, Keys.D1); binds[7] = new InputKeyboard(kbState, Keys.D2); binds[8] = new InputKeyboard(kbState, Keys.D3); binds[9] = new InputKeyboard(kbState, Keys.D4); binds[10] = new InputKeyboard(kbState, Keys.P); }
/// <summary> /// When called, it checks between previous states of both mouse and keyboard to bind the next key/button pressed to the specified action /// </summary> /// <param name="keyToBind">The action that you wish to be bound</param> public void Bind(Binds keyToBind) { //Previous states of mouse buttons ButtonState leftState, middleState, rightState; leftState = prevMState.LeftButton; middleState = prevMState.MiddleButton; rightState = prevMState.RightButton; Keys[] prevPressedKeys = prevKbState.GetPressedKeys(); //list of the key presses in the previous keyboard state Keys[] pressedKeys = kbState.GetPressedKeys(); //list of the key presses in the current keyboard state /* * Each case is for a different action * Creates an inputType object that's either mouse or keyboard depending on the input * Stores the inputType object in binds in its corresponding index * */ switch (keyToBind) { case Binds.Up: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard up = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[0] = up; } else if (leftState != mState.LeftButton) { InputMouse up = new InputMouse(mState, MouseButton.Left); binds[0] = up; } else if (middleState != mState.MiddleButton) { InputMouse up = new InputMouse(mState, MouseButton.Middle); binds[0] = up; } else if (rightState != mState.RightButton) { InputMouse up = new InputMouse(mState, MouseButton.Right); binds[0] = up; } else { break; } break; case Binds.Down: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard down = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[1] = down; } else if (leftState != mState.LeftButton) { InputMouse down = new InputMouse(mState, MouseButton.Left); binds[1] = down; } else if (middleState != mState.MiddleButton) { InputMouse down = new InputMouse(mState, MouseButton.Middle); binds[1] = down; } else if (rightState != mState.RightButton) { InputMouse down = new InputMouse(mState, MouseButton.Right); binds[1] = down; } else { break; } break; case Binds.Left: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard left = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[2] = left; } else if (leftState != mState.LeftButton) { InputMouse left = new InputMouse(mState, MouseButton.Left); binds[2] = left; } else if (middleState != mState.MiddleButton) { InputMouse left = new InputMouse(mState, MouseButton.Middle); binds[2] = left; } else if (rightState != mState.RightButton) { InputMouse left = new InputMouse(mState, MouseButton.Right); binds[2] = left; } else { break; } break; case Binds.Right: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard right = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[3] = right; } else if (leftState != mState.LeftButton) { InputMouse right = new InputMouse(mState, MouseButton.Left); binds[3] = right; } else if (middleState != mState.MiddleButton) { InputMouse right = new InputMouse(mState, MouseButton.Middle); binds[3] = right; } else if (rightState != mState.RightButton) { InputMouse right = new InputMouse(mState, MouseButton.Right); binds[3] = right; } else { break; } break; case Binds.Attack: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard attack = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[4] = attack; } else if (leftState != mState.LeftButton) { InputMouse attack = new InputMouse(mState, MouseButton.Left); binds[4] = attack; } else if (middleState != mState.MiddleButton) { InputMouse attack = new InputMouse(mState, MouseButton.Middle); binds[4] = attack; } else if (rightState != mState.RightButton) { InputMouse attack = new InputMouse(mState, MouseButton.Right); binds[4] = attack; } else { break; } break; case Binds.UseAbility: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard useAbility = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[5] = useAbility; } else if (leftState != mState.LeftButton) { InputMouse useAbility = new InputMouse(mState, MouseButton.Left); binds[5] = useAbility; } else if (middleState != mState.MiddleButton) { InputMouse useAbility = new InputMouse(mState, MouseButton.Middle); binds[5] = useAbility; } else if (rightState != mState.RightButton) { InputMouse useAbility = new InputMouse(mState, MouseButton.Right); binds[5] = useAbility; } else { break; } break; case Binds.Ability1: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard ability1 = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[6] = ability1; } else if (leftState != mState.LeftButton) { InputMouse ability1 = new InputMouse(mState, MouseButton.Left); binds[6] = ability1; } else if (middleState != mState.MiddleButton) { InputMouse ability1 = new InputMouse(mState, MouseButton.Middle); binds[6] = ability1; } else if (rightState != mState.RightButton) { InputMouse ability1 = new InputMouse(mState, MouseButton.Right); binds[6] = ability1; } else { break; } break; case Binds.Ability2: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard ability2 = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[7] = ability2; } else if (leftState != mState.LeftButton) { InputMouse ability2 = new InputMouse(mState, MouseButton.Left); binds[7] = ability2; } else if (middleState != mState.MiddleButton) { InputMouse ability2 = new InputMouse(mState, MouseButton.Middle); binds[7] = ability2; } else if (rightState != mState.RightButton) { InputMouse ability2 = new InputMouse(mState, MouseButton.Right); binds[7] = ability2; } else { break; } break; case Binds.Ability3: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard ability3 = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[8] = ability3; } else if (leftState != mState.LeftButton) { InputMouse ability3 = new InputMouse(mState, MouseButton.Left); binds[8] = ability3; } else if (middleState != mState.MiddleButton) { InputMouse ability3 = new InputMouse(mState, MouseButton.Middle); binds[8] = ability3; } else if (rightState != mState.RightButton) { InputMouse ability3 = new InputMouse(mState, MouseButton.Right); binds[8] = ability3; } else { break; } break; case Binds.Ability4: if (!(prevPressedKeys.Equals(pressedKeys))) { InputKeyboard ability4 = new InputKeyboard(kbState, pressedKeys[pressedKeys.Length - 1]); binds[9] = ability4; } else if (leftState != mState.LeftButton) { InputMouse ability4 = new InputMouse(mState, MouseButton.Left); binds[9] = ability4; } else if (middleState != mState.MiddleButton) { InputMouse ability4 = new InputMouse(mState, MouseButton.Middle); binds[9] = ability4; } else if (rightState != mState.RightButton) { InputMouse ability4 = new InputMouse(mState, MouseButton.Right); binds[9] = ability4; } else { break; } break; } }