core.get_objects_inside_radius: Omit removed objects (#6318)

Fixes #6294
This commit is contained in:
you 2017-08-27 18:38:50 +02:00 committed by SmallJoker
parent de331b18e9
commit e09c7fceaa
2 changed files with 6 additions and 4 deletions

@ -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

@ -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;
}