diff --git a/workbench.lua b/workbench.lua index 53d4da52ac3a0fa22ed366746843d25e1495874e..781498855aa3db783aba80de8916f2a31b6f1b78 100644 --- a/workbench.lua +++ b/workbench.lua @@ -38,9 +38,10 @@ workbench.defs = { } -- Tools allowed to be repaired. -workbench.repairable_tools = [[ - pick, axe, shovel, sword, hoe, armor, shield -]] +function workbench:repairable_tools(stack) + local tools = [[ pick, axe, shovel, sword, hoe, armor, shield ]] + return tools:find(stack:match(":(%w+)")) +end function workbench:get_output(inv, input, name) if inv:is_empty("input") then @@ -141,8 +142,7 @@ end function workbench.put(_, listname, _, stack) local stackname = stack:get_name() - if (listname == "tool" and stack:get_wear() > 0 and - workbench.repairable_tools:find(stackname:match(":(%w+)"))) or + if (listname == "tool" and stack:get_wear() > 0 and workbench:repairable_tools(stackname)) or (listname == "input" and minetest.registered_nodes[stackname.."_cube"]) or (listname == "hammer" and stackname == "xdecor:hammer") or listname == "storage" then