diff --git a/_map_handler/map_manager.lua b/_map_handler/map_manager.lua index 7dc4e3f..5c47ade 100644 --- a/_map_handler/map_manager.lua +++ b/_map_handler/map_manager.lua @@ -1,24 +1,6 @@ --- reordering the corners positions so that pos1 is smaller than pos2 -local function reorder_positions() end local function save_block() end -function skywars.get_arena_by_pos(pos) - for i, arena in pairs(arena_lib.mods["skywars"].arenas) do - if arena.pos1.x == nil or arena.pos2.x == nil then goto continue end - - local map_area = VoxelArea:new{MinEdge = arena.pos1, MaxEdge = arena.pos2} - - if map_area:contains(pos.x, pos.y, pos.z) then - return arena - end - - ::continue:: - end -end - - - function skywars.load_map_mapblocks(arena) minetest.load_area(arena.pos1, arena.pos2) minetest.emerge_area(arena.pos1, arena.pos2) @@ -118,35 +100,6 @@ end --- reordering the corners positions so that pos1 is smaller than pos2 -function reorder_positions(pos1, pos2) - local temp - - if pos1.z > pos2.z then - temp = pos1.z - pos1.z = pos2.z - pos2.z = temp - end - - if pos1.y > pos2.y then - temp = pos1.y - pos1.y = pos2.y - pos2.y = temp - end - - if pos1.x > pos2.x then - temp = pos1.x - pos1.x = pos2.x - pos2.x = temp - end - - return pos1, pos2 - -end - - - - function save_block(arena, pos, node) local maps = skywars.load_maps() local serialized_pos = minetest.serialize(pos) diff --git a/commands.lua b/commands.lua index 57fdf54..62795a2 100644 --- a/commands.lua +++ b/commands.lua @@ -436,7 +436,7 @@ function(cmd) cmd:sub("inspect", function(sender) - local arena, arena_name = get_valid_arena("@", sender, true) + local arena, arena_name = get_valid_arena("@", sender) local found = false local pos = get_looking_node_pos(sender) @@ -773,7 +773,6 @@ function(cmd) arena_lib.change_arena_property(sender, "skywars", arena.name, "pos1", arena.pos1) skywars.print_msg(sender, skywars.T("Position saved!")) - end) diff --git a/init.lua b/init.lua index 316248a..8a18431 100644 --- a/init.lua +++ b/init.lua @@ -60,4 +60,53 @@ 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 + if arena.pos1.x == nil or arena.pos2.x == nil then + minetest.log("Arena " .. arena.name .. " corners not set") + goto continue + end + + reorder_positions(arena.pos1, arena.pos2) + local map_area = VoxelArea:new{MinEdge = arena.pos1, MaxEdge = arena.pos2} + + minetest.log("Arena " .. arena.name .. " corners: " .. minetest.pos_to_string(arena.pos1, 1) .. " " .. minetest.pos_to_string(arena.pos2, 1)) + + if map_area:contains(pos.x, pos.y, pos.z) then + return arena + end + + ::continue:: + end +end + + + +-- reordering the corners positions so that pos1 is smaller than pos2 +function reorder_positions(pos1, pos2) + local temp + + if pos1.z > pos2.z then + temp = pos1.z + pos1.z = pos2.z + pos2.z = temp + end + + if pos1.y > pos2.y then + temp = pos1.y + pos1.y = pos2.y + pos2.y = temp + end + + if pos1.x > pos2.x then + temp = pos1.x + pos1.x = pos2.x + pos2.x = temp + end + + return pos1, pos2 end \ No newline at end of file