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 c6dea8bc878f0d523be0fc447979961080fc94df..43f298c876e9702fb5e675e5b429602b22fbf13d 100644 (file)
for (i in _items.indices) {
val inventoryItem = _items[i]
- if (item == inventoryItem.item && inventoryItem.canBeAdded(drop.amount)) {
+ if (item == inventoryItem.item && inventoryItem.canBeAdded()) {
return i
}
}
val inventoryItem = _items[slot]
if (inventoryItem.item == drop.item) {
- inventoryItem.add(drop.amount)
+ if (inventoryItem.canBeAdded(drop.amount)) {
+ inventoryItem.add(drop.amount)
+ drop.pickedUp = true
+ } else {
+ val addCount = inventoryItem.item.params.maxStack - inventoryItem.amount
+ inventoryItem.add(addCount)
+ drop.subtract(addCount)
+ pickDrop(drop)
+ }
} else {
_items[slot] = drop.item.toInventoryItem(drop.amount)
if (slot == activeSlot) {
showCurrentItemTooltip()
}
+ drop.pickedUp = true
}
-
- drop.pickedUp = true
}
fun addItem(item: Item) {
fun decreaseCurrentItemAmount(count: Int = 1) {
decreaseItemAmount(activeSlot, count)
}
+
+ fun clear() {
+ for (i in _items.indices) {
+ _items[i] = fallbackItem
+ }
+ }
}
\ No newline at end of file