DEADSOFTWARE

Game action modules generation
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / actions / updateblock / UpdateGravelAction.kt
index 53fcd62fa9112b21aefadf01e1eb9c14bf480103..f51bc7fc7e46bf3f0733ddcd6fe032df1d716cac 100644 (file)
@@ -2,23 +2,24 @@ package ru.deadsoftware.cavedroid.game.actions.updateblock
 
 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 javax.inject.Inject
 
 @GameScope
+@UpdateBlockAction(stringKey = UpdateGravelAction.BLOCK_KEY)
 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) {
-            gameWorld.setForeMap(x, y, 0)
-            mobsController.addMob(FallingGravel(x * 16f, y * 16f))
+            gameWorld.resetForeMap(x, y)
+            FallingGravel(x * 16f, y * 16f)
+                .apply { attachToController(mobsController) }
         }
     }