diff --git a/core/src/ru/deadsoftware/cavedroid/game/render/BlocksRenderer.kt b/core/src/ru/deadsoftware/cavedroid/game/render/BlocksRenderer.kt
index 65d9e0ade81636d8855f1c509b51ae13a889f08f..ae243a374ea182a7dce46be95e041661ada6f76f 100644 (file)
import com.badlogic.gdx.math.MathUtils
import com.badlogic.gdx.math.Rectangle
import ru.deadsoftware.cavedroid.game.GameInput
+import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.block.Block
import ru.deadsoftware.cavedroid.game.world.GameWorld
import ru.deadsoftware.cavedroid.misc.Assets
abstract class BlocksRenderer(
protected val gameWorld: GameWorld,
- protected val gameInput: GameInput,
+ protected val mobsController: MobsController,
) : IGameRenderer {
protected abstract val background: Boolean
}
protected fun drawBlockDamage(spriteBatch: SpriteBatch, viewport: Rectangle) {
- val blockDamage = gameInput.blockDamage
- if (blockDamage <= 0) {
- return
- }
+ val player = mobsController.player
+ val blockDamage = player.blockDamage.takeIf { it > 0f } ?: return
+ val cursorX = player.cursorX
+ val cursorY = player.cursorY
val block = if (background) {
- gameWorld.getBackMap(gameInput.curX, gameInput.curY)
+ gameWorld.getBackMap(cursorX, cursorY)
} else {
- gameWorld.getForeMap(gameInput.curX, gameInput.curY)
+ gameWorld.getForeMap(cursorX, cursorY)
}
val index = (MAX_BLOCK_DAMAGE_INDEX.toFloat() * (blockDamage.toFloat() / block.params.hitPoints.toFloat()))
.let(MathUtils::floor)
val texture = blockDamageTexture(index) ?: return
- if (gameWorld.hasForeAt(gameInput.curX, gameInput.curY) != background) {
- spriteBatch.draw(texture, gameInput.curX.px - viewport.x, gameInput.curY.px - viewport.y)
+ if (gameWorld.hasForeAt(cursorX, cursorY) != background) {
+ spriteBatch.draw(texture, cursorX.px - viewport.x, cursorY.px - viewport.y)
}
}