X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Finput%2Fhandler%2Fmouse%2FHotbarMouseInputHandler.kt;h=0725abee6fc190dbbc230a82d1e7f1407790abc4;hb=13157246344c2b94d24354040f0f2d2fb5beb7ea;hp=3c2a16317ce6628946aecab8a152916c778e3257;hpb=cf4113d5bfd3fca7c3815bf14a214eebd822216c;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/HotbarMouseInputHandler.kt b/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/HotbarMouseInputHandler.kt index 3c2a163..0725abe 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/HotbarMouseInputHandler.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/HotbarMouseInputHandler.kt @@ -3,12 +3,13 @@ package ru.deadsoftware.cavedroid.game.input.handler.mouse import com.badlogic.gdx.utils.Timer import ru.deadsoftware.cavedroid.game.GameScope import ru.deadsoftware.cavedroid.game.GameUiWindow -import ru.deadsoftware.cavedroid.game.windows.GameWindowsManager +import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager import ru.deadsoftware.cavedroid.game.input.IGameInputHandler import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey import ru.deadsoftware.cavedroid.game.input.isInsideHotbar import ru.deadsoftware.cavedroid.game.mobs.MobsController +import ru.deadsoftware.cavedroid.game.mobs.player.Player import ru.deadsoftware.cavedroid.misc.Assets import javax.inject.Inject @@ -24,7 +25,9 @@ class HotbarMouseInputHandler @Inject constructor( override fun checkConditions(action: MouseInputAction): Boolean { return buttonHoldTask?.isScheduled == true || - (action.actionKey is MouseInputActionKey.Left && isInsideHotbar(action) || action.actionKey is MouseInputActionKey.Scroll) && + ((action.actionKey is MouseInputActionKey.Left || action.actionKey is MouseInputActionKey.Touch) + && isInsideHotbar(action) + || action.actionKey is MouseInputActionKey.Scroll) && gameWindowsManager.getCurrentWindow() == GameUiWindow.NONE } @@ -49,7 +52,7 @@ class HotbarMouseInputHandler @Inject constructor( } private fun handleUp(action: MouseInputAction) { - mobsController.player.slot = + mobsController.player.inventory.activeSlot = ((action.screenX - (action.cameraViewport.width / 2 - hotbarTexture.regionWidth / 2)) / HOTBAR_CELL_WIDTH).toInt() @@ -59,11 +62,11 @@ class HotbarMouseInputHandler @Inject constructor( if (action.actionKey !is MouseInputActionKey.Scroll) { return } - mobsController.player.slot += action.actionKey.amountY.toInt() - if (mobsController.player.slot < 0) { - mobsController.player.slot = HOTBAR_ITEMS - 1 - } else if (mobsController.player.slot >= HOTBAR_ITEMS){ - mobsController.player.slot = 0 + mobsController.player.inventory.activeSlot += action.actionKey.amountY.toInt() + if (mobsController.player.inventory.activeSlot < 0) { + mobsController.player.inventory.activeSlot = Player.HOTBAR_SIZE - 1 + } else if (mobsController.player.inventory.activeSlot >= Player.HOTBAR_SIZE){ + mobsController.player.inventory.activeSlot = 0 } } @@ -72,7 +75,7 @@ class HotbarMouseInputHandler @Inject constructor( cancelHold() } - if (action.actionKey !is MouseInputActionKey.Left) { + if (action.actionKey !is MouseInputActionKey.Left && action.actionKey !is MouseInputActionKey.Touch ) { if (action.actionKey is MouseInputActionKey.Scroll) { handleScroll(action) } @@ -89,7 +92,6 @@ class HotbarMouseInputHandler @Inject constructor( companion object { private const val TOUCH_HOLD_TIME_SEC = 0.5f private const val HOTBAR_CELL_WIDTH = 20 - private const val HOTBAR_ITEMS = 9 } } \ No newline at end of file