[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / actions / updateblock / UpdateGravelAction.kt
diff --git a/core/src/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateGravelAction.kt b/core/src/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateGravelAction.kt
index 53fcd62fa9112b21aefadf01e1eb9c14bf480103..3c5241857fb943c5d88ecd18bd68b423f45060dd 100644 (file)
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.mobs.FallingGravel
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.mobs.FallingGravel
-import ru.deadsoftware.cavedroid.game.mobs.FallingSand
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUpdateBlockAction
import javax.inject.Inject
@GameScope
import javax.inject.Inject
@GameScope
+@BindUpdateBlockAction(stringKey = UpdateGravelAction.BLOCK_KEY)
class UpdateGravelAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
) : IUpdateBlockAction {
override fun update(x: Int, y: Int) {
class UpdateGravelAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
) : IUpdateBlockAction {
override fun update(x: Int, y: Int) {
- val shouldFall = gameWorld.getForeMapBlock(x, y + 1).collision.not()
+ val shouldFall = gameWorld.getForeMap(x, y + 1).params.hasCollision.not()
if (shouldFall) {
if (shouldFall) {
- gameWorld.setForeMap(x, y, 0)
- mobsController.addMob(FallingGravel(x * 16f, y * 16f))
+ gameWorld.resetForeMap(x, y)
+ FallingGravel(x * 16f, y * 16f)
+ .apply { attachToController(mobsController) }
}
}
}
}