Fix weird arguments given to is_protected

This commit is contained in:
Wuzzy 2019-02-11 21:27:17 +01:00
parent dee5f3bda6
commit aa3739528b
6 changed files with 31 additions and 10 deletions

View file

@ -28,10 +28,10 @@ minetest.register_craftitem("mcl_fire:fire_charge", {
if nodedef and nodedef._on_ignite then
local overwrite = nodedef._on_ignite(user, pointed_thing)
if not overwrite then
mcl_fire.set_fire(pointed_thing)
mcl_fire.set_fire(pointed_thing, user)
end
else
mcl_fire.set_fire(pointed_thing)
mcl_fire.set_fire(pointed_thing, user)
end
if not minetest.settings:get_bool("creative_mode") then
itemstack:take_item()

View file

@ -33,10 +33,10 @@ minetest.register_tool("mcl_fire:flint_and_steel", {
if nodedef and nodedef._on_ignite then
local overwrite = nodedef._on_ignite(user, pointed_thing)
if not overwrite then
mcl_fire.set_fire(pointed_thing)
mcl_fire.set_fire(pointed_thing, user)
end
else
mcl_fire.set_fire(pointed_thing)
mcl_fire.set_fire(pointed_thing, user)
end
used = true
end

View file

@ -393,10 +393,22 @@ else -- Fire enabled
end
-- Set pointed_thing on (normal) fire
mcl_fire.set_fire = function(pointed_thing)
-- Set pointed_thing on (normal) fire.
-- * pointed_thing: Pointed thing to ignite
-- * player: Player who sets fire or nil if nobody
mcl_fire.set_fire = function(pointed_thing, player)
local pname
if player == nil then
pname = ""
else
pname = player:get_player_name()
end
local n = minetest.get_node(pointed_thing.above)
if n.name == "air" and not minetest.is_protected(pointed_thing.above, "fire") then
if minetest.is_protected(pointed_thing.above, pname) then
minetest.record_protection_violation(pointed_thing.above, pname)
return
end
if n.name == "air" then
minetest.add_node(pointed_thing.above, {name="mcl_fire:fire"})
end
end