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=e6fb732c2fb118e83ab118a548e76edcf7b8c50e;hpb=fb34c4a469190cbcd436a10c8cf3102562d97faf;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 e6fb732..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) } @@ -45,16 +47,8 @@ class SelectCreativeInventoryItemMouseInputHandler @Inject constructor( val itemIndex = (gameWindowsManager.creativeScrollAmount * GameWindowsConfigs.Creative.itemsInRow + (xOnGrid.toInt() + yOnGrid.toInt() * GameWindowsConfigs.Creative.itemsInRow)) - - mobsController.player.inventory.copyInto( - destination = mobsController.player.inventory, - destinationOffset = 1, - startIndex = 0, - endIndex = mobsController.player.inventory.size - 1 - ) - val item = gameItemsHolder.getItemFromCreativeInventory(itemIndex) - mobsController.player.inventory[0] = item.toInventoryItem(amount = item.params.maxStack) + mobsController.player.inventory.addItem(item) } } \ No newline at end of file