DEADSOFTWARE

Update version script
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / render / BackgroundBlocksRenderer.kt
1 package ru.deadsoftware.cavedroid.game.render
3 import com.badlogic.gdx.Gdx
4 import com.badlogic.gdx.graphics.GL20
5 import com.badlogic.gdx.graphics.g2d.SpriteBatch
6 import com.badlogic.gdx.graphics.glutils.ShapeRenderer
7 import com.badlogic.gdx.math.Rectangle
8 import ru.deadsoftware.cavedroid.game.GameScope
9 import ru.deadsoftware.cavedroid.game.mobs.MobsController
10 import ru.deadsoftware.cavedroid.game.world.GameWorld
11 import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
12 import ru.deadsoftware.cavedroid.misc.utils.forEachBlockInArea
13 import javax.inject.Inject
15 @GameScope
16 @BindRenderer
17 class BackgroundBlocksRenderer @Inject constructor(
18 gameWorld: GameWorld,
19 mobsController: MobsController
20 ) : BlocksRenderer(gameWorld, mobsController) {
22 override val renderLayer get() = RENDER_LAYER
24 override val background = true
26 override fun draw(spriteBatch: SpriteBatch, shapeRenderer: ShapeRenderer, viewport: Rectangle, delta: Float) {
27 forEachBlockInArea(viewport) { x, y ->
28 drawBackMap(spriteBatch, viewport, x, y)
29 }
31 drawBlockDamage(spriteBatch, viewport)
33 spriteBatch.end()
34 Gdx.gl.glEnable(GL20.GL_BLEND)
35 Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)
36 shapeRenderer.begin(ShapeRenderer.ShapeType.Filled)
37 shapeRenderer.setColor(0f, 0f, 0f, .5f)
39 forEachBlockInArea(viewport) { x, y ->
40 shadeBackMap(shapeRenderer, viewport, x, y)
41 }
43 shapeRenderer.end()
44 Gdx.gl.glDisable(GL20.GL_BLEND)
45 spriteBatch.begin()
47 forEachBlockInArea(viewport) { x, y ->
48 drawForeMap(spriteBatch, viewport, x, y)
49 }
50 }
52 companion object {
53 private const val RENDER_LAYER = 100000
54 }
55 }