X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameInput.java;h=3f9b77322431e0275640edd3f12f6bf7d9b71626;hb=3992892d92be0c4ea654de3b4e10c32bf4552d9c;hp=3a5e3c4ff47044665b0d69cac4384f0c7bd7072c;hpb=f4d52e3e4a3712050532786fca0aded5ff8b5a03;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameInput.java b/core/src/ru/deadsoftware/cavedroid/game/GameInput.java index 3a5e3c4..3f9b773 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameInput.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameInput.java @@ -10,6 +10,7 @@ import ru.deadsoftware.cavedroid.game.mobs.Mob; 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.misc.Assets; import ru.deadsoftware.cavedroid.misc.ControlMode; @@ -22,6 +23,7 @@ public class GameInput { private final MainConfig mMainConfig; private final GameWorld mGameWorld; + private final DropController mDropController; private final MobsController mMobsController; private final Player mPlayer; @@ -45,9 +47,11 @@ public class GameInput { @Inject public GameInput(MainConfig mainConfig, GameWorld gameWorld, + DropController dropController, MobsController mobsController) { mMainConfig = mainConfig; mGameWorld = gameWorld; + mDropController = dropController; mMobsController = mobsController; mPlayer = mMobsController.getPlayer(); @@ -63,12 +67,12 @@ public class GameInput { if (checkSwim()) { mPlayer.swim = true; } else if (mPlayer.canJump()) { - mPlayer.getMove().add(0, -7); + mPlayer.getVelocity().add(0, -7); } 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; } } @@ -85,14 +89,14 @@ public class GameInput { 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; @@ -104,7 +108,7 @@ public class GameInput { break; case Input.Keys.S: case Input.Keys.CONTROL_LEFT: - mPlayer.getMove().y = GamePhysics.PL_SPEED; + mPlayer.getVelocity().y = GamePhysics.PL_SPEED; break; } } else { @@ -243,7 +247,7 @@ public class GameInput { mTouchedDown = false; } else { if (insideHotbar(mTouchDownX, mTouchDownY)) { -// CaveGame.GAME_STATE = GameState.CREATIVE_INV; + mMainConfig.setGameUiWindow(GameUiWindow.CREATIVE_INVENTORY); mTouchedDown = false; } } @@ -291,11 +295,11 @@ public class GameInput { 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()); @@ -311,7 +315,7 @@ public class GameInput { 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; } @@ -322,7 +326,7 @@ public class GameInput { 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; @@ -396,10 +400,10 @@ public class GameInput { } } - 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; } @@ -408,7 +412,7 @@ public class GameInput { } break; case CREATIVE_INVENTORY: - mCreativeScroll += amount; + mCreativeScroll += (int) amountY; if (mCreativeScroll < 0) { mCreativeScroll = 0; }