2020-02-12 12:40:48 +01:00
|
|
|
local function add_hoe(material)
|
2020-08-10 22:06:35 +02:00
|
|
|
-- registering as tool
|
2020-02-12 12:40:48 +01:00
|
|
|
local name = "farming:hoe_"..material
|
2020-08-10 22:06:35 +02:00
|
|
|
toolranks.add_tool(name)
|
|
|
|
|
|
|
|
-- getting after_use
|
|
|
|
local def = minetest.registered_items[name]
|
|
|
|
local hoe_on_use = def.on_use
|
|
|
|
local hoe_after_use = def.after_use
|
|
|
|
|
|
|
|
if (hoe_on_use == nil) or (hoe_after_use == nil) then
|
|
|
|
return
|
|
|
|
end
|
2020-02-12 12:40:48 +01:00
|
|
|
minetest.override_item(name, {
|
2020-03-07 14:37:47 +01:00
|
|
|
-- we also want hoes to increase dugnodes when farming soil
|
|
|
|
on_use = function(itemstack, user, pointed_thing, uses)
|
2020-08-10 22:06:35 +02:00
|
|
|
local under = minetest.get_node(pointed_thing.under)
|
|
|
|
-- get origin wear
|
2020-03-07 14:37:47 +01:00
|
|
|
local wear = itemstack:get_wear()
|
2020-08-10 22:06:35 +02:00
|
|
|
-- apply previous on_use
|
2020-03-07 14:37:47 +01:00
|
|
|
local ret_itemstack = hoe_on_use(itemstack, user, pointed_thing, uses)
|
2020-08-10 22:06:35 +02:00
|
|
|
if ret_itemstack == nil then
|
|
|
|
return nil
|
2020-03-07 14:37:47 +01:00
|
|
|
end
|
2020-08-10 22:06:35 +02:00
|
|
|
-- compute wear diff
|
|
|
|
local hoe_uses = ret_itemstack:get_wear() - wear
|
|
|
|
-- set wear back because it is up to hoe_after_use to add wear
|
|
|
|
ret_itemstack:set_wear(wear)
|
|
|
|
-- apply afteruse
|
|
|
|
return hoe_after_use(ret_itemstack, user, under, {wear = hoe_uses})
|
2020-03-07 14:37:47 +01:00
|
|
|
end
|
|
|
|
|
2020-02-12 12:40:48 +01:00
|
|
|
})
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
add_hoe("wood")
|
|
|
|
add_hoe("stone")
|
|
|
|
add_hoe("steel")
|
|
|
|
|
|
|
|
-- Following hoes are not available in creative inventory, but
|
|
|
|
-- it is possible to /give them
|
|
|
|
add_hoe("bronze")
|
|
|
|
add_hoe("mese")
|
|
|
|
add_hoe("diamond")
|