X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Factions%2Fplaceblock%2FPlaceSlabAction.kt;h=6ac94c98edfafd03a86b188a79ab004cc01180ed;hb=409a22b3fe7c43b7f686f33cc2f01b6277edec78;hp=079d2258336b72a30524b0c590f03630fa111a35;hpb=533a7e5290163854e2af1f6f54b835d6fe766108;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceSlabAction.kt b/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceSlabAction.kt index 079d225..6ac94c9 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceSlabAction.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceSlabAction.kt @@ -7,7 +7,6 @@ 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 -import kotlin.random.Random @GameScope class PlaceSlabAction @Inject constructor( @@ -22,8 +21,18 @@ class PlaceSlabAction @Inject constructor( return } - val slabPart = if (Random.nextBoolean()) placeable.topPartBlock else placeable.bottomPartBlock - gameWorld.placeToForeground(x, y, slabPart) + val slabPart = if ((gameWorld.hasForeAt(x, y - 1) + || gameWorld.getForeMap(x - 1, y) == placeable.topPartBlock + || gameWorld.getForeMap(x + 1, y) == placeable.topPartBlock) + && !gameWorld.hasForeAt(x, y + 1)) { + placeable.topPartBlock + } else { + placeable.bottomPartBlock + } + + if (gameWorld.placeToForeground(x, y, slabPart)) { + mobsController.player.decreaseCurrentItemCount(gameItemsHolder) + } } companion object {