@@ -45,9 +45,10 @@ metallic = function(m) if m and m.data and m.data.parts and m.data.parts.powder then return { hardness = m.data.hardness; - value = m.value or 1, grindcost = 1; + grindcost = 1; + grindvalue = m.value or 1; powder = m.data.parts.powder; } end end; @@ -56,9 +57,15 @@ local def = minetest.registered_items[name]._sorcery if not def then return nil end def = def.material if def and def.grindvalue then - return def end + return { + hardness = def.data.hardness; + grindcost = def.grindcost or 1; + grindvalue = def.grindvalue; + powder = def.powder or def.data.parts.powder; + } + end end; }; metal = { predicate = function(name) @@ -74,8 +81,12 @@ -- like armors and tools, to the material they -- are made out of local mat = sorcery.matreg.lookup[name] if mat and mat.metal then return mat end + local prop = minetest.registered_items[name]._sorcery + if prop and prop.material and prop.material.metal then + return prop.material + end end; }; ore = { groups = { 'ore' };