[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / input / handler / keyboard / CloseGameWindowKeyboardInputHandler.kt
diff --git a/core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/CloseGameWindowKeyboardInputHandler.kt b/core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/CloseGameWindowKeyboardInputHandler.kt
index 0111949d495635c4ac0c5fd79483fbdbfe0a8cbb..705f9aa0e71a5ae60a64c8ac1e411c8cbf511a45 100644 (file)
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.objects.DropController
import ru.deadsoftware.cavedroid.game.windows.GameWindowsManager
import javax.inject.Inject
@GameScope
class CloseGameWindowKeyboardInputHandler @Inject constructor(
- private val gameWindowsManager: GameWindowsManager
+ private val gameWindowsManager: GameWindowsManager,
+ private val mobsController: MobsController,
+ private val dropController: DropController,
) : IGameInputHandler<KeyboardInputAction> {
override fun checkConditions(action: KeyboardInputAction): Boolean {
}
override fun handle(action: KeyboardInputAction) {
+ val selectedItem = gameWindowsManager.currentWindow?.selectedItem
+ if (selectedItem != null) {
+ for (i in 1 .. selectedItem.amount) {
+ dropController.addDrop(
+ /* x = */ mobsController.player.x + (32f * mobsController.player.direction.basis),
+ /* y = */ mobsController.player.y,
+ /* item = */ selectedItem.item
+ )
+ }
+ gameWindowsManager.currentWindow?.selectedItem = null
+ }
gameWindowsManager.closeWindow()
}
}
\ No newline at end of file