diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/player/Inventory.kt b/core/src/ru/deadsoftware/cavedroid/game/mobs/player/Inventory.kt
index 31f4c7801a4b35c4756879ca5a60d762975ca89a..b82aa44bcb775991b4ff12e175a511925620c28b 100644 (file)
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")
}
val activeItem get() = items[activeSlot]
fun initItems(gameItemsHolder: GameItemsHolder) {
+ fallbackItem = gameItemsHolder.fallbackItem.toInventoryItem()
items.forEach { item ->
item.init(gameItemsHolder)
}
endIndex = size - 1
)
- _items[0] = item.toInventoryItem()
+ _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