@@ -57,14 +57,15 @@ sorcery.register_potion('blood', 'Blood', 'A bottle of sacrificial blood, imbued\nwith stolen life force', u.color(219,19,14)) 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) -local create_infusion_recipe = function(id,potion,default_basis) +local create_infusion_recipe = function(id,potion,default_basis,proto) if potion.infusion then sorcery.data.register.infusion { infuse = potion.infusion; into = potion.basis or default_basis; output = 'sorcery:' .. id; + _proto = proto; } end end @@ -76,16 +77,17 @@ local desc = 'A ' .. ((glow and 'glowing ') or '') .. 'bottle of ' .. string.lower(n) .. ((kind == 'sparkle' and ', fiercely bubbling') or '') .. ' liquid' - sorcery.register_potion(id, n .. ' Potion', desc, color, kind, glow, { + local fullname = n .. ' Potion' + sorcery.register_potion(id, fullname, desc, color, kind, glow, { _proto = v; groups = { sorcery_potion = 1; sorcery_magical = 1; }; }) - create_infusion_recipe(id,v,'sorcery:potion_serene') + create_infusion_recipe(id,v,'sorcery:potion_serene',{data=v,name=fullname}) end for n,potion in pairs(sorcery.data.draughts) do local name = 'draught_' .. n @@ -132,28 +134,30 @@ end return stack end } - sorcery.register_potion(name, potion.name .. ' Draught', + local fullname = potion.name .. ' Draught' + sorcery.register_potion(name, fullname, potion.desc, u.color(potion.color), potion.style or 'dull', potion.glow or 0, behavior) - create_infusion_recipe(name,potion,'sorcery:potion_luminous') + create_infusion_recipe(name,potion,'sorcery:potion_luminous',{data=potion,name=fullname}) end for n,elixir in pairs(sorcery.data.elixirs) do local color = u.color(elixir.color) local id = 'elixir_' .. string.lower(n) - sorcery.register_potion(id, 'Elixir of ' .. n, nil, color, 'dull', false, { + local fullname = 'Elixir of ' .. n + sorcery.register_potion(id, fullname, nil, color, 'dull', false, { _proto = elixir; groups = { sorcery_elixir = 1; sorcery_magical = 1; }; }) - create_infusion_recipe(id,elixir,'sorcery:potion_misty') + create_infusion_recipe(id,elixir,'sorcery:potion_misty',{data=elixir,name=fullname}) end for n,v in pairs(sorcery.data.oils) do local color = u.color(v.color) @@ -168,32 +172,37 @@ for n,v in pairs(sorcery.data.greases) do local color = u.color(v.color) local kind = v.style sorcery.register_oil('grease_' .. n, u.str.capitalize(n) .. ' Grease', nil, color, kind, { - groups = { sorcery_grease = 2 } + groups = { sorcery_grease = 1 } }) end for n,v in pairs(sorcery.data.philters) do local color = u.color(v.color) local id = 'philter_' .. n local name = v.name or u.str.capitalize(n) - sorcery.register_potion(id, name .. ' Philter', v.desc, color, 'sparkle',v.glow or 4, { + local fullname = name .. ' Philter' + sorcery.register_potion(id, fullname, v.desc, color, 'sparkle',v.glow or 4, { _proto = v; _protoname = n; groups = { sorcery_magical = 1; sorcery_philter = 1; }; }) - create_infusion_recipe(id,v,'sorcery:potion_viscous') + create_infusion_recipe(id,v,'sorcery:potion_viscous',{data=v,name=fullname}) end for n,v in pairs(sorcery.data.extracts) do 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) + sorcery.register_potion(name, u.str.capitalize(n) .. ' Extract', nil, color, 'sparkle', false, { + groups = { + sorcery_extracts = 1; + }; + }) local add_alcohol = function(booze) minetest.register_craft { type = "shapeless";