DEADSOFTWARE

0b1d1db26370d8cac2a95f3cb390e1bf79597c89
[cavedroid.git] /
1 package ru.fredboy.cavedroid.ux.controls.action.placeblock
2
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
9
10 @GameScope
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 {
17
18 override fun place(placeable: Item.Placeable, x: Int, y: Int) {
19 if (placeable.isSlab()) {
20 placeSlabAction.place(placeable, x, y)
21 } else {
22 if (gameWorld.placeToForeground(x, y, placeable.block)) {
23 mobController.player.decreaseCurrentItemCount()
24 }
25 }
26 }
27
28 companion object {
29 const val ACTION_KEY = "place_foreground_block"
30 }
31
32 }