-- Renew mod for Minetest
-- Copyright © 2020 Alex Yst
-- This program is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
-- This software is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
-- You should have received a copy of the GNU Lesser General Public
-- License along with this program. If not, see
-- .
-- Tools
minetest.register_tool("renew:sledgehammer_wood", {
description = "Wooden Sledgehammer",
inventory_image = "renew-sledgehammer_wood.png",
tool_capabilities = {
full_punch_interval = 1.2,
max_drop_level=0,
groupcaps={
pulverizeable = {times={[3]=1.60}, uses=10, maxlevel=1},
},
damage_groups = {fleshy=2},
},
groups = {flammable = 2},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_tool("renew:sledgehammer_stone", {
description = "Stone Sledgehammer",
inventory_image = "renew-sledgehammer_stone.png",
tool_capabilities = {
full_punch_interval = 1.3,
max_drop_level=0,
groupcaps={
pulverizeable = {times={[2]=2.0, [3]=1.00}, uses=20, maxlevel=1},
},
damage_groups = {fleshy=3},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_tool("renew:sledgehammer_steel", {
description = "Steel Sledgehammer",
inventory_image = "renew-sledgehammer_steel.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
pulverizeable = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=20, maxlevel=2},
},
damage_groups = {fleshy=4},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_tool("renew:sledgehammer_bronze", {
description = "Bronze Sledgehammer",
inventory_image = "renew-sledgehammer_bronze.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
pulverizeable = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2},
},
damage_groups = {fleshy=4},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_tool("renew:sledgehammer_mese", {
description = "Mese Sledgehammer",
inventory_image = "renew-sledgehammer_mese.png",
tool_capabilities = {
full_punch_interval = 0.9,
max_drop_level=3,
groupcaps={
pulverizeable = {times={[1]=2.4, [2]=1.2, [3]=0.60}, uses=20, maxlevel=3},
},
damage_groups = {fleshy=5},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_tool("renew:sledgehammer_diamond", {
description = "Diamond Sledgehammer",
inventory_image = "renew-sledgehammer_diamond.png",
tool_capabilities = {
full_punch_interval = 0.9,
max_drop_level=3,
groupcaps={
pulverizeable = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3},
},
damage_groups = {fleshy=5},
},
sound = {breaks = "default_tool_breaks"},
})
-- Recipes
minetest.register_craft({
output = "renew:sledgehammer_wood",
recipe = {
{"group:wood", "group:stick", "group:wood"},
{"" , "group:stick", "" },
{"" , "group:stick", "" },
}
})
minetest.register_craft({
output = "renew:sledgehammer_stone",
recipe = {
{"group:stone", "group:stick", "group:stone"},
{"" , "group:stick", "" },
{"" , "group:stick", "" },
}
})
minetest.register_craft({
output = "renew:sledgehammer_steel",
recipe = {
{"default:steel_ingot", "group:stick", "default:steel_ingot"},
{"" , "group:stick", "" },
{"" , "group:stick", "" },
}
})
minetest.register_craft({
output = "renew:sledgehammer_bronze",
recipe = {
{"default:bronze_ingot", "group:stick", "default:bronze_ingot"},
{"" , "group:stick", "" },
{"" , "group:stick", "" },
}
})
minetest.register_craft({
output = "renew:sledgehammer_mese",
recipe = {
{"default:mese_crystal", "group:stick", "default:mese_crystal"},
{"" , "group:stick", "" },
{"" , "group:stick", "" },
}
})
minetest.register_craft({
output = "renew:sledgehammer_diamond",
recipe = {
{"default:diamond", "group:stick", "default:diamond"},
{"" , "group:stick", "" },
{"" , "group:stick", "" },
}
})
-- Node modifications
minetest.registered_nodes["default:cobble"].groups.pulverizeable = minetest.registered_nodes["default:cobble"].groups.cracky
minetest.override_item("default:cobble", {
on_dig = function(pos, node, digger)
if not minetest.is_protected(pos, digger:get_player_name())
and string.sub(digger:get_wielded_item():get_name(), 1, 19) == "renew:sledgehammer_" then
minetest.set_node(pos, {name="default:sandstone"})
local tool = digger:get_wielded_item()
local groups = minetest.registered_nodes["default:cobble"].groups
tool:add_wear(minetest.get_dig_params(groups, tool:get_tool_capabilities()).wear)
digger:set_wielded_item(tool)
else
minetest.node_dig(pos, node, digger)
end
end,
})
minetest.registered_nodes["default:stone"].groups.pulverizeable = minetest.registered_nodes["default:stone"].groups.cracky
minetest.override_item("default:stone", {
on_dig = function(pos, node, digger)
if not minetest.is_protected(pos, digger:get_player_name())
and string.sub(digger:get_wielded_item():get_name(), 1, 19) == "renew:sledgehammer_" then
minetest.set_node(pos, {name="default:gravel"})
local tool = digger:get_wielded_item()
local groups = minetest.registered_nodes["default:stone"].groups
tool:add_wear(minetest.get_dig_params(groups, tool:get_tool_capabilities()).wear)
digger:set_wielded_item(tool)
else
minetest.node_dig(pos, node, digger)
end
end,
})
minetest.registered_nodes["default:desert_cobble"].groups.pulverizeable = minetest.registered_nodes["default:desert_cobble"].groups.cracky
minetest.override_item("default:desert_cobble", {
on_dig = function(pos, node, digger)
if not minetest.is_protected(pos, digger:get_player_name())
and string.sub(digger:get_wielded_item():get_name(), 1, 19) == "renew:sledgehammer_" then
minetest.set_node(pos, {name="default:desert_sand"})
local tool = digger:get_wielded_item()
local groups = minetest.registered_nodes["default:desert_cobble"].groups
tool:add_wear(minetest.get_dig_params(groups, tool:get_tool_capabilities()).wear)
digger:set_wielded_item(tool)
else
minetest.node_dig(pos, node, digger)
end
end,
})
minetest.registered_nodes["default:coral_skeleton"].groups.pulverizeable = minetest.registered_nodes["default:coral_skeleton"].groups.cracky
minetest.override_item("default:coral_skeleton", {
on_dig = function(pos, node, digger)
if not minetest.is_protected(pos, digger:get_player_name())
and string.sub(digger:get_wielded_item():get_name(), 1, 19) == "renew:sledgehammer_" then
minetest.set_node(pos, {name="default:silver_sand"})
local tool = digger:get_wielded_item()
local groups = minetest.registered_nodes["default:coral_skeleton"].groups
tool:add_wear(minetest.get_dig_params(groups, tool:get_tool_capabilities()).wear)
digger:set_wielded_item(tool)
else
minetest.node_dig(pos, node, digger)
end
end,
})