Compare commits
No commits in common. "master" and "nalc-1.0" have entirely different histories.
10
.github/workflows/luacheck.yml
vendored
|
@ -1,10 +0,0 @@
|
||||||
name: luacheck
|
|
||||||
on: [push, pull_request]
|
|
||||||
jobs:
|
|
||||||
luacheck:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@main
|
|
||||||
- name: Luacheck
|
|
||||||
uses: lunarmodules/luacheck@master
|
|
10
.gitignore
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
## Generic ignorable patterns and files
|
||||||
|
*~
|
||||||
|
.*.swp
|
||||||
|
*bak*
|
||||||
|
tags
|
||||||
|
*.vim
|
||||||
|
|
||||||
|
## Eclipse project files & directories
|
||||||
|
.project
|
||||||
|
.settings
|
|
@ -1,4 +0,0 @@
|
||||||
globals = {
|
|
||||||
"armor",
|
|
||||||
"minetest",
|
|
||||||
}
|
|
|
@ -1,4 +1,7 @@
|
||||||
|
[mod] Technic Armor [technic_armor]
|
||||||
|
===================================
|
||||||
|
|
||||||
License Source Code: Copyright (C) 2013-2018 Stuart Jones - LGPL v2.1
|
License Source Code: Copyright (C) 2013-2018 Stuart Jones - LGPL v2.1
|
||||||
|
|
||||||
License Textures: poet-nohit and numberZero - 2015-2018 WTFPL
|
License Textures: poet.nohit and numberZero - 2015-2018 WTFPL
|
||||||
|
|
||||||
|
|
14
README.md
|
@ -1,14 +0,0 @@
|
||||||
# Technic Armor [technic_armor]
|
|
||||||
|
|
||||||
[![luacheck](https://github.com/mt-mods/technic_armor/workflows/luacheck/badge.svg)](https://github.com/mt-mods/technic_armor/actions)
|
|
||||||
[![ContentDB](https://content.minetest.net/packages/mt-mods/technic_armor/shields/downloads/)](https://content.minetest.net/packages/mt-mods/technic_armor/)
|
|
||||||
|
|
||||||
Adds armor made from lead, brass, cast iron, carbon steel, stainless steel, tin and silver.
|
|
||||||
|
|
||||||
![](screenshot.png?raw=true)
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Code: LGPL v2.1
|
|
||||||
|
|
||||||
Textures: WTFPL (by poet-nohit and numberZero)
|
|
9
README.txt
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[mod] Technic Armor [technic_armor]
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Adds tin, silver and technic materials to 3d_armor.
|
||||||
|
Requires technic (technic_worldgen at least) mod.
|
||||||
|
|
||||||
|
Depends: 3d_armor, technic_worldgen
|
||||||
|
|
||||||
|
Textures by poet.nohit and numberZero
|
3
depends.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
3d_armor
|
||||||
|
technic_worldgen?
|
||||||
|
moreores?
|
1
description.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Adds tin, silver and technic materials to 3d_armor.
|
163
init.lua
|
@ -1,141 +1,66 @@
|
||||||
-- Use 3d_armor translator to take advantage of existing translations for armor parts
|
-- support for i18n
|
||||||
local S = minetest.get_translator("3d_armor")
|
local S = armor_i18n.gettext
|
||||||
|
local F = armor_i18n.fgettext
|
||||||
|
|
||||||
local materials = {}
|
if not minetest.get_modpath("technic_worldgen") then
|
||||||
|
minetest.log("warning", S("technic_armor: Mod loaded but unused."))
|
||||||
if minetest.get_modpath("technic_worldgen") then
|
return
|
||||||
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
|
end
|
||||||
|
|
||||||
|
local stats = {
|
||||||
|
lead = { name=S("Lead"), material="technic:lead_ingot", armor=1.6, heal=0, use=500, radiation=80*1.1 },
|
||||||
|
brass = { name=S("Brass"), material="technic:brass_ingot", armor=1.8, heal=0, use=650, radiation=43 },
|
||||||
|
cast = { name=S("Cast Iron"), material="technic:cast_iron_ingot", armor=2.5, heal=8, use=200, radiation=40 },
|
||||||
|
carbon = { name=S("Carbon Steel"), material="technic:carbon_steel_ingot", armor=2.7, heal=10, use=100, radiation=40 },
|
||||||
|
stainless = { name=S("Stainless Steel"), material="technic:stainless_steel_ingot", armor=2.7, heal=10, use=75, radiation=40 },
|
||||||
|
}
|
||||||
if minetest.get_modpath("moreores") then
|
if minetest.get_modpath("moreores") then
|
||||||
materials.silver = {
|
stats.tin = { name=S("Tin"), material="moreores:tin_ingot", armor=1.6, heal=0, use=750, radiation=37 }
|
||||||
name = S("Silver"),
|
stats.silver = { name=S("Silver"), material="moreores:silver_ingot", armor=1.8, heal=6, use=650, radiation=53 }
|
||||||
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
|
end
|
||||||
|
|
||||||
local parts = {
|
local parts = {
|
||||||
helmet = {
|
helmet = { place="head", name=S("Helmet"), level=5, radlevel = 0.10, craft={{1,1,1},{1,0,1}} },
|
||||||
name = S("Helmet"),
|
chestplate = { place="torso", name=S("Chestplate"), level=8, radlevel = 0.35, craft={{1,0,1},{1,1,1},{1,1,1}} },
|
||||||
place = "head",
|
leggings = { place="legs", name=S("Leggings"), level=7, radlevel = 0.15, craft={{1,1,1},{1,0,1},{1,0,1}} },
|
||||||
level = 5,
|
boots = { place="feet", name=S("Boots"), level=4, radlevel = 0.10, craft={{1,0,1},{1,0,1}} },
|
||||||
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
|
if minetest.get_modpath("shields") then
|
||||||
parts.shield = {
|
parts.shield = { place="shield", name=S("Shield"), level=5, radlevel=0.00, craft={{1,1,1},{1,1,1},{0,1,0}} }
|
||||||
name = S("Shield"),
|
|
||||||
place = "shield",
|
|
||||||
level = 5,
|
|
||||||
radlevel = 0.00,
|
|
||||||
craft = {{1, 1, 1}, {1, 1, 1}, {0, 1, 0}}
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function make_recipe(template, material)
|
-- Makes a craft recipe based on a template
|
||||||
|
-- template is a recipe-like table but indices are used instead of actual item names:
|
||||||
|
-- 0 means nothing, everything else is treated as an index in the materials table
|
||||||
|
local function make_recipe(template, materials)
|
||||||
local recipe = {}
|
local recipe = {}
|
||||||
for i, row in ipairs(template) do
|
for j, trow in ipairs(template) do
|
||||||
recipe[i] = {}
|
local rrow = {}
|
||||||
for j, item in ipairs(row) do
|
for i, tcell in ipairs(trow) do
|
||||||
recipe[i][j] = item == 0 and "" or material
|
if tcell == 0 then
|
||||||
|
rrow[i] = ""
|
||||||
|
else
|
||||||
|
rrow[i] = materials[tcell]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
recipe[j] = rrow
|
||||||
end
|
end
|
||||||
return recipe
|
return recipe
|
||||||
end
|
end
|
||||||
|
|
||||||
for material, m in pairs(materials) do
|
for key, armor in pairs(stats) do
|
||||||
for part, p in pairs(parts) do
|
for partkey, part in pairs(parts) do
|
||||||
local name = "technic_armor:"..part.."_"..material
|
local partname = "technic_armor:"..partkey.."_"..key
|
||||||
armor:register_armor(name, {
|
minetest.register_tool(partname, {
|
||||||
description = S("@1 @2", m.name, p.name),
|
-- Translators: @1 stands for material and @2 for part of the armor, so that you could use a conjunction if in your language part name comes first then material (e.g. in french 'Silver Boots' is translated in 'Bottes en argent' by using '@2 en @1' as translated string)
|
||||||
inventory_image = "technic_armor_inv_"..part.."_"..material..".png",
|
description = S("@1 @2", armor.name, part.name),
|
||||||
groups = {
|
inventory_image = "technic_armor_inv_"..partkey.."_"..key..".png",
|
||||||
["armor_"..p.place] = math.floor(p.level * m.armor),
|
groups = {["armor_"..part.place]=math.floor(part.level*armor.armor), armor_heal=armor.heal, armor_use=armor.use, armor_radiation=math.floor(part.radlevel*armor.radiation)},
|
||||||
armor_heal = m.heal,
|
wear = 0,
|
||||||
armor_use = m.use,
|
|
||||||
},
|
|
||||||
armor_groups = { radiation = math.floor(p.radlevel * m.radiation)},
|
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = name,
|
output = partname,
|
||||||
recipe = make_recipe(p.craft, m.craft_item),
|
recipe = make_recipe(part.craft, {armor.material}),
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
4
mod.conf
|
@ -1,4 +0,0 @@
|
||||||
name = technic_armor
|
|
||||||
description = Adds armor made from lead, brass, cast iron, carbon steel, stainless steel, tin and silver
|
|
||||||
depends = 3d_armor
|
|
||||||
optional_depends = default, moreores, technic_worldgen
|
|
BIN
screenshot.png
Before Width: | Height: | Size: 82 KiB |
41
textures/preview_index.txt
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
technic_armor/textures/technic_armor_helmet_brass.png:head
|
||||||
|
technic_armor/textures/technic_armor_chestplate_brass.png:torso
|
||||||
|
technic_armor/textures/technic_armor_leggings_brass.png:legs
|
||||||
|
technic_armor/textures/technic_armor_boots_brass.png:feet
|
||||||
|
technic_armor/textures/technic_armor_shield_brass.png:shield
|
||||||
|
|
||||||
|
technic_armor/textures/technic_armor_helmet_cast.png:head
|
||||||
|
technic_armor/textures/technic_armor_chestplate_cast.png:torso
|
||||||
|
technic_armor/textures/technic_armor_leggings_cast.png:legs
|
||||||
|
technic_armor/textures/technic_armor_boots_cast.png:feet
|
||||||
|
technic_armor/textures/technic_armor_shield_cast.png:shield
|
||||||
|
|
||||||
|
technic_armor/textures/technic_armor_helmet_stainless.png:head
|
||||||
|
technic_armor/textures/technic_armor_chestplate_stainless.png:torso
|
||||||
|
technic_armor/textures/technic_armor_leggings_stainless.png:legs
|
||||||
|
technic_armor/textures/technic_armor_boots_stainless.png:feet
|
||||||
|
technic_armor/textures/technic_armor_shield_stainless.png:shield
|
||||||
|
|
||||||
|
technic_armor/textures/technic_armor_helmet_tin.png:head
|
||||||
|
technic_armor/textures/technic_armor_chestplate_tin.png:torso
|
||||||
|
technic_armor/textures/technic_armor_leggings_tin.png:legs
|
||||||
|
technic_armor/textures/technic_armor_boots_tin.png:feet
|
||||||
|
technic_armor/textures/technic_armor_shield_tin.png:shield
|
||||||
|
|
||||||
|
technic_armor/textures/technic_armor_helmet_lead.png:head
|
||||||
|
technic_armor/textures/technic_armor_chestplate_lead.png:torso
|
||||||
|
technic_armor/textures/technic_armor_leggings_lead.png:legs
|
||||||
|
technic_armor/textures/technic_armor_boots_lead.png:feet
|
||||||
|
technic_armor/textures/technic_armor_shield_lead.png:shield
|
||||||
|
|
||||||
|
technic_armor/textures/technic_armor_helmet_carbon.png:head
|
||||||
|
technic_armor/textures/technic_armor_chestplate_carbon.png:torso
|
||||||
|
technic_armor/textures/technic_armor_leggings_carbon.png:legs
|
||||||
|
technic_armor/textures/technic_armor_boots_carbon.png:feet
|
||||||
|
technic_armor/textures/technic_armor_shield_carbon.png:shield
|
||||||
|
|
||||||
|
technic_armor/textures/technic_armor_helmet_silver.png:head
|
||||||
|
technic_armor/textures/technic_armor_chestplate_silver.png:torso
|
||||||
|
technic_armor/textures/technic_armor_leggings_silver.png:legs
|
||||||
|
technic_armor/textures/technic_armor_boots_silver.png:feet
|
||||||
|
technic_armor/textures/technic_armor_shield_silver.png:shield
|
Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 528 B |
Before Width: | Height: | Size: 238 B After Width: | Height: | Size: 436 B |
Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 432 B |
Before Width: | Height: | Size: 153 B After Width: | Height: | Size: 362 B |
Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 528 B |
Before Width: | Height: | Size: 238 B After Width: | Height: | Size: 436 B |
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 506 B |
Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 405 B |
Before Width: | Height: | Size: 278 B After Width: | Height: | Size: 501 B |
Before Width: | Height: | Size: 181 B After Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 437 B After Width: | Height: | Size: 661 B |
Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 399 B |
Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 238 B After Width: | Height: | Size: 436 B |
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 723 B |
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 553 B |
Before Width: | Height: | Size: 464 B After Width: | Height: | Size: 698 B |
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 522 B |
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 723 B |
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 553 B |
Before Width: | Height: | Size: 545 B After Width: | Height: | Size: 918 B |
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 549 B |
Before Width: | Height: | Size: 479 B After Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 273 B After Width: | Height: | Size: 465 B |
Before Width: | Height: | Size: 539 B After Width: | Height: | Size: 867 B |
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 496 B |
Before Width: | Height: | Size: 477 B After Width: | Height: | Size: 710 B |
Before Width: | Height: | Size: 327 B After Width: | Height: | Size: 537 B |
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 693 B |
Before Width: | Height: | Size: 211 B After Width: | Height: | Size: 405 B |
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 617 B |
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 335 B |
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 693 B |
Before Width: | Height: | Size: 211 B After Width: | Height: | Size: 405 B |
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 701 B |
Before Width: | Height: | Size: 146 B After Width: | Height: | Size: 343 B |
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 647 B |
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 343 B |
Before Width: | Height: | Size: 339 B After Width: | Height: | Size: 680 B |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 350 B |
Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 665 B |
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 401 B |
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 385 B |
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 377 B |
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 150 B After Width: | Height: | Size: 374 B |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 375 B |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 375 B |
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 432 B |
Before Width: | Height: | Size: 150 B After Width: | Height: | Size: 374 B |
Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 395 B |
Before Width: | Height: | Size: 150 B After Width: | Height: | Size: 374 B |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 361 B |
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 363 B |
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 363 B |
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 395 B |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 361 B |
Before Width: | Height: | Size: 161 B After Width: | Height: | Size: 375 B |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 361 B |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 355 B |
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 359 B |
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 359 B |
Before Width: | Height: | Size: 170 B After Width: | Height: | Size: 398 B |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 355 B |
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 377 B |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 355 B |
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 693 B |
Before Width: | Height: | Size: 516 B After Width: | Height: | Size: 732 B |
Before Width: | Height: | Size: 487 B After Width: | Height: | Size: 706 B |
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 827 B |
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 743 B |
Before Width: | Height: | Size: 535 B After Width: | Height: | Size: 752 B |
Before Width: | Height: | Size: 466 B After Width: | Height: | Size: 684 B |
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 539 B |
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 451 B |
Before Width: | Height: | Size: 225 B After Width: | Height: | Size: 449 B |
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 365 B |
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 539 B |
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 451 B |
Before Width: | Height: | Size: 269 B After Width: | Height: | Size: 528 B |
Before Width: | Height: | Size: 216 B After Width: | Height: | Size: 440 B |
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 391 B |
Before Width: | Height: | Size: 252 B After Width: | Height: | Size: 534 B |