[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / input / handler / mouse / SelectCreativeInventoryItemMouseInputHandler.kt
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 ddd71c4418cbae9603214f0c8985b84083564f13..976f443c93ceff7a8fb20c7beffd33296607cd04 100644 (file)
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<MouseInputAction> {
+) : 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.Left || action.actionKey is MouseInputActionKey.Screen) &&
action.actionKey.touchUp && isInsideWindow(action, creativeInventoryTexture)
}
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