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:
Louis 2020-02-02 15:13:01 +01:00
父節點 6fd3729669
當前提交 89bffdecaf
共有 2 個文件被更改,包括 32 次插入1 次删除

查看文件

@ -117,10 +117,39 @@ for i in ipairs(moretrees.cutting_tools) do
},
replacements = {
{ "moretrees:coconut", "moretrees:raw_coconut" },
{ tool, tool }
}
})
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({
type = "shapeless",

查看文件

@ -1 +1,3 @@
name = moretrees
depends = default, biome_lib, vessels
optional_depends = doors stairs, moreblocks, intllib, farming