diff options
author | MetaDucky <metaducky AT gmail DOT com> | 2013-05-26 11:27:06 +0200 |
---|---|---|
committer | Kahrl <kahrl@gmx.net> | 2013-06-01 12:15:11 +0200 |
commit | 64627817fcca52f20948c24b60ce192b218f6ce2 (patch) | |
tree | b5461d505390f4f1987fcbf5a9e1dae3e0cbbbb7 | |
parent | a61aa6690b5a5bf804c6de22eed95a68ba480e7d (diff) | |
download | minetest-64627817fcca52f20948c24b60ce192b218f6ce2.tar.gz minetest-64627817fcca52f20948c24b60ce192b218f6ce2.tar.bz2 minetest-64627817fcca52f20948c24b60ce192b218f6ce2.zip |
Fix minetest.get_inventory(loc) always returning nil for "node" type loc
-rw-r--r-- | src/script/lua_api/l_inventory.cpp | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/src/script/lua_api/l_inventory.cpp b/src/script/lua_api/l_inventory.cpp index 6dfb7a28c..1404c3c8a 100644 --- a/src/script/lua_api/l_inventory.cpp +++ b/src/script/lua_api/l_inventory.cpp @@ -416,9 +416,18 @@ int ModApiInventory::l_get_inventory(lua_State *L) std::string type = checkstringfield(L, 1, "type"); - if(type != "pos"){ - NO_MAP_LOCK_REQUIRED; + if(type == "node"){ + lua_getfield(L, 1, "pos"); + v3s16 pos = check_v3s16(L, -1); + loc.setNodeMeta(pos); + if(getServer(L)->getInventory(loc) != NULL) + InvRef::create(L, loc); + else + lua_pushnil(L); + return 1; + } else { + NO_MAP_LOCK_REQUIRED; if(type == "player"){ std::string name = checkstringfield(L, 1, "name"); loc.setPlayer(name); @@ -431,22 +440,9 @@ int ModApiInventory::l_get_inventory(lua_State *L) InvRef::create(L, loc); else lua_pushnil(L); - - return 1; - } - else { - if(type == "node"){ - lua_getfield(L, 1, "pos"); - v3s16 pos = check_v3s16(L, -1); - loc.setNodeMeta(pos); - } - if(getServer(L)->getInventory(loc) != NULL) - InvRef::create(L, loc); - else - lua_pushnil(L); - return 1; + return 1; + // END NO_MAP_LOCK_REQUIRED; } - } // create_detached_inventory_raw(name) |