mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Implement vector and node conversion in Lua (#12609)
Co-authored-by: sfan5 <sfan5@live.de>
This commit is contained in:
parent
23e9f5db43
commit
b38ffdec27
29 changed files with 191 additions and 167 deletions
|
@ -6,8 +6,10 @@ Note: The vector.*-functions must be able to accept old vectors that had no meta
|
|||
-- localize functions
|
||||
local setmetatable = setmetatable
|
||||
|
||||
-- vector.metatable is set by C++.
|
||||
local metatable = vector.metatable
|
||||
vector = {}
|
||||
|
||||
local metatable = {}
|
||||
vector.metatable = metatable
|
||||
|
||||
local xyz = {"x", "y", "z"}
|
||||
|
||||
|
@ -366,3 +368,22 @@ function vector.dir_to_rotation(forward, up)
|
|||
end
|
||||
return rot
|
||||
end
|
||||
|
||||
if rawget(_G, "core") and core.set_read_vector and core.set_push_vector then
|
||||
local function read_vector(v)
|
||||
return v.x, v.y, v.z
|
||||
end
|
||||
core.set_read_vector(read_vector)
|
||||
core.set_read_vector = nil
|
||||
|
||||
if rawget(_G, "jit") then
|
||||
-- This is necessary to prevent trace aborts.
|
||||
local function push_vector(x, y, z)
|
||||
return (fast_new(x, y, z))
|
||||
end
|
||||
core.set_push_vector(push_vector)
|
||||
else
|
||||
core.set_push_vector(fast_new)
|
||||
end
|
||||
core.set_push_vector = nil
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue