mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 01:53:45 +01:00
Add disable_repair group to prevent tool repair (#7381)
This commit is contained in:
parent
b6adb7f09e
commit
40ab3e011d
@ -1551,6 +1551,8 @@ Special groups
|
|||||||
connect to each other
|
connect to each other
|
||||||
* `slippery`: Players and items will slide on the node.
|
* `slippery`: Players and items will slide on the node.
|
||||||
Slipperiness rises steadily with `slippery` value, starting at 1.
|
Slipperiness rises steadily with `slippery` value, starting at 1.
|
||||||
|
* `disable_repair`: If set to 1 for a tool, it cannot be repaired using the
|
||||||
|
`"toolrepair"` crafting recipe
|
||||||
|
|
||||||
|
|
||||||
Known damage and digging time defining groups
|
Known damage and digging time defining groups
|
||||||
@ -6156,6 +6158,8 @@ Used by `minetest.register_craft`.
|
|||||||
additional_wear = -0.02,
|
additional_wear = -0.02,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Note: Tools with group `disable_repair=1` will not repairable by this recipe.
|
||||||
|
|
||||||
### Cooking
|
### Cooking
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -615,6 +615,34 @@ minetest.register_craftitem("experimental:tester_tool_2", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- Test the disable_repair=1 group
|
||||||
|
minetest.register_tool("experimental:unrepairable_tool", {
|
||||||
|
description = "Unrepairable Tool",
|
||||||
|
wield_image = "default_stone.png",
|
||||||
|
inventory_image = "default_stone.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
groupcaps = {
|
||||||
|
cracky = {
|
||||||
|
times = {3, 2, 1},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
groups = { disable_repair = 1 }
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_tool("experimental:repairable_tool", {
|
||||||
|
description = "Repairable Tool",
|
||||||
|
wield_image = "default_dirt.png",
|
||||||
|
inventory_image = "default_dirt.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
groupcaps = {
|
||||||
|
cracky = {
|
||||||
|
times = {3, 2, 1},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'experimental:tester_tool_2',
|
output = 'experimental:tester_tool_2',
|
||||||
recipe = {
|
recipe = {
|
||||||
|
@ -579,7 +579,7 @@ static ItemStack craftToolRepair(
|
|||||||
IItemDefManager *idef = gamedef->idef();
|
IItemDefManager *idef = gamedef->idef();
|
||||||
if (item1.count != 1 || item2.count != 1 || item1.name != item2.name
|
if (item1.count != 1 || item2.count != 1 || item1.name != item2.name
|
||||||
|| idef->get(item1.name).type != ITEM_TOOL
|
|| idef->get(item1.name).type != ITEM_TOOL
|
||||||
|| idef->get(item2.name).type != ITEM_TOOL) {
|
|| itemgroup_get(idef->get(item1.name).groups, "disable_repair") == 1) {
|
||||||
// Failure
|
// Failure
|
||||||
return ItemStack();
|
return ItemStack();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user