X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Finput%2Fhandler%2Fkeyboard%2FDropItemKeyboardInputHandler.kt;h=04f5520af367a3123bb331181e265dc20aaf0855;hb=refs%2Fheads%2Fmaster;hp=4003271fd61301ac713fc65dc6fbb66897998d69;hpb=13157246344c2b94d24354040f0f2d2fb5beb7ea;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 deleted file mode 100644 index 4003271..0000000 --- a/core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/DropItemKeyboardInputHandler.kt +++ /dev/null @@ -1,56 +0,0 @@ -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.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.ui.windows.GameWindowsManager -import javax.inject.Inject - -@GameScope -class DropItemKeyboardInputHandler @Inject constructor( - private val gameWindowsManager: GameWindowsManager, - private val mobsController: MobsController, - private val dropController: DropController, -) : IGameInputHandler { - - override fun checkConditions(action: KeyboardInputAction): Boolean { - return action.actionKey is KeyboardInputActionKey.DropItem && - action.isKeyDown && gameWindowsManager.getCurrentWindow() == GameUiWindow.NONE && - !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) - } - - override fun handle(action: KeyboardInputAction) { - val player = mobsController.player - val currentItem = player.inventory.activeItem - - 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 - } - ) - } - - companion object { - private const val DROP_DISTANCE = 20f - } -} \ No newline at end of file