diff options
author | you <ovvv@web.de> | 2017-08-27 18:38:50 +0200 |
---|---|---|
committer | SmallJoker <SmallJoker@users.noreply.github.com> | 2017-08-27 18:38:50 +0200 |
commit | e09c7fceaa93ad3d7d85f657df0663f6efc70281 (patch) | |
tree | 46e3f3a1f27e88074c75c6916e431f001218d943 | |
parent | de331b18e921be1489b8cb151c628dadf3cc5ce7 (diff) | |
download | minetest-e09c7fceaa93ad3d7d85f657df0663f6efc70281.tar.gz minetest-e09c7fceaa93ad3d7d85f657df0663f6efc70281.tar.bz2 minetest-e09c7fceaa93ad3d7d85f657df0663f6efc70281.zip |
core.get_objects_inside_radius: Omit removed objects (#6318)
Fixes #6294
-rw-r--r-- | doc/lua_api.txt | 2 | ||||
-rw-r--r-- | src/script/lua_api/l_env.cpp | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 152da5985..d8e58f2a8 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2555,7 +2555,7 @@ and `minetest.auth_reload` call the authetification handler. * `minetest.add_item(pos, item)`: Spawn item * Returns `ObjectRef`, or `nil` if failed * `minetest.get_player_by_name(name)`: Get an `ObjectRef` to a player -* `minetest.get_objects_inside_radius(pos, radius)` +* `minetest.get_objects_inside_radius(pos, radius)`: returns a list of ObjectRefs * `radius`: using an euclidean metric * `minetest.set_timeofday(val)` * `val` is between `0` and `1`; `0` for midnight, `0.5` for midday diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index 07d33a4eb..be92365ac 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -642,9 +642,11 @@ int ModApiEnvMod::l_get_objects_inside_radius(lua_State *L) std::vector<u16>::const_iterator iter = ids.begin(); for(u32 i = 0; iter != ids.end(); ++iter) { ServerActiveObject *obj = env->getActiveObject(*iter); - // Insert object reference into table - script->objectrefGetOrCreate(L, obj); - lua_rawseti(L, -2, ++i); + if (!obj->m_removed) { + // Insert object reference into table + script->objectrefGetOrCreate(L, obj); + lua_rawseti(L, -2, ++i); + } } return 1; } |