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.
master
Auke Kok 2017-01-12 11:56:41 -08:00 committed by paramat
parent 2d7a6f2cc0
commit 7fc6719968
2 changed files with 12 additions and 0 deletions

View File

@ -147,6 +147,14 @@ function core.wallmounted_to_dir(wallmounted)
return wallmounted_to_dir[wallmounted] return wallmounted_to_dir[wallmounted]
end 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) function core.get_node_drops(nodename, toolname)
local drop = ItemStack({name=nodename}):get_definition().drop local drop = ItemStack({name=nodename}):get_definition().drop
if drop == nil then if drop == nil then

View File

@ -2403,6 +2403,10 @@ and `minetest.auth_reload` call the authetification handler.
* Convert a vector to a wallmounted value, used for `paramtype2="wallmounted"` * Convert a vector to a wallmounted value, used for `paramtype2="wallmounted"`
* `minetest.wallmounted_to_dir(wallmounted)` * `minetest.wallmounted_to_dir(wallmounted)`
* Convert a wallmounted value back into a vector aimed directly out the "back" of a node * 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)` * `minetest.get_node_drops(nodename, toolname)`
* Returns list of item names. * Returns list of item names.
* **Note**: This will be removed or modified in a future version. * **Note**: This will be removed or modified in a future version.