The bucket API allows registering new types of buckets for non-default liquids.
-
bucket.register_liquid(
"default:lava_source", -- name of the source node
"default:lava_flowing", -- name of the flowing node
-- Needed to avoid creating holes in sloping rivers.
)
+The filled bucket item is returned to the player that uses an empty bucket pointing to the given liquid source.
+When punching with an empty bucket pointing to an entity or a non-liquid node, the on_punch of the entity or node will be triggered.
+
Beds API
--------
stack_max = 99,
liquids_pointable = true,
on_use = function(itemstack, user, pointed_thing)
- -- Must be pointing to node
- if pointed_thing.type ~= "node" then
+ if pointed_thing.type == "object" then
+ pointed_thing.ref:punch(user, 1.0, { full_punch_interval=1.0 }, nil)
+ return user:get_wielded_item()
+ elseif pointed_thing.type ~= "node" then
+ -- do nothing if it's neither object nor node
return
end
-- Check if pointing to a liquid source
end
return ItemStack(giving_back)
+ else
+ -- non-liquid nodes will have their on_punch triggered
+ local node_def = minetest.registered_nodes[node.name]
+ if node_def then
+ node_def.on_punch(pointed_thing.under, node, user, pointed_thing)
+ end
+ return user:get_wielded_item()
end
end,
})