X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Finput%2Fhandler%2Fmouse%2FSelectCreativeInventoryItemMouseInputHandler.kt;h=976f443c93ceff7a8fb20c7beffd33296607cd04;hb=90daad1796cd59f11f12589686d9afe882ddb9b1;hp=7c587b67b7162415ecceeb9525ce568fcdb2831c;hpb=387ad284ceb79b07cba3726fa7350b7e83916815;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectCreativeInventoryItemMouseInputHandler.kt b/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectCreativeInventoryItemMouseInputHandler.kt index 7c587b6..976f443 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectCreativeInventoryItemMouseInputHandler.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectCreativeInventoryItemMouseInputHandler.kt @@ -1,31 +1,33 @@ package ru.deadsoftware.cavedroid.game.input.handler.mouse +import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler import ru.deadsoftware.cavedroid.game.GameItemsHolder import ru.deadsoftware.cavedroid.game.GameScope import ru.deadsoftware.cavedroid.game.GameUiWindow -import ru.deadsoftware.cavedroid.game.windows.GameWindowsManager -import ru.deadsoftware.cavedroid.game.input.IGameInputHandler +import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager +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.isInsideWindow import ru.deadsoftware.cavedroid.game.mobs.MobsController -import ru.deadsoftware.cavedroid.game.windows.GameWindowsConfigs +import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsConfigs import ru.deadsoftware.cavedroid.misc.Assets import javax.inject.Inject @GameScope +@BindMouseInputHandler class SelectCreativeInventoryItemMouseInputHandler @Inject constructor( private val gameItemsHolder: GameItemsHolder, private val gameWindowsManager: GameWindowsManager, private val mobsController: MobsController, -) : IGameInputHandler { +) : IMouseInputHandler { private val creativeInventoryTexture get() = requireNotNull(Assets.textureRegions["creative"]) override fun checkConditions(action: MouseInputAction): Boolean { return gameWindowsManager.getCurrentWindow() == GameUiWindow.CREATIVE_INVENTORY && !gameWindowsManager.isDragging && - (action.actionKey is MouseInputActionKey.Left || action.actionKey is MouseInputActionKey.Touch) && + (action.actionKey is MouseInputActionKey.Left || action.actionKey is MouseInputActionKey.Screen) && action.actionKey.touchUp && isInsideWindow(action, creativeInventoryTexture) } @@ -46,13 +48,7 @@ class SelectCreativeInventoryItemMouseInputHandler @Inject constructor( val itemIndex = (gameWindowsManager.creativeScrollAmount * GameWindowsConfigs.Creative.itemsInRow + (xOnGrid.toInt() + yOnGrid.toInt() * GameWindowsConfigs.Creative.itemsInRow)) val item = gameItemsHolder.getItemFromCreativeInventory(itemIndex) - mobsController.player.inventory.reverse() - mobsController.player.inventory.add(item.toInventoryItem(amount = item.params.maxStack)) - mobsController.player.inventory.reverse() - - if (mobsController.player.inventory.size > 36) { - mobsController.player.inventory.dropLast(mobsController.player.inventory.size - 36) - } + mobsController.player.inventory.addItem(item) } } \ No newline at end of file