diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameInput.java b/core/src/ru/deadsoftware/cavedroid/game/GameInput.java
index 3a5e3c4ff47044665b0d69cac4384f0c7bd7072c..3da4e2e10c44b28e88bfb0236878acab48c15de6 100644 (file)
import ru.deadsoftware.cavedroid.game.mobs.MobsController;
import ru.deadsoftware.cavedroid.game.mobs.Pig;
import ru.deadsoftware.cavedroid.game.mobs.Player;
+import ru.deadsoftware.cavedroid.game.objects.DropController;
+import ru.deadsoftware.cavedroid.game.world.GameWorld;
import ru.deadsoftware.cavedroid.misc.Assets;
import ru.deadsoftware.cavedroid.misc.ControlMode;
private final MainConfig mMainConfig;
private final GameWorld mGameWorld;
+ private final DropController mDropController;
private final MobsController mMobsController;
private final Player mPlayer;
@Inject
public GameInput(MainConfig mainConfig,
GameWorld gameWorld,
+ DropController dropController,
MobsController mobsController) {
mMainConfig = mainConfig;
mGameWorld = gameWorld;
+ mDropController = dropController;
mMobsController = mobsController;
mPlayer = mMobsController.getPlayer();
if (checkSwim()) {
mPlayer.swim = true;
} else if (mPlayer.canJump()) {
- mPlayer.getMove().add(0, -7);
+ mPlayer.getVelocity().add(0, -180);
} else if (!mPlayer.isFlyMode() && mPlayer.gameMode == 1) {
mPlayer.setFlyMode(true);
- mPlayer.getMove().y = 0;
+ mPlayer.getVelocity().y = 0;
} else if (mPlayer.isFlyMode()) {
- mPlayer.getMove().y = -GamePhysics.PL_SPEED;
+ mPlayer.getVelocity().y = -GamePhysics.PL_SPEED;
}
}
if (mControlMode == ControlMode.WALK || !mMainConfig.isTouch()) {
switch (keycode) {
case Input.Keys.A:
- mPlayer.getMove().x = -GamePhysics.PL_SPEED;
+ mPlayer.getVelocity().x = -GamePhysics.PL_SPEED;
mPlayer.setDir(Mob.Direction.LEFT);
if (mMainConfig.isTouch() && checkSwim()) {
mPlayer.swim = true;
}
break;
case Input.Keys.D:
- mPlayer.getMove().x = GamePhysics.PL_SPEED;
+ mPlayer.getVelocity().x = GamePhysics.PL_SPEED;
mPlayer.setDir(Mob.Direction.RIGHT);
if (mMainConfig.isTouch() && checkSwim()) {
mPlayer.swim = true;
break;
case Input.Keys.S:
case Input.Keys.CONTROL_LEFT:
- mPlayer.getMove().y = GamePhysics.PL_SPEED;
+ mPlayer.getVelocity().y = GamePhysics.PL_SPEED;
break;
}
} else {
mCurX += mPlayer.looksLeft() ? 1 : -1;
}
} else if (!mMainConfig.isTouch()) {
- mCurX = (int) (Gdx.input.getX() * (mMainConfig.getWidth() /
- Gdx.graphics.getWidth()) + gameRenderer.getCamX()) / 16;
+ final int tmpX = (int) (Gdx.input.getX() * (mMainConfig.getWidth() /
+ Gdx.graphics.getWidth()) + gameRenderer.getCamX());
+ mCurX = tmpX / 16;
mCurY = (int) (Gdx.input.getY() * (mMainConfig.getHeight() /
Gdx.graphics.getHeight()) + gameRenderer.getCamY()) / 16;
- if (mCurX < 0) {
+ if (tmpX < 0) {
mCurX--;
}
}
mTouchedDown = false;
} else {
if (insideHotbar(mTouchDownX, mTouchDownY)) {
-// CaveGame.GAME_STATE = GameState.CREATIVE_INV;
+ mMainConfig.setGameUiWindow(GameUiWindow.CREATIVE_INVENTORY);
mTouchedDown = false;
}
}
mGameWorld.placeToForeground(mCurX, mCurY, 8);
break;
-// case Input.Keys.ESCAPE:
-// case Input.Keys.BACK:
-// CaveGame.APP_STATE = AppState.SAVE;
-// CaveGame.GAME_STATE = GameState.PAUSE;
-// break;
+ case Input.Keys.ESCAPE:
+ case Input.Keys.BACK:
+ GameSaver.save(mMainConfig, mDropController, mMobsController, mGameWorld);
+ mMainConfig.getCaveGame().quitGame();
+ break;
case Input.Keys.F1:
mMainConfig.setShowInfo(!mMainConfig.isShowInfo());
switch (keycode) {
case Input.Keys.A:
case Input.Keys.D:
- mPlayer.getMove().x = 0;
+ mPlayer.getVelocity().x = 0;
if (mMainConfig.isTouch() && mPlayer.swim) {
mPlayer.swim = false;
}
case Input.Keys.SPACE:
case Input.Keys.CONTROL_LEFT:
if (mPlayer.isFlyMode()) {
- mPlayer.getMove().y = 0;
+ mPlayer.getVelocity().y = 0;
}
if (mPlayer.swim) {
mPlayer.swim = false;
}
}
- public void scrolled(int amount) {
+ public void scrolled(float amountX, float amountY) {
switch (mMainConfig.getGameUiWindow()) {
case NONE:
- mPlayer.slot += amount;
+ mPlayer.slot += (int) amountY;
if (mPlayer.slot < 0) {
mPlayer.slot = 8;
}
}
break;
case CREATIVE_INVENTORY:
- mCreativeScroll += amount;
+ mCreativeScroll += (int) amountY;
if (mCreativeScroll < 0) {
mCreativeScroll = 0;
}