diff options
author | Dániel Juhász <juhdanad@gmail.com> | 2016-12-01 20:15:37 +0100 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2017-12-26 21:51:32 +0000 |
commit | 2153965cf92ab61b0d7e095cf3c2755924fdc221 (patch) | |
tree | 3895bdca9684f0f94a2a9f8653e013eecc0d4e1e /src/script/lua_api | |
parent | ca64f564cd23dba45bc93b57a718dfe81df5ba27 (diff) | |
download | minetest-2153965cf92ab61b0d7e095cf3c2755924fdc221.tar.gz minetest-2153965cf92ab61b0d7e095cf3c2755924fdc221.tar.bz2 minetest-2153965cf92ab61b0d7e095cf3c2755924fdc221.zip |
Line_of_sight: Improve using VoxelLineIterator
This commit rewrites line_of_sight with VoxelLineIterator.
Stepsize is no longer needed, the results will be always accurate.
Diffstat (limited to 'src/script/lua_api')
-rw-r--r-- | src/script/lua_api/l_env.cpp | 11 | ||||
-rw-r--r-- | src/script/lua_api/l_env.h | 2 |
2 files changed, 4 insertions, 9 deletions
diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index 870eeb1ae..237d14ab3 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -966,24 +966,19 @@ int ModApiEnvMod::l_clear_objects(lua_State *L) return 0; } -// line_of_sight(pos1, pos2, stepsize) -> true/false, pos +// line_of_sight(pos1, pos2) -> true/false, pos int ModApiEnvMod::l_line_of_sight(lua_State *L) { - float stepsize = 1.0; - GET_ENV_PTR; // read position 1 from lua v3f pos1 = checkFloatPos(L, 1); // read position 2 from lua v3f pos2 = checkFloatPos(L, 2); - //read step size from lua - if (lua_isnumber(L, 3)) { - stepsize = lua_tonumber(L, 3); - } v3s16 p; - bool success = env->line_of_sight(pos1, pos2, stepsize, &p); + + bool success = env->line_of_sight(pos1, pos2, &p); lua_pushboolean(L, success); if (!success) { push_v3s16(L, p); diff --git a/src/script/lua_api/l_env.h b/src/script/lua_api/l_env.h index 6cfdc0f6d..1314456f8 100644 --- a/src/script/lua_api/l_env.h +++ b/src/script/lua_api/l_env.h @@ -156,7 +156,7 @@ private: // spawn_tree(pos, treedef) static int l_spawn_tree(lua_State *L); - // line_of_sight(pos1, pos2, stepsize) -> true/false + // line_of_sight(pos1, pos2) -> true/false static int l_line_of_sight(lua_State *L); // raycast(pos1, pos2, objects, liquids) -> Raycast |