DEADSOFTWARE

Remove guava
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / input / handler / keyboard / MoveCursorControlsModeKeyboardInputHandler.kt
index ac82cb8f62e6887a8be27ebf87b08361b14eadde..84c5b900cc5d12fdc2d217a5eee0326e716340e7 100644 (file)
@@ -1,59 +1,45 @@
 package ru.deadsoftware.cavedroid.game.input.handler.keyboard
 
-import com.badlogic.gdx.math.MathUtils
 import ru.deadsoftware.cavedroid.MainConfig
 import ru.deadsoftware.cavedroid.game.GameScope
-import ru.deadsoftware.cavedroid.game.input.IGameInputHandler
+import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
 import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
 import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
 import ru.deadsoftware.cavedroid.game.mobs.MobsController
-import ru.deadsoftware.cavedroid.game.mobs.Player
+import ru.deadsoftware.cavedroid.game.mobs.player.Player
 import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
 import javax.inject.Inject
 
 @GameScope
+@BindKeyboardInputHandler
 class MoveCursorControlsModeKeyboardInputHandler @Inject constructor(
     private val mainConfig: MainConfig,
     private val mobsController: MobsController,
     private val gameWorld: GameWorld,
-) : IGameInputHandler<KeyboardInputAction> {
+) : IKeyboardInputHandler {
 
     override fun checkConditions(action: KeyboardInputAction): Boolean {
         return mainConfig.isTouch &&
                 mobsController.player.controlMode == Player.ControlMode.CURSOR && action.isKeyDown &&
                 (action.actionKey is KeyboardInputActionKey.Left ||
                 action.actionKey is KeyboardInputActionKey.Right ||
-                        action.actionKey is KeyboardInputActionKey.Jump ||
+                        action.actionKey is KeyboardInputActionKey.Up ||
                         action.actionKey is KeyboardInputActionKey.Down)
     }
 
-    private fun checkCursorBounds() {
-        val player = mobsController.player
-        if (player.gameMode == 0) {
-            val minCursorX = player.mapX - SURVIVAL_CURSOR_RANGE
-            val maxCursorX = player.mapX + SURVIVAL_CURSOR_RANGE
-            val minCursorY = player.middleMapY - SURVIVAL_CURSOR_RANGE
-            val maxCursorY = player.middleMapY + SURVIVAL_CURSOR_RANGE
-
-            player.cursorX = MathUtils.clamp(player.cursorX, minCursorX, maxCursorX)
-            player.cursorY = MathUtils.clamp(player.cursorY, minCursorY, maxCursorY)
-        }
-
-        player.cursorY = MathUtils.clamp(player.cursorY, 0, gameWorld.height - 1)
-    }
-
     override fun handle(action: KeyboardInputAction) {
         val player = mobsController.player
 
         when (action.actionKey) {
             KeyboardInputActionKey.Left -> player.cursorX--
             KeyboardInputActionKey.Right -> player.cursorX++
-            KeyboardInputActionKey.Jump -> player.cursorY--
+            KeyboardInputActionKey.Up -> player.cursorY--
             KeyboardInputActionKey.Down -> player.cursorY++
             else -> return
         }
 
-        checkCursorBounds()
+        player.checkCursorBounds(gameWorld);
     }
 
     companion object {