[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / actions / placeblock / PlaceBlockItemToForegroundAction.kt
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 75c7bcb5302dd84e62ea2877cee036a9be722acf..22aafdd98e5c75a75aeb1a5fbc39c2317e5d5111 100644 (file)
--- a/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToForegroundAction.kt
+++ b/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToForegroundAction.kt
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 javax.inject.Inject
@GameScope
class PlaceBlockItemToForegroundAction @Inject constructor(
private val gameWorld: GameWorld,
+ private val placeSlabAction: PlaceSlabAction,
+ private val gameItemsHolder: GameItemsHolder,
+ private val mobsController: MobsController,
) : IPlaceBlockAction {
- override fun place(item: Item.Placeable, x: Int, y: Int) {
- gameWorld.placeToForeground(x, y, item.block.params.id)
+ override fun place(placeable: Item.Placeable, x: Int, y: Int) {
+ if (placeable.isSlab()) {
+ placeSlabAction.place(placeable, x, y)
+ } else {
+ if (gameWorld.placeToForeground(x, y, placeable.block)) {
+ mobsController.player.decreaseCurrentItemCount(gameItemsHolder)
+ }
+ }
}
companion object {