[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / actions / useitem / UseWaterBucketAction.kt
diff --git a/core/src/ru/deadsoftware/cavedroid/game/actions/useitem/UseWaterBucketAction.kt b/core/src/ru/deadsoftware/cavedroid/game/actions/useitem/UseWaterBucketAction.kt
index fecb77f51f0cf98db42187684a11b1758cac7f49..739ec2899335130d1b9daae1e3c2f14db5b8e991 100644 (file)
package ru.deadsoftware.cavedroid.game.actions.useitem
-import ru.deadsoftware.cavedroid.game.GameItems
+import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.mobs.MobsController
-import ru.deadsoftware.cavedroid.game.objects.Item
+import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseItemAction
import javax.inject.Inject
@GameScope
+@BindUseItemAction(UseWaterBucketAction.ACTION_KEY)
class UseWaterBucketAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
+ private val gameItemsHolder: GameItemsHolder,
) : IUseItemAction {
- override fun perform(item: Item, x: Int, y: Int) {
- gameWorld.placeToForeground(x, y, GameItems.getBlockId("water"))
- mobsController.player.setCurrentInventorySlotItem(GameItems.getItemId("bucket_empty"))
+ override fun perform(item: Item.Usable, x: Int, y: Int) {
+ gameWorld.placeToForeground(x, y, gameItemsHolder.getBlock("water"))
+ if (mobsController.player.gameMode != 1) {
+ mobsController.player.setCurrentInventorySlotItem(gameItemsHolder.getItem("bucket_empty"))
+ }
}
companion object {