fix factions issue (thanks MisterE), tidy protector display removal

This commit is contained in:
tenplus1 2020-12-25 08:24:09 +00:00
commit 5672606432

View file

@ -65,7 +65,7 @@ end
-- check for member name
local is_member = function (meta, name)
local is_member = function(meta, name)
if factions_available
and meta:get_int("faction_members") == 1 then
@ -81,6 +81,9 @@ local is_member = function (meta, name)
else
-- is member if player and owner share at least one faction
local owner_factions = factions.get_player_factions(name)
local owner = meta:get_string("owner")
if owner_factions ~= nil and owner_factions ~= false then
for _, f in ipairs(owner_factions) do
@ -90,6 +93,7 @@ local is_member = function (meta, name)
end
end
end
end
for _, n in pairs(get_member_list(meta)) do
@ -444,6 +448,19 @@ local check_overlap = function(itemstack, placer, pointed_thing)
end
-- remove protector display entities
local del_display = function(pos)
local objects = minetest.get_objects_inside_radius(pos, 0.5)
for _, v in ipairs(objects) do
if v:get_luaentity().name == "protector:display" then
v:remove()
end
end
end
-- temporary pos store
local player_pos = {}
@ -521,17 +538,14 @@ minetest.register_node("protector:protect", {
on_blast = function() end,
after_destruct = function(pos, oldnode)
local objects = minetest.get_objects_inside_radius(pos, 0.5)
for _, v in ipairs(objects) do
v:remove()
end
end,
after_destruct = del_display
})
-- default recipe and alternative for MineClone2
if protector_recipe then
if minetest.registered_items["default:stone"] then
minetest.register_craft({
output = "protector:protect",
recipe = {
@ -541,6 +555,7 @@ if protector_recipe then
}
})
else
minetest.register_craft({
output = "protector:protect",
recipe = {
@ -627,12 +642,7 @@ minetest.register_node("protector:protect2", {
on_blast = function() end,
after_destruct = function(pos, oldnode)
local objects = minetest.get_objects_inside_radius(pos, 0.5)
for _, v in ipairs(objects) do
v:remove()
end
end,
after_destruct = del_display
})
-- recipes to switch between protectors