DEADSOFTWARE

Drop items on Q and add empty hearts to health bar
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / mobs / player / Inventory.kt
index 4469038ba6f7a1632c54297202650085b02e00e0..b82aa44bcb775991b4ff12e175a511925620c28b 100644 (file)
@@ -12,7 +12,11 @@ class Inventory(
     gameItemsHolder: GameItemsHolder
 ) : Serializable {
 
+    @Transient
+    private lateinit var fallbackItem: InventoryItem
+
     init {
+        fallbackItem = gameItemsHolder.fallbackItem.toInventoryItem()
         if (size < 0 || hotbarSize < 0 || hotbarSize > size) {
             throw IllegalArgumentException("Invalid inventory sizes: hotbarSize=$hotbarSize; size=$size")
         }
@@ -34,6 +38,7 @@ class Inventory(
     val activeItem get() = items[activeSlot]
 
     fun initItems(gameItemsHolder: GameItemsHolder) {
+        fallbackItem = gameItemsHolder.fallbackItem.toInventoryItem()
         items.forEach { item ->
             item.init(gameItemsHolder)
         }
@@ -82,4 +87,12 @@ class Inventory(
 
         _items[0] = item.toInventoryItem(item.params.maxStack)
     }
+
+    @JvmOverloads
+    fun decreaseCurrentItemAmount(count: Int = 1) {
+        activeItem.subtract(count)
+        if (activeItem.amount <= 0) {
+            _items[activeSlot] = fallbackItem
+        }
+    }
 }
\ No newline at end of file