@@ -71,29 +71,19 @@ id = name; data = metal; value = c.cost * fragments_per_ingot; } end end - sorcery.data.metallookup[ingot] = { - id = name; data = metal; - value = fragments_per_ingot; - } - sorcery.data.metallookup[block] = { - id = name; data = metal; - value = fragments_per_ingot * 9; - } - sorcery.data.metallookup[fragment] = { - id = name; data = metal; - value = 1; - } - sorcery.data.metallookup[disc] = { - id = name; data = metal; - value = 8/3; - } + local install = function(part,amt) + sorcery.data.metallookup[part] = { id = name, data = metal, value = amt } + end + install(ingot, fragments_per_ingot) + install(block, fragments_per_ingot*9) + install(fragment, 1) + install(powder, 1) + install(disc, 8/3) + if not metal.no_craftables then - sorcery.data.metallookup[screw] = { - id = name; data = metal; - value = 0.5; - } + install(screw, 0.5) 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(); groups = { metal = 1; sorcery_screw = 1; sorcery_tech_component = 1; }; @@ -132,8 +122,18 @@ }; }; }) + sorcery.lathe.register { + input = ingot; + output = {name = fragment; count = fragments_per_ingot}; + tech = 'cut', cost = 2; + } + sorcery.lathe.register { + input = block; + output = {name = fragment; count = fragments_per_ingot*9}; + tech = 'cut', cost = 2*7; + } sorcery.lathe.register { input = ingot, mass = 2; output = {name = disc, count = 3}; tech = 'cut', cost = 5; @@ -147,8 +147,9 @@ minetest.register_craftitem(powder, { description = sorcery.lib.str.capitalize(name) .. ' Powder'; inventory_image = 'sorcery_' .. name .. '_powder.png'; + groups = {sorcery_powder = 1; powder = 1}; }) if metal.dye then minetest.register_craft { output = 'dye:' .. metal.dye .. ' 4'; @@ -224,9 +225,9 @@ output = fragment .. ' ' .. tostring(fragments_per_ingot); } do local rec = {} for i=1,fragments_per_ingot do - rec[#rec+1]=fragment + rec[#rec+1]=fragment end minetest.register_craft { type = 'shapeless'; recipe = rec;