DEADSOFTWARE

Refactor rendering
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / render / TouchControlsRenderer.kt
1 package ru.deadsoftware.cavedroid.game.render
3 import com.badlogic.gdx.graphics.g2d.SpriteBatch
4 import com.badlogic.gdx.graphics.glutils.ShapeRenderer
5 import com.badlogic.gdx.math.Rectangle
6 import ru.deadsoftware.cavedroid.game.GameInput
7 import ru.deadsoftware.cavedroid.game.GameScope
8 import ru.deadsoftware.cavedroid.misc.Assets
9 import ru.deadsoftware.cavedroid.misc.ControlMode
10 import ru.deadsoftware.cavedroid.misc.utils.ArrayMapExtensions.component1
11 import ru.deadsoftware.cavedroid.misc.utils.ArrayMapExtensions.component2
12 import javax.inject.Inject
14 @GameScope
15 class TouchControlsRenderer @Inject constructor(
16 private val gameInput: GameInput
17 ) : IGameRenderer {
19 override val renderLayer get() = RENDER_LAYER
21 private val shadeTexture get() = Assets.textureRegions[SHADE_KEY]
23 override fun draw(spriteBatch: SpriteBatch, shapeRenderer: ShapeRenderer, viewport: Rectangle, delta: Float) {
24 val touchControlsMap = Assets.guiMap
26 touchControlsMap.forEach { (key, value) ->
27 val touchKey = value.rect
28 spriteBatch.draw(
29 /* region = */ Assets.textureRegions[key],
30 /* x = */ touchKey.x,
31 /* y = */ touchKey.y,
32 /* width = */ touchKey.width,
33 /* height = */ touchKey.height
34 )
35 }
37 // FIXME: Add pressed state for buttons
38 if (gameInput.controlMode == ControlMode.CURSOR) {
39 val altKeyRect = touchControlsMap.get("alt").rect
40 spriteBatch.draw(shadeTexture, altKeyRect.x, altKeyRect.y, altKeyRect.width, altKeyRect.height)
41 }
42 }
44 companion object {
45 private const val RENDER_LAYER = 100700
47 private const val SHADE_KEY = "shade"
48 }
50 }