DEADSOFTWARE

Update README
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / input / handler / mouse / AttackMouseInputHandler.kt
1 package ru.deadsoftware.cavedroid.game.input.handler.mouse
3 import ru.deadsoftware.cavedroid.game.GameScope
4 import ru.deadsoftware.cavedroid.game.GameUiWindow
5 import ru.deadsoftware.cavedroid.game.input.IGameInputHandler
6 import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
7 import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
8 import ru.deadsoftware.cavedroid.game.input.isInsideHotbar
9 import ru.deadsoftware.cavedroid.game.mobs.MobsController
10 import ru.deadsoftware.cavedroid.game.windows.GameWindowsManager
11 import ru.deadsoftware.cavedroid.game.world.GameWorld
12 import javax.inject.Inject
14 @GameScope
15 class AttackMouseInputHandler @Inject constructor(
16 private val mobsController: MobsController,
17 private val gameWorld: GameWorld,
18 private val gameWindowsManager: GameWindowsManager
19 ) : IGameInputHandler<MouseInputAction> {
21 override fun checkConditions(action: MouseInputAction): Boolean {
22 return gameWindowsManager.getCurrentWindow() == GameUiWindow.NONE &&
23 !isInsideHotbar(action) &&
24 action.actionKey is MouseInputActionKey.Left
26 }
28 override fun handle(action: MouseInputAction) {
29 if (action.actionKey.touchUp) {
30 mobsController.player.stopHitting()
31 } else {
32 mobsController.player.startHitting()
33 };
34 }
35 }