X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmobs%2Fplayer%2FInventory.kt;h=43f298c876e9702fb5e675e5b429602b22fbf13d;hb=90daad1796cd59f11f12589686d9afe882ddb9b1;hp=c6dea8bc878f0d523be0fc447979961080fc94df;hpb=3d972278cf3a54b6a7b574690ca4b41577464dce;p=cavedroid.git 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 c6dea8b..43f298c 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/mobs/player/Inventory.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/mobs/player/Inventory.kt @@ -65,7 +65,7 @@ class Inventory( 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 } } @@ -90,15 +90,22 @@ class Inventory( 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) { @@ -126,4 +133,10 @@ class Inventory( fun decreaseCurrentItemAmount(count: Int = 1) { decreaseItemAmount(activeSlot, count) } + + fun clear() { + for (i in _items.indices) { + _items[i] = fallbackItem + } + } } \ No newline at end of file