diff --git a/core/src/ru/deadsoftware/cavedroid/misc/InputHandlerGame.java b/core/src/ru/deadsoftware/cavedroid/game/GameInputProcessor.java
similarity index 64%
rename from core/src/ru/deadsoftware/cavedroid/misc/InputHandlerGame.java
rename to core/src/ru/deadsoftware/cavedroid/game/GameInputProcessor.java
index 6a7e4d388f9dce5c22a137331361039887d7422f..faafd63959c4ede000938d27d503ce13ac0c6f92 100644 (file)
rename from core/src/ru/deadsoftware/cavedroid/misc/InputHandlerGame.java
rename to core/src/ru/deadsoftware/cavedroid/game/GameInputProcessor.java
index 6a7e4d388f9dce5c22a137331361039887d7422f..faafd63959c4ede000938d27d503ce13ac0c6f92 100644 (file)
-package ru.deadsoftware.cavedroid.misc;
+package ru.deadsoftware.cavedroid.game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.InputAdapter;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.utils.JsonValue;
-import ru.deadsoftware.cavedroid.CaveGame;
-import ru.deadsoftware.cavedroid.GameScreen;
+import ru.deadsoftware.cavedroid.MainConfig;
import ru.deadsoftware.cavedroid.game.objects.TouchButton;
+import ru.deadsoftware.cavedroid.misc.Assets;
-import static com.badlogic.gdx.utils.ObjectMap.Entry;
-import static ru.deadsoftware.cavedroid.GameScreen.GP;
-
-public class InputHandlerGame extends InputAdapter {
+import javax.inject.Inject;
- private static TouchButton nullButton = new TouchButton(null, -1, true);
+import static com.badlogic.gdx.utils.ObjectMap.Entry;
- public InputHandlerGame() {
+@GameScope
+public class GameInputProcessor extends InputAdapter {
+
+ private static final TouchButton nullButton = new TouchButton(null, -1, true);
+
+ private final GameInput mGameInput;
+ private final GameRenderer mGameRenderer;
+ private final MainConfig mMainConfig;
+
+ @Inject
+ public GameInputProcessor(GameInput gameInput,
+ GameRenderer gameRenderer,
+ MainConfig mainConfig) {
+ mGameInput = gameInput;
+ mGameRenderer = gameRenderer;
+ mMainConfig = mainConfig;
+
loadTouchButtonsFromJSON();
}
String name = key.getString("key");
int code = mouse ? getMouseKey(name) : Input.Keys.valueOf(name);
if (x < 0) {
- x = GP.renderer.getWidth() + x;
+ x = mGameRenderer.getWidth() + x;
}
if (y < 0) {
- y = GP.renderer.getHeight() + y;
+ y = mGameRenderer.getHeight() + y;
}
Assets.guiMap.put(key.name(), new TouchButton(new Rectangle(x, y, w, h), code, mouse));
}
}
private float transformScreenX(int screenX) {
- return GP.renderer.getWidth() / GameScreen.getWidth() * screenX;
+ return mGameRenderer.getWidth() / Gdx.graphics.getWidth() * screenX;
}
private float transformScreenY(int screenY) {
- return GP.renderer.getHeight() / GameScreen.getHeight() * screenY;
+ return mGameRenderer.getHeight() / Gdx.graphics.getHeight() * screenY;
}
private TouchButton getTouchedKey(float touchX, float touchY) {
- for (Entry entry : Assets.guiMap) {
- TouchButton button = (TouchButton) entry.value;
+ for (Entry<String, TouchButton> entry : Assets.guiMap) {
+ TouchButton button = entry.value;
if (button.getRect().contains(touchX, touchY)) {
return button;
}
@Override
public boolean keyDown(int keycode) {
- GP.input.keyDown(keycode);
+ mGameInput.keyDown(keycode);
return false;
}
@Override
public boolean keyUp(int keycode) {
- GP.input.keyUp(keycode);
+ mGameInput.keyUp(keycode);
return false;
}
float touchX = transformScreenX(screenX);
float touchY = transformScreenY(screenY);
- if (CaveGame.TOUCH) {
+ if (mMainConfig.isTouch()) {
TouchButton touchedKey = getTouchedKey(touchX, touchY);
if (touchedKey.isMouse()) {
- GP.input.touchDown(touchX, touchY, touchedKey.getCode());
+ mGameInput.touchDown(touchX, touchY, touchedKey.getCode());
} else {
- GP.input.keyDown(touchedKey.getCode());
+ mGameInput.keyDown(touchedKey.getCode());
}
} else {
- GP.input.touchDown(touchX, touchY, button);
+ mGameInput.touchDown(touchX, touchY, button);
}
return false;
}
float touchX = transformScreenX(screenX);
float touchY = transformScreenY(screenY);
- if (CaveGame.TOUCH) {
+ if (mMainConfig.isTouch()) {
TouchButton touchedKey = getTouchedKey(touchX, touchY);
if (touchedKey.isMouse()) {
- GP.input.touchUp(touchX, touchY, touchedKey.getCode());
+ mGameInput.touchUp(touchX, touchY, touchedKey.getCode());
} else {
- GP.input.keyUp(GP.input.getKeyDownCode());
+ mGameInput.keyUp(mGameInput.getKeyDownCode());
}
} else {
- GP.input.touchUp(touchX, touchY, button);
+ mGameInput.touchUp(touchX, touchY, button);
}
return false;
}
public boolean touchDragged(int screenX, int screenY, int pointer) {
float touchX = transformScreenX(screenX);
float touchY = transformScreenY(screenY);
- if (CaveGame.TOUCH && GP.input.isKeyDown()) {
+ if (mMainConfig.isTouch() && mGameInput.isKeyDown()) {
if (getTouchedKey(touchX, touchY).getCode() == -1) {
- GP.input.keyUp(GP.input.getKeyDownCode());
+ mGameInput.keyUp(mGameInput.getKeyDownCode());
}
} else {
- GP.input.touchDragged(touchX, touchY);
+ mGameInput.touchDragged(touchX, touchY);
}
return false;
}
@Override
public boolean scrolled(int amount) {
- GP.input.scrolled(amount);
+ mGameInput.scrolled(amount);
return false;
}
}