DEADSOFTWARE

Update version script
[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.misc.annotations.multibinding.BindMouseInputHandler
4 import ru.deadsoftware.cavedroid.game.GameScope
5 import ru.deadsoftware.cavedroid.game.GameUiWindow
6 import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
7 import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
8 import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
9 import ru.deadsoftware.cavedroid.game.input.isInsideHotbar
10 import ru.deadsoftware.cavedroid.game.mobs.MobsController
11 import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
12 import ru.deadsoftware.cavedroid.game.world.GameWorld
13 import javax.inject.Inject
15 @GameScope
16 @BindMouseInputHandler
17 class AttackMouseInputHandler @Inject constructor(
18 private val mobsController: MobsController,
19 private val gameWorld: GameWorld,
20 private val gameWindowsManager: GameWindowsManager
21 ) : IMouseInputHandler {
23 override fun checkConditions(action: MouseInputAction): Boolean {
24 return gameWindowsManager.getCurrentWindow() == GameUiWindow.NONE &&
25 !isInsideHotbar(action) &&
26 action.actionKey is MouseInputActionKey.Left
28 }
30 override fun handle(action: MouseInputAction) {
31 if (action.actionKey.touchUp) {
32 mobsController.player.stopHitting()
33 } else {
34 mobsController.player.startHitting()
35 };
36 }
37 }