Merge pull request #473 from MihailRis/new-inventory-funcs

Add new inventory funcs
This commit is contained in:
MihailRis 2025-02-20 22:33:10 +03:00 committed by GitHub
commit 721286c2ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 20 additions and 1 deletions

View File

@ -102,7 +102,6 @@ function inventory.get_uses(invid, slot)
return uses
end
function inventory.use(invid, slot)
local itemid, count = inventory.get(invid, slot)
if itemid == nil then
@ -119,6 +118,16 @@ function inventory.use(invid, slot)
end
end
function inventory.decrement(invid, slot, count)
count = count or 1
local itemid, itemcount = inventory.get(invid, slot)
if itemcount <= count then
inventory.set(invid, slot, 0)
else
inventory.set_count(invid, slot, itemcount - count)
end
end
------------------------------------------------
------------------- Events ---------------------
------------------------------------------------

View File

@ -71,6 +71,15 @@ static int l_set(lua::State* L, ItemStack& item) {
return 0;
}
static int l_set_count(lua::State* L, ItemStack& item) {
auto count = lua::tointeger(L, 3);
if (item.getItemId() == ITEM_EMPTY) {
return 0;
}
item.setCount(count);
return 0;
}
static int l_size(lua::State* L) {
auto invid = lua::tointeger(L, 1);
const auto& inv = get_inventory(invid);
@ -226,6 +235,7 @@ static int l_set_data(lua::State* L, ItemStack& stack) {
const luaL_Reg inventorylib[] = {
{"get", wrap_slot<l_get>},
{"set", wrap_slot<l_set>},
{"set_count", wrap_slot<l_set_count>},
{"size", lua::wrap<l_size>},
{"add", lua::wrap<l_add>},
{"move", lua::wrap<l_move>},