Fix trap drops. Add rope ladder.

This commit is contained in:
Duane 2016-06-19 19:34:46 -05:00
parent 35c08b1aa4
commit f93da354d9
5 changed files with 111 additions and 9 deletions

View file

@ -600,3 +600,101 @@ minetest.register_craftitem("fun_caves:philosophers_stone", {
newnode = fun_caves.clone_node("default:stone")
newnode.tiles = {'dna.png'}
minetest.register_node("fun_caves:dna", newnode)
local function rope_remove(pos)
for i = 1, 100 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 == 'fun_caves:rope_ladder_piece' then
minetest.set_node(newpos, {name='air'})
else
break
end
end
end
local good_params = {nil, true, true, true, true}
for length = 10, 50, 10 do
minetest.register_node("fun_caves:rope_ladder_"..length, {
description = "Rope Ladder ("..length.." meter)",
drawtype = "signlike",
tiles = {"fun_caves_rope_ladder.png"},
inventory_image = "fun_caves_rope_ladder.png",
wield_image = "fun_caves_rope_ladder.png",
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
climbable = true,
is_ground_content = false,
selection_box = {
type = "wallmounted",
},
groups = {snappy = 2, oddly_breakable_by_hand = 3, flammable = 2},
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
end
end
end
end,
on_destruct = rope_remove,
})
if length > 10 then
rec = {}
for i = 10, length, 10 do
rec[#rec+1] = 'fun_caves:rope_ladder_10'
end
minetest.register_craft({
output = 'fun_caves:rope_ladder_'..length,
type = 'shapeless',
recipe = rec,
})
end
end
minetest.register_node("fun_caves:rope_ladder_piece", {
description = "Rope Ladder",
drawtype = "signlike",
tiles = {"fun_caves_rope_ladder.png"},
inventory_image = "fun_caves_rope_ladder.png",
wield_image = "fun_caves_rope_ladder.png",
drop = {},
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
climbable = true,
is_ground_content = false,
selection_box = {
type = "wallmounted",
},
groups = {snappy = 2, oddly_breakable_by_hand = 3, flammable = 2},
legacy_wallmounted = true,
sounds = default.node_sound_leaves_defaults(),
on_destruct = rope_remove,
})
minetest.register_craft({
output = 'fun_caves:rope_ladder_10',
recipe = {
{'fun_caves:dry_fiber', '', 'fun_caves:dry_fiber'},
{'fun_caves:dry_fiber', 'fun_caves:dry_fiber', 'fun_caves:dry_fiber'},
{'fun_caves:dry_fiber', '', 'fun_caves:dry_fiber'},
}
})