DEADSOFTWARE

Refactor input handrling
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / render / HudRenderer.kt
index 7bbb87689d7b6adb77742385a8ae2f2c454355ab..b3f89909e4620db19e5b177cbe132319bad0bc96 100644 (file)
@@ -3,19 +3,16 @@ package ru.deadsoftware.cavedroid.game.render
 import com.badlogic.gdx.graphics.g2d.SpriteBatch
 import com.badlogic.gdx.graphics.glutils.ShapeRenderer
 import com.badlogic.gdx.math.Rectangle
-import ru.deadsoftware.cavedroid.game.GameInput
 import ru.deadsoftware.cavedroid.game.GameScope
 import ru.deadsoftware.cavedroid.game.mobs.MobsController
-import ru.deadsoftware.cavedroid.game.model.item.InventoryItem
+import ru.deadsoftware.cavedroid.game.mobs.Player.ControlMode
 import ru.deadsoftware.cavedroid.game.world.GameWorld
 import ru.deadsoftware.cavedroid.misc.Assets
-import ru.deadsoftware.cavedroid.misc.ControlMode
 import ru.deadsoftware.cavedroid.misc.utils.px
 import javax.inject.Inject
 
 @GameScope
 class HudRenderer @Inject constructor(
-    private val gameInput: GameInput,
     private val gameWorld: GameWorld,
     private val mobsController: MobsController,
 ) : IGameRenderer {
@@ -34,7 +31,7 @@ class HudRenderer @Inject constructor(
 
         if (gameWorld.hasForeAt(cursorX, cursorY) ||
             gameWorld.hasBackAt(cursorX, cursorY) ||
-            gameInput.controlMode == ControlMode.CURSOR
+            mobsController.player.controlMode == ControlMode.CURSOR
         ) {
             spriteBatch.draw(cursorTexture, cursorX.px - viewport.x, cursorY.px - viewport.y)
         }
@@ -60,7 +57,7 @@ class HudRenderer @Inject constructor(
     }
 
     private fun drawHotbarItems(spriteBatch: SpriteBatch, shapeRenderer: ShapeRenderer,  hotbarX: Float) {
-        mobsController.player.inventory
+        mobsController.player.inventory.asSequence().take(HotbarConfig.hotbarCells)
             .forEachIndexed { index, item ->
                 if (item.item.isNone()) {
                     return@forEachIndexed
@@ -114,6 +111,7 @@ class HudRenderer @Inject constructor(
             const val verticalMargin = 3f
             const val itemSeparatorWidth = 4f
             const val itemSlotSpace = 16f
+            const val hotbarCells = 9
         }
 
         private data object HotbarSelectorConfig {