private int getGreatestDirection(KeyHandler keyHandler) { int greatest = 0; int time = keyHandler.getUpTime(); if (keyHandler.getDownTime() > time) { greatest = 1; time = keyHandler.getDownTime(); } if (keyHandler.getRightTime() > time) { greatest = 2; time = keyHandler.getRightTime(); } if (keyHandler.getLeftTime() > time) { greatest = 3; time = keyHandler.getLeftTime(); } if (time == 0) { return -1; } else { //Console.WriteLine("Greatest: " + greatest); return greatest; } }
public bool checkMove(GameInit gameInit, KeyHandler keyHandler, ContentHandler content) { int direction = getGreatestDirection(keyHandler); if (direction == 0) { gameInit.getParty().getPartyMembers()[0].setFacingDirection(0); if (keyHandler.getUpTime() < TURN_THRESHOLD) { return false; } else { if (checkHeight(gameInit, -1, 0) && checkAvailability(gameInit, -1, 0)) { return true; } else { return false; } } } else if (direction == 1) { gameInit.getParty().getPartyMembers()[0].setFacingDirection(1); if (keyHandler.getDownTime() < TURN_THRESHOLD) { return false; } else { if (checkHeight(gameInit, 1, 0) && checkAvailability(gameInit, 1, 0)) { return true; } else { return false; } } } else if (direction == 2) { gameInit.getParty().getPartyMembers()[0].setFacingDirection(2); if (keyHandler.getRightTime() < TURN_THRESHOLD) { return false; } else { if (checkHeight(gameInit, 0, -1) && checkAvailability(gameInit, 0, -1)) { return true; } else { return false; } } } else if (direction == 3) { gameInit.getParty().getPartyMembers()[0].setFacingDirection(3); if (keyHandler.getLeftTime() < TURN_THRESHOLD) { return false; } else { if (checkHeight(gameInit, 0, 1) && checkAvailability(gameInit, 0, 1)) { return true; } else { return false; } } } else { return false; } }