/**
* Initializes the inputs and sets up a {@code Robot} that controls the mouse.
* @param c
*/
public InputHandler(Controller c) {
this.c = c;
GLWindow win = c.getWindow();
try {
robot = new Robot();
} catch (AWTException e) {
throw new RuntimeException("The program will not function properly with the current permissions");
}
win.addKeyListener(this);
win.addMouseListener(this);
focused = false;
mouseSensitivity = 1.0/45/200;
//Initialize keys
keyCode = new int[NUM_KEYS];
keyCode[0] = KeyEvent.VK_W;
keyCode[1] = KeyEvent.VK_S;
keyCode[2] = KeyEvent.VK_A;
keyCode[3] = KeyEvent.VK_D;
keyCode[4] = KeyEvent.VK_SHIFT;
keyCode[5] = KeyEvent.VK_Q;
keyCode[6] = KeyEvent.VK_E;
keyCode[7] = KeyEvent.VK_1;
keyCode[8] = KeyEvent.VK_2;
keyCode[9] = KeyEvent.VK_3;
keyCode[10] = KeyEvent.VK_4;
keyCode[11] = KeyEvent.VK_V;
keyCode[12] = KeyEvent.VK_SPACE;
keyCode[13] = KeyEvent.VK_R;
keyCode[14] = KeyEvent.VK_DELETE;
keyCode[15] = KeyEvent.VK_EQUALS;
keyCode[16] = KeyEvent.VK_MINUS;
keyCode[17] = KeyEvent.VK_P;
keyCode[18] = KeyEvent.VK_O;
keyCode[19] = KeyEvent.VK_5;
keyCode[20] = KeyEvent.VK_6;
keyCode[21] = KeyEvent.VK_CONTROL;
keyCode[22] = KeyEvent.VK_F1;
keyCode[23] = KeyEvent.VK_F2;
mouseButton = new int[NUM_MOUSE_BUTTONS];
mouseButton[0] = MouseEvent.BUTTON1;
mouseButton[1] = MouseEvent.BUTTON3;
//Initialize key and mouse control variables.
keyDown = new boolean[NUM_KEYS];
keyCanceled = new boolean[NUM_KEYS];
keyPressed = new boolean[NUM_KEYS];
keyHelper = new boolean[NUM_KEYS];
mouseDown = new boolean[NUM_MOUSE_BUTTONS];
mouseCanceled = new boolean[NUM_MOUSE_BUTTONS];
mousePressed = new boolean[NUM_MOUSE_BUTTONS];
mouseHelper = new boolean[NUM_MOUSE_BUTTONS];
for (int i=0; i
keyDown[i] = false;
keyCanceled[i] = false;
keyPressed[i] = false;
keyHelper[i] = false;
}
for (int i=0; i
mouseDown[i] = false;
mouseCanceled[i] = false;
mousePressed[i] = false;
mouseHelper[i] = false;
}
}