Skip to content

Commit

Permalink
respect areas setting (#75)
Browse files Browse the repository at this point in the history
* respect [areas] setting
* de duplicate code
  • Loading branch information
SwissalpS authored Oct 4, 2024
1 parent d77158f commit d99c17d
Showing 1 changed file with 9 additions and 16 deletions.
25 changes: 9 additions & 16 deletions areas.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,16 @@ end
-- protection check
local old_is_protected = minetest.is_protected
function minetest.is_protected(pos, name)
if areas.getSmallestAreaAtPos then
local area_list
if areas.config.use_smallest_area_precedence then
local _, id = areas:getSmallestAreaAtPos(pos)
local xp_area = id and xp_areas[id]
area_list = id and { [id] = true } or {}
else
area_list = areas:getAreasAtPos(pos)
end
for id in pairs(area_list) do
local xp_area = xp_areas[id]

if xp_area then
local xp = xp_redo.get_xp(name)
if xp_area.min and xp < xp_area.min then
Expand All @@ -20,20 +27,6 @@ function minetest.is_protected(pos, name)
return true
end
end
else
local area_list = areas:getAreasAtPos(pos)
for id in pairs(area_list) do
local xp_area = xp_areas[id]

if xp_area then
local xp = xp_redo.get_xp(name)
if xp_area.min and xp < xp_area.min then
return true
elseif xp_area.max and xp > xp_area.max then
return true
end
end
end
end

return old_is_protected(pos, name)
Expand Down

0 comments on commit d99c17d

Please sign in to comment.