X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Factions%2Fplaceblock%2FPlaceBlockItemToForegroundAction.kt;h=ec249fbc027561047a08993854b8a4d397a2b7f7;hb=456e76ce31c05500ab7d9e78e2b02019143929a4;hp=1f74448ab60dfa012777121d6338e9787593fe9d;hpb=1c004c0ce7e183e773b5b486295c25e39732e899;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToForegroundAction.kt b/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToForegroundAction.kt index 1f74448..ec249fb 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToForegroundAction.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToForegroundAction.kt @@ -1,17 +1,30 @@ package ru.deadsoftware.cavedroid.game.actions.placeblock +import ru.deadsoftware.cavedroid.game.GameItemsHolder import ru.deadsoftware.cavedroid.game.GameScope +import ru.deadsoftware.cavedroid.game.mobs.MobsController import ru.deadsoftware.cavedroid.game.model.item.Item import ru.deadsoftware.cavedroid.game.world.GameWorld +import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindPlaceBlockAction import javax.inject.Inject @GameScope +@BindPlaceBlockAction(stringKey = PlaceBlockItemToForegroundAction.ACTION_KEY) class PlaceBlockItemToForegroundAction @Inject constructor( private val gameWorld: GameWorld, + private val placeSlabAction: PlaceSlabAction, + private val gameItemsHolder: GameItemsHolder, + private val mobsController: MobsController, ) : IPlaceBlockAction { override fun place(placeable: Item.Placeable, x: Int, y: Int) { - gameWorld.placeToForeground(x, y, placeable.block) + if (placeable.isSlab()) { + placeSlabAction.place(placeable, x, y) + } else { + if (gameWorld.placeToForeground(x, y, placeable.block)) { + mobsController.player.decreaseCurrentItemCount(gameItemsHolder) + } + } } companion object {