2020-10-22 03:31:53 -07:00
|
|
|
function skywars.print_error(player, msg)
|
|
|
|
minetest.chat_send_player(player, minetest.colorize("#e6482e", skywars_settings.prefix .. msg))
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function skywars.print_msg(player, msg)
|
|
|
|
minetest.chat_send_player(player, skywars_settings.prefix .. msg)
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function skywars.get_arena_by_pos(pos)
|
|
|
|
for i, arena in pairs(arena_lib.mods["skywars"].arenas) do
|
2020-11-02 09:13:45 -08:00
|
|
|
if arena.min_pos.x == nil or arena.max_pos.x == nil then goto continue end
|
2020-10-22 03:31:53 -07:00
|
|
|
|
2020-11-02 09:13:45 -08:00
|
|
|
skywars.reorder_positions(arena.min_pos, arena.max_pos)
|
|
|
|
local map_area = VoxelArea:new{MinEdge = arena.min_pos, MaxEdge = arena.max_pos}
|
2020-10-22 03:31:53 -07:00
|
|
|
|
|
|
|
if map_area:contains(pos.x, pos.y, pos.z) then
|
2020-10-22 15:35:26 -07:00
|
|
|
return arena
|
2020-10-22 03:31:53 -07:00
|
|
|
end
|
|
|
|
|
|
|
|
::continue::
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-02 09:13:45 -08:00
|
|
|
-- reordering the corners positions so that min_pos is smaller than max_pos
|
|
|
|
function skywars.reorder_positions(min_pos, max_pos)
|
2020-10-22 03:31:53 -07:00
|
|
|
local temp
|
|
|
|
|
2020-11-02 09:13:45 -08:00
|
|
|
if min_pos.z > max_pos.z then
|
|
|
|
temp = min_pos.z
|
|
|
|
min_pos.z = max_pos.z
|
|
|
|
max_pos.z = temp
|
2020-10-22 03:31:53 -07:00
|
|
|
end
|
|
|
|
|
2020-11-02 09:13:45 -08:00
|
|
|
if min_pos.y > max_pos.y then
|
|
|
|
temp = min_pos.y
|
|
|
|
min_pos.y = max_pos.y
|
|
|
|
max_pos.y = temp
|
2020-10-22 03:31:53 -07:00
|
|
|
end
|
|
|
|
|
2020-11-02 09:13:45 -08:00
|
|
|
if min_pos.x > max_pos.x then
|
|
|
|
temp = min_pos.x
|
|
|
|
min_pos.x = max_pos.x
|
|
|
|
max_pos.x = temp
|
2020-10-22 03:31:53 -07:00
|
|
|
end
|
|
|
|
|
2020-11-02 09:13:45 -08:00
|
|
|
return min_pos, max_pos
|
2020-10-22 03:31:53 -07:00
|
|
|
end
|