1 package ru.fredboy.cavedroid.ux.controls.action.placeblock
3 import ru.fredboy.cavedroid.common.di.GameScope
4 import ru.fredboy.cavedroid.domain.items.model.item.Item
5 import ru.fredboy.cavedroid.game.controller.mob.MobController
6 import ru.fredboy.cavedroid.game.world.GameWorld
7 import ru.fredboy.cavedroid.ux.controls.action.annotation.BindPlaceBlockAction
8 import javax.inject.Inject
11 @BindPlaceBlockAction(stringKey = PlaceBlockItemToForegroundAction.ACTION_KEY)
12 class PlaceBlockItemToForegroundAction @Inject constructor(
13 private val gameWorld: GameWorld,
14 private val placeSlabAction: PlaceSlabAction,
15 private val mobController: MobController,
16 ) : IPlaceBlockAction {
18 override fun place(placeable: Item.Placeable, x: Int, y: Int) {
19 if (placeable.isSlab()) {
20 placeSlabAction.place(placeable, x, y)
22 if (gameWorld.placeToForeground(x, y, placeable.block)) {
23 mobController.player.decreaseCurrentItemCount()
29 const val ACTION_KEY = "place_foreground_block"