From e48ccd79430db7c9e25209fdff51f8f36e20f202 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 6 Dec 2011 18:59:52 +0200 Subject: [PATCH] Add ObjectRef:get_inventory() and add stuff to documentation comments --- data/mods/default/init.lua | 19 +++++++++++++++++++ src/scriptapi.cpp | 22 ++++++++++++++++++---- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/data/mods/default/init.lua b/data/mods/default/init.lua index abbeab5d5..2b92aef5a 100644 --- a/data/mods/default/init.lua +++ b/data/mods/default/init.lua @@ -110,7 +110,10 @@ -- minetest.chat_send_all(text) -- minetest.chat_send_player(name, text) -- minetest.get_player_privs(name) -> set of privs +-- minetest.get_inventory(location) -> InvRef -- minetest.get_modpath(modname) -> eg. "/home/user/.minetest/usermods/modname" +-- ^ location = eg. {type="player", name="celeron55"} +-- {type="node", pos={x=, y=, z=}} -- -- stackstring_take_item(stackstring) -> stackstring, item -- stackstring_put_item(stackstring, item) -> stackstring, success @@ -207,7 +210,23 @@ -- - inventory_get_list(name) -> {item1, item2, ...} -- - get_look_dir(): get camera direction as a unit vector -- - get_look_pitch(): pitch in radians +-- -- - get_look_yaw(): yaw in radians (wraps around pretty randomly as of now) +-- InvRef +-- - get_size(listname): get size of a list +-- - set_size(listname, size): set size of a list +-- - get_stack(listname, i): get a copy of stack index i in list +-- - set_stack(listname, i, stack): copy stack to index i in list +-- - get_list(listname): return full list +-- - set_list(listname, list): set full list (size will not change) +-- - autoinsert_stack(listname, stack): insert stack somewhere in list +-- - autoinsert_stackstring(listname, stackstring) +-- +-- ItemStack +-- - peek_item(): return item from stack without removing it +-- - take_item(): remove item from stack and return it +-- - put_item(): put item in stack; return false if not possible +-- - put_stackstring(): put stackstring in stack; return false if not possible -- -- Registered entities: -- - Functions receive a "luaentity" as self: diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index c6a44c914..4dcb66c77 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -2005,9 +2005,21 @@ private: return 1; } - // inventory_set_list(self, name, {item1, item2, ...}) + // get_inventory(self) + static int l_get_inventory(lua_State *L) + { + ObjectRef *ref = checkobject(L, 1); + ServerRemotePlayer *player = getplayer(ref); + if(player == NULL) return 0; + // Do it + InvRef::createPlayer(L, player); + return 1; + } + + // deprecated: inventory_set_list(self, name, {item1, item2, ...}) static int l_inventory_set_list(lua_State *L) { + infostream<<"Deprecated: inventory_set_list"<