@@ -8,10 +8,10 @@ minetest.set_node(pos, {name = 'default:stone'}) end } -sorcery.data.alloys = {} -sorcery.data.kilnrecs = {} +sorcery.registry.mk('alloys',false) +sorcery.registry.mk('kilnrecs',false) sorcery.data.metallookup = { -- compat bullshit ['moreores:silver_ingot'] = { id = 'silver'; data = sorcery.data.metals.silver; @@ -40,9 +40,10 @@ }; } local tools, armors = sorcery.matreg.tools, sorcery.matreg.armors -for name, metal in pairs(sorcery.data.metals) do +-- for name, metal in pairs(sorcery.data.metals) do +sorcery.register.metals.foreach('sorcery:generate',{},function(name,metal) local ingot = metal.ingot or 'sorcery:' .. name .. '_ingot' local block = metal.block or 'sorcery:' .. name .. 'block' local screw = 'sorcery:screw_' .. name local fragment = 'sorcery:fragment_' .. name @@ -79,15 +80,18 @@ sorcery.data.metallookup[fragment] = { id = name; data = metal; value = 1; } - sorcery.data.metallookup[screw] = { - id = name; data = metal; - value = 0; -- prevent use in smelting - } minetest.register_craftitem(screw, { description = sorcery.lib.str.capitalize(name) .. ' Screw'; inventory_image = sorcery.lib.image('sorcery_screw.png'):multiply(sorcery.lib.color(metal.tone)):render(); + _sorcery = { + material = { + id = name, data = metal; + grindcost = 2, grindvalue = 1; + value = 0.5; + }; + }; }) minetest.register_craftitem(powder, { description = sorcery.lib.str.capitalize(name) .. ' Powder'; inventory_image = 'sorcery_' .. name .. '_powder.png'; @@ -143,8 +147,15 @@ end minetest.register_craftitem(fragment, { inventory_image = 'sorcery_' .. name .. '_fragment.png'; description = sorcery.lib.str.capitalize(name) .. ' Fragment'; + _sorcery = { + recipe = { + canonical = { + cook = {{ingot}}; + }; + }; + }; }) minetest.register_craft { type = 'cooking'; recipe = powder; @@ -174,9 +185,9 @@ burntime = metal.fuel; } end if metal.mix then - sorcery.data.register.alloy(sorcery.lib.tbl.merge(metal.mix, { + sorcery.register.alloys.link(sorcery.lib.tbl.merge(metal.mix, { output = name; cooktime = metal.cooktime or 10; })) end @@ -188,10 +199,10 @@ local repl = {} if metal.sinter_catalyst then for _,m in pairs(metal.sinter_catalyst) do powders[#powders+1] = m - if sorcery.data.infusion_leftovers[m] then - repl[#repl+1] = {m, sorcery.data.infusion_leftovers[m]} + if sorcery.register.residue.db[m] then + repl[#repl+1] = {m, sorcery.register.residue.db[m]} end end end @@ -201,5 +212,5 @@ recipe = powders; replacements = repl; }; end -end +end)