mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-12-28 19:09:33 +01:00
cbf3dc49aa
If a player wants to make a path when there is no dirt with grass on the ground it means they need to either have silk touch to collect dirt with grass or place dirt beside dirt with grass and wait for the grass cover to spread before they can create the new paths … Since the former is not possible early in the game and the latter is not easy, this patch imitates Minecraft 1.17 behaviour; the following nodes can now be turned into path nodes by right-clicking them with a shovel: • Dirt (mcl_core:dirt) • Coarse Dirt (mcl_core:coarse_dirt) • Dirt with Grass (mcl_core:dirt_with_grass) • Mycelium (mcl_core:mycelium) • Podzol (mcl_core:podzol) A group “path_creation_possible” has been added to mark nodes that can be turned into a dirt path with a shovel. One obvious objection to that addition might be that the “dirt” group already exists. Even though all existing nodes that can be turned into a dirt path do indeed belong to the “dirt” group, it is not a good idea: Changing what “dirt” means to “any node that can be turned into a dirt path” would make it harder to maintain the code.
616 lines
21 KiB
Lua
616 lines
21 KiB
Lua
local modname = minetest.get_current_modname()
|
|
local modpath = minetest.get_modpath(modname)
|
|
local S = minetest.get_translator(modname)
|
|
|
|
-- mods/default/tools.lua
|
|
|
|
--
|
|
-- Tool definition
|
|
--
|
|
|
|
--[[
|
|
dig_speed_class group:
|
|
- 1: Painfully slow
|
|
- 2: Very slow
|
|
- 3: Slow
|
|
- 4: Fast
|
|
- 5: Very fast
|
|
- 6: Extremely fast
|
|
- 7: Instantaneous
|
|
]]
|
|
|
|
-- The hand
|
|
local groupcaps, hand_range, hand_groups
|
|
|
|
if minetest.is_creative_enabled("") then
|
|
-- Instant breaking in creative mode
|
|
groupcaps = { creative_breakable = { times = {0}, uses = 0 } }
|
|
hand_range = 10
|
|
hand_groups = { dig_speed_class = 7 }
|
|
else
|
|
groupcaps = {}
|
|
hand_range = 4
|
|
hand_groups = { dig_speed_class = 1 }
|
|
end
|
|
minetest.register_tool(":", {
|
|
type = "none",
|
|
_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."),
|
|
wield_image = "blank.png",
|
|
wield_scale = {x=1.0,y=1.0,z=2.0},
|
|
-- According to Minecraft Wiki, the exact range is 3.975.
|
|
-- Minetest seems to only support whole numbers, so we use 4.
|
|
range = hand_range,
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.25,
|
|
max_drop_level = 0,
|
|
groupcaps = groupcaps,
|
|
damage_groups = {fleshy=1},
|
|
},
|
|
groups = hand_groups,
|
|
_mcl_diggroups = {
|
|
handy = { speed = 1, level = 1, uses = 0 },
|
|
axey = { speed = 1, level = 1, uses = 0 },
|
|
shovely = { speed = 1, level = 1, uses = 0 },
|
|
hoey = { speed = 1, level = 1, uses = 0 },
|
|
pickaxey = { speed = 1, level = 0, uses = 0 },
|
|
swordy = { speed = 1, level = 0, uses = 0 },
|
|
swordy_cobweb = { speed = 1, level = 0, uses = 0 },
|
|
shearsy = { speed = 1, level = 0, uses = 0 },
|
|
shearsy_wool = { speed = 1, level = 0, uses = 0 },
|
|
shearsy_cobweb = { speed = 1, level = 0, uses = 0 },
|
|
}
|
|
})
|
|
|
|
-- Help texts
|
|
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 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.")
|
|
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.")
|
|
|
|
local wield_scale = mcl_vars.tool_wield_scale
|
|
|
|
-- Picks
|
|
minetest.register_tool("mcl_tools:pick_wood", {
|
|
description = S("Wooden Pickaxe"),
|
|
_doc_items_longdesc = pickaxe_longdesc,
|
|
_doc_items_hidden = false,
|
|
inventory_image = "default_tool_woodpick.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, pickaxe=1, dig_speed_class=2, enchantability=15 },
|
|
tool_capabilities = {
|
|
-- 1/1.2
|
|
full_punch_interval = 0.83333333,
|
|
max_drop_level=1,
|
|
damage_groups = {fleshy=2},
|
|
punch_attack_uses = 30,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "group:wood",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
pickaxey = { speed = 2, level = 1, uses = 60 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:pick_stone", {
|
|
description = S("Stone Pickaxe"),
|
|
_doc_items_longdesc = pickaxe_longdesc,
|
|
inventory_image = "default_tool_stonepick.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, pickaxe=1, dig_speed_class=3, enchantability=5 },
|
|
tool_capabilities = {
|
|
-- 1/1.2
|
|
full_punch_interval = 0.83333333,
|
|
max_drop_level=3,
|
|
damage_groups = {fleshy=3},
|
|
punch_attack_uses = 66,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:cobble",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
pickaxey = { speed = 4, level = 3, uses = 132 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:pick_iron", {
|
|
description = S("Iron Pickaxe"),
|
|
_doc_items_longdesc = pickaxe_longdesc,
|
|
inventory_image = "default_tool_steelpick.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, pickaxe=1, dig_speed_class=4, enchantability=14 },
|
|
tool_capabilities = {
|
|
-- 1/1.2
|
|
full_punch_interval = 0.83333333,
|
|
max_drop_level=4,
|
|
damage_groups = {fleshy=4},
|
|
punch_attack_uses = 126,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:iron_ingot",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
pickaxey = { speed = 6, level = 4, uses = 251 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:pick_gold", {
|
|
description = S("Golden Pickaxe"),
|
|
_doc_items_longdesc = pickaxe_longdesc,
|
|
inventory_image = "default_tool_goldpick.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, pickaxe=1, dig_speed_class=6, enchantability=22 },
|
|
tool_capabilities = {
|
|
-- 1/1.2
|
|
full_punch_interval = 0.83333333,
|
|
max_drop_level=2,
|
|
damage_groups = {fleshy=2},
|
|
punch_attack_uses = 17,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:gold_ingot",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
pickaxey = { speed = 12, level = 2, uses = 33 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:pick_diamond", {
|
|
description = S("Diamond Pickaxe"),
|
|
_doc_items_longdesc = pickaxe_longdesc,
|
|
inventory_image = "default_tool_diamondpick.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, pickaxe=1, dig_speed_class=5, enchantability=10 },
|
|
tool_capabilities = {
|
|
-- 1/1.2
|
|
full_punch_interval = 0.83333333,
|
|
max_drop_level=5,
|
|
damage_groups = {fleshy=5},
|
|
punch_attack_uses = 781,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:diamond",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
pickaxey = { speed = 8, level = 5, uses = 1562 }
|
|
},
|
|
})
|
|
|
|
local function make_grass_path(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 make grass path if tool used on side or top of target node
|
|
if pointed_thing.above.y < pointed_thing.under.y then
|
|
return itemstack
|
|
end
|
|
|
|
if (minetest.get_item_group(node.name, "path_creation_possible") == 1) then
|
|
local above = table.copy(pointed_thing.under)
|
|
above.y = above.y + 1
|
|
if minetest.get_node(above).name == "air" then
|
|
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
|
|
|
|
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
|
-- Add wear (as if digging a shovely node)
|
|
local toolname = itemstack:get_name()
|
|
local wear = mcl_autogroup.get_wear(toolname, "shovely")
|
|
itemstack:add_wear(wear)
|
|
end
|
|
minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}, true)
|
|
minetest.swap_node(pointed_thing.under, {name="mcl_core:grass_path"})
|
|
end
|
|
end
|
|
return itemstack
|
|
end
|
|
|
|
local carve_pumpkin
|
|
if minetest.get_modpath("mcl_farming") then
|
|
function carve_pumpkin(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.is_creative_enabled(placer:get_player_name()) then
|
|
-- Add wear (as if digging a shearsy node)
|
|
local toolname = itemstack:get_name()
|
|
local wear = mcl_autogroup.get_wear(toolname, "shearsy")
|
|
itemstack:add_wear(wear)
|
|
end
|
|
minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = pointed_thing.above}, true)
|
|
local dir = vector.subtract(pointed_thing.under, pointed_thing.above)
|
|
local param2 = minetest.dir_to_facedir(dir)
|
|
minetest.set_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
|
|
|
|
-- Shovels
|
|
minetest.register_tool("mcl_tools:shovel_wood", {
|
|
description = S("Wooden Shovel"),
|
|
_doc_items_longdesc = shovel_longdesc,
|
|
_doc_items_usagehelp = shovel_use,
|
|
_doc_items_hidden = false,
|
|
inventory_image = "default_tool_woodshovel.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, shovel=1, dig_speed_class=2, enchantability=15 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1,
|
|
max_drop_level=1,
|
|
damage_groups = {fleshy=2},
|
|
punch_attack_uses = 30,
|
|
},
|
|
on_place = make_grass_path,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "group:wood",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
shovely = { speed = 2, level = 1, uses = 60 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:shovel_stone", {
|
|
description = S("Stone Shovel"),
|
|
_doc_items_longdesc = shovel_longdesc,
|
|
_doc_items_usagehelp = shovel_use,
|
|
inventory_image = "default_tool_stoneshovel.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, shovel=1, dig_speed_class=3, enchantability=5 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1,
|
|
max_drop_level=3,
|
|
damage_groups = {fleshy=3},
|
|
punch_attack_uses = 66,
|
|
},
|
|
on_place = make_grass_path,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:cobble",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
shovely = { speed = 4, level = 3, uses = 132 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:shovel_iron", {
|
|
description = S("Iron Shovel"),
|
|
_doc_items_longdesc = shovel_longdesc,
|
|
_doc_items_usagehelp = shovel_use,
|
|
inventory_image = "default_tool_steelshovel.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, shovel=1, dig_speed_class=4, enchantability=14 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1,
|
|
max_drop_level=4,
|
|
damage_groups = {fleshy=4},
|
|
punch_attack_uses = 126,
|
|
},
|
|
on_place = make_grass_path,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:iron_ingot",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
shovely = { speed = 6, level = 4, uses = 251 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:shovel_gold", {
|
|
description = S("Golden Shovel"),
|
|
_doc_items_longdesc = shovel_longdesc,
|
|
_doc_items_usagehelp = shovel_use,
|
|
inventory_image = "default_tool_goldshovel.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, shovel=1, dig_speed_class=6, enchantability=22 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1,
|
|
max_drop_level=2,
|
|
damage_groups = {fleshy=2},
|
|
punch_attack_uses = 17,
|
|
},
|
|
on_place = make_grass_path,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:gold_ingot",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
shovely = { speed = 12, level = 2, uses = 33 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:shovel_diamond", {
|
|
description = S("Diamond Shovel"),
|
|
_doc_items_longdesc = shovel_longdesc,
|
|
_doc_items_usagehelp = shovel_use,
|
|
inventory_image = "default_tool_diamondshovel.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, shovel=1, dig_speed_class=5, enchantability=10 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1,
|
|
max_drop_level=5,
|
|
damage_groups = {fleshy=5},
|
|
punch_attack_uses = 781,
|
|
},
|
|
on_place = make_grass_path,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:diamond",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
shovely = { speed = 8, level = 5, uses = 1562 }
|
|
},
|
|
})
|
|
|
|
-- Axes
|
|
local function make_stripped_trunk(itemstack, placer, pointed_thing)
|
|
if pointed_thing.type ~= "node" then return end
|
|
|
|
local node = minetest.get_node(pointed_thing.under)
|
|
local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
|
|
|
|
if not placer:get_player_control().sneak and noddef.on_rightclick then
|
|
return minetest.item_place(itemstack, placer, pointed_thing)
|
|
end
|
|
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
|
|
|
|
if noddef._mcl_stripped_variant == nil then
|
|
return itemstack
|
|
else
|
|
minetest.swap_node(pointed_thing.under, {name=noddef._mcl_stripped_variant, param2=node.param2})
|
|
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
|
-- Add wear (as if digging a axey node)
|
|
local toolname = itemstack:get_name()
|
|
local wear = mcl_autogroup.get_wear(toolname, "axey")
|
|
itemstack:add_wear(wear)
|
|
end
|
|
end
|
|
return itemstack
|
|
end
|
|
|
|
minetest.register_tool("mcl_tools:axe_wood", {
|
|
description = S("Wooden Axe"),
|
|
_doc_items_longdesc = axe_longdesc,
|
|
_doc_items_hidden = false,
|
|
inventory_image = "default_tool_woodaxe.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, axe=1, dig_speed_class=2, enchantability=15 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.25,
|
|
max_drop_level=1,
|
|
damage_groups = {fleshy=7},
|
|
punch_attack_uses = 30,
|
|
},
|
|
on_place = make_stripped_trunk,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "group:wood",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
axey = { speed = 2, level = 1, uses = 60 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:axe_stone", {
|
|
description = S("Stone Axe"),
|
|
_doc_items_longdesc = axe_longdesc,
|
|
inventory_image = "default_tool_stoneaxe.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, axe=1, dig_speed_class=3, enchantability=5 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.25,
|
|
max_drop_level=3,
|
|
damage_groups = {fleshy=9},
|
|
punch_attack_uses = 66,
|
|
},
|
|
on_place = make_stripped_trunk,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:cobble",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
axey = { speed = 4, level = 3, uses = 132 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:axe_iron", {
|
|
description = S("Iron Axe"),
|
|
_doc_items_longdesc = axe_longdesc,
|
|
inventory_image = "default_tool_steelaxe.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, axe=1, dig_speed_class=4, enchantability=14 },
|
|
tool_capabilities = {
|
|
-- 1/0.9
|
|
full_punch_interval = 1.11111111,
|
|
max_drop_level=4,
|
|
damage_groups = {fleshy=9},
|
|
punch_attack_uses = 126,
|
|
},
|
|
on_place = make_stripped_trunk,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:iron_ingot",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
axey = { speed = 6, level = 4, uses = 251 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:axe_gold", {
|
|
description = S("Golden Axe"),
|
|
_doc_items_longdesc = axe_longdesc,
|
|
inventory_image = "default_tool_goldaxe.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, axe=1, dig_speed_class=6, enchantability=22 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=2,
|
|
damage_groups = {fleshy=7},
|
|
punch_attack_uses = 17,
|
|
},
|
|
on_place = make_stripped_trunk,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:gold_ingot",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
axey = { speed = 12, level = 2, uses = 33 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:axe_diamond", {
|
|
description = S("Diamond Axe"),
|
|
_doc_items_longdesc = axe_longdesc,
|
|
inventory_image = "default_tool_diamondaxe.png",
|
|
wield_scale = wield_scale,
|
|
groups = { tool=1, axe=1, dig_speed_class=5, enchantability=10 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=5,
|
|
damage_groups = {fleshy=9},
|
|
punch_attack_uses = 781,
|
|
},
|
|
on_place = make_stripped_trunk,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:diamond",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
axey = { speed = 8, level = 5, uses = 1562 }
|
|
},
|
|
})
|
|
|
|
-- Swords
|
|
minetest.register_tool("mcl_tools:sword_wood", {
|
|
description = S("Wooden Sword"),
|
|
_doc_items_longdesc = sword_longdesc,
|
|
_doc_items_hidden = false,
|
|
inventory_image = "default_tool_woodsword.png",
|
|
wield_scale = wield_scale,
|
|
groups = { weapon=1, sword=1, dig_speed_class=2, enchantability=15 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.625,
|
|
max_drop_level=1,
|
|
damage_groups = {fleshy=4},
|
|
punch_attack_uses = 60,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "group:wood",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
swordy = { speed = 2, level = 1, uses = 60 },
|
|
swordy_cobweb = { speed = 2, level = 1, uses = 60 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:sword_stone", {
|
|
description = S("Stone Sword"),
|
|
_doc_items_longdesc = sword_longdesc,
|
|
inventory_image = "default_tool_stonesword.png",
|
|
wield_scale = wield_scale,
|
|
groups = { weapon=1, sword=1, dig_speed_class=3, enchantability=5 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.625,
|
|
max_drop_level=3,
|
|
damage_groups = {fleshy=5},
|
|
punch_attack_uses = 132,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:cobble",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
swordy = { speed = 4, level = 3, uses = 132 },
|
|
swordy_cobweb = { speed = 4, level = 3, uses = 132 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:sword_iron", {
|
|
description = S("Iron Sword"),
|
|
_doc_items_longdesc = sword_longdesc,
|
|
inventory_image = "default_tool_steelsword.png",
|
|
wield_scale = wield_scale,
|
|
groups = { weapon=1, sword=1, dig_speed_class=4, enchantability=14 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.625,
|
|
max_drop_level=4,
|
|
damage_groups = {fleshy=6},
|
|
punch_attack_uses = 251,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:iron_ingot",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
swordy = { speed = 6, level = 4, uses = 251 },
|
|
swordy_cobweb = { speed = 6, level = 4, uses = 251 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:sword_gold", {
|
|
description = S("Golden Sword"),
|
|
_doc_items_longdesc = sword_longdesc,
|
|
inventory_image = "default_tool_goldsword.png",
|
|
wield_scale = wield_scale,
|
|
groups = { weapon=1, sword=1, dig_speed_class=6, enchantability=22 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.625,
|
|
max_drop_level=2,
|
|
damage_groups = {fleshy=4},
|
|
punch_attack_uses = 33,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:gold_ingot",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
swordy = { speed = 12, level = 2, uses = 33 },
|
|
swordy_cobweb = { speed = 12, level = 2, uses = 33 }
|
|
},
|
|
})
|
|
minetest.register_tool("mcl_tools:sword_diamond", {
|
|
description = S("Diamond Sword"),
|
|
_doc_items_longdesc = sword_longdesc,
|
|
inventory_image = "default_tool_diamondsword.png",
|
|
wield_scale = wield_scale,
|
|
groups = { weapon=1, sword=1, dig_speed_class=5, enchantability=10 },
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.625,
|
|
max_drop_level=5,
|
|
damage_groups = {fleshy=7},
|
|
punch_attack_uses = 1562,
|
|
},
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_repair_material = "mcl_core:diamond",
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
swordy = { speed = 8, level = 5, uses = 1562 },
|
|
swordy_cobweb = { speed = 8, level = 5, uses = 1562 }
|
|
},
|
|
})
|
|
|
|
--Shears
|
|
minetest.register_tool("mcl_tools:shears", {
|
|
description = S("Shears"),
|
|
_doc_items_longdesc = shears_longdesc,
|
|
_doc_items_usagehelp = shears_use,
|
|
inventory_image = "default_tool_shears.png",
|
|
wield_image = "default_tool_shears.png",
|
|
stack_max = 1,
|
|
groups = { tool=1, shears=1, dig_speed_class=4, },
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.5,
|
|
max_drop_level=1,
|
|
},
|
|
on_place = carve_pumpkin,
|
|
sound = { breaks = "default_tool_breaks" },
|
|
_mcl_toollike_wield = true,
|
|
_mcl_diggroups = {
|
|
shearsy = { speed = 1.5, level = 1, uses = 238 },
|
|
shearsy_wool = { speed = 5, level = 1, uses = 238 },
|
|
shearsy_cobweb = { speed = 15, level = 1, uses = 238 }
|
|
},
|
|
})
|
|
|
|
|
|
dofile(modpath.."/crafting.lua")
|
|
dofile(modpath.."/aliases.lua")
|