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
2017-01-17 01:36:45 +01:00
local groupcaps
if minetest.setting_getbool ( " 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-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
}
end
2015-06-29 19:55:56 +02:00
minetest.register_item ( " : " , {
type = " none " ,
wield_image = " wieldhand.png " ,
wield_scale = { x = 1 , y = 1 , z = 2.5 } ,
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.
range = 4 ,
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
local pickaxe_longdesc = " 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 = " 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 = " 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 = " 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 = " To turn a grass block into a grass path, hold the shovel in your hand, then use (rightclick) the side of a grass block. This only works when nothing is above the grass block. "
local shears_longdesc = " Shears are tools to shear sheep and to mine a few block types. "
local shears_use = " To shear a sheep and obtain its wool, rightclick it while holding the shears. Mining works are usual. "
2015-06-29 19:55:56 +02:00
-- Picks
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_wood " , {
2015-06-29 19:55:56 +02:00
description = " Wooden 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_woodpick.png " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_stone " , {
2015-06-29 19:55:56 +02:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_iron " , {
2017-01-04 05:29:55 +01:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_gold " , {
2017-01-20 04:54:09 +01:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:pick_diamond " , {
2015-06-29 19:55:56 +02:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
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-03-02 17:57:18 +01:00
if node.name == " mcl_core:dirt_with_grass " and pointed_thing.above . y == pointed_thing.under . y 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
if not minetest.setting_getbool ( " 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
2015-06-29 19:55:56 +02:00
-- Shovels
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_wood " , {
2015-06-29 19:55:56 +02:00
description = " Wooden 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_woodshovel.png " ,
wield_image = " default_tool_woodshovel.png^[transformR90 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_stone " , {
2015-06-29 19:55:56 +02:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_iron " , {
2017-01-04 05:29:55 +01:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_gold " , {
2017-01-20 04:54:09 +01:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shovel_diamond " , {
2015-06-29 19:55:56 +02:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
-- Axes
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_wood " , {
2015-06-29 19:55:56 +02:00
description = " Wooden 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_woodaxe.png " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_stone " , {
2015-06-29 19:55:56 +02:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_iron " , {
2017-01-04 05:29:55 +01:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_gold " , {
2017-01-20 04:54:09 +01:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:axe_diamond " , {
2015-06-29 19:55:56 +02:00
description = " 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 " ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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 " } ,
2015-06-29 19:55:56 +02:00
} )
-- Swords
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_wood " , {
2015-06-29 19:55:56 +02:00
description = " Wooden 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_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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_stone " , {
2015-06-29 19:55:56 +02:00
description = " 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_iron " , {
2017-01-04 05:29:55 +01:00
description = " 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_gold " , {
2017-01-20 04:54:09 +01:00
description = " 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 " } ,
2015-06-29 19:55:56 +02:00
} )
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:sword_diamond " , {
2015-06-29 19:55:56 +02:00
description = " 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 " } ,
2015-06-29 19:55:56 +02:00
} )
--Shears
2017-02-26 18:44:48 +01:00
minetest.register_tool ( " mcl_tools:shears " , {
2015-06-29 19:55:56 +02:00
description = " 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 ,
2017-01-20 04:54:09 +01:00
groups = { tool = 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
}
} ,
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 " )