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
--
2017-02-24 17:01:56 +01:00
--[[ Maximum drop level definitions:
- 0 : Hand
- 1 : Wood / Shears
- 2 : Gold
- 3 : Stone
- 4 : Iron
- 5 : Diamond
] ]
2017-02-25 16:19:24 +01:00
-- TODO: Add legacy support for Minetest Game groups like crumbly, snappy, cracky, etc. for all tools
2015-06-29 19:55:56 +02:00
-- The hand
2018-01-26 22:20:15 +01:00
local groupcaps , hand_range
2017-08-09 16:17:00 +02:00
if minetest.settings : get_bool ( " creative_mode " ) then
2017-02-28 00:14:31 +01:00
-- Instant breaking in creative mode
2017-01-17 01:36:45 +01:00
groupcaps = {
2017-02-25 16:19:24 +01:00
creative_breakable = { times = { [ 1 ] = 0 } , uses = 0 } ,
2017-01-17 01:36:45 +01:00
}
2017-02-28 00:14:31 +01:00
-- mcl_autogroup provides the creative digging times for all digging groups
for k , v in pairs ( mcl_autogroup.creativetimes ) do
groupcaps [ k ] = { times = v , uses = 0 }
end
2017-12-08 14:00:44 +01:00
hand_range = 10
2017-01-17 01:36:45 +01:00
else
groupcaps = {
2017-02-26 18:44:48 +01:00
handy_dig = { times = mcl_autogroup.digtimes . handy_dig , uses = 0 } ,
2017-01-17 01:36:45 +01:00
}
2017-12-08 14:00:44 +01:00
hand_range = 4
2017-01-17 01:36:45 +01:00
end
2015-06-29 19:55:56 +02:00
minetest.register_item ( " : " , {
type = " none " ,
2019-03-08 00:46:35 +01:00
_doc_items_longdesc = S ( " You use your bare hand whenever you are not wielding any item. With your hand you can mine the weakest blocks and deal minor damage by punching. Using the hand is often a last resort, as proper mining tools and weapons are better than the hand. 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. In Creative Mode, the hand is able to break all blocks instantly. " ) ,
2015-06-29 19:55:56 +02:00
wield_image = " wieldhand.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 } ,
}
} )
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. " )
local shears_longdesc = S ( " Shears are tools to shear sheep, carve pumpkins and to mine a few block types. Shears are a special mining tool and can be used to obtain the original item from a grass, leaves and similar blocks. " )
2017-11-23 00:20:49 +01:00
local shears_use = " To shear a sheep and obtain its wool, rightclick it. To carve a face into a pumpkin and obtain 4 pumpkin seeds, rightclick it on one of its sides. Mining works are usual, but the drops are different for a few blocks. "
2017-03-12 01:55:18 +01:00
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , pickaxe = 1 } ,
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
groupcaps = {
2017-02-27 20:07:11 +01:00
pickaxey_dig_wood = { times = mcl_autogroup.digtimes . pickaxey_dig_wood , uses = 60 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
damage_groups = { fleshy = 2 } ,
} ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , pickaxe = 1 } ,
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
groupcaps = {
2017-02-27 20:07:11 +01:00
pickaxey_dig_stone = { times = mcl_autogroup.digtimes . pickaxey_dig_stone , uses = 132 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
damage_groups = { fleshy = 3 } ,
} ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , pickaxe = 1 } ,
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
groupcaps = {
2017-02-27 20:07:11 +01:00
pickaxey_dig_iron = { times = mcl_autogroup.digtimes . pickaxey_dig_iron , uses = 251 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
damage_groups = { fleshy = 4 } ,
} ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , pickaxe = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
pickaxey_dig_gold = { times = mcl_autogroup.digtimes . pickaxey_dig_gold , uses = 33 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 2 } ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , pickaxe = 1 } ,
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
groupcaps = {
2017-02-27 20:07:11 +01:00
pickaxey_dig_diamond = { times = mcl_autogroup.digtimes . pickaxey_dig_diamond , uses = 1562 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
damage_groups = { fleshy = 5 } ,
} ,
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 " ,
2015-06-29 19:55:56 +02:00
} )
2017-02-27 18:53:17 +01:00
local get_shovel_dig_group = function ( itemstring )
local def = minetest.registered_items [ itemstring ]
2017-03-02 17:57:18 +01:00
if itemstring == " mcl_tools:shovel_wood " then
2017-02-27 18:53:17 +01:00
return " shovely_dig_wood "
2017-03-02 17:57:18 +01:00
elseif itemstring == " mcl_tools:shovel_stone " then
2017-02-27 18:53:17 +01:00
return " shovely_dig_stone "
2017-03-02 17:57:18 +01:00
elseif itemstring == " mcl_tools:shovel_iron " then
2017-02-27 18:53:17 +01:00
return " shovely_dig_iron "
2017-03-02 17:57:18 +01:00
elseif itemstring == " mcl_tools:shovel_gold " then
2017-02-27 18:53:17 +01:00
return " shovely_dig_gold "
2017-03-02 17:57:18 +01:00
elseif itemstring == " mcl_tools:shovel_diamond " then
2017-02-27 18:53:17 +01:00
return " shovely_dig_diamond "
else
-- Fallback
return " shovely_dig_wood "
end
end
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
return
end
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
2017-08-09 16:17:00 +02:00
if not minetest.settings : get_bool ( " creative_mode " ) then
2017-02-27 18:53:17 +01:00
-- Add wear, as if digging a level 0 shovely node
local toolname = itemstack : get_name ( )
local def = minetest.registered_items [ toolname ]
2017-03-02 17:57:18 +01:00
local group = get_shovel_dig_group ( toolname )
2017-02-27 18:53:17 +01:00
local base_uses = def.tool_capabilities . groupcaps [ group ] . uses
local maxlevel = def.tool_capabilities . groupcaps [ group ] . maxlevel
2017-02-06 19:25:15 +01:00
local uses = base_uses * math.pow ( 3 , maxlevel )
local wear = math.ceil ( 65535 / uses )
itemstack : add_wear ( wear )
end
2017-02-06 19:29:11 +01:00
minetest.sound_play ( { name = " default_grass_footstep " , gain = 1 } , { pos = above } )
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
if not minetest.settings : get_bool ( " creative_mode " ) then
-- Add wear (as if digging a shearsy node)
local toolname = itemstack : get_name ( )
local def = minetest.registered_items [ toolname ]
local group = get_shovel_dig_group ( toolname )
local base_uses = def.tool_capabilities . groupcaps [ " shearsy_dig " ] . uses
local maxlevel = def.tool_capabilities . groupcaps [ " shearsy_dig " ] . maxlevel
local uses = base_uses * math.pow ( 3 , maxlevel )
local wear = math.ceil ( 65535 / uses )
itemstack : add_wear ( wear )
end
minetest.sound_play ( { name = " default_grass_footstep " , gain = 1 } , { pos = above } )
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 " ,
wield_image = " default_tool_woodshovel.png^[transformR90 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , shovel = 1 } ,
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
groupcaps = {
2017-02-27 20:07:11 +01:00
shovely_dig_wood = { times = mcl_autogroup.digtimes . shovely_dig_wood , uses = 60 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
damage_groups = { fleshy = 2 } ,
} ,
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 " ,
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 " ,
wield_image = " default_tool_stoneshovel.png^[transformR90 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , shovel = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
shovely_dig_stone = { times = mcl_autogroup.digtimes . shovely_dig_stone , uses = 132 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 3 } ,
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 " ,
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 " ,
wield_image = " default_tool_steelshovel.png^[transformR90 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , shovel = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
shovely_dig_iron = { times = mcl_autogroup.digtimes . shovely_dig_iron , uses = 251 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 4 } ,
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 " ,
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 " ,
wield_image = " default_tool_goldshovel.png^[transformR90 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , shovel = 1 } ,
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
groupcaps = {
2017-02-27 20:07:11 +01:00
shovely_dig_gold = { times = mcl_autogroup.digtimes . shovely_dig_gold , uses = 33 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
damage_groups = { fleshy = 2 } ,
} ,
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 " ,
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 " ,
wield_image = " default_tool_diamondshovel.png^[transformR90 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , shovel = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
shovely_dig_diamond = { times = mcl_autogroup.digtimes . shovely_dig_diamond , uses = 1562 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 5 } ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , axe = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
axey_dig_wood = { times = mcl_autogroup.digtimes . axey_dig_wood , uses = 60 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 7 } ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , axe = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
axey_dig_stone = { times = mcl_autogroup.digtimes . axey_dig_stone , uses = 132 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 9 } ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , axe = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
axey_dig_iron = { times = mcl_autogroup.digtimes . axey_dig_iron , uses = 251 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 9 } ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , axe = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
axey_dig_gold = { times = mcl_autogroup.digtimes . axey_dig_gold , uses = 33 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 7 } ,
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 " ,
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 " ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , axe = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
axey_dig_diamond = { times = mcl_autogroup.digtimes . axey_dig_diamond , uses = 1562 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 9 } ,
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 " ,
2015-06-29 19:55:56 +02:00
} )
-- Swords
2017-02-26 18:44:48 +01:00
m inetest.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 " ,
2017-01-20 04:54:09 +01:00
groups = { weapon = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
swordy_dig = { times = mcl_autogroup.digtimes . swordy_dig , uses = 60 , maxlevel = 0 } ,
swordy_cobweb_dig = { times = mcl_autogroup.digtimes . swordy_cobweb_dig , uses = 60 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-04 12:03:04 +01:00
damage_groups = { fleshy = 4 } ,
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 " ,
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 " ,
2017-01-20 04:54:09 +01:00
groups = { weapon = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
swordy_dig = { times = mcl_autogroup.digtimes . swordy_dig , uses = 132 , maxlevel = 0 } ,
swordy_cobweb_dig = { times = mcl_autogroup.digtimes . swordy_cobweb_dig , uses = 132 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-04 12:03:04 +01:00
damage_groups = { fleshy = 5 } ,
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 " ,
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 " ,
2017-01-20 04:54:09 +01:00
groups = { weapon = 1 } ,
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
groupcaps = {
2017-02-27 20:07:11 +01:00
swordy_dig = { times = mcl_autogroup.digtimes . swordy_dig , uses = 251 , maxlevel = 0 } ,
swordy_cobweb_dig = { times = mcl_autogroup.digtimes . swordy_cobweb_dig , uses = 251 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
damage_groups = { fleshy = 6 } ,
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 " ,
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 " ,
2017-01-20 04:54:09 +01:00
groups = { weapon = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
swordy_dig = { times = mcl_autogroup.digtimes . swordy_dig , uses = 33 , maxlevel = 0 } ,
swordy_cobweb_dig = { times = mcl_autogroup.digtimes . swordy_cobweb_dig , uses = 33 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-17 00:37:15 +01:00
damage_groups = { fleshy = 4 } ,
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 " ,
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 " ,
2017-01-20 04:54:09 +01:00
groups = { weapon = 1 } ,
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 ,
2015-06-29 19:55:56 +02:00
groupcaps = {
2017-02-27 20:07:11 +01:00
swordy_dig = { times = mcl_autogroup.digtimes . swordy_dig , uses = 1562 , maxlevel = 0 } ,
swordy_cobweb_dig = { times = mcl_autogroup.digtimes . swordy_cobweb_dig , uses = 1562 , maxlevel = 0 } ,
2015-06-29 19:55:56 +02:00
} ,
2017-01-04 12:03:04 +01:00
damage_groups = { fleshy = 7 } ,
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 " ,
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 ,
2019-02-25 17:46:13 +01:00
groups = { tool = 1 , shears = 1 } ,
2015-06-29 19:55:56 +02:00
tool_capabilities = {
full_punch_interval = 0.5 ,
max_drop_level = 1 ,
groupcaps = {
2017-02-27 20:07:11 +01:00
shearsy_dig = { times = mcl_autogroup.digtimes . shearsy_dig , uses = 238 , maxlevel = 0 } ,
shearsy_wool_dig = { times = mcl_autogroup.digtimes . shearsy_wool_dig , uses = 238 , maxlevel = 0 } ,
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 " } ,
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 " )