miroir de
https://github.com/OgelGames/fakelib.git
synchronisé 2025-06-30 23:40:55 +02:00
add vector check
Cette révision appartient à :
2
init.lua
2
init.lua
@ -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
10
misc.lua
Fichier normal
@ -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
|
@ -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)
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur