-- Use 3d_armor translator to take advantage of existing translations for armor parts local S = minetest.get_translator("3d_armor") local materials = {} if minetest.get_modpath("technic_worldgen") then materials.lead = { name = S("Lead"), craft_item = "technic:lead_ingot", armor = 1.6, heal = 0, use = 500, radiation = 88, } materials.brass = { name = S("Brass"), craft_item = "technic:brass_ingot", armor = 1.8, heal = 0, use = 650, radiation = 43, } materials.cast = { name = S("Cast Iron"), craft_item = "technic:cast_iron_ingot", armor = 2.5, heal = 8, use = 200, radiation = 40, } materials.carbon = { name = S("Carbon Steel"), craft_item = "technic:carbon_steel_ingot", armor = 2.7, heal = 10, use = 100, radiation = 40, } materials.stainless = { name = S("Stainless Steel"), craft_item = "technic:stainless_steel_ingot", armor = 2.7, heal = 10, use = 75, radiation = 40, } end if minetest.get_modpath("moreores") then materials.silver = { name = S("Silver"), craft_item = "moreores:silver_ingot", armor = 1.8, heal = 6, use = 650, radiation = 53, } end if minetest.get_modpath("default") then materials.tin = { name = S("Tin"), craft_item = "default:tin_ingot", armor = 1.6, heal = 0, use = 750, radiation = 37, } end local parts = { helmet = { name = S("Helmet"), place = "head", level = 5, radlevel = 0.10, craft = { { 1, 1, 1 }, { 1, 0, 1 } }, }, chestplate = { name = S("Chestplate"), place = "torso", level = 8, radlevel = 0.35, craft = { { 1, 0, 1 }, { 1, 1, 1 }, { 1, 1, 1 } }, }, leggings = { name = S("Leggings"), place = "legs", level = 7, radlevel = 0.15, craft = { { 1, 1, 1 }, { 1, 0, 1 }, { 1, 0, 1 } }, }, boots = { name = S("Boots"), place = "feet", level = 4, radlevel = 0.10, craft = { { 1, 0, 1 }, { 1, 0, 1 } }, }, } if minetest.get_modpath("shields") then parts.shield = { name = S("Shield"), place = "shield", level = 5, radlevel = 0.00, craft = { { 1, 1, 1 }, { 1, 1, 1 }, { 0, 1, 0 } }, } end local function make_recipe(template, material) local recipe = {} for i, row in ipairs(template) do recipe[i] = {} for j, item in ipairs(row) do recipe[i][j] = item == 0 and "" or material end end return recipe end for material, m in pairs(materials) do for part, p in pairs(parts) do local name = "technic_armor:" .. part .. "_" .. material armor:register_armor(name, { description = S("@1 @2", m.name, p.name), inventory_image = "technic_armor_inv_" .. part .. "_" .. material .. ".png", groups = { ["armor_" .. p.place] = math.floor(p.level * m.armor), armor_heal = m.heal, armor_use = m.use, armor_radiation = math.floor(p.radlevel * m.radiation), }, armor_groups = { ["fleshy"] = math.floor(p.level * m.armor), }, --damage_groups = --{ ["level"] = math.floor(p.level * m.armor), }, }) minetest.register_craft({ output = name, recipe = make_recipe(p.craft, m.craft_item), }) end end -- groups = {armor_legs=25, armor_heal=17, armor_use=40, armor_fire=1}, -- armor_groups = {fleshy=25}, --damage_groups = {cracky=2, snappy=1, level=3}, -- wear = 0,