private void checkKeyboard() { KeyboardState keybState = Keyboard.GetState(); if (currentPlayer.isInventoryOpen()) { if (keybState.IsKeyDown(Keys.I)) { if (keyReleased) { currentPlayer.openCloseInventory(); } } else { if (keyReleased) { currentPlayer.handleInventoryInput(keybState); } } } else if (constructionMenuOpen) { if (keyReleased) { if (keybState.IsKeyDown(Keys.C)) { constructionMenuOpen = false; } else { conMenu.handleKeyPress(keybState); } } } else { if (keybState.IsKeyDown(Keys.Escape)) { Exit(); } if (keybState.IsKeyDown(Keys.RightControl)) { //attack. if (!attacking) { performAttack(); } } if (keybState.IsKeyDown(Keys.Left)) { if (!willCollide(currentPlayer.getNextPos(Player.direction.Left), currentPlayer.getTexture())) { if (!currentMap.checkAndMoveViewport(currentPlayer.getNextPos(Player.direction.Left), currentPlayer.getCurrentPos())) { currentPlayer.move(Player.direction.Left); if (attacking) { attackingWeaponPosition = new Vector2(currentPlayer.getCurrentPos().X + currentPlayer.getTexture().Width - 20, currentPlayer.getCurrentPos().Y + 72); } } } } if (keybState.IsKeyDown(Keys.Right)) { if (!willCollide(currentPlayer.getNextPos(Player.direction.Right), currentPlayer.getTexture())) { if (!currentMap.checkAndMoveViewport(currentPlayer.getNextPos(Player.direction.Right), currentPlayer.getCurrentPos())) { currentPlayer.move(Player.direction.Right); if (attacking) { attackingWeaponPosition = new Vector2(currentPlayer.getCurrentPos().X + currentPlayer.getTexture().Width - 20, currentPlayer.getCurrentPos().Y + 72); } } } } if (keybState.IsKeyDown(Keys.Up)) { if (!willCollide(currentPlayer.getNextPos(Player.direction.Up), currentPlayer.getTexture())) { if (!currentMap.checkAndMoveViewport(currentPlayer.getNextPos(Player.direction.Up), currentPlayer.getCurrentPos())) { currentPlayer.move(Player.direction.Up); if (attacking) { attackingWeaponPosition = new Vector2(currentPlayer.getCurrentPos().X + currentPlayer.getTexture().Width - 20, currentPlayer.getCurrentPos().Y + 72); } } } } if (keybState.IsKeyDown(Keys.Down)) { if (!willCollide(currentPlayer.getNextPos(Player.direction.Down), currentPlayer.getTexture())) { if (!currentMap.checkAndMoveViewport(currentPlayer.getNextPos(Player.direction.Down), currentPlayer.getCurrentPos())) { currentPlayer.move(Player.direction.Down); if (attacking) { attackingWeaponPosition = new Vector2(currentPlayer.getCurrentPos().X + currentPlayer.getTexture().Width - 20, currentPlayer.getCurrentPos().Y + 72); } } } } if (keybState.IsKeyDown(Keys.I)) { if (keyReleased) { currentPlayer.openCloseInventory(); } } if (keybState.IsKeyDown(Keys.Space)) { currentPlayer.interactWithAdjacentObj(); } if (keybState.IsKeyDown(Keys.C)) { if (keyReleased) { constructionMenuOpen = true; } } } if (keybState.GetPressedKeys().Count() == 0) { keyReleased = true; } else { keyReleased = false; } }