extrablocks/tools.lua

95 lines
2.3 KiB
Lua

extrablocks_hammer_list = {
{"default:stone", "default:cobble"},
{"default:cobble", "default:gravel"},
{"default:gravel", "default:dirt", 3},
{"default:gravel", "default:sand"},
{"default:desert_stone", "default:desert_sand"},
{"default:ice", "default:water_source"},
}
minetest.register_tool("extrablocks:hammer", {
description = "Steel Hammer",
inventory_image = "extrablocks_hammer.png",
tool_capabilities = {
full_punch_interval = 1,
max_drop_level=1,
groupcaps={
cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=20, maxlevel=2},
},
damage_groups = {fleshy=4},
},
})
minetest.register_on_dignode(function(pos, oldnode, digger)
if digger == nil then
return
end
if digger:get_wielded_item():get_name() == "extrablocks:hammer"
and oldnode.name ~= "air" then
local nd = oldnode.name
for _,i in ipairs(extrablocks_hammer_list) do
local chance = i[3]
if chance == nil
or chance <= 0 then
chance = 1
end
if math.random(chance) == 1
and nd == i[1] then
local inv = digger:get_inventory()
local items = minetest.get_node_drops(nd)
if inv then
for _,item in ipairs(items) do
--if inv:contains_item("main", item) then
inv:remove_item("main", item)
--else
-- return
--end
end
minetest.set_node(pos, {name=i[2]})
nodeupdate(pos)
return
end
end
end
end
end)
if minetest.get_modpath("tnt") then
minetest.register_tool("extrablocks:pick_tnt", {
inventory_image = "default_tool_woodpick.png",
tool_capabilities = {
full_punch_interval = 1.2,
max_drop_level=0,
groupcaps={
cracky = {times={[3]=1.60}, uses=10, maxlevel=1},
},
damage_groups = {fleshy=2},
},
})
minetest.register_on_dignode(function(pos, oldnode, digger)
if digger == nil then
return
end
if digger:get_wielded_item():get_name() == "extrablocks:pick_tnt"
and oldnode.name ~= "air"
and minetest.get_item_group(oldnode.name, "cracky") >= 1 then
local time = math.random(10)/10
minetest.after(time, function(pos)
minetest.set_node(pos, {name="tnt:tnt_burning"})
boom(pos, 0, digger)
end, pos)
end
end)
minetest.register_craft({
output = "extrablocks:pick_tnt",
recipe = {
{'group:wood', 'group:tree', 'group:wood'},
{'group:wood', 'group:tree', 'group:wood'},
{'', 'default:stick', ''},
}
})
end