2019-03-08 00:46:35 +01:00
local S = minetest.get_translator ( " mcl_tools " )
2015-06-29 19:55:56 +02:00
-- mods/default/tools.lua
--
-- Tool definition
--
2021-03-15 21:55:59 +01:00
--[[
2020-02-17 16:17:35 +01:00
dig_speed_class group :
- 1 : Painfully slow
- 2 : Very slow
- 3 : Slow
- 4 : Fast
- 5 : Very fast
- 6 : Extremely fast
- 7 : Instantaneous
] ]
2017-02-25 16:19:24 +01:00
2015-06-29 19:55:56 +02:00
-- The hand
2020-02-17 16:17:35 +01:00
local groupcaps , hand_range , hand_groups
2020-07-10 16:08:40 +02:00
if minetest.is_creative_enabled ( " " ) then
2017-02-28 00:14:31 +01:00
-- Instant breaking in creative mode
2021-03-11 14:49:09 +01:00
groupcaps = { }
hand_range = 10
hand_groups = { dig_speed_class = 7 }
hand_autogroup_groupcaps = {
2021-03-15 21:55:59 +01:00
handy = { tool_multiplier = 1000 , level = 1 , uses = 0 } ,
axey = { tool_multiplier = 1000 , level = 1 , uses = 0 } ,
pickaxey = { tool_multiplier = 1000 , level = 5 , uses = 0 } ,
shovely = { tool_multiplier = 1000 , level = 1 , uses = 0 } ,
swordy = { tool_multiplier = 1000 , level = 1 , uses = 0 } ,
swordy_cobweb = { tool_multiplier = 1000 , level = 1 , uses = 0 } ,
shearsy = { tool_multiplier = 1000 , level = 1 , uses = 0 } ,
shearsy_wool = { tool_multiplier = 1000 , level = 1 , uses = 0 } ,
shearsy_cobweb = { tool_multiplier = 1000 , level = 1 , uses = 0 } ,
2017-01-17 01:36:45 +01:00
}
else
2021-03-11 14:49:09 +01:00
groupcaps = { }
hand_autogroup_groupcaps = {
2021-03-15 21:55:59 +01:00
handy = { tool_multiplier = 1 , level = 1 , uses = 0 } ,
axey = { tool_multiplier = 1 , level = 1 , uses = 0 } ,
shovely = { tool_multiplier = 1 , level = 1 , uses = 0 } ,
pickaxey = { tool_multiplier = 1 , level = 0 , uses = 0 } ,
swordy = { tool_multiplier = 1 , level = 0 , uses = 0 } ,
swordy_cobweb = { tool_multiplier = 1 , level = 0 , uses = 0 } ,
shearsy = { tool_multiplier = 1 , level = 0 , uses = 0 } ,
shearsy_wool = { tool_multiplier = 1 , level = 0 , uses = 0 } ,
shearsy_cobweb = { tool_multiplier = 1 , level = 0 , uses = 0 } ,
2017-01-17 01:36:45 +01:00
}
2017-12-08 14:00:44 +01:00
hand_range = 4
2020-02-17 16:17:35 +01:00
hand_groups = { dig_speed_class = 1 }
2017-01-17 01:36:45 +01:00
end
2021-03-11 14:49:09 +01:00
minetest.register_tool ( " : " , {
2015-06-29 19:55:56 +02:00
type = " none " ,
2019-03-16 00:07:44 +01:00
_doc_items_longdesc = S ( " You use your bare hand whenever you are not wielding any item. With your hand you can mine most blocks, but this is the slowest method and only the weakest blocks will yield their useful drop. The hand also deals minor damage by punching. Using the hand is often a last resort, as proper mining tools and weapons are much better. " ) .. " \n " ..
S ( " When you are wielding an item which is not a mining tool or a weapon, it will behave as if it were the hand when you start mining or punching. " ) .. " \n " ..
S ( " In Creative Mode, the hand is able to break all blocks instantly. " ) ,
2021-02-24 12:58:30 +01:00
wield_image = " blank.png " ,
2017-05-30 16:20:48 +02:00
wield_scale = { x = 1.0 , y = 1.0 , z = 2.0 } ,
2017-03-01 21:13:51 +01:00
-- According to Minecraft Wiki, the exact range is 3.975.
-- Minetest seems to only support whole numbers, so we use 4.
2017-12-08 14:00:44 +01:00
range = hand_range ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 0.25 ,
2015-06-29 19:55:56 +02:00
max_drop_level = 0 ,
2017-01-17 01:36:45 +01:00
groupcaps = groupcaps ,
2015-06-29 19:55:56 +02:00
damage_groups = { fleshy = 1 } ,
2020-02-17 16:17:35 +01:00
} ,
groups = hand_groups ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = hand_autogroup_groupcaps ,
2015-06-29 19:55:56 +02:00
} )
2017-03-12 01:55:18 +01:00
-- Help texts
2019-03-08 00:46:35 +01:00
local pickaxe_longdesc = S ( " Pickaxes are mining tools to mine hard blocks, such as stone. A pickaxe can also be used as weapon, but it is rather inefficient. " )
local axe_longdesc = S ( " An axe is your tool of choice to cut down trees, wood-based blocks and other blocks. Axes deal a lot of damage as well, but they are rather slow. " )
local sword_longdesc = S ( " Swords are great in melee combat, as they are fast, deal high damage and can endure countless battles. Swords can also be used to cut down a few particular blocks, such as cobwebs. " )
local shovel_longdesc = S ( " Shovels are tools for digging coarse blocks, such as dirt, sand and gravel. They can also be used to turn grass blocks to grass paths. Shovels can be used as weapons, but they are very weak. " )
local shovel_use = S ( " To turn a grass block into a grass path, hold the shovel in your hand, then use (rightclick) the top or side of a grass block. This only works when there's air above the grass block. " )
2019-03-16 00:07:44 +01:00
local shears_longdesc = S ( " Shears are tools to shear sheep and to mine a few block types. Shears are a special mining tool and can be used to obtain the original item from grass, leaves and similar blocks that require cutting. " )
2019-03-25 12:05:57 +01:00
local shears_use = S ( " To shear sheep or carve faceless pumpkins, use the “place” key on them. Faces can only be carved at the side of faceless pumpkins. Mining works as usual, but the drops are different for a few blocks. " )
2017-03-12 01:55:18 +01:00
2020-04-08 04:07:16 +02:00
local wield_scale = { x = 1.8 , y = 1.8 , z = 1 }
2015-06-29 19:55:56 +02:00
-- Picks
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_wood " , {
2019-03-08 00:46:35 +01:00
description = S ( " Wooden Pickaxe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = pickaxe_longdesc ,
2017-03-20 16:38:16 +01:00
_doc_items_hidden = false ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_woodpick.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , pickaxe = 1 , dig_speed_class = 2 , enchantability = 15 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
-- 1/1.2
full_punch_interval = 0.83333333 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 1 ,
2015-06-29 19:55:56 +02:00
damage_groups = { fleshy = 2 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 30 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " group:wood " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-11 14:49:09 +01:00
pickaxey = { tool_multiplier = 2 , level = 1 , uses = 60 }
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_stone " , {
2019-03-08 00:46:35 +01:00
description = S ( " Stone Pickaxe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = pickaxe_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_stonepick.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , pickaxe = 1 , dig_speed_class = 3 , enchantability = 5 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
-- 1/1.2
full_punch_interval = 0.83333333 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 3 ,
2015-06-29 19:55:56 +02:00
damage_groups = { fleshy = 3 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 66 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:cobble " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-11 14:49:09 +01:00
pickaxey = { tool_multiplier = 4 , level = 3 , uses = 132 }
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_iron " , {
2019-03-08 00:46:35 +01:00
description = S ( " Iron Pickaxe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = pickaxe_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_steelpick.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , pickaxe = 1 , dig_speed_class = 4 , enchantability = 14 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
-- 1/1.2
full_punch_interval = 0.83333333 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 4 ,
2015-06-29 19:55:56 +02:00
damage_groups = { fleshy = 4 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 126 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:iron_ingot " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-11 14:49:09 +01:00
pickaxey = { tool_multiplier = 6 , level = 4 , uses = 251 }
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_gold " , {
2019-03-08 00:46:35 +01:00
description = S ( " Golden Pickaxe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = pickaxe_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_goldpick.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , pickaxe = 1 , dig_speed_class = 6 , enchantability = 22 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
-- 1/1.2
full_punch_interval = 0.83333333 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 2 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 2 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 17 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:gold_ingot " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-11 14:49:09 +01:00
pickaxey = { tool_multiplier = 12 , level = 2 , uses = 33 }
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_diamond " , {
2019-03-08 00:46:35 +01:00
description = S ( " Diamond Pickaxe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = pickaxe_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_diamondpick.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , pickaxe = 1 , dig_speed_class = 5 , enchantability = 10 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
-- 1/1.2
full_punch_interval = 0.83333333 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 5 ,
2015-06-29 19:55:56 +02:00
damage_groups = { fleshy = 5 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 781 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:diamond " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-11 14:49:09 +01:00
pickaxey = { tool_multiplier = 8 , level = 5 , uses = 1562 }
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-06 19:25:15 +01:00
local make_grass_path = function ( itemstack , placer , pointed_thing )
2017-03-02 16:09:13 +01:00
-- Use pointed node's on_rightclick function first, if present
local node = minetest.get_node ( pointed_thing.under )
if placer and not placer : get_player_control ( ) . sneak then
if minetest.registered_nodes [ node.name ] and minetest.registered_nodes [ node.name ] . on_rightclick then
return minetest.registered_nodes [ node.name ] . on_rightclick ( pointed_thing.under , node , placer , itemstack ) or itemstack
end
end
2017-07-08 18:11:27 +02:00
-- Only make grass path if tool used on side or top of target node
if pointed_thing.above . y < pointed_thing.under . y then
2019-03-27 13:07:33 +01:00
return itemstack
2017-07-08 18:11:27 +02:00
end
2019-03-27 13:07:33 +01:00
2017-11-14 23:44:53 +01:00
if ( minetest.get_item_group ( node.name , " grass_block " ) == 1 ) then
2017-02-06 19:25:15 +01:00
local above = table.copy ( pointed_thing.under )
above.y = above.y + 1
if minetest.get_node ( above ) . name == " air " then
2019-03-27 13:07:33 +01:00
if minetest.is_protected ( pointed_thing.under , placer : get_player_name ( ) ) then
minetest.record_protection_violation ( pointed_thing.under , placer : get_player_name ( ) )
return itemstack
end
2020-07-10 16:08:40 +02:00
if not minetest.is_creative_enabled ( placer : get_player_name ( ) ) then
2021-03-18 11:35:29 +01:00
-- Add wear (as if digging a shovely node)
2017-02-27 18:53:17 +01:00
local toolname = itemstack : get_name ( )
2021-03-18 11:35:29 +01:00
local wear = mcl_autogroup.get_wear ( toolname , " shovely " )
2017-02-06 19:25:15 +01:00
itemstack : add_wear ( wear )
end
2020-04-07 00:55:45 +02:00
minetest.sound_play ( { name = " default_grass_footstep " , gain = 1 } , { pos = above } , true )
2017-03-02 17:57:18 +01:00
minetest.swap_node ( pointed_thing.under , { name = " mcl_core:grass_path " } )
2017-02-06 19:25:15 +01:00
end
end
return itemstack
end
2017-11-23 00:20:49 +01:00
local carve_pumpkin
if minetest.get_modpath ( " mcl_farming " ) then
carve_pumpkin = function ( itemstack , placer , pointed_thing )
-- Use pointed node's on_rightclick function first, if present
local node = minetest.get_node ( pointed_thing.under )
if placer and not placer : get_player_control ( ) . sneak then
if minetest.registered_nodes [ node.name ] and minetest.registered_nodes [ node.name ] . on_rightclick then
return minetest.registered_nodes [ node.name ] . on_rightclick ( pointed_thing.under , node , placer , itemstack ) or itemstack
end
end
-- Only carve pumpkin if used on side
if pointed_thing.above . y ~= pointed_thing.under . y then
return
end
if node.name == " mcl_farming:pumpkin " then
2020-07-10 16:08:40 +02:00
if not minetest.is_creative_enabled ( placer : get_player_name ( ) ) then
2017-11-23 00:20:49 +01:00
-- Add wear (as if digging a shearsy node)
local toolname = itemstack : get_name ( )
2021-03-18 11:35:29 +01:00
local wear = mcl_autogroup.get_wear ( toolname , " shearsy " )
2017-11-23 00:20:49 +01:00
itemstack : add_wear ( wear )
end
2020-04-07 00:55:45 +02:00
minetest.sound_play ( { name = " default_grass_footstep " , gain = 1 } , { pos = above } , true )
2017-11-23 00:20:49 +01:00
local dir = vector.subtract ( pointed_thing.under , pointed_thing.above )
local param2 = minetest.dir_to_facedir ( dir )
minetest.swap_node ( pointed_thing.under , { name = " mcl_farming:pumpkin_face " , param2 = param2 } )
minetest.add_item ( pointed_thing.above , " mcl_farming:pumpkin_seeds 4 " )
end
return itemstack
end
end
2015-06-29 19:55:56 +02:00
-- Shovels
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_wood " , {
2019-03-08 00:46:35 +01:00
description = S ( " Wooden Shovel " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = shovel_longdesc ,
_doc_items_usagehelp = shovel_use ,
2017-03-20 16:38:16 +01:00
_doc_items_hidden = false ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_woodshovel.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , shovel = 1 , dig_speed_class = 2 , enchantability = 15 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 1 ,
2015-06-29 19:55:56 +02:00
damage_groups = { fleshy = 2 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 30 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-06 19:25:15 +01:00
on_place = make_grass_path ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " group:wood " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
shovely = { tool_multiplier = 2 , level = 1 , uses = 60 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_stone " , {
2019-03-08 00:46:35 +01:00
description = S ( " Stone Shovel " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = shovel_longdesc ,
_doc_items_usagehelp = shovel_use ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_stoneshovel.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , shovel = 1 , dig_speed_class = 3 , enchantability = 5 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 3 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 3 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 66 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-06 19:25:15 +01:00
on_place = make_grass_path ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:cobble " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
shovely = { tool_multiplier = 4 , level = 3 , uses = 132 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_iron " , {
2019-03-08 00:46:35 +01:00
description = S ( " Iron Shovel " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = shovel_longdesc ,
_doc_items_usagehelp = shovel_use ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_steelshovel.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , shovel = 1 , dig_speed_class = 4 , enchantability = 14 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 4 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 4 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 126 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-06 19:25:15 +01:00
on_place = make_grass_path ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:iron_ingot " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
shovely = { tool_multiplier = 6 , level = 4 , uses = 251 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_gold " , {
2019-03-08 00:46:35 +01:00
description = S ( " Golden Shovel " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = shovel_longdesc ,
_doc_items_usagehelp = shovel_use ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_goldshovel.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2021-01-02 12:11:16 +01:00
groups = { tool = 1 , shovel = 1 , dig_speed_class = 6 , enchantability = 22 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 2 ,
2015-06-29 19:55:56 +02:00
damage_groups = { fleshy = 2 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 17 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-06 19:25:15 +01:00
on_place = make_grass_path ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:gold_ingot " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
shovely = { tool_multiplier = 12 , level = 2 , uses = 33 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_diamond " , {
2019-03-08 00:46:35 +01:00
description = S ( " Diamond Shovel " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = shovel_longdesc ,
_doc_items_usagehelp = shovel_use ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_diamondshovel.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , shovel = 1 , dig_speed_class = 5 , enchantability = 10 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 5 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 5 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 781 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-06 19:25:15 +01:00
on_place = make_grass_path ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:diamond " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
shovely = { tool_multiplier = 8 , level = 5 , uses = 1562 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
-- Axes
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_wood " , {
2019-03-08 00:46:35 +01:00
description = S ( " Wooden Axe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = axe_longdesc ,
2017-03-20 16:38:16 +01:00
_doc_items_hidden = false ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_woodaxe.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , axe = 1 , dig_speed_class = 2 , enchantability = 15 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1.25 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 1 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 7 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 30 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " group:wood " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
axey = { tool_multiplier = 2 , level = 1 , uses = 60 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_stone " , {
2019-03-08 00:46:35 +01:00
description = S ( " Stone Axe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = axe_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_stoneaxe.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , axe = 1 , dig_speed_class = 3 , enchantability = 5 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1.25 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 3 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 9 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 66 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:cobble " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
axey = { tool_multiplier = 4 , level = 3 , uses = 132 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_iron " , {
2019-03-08 00:46:35 +01:00
description = S ( " Iron Axe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = axe_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_steelaxe.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , axe = 1 , dig_speed_class = 4 , enchantability = 14 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
-- 1/0.9
full_punch_interval = 1.11111111 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 4 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 9 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 126 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:iron_ingot " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
axey = { tool_multiplier = 6 , level = 4 , uses = 251 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_gold " , {
2019-03-08 00:46:35 +01:00
description = S ( " Golden Axe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = axe_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_goldaxe.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , axe = 1 , dig_speed_class = 6 , enchantability = 22 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1.0 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 2 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 7 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 17 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:gold_ingot " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
axey = { tool_multiplier = 12 , level = 2 , uses = 33 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_diamond " , {
2019-03-08 00:46:35 +01:00
description = S ( " Diamond Axe " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = axe_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_diamondaxe.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { tool = 1 , axe = 1 , dig_speed_class = 5 , enchantability = 10 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-17 00:37:15 +01:00
full_punch_interval = 1.0 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 5 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 9 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 781 ,
2015-06-29 19:55:56 +02:00
} ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:diamond " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
axey = { tool_multiplier = 8 , level = 5 , uses = 1562 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
-- Swords
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_wood " , {
2019-03-08 00:46:35 +01:00
description = S ( " Wooden Sword " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = sword_longdesc ,
2017-03-20 16:38:16 +01:00
_doc_items_hidden = false ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_woodsword.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { weapon = 1 , sword = 1 , dig_speed_class = 2 , enchantability = 15 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-04 12:03:04 +01:00
full_punch_interval = 0.625 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 1 ,
2017-01-04 12:03:04 +01:00
damage_groups = { fleshy = 4 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 60 ,
2017-02-19 19:59:18 +01:00
} ,
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " group:wood " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-11 14:49:09 +01:00
swordy = { tool_multiplier = 2 , level = 1 , uses = 60 } ,
swordy_cobweb = { tool_multiplier = 2 , level = 1 , uses = 60 }
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_stone " , {
2019-03-08 00:46:35 +01:00
description = S ( " Stone Sword " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = sword_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_stonesword.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { weapon = 1 , sword = 1 , dig_speed_class = 3 , enchantability = 5 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-04 12:03:04 +01:00
full_punch_interval = 0.625 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 3 ,
2017-01-04 12:03:04 +01:00
damage_groups = { fleshy = 5 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 132 ,
2017-02-19 19:59:18 +01:00
} ,
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:cobble " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
swordy = { tool_multiplier = 4 , level = 3 , uses = 132 } ,
swordy_cobweb = { tool_multiplier = 4 , level = 3 , uses = 132 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_iron " , {
2019-03-08 00:46:35 +01:00
description = S ( " Iron Sword " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = sword_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_steelsword.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { weapon = 1 , sword = 1 , dig_speed_class = 4 , enchantability = 14 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-04 12:03:04 +01:00
full_punch_interval = 0.625 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 4 ,
2015-06-29 19:55:56 +02:00
damage_groups = { fleshy = 6 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 251 ,
2017-02-19 19:59:18 +01:00
} ,
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:iron_ingot " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
swordy = { tool_multiplier = 6 , level = 4 , uses = 251 } ,
swordy_cobweb = { tool_multiplier = 6 , level = 4 , uses = 251 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_gold " , {
2019-03-08 00:46:35 +01:00
description = S ( " Golden Sword " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = sword_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_goldsword.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { weapon = 1 , sword = 1 , dig_speed_class = 6 , enchantability = 22 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-04 12:03:04 +01:00
full_punch_interval = 0.625 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 2 ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 4 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 33 ,
2017-02-19 19:59:18 +01:00
} ,
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:gold_ingot " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
swordy = { tool_multiplier = 12 , level = 2 , uses = 33 } ,
swordy_cobweb = { tool_multiplier = 12 , level = 2 , uses = 33 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_diamond " , {
2019-03-08 00:46:35 +01:00
description = S ( " Diamond Sword " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = sword_longdesc ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_diamondsword.png " ,
2020-04-08 04:07:16 +02:00
wield_scale = wield_scale ,
2020-11-25 12:47:27 +01:00
groups = { weapon = 1 , sword = 1 , dig_speed_class = 5 , enchantability = 10 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
2017-01-04 12:03:04 +01:00
full_punch_interval = 0.625 ,
2017-02-24 17:01:56 +01:00
max_drop_level = 5 ,
2017-01-04 12:03:04 +01:00
damage_groups = { fleshy = 7 } ,
2020-02-19 15:53:51 +01:00
punch_attack_uses = 1562 ,
2017-02-19 19:59:18 +01:00
} ,
sound = { breaks = " default_tool_breaks " } ,
2018-02-02 02:33:10 +01:00
_repair_material = " mcl_core:diamond " ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-16 20:19:19 +01:00
swordy = { tool_multiplier = 8 , level = 5 , uses = 1562 } ,
swordy_cobweb = { tool_multiplier = 8 , level = 5 , uses = 1562 }
2021-03-11 14:49:09 +01:00
} ,
2015-06-29 19:55:56 +02:00
} )
--Shears
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shears " , {
2019-03-08 00:46:35 +01:00
description = S ( " Shears " ) ,
2017-03-12 01:55:18 +01:00
_doc_items_longdesc = shears_longdesc ,
_doc_items_usagehelp = shears_use ,
2015-06-29 19:55:56 +02:00
inventory_image = " default_tool_shears.png " ,
wield_image = " default_tool_shears.png " ,
stack_max = 1 ,
2020-12-19 16:29:55 +01:00
groups = { tool = 1 , shears = 1 , dig_speed_class = 4 , } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
full_punch_interval = 0.5 ,
max_drop_level = 1 ,
2017-02-19 19:59:18 +01:00
} ,
2017-11-23 00:20:49 +01:00
on_place = carve_pumpkin ,
2017-02-19 19:59:18 +01:00
sound = { breaks = " default_tool_breaks " } ,
2021-02-18 09:28:12 +01:00
_mcl_toollike_wield = true ,
2021-03-16 20:36:38 +01:00
_mcl_diggroups = {
2021-03-11 14:49:09 +01:00
shearsy = { tool_multiplier = 1.5 , level = 1 , uses = 238 } ,
shearsy_wool = { tool_multiplier = 5 , level = 1 , uses = 238 } ,
shearsy_cobweb = { tool_multiplier = 15 , level = 1 , uses = 238 }
} ,
2017-01-04 05:29:55 +01:00
} )
2017-01-04 11:26:35 +01:00
2017-01-16 23:11:04 +01:00
2017-02-26 18:44:48 +01:00
dofile ( minetest.get_modpath ( " mcl_tools " ) .. " /crafting.lua " )
2017-02-26 18:57:57 +01:00
dofile ( minetest.get_modpath ( " mcl_tools " ) .. " /aliases.lua " )