aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-12-06 18:59:52 +0200
committerPerttu Ahola <celeron55@gmail.com>2012-01-02 02:59:14 +0200
commite48ccd79430db7c9e25209fdff51f8f36e20f202 (patch)
tree337117a8e98c83946bf26b35d05ac988523b8f10
parent6be5441176a14137b92f03d9d519234ebee28f6c (diff)
downloadminetest-e48ccd79430db7c9e25209fdff51f8f36e20f202.tar.gz
minetest-e48ccd79430db7c9e25209fdff51f8f36e20f202.tar.bz2
minetest-e48ccd79430db7c9e25209fdff51f8f36e20f202.zip
Add ObjectRef:get_inventory() and add stuff to documentation comments
-rw-r--r--data/mods/default/init.lua19
-rw-r--r--src/scriptapi.cpp22
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"<<std::endl;
ObjectRef *ref = checkobject(L, 1);
ServerRemotePlayer *player = getplayer(ref);
if(player == NULL) return 0;
@@ -2019,9 +2031,10 @@ private:
return 0;
}
- // inventory_get_list(self, name)
+ // deprecated: inventory_get_list(self, name)
static int l_inventory_get_list(lua_State *L)
{
+ infostream<<"Deprecated: inventory_get_list"<<std::endl;
ObjectRef *ref = checkobject(L, 1);
ServerRemotePlayer *player = getplayer(ref);
if(player == NULL) return 0;
@@ -2179,8 +2192,9 @@ const luaL_reg ObjectRef::methods[] = {
method(ObjectRef, setsprite),
// Player-only
method(ObjectRef, get_player_name),
- method(ObjectRef, inventory_set_list),
- method(ObjectRef, inventory_get_list),
+ method(ObjectRef, get_inventory),
+ method(ObjectRef, inventory_set_list), // deprecated
+ method(ObjectRef, inventory_get_list), // deprecated
method(ObjectRef, get_wielded_itemstring),
method(ObjectRef, get_wielded_item),
method(ObjectRef, get_look_dir),