technic_armor/init.lua

143 lines
2.8 KiB
Lua
Raw Normal View History

2020-11-04 22:26:05 +01:00
-- Use 3d_armor translator to take advantage of existing translations for armor parts
local S = minetest.get_translator("3d_armor")
2018-02-11 17:58:03 +01:00
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
2018-02-11 17:58:03 +01:00
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
}
2018-02-11 17:58:03 +01:00
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}}
}
2018-02-11 17:58:03 +01:00
}
2018-02-11 17:58:03 +01:00
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}}
}
2018-02-11 17:58:03 +01:00
end
local function make_recipe(template, material)
2018-02-11 17:58:03 +01:00
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
2018-02-11 17:58:03 +01:00
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)
2021-10-10 12:20:22 +02:00
}
2018-02-11 17:58:03 +01:00
})
minetest.register_craft({
output = name,
recipe = make_recipe(p.craft, m.craft_item),
2018-02-11 17:58:03 +01:00
})
end
end