add vector check

This commit is contained in:
OgelGames 2024-05-19 15:23:58 +10:00
parent 799c4b706d
commit 191aa0510d
3 changed files with 14 additions and 2 deletions

View File

@ -30,6 +30,8 @@ for _,file in pairs({"metadata", "inventory", "player"}) do
loadfile(path.."/"..file..".lua")(check, secure_table)
end
dofile(path.."/misc.lua")
if minetest.is_singleplayer() then
minetest.register_chatcommand("fakelib_test", {
description = "Test fakelib's API.",

10
misc.lua Normal file
View File

@ -0,0 +1,10 @@
function fakelib.is_vector(x, add_metatable)
if type(x) ~= "table" or type(x.x) ~= "number" or type(x.y) ~= "number" or type(x.z) ~= "number" then
return false
end
if add_metatable and getmetatable(x) ~= vector.metatable then
setmetatable(x, vector.metatable)
end
return true
end

View File

@ -26,10 +26,10 @@ function fakelib.create_player(options)
if type(options.name) == "string" then
data.name = options.name
end
if type(options.position) == "table" then
if fakelib.is_vector(options.position) then
data.position = vector.copy(options.position)
end
if type(options.direction) == "table" then
if fakelib.is_vector(options.direction) then
local dir = vector.normalize(options.direction)
data.pitch = -math.asin(dir.y)
data.yaw = math.atan2(-dir.x, dir.z) % (math.pi * 2)