Extra error checking.

This commit is contained in:
Duane 2016-07-15 02:58:33 -05:00
parent aa999e2ed5
commit bf26b8bee1
25 changed files with 897 additions and 314 deletions

View file

@ -4,6 +4,10 @@ local max_depth = 31000
local old_is_protected = minetest.is_protected
function minetest.is_protected(pos, name)
if not (pos and name and type(name) == 'string') then
return
end
local node = get_node_or_nil(pos)
if node and get_item_group(node.name, "fortress") ~= 0 then
return true
@ -133,6 +137,10 @@ minetest.register_craft({
})
local function rope_remove(pos)
if not pos then
return
end
for i = 1, 100 do
local newpos = table.copy(pos)
newpos.y = newpos.y - i
@ -166,19 +174,21 @@ for length = 10, 50, 10 do
legacy_wallmounted = true,
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing)
if pointed_thing and pointed_thing.above then
local pos = pointed_thing.above
local orig = minetest.get_node_or_nil(pos)
if orig and orig.name and orig.param2 and good_params[orig.param2] then
for i = 1, length do
local newpos = table.copy(pos)
newpos.y = newpos.y - i
local node = minetest.get_node_or_nil(newpos)
if node and node.name and node.name == 'air' then
minetest.set_node(newpos, {name='fun_caves:rope_ladder_piece', param2=orig.param2})
else
break
end
if not (pointed_thing and pointed_thing.above) then
return
end
local pos_old = pointed_thing.above
local orig = minetest.get_node_or_nil(pos_old)
if orig and orig.name and orig.param2 and good_params[orig.param2] then
for i = 1, length do
local newpos = table.copy(pos_old)
newpos.y = newpos.y - i
local node = minetest.get_node_or_nil(newpos)
if node and node.name and node.name == 'air' then
minetest.set_node(newpos, {name='fun_caves:rope_ladder_piece', param2=orig.param2})
else
break
end
end
end