Extra error checking.
This commit is contained in:
parent
aa999e2ed5
commit
bf26b8bee1
25 changed files with 897 additions and 314 deletions
36
nodes.lua
36
nodes.lua
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue