aboutsummaryrefslogtreecommitdiff
path: root/src/script/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/common')
-rw-r--r--src/script/common/c_content.cpp14
-rw-r--r--src/script/common/c_content.h3
2 files changed, 17 insertions, 0 deletions
diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp
index 44b638ba7..9efa2c57f 100644
--- a/src/script/common/c_content.cpp
+++ b/src/script/common/c_content.cpp
@@ -1307,6 +1307,20 @@ void push_tool_capabilities(lua_State *L,
}
/******************************************************************************/
+void push_inventory(lua_State *L, Inventory *inventory)
+{
+ std::vector<const InventoryList*> lists = inventory->getLists();
+ std::vector<const InventoryList*>::iterator iter = lists.begin();
+ lua_createtable(L, 0, lists.size());
+ for (; iter != lists.end(); iter++) {
+ const char* name = (*iter)->getName().c_str();
+ lua_pushstring(L, name);
+ push_inventory_list(L, inventory, name);
+ lua_rawset(L, -3);
+ }
+}
+
+/******************************************************************************/
void push_inventory_list(lua_State *L, Inventory *inv, const char *name)
{
InventoryList *invlist = inv->getList(name);
diff --git a/src/script/common/c_content.h b/src/script/common/c_content.h
index 8f32e58eb..5a8bf6700 100644
--- a/src/script/common/c_content.h
+++ b/src/script/common/c_content.h
@@ -116,6 +116,9 @@ void read_object_properties (lua_State *L, int index,
void push_object_properties (lua_State *L,
ObjectProperties *prop);
+void push_inventory (lua_State *L,
+ Inventory *inventory);
+
void push_inventory_list (lua_State *L,
Inventory *inv,
const char *name);