X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Finput%2Fhandler%2Fmouse%2FUseItemMouseInputHandler.kt;h=7405faf0c5eae97f812199b8ec46599506f822ef;hb=90daad1796cd59f11f12589686d9afe882ddb9b1;hp=da59bc65cc612e301edf8a355920c5ca285dff3c;hpb=769039ca17ebd65873b84ae897796edc944e342b;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/UseItemMouseInputHandler.kt b/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/UseItemMouseInputHandler.kt index da59bc6..7405faf 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/UseItemMouseInputHandler.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/UseItemMouseInputHandler.kt @@ -1,7 +1,9 @@ package ru.deadsoftware.cavedroid.game.input.handler.mouse +import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler import com.badlogic.gdx.Gdx import com.badlogic.gdx.utils.Timer +import ru.deadsoftware.cavedroid.game.GameItemsHolder import ru.deadsoftware.cavedroid.game.GameScope import ru.deadsoftware.cavedroid.game.GameUiWindow import ru.deadsoftware.cavedroid.game.actions.placeToBackgroundAction @@ -9,17 +11,18 @@ import ru.deadsoftware.cavedroid.game.actions.placeToForegroundAction import ru.deadsoftware.cavedroid.game.actions.placeblock.IPlaceBlockAction import ru.deadsoftware.cavedroid.game.actions.useblock.IUseBlockAction import ru.deadsoftware.cavedroid.game.actions.useitem.IUseItemAction -import ru.deadsoftware.cavedroid.game.input.IGameInputHandler +import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler 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.model.item.Item -import ru.deadsoftware.cavedroid.game.windows.GameWindowsManager +import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager import ru.deadsoftware.cavedroid.game.world.GameWorld import javax.inject.Inject @GameScope +@BindMouseInputHandler class UseItemMouseInputHandler @Inject constructor( private val mobsController: MobsController, private val useItemActionMap: Map, @@ -27,7 +30,8 @@ class UseItemMouseInputHandler @Inject constructor( private val useBlockActionMap: Map, private val gameWindowsManager: GameWindowsManager, private val gameWorld: GameWorld, -) : IGameInputHandler { + private val gameItemsHolder: GameItemsHolder, +) : IMouseInputHandler { private var buttonHoldTask: Timer.Task? = null @@ -102,6 +106,9 @@ class UseItemMouseInputHandler @Inject constructor( } else if (item is Item.Usable) { useItemActionMap[item.useActionKey]?.perform(item, player.cursorX, player.cursorY) ?: Gdx.app.error(TAG, "use item action ${item.useActionKey} not found"); + } else if (item is Item.Food && player.health < player.maxHealth) { + player.heal(item.heal) + player.decreaseCurrentItemCount(gameItemsHolder) } else { tryUseBlock() }