DEADSOFTWARE

Add furnace, more craft and items
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / render / WindowsRenderer.kt
1 package ru.deadsoftware.cavedroid.game.render
3 import com.badlogic.gdx.Gdx
4 import com.badlogic.gdx.graphics.g2d.SpriteBatch
5 import com.badlogic.gdx.graphics.glutils.ShapeRenderer
6 import com.badlogic.gdx.math.Rectangle
7 import ru.deadsoftware.cavedroid.game.GameScope
8 import ru.deadsoftware.cavedroid.game.GameUiWindow
9 import ru.deadsoftware.cavedroid.game.render.windows.CraftingWindowRenderer
10 import ru.deadsoftware.cavedroid.game.render.windows.CreativeWindowRenderer
11 import ru.deadsoftware.cavedroid.game.render.windows.FurnaceWindowRenderer
12 import ru.deadsoftware.cavedroid.game.render.windows.SurvivalWindowRenderer
13 import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
14 import javax.inject.Inject
16 @GameScope
17 class WindowsRenderer @Inject constructor(
18 private val creativeWindowRenderer: CreativeWindowRenderer,
19 private val survivalWindowRenderer: SurvivalWindowRenderer,
20 private val craftingWindowRenderer: CraftingWindowRenderer,
21 private val gameWindowsManager: GameWindowsManager,
22 private val furnaceWindowRenderer: FurnaceWindowRenderer,
23 ) : IGameRenderer {
25 override val renderLayer get() = RENDER_LAYER
27 override fun draw(spriteBatch: SpriteBatch, shapeRenderer: ShapeRenderer, viewport: Rectangle, delta: Float) {
28 when (val windowType = gameWindowsManager.getCurrentWindow()) {
29 GameUiWindow.CREATIVE_INVENTORY -> creativeWindowRenderer.draw(spriteBatch, shapeRenderer, viewport, delta)
30 GameUiWindow.SURVIVAL_INVENTORY -> survivalWindowRenderer.draw(spriteBatch, shapeRenderer, viewport, delta)
31 GameUiWindow.CRAFTING_TABLE -> craftingWindowRenderer.draw(spriteBatch, shapeRenderer, viewport, delta)
32 GameUiWindow.FURNACE -> furnaceWindowRenderer.draw(spriteBatch, shapeRenderer, viewport, delta)
33 GameUiWindow.NONE -> return
34 else -> Gdx.app.error(TAG, "Cannot draw window: ${windowType.name}")
35 }
36 }
38 companion object {
39 private const val TAG = "WindowsRenderer"
41 const val RENDER_LAYER = 100600
42 }
43 }