DEADSOFTWARE

One GameProc object for everything
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / misc / InputHandlerGame.java
1 package ru.deadsoftware.cavecraft.misc;
3 import com.badlogic.gdx.Input;
4 import com.badlogic.gdx.InputProcessor;
5 import ru.deadsoftware.cavecraft.CaveGame;
6 import ru.deadsoftware.cavecraft.game.GameInput;
8 import static ru.deadsoftware.cavecraft.GameScreen.getHeight;
9 import static ru.deadsoftware.cavecraft.GameScreen.getWidth;
10 import static ru.deadsoftware.cavecraft.GameScreen.GP;
12 public class InputHandlerGame implements InputProcessor {
14 private GameInput gameInput;
16 public InputHandlerGame() {
17 this.gameInput = new GameInput();
18 }
20 @Override
21 public boolean keyDown(int keycode) {
22 gameInput.keyDown(keycode);
23 return false;
24 }
26 @Override
27 public boolean keyUp(int keycode) {
28 gameInput.keyUp(keycode);
29 return false;
30 }
32 @Override
33 public boolean keyTyped(char character) {
34 return false;
35 }
37 @Override
38 public boolean touchDown(int screenX, int screenY, int pointer, int button) {
39 screenX *= GP.renderer.getWidth() / getWidth();
40 screenY *= GP.renderer.getHeight() / getHeight();
42 if (CaveGame.TOUCH) {
43 if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 52 &&
44 screenY < GP.renderer.getHeight() - 26) {
45 if (GP.ctrlMode == 1) gameInput.keyDown(Input.Keys.W);
46 else gameInput.keyDown(Input.Keys.SPACE);
47 } else if (screenX > 0 && screenX < 26 && screenY > GP.renderer.getHeight() - 26) {
48 gameInput.keyDown(Input.Keys.A);
49 } else if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 26) {
50 if (GP.ctrlMode == 1) gameInput.keyDown(Input.Keys.S);
51 else gameInput.keyDown(Input.Keys.CONTROL_LEFT);
52 } else if (screenX > 52 && screenX < 78 && screenY > GP.renderer.getHeight() - 26) {
53 gameInput.keyDown(Input.Keys.D);
54 } else if (screenX > 78 && screenX < 104 && screenY > GP.renderer.getHeight() - 26) {
55 gameInput.keyDown(Input.Keys.ALT_LEFT);
56 } else if (screenX > GP.renderer.getWidth() - 52 && screenX < GP.renderer.getWidth() - 26 &&
57 screenY > GP.renderer.getHeight() - 26) {
58 gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT);
59 } else if (screenX > GP.renderer.getWidth() - 26 && screenY > screenY - 26) {
60 gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT);
61 } else {
62 gameInput.touchDown(screenX, screenY, -1);
63 }
64 } else {
65 gameInput.touchDown(screenX, screenY, button);
66 }
67 return false;
68 }
70 @Override
71 public boolean touchUp(int screenX, int screenY, int pointer, int button) {
72 screenX *= GP.renderer.getWidth() / getWidth();
73 screenY *= GP.renderer.getHeight() / getHeight();
74 if (CaveGame.TOUCH) {
75 if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 52 &&
76 screenY < GP.renderer.getHeight() - 26) {
77 if (GP.ctrlMode == 1) gameInput.keyUp(Input.Keys.W);
78 else gameInput.keyUp(Input.Keys.SPACE);
79 } else if (screenX > 0 && screenX < 26 && screenY > GP.renderer.getHeight() - 26) {
80 gameInput.keyUp(Input.Keys.A);
81 } else if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 26) {
82 if (GP.ctrlMode == 1) gameInput.keyUp(Input.Keys.S);
83 else gameInput.keyUp(Input.Keys.CONTROL_LEFT);
84 } else if (screenX > 52 && screenX < 78 && screenY > GP.renderer.getHeight() - 26) {
85 gameInput.keyUp(Input.Keys.D);
86 } else if (screenX > 78 && screenX < 104 && screenY > GP.renderer.getHeight() - 26) {
87 gameInput.keyUp(Input.Keys.ALT_LEFT);
88 } else if (screenX > GP.renderer.getWidth() - 52 && screenX < GP.renderer.getWidth() - 26 &&
89 screenY > GP.renderer.getHeight() - 26) {
90 gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT);
91 } else if (screenX > GP.renderer.getWidth() - 26 && screenY > screenY - 26) {
92 gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT);
93 } else {
94 gameInput.touchUp(screenX, screenY, -1);
95 }
96 } else {
97 gameInput.touchUp(screenX, screenY, button);
98 }
99 return false;
102 @Override
103 public boolean touchDragged(int screenX, int screenY, int pointer) {
104 screenX *= GP.renderer.getWidth() / getWidth();
105 screenY *= GP.renderer.getHeight() / getHeight();
106 if (GP.isKeyDown && (screenX > 78 || screenY < GP.renderer.getHeight() - 52)) {
107 gameInput.keyUp(GP.keyDownCode);
108 } else {
109 gameInput.touchDragged(screenX, screenY);
111 return false;
114 @Override
115 public boolean mouseMoved(int screenX, int screenY) {
116 return false;
119 @Override
120 public boolean scrolled(int amount) {
121 gameInput.scrolled(amount);
122 return false;