update from 3d_armor repo

master
Juraj Vajda 2018-10-23 21:45:33 -04:00
commit 334a97dfd2
153 changed files with 1218 additions and 673 deletions

View File

@ -68,6 +68,9 @@ armor_fire_protect = false
-- Enable punch damage effects.
armor_punch_damage = true
-- Enable migration of old armor inventories
armor_migrate_old_inventory = true
API
---

View File

@ -4,6 +4,7 @@ local S = armor_i18n.gettext
local skin_previews = {}
local use_player_monoids = minetest.global_exists("player_monoids")
local use_armor_monoid = minetest.global_exists("armor_monoid")
local use_pova_mod = minetest.get_modpath("pova")
local armor_def = setmetatable({}, {
__index = function()
return setmetatable({
@ -72,7 +73,8 @@ armor = {
on_damage = {},
on_destroy = {},
},
version = "0.4.10",
migrate_old_inventory = true,
version = "0.4.12",
}
armor.config = {
@ -174,7 +176,7 @@ armor.update_player_visuals = function(self, player)
end
armor.set_player_armor = function(self, player)
local name, player_inv = self:get_valid_player(player, "[set_player_armor]")
local name, armor_inv = self:get_valid_player(player, "[set_player_armor]")
if not name then
return
end
@ -199,7 +201,7 @@ armor.set_player_armor = function(self, player)
change[group] = 1
levels[group] = 0
end
local list = player_inv:get_list("armor")
local list = armor_inv:get_list("armor")
if type(list) ~= "table" then
return
end
@ -218,6 +220,7 @@ armor.set_player_armor = function(self, player)
local level = def.groups["armor_"..element]
levels["fleshy"] = levels["fleshy"] + level
end
break
end
-- DEPRECATED, use armor_groups instead
if def.groups["armor_radiation"] and levels["radiation"] then
@ -267,7 +270,8 @@ armor.set_player_armor = function(self, player)
change[group] = groups[group] / base
end
for _, attr in pairs(self.attributes) do
self.def[name][attr] = attributes[attr]
local mult = attr == "heal" and self.config.heal_multiplier or 1
self.def[name][attr] = attributes[attr] * mult
end
for _, phys in pairs(self.physics) do
self.def[name][phys] = physics[phys]
@ -284,6 +288,14 @@ armor.set_player_armor = function(self, player)
"3d_armor:physics")
player_monoids.gravity:add_change(player, physics.gravity,
"3d_armor:physics")
elseif use_pova_mod then
-- only add the changes, not the default 1.0 for each physics setting
pova.add_override(name, "3d_armor", {
speed = physics.speed - 1,
jump = physics.jump - 1,
gravity = physics.gravity - 1,
})
pova.do_override(player)
else
player:set_physics_override(physics)
end
@ -296,7 +308,7 @@ armor.set_player_armor = function(self, player)
end
armor.punch = function(self, player, hitter, time_from_last_punch, tool_capabilities)
local name, player_inv = self:get_valid_player(player, "[punch]")
local name, armor_inv = self:get_valid_player(player, "[punch]")
if not name then
return
end
@ -304,7 +316,7 @@ armor.punch = function(self, player, hitter, time_from_last_punch, tool_capabili
local count = 0
local recip = true
local default_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1}
local list = player_inv:get_list("armor")
local list = armor_inv:get_list("armor")
for i, stack in pairs(list) do
if stack:get_count() == 1 then
local name = stack:get_name()
@ -419,34 +431,68 @@ armor.get_armor_formspec = function(self, name, listring)
for _, attr in pairs(self.attributes) do
formspec = formspec:gsub("armor_attr_"..attr, armor.def[name][attr])
end
for _, group in pairs(self.attributes) do
formspec = formspec:gsub("armor_group_"..group, armor.def[name][group])
for group, _ in pairs(self.registered_groups) do
formspec = formspec:gsub("armor_group_"..group,
armor.def[name].groups[group])
end
return formspec
end
armor.get_element = function(self, item_name)
for _, element in pairs(armor.elements) do
if minetest.get_item_group(item_name, "armor_"..element) > 0 then
return element
end
end
end
armor.serialize_inventory_list = function(self, list)
local list_table = {}
for _, stack in ipairs(list) do
table.insert(list_table, stack:to_string())
end
return minetest.serialize(list_table)
end
armor.deserialize_inventory_list = function(self, list_string)
local list_table = minetest.deserialize(list_string)
local list = {}
for _, stack in ipairs(list_table or {}) do
table.insert(list, ItemStack(stack))
end
return list
end
armor.load_armor_inventory = function(self, player)
local _, inv = self:get_valid_player(player, "[load_armor_inventory]")
if inv then
local armor_list_string = player:get_attribute("3d_armor_inventory")
if armor_list_string then
inv:set_list("armor",
self:deserialize_inventory_list(armor_list_string))
return true
end
end
end
armor.save_armor_inventory = function(self, player)
local _, inv = self:get_valid_player(player, "[save_armor_inventory]")
if inv then
player:set_attribute("3d_armor_inventory",
self:serialize_inventory_list(inv:get_list("armor")))
end
end
armor.update_inventory = function(self, player)
-- DEPRECATED: Legacy inventory support
end
armor.set_inventory_stack = function(self, player, i, stack)
local msg = "[set_inventory_stack]"
local name = player:get_player_name()
if not name then
minetest.log("warning", S("3d_armor: Player name is nil @1", msg))
return
local _, inv = self:get_valid_player(player, "[set_inventory_stack]")
if inv then
inv:set_stack("armor", i, stack)
self:save_armor_inventory(player)
end
local player_inv = player:get_inventory()
local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"})
if not player_inv then
minetest.log("warning", S("3d_armor: Player inventory is nil @1", msg))
return
elseif not armor_inv then
minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg))
return
end
player_inv:set_stack("armor", i, stack)
armor_inv:set_stack("armor", i, stack)
end
armor.get_valid_player = function(self, player, msg)
@ -460,9 +506,9 @@ armor.get_valid_player = function(self, player, msg)
minetest.log("warning", S("3d_armor: Player name is nil @1", msg))
return
end
local inv = player:get_inventory()
local inv = minetest.get_inventory({type="detached", name=name.."_armor"})
if not inv then
minetest.log("warning", S("3d_armor: Player inventory is nil @1", msg))
minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg))
return
end
return name, inv

View File

@ -1,6 +1,7 @@
default
player_monoids?
armor_monoid?
pova?
fire?
ethereal?
bakedclay?

View File

@ -1,13 +1,3 @@
-- support for i18n
armor_i18n = { }
local MP = minetest.get_modpath(minetest.get_current_modname())
armor_i18n.gettext, armor_i18n.ngettext = dofile(MP.."/intllib.lua")
-- escaping formspec
armor_i18n.fgettext = function(...) return minetest.formspec_escape(armor_i18n.gettext(...)) end
-- local functions
local S = armor_i18n.gettext
local F = armor_i18n.fgettext
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
local worldpath = minetest.get_worldpath()
@ -15,6 +5,14 @@ local last_punch_time = {}
local pending_players = {}
local timer = 0
-- support for i18n
armor_i18n = { }
armor_i18n.gettext, armor_i18n.ngettext = dofile(modpath.."/intllib.lua")
-- local functions
local S = armor_i18n.gettext
local F = minetest.formspec_escape
dofile(modpath.."/api.lua")
-- Legacy Config Support
@ -68,7 +66,7 @@ end
if minetest.get_modpath("technic") then
armor.formspec = armor.formspec..
"label[5,2.5;"..F("Radiation")..": armor_group_radiation]"
"label[5,2.5;"..F(S("Radiation"))..": armor_group_radiation]"
armor:register_armor_group("radiation")
end
local skin_mods = {"skins", "u_skins", "simple_skins", "wardrobe"}
@ -96,10 +94,10 @@ dofile(modpath.."/armor.lua")
-- Armor Initialization
armor.formspec = armor.formspec..
"label[5,1;"..F("Level")..": armor_level]"..
"label[5,1.5;"..F("Heal")..": armor_attr_heal]"
"label[5,1;"..F(S("Level"))..": armor_level]"..
"label[5,1.5;"..F(S("Heal"))..": armor_attr_heal]"
if armor.config.fire_protect then
armor.formspec = armor.formspec.."label[5,2;"..F("Fire")..": armor_fire]"
armor.formspec = armor.formspec.."label[5,2;"..F(S("Fire"))..": armor_attr_fire]"
end
armor:register_on_destroy(function(player, index, stack)
local name = player:get_player_name()
@ -109,46 +107,93 @@ armor:register_on_destroy(function(player, index, stack)
end
end)
local function validate_armor_inventory(player)
-- Workaround for detached inventory swap exploit
local _, inv = armor:get_valid_player(player, "[validate_armor_inventory]")
if not inv then
return
end
local armor_prev = {}
local armor_list_string = player:get_attribute("3d_armor_inventory")
if armor_list_string then
local armor_list = armor:deserialize_inventory_list(armor_list_string)
for i, stack in ipairs(armor_list) do
if stack:get_count() > 0 then
armor_prev[stack:get_name()] = i
end
end
end
local elements = {}
local player_inv = player:get_inventory()
for i = 1, 6 do
local stack = inv:get_stack("armor", i)
if stack:get_count() > 0 then
local item = stack:get_name()
local element = armor:get_element(item)
if element and not elements[element] then
if armor_prev[item] then
armor_prev[item] = nil
else
-- Item was not in previous inventory
armor:run_callbacks("on_equip", player, i, stack)
end
elements[element] = true;
else
inv:remove_item("armor", stack)
-- The following code returns invalid items to the player's main
-- inventory but could open up the possibity for a hacked client
-- to receive items back they never really had. I am not certain
-- so remove the is_singleplayer check at your own risk :]
if minetest.is_singleplayer() and player_inv and
player_inv:room_for_item("main", stack) then
player_inv:add_item("main", stack)
end
end
end
end
for item, i in pairs(armor_prev) do
local stack = ItemStack(item)
-- Previous item is not in current inventory
armor:run_callbacks("on_unequip", player, i, stack)
end
end
local function init_player_armor(player)
local name = player:get_player_name()
local player_inv = player:get_inventory()
local pos = player:getpos()
if not name or not player_inv or not pos then
if not name or not pos then
return false
end
local armor_inv = minetest.create_detached_inventory(name.."_armor", {
on_put = function(inv, listname, index, stack, player)
player:get_inventory():set_stack(listname, index, stack)
armor:run_callbacks("on_equip", player, index, stack)
validate_armor_inventory(player)
armor:save_armor_inventory(player)
armor:set_player_armor(player)
end,
on_take = function(inv, listname, index, stack, player)
player:get_inventory():set_stack(listname, index, nil)
armor:run_callbacks("on_unequip", player, index, stack)
validate_armor_inventory(player)
armor:save_armor_inventory(player)
armor:set_player_armor(player)
end,
on_move = function(inv, from_list, from_index, to_list, to_index, count, player)
local plaver_inv = player:get_inventory()
local stack = inv:get_stack(to_list, to_index)
player_inv:set_stack(to_list, to_index, stack)
player_inv:set_stack(from_list, from_index, nil)
validate_armor_inventory(player)
armor:save_armor_inventory(player)
armor:set_player_armor(player)
end,
allow_put = function(inv, listname, index, stack, player)
local def = stack:get_definition() or {}
local allowed = 0
for _, element in pairs(armor.elements) do
if def.groups["armor_"..element] then
allowed = 1
for i = 1, 6 do
local item = inv:get_stack("armor", i):get_name()
if minetest.get_item_group(item, "armor_"..element) > 0 then
return 0
end
end
allow_put = function(inv, listname, index, put_stack, player)
local element = armor:get_element(put_stack:get_name())
if not element then
return 0
end
for i = 1, 6 do
local stack = inv:get_stack("armor", i)
local def = stack:get_definition() or {}
if def.groups and def.groups["armor_"..element]
and i ~= index then
return 0
end
end
return allowed
return 1
end,
allow_take = function(inv, listname, index, stack, player)
return stack:get_count()
@ -158,11 +203,21 @@ local function init_player_armor(player)
end,
}, name)
armor_inv:set_size("armor", 6)
player_inv:set_size("armor", 6)
if not armor:load_armor_inventory(player) and armor.migrate_old_inventory then
local player_inv = player:get_inventory()
player_inv:set_size("armor", 6)
for i=1, 6 do
local stack = player_inv:get_stack("armor", i)
armor_inv:set_stack("armor", i, stack)
end
armor:save_armor_inventory(player)
player_inv:set_size("armor", 0)
end
for i=1, 6 do
local stack = player_inv:get_stack("armor", i)
armor_inv:set_stack("armor", i, stack)
armor:run_callbacks("on_equip", player, i, stack)
local stack = armor_inv:get_stack("armor", i)
if stack:get_count() > 0 then
armor:run_callbacks("on_equip", player, i, stack)
end
end
armor.def[name] = {
init_time = minetest.get_gametime(),
@ -256,19 +311,20 @@ end)
if armor.config.drop == true or armor.config.destroy == true then
minetest.register_on_dieplayer(function(player)
local name, player_inv = armor:get_valid_player(player, "[on_dieplayer]")
local name, armor_inv = armor:get_valid_player(player, "[on_dieplayer]")
if not name then
return
end
local drop = {}
for i=1, player_inv:get_size("armor") do
local stack = player_inv:get_stack("armor", i)
for i=1, armor_inv:get_size("armor") do
local stack = armor_inv:get_stack("armor", i)
if stack:get_count() > 0 then
table.insert(drop, stack)
armor:set_inventory_stack(player, i, nil)
armor:run_callbacks("on_unequip", player, i, stack)
armor_inv:set_stack("armor", i, nil)
end
end
armor:save_armor_inventory(player)
armor:set_player_armor(player)
local pos = player:getpos()
if pos and armor.config.destroy == false then
@ -319,7 +375,6 @@ minetest.register_on_player_hpchange(function(player, hp_change)
local name = player:get_player_name()
if name then
local heal = armor.def[name].heal
heal = heal * armor.config.heal_multiplier
if heal >= math.random(100) then
hp_change = 0
end

384
3d_armor/locale/es.po Normal file
View File

@ -0,0 +1,384 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-06 18:20+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../3d_armor/api.lua
msgid "3d_armor: Player name is nil @1"
msgstr "3d_armor: El nombre del jugador es nulo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player inventory is nil @1"
msgstr "3d_armor: El inventario del jugador es nulo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor: La armadura desconectada es nula @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: La referencia del jugador es nula @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Casco de admin"
#: ../3d_armor/armor.lua
msgid "Admin Chestplate"
msgstr "Peto de admin"
#: ../3d_armor/armor.lua
msgid "Admin Leggings"
msgstr "Polainas de admin"
#: ../3d_armor/armor.lua
msgid "Admin Boots"
msgstr "Botas de admin"
#: ../3d_armor/armor.lua
msgid "Wood Helmet"
msgstr "Casco de madera"
#: ../3d_armor/armor.lua
msgid "Wood Chestplate"
msgstr "Peto de madera"
#: ../3d_armor/armor.lua
msgid "Wood Leggings"
msgstr "Polainas de madera"
#: ../3d_armor/armor.lua
msgid "Wood Boots"
msgstr "Botas de madera"
#: ../3d_armor/armor.lua
msgid "Cactus Helmet"
msgstr "Casco de cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Chestplate"
msgstr "Peto de cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Leggings"
msgstr "Polainas de cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Boots"
msgstr "Botas de cactus"
#: ../3d_armor/armor.lua
msgid "Steel Helmet"
msgstr "Casco de acero"
#: ../3d_armor/armor.lua
msgid "Steel Chestplate"
msgstr "Peto de acero"
#: ../3d_armor/armor.lua
msgid "Steel Leggings"
msgstr "Polainas de acero"
#: ../3d_armor/armor.lua
msgid "Steel Boots"
msgstr "Botas de acero"
#: ../3d_armor/armor.lua
msgid "Bronze Helmet"
msgstr "Casco de bronce"
#: ../3d_armor/armor.lua
msgid "Bronze Chestplate"
msgstr "Peto de bronce"
#: ../3d_armor/armor.lua
msgid "Bronze Leggings"
msgstr "Polainas de bronce"
#: ../3d_armor/armor.lua
msgid "Bronze Boots"
msgstr "Botas de bronce"
#: ../3d_armor/armor.lua
msgid "Diamond Helmet"
msgstr "Casco de diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Chestplate"
msgstr "Peto de diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Leggings"
msgstr "Polainas de diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Boots"
msgstr "Botas de diamante"
#: ../3d_armor/armor.lua
msgid "Gold Helmet"
msgstr "Casco de oro"
#: ../3d_armor/armor.lua
msgid "Gold Chestplate"
msgstr "Peto de oro"
#: ../3d_armor/armor.lua
msgid "Gold Leggings"
msgstr "Polainas de oro"
#: ../3d_armor/armor.lua
msgid "Gold Boots"
msgstr "Botas de oro"
#: ../3d_armor/armor.lua
msgid "Mithril Helmet"
msgstr "Casco de mitrilo"
#: ../3d_armor/armor.lua
msgid "Mithril Chestplate"
msgstr "Peto de mitrilo"
#: ../3d_armor/armor.lua
msgid "Mithril Leggings"
msgstr "Polainas de mitrilo"
#: ../3d_armor/armor.lua
msgid "Mithril Boots"
msgstr "Botas de mitrilo"
#: ../3d_armor/armor.lua
msgid "Crystal Helmet"
msgstr "Casco de cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Chestplate"
msgstr "Peto de cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Leggings"
msgstr "Polainas de cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Boots"
msgstr "Botas de cristal"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Radiation"
msgstr "Radiación"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Level"
msgstr "Nivel"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Heal"
msgstr "Salud"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Fire"
msgstr "Fuego"
#: ../3d_armor/init.lua
msgid "Your @1 got destroyed!"
msgstr "¡Tu @1 fue destruído!"
#: ../3d_armor/init.lua
msgid "3d_armor: Failed to initialize player"
msgstr "3d_armor: Fallo en la inicialización del jugador"
#: ../3d_armor/init.lua
msgid "[3d_armor] Fire Nodes disabled"
msgstr "[3d_armor] Nodos de fuego desabilitados"
#: ../3d_armor_ip/init.lua
msgid "3d_armor_ip: Mod loaded but unused."
msgstr "3d_armor_ip: Mod cargado, pero sin ser usado."
#: ../3d_armor_ip/init.lua
msgid "Back"
msgstr "Volver"
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
msgid "Armor"
msgstr "Armadura"
#: ../3d_armor_sfinv/init.lua
msgid "3d_armor_sfinv: Mod loaded but unused."
msgstr "3d_armor_sfinv: Mod cargado, pero sin ser usado."
#: ../3d_armor_stand/init.lua
msgid "Armor stand top"
msgstr "Parte arriba maniquí armadura"
#: ../3d_armor_stand/init.lua
msgid "Armor stand"
msgstr "Maniquí para armadura"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand"
msgstr "Maniquí para armadura"
#: ../3d_armor_stand/init.lua
msgid "Locked Armor stand"
msgstr "Maniquí para armadura (bloqueado)"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand (owned by @1)"
msgstr "Maniquí para armadura (propiedad de @1)"
#: ../3d_armor_ui/init.lua
msgid "3d_armor_ui: Mod loaded but unused."
msgstr "3d_armor_ui: Mod cargado, pero sin ser usado."
#: ../3d_armor_ui/init.lua
msgid "3d Armor"
msgstr "Armadura 3d"
#: ../3d_armor_ui/init.lua
msgid "Armor not initialized!"
msgstr "¡Armadura no inicializada!"
#: ../hazmat_suit/init.lua
msgid "hazmat_suit: Mod loaded but unused."
msgstr "hazmat_suit: Mod cargado, pero sin ser usado."
#: ../hazmat_suit/init.lua
msgid "Hazmat Helmet"
msgstr "Casco de hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Chestplate"
msgstr "Peto de hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Sleeve"
msgstr "Manga de hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Leggins"
msgstr "Polainas de hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Boots"
msgstr "Botas de hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Suit"
msgstr "Traje de hazmat"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Escudo de admin"
#: ../shields/init.lua
msgid "Wooden Shield"
msgstr "Escudo de madera"
#: ../shields/init.lua
msgid "Enhanced Wood Shield"
msgstr "Escudo de madera mejorado"
#: ../shields/init.lua
msgid "Cactus Shield"
msgstr "Escudo de cactus"
#: ../shields/init.lua
msgid "Enhanced Cactus Shield"
msgstr "Escudo de cactus mejorado"
#: ../shields/init.lua
msgid "Steel Shield"
msgstr "Escudo de acero"
#: ../shields/init.lua
msgid "Bronze Shield"
msgstr "Escudo de bronce"
#: ../shields/init.lua
msgid "Diamond Shield"
msgstr "Escudo de diamante"
#: ../shields/init.lua
msgid "Gold Shield"
msgstr "Escudo de oro"
#: ../shields/init.lua
msgid "Mithril Shield"
msgstr "Escudo de mitrilo"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "Escudo de cristal"
#: ../technic_armor/init.lua
msgid "technic_armor: Mod loaded but unused."
msgstr "technic_armor: Mod cargado, pero no usado."
#: ../technic_armor/init.lua
msgid "Lead"
msgstr "Plomo"
#: ../technic_armor/init.lua
msgid "Brass"
msgstr "Latón"
#: ../technic_armor/init.lua
msgid "Cast Iron"
msgstr "Hierro fundido"
#: ../technic_armor/init.lua
msgid "Carbon Steel"
msgstr "Acero carbono"
#: ../technic_armor/init.lua
msgid "Stainless Steel"
msgstr "Acero inoxidable"
#: ../technic_armor/init.lua
msgid "Tin"
msgstr "Estaño"
#: ../technic_armor/init.lua
msgid "Silver"
msgstr "Plata"
#: ../technic_armor/init.lua
msgid "Helmet"
msgstr "Casco"
#: ../technic_armor/init.lua
msgid "Chestplate"
msgstr "Peto"
#: ../technic_armor/init.lua
msgid "Leggins"
msgstr "Polainas"
#: ../technic_armor/init.lua
msgid "Boots"
msgstr "Botas"
#: ../technic_armor/init.lua
msgid "Shield"
msgstr "Escudo"
#. 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)
#: ../technic_armor/init.lua
msgid "@1 @2"
msgstr "@2 de @1"

View File

@ -1,14 +1,14 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# French translation for 3D ARMOR MOD
# Copyright (C) 2018 by Stuart Jones
# This file is distributed under the same license as the 3D ARMOR MOD package.
# fat115 <fat115@framasoft.org>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-06 18:20+0200\n"
"PO-Revision-Date: 2017-08-06 18:20+0200\n"
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
"PO-Revision-Date: 2018-07-23 21:30+0200\n"
"Last-Translator: fat115 <fat115@framasoft.org>\n"
"Language-Team: \n"
"Language: fr\n"
@ -18,22 +18,18 @@ msgstr ""
"X-Generator: Poedit 1.8.12\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor : Référence au joueur non trouvée @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player name is nil @1"
msgstr "3d_armor : Nom du joueur non trouvé @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player inventory is nil @1"
msgstr "3d_armor : Inventaire du joueur non trouvé @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor : Inventaire détaché pour l'armure non trouvé @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor : Référence au joueur non trouvée @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Casque d'admin"
@ -254,34 +250,6 @@ msgstr "Armure 3d"
msgid "Armor not initialized!"
msgstr "Armure non initialisée !"
#: ../hazmat_suit/init.lua
msgid "hazmat_suit: Mod loaded but unused."
msgstr "hazmat_suit : Mod chargé mais non utilisé."
#: ../hazmat_suit/init.lua
msgid "Hazmat Helmet"
msgstr "Casque 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Chestplate"
msgstr "Cuirasse 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Sleeve"
msgstr "Manches 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Leggins"
msgstr "Jambières 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Boots"
msgstr "Bottes 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Suit"
msgstr "Combinaison 'Hazmat'"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Bouclier d'admin"
@ -325,60 +293,3 @@ msgstr "Bouclier en mithril"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "Bouclier en cristal"
#: ../technic_armor/init.lua
msgid "technic_armor: Mod loaded but unused."
msgstr "technic_armor : Mod chargé mais non utilisé."
#: ../technic_armor/init.lua
msgid "Lead"
msgstr "plomb"
#: ../technic_armor/init.lua
msgid "Brass"
msgstr "laiton"
#: ../technic_armor/init.lua
msgid "Cast Iron"
msgstr "fonte"
#: ../technic_armor/init.lua
msgid "Carbon Steel"
msgstr "acier au carbone"
#: ../technic_armor/init.lua
msgid "Stainless Steel"
msgstr "acier inoxydable"
#: ../technic_armor/init.lua
msgid "Tin"
msgstr "étain"
#: ../technic_armor/init.lua
msgid "Silver"
msgstr "argent"
#: ../technic_armor/init.lua
msgid "Helmet"
msgstr "Casque"
#: ../technic_armor/init.lua
msgid "Chestplate"
msgstr "Cuirasse"
#: ../technic_armor/init.lua
msgid "Leggings"
msgstr "Jambières"
#: ../technic_armor/init.lua
msgid "Boots"
msgstr "Bottes"
#: ../technic_armor/init.lua
msgid "Shield"
msgstr "Bouclier"
#. 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)
#: ../technic_armor/init.lua
msgid "@1 @2"
msgstr "@2 en @1"

View File

@ -1,14 +1,14 @@
# ITALIAN LOCALE FILE FOR THE 3D ARMOR MODULE
# Copyright (C) 2012-2017 Stuart Jones
# This file is distributed under the same license as the 3D ARMOR package.
# Italian translation for 3D ARMOR MOD
# Copyright (C) 2018 by Stuart Jones
# This file is distributed under the same license as the 3D ARMOR MOD package.
# Hamlet <h4mlet@riseup.net>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Italian localization file for the 3D Armor module\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-06 18:20+0200\n"
"PO-Revision-Date: 2017-08-18 00:36+0100\n"
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
"PO-Revision-Date: 2018-07-23 21:30+0200\n"
"Last-Translator: H4mlet <h4mlet@riseup.net>\n"
"Language-Team: ITALIANO\n"
"Language: it\n"
@ -18,22 +18,18 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.6.10\n"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: Il riferimento alla/al giocatrice/tore è nullo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player name is nil @1"
msgstr "3d_armor: Il nome della/del gicatrice/tore è nullo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player inventory is nil @1"
msgstr "3d_armor: L'inventario della/del giocatrice/tore è nullo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor: L'inventario staccato dell'armatura è nullo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: Il riferimento alla/al giocatrice/tore è nullo @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Elmo dell'amministratrice/tore"
@ -254,34 +250,6 @@ msgstr "Armatura 3D"
msgid "Armor not initialized!"
msgstr "Armatura non inizializzata!"
#: ../hazmat_suit/init.lua
msgid "hazmat_suit: Mod loaded but unused."
msgstr "hazmat_suit: Mod caricato ma inutilizzato."
#: ../hazmat_suit/init.lua
msgid "Hazmat Helmet"
msgstr "Elmo hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Chestplate"
msgstr "Corazza hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Sleeve"
msgstr "Manica hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Leggins"
msgstr "Gambali hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Boots"
msgstr "Stivali hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Suit"
msgstr "Completo hazmat"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Scudo dell'amministratrice/tore"
@ -325,60 +293,3 @@ msgstr "Scudo di mithril"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "Scudo di cristallo"
#: ../technic_armor/init.lua
msgid "technic_armor: Mod loaded but unused."
msgstr "technic_armor: Mod caricato ma inutilizzato."
#: ../technic_armor/init.lua
msgid "Lead"
msgstr "Piombo"
#: ../technic_armor/init.lua
msgid "Brass"
msgstr "Ottone"
#: ../technic_armor/init.lua
msgid "Cast Iron"
msgstr "Ghisa"
#: ../technic_armor/init.lua
msgid "Carbon Steel"
msgstr "Acciaio al carbonio"
#: ../technic_armor/init.lua
msgid "Stainless Steel"
msgstr "Acciaio inossidabile"
#: ../technic_armor/init.lua
msgid "Tin"
msgstr "Stagno"
#: ../technic_armor/init.lua
msgid "Silver"
msgstr "Argento"
#: ../technic_armor/init.lua
msgid "Helmet"
msgstr "Elmo"
#: ../technic_armor/init.lua
msgid "Chestplate"
msgstr "Corazza"
#: ../technic_armor/init.lua
msgid "Leggings"
msgstr "Gambali"
#: ../technic_armor/init.lua
msgid "Boots"
msgstr "Stivali"
#: ../technic_armor/init.lua
msgid "Shield"
msgstr "Scudo"
#. 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)
#: ../technic_armor/init.lua
msgid "@1 @2"
msgstr "@2 di @1"

296
3d_armor/locale/ms.po Normal file
View File

@ -0,0 +1,296 @@
# Malay translation for 3D ARMOR MOD
# Copyright (C) 2018 by Stuart Jones
# This file is distributed under the same license as the 3D ARMOR MOD package.
# MuhdNurHidayat (MNH48) <mnh48mail@gmail.com>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-23 21:21+0200\n"
"PO-Revision-Date: 2018-07-23 21:30+0200\n"
"Last-Translator: MuhdNurHidayat (MNH48) <mnh48mail@gmail.com>\n"
"Language-Team: \n"
"Language: ms\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.6\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: Rujukan pemain tiada nilai @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player name is nil @1"
msgstr "3d_armor: Nama pemain tiada nilai @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor: Inventori perisai terpisah tiada nilai @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Helmet Pentadbir"
#: ../3d_armor/armor.lua
msgid "Admin Chestplate"
msgstr "Perisai Dada Pentadbir"
#: ../3d_armor/armor.lua
msgid "Admin Leggings"
msgstr "Perisai Kaki Pentadbir"
#: ../3d_armor/armor.lua
msgid "Admin Boots"
msgstr "But Pentadbir"
#: ../3d_armor/armor.lua
msgid "Wood Helmet"
msgstr "Helmet Kayu"
#: ../3d_armor/armor.lua
msgid "Wood Chestplate"
msgstr "Perisai Dada Kayu"
#: ../3d_armor/armor.lua
msgid "Wood Leggings"
msgstr "Perisai Kaki Kayu"
#: ../3d_armor/armor.lua
msgid "Wood Boots"
msgstr "But Kayu"
#: ../3d_armor/armor.lua
msgid "Cactus Helmet"
msgstr "Helmet Kaktus"
#: ../3d_armor/armor.lua
msgid "Cactus Chestplate"
msgstr "Perisai Dada Kaktus"
#: ../3d_armor/armor.lua
msgid "Cactus Leggings"
msgstr "Perisai Kaki Kaktus"
#: ../3d_armor/armor.lua
msgid "Cactus Boots"
msgstr "But Kaktus"
#: ../3d_armor/armor.lua
msgid "Steel Helmet"
msgstr "Helmet Keluli"
#: ../3d_armor/armor.lua
msgid "Steel Chestplate"
msgstr "Perisai Dada Keluli"
#: ../3d_armor/armor.lua
msgid "Steel Leggings"
msgstr "Perisai Kaki Keluli"
#: ../3d_armor/armor.lua
msgid "Steel Boots"
msgstr "But Keluli"
#: ../3d_armor/armor.lua
msgid "Bronze Helmet"
msgstr "Helmet Gangsa"
#: ../3d_armor/armor.lua
msgid "Bronze Chestplate"
msgstr "Perisai Dada Gangsa"
#: ../3d_armor/armor.lua
msgid "Bronze Leggings"
msgstr "Perisai Kaki Gangsa"
#: ../3d_armor/armor.lua
msgid "Bronze Boots"
msgstr "But Gangsa"
# 'Diamond' should be translated as 'intan' because the more common word 'berlian' is only specifically used for the gemstone diamond.
#: ../3d_armor/armor.lua
msgid "Diamond Helmet"
msgstr "Helmet Intan"
#: ../3d_armor/armor.lua
msgid "Diamond Chestplate"
msgstr "Perisai Dada Intan"
#: ../3d_armor/armor.lua
msgid "Diamond Leggings"
msgstr "Perisai Kaki Intan"
#: ../3d_armor/armor.lua
msgid "Diamond Boots"
msgstr "But Intan"
#: ../3d_armor/armor.lua
msgid "Gold Helmet"
msgstr "Helmet Emas"
#: ../3d_armor/armor.lua
msgid "Gold Chestplate"
msgstr "Perisai Dada Emas"
#: ../3d_armor/armor.lua
msgid "Gold Leggings"
msgstr "Perisai Kaki Emas"
#: ../3d_armor/armor.lua
msgid "Gold Boots"
msgstr "But Emas"
#: ../3d_armor/armor.lua
msgid "Mithril Helmet"
msgstr "Helmet Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Chestplate"
msgstr "Perisai Dada Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Leggings"
msgstr "Perisai Kaki Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Boots"
msgstr "But Mithril"
#: ../3d_armor/armor.lua
msgid "Crystal Helmet"
msgstr "Helmet Kristal"
#: ../3d_armor/armor.lua
msgid "Crystal Chestplate"
msgstr "Perisai Dada Kristal"
#: ../3d_armor/armor.lua
msgid "Crystal Leggings"
msgstr "Perisai Kaki Kristal"
#: ../3d_armor/armor.lua
msgid "Crystal Boots"
msgstr "But Kristal"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Radiation"
msgstr "Radiasi"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Level"
msgstr "Tahap"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Heal"
msgstr "Pulih"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Fire"
msgstr "Api"
#: ../3d_armor/init.lua
msgid "Your @1 got destroyed!"
msgstr "@1 anda telah musnah!"
#: ../3d_armor/init.lua
msgid "3d_armor: Failed to initialize player"
msgstr "3d_armor: Gagal mengasalkan pemain"
#: ../3d_armor/init.lua
msgid "[3d_armor] Fire Nodes disabled"
msgstr "[3d_armor] Nod-nod Api dilumpuhkan"
#: ../3d_armor_ip/init.lua
msgid "3d_armor_ip: Mod loaded but unused."
msgstr "3d_armor_ip: Mods dimuatkan tetapi tidak digunakan."
#: ../3d_armor_ip/init.lua
msgid "Back"
msgstr "Kembali"
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
msgid "Armor"
msgstr "Perisai"
#: ../3d_armor_sfinv/init.lua
msgid "3d_armor_sfinv: Mod loaded but unused."
msgstr "3d_armor_sfinv: Mods dimuatkan tetapi tidak digunakan."
#: ../3d_armor_stand/init.lua
msgid "Armor stand top"
msgstr "Bhg atas dirian perisai"
#: ../3d_armor_stand/init.lua
msgid "Armor stand"
msgstr "Dirian perisai"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand"
msgstr "Dirian Perisai"
#: ../3d_armor_stand/init.lua
msgid "Locked Armor stand"
msgstr "Dirian perisai Berkunci"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand (owned by @1)"
msgstr "Dirian Perisai (milik @1)"
#: ../3d_armor_ui/init.lua
msgid "3d_armor_ui: Mod loaded but unused."
msgstr "3d_armor_ui: Mods dimuatkan tetapi tidak digunakan."
#: ../3d_armor_ui/init.lua
msgid "3d Armor"
msgstr "Perisai 3d"
#: ../3d_armor_ui/init.lua
msgid "Armor not initialized!"
msgstr "Perisai tidak diasalkan!"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Perisai Pegang Pentadbir"
#: ../shields/init.lua
msgid "Wooden Shield"
msgstr "Perisai Pegang Kayu"
#: ../shields/init.lua
msgid "Enhanced Wood Shield"
msgstr "Perisai Pegang Kayu Kukuh"
#: ../shields/init.lua
msgid "Cactus Shield"
msgstr "Perisai Pegang Kaktus"
#: ../shields/init.lua
msgid "Enhanced Cactus Shield"
msgstr "Perisai Pegang Kaktus Kukuh"
#: ../shields/init.lua
msgid "Steel Shield"
msgstr "Perisai Pegang Keluli"
#: ../shields/init.lua
msgid "Bronze Shield"
msgstr "Perisai Pegang Gangsa"
#: ../shields/init.lua
msgid "Diamond Shield"
msgstr "Perisai Pegang Intan"
#: ../shields/init.lua
msgid "Gold Shield"
msgstr "Perisai Pegang Emas"
#: ../shields/init.lua
msgid "Mithril Shield"
msgstr "Perisai Pegang Mithril"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "Perisai Pegang Kristal"

294
3d_armor/locale/ru.po Normal file
View File

@ -0,0 +1,294 @@
# Russian translation for 3D ARMOR MOD
# Copyright (C) 2018 by Stuart Jones
# This file is distributed under the same license as the 3D ARMOR MOD package.
# CodeXP <codexp@gmx.net>, 2018.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: 3d_armor\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-23 21:21+0200\n"
"PO-Revision-Date: 2018-07-23 21:30+0200\n"
"Last-Translator: CodeXP <codexp@gmx.net>\n"
"Language-Team: \n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: Ссылка игрока является nil @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player name is nil @1"
msgstr "3d_armor: Имя игрока является nil @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor: Отдельный инвентарь брони является nil @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "шлем админа"
#: ../3d_armor/armor.lua
msgid "Admin Chestplate"
msgstr "бронежилет админа"
#: ../3d_armor/armor.lua
msgid "Admin Leggings"
msgstr "гамаши админа"
#: ../3d_armor/armor.lua
msgid "Admin Boots"
msgstr "ботинки админа"
#: ../3d_armor/armor.lua
msgid "Wood Helmet"
msgstr "деревянный шлем"
#: ../3d_armor/armor.lua
msgid "Wood Chestplate"
msgstr "деревянный бронежилет"
#: ../3d_armor/armor.lua
msgid "Wood Leggings"
msgstr "деревянные гамаши"
#: ../3d_armor/armor.lua
msgid "Wood Boots"
msgstr "деревянные ботинки"
#: ../3d_armor/armor.lua
msgid "Cactus Helmet"
msgstr "кактусовый шлем"
#: ../3d_armor/armor.lua
msgid "Cactus Chestplate"
msgstr "кактусовый бронежилет"
#: ../3d_armor/armor.lua
msgid "Cactus Leggings"
msgstr "кактусовые гамаши"
#: ../3d_armor/armor.lua
msgid "Cactus Boots"
msgstr "кактусовые ботинки"
#: ../3d_armor/armor.lua
msgid "Steel Helmet"
msgstr "стальной шлем"
#: ../3d_armor/armor.lua
msgid "Steel Chestplate"
msgstr "стальной бронежилет"
#: ../3d_armor/armor.lua
msgid "Steel Leggings"
msgstr "стальные гамаши"
#: ../3d_armor/armor.lua
msgid "Steel Boots"
msgstr "стальные ботинки"
#: ../3d_armor/armor.lua
msgid "Bronze Helmet"
msgstr "бронзовый шлем"
#: ../3d_armor/armor.lua
msgid "Bronze Chestplate"
msgstr "бронзовый бронежилет"
#: ../3d_armor/armor.lua
msgid "Bronze Leggings"
msgstr "бронзовые гамаши"
#: ../3d_armor/armor.lua
msgid "Bronze Boots"
msgstr "бронзовые ботинки"
#: ../3d_armor/armor.lua
msgid "Diamond Helmet"
msgstr "алмазный шлем"
#: ../3d_armor/armor.lua
msgid "Diamond Chestplate"
msgstr "алмазный бронежилет"
#: ../3d_armor/armor.lua
msgid "Diamond Leggings"
msgstr "алмазные гамаши"
#: ../3d_armor/armor.lua
msgid "Diamond Boots"
msgstr "алмазные ботинки"
#: ../3d_armor/armor.lua
msgid "Gold Helmet"
msgstr "золотой шлем"
#: ../3d_armor/armor.lua
msgid "Gold Chestplate"
msgstr "золотой бронежилет"
#: ../3d_armor/armor.lua
msgid "Gold Leggings"
msgstr "золотые гамаши"
#: ../3d_armor/armor.lua
msgid "Gold Boots"
msgstr "золотые ботинки"
#: ../3d_armor/armor.lua
msgid "Mithril Helmet"
msgstr "мифриловый шлем"
#: ../3d_armor/armor.lua
msgid "Mithril Chestplate"
msgstr "мифриловый бронежилет"
#: ../3d_armor/armor.lua
msgid "Mithril Leggings"
msgstr "мифриловые гамаши"
#: ../3d_armor/armor.lua
msgid "Mithril Boots"
msgstr "мифриловые ботинки"
#: ../3d_armor/armor.lua
msgid "Crystal Helmet"
msgstr "кристалловый шлем"
#: ../3d_armor/armor.lua
msgid "Crystal Chestplate"
msgstr "кристалловый бронежилет"
#: ../3d_armor/armor.lua
msgid "Crystal Leggings"
msgstr "кристалловые гамаши"
#: ../3d_armor/armor.lua
msgid "Crystal Boots"
msgstr "кристалловые ботинки"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Radiation"
msgstr "излучение"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Level"
msgstr "уровень"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Heal"
msgstr "исцеление"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Fire"
msgstr "огонь"
#: ../3d_armor/init.lua
msgid "Your @1 got destroyed!"
msgstr "твой(и) @1 был(и) разрушен(ы)!"
#: ../3d_armor/init.lua
msgid "3d_armor: Failed to initialize player"
msgstr "3d_armor: не смог подготовить игрока"
#: ../3d_armor/init.lua
msgid "[3d_armor] Fire Nodes disabled"
msgstr "[3d_armor] блоки огня отключены"
#: ../3d_armor_ip/init.lua
msgid "3d_armor_ip: Mod loaded but unused."
msgstr "3d_armor_ip: мод загружен но не используется."
#: ../3d_armor_ip/init.lua
msgid "Back"
msgstr "назад"
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
msgid "Armor"
msgstr "бронь"
#: ../3d_armor_sfinv/init.lua
msgid "3d_armor_sfinv: Mod loaded but unused."
msgstr "3d_armor_sfinv: мод загружен но не используется."
#: ../3d_armor_stand/init.lua
msgid "Armor stand top"
msgstr "стойка для брони (верх)"
#: ../3d_armor_stand/init.lua
msgid "Armor stand"
msgstr "стойка для брони"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand"
msgstr "стойка для брони"
#: ../3d_armor_stand/init.lua
msgid "Locked Armor stand"
msgstr "защищенная стойка для брони"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand (owned by @1)"
msgstr "стойка для брони (принадлежит @1)"
#: ../3d_armor_ui/init.lua
msgid "3d_armor_ui: Mod loaded but unused."
msgstr "3d_armor_ui: мод загружен но не используется."
#: ../3d_armor_ui/init.lua
msgid "3d Armor"
msgstr "3D бронь"
#: ../3d_armor_ui/init.lua
msgid "Armor not initialized!"
msgstr "бронь не подготовлена!"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "щит админа"
#: ../shields/init.lua
msgid "Wooden Shield"
msgstr "деревянный щит"
#: ../shields/init.lua
msgid "Enhanced Wood Shield"
msgstr "улучшенный деревянный щит"
#: ../shields/init.lua
msgid "Cactus Shield"
msgstr "кактусный щит"
#: ../shields/init.lua
msgid "Enhanced Cactus Shield"
msgstr "улучшенный кактусный щит"
#: ../shields/init.lua
msgid "Steel Shield"
msgstr "стальной щит"
#: ../shields/init.lua
msgid "Bronze Shield"
msgstr "бронзовый щит"
#: ../shields/init.lua
msgid "Diamond Shield"
msgstr "алмазный щит"
#: ../shields/init.lua
msgid "Gold Shield"
msgstr "золотой щит"
#: ../shields/init.lua
msgid "Mithril Shield"
msgstr "мифриловый щит"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "кристалловый щит"

View File

@ -1,6 +1,6 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# LANGUAGE translation for 3D ARMOR MOD
# Copyright (C) 2018 by Stuart Jones
# This file is distributed under the same license as the 3D ARMOR MOD package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-06 18:20+0200\n"
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,22 +17,18 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr ""
#: ../3d_armor/api.lua
msgid "3d_armor: Player name is nil @1"
msgstr ""
#: ../3d_armor/api.lua
msgid "3d_armor: Player inventory is nil @1"
msgstr ""
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr ""
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr ""
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr ""
@ -253,34 +249,6 @@ msgstr ""
msgid "Armor not initialized!"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "hazmat_suit: Mod loaded but unused."
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Helmet"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Chestplate"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Sleeve"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Leggins"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Boots"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Suit"
msgstr ""
#: ../shields/init.lua
msgid "Admin Shield"
msgstr ""
@ -324,60 +292,3 @@ msgstr ""
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr ""
#: ../technic_armor/init.lua
msgid "technic_armor: Mod loaded but unused."
msgstr ""
#: ../technic_armor/init.lua
msgid "Lead"
msgstr ""
#: ../technic_armor/init.lua
msgid "Brass"
msgstr ""
#: ../technic_armor/init.lua
msgid "Cast Iron"
msgstr ""
#: ../technic_armor/init.lua
msgid "Carbon Steel"
msgstr ""
#: ../technic_armor/init.lua
msgid "Stainless Steel"
msgstr ""
#: ../technic_armor/init.lua
msgid "Tin"
msgstr ""
#: ../technic_armor/init.lua
msgid "Silver"
msgstr ""
#: ../technic_armor/init.lua
msgid "Helmet"
msgstr ""
#: ../technic_armor/init.lua
msgid "Chestplate"
msgstr ""
#: ../technic_armor/init.lua
msgid "Leggings"
msgstr ""
#: ../technic_armor/init.lua
msgid "Boots"
msgstr ""
#: ../technic_armor/init.lua
msgid "Shield"
msgstr ""
#. 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)
#: ../technic_armor/init.lua
msgid "@1 @2"
msgstr ""

7
3d_armor/tools/README.md Normal file
View File

@ -0,0 +1,7 @@
# Intllib tool
please consider using the intllib tool to update locale files:
```../../intllib/tools/xgettext.sh ../**/*.lua```
make sure you are in `3d_armor` derectory before running this command

View File

@ -12,7 +12,6 @@ xgettext --from-code=UTF-8 \
--keyword=S \
--keyword=NS:1,2 \
--keyword=N_ \
--keyword=F \
--add-comments='Translators:' \
--add-location=file \
-o locale/template.pot \

View File

@ -1,5 +1,5 @@
[mod] 3d Armor integration to inventory plus [3d_armor_ip]
==========================================================
License Source Code: (C) 2012-2017 Stuart Jones - LGPL v2.1
License Source Code: (C) 2012-2018 Stuart Jones - LGPL v2.1

View File

@ -1,13 +1,13 @@
-- support for i18n
local S = armor_i18n.gettext
local F = armor_i18n.fgettext
local F = minetest.formspec_escape
if not minetest.global_exists("inventory_plus") then
minetest.log("warning", S("3d_armor_ip: Mod loaded but unused."))
return
end
armor.formspec = "size[8,8.5]button[6,0;2,0.5;main;"..F("Back").."]"..armor.formspec
armor.formspec = "size[8,8.5]button[6,0;2,0.5;main;"..F(S("Back")).."]"..armor.formspec
armor:register_on_update(function(player)
local name = player:get_player_name()
local formspec = armor:get_armor_formspec(name, true)

View File

@ -1,5 +1,5 @@
[mod] 3d Armor sfinv integration [3d_armor_sfinv]
=================================================
License Source Code: (C) 2012-2017 Stuart Jones - LGPL v2.1
License Source Code: (C) 2012-2018 Stuart Jones - LGPL v2.1

View File

@ -1,9 +1,9 @@
[mod] 3d Armor Stand [3d_armor_stand]
=====================================
License Source Code: (C) 2016-2017 Stuart Jones - LGPL v2.1
License Source Code: (C) 2016-2018 Stuart Jones - LGPL v2.1
Lecense Models: (C) 2016-2017 Stuart Jones - CC BY-SA 3.0
Lecense Models: (C) 2016-2018 Stuart Jones - CC BY-SA 3.0
UV model mapping by tobyplowy(aka toby109tt)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

After

Width:  |  Height:  |  Size: 191 B

View File

@ -1,5 +1,5 @@
[mod] 3d Armor integration to unified inventory [3d_armor_ui]
=============================================================
License Source Code: (C) 2012-2017 Stuart Jones - LGPL v2.1
License Source Code: (C) 2012-2018 Stuart Jones - LGPL v2.1

View File

@ -1,6 +1,7 @@
-- support for i18n
local S = armor_i18n.gettext
local F = armor_i18n.fgettext
local F = minetest.formspec_escape
local has_technic = minetest.get_modpath("technic") ~= nil
if not minetest.global_exists("unified_inventory") then
minetest.log("warning", S("3d_armor_ui: Mod loaded but unused."))
@ -29,23 +30,23 @@ unified_inventory.register_page("armor", {
local fy = perplayer_formspec.formspec_y
local name = player:get_player_name()
if armor.def[name].init_time == 0 then
return {formspec="label[0,0;"..F("Armor not initialized!").."]"}
return {formspec="label[0,0;"..F(S("Armor not initialized!")).."]"}
end
local formspec = "background[0,"..fy..";8,7.505;3d_armor_ui_form.png]"..
"label[0,0;"..F("Armor").."]"..
"list[detached:"..name.."_armor;armor;0,"..fy..";2,3;]"..
"image[2.5,"..(fy - 0.25)..";2,4;"..armor.textures[name].preview.."]"..
"label[5.0,"..(fy + 0.0)..";"..F("Level")..": "..armor.def[name].level.."]"..
"label[5.0,"..(fy + 0.5)..";"..F("Heal")..": "..armor.def[name].heal.."]"..
"label[5.0,"..(fy + 0.0)..";"..F(S("Level"))..": "..armor.def[name].level.."]"..
"label[5.0,"..(fy + 0.5)..";"..F(S("Heal"))..": "..armor.def[name].heal.."]"..
"listring[current_player;main]"..
"listring[detached:"..name.."_armor;armor]"
if armor.config.fire_protect then
formspec = formspec.."label[5.0,"..(fy + 1.0)..";"..
F("Fire")..": "..armor.def[name].fire.."]"
F(S("Fire"))..": "..armor.def[name].fire.."]"
end
if minetest.global_exists("technic") then
if has_technic then
formspec = formspec.."label[5.0,"..(fy + 1.5)..";"..
F("Radiation")..": "..armor.def[name].groups["radiation"].."]"
F(S("Radiation"))..": "..armor.def[name].groups["radiation"].."]"
end
return {formspec=formspec}
end,

View File

@ -1,9 +1,9 @@
3D Armor - Visible Player Armor
===============================
License Source Code: Copyright (C) 2013-2017 Stuart Jones - LGPL v2.1
License Source Code: Copyright (C) 2013-2018 Stuart Jones - LGPL v2.1
Armor Textures: Copyright (C) 2017 davidthecreator - CC-BY-SA 3.0
Armor Textures: Copyright (C) 2017-2018 davidthecreator - CC-BY-SA 3.0
Special credit to Jordach and MirceaKitsune for providing the default 3d character model.

View File

@ -1,5 +1,5 @@
Modpack - 3d Armor [0.4.10]
==========================
Modpack - 3d Armor [0.4.12]
===========================
3d armor by stujones11 and modified by SaKeL.
@ -8,15 +8,13 @@ Modpack - 3d Armor [0.4.10]
- [[mod] Visible Player Armor [3d_armor]](#mod-visible-player-armor-3d_armor)
- [[mod] Visible Wielded Items [wieldview]](#mod-visible-wielded-items-wieldview)
- [[mod] Shields [shields]](#mod-shields-shields)
- [[mod] Technic Armor [technic_armor]](#mod-technic-armor-technic_armor)
- [[mod] Hazmat Suit [hazmat_suit]](#mod-hazmat-suit-hazmat_suit)
- [[mod] 3d Armor Stand [3d_armor_stand]](#mod-3d-armor-stand-3d_armor_stand)
[mod] Visible Player Armor [3d_armor]
-------------------------------------
Minetest Version: 0.4.16
Minetest Version: 0.4.16 - 0.4.17.1
Game: minetest_game and many derivatives
@ -60,23 +58,6 @@ Depends: 3d_armor
Originally a part of 3d_armor, shields have been re-included as an optional extra.
If you do not want shields then simply remove the shields folder from the modpack.
[mod] Technic Armor [technic_armor]
-----------------------------------
Depends: 3d_armor, technic_worldgen
Adds tin, silver and technic materials to 3d_armor.
Requires technic (technic_worldgen at least) mod.
[mod] Hazmat Suit [hazmat_suit]
-------------------------------
Depends: 3d_armor, technic
Adds hazmat suit to 3d_armor. It protects rather well from fire (if enabled in configuration) and radiation*, and it has built-in oxygen supply.
Requires technic mod.
[mod] 3d Armor Stand [3d_armor_stand]
-------------------------------------

View File

@ -1,7 +0,0 @@
[mod] Hazmat Suit [hazmat_suit]
===============================
License Source Code: Copyright (C) 2015-2017 Stuart Jones - LGPL v2.1
License Textures: HybridDog and numberZero - 2015-2017 WTFPL

View File

@ -1,12 +0,0 @@
[mod] Hazmat Suit [hazmat_suit]
===============================
Adds hazmat suit to 3d_armor. It protects rather well from fire (if enabled in configuration) and radiation*, and it has built-in oxygen supply.
Requires technic mod.
*Requires patched version of technic mod - https://github.com/minetest-technic/technic/pull/275
Depends: 3d_armor, technic
Textures by HybridDog and numberZero

View File

@ -1,2 +0,0 @@
3d_armor
technic?

View File

@ -1,105 +0,0 @@
-- support for i18n
local S = armor_i18n.gettext
if not minetest.get_modpath("technic") then
minetest.log("warning", S("hazmat_suit: Mod loaded but unused."))
return
end
minetest.register_craftitem("hazmat_suit:helmet_hazmat", {
description = S("Hazmat Helmet"),
inventory_image = "hazmat_suit_inv_helmet_hazmat.png",
stack_max = 1,
})
minetest.register_craftitem("hazmat_suit:chestplate_hazmat", {
description = S("Hazmat Chestplate"),
inventory_image = "hazmat_suit_inv_chestplate_hazmat.png",
stack_max = 1,
})
minetest.register_craftitem("hazmat_suit:sleeve_hazmat", {
description = S("Hazmat Sleeve"),
inventory_image = "hazmat_suit_inv_sleeve_hazmat.png",
stack_max = 1,
})
minetest.register_craftitem("hazmat_suit:leggings_hazmat", {
description = S("Hazmat Leggins"),
inventory_image = "hazmat_suit_inv_leggings_hazmat.png",
stack_max = 1,
})
minetest.register_craftitem("hazmat_suit:boots_hazmat", {
description = S("Hazmat Boots"),
inventory_image = "hazmat_suit_inv_boots_hazmat.png",
stack_max = 1,
})
armor:register_armor("hazmat_suit:suit_hazmat", {
description = S("Hazmat Suit"),
inventory_image = "hazmat_suit_inv_suit_hazmat.png",
groups = {armor_head=1, armor_torso=1, armor_legs=1, armor_feet=1,
armor_heal=20, armor_fire=4, armor_water=1, armor_use=1000,
physics_jump=-0.1, physics_speed=-0.2, physics_gravity=0.1},
armor_groups = {fleshy=35, radiation=50},
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
})
minetest.register_craft({
output = "hazmat_suit:helmet_hazmat",
recipe = {
{"", "technic:stainless_steel_ingot", ""},
{"technic:stainless_steel_ingot", "default:glass", "technic:stainless_steel_ingot"},
{"technic:rubber", "technic:rubber", "technic:rubber"},
},
})
minetest.register_craft({
output = "hazmat_suit:chestplate_hazmat",
recipe = {
{"technic:lead_ingot", "dye:yellow", "technic:lead_ingot"},
{"technic:stainless_steel_ingot", "technic:lead_ingot", "technic:stainless_steel_ingot"},
{"technic:lead_ingot", "technic:stainless_steel_ingot", "technic:lead_ingot"},
},
})
minetest.register_craft({
output = "hazmat_suit:sleeve_hazmat",
recipe = {
{"technic:rubber", "dye:yellow"},
{"", "technic:stainless_steel_ingot"},
{"", "technic:rubber"},
},
})
minetest.register_craft({
output = "hazmat_suit:leggings_hazmat",
recipe = {
{"technic:rubber", "technic:lead_ingot", "technic:rubber"},
{"technic:stainless_steel_ingot", "technic:rubber", "technic:stainless_steel_ingot"},
{"technic:lead_ingot", "", "technic:lead_ingot"},
},
})
minetest.register_craft({
output = "hazmat_suit:boots_hazmat",
recipe = {
{"", "", ""},
{"technic:rubber", "", "technic:rubber"},
{"technic:stainless_steel_ingot", "", "technic:stainless_steel_ingot"},
},
})
minetest.register_craft({
output = "hazmat_suit:suit_hazmat",
type = "shapeless",
recipe = {
"hazmat_suit:helmet_hazmat",
"hazmat_suit:chestplate_hazmat",
"hazmat_suit:leggings_hazmat",
"hazmat_suit:boots_hazmat",
"hazmat_suit:sleeve_hazmat",
"hazmat_suit:sleeve_hazmat",
},
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

View File

@ -1 +0,0 @@
hazmat_suit/textures/hazmat_suit_suit_hazmat.png:all

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

@ -1,8 +1,8 @@
[mod] Shields [shields]
=======================
License Source Code: Copyright (C) 2013-2017 Stuart Jones - LGPL v2.1
License Source Code: Copyright (C) 2013-2018 Stuart Jones - LGPL v2.1
License Textures: Copyright (C) 2017 davidthecreator - CC-BY-SA 3.0
License Textures: Copyright (C) 2017-2018 davidthecreator - CC-BY-SA 3.0
https://github.com/daviddoesminetest/3d-armors-new-textures

View File

@ -7,3 +7,10 @@ Depends: 3d_armor
Originally a part of 3d_armor, shields have been re-included as an optional extra.
If you do not what shields then simply remove the shields folder from the modpack.
Shields Configuration
---------------------
Override the following default settings by adding them to your minetest.conf file.
shields_disable_sounds = false

View File

@ -1,14 +1,14 @@
-- support for i18n
local S = armor_i18n.gettext
local disable_sounds = minetest.settings:get_bool("shields_disable_sounds")
local use_moreores = minetest.get_modpath("moreores")
local function play_sound_effect(player, name)
if player then
if not disable_sounds and player then
local pos = player:getpos()
if pos then
minetest.sound_play({
minetest.sound_play(name, {
pos = pos,
name = name,
max_hear_distance = 10,
gain = 0.5,
})
@ -28,15 +28,6 @@ armor:register_armor("shields:shield_admin", {
description = S("Admin Shield"),
inventory_image = "shields_inv_shield_admin.png",
groups = {armor_shield=1000, armor_heal=100, armor_use=0, not_in_creative_inventory=1},
on_punched = function(player, hitter, time_from_last_punch, tool_capabilities)
if type(hitter) == "userdata" then
if hitter:is_player() then
hitter:set_wielded_item("")
end
play_sound_effect(player, "default_dig_metal")
end
return false
end,
})
minetest.register_alias("adminshield", "shields:shield_admin")

View File

@ -1,7 +0,0 @@
[mod] Technic Armor [technic_armor]
===================================
License Source Code: Copyright (C) 2013-2017 Stuart Jones - LGPL v2.1
License Textures: poet.nohit and numberZero - 2015-2017 WTFPL

View File

@ -1,9 +0,0 @@
[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

View File

@ -1,3 +0,0 @@
3d_armor
technic_worldgen?
moreores?

View File

@ -1,66 +0,0 @@
-- support for i18n
local S = armor_i18n.gettext
local F = armor_i18n.fgettext
if not minetest.get_modpath("technic_worldgen") then
minetest.log("warning", S("technic_armor: Mod loaded but unused."))
return
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
stats.tin = { name=S("Tin"), material="moreores:tin_ingot", armor=1.6, heal=0, use=750, radiation=37 }
stats.silver = { name=S("Silver"), material="moreores:silver_ingot", armor=1.8, heal=6, use=650, radiation=53 }
end
local parts = {
helmet = { place="head", name=S("Helmet"), level=5, radlevel = 0.10, craft={{1,1,1},{1,0,1}} },
chestplate = { place="torso", name=S("Chestplate"), level=8, radlevel = 0.35, craft={{1,0,1},{1,1,1},{1,1,1}} },
leggings = { place="legs", name=S("Leggings"), level=7, radlevel = 0.15, craft={{1,1,1},{1,0,1},{1,0,1}} },
boots = { place="feet", name=S("Boots"), level=4, radlevel = 0.10, craft={{1,0,1},{1,0,1}} },
}
if minetest.get_modpath("shields") then
parts.shield = { place="shield", name=S("Shield"), level=5, radlevel=0.00, craft={{1,1,1},{1,1,1},{0,1,0}} }
end
-- 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 = {}
for j, trow in ipairs(template) do
local rrow = {}
for i, tcell in ipairs(trow) do
if tcell == 0 then
rrow[i] = ""
else
rrow[i] = materials[tcell]
end
end
recipe[j] = rrow
end
return recipe
end
for key, armor in pairs(stats) do
for partkey, part in pairs(parts) do
local partname = "technic_armor:"..partkey.."_"..key
minetest.register_tool(partname, {
-- 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)
description = S("@1 @2", armor.name, part.name),
inventory_image = "technic_armor_inv_"..partkey.."_"..key..".png",
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)},
wear = 0,
})
minetest.register_craft({
output = partname,
recipe = make_recipe(part.craft, {armor.material}),
})
end
end

View File

@ -1,41 +0,0 @@
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

Some files were not shown because too many files have changed in this diff Show More