1
0
miroir de https://github.com/OgelGames/fakelib.git synchronisé 2025-06-30 23:40:55 +02:00

add vector check

Cette révision appartient à :
OgelGames
2024-05-19 15:23:58 +10:00
Parent 799c4b706d
révision 191aa0510d
3 fichiers modifiés avec 14 ajouts et 2 suppressions

Voir le fichier

@ -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 Fichier normal
Voir le fichier

@ -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

Voir le fichier

@ -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)