X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Finput%2Fhandler%2Fkeyboard%2FDropItemKeyboardInputHandler.kt;h=01a0c1f162e8e95622a9dedebd6c96b11636954f;hb=ef72467133765381894c3af625e8644f96439642;hp=7e6454c32dbb9eddd0890eee6f197a2237d317a8;hpb=9af7e45e07d903996eab693d958679ed699dcac7;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/DropItemKeyboardInputHandler.kt b/core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/DropItemKeyboardInputHandler.kt index 7e6454c..01a0c1f 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/DropItemKeyboardInputHandler.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/DropItemKeyboardInputHandler.kt @@ -2,22 +2,24 @@ package ru.deadsoftware.cavedroid.game.input.handler.keyboard import ru.deadsoftware.cavedroid.game.GameScope import ru.deadsoftware.cavedroid.game.GameUiWindow -import ru.deadsoftware.cavedroid.game.input.IGameInputHandler +import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler +import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey import ru.deadsoftware.cavedroid.game.mobs.MobsController import ru.deadsoftware.cavedroid.game.model.item.Item -import ru.deadsoftware.cavedroid.game.objects.Drop -import ru.deadsoftware.cavedroid.game.objects.DropController -import ru.deadsoftware.cavedroid.game.windows.GameWindowsManager +import ru.deadsoftware.cavedroid.game.objects.drop.Drop +import ru.deadsoftware.cavedroid.game.objects.drop.DropController +import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager import javax.inject.Inject @GameScope +@KeyboardInputHandler class DropItemKeyboardInputHandler @Inject constructor( private val gameWindowsManager: GameWindowsManager, private val mobsController: MobsController, private val dropController: DropController, -) : IGameInputHandler { +) : IKeyboardInputHandler { override fun checkConditions(action: KeyboardInputAction): Boolean { return action.actionKey is KeyboardInputActionKey.DropItem && @@ -25,32 +27,25 @@ class DropItemKeyboardInputHandler @Inject constructor( !mobsController.player.inventory.activeItem.item.isNone() } - private fun createDrop(item: Item, playerX: Float, playerY: Float) { - dropController.addDrop(playerX + ((DROP_DISTANCE - Drop.DROP_SIZE / 2) * mobsController.player.direction.basis), playerY, item) + private fun createDrop(item: Item, playerX: Float, playerY: Float, amount: Int) { + dropController.addDrop( + /* x = */ playerX + ((DROP_DISTANCE - Drop.DROP_SIZE / 2) * mobsController.player.direction.basis), + /* y = */ playerY, + /* item = */ item, + /* count = */ amount + ) } override fun handle(action: KeyboardInputAction) { val player = mobsController.player val currentItem = player.inventory.activeItem + val dropAmount = if (currentItem.item.isTool()) currentItem.amount else 1 - if (!currentItem.item.isTool()) { - createDrop(currentItem.item, player.x, player.y) - } else { - for (i in 1..currentItem.amount) { - createDrop(currentItem.item, player.x, player.y) - } - } - - player.inventory.decreaseCurrentItemAmount( - if (currentItem.item.isTool()) { - currentItem.amount - } else { - 1 - } - ) + createDrop(currentItem.item, player.x, player.y, dropAmount) + player.inventory.decreaseCurrentItemAmount(dropAmount) } companion object { - private const val DROP_DISTANCE = 20f + const val DROP_DISTANCE = 20f } } \ No newline at end of file