Minetest-WorldEditAdditions/worldeditadditions_commands/commands/measure/mtrig.lua

35 lines
1.2 KiB
Lua
Raw Normal View History

2022-09-18 23:46:20 +02:00
local wea_c = worldeditadditions_core
2022-09-19 20:42:22 +02:00
local Vector3 = wea_c.Vector3
2022-09-18 23:46:20 +02:00
2021-07-13 18:09:40 +02:00
-- ███ ███ ████████ ██████ ██ ██████
-- ████ ████ ██ ██ ██ ██ ██
-- ██ ████ ██ ██ ██████ ██ ██ ███
-- ██ ██ ██ ██ ██ ██ ██ ██ ██
-- ██ ██ ██ ██ ██ ██ ██████
2022-09-18 23:46:20 +02:00
worldeditadditions_core.register_command("mtrig", {
2021-07-09 05:54:05 +02:00
params = "",
2021-07-14 04:43:56 +02:00
description = "Return the length of and angles of an imginary line between pos1 and pos2 in the selection.",
2021-07-09 05:54:05 +02:00
privs = { worldedit = true },
require_pos = 2,
parse = function(params_text)
return true
end,
func = function(name, params_text)
local str = "The measurements of the line from pos1 to pos2 are Length (D): "
2022-09-18 23:46:20 +02:00
2024-10-08 00:40:34 +02:00
local pos1 = Vector3.clone(wea_c.pos.get(name, 2))
local pos2 = Vector3.clone(wea_c.pos.get(name, 1))
2022-09-18 23:46:20 +02:00
local vec = (pos2 - pos1):abs()
2021-07-13 18:09:40 +02:00
local len = vec:length()
2022-09-18 23:46:20 +02:00
str = str..wea_c.round(len, 4)..", ∠XZ: "..
wea_c.round(math.deg(math.atan(vec.z/vec.x)), 4).."°, ∠DY: "..
wea_c.round(math.deg(math.asin(vec.y/len)), 4).."°"
2021-07-09 05:54:05 +02:00
return true, str
end,
})