Skip to content
Permalink
Browse files

Add disable_repair group to prevent tool repair (#7381)

  • Loading branch information...
Wuzzy2 authored and paramat committed Oct 16, 2018
1 parent b6adb7f commit 40ab3e011de5be83b342e5d2b67c2837294b2d58
Showing with 33 additions and 1 deletion.
  1. +4 −0 doc/lua_api.txt
  2. +28 −0 games/minimal/mods/experimental/init.lua
  3. +1 −1 src/craftdef.cpp
@@ -1551,6 +1551,8 @@ Special groups
connect to each other
* `slippery`: Players and items will slide on the node.
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
@@ -6156,6 +6158,8 @@ Used by `minetest.register_craft`.
additional_wear = -0.02,
}

Note: Tools with group `disable_repair=1` will not repairable by this recipe.

### Cooking

{
@@ -615,6 +615,34 @@ minetest.register_craftitem("experimental:tester_tool_2", {
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({
output = 'experimental:tester_tool_2',
recipe = {
@@ -579,7 +579,7 @@ static ItemStack craftToolRepair(
IItemDefManager *idef = gamedef->idef();
if (item1.count != 1 || item2.count != 1 || item1.name != item2.name
|| 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
return ItemStack();
}

0 comments on commit 40ab3e0

Please sign in to comment.
You can’t perform that action at this time.