forked from mtcontrib/moretrees
Fix bug with coconut-milk craft
When crafting, tool used was fully repaired. Now crafting will do damages on tool used instead.
This commit is contained in:
parent
6fd3729669
commit
89bffdecaf
31
crafts.lua
31
crafts.lua
@ -117,10 +117,39 @@ for i in ipairs(moretrees.cutting_tools) do
|
|||||||
},
|
},
|
||||||
replacements = {
|
replacements = {
|
||||||
{ "moretrees:coconut", "moretrees:raw_coconut" },
|
{ "moretrees:coconut", "moretrees:raw_coconut" },
|
||||||
{ tool, tool }
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
-- give tool back with wear preserved
|
||||||
|
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
|
||||||
|
if (itemstack:get_name() == "moretrees:coconut_milk") then
|
||||||
|
for i, j in pairs(old_craft_grid) do
|
||||||
|
-- find tool used to do the craft
|
||||||
|
local ocg_name = j:get_name()
|
||||||
|
if ((ocg_name ~= "") and (ocg_name ~= "moretrees:coconut") and (ocg_name ~= "vessels:drinking_glass")) then
|
||||||
|
-- create a new tool and set wear
|
||||||
|
local t = ItemStack(ocg_name)
|
||||||
|
local w = j:get_wear()
|
||||||
|
-- works if tool used is an axe
|
||||||
|
local uses = j:get_tool_capabilities().groupcaps.choppy.uses or 0
|
||||||
|
if (w == 0 and uses ~= 0) then
|
||||||
|
-- tool has never been used
|
||||||
|
-- use tool once
|
||||||
|
t:set_wear(65535/(9*(uses - 1)))
|
||||||
|
else
|
||||||
|
-- set wear back
|
||||||
|
t:set_wear(w)
|
||||||
|
-- use tool once
|
||||||
|
if (uses ~= 0) then
|
||||||
|
t:add_wear(65535/(9*(uses - 1)))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- add to craft inventory
|
||||||
|
craft_inv:add_item("craft", t)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
|
Loading…
Reference in New Issue
Block a user