DEADSOFTWARE

One GameProc object for everything
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / misc / InputHandlerGame.java
index e3778de8fa8db68147698774ae176524c36f1a0d..b8460e018de1eab888bf21fe902043ba853c0c4b 100644 (file)
@@ -4,23 +4,17 @@ import com.badlogic.gdx.Input;
 import com.badlogic.gdx.InputProcessor;
 import ru.deadsoftware.cavecraft.CaveGame;
 import ru.deadsoftware.cavecraft.game.GameInput;
-import ru.deadsoftware.cavecraft.game.GameProc;
 
 import static ru.deadsoftware.cavecraft.GameScreen.getHeight;
 import static ru.deadsoftware.cavecraft.GameScreen.getWidth;
+import static ru.deadsoftware.cavecraft.GameScreen.GP;
 
 public class InputHandlerGame implements InputProcessor {
 
-    private GameProc gp;
     private GameInput gameInput;
 
-    private float tWidth, tHeight;
-
-    public InputHandlerGame(GameProc gp) {
-        this.gp = gp;
-        this.gameInput = new GameInput(gp);
-        tWidth = gp.renderer.getWidth();
-        tHeight = gp.renderer.getHeight();
+    public InputHandlerGame() {
+        this.gameInput = new GameInput();
     }
 
     @Override
@@ -42,27 +36,27 @@ public class InputHandlerGame implements InputProcessor {
 
     @Override
     public boolean touchDown(int screenX, int screenY, int pointer, int button) {
-        int tx = (int) (screenX * tWidth / getWidth());
-        int ty = (int) (screenY * tHeight / getHeight());
-        screenX *= gp.renderer.getWidth() / getWidth();
-        screenY *= gp.renderer.getHeight() / getHeight();
+        screenX *= GP.renderer.getWidth() / getWidth();
+        screenY *= GP.renderer.getHeight() / getHeight();
 
         if (CaveGame.TOUCH) {
-            if (tx > 26 && tx < 52 && ty > tHeight - 52 && ty < tHeight - 26) {
-                if (gp.ctrlMode == 1) gameInput.keyDown(Input.Keys.W);
+            if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 52 &&
+                    screenY < GP.renderer.getHeight() - 26) {
+                if (GP.ctrlMode == 1) gameInput.keyDown(Input.Keys.W);
                 else gameInput.keyDown(Input.Keys.SPACE);
-            } else if (tx > 0 && tx < 26 && ty > tHeight - 26) {
+            } else if (screenX > 0 && screenX < 26 && screenY > GP.renderer.getHeight() - 26) {
                 gameInput.keyDown(Input.Keys.A);
-            } else if (tx > 26 && tx < 52 && ty > tHeight - 26) {
-                if (gp.ctrlMode == 1) gameInput.keyDown(Input.Keys.S);
+            } else if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 26) {
+                if (GP.ctrlMode == 1) gameInput.keyDown(Input.Keys.S);
                 else gameInput.keyDown(Input.Keys.CONTROL_LEFT);
-            } else if (tx > 52 && tx < 78 && ty > tHeight - 26) {
+            } else if (screenX > 52 && screenX < 78 && screenY > GP.renderer.getHeight() - 26) {
                 gameInput.keyDown(Input.Keys.D);
-            } else if (tx > 78 && tx < 104 && ty > tHeight - 26) {
+            } else if (screenX > 78 && screenX < 104 && screenY > GP.renderer.getHeight() - 26) {
                 gameInput.keyDown(Input.Keys.ALT_LEFT);
-            } else if (tx > tWidth - 52 && tx < tWidth - 26 && ty > tHeight - 26) {
+            } else if (screenX > GP.renderer.getWidth() - 52 && screenX < GP.renderer.getWidth() - 26 &&
+                    screenY > GP.renderer.getHeight() - 26) {
                 gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT);
-            } else if (tx > tWidth - 26 && screenY > ty - 26) {
+            } else if (screenX > GP.renderer.getWidth() - 26 && screenY > screenY - 26) {
                 gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT);
             } else {
                 gameInput.touchDown(screenX, screenY, -1);
@@ -75,26 +69,26 @@ public class InputHandlerGame implements InputProcessor {
 
     @Override
     public boolean touchUp(int screenX, int screenY, int pointer, int button) {
-        int tx = (int) (screenX * tWidth / getWidth());
-        int ty = (int) (screenY * tHeight / getHeight());
-        screenX *= gp.renderer.getWidth() / getWidth();
-        screenY *= gp.renderer.getHeight() / getHeight();
+        screenX *= GP.renderer.getWidth() / getWidth();
+        screenY *= GP.renderer.getHeight() / getHeight();
         if (CaveGame.TOUCH) {
-            if (tx > 26 && tx < 52 && ty > tHeight - 52 && ty < tHeight - 26) {
-                if (gp.ctrlMode == 1) gameInput.keyUp(Input.Keys.W);
+            if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 52 &&
+                    screenY < GP.renderer.getHeight() - 26) {
+                if (GP.ctrlMode == 1) gameInput.keyUp(Input.Keys.W);
                 else gameInput.keyUp(Input.Keys.SPACE);
-            } else if (tx > 0 && tx < 26 && ty > tHeight - 26) {
+            } else if (screenX > 0 && screenX < 26 && screenY > GP.renderer.getHeight() - 26) {
                 gameInput.keyUp(Input.Keys.A);
-            } else if (tx > 26 && tx < 52 && ty > tHeight - 26) {
-                if (gp.ctrlMode == 1) gameInput.keyUp(Input.Keys.S);
+            } else if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 26) {
+                if (GP.ctrlMode == 1) gameInput.keyUp(Input.Keys.S);
                 else gameInput.keyUp(Input.Keys.CONTROL_LEFT);
-            } else if (tx > 52 && tx < 78 && ty > tHeight - 26) {
+            } else if (screenX > 52 && screenX < 78 && screenY > GP.renderer.getHeight() - 26) {
                 gameInput.keyUp(Input.Keys.D);
-            } else if (tx > 78 && tx < 104 && ty > tHeight - 26) {
+            } else if (screenX > 78 && screenX < 104 && screenY > GP.renderer.getHeight() - 26) {
                 gameInput.keyUp(Input.Keys.ALT_LEFT);
-            } else if (tx > tWidth - 52 && tx < tWidth - 26 && ty > tHeight - 26) {
+            } else if (screenX > GP.renderer.getWidth() - 52 && screenX < GP.renderer.getWidth() - 26 &&
+                    screenY > GP.renderer.getHeight() - 26) {
                 gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT);
-            } else if (tx > tWidth - 26 && screenY > ty - 26) {
+            } else if (screenX > GP.renderer.getWidth() - 26 && screenY > screenY - 26) {
                 gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT);
             } else {
                 gameInput.touchUp(screenX, screenY, -1);
@@ -107,10 +101,10 @@ public class InputHandlerGame implements InputProcessor {
 
     @Override
     public boolean touchDragged(int screenX, int screenY, int pointer) {
-        screenX *= gp.renderer.getWidth() / getWidth();
-        screenY *= gp.renderer.getHeight() / getHeight();
-        if (gp.isKeyDown && (screenX > 78 || screenY < gp.renderer.getHeight() - 52)) {
-            gameInput.keyUp(gp.keyDownCode);
+        screenX *= GP.renderer.getWidth() / getWidth();
+        screenY *= GP.renderer.getHeight() / getHeight();
+        if (GP.isKeyDown && (screenX > 78 || screenY < GP.renderer.getHeight() - 52)) {
+            gameInput.keyUp(GP.keyDownCode);
         } else {
             gameInput.touchDragged(screenX, screenY);
         }
@@ -119,9 +113,6 @@ public class InputHandlerGame implements InputProcessor {
 
     @Override
     public boolean mouseMoved(int screenX, int screenY) {
-        screenX *= gp.renderer.getWidth() / getWidth();
-        screenY *= gp.renderer.getHeight() / getHeight();
-        gameInput.mouseMoved(screenX, screenY);
         return false;
     }
 
@@ -130,4 +121,4 @@ public class InputHandlerGame implements InputProcessor {
         gameInput.scrolled(amount);
         return false;
     }
-}
\ No newline at end of file
+}