So, the Farming Redo code for hoe functioning is:
Spoiler
function farming.hoe_on_use(itemstack, user, pointed_thing, uses)
local pt = pointed_thing
-- check if pointing at a node
if not pt or pt.type ~= "node" then
return
end
local under = minetest.get_node(pt.under)
local upos = pointed_thing.under
if minetest.is_protected(upos, user:get_player_name()) then
minetest.record_protection_violation(upos, user:get_player_name())
return
end
local p = {x = pt.under.x, y = pt.under.y + 1, z = pt.under.z}
local above = minetest.get_node(p)
-- return if any of the nodes is not registered
if not minetest.registered_nodes[under.name]
or not minetest.registered_nodes[above.name] then
return
end
-- check if the node above the pointed thing is air
if above.name ~= "air" then
return
end
-- check if pointing at dirt
if minetest.get_item_group(under.name, "soil") ~= 1 then
return
end
-- turn the node into soil, wear out item and play sound
minetest.set_node(pt.under, {name = "farming:soil"})
minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5})
local wear = 65535 / (uses -1)
if farming.is_creative(user:get_player_name()) then
if tr then
wear = 1
else
wear = 0
end
end
if tr then
itemstack = toolranks.new_afteruse(itemstack, user, under, {wear = wear})
else
itemstack:add_wear(wear)
end
return itemstack
end
Spoiler
minetest.register_node(":default:dirt", {
description = "Dirt",
tiles = {"default_dirt.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.25},
}),
on_punch = function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == "farming:hoe" then
minetest.set_node(pos, {name="farming:soil"})
end
end,
})
minetest.register_node(":default:dirt_with_grass", {
description = "Grass",
tiles = {"default_dirt_grass.png",
"default_dirt.png",
"default_dirt_grass.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.25},
}),
on_punch = function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == "farming:hoe" then
minetest.set_node(pos, {name="farming:soil"})
end
end,
})
The Farming Redo hoes aren't working in RT either, by the way, so changing the crafting recipe wouldn't make a difference, I guess.