DEADSOFTWARE

Fix furnace bugs
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / mobs / player / Inventory.kt
index 36827c36bd997bdfea07808f98412d403a4e9f14..c5e10d06b30600a2c4aaac74ebedd9a97d67a781 100644 (file)
@@ -3,7 +3,7 @@ package ru.deadsoftware.cavedroid.game.mobs.player
 import ru.deadsoftware.cavedroid.game.GameItemsHolder
 import ru.deadsoftware.cavedroid.game.model.item.InventoryItem
 import ru.deadsoftware.cavedroid.game.model.item.Item
-import ru.deadsoftware.cavedroid.game.objects.Drop
+import ru.deadsoftware.cavedroid.game.objects.drop.Drop
 import ru.deadsoftware.cavedroid.game.ui.TooltipManager
 import java.io.Serializable
 
@@ -14,9 +14,11 @@ class Inventory(
     tooltipManager: TooltipManager,
 ) : Serializable {
 
+    @Suppress("UNNECESSARY_LATEINIT")
     @Transient
     private lateinit var tooltipManager: TooltipManager
 
+    @Suppress("UNNECESSARY_LATEINIT")
     @Transient
     private lateinit var fallbackItem: InventoryItem
 
@@ -47,23 +49,27 @@ class Inventory(
         tooltipManager.showHotbarTooltip(activeItem.item.params.name)
     }
 
-    val activeItem get() = items[activeSlot]
+    val activeItem get() = _items[activeSlot]
 
     fun initItems(gameItemsHolder: GameItemsHolder, tooltipManager: TooltipManager) {
         this.tooltipManager = tooltipManager
         fallbackItem = gameItemsHolder.fallbackItem.toInventoryItem()
-        items.forEach { item ->
+        _items.forEach { item ->
             item.init(gameItemsHolder)
         }
     }
 
     private fun getItemPickSlot(item: Item): Int {
-        for (i in items.indices) {
-            val inventoryItem = items[i]
+        for (i in _items.indices) {
+            val inventoryItem = _items[i]
 
             if (item == inventoryItem.item && inventoryItem.canBeAdded()) {
                 return i
             }
+        }
+
+        for (i in _items.indices) {
+            val inventoryItem = _items[i]
 
             if (inventoryItem.item.isNone()) {
                 return i
@@ -79,7 +85,7 @@ class Inventory(
 
     fun pickDrop(drop: Drop) {
         val slot = getItemPickSlot(drop.item).takeIf { it >= 0 } ?: return
-        val inventoryItem = items[slot]
+        val inventoryItem = _items[slot]
 
         if (inventoryItem.item == drop.item) {
             inventoryItem.add(drop.amount)