24 lines
616 B
Lua
24 lines
616 B
Lua
function core.parse_pos(param)
|
|
local p = {}
|
|
p.x, p.y, p.z = string.match(param, "^([~|%d.-]+)[, ] *([~|%d.-]+)[, ] *([~|%d.-]+)$")
|
|
for k, v in pairs(p) do
|
|
if p[k] == "~" then
|
|
p[k] = 0
|
|
else
|
|
p[k] = tonumber(v)
|
|
end
|
|
end
|
|
if p.x and p.y and p.z then
|
|
return true, p
|
|
end
|
|
return false, "Invalid position (" .. param .. ")"
|
|
end
|
|
|
|
function core.parse_relative_pos(param)
|
|
local success, pos = core.parse_pos(param)
|
|
if success then pos = vector.round(vector.add(core.localplayer:get_pos(), pos)) end
|
|
return success, pos
|
|
end
|
|
|
|
core.anticheat_protection = minetest.settings:get_bool("anticheat_protection")
|