-- 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, })