From e17cda925b7ab7d3d586ed1c40c591854704d770 Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Sat, 12 Jul 2014 16:37:54 -0400 Subject: Add canInteractInArea --- internal.lua | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'internal.lua') diff --git a/internal.lua b/internal.lua index 93b873f..f032b1b 100644 --- a/internal.lua +++ b/internal.lua @@ -81,7 +81,7 @@ function areas:isSubarea(pos1, pos2, id) if not area then return false end - p1, p2 = area.pos1, area.pos2 + local p1, p2 = area.pos1, area.pos2 if (pos1.x >= p1.x and pos1.x <= p2.x) and (pos2.x >= p1.x and pos2.x <= p2.x) and (pos1.y >= p1.y and pos1.y <= p2.y) and @@ -141,17 +141,11 @@ function areas:canPlayerAddArea(pos1, pos2, name) end -- Check intersecting areas - for id, area in pairs(self.areas) do - if (area.pos1.x <= pos2.x and area.pos2.x >= pos1.x) and - (area.pos1.y <= pos2.y and area.pos2.y >= pos1.y) and - (area.pos1.z <= pos2.z and area.pos2.z >= pos1.z) then - -- Found an area intersecting with the suplied area - if not areas:isAreaOwner(id, name) then - return false, ("The area intersects with" - .." %s [%u] owned by %s.") - :format(area.name, id, area.owner) - end - end + local can, id = self:canInteractInArea(pos1, pos2, name) + if not can then + local area = self.areas[id] + return false, ("The area intersects with %s [%u] owned by %s.") + :format(area.name, id, area.owner) end return true -- cgit v1.2.3