DEADSOFTWARE

6a912ac355f4d5145e144d68d84b6d785cfc8ebf
[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;
7 import ru.deadsoftware.cavecraft.game.GameProc;
9 import static ru.deadsoftware.cavecraft.GameScreen.getHeight;
10 import static ru.deadsoftware.cavecraft.GameScreen.getWidth;
12 public class InputHandlerGame implements InputProcessor {
14 private GameProc gp;
15 private GameInput gameInput;
17 public InputHandlerGame(GameProc gp) {
18 this.gp = gp;
19 this.gameInput = new GameInput(gp);
20 }
22 @Override
23 public boolean keyDown(int keycode) {
24 gameInput.keyDown(keycode);
25 return false;
26 }
28 @Override
29 public boolean keyUp(int keycode) {
30 gameInput.keyUp(keycode);
31 return false;
32 }
34 @Override
35 public boolean keyTyped(char character) {
36 return false;
37 }
39 @Override
40 public boolean touchDown(int screenX, int screenY, int pointer, int button) {
41 screenX *= gp.renderer.getWidth() / getWidth();
42 screenY *= gp.renderer.getHeight() / getHeight();
44 if (CaveGame.TOUCH) {
45 if (screenX > 26 && screenX < 52 && screenY > gp.renderer.getHeight() - 52 &&
46 screenY < gp.renderer.getHeight() - 26) {
47 if (gp.ctrlMode == 1) gameInput.keyDown(Input.Keys.W);
48 else gameInput.keyDown(Input.Keys.SPACE);
49 } else if (screenX > 0 && screenX < 26 && screenY > gp.renderer.getHeight() - 26) {
50 gameInput.keyDown(Input.Keys.A);
51 } else if (screenX > 26 && screenX < 52 && screenY > gp.renderer.getHeight() - 26) {
52 if (gp.ctrlMode == 1) gameInput.keyDown(Input.Keys.S);
53 else gameInput.keyDown(Input.Keys.CONTROL_LEFT);
54 } else if (screenX > 52 && screenX < 78 && screenY > gp.renderer.getHeight() - 26) {
55 gameInput.keyDown(Input.Keys.D);
56 } else if (screenX > 78 && screenX < 104 && screenY > gp.renderer.getHeight() - 26) {
57 gameInput.keyDown(Input.Keys.ALT_LEFT);
58 } else if (screenX > gp.renderer.getWidth() - 52 && screenX < gp.renderer.getWidth() - 26 &&
59 screenY > gp.renderer.getHeight() - 26) {
60 gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT);
61 } else if (screenX > gp.renderer.getWidth() - 26 && screenY > screenY - 26) {
62 gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT);
63 } else {
64 gameInput.touchDown(screenX, screenY, -1);
65 }
66 } else {
67 gameInput.touchDown(screenX, screenY, button);
68 }
69 return false;
70 }
72 @Override
73 public boolean touchUp(int screenX, int screenY, int pointer, int button) {
74 screenX *= gp.renderer.getWidth() / getWidth();
75 screenY *= gp.renderer.getHeight() / getHeight();
76 if (CaveGame.TOUCH) {
77 if (screenX > 26 && screenX < 52 && screenY > gp.renderer.getHeight() - 52 &&
78 screenY < gp.renderer.getHeight() - 26) {
79 if (gp.ctrlMode == 1) gameInput.keyUp(Input.Keys.W);
80 else gameInput.keyUp(Input.Keys.SPACE);
81 } else if (screenX > 0 && screenX < 26 && screenY > gp.renderer.getHeight() - 26) {
82 gameInput.keyUp(Input.Keys.A);
83 } else if (screenX > 26 && screenX < 52 && screenY > gp.renderer.getHeight() - 26) {
84 if (gp.ctrlMode == 1) gameInput.keyUp(Input.Keys.S);
85 else gameInput.keyUp(Input.Keys.CONTROL_LEFT);
86 } else if (screenX > 52 && screenX < 78 && screenY > gp.renderer.getHeight() - 26) {
87 gameInput.keyUp(Input.Keys.D);
88 } else if (screenX > 78 && screenX < 104 && screenY > gp.renderer.getHeight() - 26) {
89 gameInput.keyUp(Input.Keys.ALT_LEFT);
90 } else if (screenX > gp.renderer.getWidth() - 52 && screenX < gp.renderer.getWidth() - 26 &&
91 screenY > gp.renderer.getHeight() - 26) {
92 gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT);
93 } else if (screenX > gp.renderer.getWidth() - 26 && screenY > screenY - 26) {
94 gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT);
95 } else {
96 gameInput.touchUp(screenX, screenY, -1);
97 }
98 } else {
99 gameInput.touchUp(screenX, screenY, button);
101 return false;
104 @Override
105 public boolean touchDragged(int screenX, int screenY, int pointer) {
106 screenX *= gp.renderer.getWidth() / getWidth();
107 screenY *= gp.renderer.getHeight() / getHeight();
108 if (gp.isKeyDown && (screenX > 78 || screenY < gp.renderer.getHeight() - 52)) {
109 gameInput.keyUp(gp.keyDownCode);
110 } else {
111 gameInput.touchDragged(screenX, screenY);
113 return false;
116 @Override
117 public boolean mouseMoved(int screenX, int screenY) {
118 return false;
121 @Override
122 public boolean scrolled(int amount) {
123 gameInput.scrolled(amount);
124 return false;