Skip intermediate variable for returns.
Added mcl_cauldrons.get_substance() to get substance from cauldron.
Added explicit list of cauldron substances.
Item group comparision against 0 instead of greater than.
Cauldron callbacks assigned function references instead of functions defined in-place.
Short-hand invocation of callback with default alternate value.
local helper function merge_tables made recursive to allow selective subkey override/substituion.
Cauldron fill heights determined by table lookup instead of cascading "if"s.
Trimming some dead code.
Delete commented out code.
Change names of variables to be more clear of purpose.
Slightly cleaner logic getting bucket from cauldron.
Play sounds when bucket takes from cauldron.
Guard against entirety of bucket placing water source if cauldron filled successfully (avoid empty if branch).
Adjust cauldron collision box to make it possible to jump/fall inside.
Minimally functioning state: water cauldron extinguish entity on fire.
Fix interaction of bottles with water sources and cauldrons:
* take and give 1/3 level from/to cauldrons (creative mode and survival mode inventory changse).
* take from mcl_core:water_source
Removed utils.lua (contents were moved into register.lua).