1 package ru.fredboy.cavedroid.ux.controls.action.useitem
3 import ru.fredboy.cavedroid.common.di.GameScope
4 import ru.fredboy.cavedroid.domain.items.model.item.Item
5 import ru.fredboy.cavedroid.domain.items.usecase.GetBlockByKeyUseCase
6 import ru.fredboy.cavedroid.domain.items.usecase.GetItemByKeyUseCase
7 import ru.fredboy.cavedroid.game.controller.mob.MobController
8 import ru.fredboy.cavedroid.game.world.GameWorld
9 import ru.fredboy.cavedroid.ux.controls.action.annotation.BindUseItemAction
10 import javax.inject.Inject
13 @BindUseItemAction(UseWaterBucketAction.ACTION_KEY)
14 class UseWaterBucketAction @Inject constructor(
15 private val gameWorld: GameWorld,
16 private val mobsController: MobController,
17 private val getBlockByKeyUseCase: GetBlockByKeyUseCase,
18 private val getItemByKeyUseCase: GetItemByKeyUseCase,
21 override fun perform(item: Item.Usable, x: Int, y: Int) {
22 gameWorld.placeToForeground(x, y, getBlockByKeyUseCase["water"])
23 if (mobsController.player.gameMode != 1) {
24 mobsController.player.setCurrentInventorySlotItem(getItemByKeyUseCase["bucket_empty"])
29 const val ACTION_KEY = "use_water_bucket"