From: MetaDucky Date: Sun, 26 May 2013 09:27:06 +0000 (+0200) Subject: Fix minetest.get_inventory(loc) always returning nil for "node" type loc X-Git-Tag: 0.4.7~14^2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=64627817fcca52f20948c24b60ce192b218f6ce2;p=oweals%2Fminetest.git Fix minetest.get_inventory(loc) always returning nil for "node" type loc --- 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)