diff options
author | Auke Kok <sofar@foo-projects.org> | 2017-01-12 11:56:41 -0800 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2017-01-23 07:38:39 +0000 |
commit | 7fc67199683d3c60fe0b3ddcb2a9594b4804cc38 (patch) | |
tree | f79879304d42bfeb5ae649d12cc4850b8029828d | |
parent | 2d7a6f2cc0717eb92de4a91326a871d525ce513d (diff) | |
download | minetest-7fc67199683d3c60fe0b3ddcb2a9594b4804cc38.tar.gz minetest-7fc67199683d3c60fe0b3ddcb2a9594b4804cc38.tar.bz2 minetest-7fc67199683d3c60fe0b3ddcb2a9594b4804cc38.zip |
core: Add dir_to_yaw and yaw_to_dir helpers
These are needed to go from things like entity yaw to a vector
and vice versa.
-rw-r--r-- | builtin/game/item.lua | 8 | ||||
-rw-r--r-- | doc/lua_api.txt | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/builtin/game/item.lua b/builtin/game/item.lua index bf456a4e0..e51da6d6b 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -147,6 +147,14 @@ function core.wallmounted_to_dir(wallmounted) return wallmounted_to_dir[wallmounted] end +function core.dir_to_yaw(dir) + return -math.atan2(dir.x, dir.z) +end + +function core.yaw_to_dir(yaw) + return {x = -math.sin(yaw), y = 0, z = math.cos(yaw)} +end + function core.get_node_drops(nodename, toolname) local drop = ItemStack({name=nodename}):get_definition().drop if drop == nil then diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 31a1daefb..62a7b81f7 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2403,6 +2403,10 @@ and `minetest.auth_reload` call the authetification handler. * Convert a vector to a wallmounted value, used for `paramtype2="wallmounted"` * `minetest.wallmounted_to_dir(wallmounted)` * Convert a wallmounted value back into a vector aimed directly out the "back" of a node +* `minetest.dir_to_yaw(dir)` + * Convert a vector into a yaw (angle) +* `minetest.yaw_to_dir(yaw)` + * Convert yaw (angle) to a vector * `minetest.get_node_drops(nodename, toolname)` * Returns list of item names. * **Note**: This will be removed or modified in a future version. |