*`function(pos)`: will return name of the node to place with pos being the placement position
*`source_take`: table of liquid source node names to take
*`bucketname`: itemstring of the new bucket item
*`inventory_image`: texture of the new bucket item (ignored if itemname == nil)
*`name`: user-visible bucket description
*`longdesc`: long explanatory description (for help)
*`usagehelp`: short usage explanation (for help)
*`tt_help`: very short tooltip help
*`extra_check(pos, placer)`: (optional) additional check before liquid placement (return 2 booleans: (1) whether to place the liquid source and (2) whether to empty the bucket)