diff --git a/mods/default/functions.lua b/mods/default/functions.lua index c5245f76..aa0d4cec 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -216,6 +216,9 @@ minetest.register_abm({ -- -- If param2 of the node is ~= 0, the node will always be preserved. Thus, if -- the player places a node of that kind, you will want to set param2=1 or so. +-- +-- If the node is in the leafdecay_drop group then the it will always be dropped +-- as an item default.leafdecay_trunk_cache = {} default.leafdecay_enable_cache = true @@ -284,7 +287,8 @@ minetest.register_abm({ -- Drop stuff other than the node itself itemstacks = minetest.get_node_drops(n0.name) for _, itemname in ipairs(itemstacks) do - if itemname ~= n0.name then + if minetest.get_item_group(n0.name, "leafdecay_drop") ~= 0 or + itemname ~= n0.name then local p_drop = { x = p0.x - 0.5 + math.random(), y = p0.y - 0.5 + math.random(), diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 26e02ed5..e2f81aa4 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1124,9 +1124,14 @@ minetest.register_node("default:apple", { type = "fixed", fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} }, - groups = {fleshy=3,dig_immediate=3,flammable=2}, + groups = {fleshy=3,dig_immediate=3,flammable=2,leafdecay=1,leafdecay_drop=1}, on_use = minetest.item_eat(4), sounds = default.node_sound_defaults(), + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.env:set_node(pos, {name="default:apple", param2=1}) + end + end, }) minetest.register_node("default:dry_shrub", {