@@ -60,12 +60,41 @@ minetest.register_craftitem('sorcery:' .. name, extra) end sorcery.register_potion('blood', 'Blood', 'A bottle of sacrificial blood, imbued with stolen (or perhaps donated) life force', u.color(219,19,14), nil, nil, { - sorcery_life_store = 4; + _sorcery = { + life_store = 4; + container = { + type = 'vessel'; + hold = 'liquid'; + has = 'sorcery:blood'; + empty = 'vessels:glass_bottle'; + charge = 3; + }; + }; +}) +sorcery.register_potion('potion_water', 'Water Bottle', 'A bottle of plain water', u.color(43,90,162),nil,nil,{ + _sorcery = { + container = { + type = 'vessel'; + hold = 'liquid'; + has = 'default:water'; + empty = 'vessels:glass_bottle'; + charge = 3; + }; + }; }) -sorcery.register_potion('potion_water', 'Water Bottle', 'A bottle of plain water', u.color(43,90,162)) -sorcery.register_potion('holy_water', 'Holy Water','A bottle of consecrated water',u.color(94,138,206),'sparkle',6) +sorcery.register_potion('holy_water', 'Holy Water','A bottle of consecrated water',u.color(94,138,206),'sparkle',6,{ + _sorcery = { + container = { + type = 'vessel'; + hold = 'liquid'; + has = 'sorcery:water_holy'; + empty = 'vessels:glass_bottle'; + charge = 3; + }; + }; +}) local create_infusion_recipe = function(id,potion,default_basis,proto) if potion.infusion then sorcery.register.infusions.link { @@ -213,11 +242,32 @@ sorcery.register.extracts.foreach('sorcery:mknodes',{},function(n,v) local item = v[1] local color = u.color(v[2]) local name = 'extract_' .. n - sorcery.register_potion(name, u.str.capitalize(n) .. ' Extract', nil, color, 'sparkle', false, { + local liqid = 'sorcery:' .. name + local desc = u.str.capitalize(n) .. ' Extract' + sorcery.register_potion(name, desc, nil, color, 'sparkle', false, { groups = { sorcery_extract = 1; + sorcery_container = 2; + }; + _sorcery = { + container = { + type = 'vessel'; + hold = 'liquid'; + charge = 3; + has = liqid; + empty = 'vessels:glass_bottle'; + }; + }; + }) + + sorcery.register.liquid.link(liqid, { + name = desc; + kind = 'sorcery:extract'; + proto = v; + containers = { + ['vessels:glass_bottle'] = name; }; }) local add_alcohol = function(booze)