1
0
mirror of https://github.com/minetest-mods/3d_armor.git synced 2025-06-29 14:50:47 +02:00

59 Commits

Author SHA1 Message Date
1d22612664 Bump version to 0.4.13 2019-03-05 20:01:01 +00:00
3fe7dd2249 Replace deprecated getpos call 2019-03-05 19:40:54 +00:00
be9579a365 Offset models for minetest 5.0.0 2019-03-05 19:30:38 +00:00
18320e96b9 Replace braces within replace to avoid invalid line error 2019-03-05 19:27:37 +00:00
99471d3aa0 Create settingtypes.txt file 2019-03-05 19:27:37 +00:00
b6283f3f0f Fix some default settings values in README 2019-03-05 19:27:37 +00:00
7e2d9426d1 fix formatting 2019-01-20 23:21:05 +00:00
813a88f3a1 Fixes Stand appending extra ".png" to texture when a "texture" attribute
is explicity set on the armor's definition.
2019-01-20 23:21:05 +00:00
4c032e8c7e Add Portuguese Translations 2018-11-09 17:50:10 +00:00
945e816b55 Locale es.po created 2018-10-23 18:02:46 +01:00
10ded06705 Create es.po 2018-10-23 18:02:46 +01:00
43a69ad853 Locale es.po created 2018-10-23 18:02:46 +01:00
13a8f0d019 Add new textures 2018-10-19 20:37:48 +01:00
70325158e6 Reverts 9ce0ed9f55 / #152
The preview method is skin preview only, without armor. That is wrong for showing on formspec

Sorry for inconveniences. I need to fix the preview handling in player_api_modpack-version in an other way
2018-08-24 18:58:32 +01:00
c96ba7ef34 Cleanup locales (#155)
* use localization function in formspecs

* remove unused translations

* remove F keyword from updatepo tool

* add tool readme
2018-07-26 20:05:50 +01:00
838867a6bc add russian locale 2018-07-22 20:53:38 +01:00
9ce0ed9f55 Use preview method for unified inventory
I found this during porting the 3d_armor to player_api ;-)
2018-07-22 20:51:07 +01:00
c0d45ceaa1 show fire: value
this fixes the Fire: value in formspec so it shows a number instead of "Fire: armor_fire".
2018-06-18 20:21:58 +01:00
656bcf30bc Bump version to 0.4.12 2018-06-10 19:39:38 +01:00
579e64a5e7 Code tidy 2018-06-02 22:13:41 +01:00
6f99803d2d Return invalid items in singleplayer mode 2018-06-02 20:46:44 +01:00
f960fc1a41 Only validate armor inventory after user changes 2018-06-02 18:59:32 +01:00
af4a381433 Update screenshot image 2018-05-24 19:25:34 +01:00
1f11a28ad4 More armor callback fixes 2018-05-24 19:06:27 +01:00
a5ddc3e60a Move comment :) 2018-05-23 21:40:06 +01:00
83f3e01efa Run callbacks based on validated inventory 2018-05-23 20:15:09 +01:00
7d30bc25a3 Allow replacing similar armor in the same slot 2018-05-22 18:40:24 +01:00
e4b12558d4 Ammendment to 21b5c68505 2018-05-19 21:35:15 +01:00
21b5c68505 Validate and clean armor inventory before saving 2018-05-19 20:25:27 +01:00
21716ffd31 Display correct heal attribute level, fixes #137 2018-05-13 16:52:29 +01:00
cc6fff2b04 Shields: Fix positional sound effects 2018-05-13 16:31:51 +01:00
4210cafff3 add POVA support (#138)
* add POVA support

Add support for POVA player overrides.

* add POVA support

Add support for POVA player overrides.
2018-05-07 14:41:40 +01:00
579d245a00 Fix crash with UI but no technic 2018-02-23 18:00:43 +00:00
c812e0ac56 Shields: Add option to disable sound effects 2018-02-18 20:35:49 +00:00
4baed2ca22 Remove on_punch effects from admin armor, closes #131 2018-02-18 20:24:35 +00:00
b9c8681e14 Bump version to 0.4.11 2018-02-11 17:13:25 +00:00
2fc92880fd Move technic_armor and hazmat_suit to separate repos 2018-02-11 17:11:51 +00:00
b4cfdac6f5 Update licenses to current year 2018-02-11 16:57:27 +00:00
59b26b37f9 Fix item duplication vulnerability 2018-02-11 16:12:22 +00:00
7226dd6174 Add Malay translation 2018-02-07 17:39:38 +00:00
4fc51971d1 Fix registered group level display 2018-01-10 19:16:23 +00:00
291b34bfc6 Auto-refresh armor stands after clearobjects.
Currently armor stands appear empty after a clearobjects, in order to refresh them the armor must be removed and put back on again, this code automatically refreshes armor stands periodically to avoid these issues.
2017-12-05 18:28:27 +00:00
da7df11ce4 Change armor stand recipe to use any item from the fence group. 2017-11-10 17:41:59 +00:00
4ff61da39a Correct minetest version in README.md 2017-10-24 20:53:06 +01:00
688e21f285 Bump version to 0.4.10 2017-10-21 17:57:12 +01:00
ea70066d7a Add link to general mod install info, closes #117 2017-10-20 21:19:22 +01:00
d5896a04e2 Check that player inventory returns a valid table 2017-10-20 20:17:37 +01:00
d979815a49 Fix libpng sRGB profile warnings 2017-10-20 19:38:22 +01:00
cca523f193 Italian locale 2017-08-18 13:21:30 +01:00
ae448c150c added complete intllib support (i18n)
added french translation
2017-08-08 18:09:27 +01:00
925b39f577 added tooltip on unified_inventory button 2017-08-08 18:09:27 +01:00
0454d72c72 Ensure valid inventory table when setting armor 2017-08-01 19:03:17 +01:00
9fa95b2e2c Run update callbacks when player visuals change, closes #113 2017-08-01 18:48:06 +01:00
43c9984d57 Do not drop armor in uloaded areas 2017-08-01 18:42:04 +01:00
cc26d04345 Replace deprecated function 'intllib.Getter':
- Check first for 'intllib.make_gettext_pair', otherwise continue using
function 'intllib.Getter'.
2017-07-09 14:29:11 +01:00
38d79b91a1 Replace deprecated methods:
- 'setting_get' with 'settings:get'
- 'setting_getbool' with 'settings:get_bool'
- 'setting_set' with 'settings:set'
2017-06-21 17:48:18 +01:00
db8fb5ebd4 bugfix and small optimization 2017-06-21 17:47:24 +01:00
2150fcea8d return the png suffix in get_player_skin for complete texture definition to support more complex textures
Note the armor.get_player_skin() could be redefined in other mods to privide the more complex textures
2017-06-21 17:47:24 +01:00
9577fb773e Ignore Eclipse project files & directories 2017-05-14 19:29:08 +01:00
165 changed files with 2879 additions and 481 deletions

View File

@ -32,11 +32,11 @@ armor_material_mithril = true
armor_material_crystal = true armor_material_crystal = true
-- Increase this if you get initialization glitches when a player first joins. -- Increase this if you get initialization glitches when a player first joins.
armor_init_delay = 1 armor_init_delay = 2
-- Number of initialization attempts. -- Number of initialization attempts.
-- Use in conjunction with armor_init_delay if initialization problems persist. -- Use in conjunction with armor_init_delay if initialization problems persist.
armor_init_times = 1 armor_init_times = 10
-- Increase this if armor is not getting into bones due to server lag. -- Increase this if armor is not getting into bones due to server lag.
armor_bones_delay = 1 armor_bones_delay = 1
@ -111,7 +111,7 @@ armor:register_armor("mod_name:speed_boots", {
damage_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1}, damage_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1},
reciprocate_damage = true, reciprocate_damage = true,
on_destroy = function(player, index, stack) on_destroy = function(player, index, stack)
local pos = player:getpos() local pos = player:get_pos()
if pos then if pos then
minetest.sound_play({ minetest.sound_play({
name = "mod_name_break_sound", name = "mod_name_break_sound",

View File

@ -1,6 +1,10 @@
local use_multiskin = minetest.global_exists("multiskin") -- support for i18n
local S = armor_i18n.gettext
local skin_previews = {}
local use_player_monoids = minetest.global_exists("player_monoids") local use_player_monoids = minetest.global_exists("player_monoids")
local use_armor_monoid = minetest.global_exists("armor_monoid") local use_armor_monoid = minetest.global_exists("armor_monoid")
local use_pova_mod = minetest.get_modpath("pova")
local armor_def = setmetatable({}, { local armor_def = setmetatable({}, {
__index = function() __index = function()
return setmetatable({ return setmetatable({
@ -39,7 +43,7 @@ armor = {
"list[current_player;main;0,5.85;8,3;8]", "list[current_player;main;0,5.85;8,3;8]",
def = armor_def, def = armor_def,
textures = armor_textures, textures = armor_textures,
default_skin = "character.png", default_skin = "character",
materials = { materials = {
wood = "group:wood", wood = "group:wood",
cactus = "default:cactus", cactus = "default:cactus",
@ -70,7 +74,7 @@ armor = {
on_destroy = {}, on_destroy = {},
}, },
migrate_old_inventory = true, migrate_old_inventory = true,
version = "0.4.9", version = "0.4.13",
} }
armor.config = { armor.config = {
@ -157,22 +161,16 @@ armor.run_callbacks = function(self, callback, player, index, stack)
end end
armor.update_player_visuals = function(self, player) armor.update_player_visuals = function(self, player)
local name = self:get_valid_player(player, "[update_player_visuals]") if not player then
if not name then
return return
end end
local textures = { local name = player:get_player_name()
"blank.png", if self.textures[name] then
"blank.png", default.player_set_textures(player, {
self.textures[name].armor, self.textures[name].skin,
self.textures[name].wielditem, self.textures[name].armor,
} self.textures[name].wielditem,
if use_multiskin then })
multiskin.textures[name] = textures
multiskin.update_player_visuals(player)
else
textures[1] = armor.default_skin
default.player_set_textures(player, textures)
end end
self:run_callbacks("on_update", player) self:run_callbacks("on_update", player)
end end
@ -185,17 +183,14 @@ armor.set_player_armor = function(self, player)
local state = 0 local state = 0
local count = 0 local count = 0
local material = {count=1} local material = {count=1}
local preview = "3d_armor_preview.png" local preview = armor:get_preview(name)
local texture = "blank.png" local texture = "3d_armor_trans.png"
local textures = {} local textures = {}
local physics = {} local physics = {}
local attributes = {} local attributes = {}
local levels = {} local levels = {}
local groups = {} local groups = {}
local change = {} local change = {}
if use_multiskin then
preview = multiskin.get_preview(player) or preview
end
for _, phys in pairs(self.physics) do for _, phys in pairs(self.physics) do
physics[phys] = 1 physics[phys] = 1
end end
@ -275,7 +270,8 @@ armor.set_player_armor = function(self, player)
change[group] = groups[group] / base change[group] = groups[group] / base
end end
for _, attr in pairs(self.attributes) do 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 end
for _, phys in pairs(self.physics) do for _, phys in pairs(self.physics) do
self.def[name][phys] = physics[phys] self.def[name][phys] = physics[phys]
@ -292,6 +288,14 @@ armor.set_player_armor = function(self, player)
"3d_armor:physics") "3d_armor:physics")
player_monoids.gravity:add_change(player, physics.gravity, player_monoids.gravity:add_change(player, physics.gravity,
"3d_armor:physics") "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 else
player:set_physics_override(physics) player:set_physics_override(physics)
end end
@ -389,6 +393,29 @@ armor.damage = function(self, player, index, stack, use)
end end
end end
armor.get_player_skin = function(self, name)
if (self.skin_mod == "skins" or self.skin_mod == "simple_skins") and skins.skins[name] then
return skins.skins[name]..".png"
elseif self.skin_mod == "u_skins" and u_skins.u_skins[name] then
return u_skins.u_skins[name]..".png"
elseif self.skin_mod == "wardrobe" and wardrobe.playerSkins and wardrobe.playerSkins[name] then
return wardrobe.playerSkins[name]
end
return armor.default_skin..".png"
end
armor.add_preview = function(self, preview)
skin_previews[preview] = true
end
armor.get_preview = function(self, name)
local preview = string.gsub(armor:get_player_skin(name), ".png", "_preview.png")
if skin_previews[preview] then
return preview
end
return "character_preview.png"
end
armor.get_armor_formspec = function(self, name, listring) armor.get_armor_formspec = function(self, name, listring)
if armor.def[name].init_time == 0 then if armor.def[name].init_time == 0 then
return "label[0,0;Armor not initialized!]" return "label[0,0;Armor not initialized!]"
@ -411,6 +438,14 @@ armor.get_armor_formspec = function(self, name, listring)
return formspec return formspec
end 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) armor.serialize_inventory_list = function(self, list)
local list_table = {} local list_table = {}
for _, stack in ipairs(list) do for _, stack in ipairs(list) do
@ -429,37 +464,23 @@ armor.deserialize_inventory_list = function(self, list_string)
end end
armor.load_armor_inventory = function(self, player) armor.load_armor_inventory = function(self, player)
local msg = "[load_armor_inventory]" local _, inv = self:get_valid_player(player, "[load_armor_inventory]")
local name = player:get_player_name() if inv then
if not name then local armor_list_string = player:get_attribute("3d_armor_inventory")
minetest.log("warning", S("3d_armor: Player name is nil @1", msg)) if armor_list_string then
return inv:set_list("armor",
end self:deserialize_inventory_list(armor_list_string))
local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"}) return true
if not armor_inv then end
minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg))
return
end
local armor_list_string = player:get_attribute("3d_armor_inventory")
if armor_list_string then
armor_inv:set_list("armor", self:deserialize_inventory_list(armor_list_string))
return true
end end
end end
armor.save_armor_inventory = function(self, player) armor.save_armor_inventory = function(self, player)
local msg = "[save_armor_inventory]" local _, inv = self:get_valid_player(player, "[save_armor_inventory]")
local name = player:get_player_name() if inv then
if not name then player:set_attribute("3d_armor_inventory",
minetest.log("warning", S("3d_armor: Player name is nil @1", msg)) self:serialize_inventory_list(inv:get_list("armor")))
return
end end
local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"})
if not armor_inv then
minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg))
return
end
player:set_attribute("3d_armor_inventory", self:serialize_inventory_list(armor_inv:get_list("armor")))
end end
armor.update_inventory = function(self, player) armor.update_inventory = function(self, player)
@ -467,35 +488,27 @@ armor.update_inventory = function(self, player)
end end
armor.set_inventory_stack = function(self, player, i, stack) armor.set_inventory_stack = function(self, player, i, stack)
local msg = "[set_inventory_stack]" local _, inv = self:get_valid_player(player, "[set_inventory_stack]")
local name = player:get_player_name() if inv then
if not name then inv:set_stack("armor", i, stack)
minetest.log("warning", "3d_armor: Player name is nil "..msg) self:save_armor_inventory(player)
return
end end
local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"})
if not armor_inv then
minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg))
return
end
armor_inv:set_stack("armor", i, stack)
self:save_armor_inventory(player)
end end
armor.get_valid_player = function(self, player, msg) armor.get_valid_player = function(self, player, msg)
msg = msg or "" msg = msg or ""
if not player then if not player then
minetest.log("warning", "3d_armor: Player reference is nil "..msg) minetest.log("warning", S("3d_armor: Player reference is nil @1", msg))
return return
end end
local name = player:get_player_name() local name = player:get_player_name()
if not name then if not name then
minetest.log("warning", "3d_armor: Player name is nil "..msg) minetest.log("warning", S("3d_armor: Player name is nil @1", msg))
return return
end end
local inv = minetest.get_inventory({type="detached", name=name.."_armor"}) local inv = minetest.get_inventory({type="detached", name=name.."_armor"})
if not inv then if not inv then
minetest.log("warning", "3d_armor: Player inventory is nil "..msg) minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg))
return return
end end
return name, inv return name, inv

View File

@ -1,13 +1,5 @@
local S = function(s) return s end -- support for i18n
if minetest.global_exists("intllib") then local S = armor_i18n.gettext
if intllib.make_gettext_pair then
-- New method using gettext.
S = intllib.make_gettext_pair()
else
-- Old method using text files.
S = intllib.Getter()
end
end
armor:register_armor("3d_armor:helmet_admin", { armor:register_armor("3d_armor:helmet_admin", {
description = S("Admin Helmet"), description = S("Admin Helmet"),

View File

@ -1,8 +1,8 @@
default default
player_monoids? player_monoids?
armor_monoid? armor_monoid?
pova?
fire? fire?
ethereal? ethereal?
bakedclay? bakedclay?
intllib? intllib?
multiskin?

View File

@ -1,13 +1,3 @@
local S = function(s) return s end
if minetest.global_exists("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
S = intllib.make_gettext_pair()
else
-- Old method using text files.
S = intllib.Getter()
end
end
local modname = minetest.get_current_modname() local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname) local modpath = minetest.get_modpath(modname)
local worldpath = minetest.get_worldpath() local worldpath = minetest.get_worldpath()
@ -15,6 +5,14 @@ local last_punch_time = {}
local pending_players = {} local pending_players = {}
local timer = 0 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") dofile(modpath.."/api.lua")
-- Legacy Config Support -- Legacy Config Support
@ -65,14 +63,25 @@ for material, _ in pairs(armor.materials) do
end end
-- Mod Compatibility -- Mod Compatibility
if minetest.get_modpath("multiskin") then
multiskin.model = "3d_armor_character.b3d"
end
if minetest.get_modpath("technic") then if minetest.get_modpath("technic") then
armor.formspec = armor.formspec.. armor.formspec = armor.formspec..
"label[5,2.5;"..S("Radiation")..": armor_group_radiation]" "label[5,2.5;"..F(S("Radiation"))..": armor_group_radiation]"
armor:register_armor_group("radiation") armor:register_armor_group("radiation")
end end
local skin_mods = {"skins", "u_skins", "simple_skins", "wardrobe"}
for _, mod in pairs(skin_mods) do
local path = minetest.get_modpath(mod)
if path then
local dir_list = minetest.get_dir_list(path.."/textures")
for _, fn in pairs(dir_list) do
if fn:find("_preview.png$") then
armor:add_preview(fn)
end
end
armor.skin_mod = mod
end
end
if not minetest.get_modpath("moreores") then if not minetest.get_modpath("moreores") then
armor.materials.mithril = nil armor.materials.mithril = nil
end end
@ -85,56 +94,106 @@ dofile(modpath.."/armor.lua")
-- Armor Initialization -- Armor Initialization
armor.formspec = armor.formspec.. armor.formspec = armor.formspec..
"label[5,1;"..S("Level")..": armor_level]".. "label[5,1;"..F(S("Level"))..": armor_level]"..
"label[5,1.5;"..S("Heal")..": armor_attr_heal]" "label[5,1.5;"..F(S("Heal"))..": armor_attr_heal]"
if armor.config.fire_protect then if armor.config.fire_protect then
armor.formspec = armor.formspec.."label[5,2;"..S("Fire")..": armor_fire]" armor.formspec = armor.formspec.."label[5,2;"..F(S("Fire"))..": armor_attr_fire]"
end end
armor:register_on_destroy(function(player, index, stack) armor:register_on_destroy(function(player, index, stack)
local name = player:get_player_name() local name = player:get_player_name()
local def = stack:get_definition() local def = stack:get_definition()
if name and def and def.description then if name and def and def.description then
minetest.chat_send_player(name, S("Your").." "..def.description.." ".. minetest.chat_send_player(name, S("Your @1 got destroyed!", def.description))
S("got destroyed").."!")
end end
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 function init_player_armor(player)
local name = player:get_player_name() local name = player:get_player_name()
local pos = player:getpos() local pos = player:get_pos()
if not name or not pos then if not name or not pos then
return false return false
end end
local armor_inv = minetest.create_detached_inventory(name.."_armor", { local armor_inv = minetest.create_detached_inventory(name.."_armor", {
on_put = function(inv, listname, index, stack, player) on_put = function(inv, listname, index, stack, player)
validate_armor_inventory(player)
armor:save_armor_inventory(player) armor:save_armor_inventory(player)
armor:run_callbacks("on_equip", player, index, stack)
armor:set_player_armor(player) armor:set_player_armor(player)
end, end,
on_take = function(inv, listname, index, stack, player) on_take = function(inv, listname, index, stack, player)
validate_armor_inventory(player)
armor:save_armor_inventory(player) armor:save_armor_inventory(player)
armor:run_callbacks("on_unequip", player, index, stack)
armor:set_player_armor(player) armor:set_player_armor(player)
end, end,
on_move = function(inv, from_list, from_index, to_list, to_index, count, player) on_move = function(inv, from_list, from_index, to_list, to_index, count, player)
validate_armor_inventory(player)
armor:save_armor_inventory(player) armor:save_armor_inventory(player)
armor:set_player_armor(player) armor:set_player_armor(player)
end, end,
allow_put = function(inv, listname, index, stack, player) allow_put = function(inv, listname, index, put_stack, player)
local def = stack:get_definition() or {} local element = armor:get_element(put_stack:get_name())
local allowed = 0 if not element then
for _, element in pairs(armor.elements) do return 0
if def.groups["armor_"..element] then end
allowed = 1 for i = 1, 6 do
for i = 1, 6 do local stack = inv:get_stack("armor", i)
local item = inv:get_stack("armor", i):get_name() local def = stack:get_definition() or {}
if minetest.get_item_group(item, "armor_"..element) > 0 then if def.groups and def.groups["armor_"..element]
return 0 and i ~= index then
end return 0
end
end end
end end
return allowed return 1
end, end,
allow_take = function(inv, listname, index, stack, player) allow_take = function(inv, listname, index, stack, player)
return stack:get_count() return stack:get_count()
@ -156,7 +215,9 @@ local function init_player_armor(player)
end end
for i=1, 6 do for i=1, 6 do
local stack = armor_inv:get_stack("armor", i) local stack = armor_inv:get_stack("armor", i)
armor:run_callbacks("on_equip", player, i, stack) if stack:get_count() > 0 then
armor:run_callbacks("on_equip", player, i, stack)
end
end end
armor.def[name] = { armor.def[name] = {
init_time = minetest.get_gametime(), init_time = minetest.get_gametime(),
@ -174,13 +235,24 @@ local function init_player_armor(player)
for group, _ in pairs(armor.registered_groups) do for group, _ in pairs(armor.registered_groups) do
armor.def[name].groups[group] = 0 armor.def[name].groups[group] = 0
end end
local skin = armor:get_player_skin(name)
armor.textures[name] = { armor.textures[name] = {
armor = "blank.png", skin = skin,
wielditem = "blank.png", armor = "3d_armor_trans.png",
wielditem = "3d_armor_trans.png",
preview = armor.default_skin.."_preview.png",
} }
minetest.after(0, function(player) local texture_path = minetest.get_modpath("player_textures")
armor:set_player_armor(player) if texture_path then
end, player) local dir_list = minetest.get_dir_list(texture_path.."/textures")
for _, fn in pairs(dir_list) do
if fn == "player_"..name..".png" then
armor.textures[name].skin = fn
break
end
end
end
armor:set_player_armor(player)
return true return true
end end
@ -189,10 +261,9 @@ end
default.player_register_model("3d_armor_character.b3d", { default.player_register_model("3d_armor_character.b3d", {
animation_speed = 30, animation_speed = 30,
textures = { textures = {
armor.default_skin, armor.default_skin..".png",
"blank.png", "3d_armor_trans.png",
"blank.png", "3d_armor_trans.png",
"blank.png",
}, },
animations = { animations = {
stand = {x=0, y=79}, stand = {x=0, y=79},
@ -204,6 +275,22 @@ default.player_register_model("3d_armor_character.b3d", {
}, },
}) })
minetest.register_on_player_receive_fields(function(player, formname, fields)
local name = armor:get_valid_player(player, "[on_player_receive_fields]")
if not name then
return
end
for field, _ in pairs(fields) do
if string.find(field, "skins_set") then
minetest.after(0, function(player)
local skin = armor:get_player_skin(name)
armor.textures[name].skin = skin
armor:set_player_armor(player)
end, player)
end
end
end)
minetest.register_on_joinplayer(function(player) minetest.register_on_joinplayer(function(player)
default.player_set_model(player, "3d_armor_character.b3d") default.player_set_model(player, "3d_armor_character.b3d")
minetest.after(0, function(player) minetest.after(0, function(player)
@ -233,12 +320,13 @@ if armor.config.drop == true or armor.config.destroy == true then
local stack = armor_inv:get_stack("armor", i) local stack = armor_inv:get_stack("armor", i)
if stack:get_count() > 0 then if stack:get_count() > 0 then
table.insert(drop, stack) table.insert(drop, stack)
armor:set_inventory_stack(player, i, nil)
armor:run_callbacks("on_unequip", player, i, stack) armor:run_callbacks("on_unequip", player, i, stack)
armor_inv:set_stack("armor", i, nil)
end end
end end
armor:save_armor_inventory(player)
armor:set_player_armor(player) armor:set_player_armor(player)
local pos = player:getpos() local pos = player:get_pos()
if pos and armor.config.destroy == false then if pos and armor.config.destroy == false then
minetest.after(armor.config.bones_delay, function() minetest.after(armor.config.bones_delay, function()
local meta = nil local meta = nil
@ -287,7 +375,6 @@ minetest.register_on_player_hpchange(function(player, hp_change)
local name = player:get_player_name() local name = player:get_player_name()
if name then if name then
local heal = armor.def[name].heal local heal = armor.def[name].heal
heal = heal * armor.config.heal_multiplier
if heal >= math.random(100) then if heal >= math.random(100) then
hp_change = 0 hp_change = 0
end end
@ -308,7 +395,7 @@ minetest.register_globalstep(function(dtime)
local remove = init_player_armor(player) == true local remove = init_player_armor(player) == true
pending_players[player] = count + 1 pending_players[player] = count + 1
if remove == false and count > armor.config.init_times then if remove == false and count > armor.config.init_times then
minetest.log("warning", "3d_armor: Failed to initialize player") minetest.log("warning", S("3d_armor: Failed to initialize player"))
remove = true remove = true
end end
if remove == true then if remove == true then
@ -329,7 +416,7 @@ if armor.config.fire_protect == true then
end end
end end
else else
print ("[3d_armor] Fire Nodes disabled") print (S("[3d_armor] Fire Nodes disabled"))
end end
if armor.config.water_protect == true or armor.config.fire_protect == true then if armor.config.water_protect == true or armor.config.fire_protect == true then
@ -340,7 +427,7 @@ if armor.config.water_protect == true or armor.config.fire_protect == true then
end end
for _,player in pairs(minetest.get_connected_players()) do for _,player in pairs(minetest.get_connected_players()) do
local name = player:get_player_name() local name = player:get_player_name()
local pos = player:getpos() local pos = player:get_pos()
local hp = player:get_hp() local hp = player:get_hp()
if not name or not pos or not hp then if not name or not pos or not hp then
return return

45
3d_armor/intllib.lua Normal file
View File

@ -0,0 +1,45 @@
-- Fallback functions for when `intllib` is not installed.
-- Code released under Unlicense <http://unlicense.org>.
-- Get the latest version of this file at:
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
local function format(str, ...)
local args = { ... }
local function repl(escape, open, num, close)
if escape == "" then
local replacement = tostring(args[tonumber(num)])
if open == "" then
replacement = replacement..close
end
return replacement
else
return "@"..open..num..close
end
end
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
end
local gettext, ngettext
if minetest.get_modpath("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
gettext, ngettext = intllib.make_gettext_pair()
else
-- Old method using text files.
gettext = intllib.Getter()
end
end
-- Fill in missing functions.
gettext = gettext or function(msgid, ...)
return format(msgid, ...)
end
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
return format(n==1 and msgid or msgid_plural, ...)
end
return gettext, ngettext

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"

295
3d_armor/locale/fr.po Normal file
View File

@ -0,0 +1,295 @@
# 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: 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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"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: Detached armor inventory is nil @1"
msgstr "3d_armor : Inventaire détaché pour l'armure non trouvé @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Casque d'admin"
#: ../3d_armor/armor.lua
msgid "Admin Chestplate"
msgstr "Cuirasse d'admin"
#: ../3d_armor/armor.lua
msgid "Admin Leggings"
msgstr "Jambières d'admin"
#: ../3d_armor/armor.lua
msgid "Admin Boots"
msgstr "Bottes d'admin"
#: ../3d_armor/armor.lua
msgid "Wood Helmet"
msgstr "Casque en bois"
#: ../3d_armor/armor.lua
msgid "Wood Chestplate"
msgstr "Cuirasse en bois"
#: ../3d_armor/armor.lua
msgid "Wood Leggings"
msgstr "Jambières en bois"
#: ../3d_armor/armor.lua
msgid "Wood Boots"
msgstr "Bottes en bois"
#: ../3d_armor/armor.lua
msgid "Cactus Helmet"
msgstr "Casque en cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Chestplate"
msgstr "Cuirasse en cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Leggings"
msgstr "Jambières en cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Boots"
msgstr "Bottes en cactus"
#: ../3d_armor/armor.lua
msgid "Steel Helmet"
msgstr "Casque en acier"
#: ../3d_armor/armor.lua
msgid "Steel Chestplate"
msgstr " = Cuirasse en acier"
#: ../3d_armor/armor.lua
msgid "Steel Leggings"
msgstr "Jambières en acier"
#: ../3d_armor/armor.lua
msgid "Steel Boots"
msgstr "Bottes en acier"
#: ../3d_armor/armor.lua
msgid "Bronze Helmet"
msgstr "Casque en bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Chestplate"
msgstr "Cuirasse en bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Leggings"
msgstr "Jambières en bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Boots"
msgstr "Bottes en bronze"
#: ../3d_armor/armor.lua
msgid "Diamond Helmet"
msgstr "Casque en diamant"
#: ../3d_armor/armor.lua
msgid "Diamond Chestplate"
msgstr "Cuirasse en diamant"
#: ../3d_armor/armor.lua
msgid "Diamond Leggings"
msgstr "Jambières en diamant"
#: ../3d_armor/armor.lua
msgid "Diamond Boots"
msgstr "Bottes en diamant"
#: ../3d_armor/armor.lua
msgid "Gold Helmet"
msgstr "Casque en or"
#: ../3d_armor/armor.lua
msgid "Gold Chestplate"
msgstr "Cuirasse en or"
#: ../3d_armor/armor.lua
msgid "Gold Leggings"
msgstr "Jambières en or"
#: ../3d_armor/armor.lua
msgid "Gold Boots"
msgstr "Bottes en or"
#: ../3d_armor/armor.lua
msgid "Mithril Helmet"
msgstr "Casque en mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Chestplate"
msgstr "Cuirasse en mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Leggings"
msgstr "Jambières en mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Boots"
msgstr "Bottes en mithril"
#: ../3d_armor/armor.lua
msgid "Crystal Helmet"
msgstr "Casque en cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Chestplate"
msgstr "Cuirasse en cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Leggings"
msgstr "Jambières en cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Boots"
msgstr "Bottes en cristal"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Radiation"
msgstr "Radiation"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Level"
msgstr "Niveau"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Heal"
msgstr "Soins"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Fire"
msgstr "Fire"
#: ../3d_armor/init.lua
msgid "Your @1 got destroyed!"
msgstr "Une partie de votre armure a été détruite : @1 !"
#: ../3d_armor/init.lua
msgid "3d_armor: Failed to initialize player"
msgstr "3d_armor : Impossible d'initialiser le joueur"
#: ../3d_armor/init.lua
msgid "[3d_armor] Fire Nodes disabled"
msgstr "[3d_armor] Noeuds de type feu désactivés"
#: ../3d_armor_ip/init.lua
msgid "3d_armor_ip: Mod loaded but unused."
msgstr "3d_armor_ip : Mod chargé mais inutilisé."
#: ../3d_armor_ip/init.lua
msgid "Back"
msgstr "Retour"
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
msgid "Armor"
msgstr "Armure"
#: ../3d_armor_sfinv/init.lua
msgid "3d_armor_sfinv: Mod loaded but unused."
msgstr "3d_armor_sfinv : Mod chargé mais inutilisé."
#: ../3d_armor_stand/init.lua
msgid "Armor stand top"
msgstr "Haut de support d'armure"
#: ../3d_armor_stand/init.lua
msgid "Armor stand"
msgstr "Support d'armure"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand"
msgstr "Support d'armure"
#: ../3d_armor_stand/init.lua
msgid "Locked Armor stand"
msgstr "Support d'armure verrouillé"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand (owned by @1)"
msgstr "Support d'armure (propriété de @1)"
#: ../3d_armor_ui/init.lua
msgid "3d_armor_ui: Mod loaded but unused."
msgstr "3d_armor_ui : Mod chargé mais inutilisé."
#: ../3d_armor_ui/init.lua
msgid "3d Armor"
msgstr "Armure 3d"
#: ../3d_armor_ui/init.lua
msgid "Armor not initialized!"
msgstr "Armure non initialisée !"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Bouclier d'admin"
#: ../shields/init.lua
msgid "Wooden Shield"
msgstr "Bouclier en bois"
#: ../shields/init.lua
msgid "Enhanced Wood Shield"
msgstr "Bouclier en bois amélioré"
#: ../shields/init.lua
msgid "Cactus Shield"
msgstr "Bouclier en cactus"
#: ../shields/init.lua
msgid "Enhanced Cactus Shield"
msgstr "Bouclier en cactus amélioré"
#: ../shields/init.lua
msgid "Steel Shield"
msgstr "Bouclier en acier"
#: ../shields/init.lua
msgid "Bronze Shield"
msgstr "Bouclier en bronze"
#: ../shields/init.lua
msgid "Diamond Shield"
msgstr "Bouclier en diamant"
#: ../shields/init.lua
msgid "Gold Shield"
msgstr "Bouclier en or"
#: ../shields/init.lua
msgid "Mithril Shield"
msgstr "Bouclier en mithril"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "Bouclier en cristal"

295
3d_armor/locale/it.po Normal file
View File

@ -0,0 +1,295 @@
# 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: 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"
"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"
"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: Detached armor inventory is nil @1"
msgstr "3d_armor: L'inventario staccato dell'armatura è nullo @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Elmo dell'amministratrice/tore"
#: ../3d_armor/armor.lua
msgid "Admin Chestplate"
msgstr "Corazza dell'amministratrice/tore"
#: ../3d_armor/armor.lua
msgid "Admin Leggings"
msgstr "Gambali dell'amministratrice/tore"
#: ../3d_armor/armor.lua
msgid "Admin Boots"
msgstr "Stivali dell'amministratrice/tore"
#: ../3d_armor/armor.lua
msgid "Wood Helmet"
msgstr "Elmo di legno"
#: ../3d_armor/armor.lua
msgid "Wood Chestplate"
msgstr "Corazza di legno"
#: ../3d_armor/armor.lua
msgid "Wood Leggings"
msgstr "Gambali di legno"
#: ../3d_armor/armor.lua
msgid "Wood Boots"
msgstr "Stivali di legno"
#: ../3d_armor/armor.lua
msgid "Cactus Helmet"
msgstr "Elmo di cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Chestplate"
msgstr "Corazza di cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Leggings"
msgstr "Gambali di cactus"
#: ../3d_armor/armor.lua
msgid "Cactus Boots"
msgstr "Stivali di cactus"
#: ../3d_armor/armor.lua
msgid "Steel Helmet"
msgstr "Elmo di acciaio"
#: ../3d_armor/armor.lua
msgid "Steel Chestplate"
msgstr "Corazza di acciaio"
#: ../3d_armor/armor.lua
msgid "Steel Leggings"
msgstr "Gambali di acciaio"
#: ../3d_armor/armor.lua
msgid "Steel Boots"
msgstr "Stivali di acciaio"
#: ../3d_armor/armor.lua
msgid "Bronze Helmet"
msgstr "Elmo di bronzo"
#: ../3d_armor/armor.lua
msgid "Bronze Chestplate"
msgstr "Corazza di bronzo"
#: ../3d_armor/armor.lua
msgid "Bronze Leggings"
msgstr "Gambali di bronzo"
#: ../3d_armor/armor.lua
msgid "Bronze Boots"
msgstr "Stivali di bronzo"
#: ../3d_armor/armor.lua
msgid "Diamond Helmet"
msgstr "Elmo di diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Chestplate"
msgstr "Corazza di diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Leggings"
msgstr "Gambali di diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Boots"
msgstr "Stivali di diamante"
#: ../3d_armor/armor.lua
msgid "Gold Helmet"
msgstr "Elmo d'oro"
#: ../3d_armor/armor.lua
msgid "Gold Chestplate"
msgstr "Corazza d'oro"
#: ../3d_armor/armor.lua
msgid "Gold Leggings"
msgstr "Gambali d'oro"
#: ../3d_armor/armor.lua
msgid "Gold Boots"
msgstr "Stivali d'oro"
#: ../3d_armor/armor.lua
msgid "Mithril Helmet"
msgstr "Elmo di mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Chestplate"
msgstr "Corazza di mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Leggings"
msgstr "Gambali di mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Boots"
msgstr "Stivali di mithril"
#: ../3d_armor/armor.lua
msgid "Crystal Helmet"
msgstr "Elmo di cristallo"
#: ../3d_armor/armor.lua
msgid "Crystal Chestplate"
msgstr "Corazza di cristallo"
#: ../3d_armor/armor.lua
msgid "Crystal Leggings"
msgstr "Gambali di cristallo"
#: ../3d_armor/armor.lua
msgid "Crystal Boots"
msgstr "Stivali di cristallo"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Radiation"
msgstr "Radiazione"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Level"
msgstr "Livello"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Heal"
msgstr "Guarigione"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Fire"
msgstr "Fuoco"
#: ../3d_armor/init.lua
msgid "Your @1 got destroyed!"
msgstr "Il/i vostro/i @1 è/sono stato/i distrutto/i!"
#: ../3d_armor/init.lua
msgid "3d_armor: Failed to initialize player"
msgstr "3d_armor: Inizializzazione della/del giocatrice/tore fallita"
#: ../3d_armor/init.lua
msgid "[3d_armor] Fire Nodes disabled"
msgstr "[3d_armor] Nodi fuoco disabilitati"
#: ../3d_armor_ip/init.lua
msgid "3d_armor_ip: Mod loaded but unused."
msgstr "3d_armor_ip: Mod caricato ma inutilizzato."
#: ../3d_armor_ip/init.lua
msgid "Back"
msgstr "Indietro"
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
msgid "Armor"
msgstr "Armatura"
#: ../3d_armor_sfinv/init.lua
msgid "3d_armor_sfinv: Mod loaded but unused."
msgstr "3d_armor_sfinv: Mod caricato ma inutilizzato."
#: ../3d_armor_stand/init.lua
msgid "Armor stand top"
msgstr "Parte superiore del supporto per armatura"
#: ../3d_armor_stand/init.lua
msgid "Armor stand"
msgstr "Supporto per armatura"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand"
msgstr "Supporto per armatura"
#: ../3d_armor_stand/init.lua
msgid "Locked Armor stand"
msgstr "Supporto per armatura chiuso a chiave"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand (owned by @1)"
msgstr "Supporto per armatura (di proprietà di @1)"
#: ../3d_armor_ui/init.lua
msgid "3d_armor_ui: Mod loaded but unused."
msgstr "3d_armor_ui: Mod caricato ma inutilizzato."
#: ../3d_armor_ui/init.lua
msgid "3d Armor"
msgstr "Armatura 3D"
#: ../3d_armor_ui/init.lua
msgid "Armor not initialized!"
msgstr "Armatura non inizializzata!"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Scudo dell'amministratrice/tore"
#: ../shields/init.lua
msgid "Wooden Shield"
msgstr "Scudo di legno"
#: ../shields/init.lua
msgid "Enhanced Wood Shield"
msgstr "Scudo di legno migliorato"
#: ../shields/init.lua
msgid "Cactus Shield"
msgstr "Scudo di cactus"
#: ../shields/init.lua
msgid "Enhanced Cactus Shield"
msgstr "Scudo di cactus migliorato"
#: ../shields/init.lua
msgid "Steel Shield"
msgstr "Scudo di acciaio"
#: ../shields/init.lua
msgid "Bronze Shield"
msgstr "Scudo di bronzo"
#: ../shields/init.lua
msgid "Diamond Shield"
msgstr "Scudo di diamante"
#: ../shields/init.lua
msgid "Gold Shield"
msgstr "Scudo d'oro"
#: ../shields/init.lua
msgid "Mithril Shield"
msgstr "Scudo di mithril"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "Scudo di cristallo"

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"

295
3d_armor/locale/pt.po Normal file
View File

@ -0,0 +1,295 @@
# 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.
# BrunoMine <borgesdossantosbruno@gmail.com>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: 3d_armor\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
"PO-Revision-Date: 2018-11-08 13:12-0200\n"
"Language-Team: \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"
"Last-Translator: BrunoMine <borgesdossantosbruno@gmail.com>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: pt\n"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: Referência Jogador é nula @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player name is nil @1"
msgstr "3d_armor: Nome de jogador é nulo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor: Inventario avulso de armadura é nulo @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Capacete de Administrador"
#: ../3d_armor/armor.lua
msgid "Admin Chestplate"
msgstr "Peitoral de Administrador"
#: ../3d_armor/armor.lua
msgid "Admin Leggings"
msgstr "Calças de Administrador"
#: ../3d_armor/armor.lua
msgid "Admin Boots"
msgstr "Botas de Administrador"
#: ../3d_armor/armor.lua
msgid "Wood Helmet"
msgstr "Capacete de Madeira"
#: ../3d_armor/armor.lua
msgid "Wood Chestplate"
msgstr "Peitoral de Madeira"
#: ../3d_armor/armor.lua
msgid "Wood Leggings"
msgstr "Calças de Madeira"
#: ../3d_armor/armor.lua
msgid "Wood Boots"
msgstr "Botas de Madeira"
#: ../3d_armor/armor.lua
msgid "Cactus Helmet"
msgstr "Capacete de Cacto"
#: ../3d_armor/armor.lua
msgid "Cactus Chestplate"
msgstr "Peitoral de Cacto"
#: ../3d_armor/armor.lua
msgid "Cactus Leggings"
msgstr "Calças de Cacto"
#: ../3d_armor/armor.lua
msgid "Cactus Boots"
msgstr "Botas de Madeira"
#: ../3d_armor/armor.lua
msgid "Steel Helmet"
msgstr "Capacete de Aço"
#: ../3d_armor/armor.lua
msgid "Steel Chestplate"
msgstr "Peitoral de Aço"
#: ../3d_armor/armor.lua
msgid "Steel Leggings"
msgstr "Calças de Aço"
#: ../3d_armor/armor.lua
msgid "Steel Boots"
msgstr "Botas de Aço"
#: ../3d_armor/armor.lua
msgid "Bronze Helmet"
msgstr "Capacete de Bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Chestplate"
msgstr "Peitoral de Bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Leggings"
msgstr "Calças de Bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Boots"
msgstr "Botas de Bronze"
#: ../3d_armor/armor.lua
msgid "Diamond Helmet"
msgstr "Capacete de Diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Chestplate"
msgstr "Peitoral de Diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Leggings"
msgstr "Calças de Diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Boots"
msgstr "Botas de Diamante"
#: ../3d_armor/armor.lua
msgid "Gold Helmet"
msgstr "Capacete de Ouro"
#: ../3d_armor/armor.lua
msgid "Gold Chestplate"
msgstr "Peitoral de Ouro"
#: ../3d_armor/armor.lua
msgid "Gold Leggings"
msgstr "Calças de Ouro"
#: ../3d_armor/armor.lua
msgid "Gold Boots"
msgstr "Botas de Ouro"
#: ../3d_armor/armor.lua
msgid "Mithril Helmet"
msgstr "Capacete de Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Chestplate"
msgstr "Peitoral de Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Leggings"
msgstr "Calças de Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Boots"
msgstr "Botas de Mithril"
#: ../3d_armor/armor.lua
msgid "Crystal Helmet"
msgstr "Capacete de Cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Chestplate"
msgstr "Peitoral de Cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Leggings"
msgstr "Calças 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 "Radiação"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Level"
msgstr "Nível"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Heal"
msgstr "Saúde"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Fire"
msgstr "Fogo"
#: ../3d_armor/init.lua
msgid "Your @1 got destroyed!"
msgstr "@1 foi destruído(a)!"
#: ../3d_armor/init.lua
msgid "3d_armor: Failed to initialize player"
msgstr "3d_armor: Falha ao inicializar jogador"
#: ../3d_armor/init.lua
msgid "[3d_armor] Fire Nodes disabled"
msgstr "[3d_armor] Nodes de gofo desabilitados"
#: ../3d_armor_ip/init.lua
msgid "3d_armor_ip: Mod loaded but unused."
msgstr "3d_armor_ip: Mod carregado mas inoperante."
#: ../3d_armor_ip/init.lua
msgid "Back"
msgstr "Voltar"
#: ../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 carregado mas inoperante."
#: ../3d_armor_stand/init.lua
msgid "Armor stand top"
msgstr "Topo de estande de armadura"
#: ../3d_armor_stand/init.lua
msgid "Armor stand"
msgstr "Estande de armadura"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand"
msgstr "Estande de Armadura"
#: ../3d_armor_stand/init.lua
msgid "Locked Armor stand"
msgstr "Estande de Armadura Trancada"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand (owned by @1)"
msgstr "Estande de Armadura (pertente a @1)"
#: ../3d_armor_ui/init.lua
msgid "3d_armor_ui: Mod loaded but unused."
msgstr "3d_armor_ui: Mod carregado mas inoperante."
#: ../3d_armor_ui/init.lua
msgid "3d Armor"
msgstr "3d Armor"
#: ../3d_armor_ui/init.lua
msgid "Armor not initialized!"
msgstr "Armadura não inicializada!"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Escudo de Administrador"
#: ../shields/init.lua
msgid "Wooden Shield"
msgstr "Escudo de Madeira"
#: ../shields/init.lua
msgid "Enhanced Wood Shield"
msgstr "Escudo de Madeira Melhorado"
#: ../shields/init.lua
msgid "Cactus Shield"
msgstr "Escudo de Cacto"
#: ../shields/init.lua
msgid "Enhanced Cactus Shield"
msgstr "Escudo de Cacto Melhorado"
#: ../shields/init.lua
msgid "Steel Shield"
msgstr "Escudo de Aço"
#: ../shields/init.lua
msgid "Bronze Shield"
msgstr "Escudo de Bronze"
#: ../shields/init.lua
msgid "Diamond Shield"
msgstr "Escudo de Diamante"
#: ../shields/init.lua
msgid "Gold Shield"
msgstr "Escudo de Ouro"
#: ../shields/init.lua
msgid "Mithril Shield"
msgstr "Escudo de Mithril"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "Escudo de Cristal"

295
3d_armor/locale/pt_BR.po Normal file
View File

@ -0,0 +1,295 @@
# 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.
# BrunoMine <borgesdossantosbruno@gmail.com>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: 3d_armor\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
"PO-Revision-Date: 2018-11-08 13:12-0200\n"
"Language-Team: \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"
"Last-Translator: BrunoMine <borgesdossantosbruno@gmail.com>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: pt_BR\n"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: Referência Jogador é nula @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player name is nil @1"
msgstr "3d_armor: Nome de jogador é nulo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor: Inventario avulso de armadura é nulo @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Capacete de Administrador"
#: ../3d_armor/armor.lua
msgid "Admin Chestplate"
msgstr "Peitoral de Administrador"
#: ../3d_armor/armor.lua
msgid "Admin Leggings"
msgstr "Calças de Administrador"
#: ../3d_armor/armor.lua
msgid "Admin Boots"
msgstr "Botas de Administrador"
#: ../3d_armor/armor.lua
msgid "Wood Helmet"
msgstr "Capacete de Madeira"
#: ../3d_armor/armor.lua
msgid "Wood Chestplate"
msgstr "Peitoral de Madeira"
#: ../3d_armor/armor.lua
msgid "Wood Leggings"
msgstr "Calças de Madeira"
#: ../3d_armor/armor.lua
msgid "Wood Boots"
msgstr "Botas de Madeira"
#: ../3d_armor/armor.lua
msgid "Cactus Helmet"
msgstr "Capacete de Cacto"
#: ../3d_armor/armor.lua
msgid "Cactus Chestplate"
msgstr "Peitoral de Cacto"
#: ../3d_armor/armor.lua
msgid "Cactus Leggings"
msgstr "Calças de Cacto"
#: ../3d_armor/armor.lua
msgid "Cactus Boots"
msgstr "Botas de Madeira"
#: ../3d_armor/armor.lua
msgid "Steel Helmet"
msgstr "Capacete de Aço"
#: ../3d_armor/armor.lua
msgid "Steel Chestplate"
msgstr "Peitoral de Aço"
#: ../3d_armor/armor.lua
msgid "Steel Leggings"
msgstr "Calças de Aço"
#: ../3d_armor/armor.lua
msgid "Steel Boots"
msgstr "Botas de Aço"
#: ../3d_armor/armor.lua
msgid "Bronze Helmet"
msgstr "Capacete de Bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Chestplate"
msgstr "Peitoral de Bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Leggings"
msgstr "Calças de Bronze"
#: ../3d_armor/armor.lua
msgid "Bronze Boots"
msgstr "Botas de Bronze"
#: ../3d_armor/armor.lua
msgid "Diamond Helmet"
msgstr "Capacete de Diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Chestplate"
msgstr "Peitoral de Diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Leggings"
msgstr "Calças de Diamante"
#: ../3d_armor/armor.lua
msgid "Diamond Boots"
msgstr "Botas de Diamante"
#: ../3d_armor/armor.lua
msgid "Gold Helmet"
msgstr "Capacete de Ouro"
#: ../3d_armor/armor.lua
msgid "Gold Chestplate"
msgstr "Peitoral de Ouro"
#: ../3d_armor/armor.lua
msgid "Gold Leggings"
msgstr "Calças de Ouro"
#: ../3d_armor/armor.lua
msgid "Gold Boots"
msgstr "Botas de Ouro"
#: ../3d_armor/armor.lua
msgid "Mithril Helmet"
msgstr "Capacete de Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Chestplate"
msgstr "Peitoral de Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Leggings"
msgstr "Calças de Mithril"
#: ../3d_armor/armor.lua
msgid "Mithril Boots"
msgstr "Botas de Mithril"
#: ../3d_armor/armor.lua
msgid "Crystal Helmet"
msgstr "Capacete de Cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Chestplate"
msgstr "Peitoral de Cristal"
#: ../3d_armor/armor.lua
msgid "Crystal Leggings"
msgstr "Calças 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 "Radiação"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Level"
msgstr "Nível"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Heal"
msgstr "Saúde"
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
msgid "Fire"
msgstr "Fogo"
#: ../3d_armor/init.lua
msgid "Your @1 got destroyed!"
msgstr "@1 foi destruído(a)!"
#: ../3d_armor/init.lua
msgid "3d_armor: Failed to initialize player"
msgstr "3d_armor: Falha ao inicializar jogador"
#: ../3d_armor/init.lua
msgid "[3d_armor] Fire Nodes disabled"
msgstr "[3d_armor] Nodes de gofo desabilitados"
#: ../3d_armor_ip/init.lua
msgid "3d_armor_ip: Mod loaded but unused."
msgstr "3d_armor_ip: Mod carregado mas inoperante."
#: ../3d_armor_ip/init.lua
msgid "Back"
msgstr "Voltar"
#: ../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 carregado mas inoperante."
#: ../3d_armor_stand/init.lua
msgid "Armor stand top"
msgstr "Topo de estande de armadura"
#: ../3d_armor_stand/init.lua
msgid "Armor stand"
msgstr "Estande de armadura"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand"
msgstr "Estande de Armadura"
#: ../3d_armor_stand/init.lua
msgid "Locked Armor stand"
msgstr "Estande de Armadura Trancada"
#: ../3d_armor_stand/init.lua
msgid "Armor Stand (owned by @1)"
msgstr "Estande de Armadura (pertente a @1)"
#: ../3d_armor_ui/init.lua
msgid "3d_armor_ui: Mod loaded but unused."
msgstr "3d_armor_ui: Mod carregado mas inoperante."
#: ../3d_armor_ui/init.lua
msgid "3d Armor"
msgstr "3d Armor"
#: ../3d_armor_ui/init.lua
msgid "Armor not initialized!"
msgstr "Armadura não inicializada!"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Escudo de Administrador"
#: ../shields/init.lua
msgid "Wooden Shield"
msgstr "Escudo de Madeira"
#: ../shields/init.lua
msgid "Enhanced Wood Shield"
msgstr "Escudo de Madeira Melhorado"
#: ../shields/init.lua
msgid "Cactus Shield"
msgstr "Escudo de Cacto"
#: ../shields/init.lua
msgid "Enhanced Cactus Shield"
msgstr "Escudo de Cacto Melhorado"
#: ../shields/init.lua
msgid "Steel Shield"
msgstr "Escudo de Aço"
#: ../shields/init.lua
msgid "Bronze Shield"
msgstr "Escudo de Bronze"
#: ../shields/init.lua
msgid "Diamond Shield"
msgstr "Escudo de Diamante"
#: ../shields/init.lua
msgid "Gold Shield"
msgstr "Escudo de Ouro"
#: ../shields/init.lua
msgid "Mithril Shield"
msgstr "Escudo de Mithril"
#: ../shields/init.lua
msgid "Crystal Shield"
msgstr "Escudo de Cristal"

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

@ -0,0 +1,294 @@
# 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
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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"
"Language: \n"
"MIME-Version: 1.0\n"
"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: Detached armor inventory is nil @1"
msgstr ""
#: ../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 ""
#: ../3d_armor/init.lua
msgid "3d_armor: Failed to initialize player"
msgstr ""
#: ../3d_armor/init.lua
msgid "[3d_armor] Fire Nodes disabled"
msgstr ""
#: ../3d_armor_ip/init.lua
msgid "3d_armor_ip: Mod loaded but unused."
msgstr ""
#: ../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_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 ""
#: ../3d_armor_ui/init.lua
msgid "3d_armor_ui: Mod loaded but unused."
msgstr ""
#: ../3d_armor_ui/init.lua
msgid "3d Armor"
msgstr ""
#: ../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

Before

Width:  |  Height:  |  Size: 349 B

After

Width:  |  Height:  |  Size: 349 B

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

24
3d_armor/tools/updatepo.sh Executable file
View File

@ -0,0 +1,24 @@
#! /bin/bash
# To create a new translation:
# msginit --locale=ll_CC -o locale/ll_CC.po -i locale/template.pot
cd "$(dirname "${BASH_SOURCE[0]}")/..";
# Extract translatable strings.
xgettext --from-code=UTF-8 \
--language=Lua \
--sort-by-file \
--keyword=S \
--keyword=NS:1,2 \
--keyword=N_ \
--add-comments='Translators:' \
--add-location=file \
-o locale/template.pot \
$(find .. -name '*.lua')
# Update translations.
find locale -name '*.po' | while read -r file; do
echo $file
msgmerge --update $file locale/template.pot;
done

View File

@ -1,5 +1,5 @@
[mod] 3d Armor integration to inventory plus [3d_armor_ip] [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,9 +1,13 @@
-- support for i18n
local S = armor_i18n.gettext
local F = minetest.formspec_escape
if not minetest.global_exists("inventory_plus") then if not minetest.global_exists("inventory_plus") then
minetest.log("warning", "3d_armor_ip: Mod loaded but unused.") minetest.log("warning", S("3d_armor_ip: Mod loaded but unused."))
return return
end end
armor.formspec = "size[8,8.5]button[6,0;2,0.5;main;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) armor:register_on_update(function(player)
local name = player:get_player_name() local name = player:get_player_name()
local formspec = armor:get_armor_formspec(name, true) local formspec = armor:get_armor_formspec(name, true)
@ -19,7 +23,7 @@ if minetest.get_modpath("crafting") then
end end
minetest.register_on_joinplayer(function(player) minetest.register_on_joinplayer(function(player)
inventory_plus.register_button(player,"armor", "Armor") inventory_plus.register_button(player,"armor", S("Armor"))
end) end)
minetest.register_on_player_receive_fields(function(player, formname, fields) minetest.register_on_player_receive_fields(function(player, formname, fields)

View File

@ -1,5 +1,5 @@
[mod] 3d Armor sfinv integration [3d_armor_sfinv] [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,10 +1,13 @@
-- support for i18n
local S = armor_i18n.gettext
if not minetest.global_exists("sfinv") then if not minetest.global_exists("sfinv") then
minetest.log("warning", "3d_armor_sfinv: Mod loaded but unused.") minetest.log("warning", S("3d_armor_sfinv: Mod loaded but unused."))
return return
end end
sfinv.register_page("3d_armor:armor", { sfinv.register_page("3d_armor:armor", {
title = "Armor", title = S("Armor"),
get = function(self, player, context) get = function(self, player, context)
local name = player:get_player_name() local name = player:get_player_name()
local formspec = armor:get_armor_formspec(name, true) local formspec = armor:get_armor_formspec(name, true)

View File

@ -1,9 +1,9 @@
[mod] 3d Armor Stand [3d_armor_stand] [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) UV model mapping by tobyplowy(aka toby109tt)

View File

@ -1,13 +1,6 @@
local S = function(s) return s end -- support for i18n
if minetest.global_exists("intllib") then local S = armor_i18n.gettext
if intllib.make_gettext_pair then
-- New method using gettext.
S = intllib.make_gettext_pair()
else
-- Old method using text files.
S = intllib.Getter()
end
end
local armor_stand_formspec = "size[8,7]" .. local armor_stand_formspec = "size[8,7]" ..
default.gui_bg .. default.gui_bg ..
default.gui_bg_img .. default.gui_bg_img ..
@ -82,8 +75,11 @@ local function update_entity(pos)
local def = stack:get_definition() or {} local def = stack:get_definition() or {}
local groups = def.groups or {} local groups = def.groups or {}
if groups["armor_"..element] then if groups["armor_"..element] then
local texture = def.texture or item:gsub("%:", "_") if def.texture then
table.insert(textures, texture..".png") table.insert(textures, def.texture)
else
table.insert(textures, item:gsub("%:", "_")..".png")
end
end end
end end
end end
@ -172,7 +168,7 @@ minetest.register_node("3d_armor_stand:armor_stand", {
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", armor_stand_formspec) meta:set_string("formspec", armor_stand_formspec)
meta:set_string("infotext", "Armor Stand") meta:set_string("infotext", S("Armor Stand"))
local inv = meta:get_inventory() local inv = meta:get_inventory()
for _, element in pairs(elements) do for _, element in pairs(elements) do
inv:set_size("armor_"..element, 1) inv:set_size("armor_"..element, 1)
@ -240,7 +236,7 @@ minetest.register_node("3d_armor_stand:locked_armor_stand", {
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", armor_stand_formspec) meta:set_string("formspec", armor_stand_formspec)
meta:set_string("infotext", "Armor Stand") meta:set_string("infotext", S("Armor Stand"))
meta:set_string("owner", "") meta:set_string("owner", "")
local inv = meta:get_inventory() local inv = meta:get_inventory()
for _, element in pairs(elements) do for _, element in pairs(elements) do
@ -261,8 +257,7 @@ minetest.register_node("3d_armor_stand:locked_armor_stand", {
minetest.add_entity(pos, "3d_armor_stand:armor_entity") minetest.add_entity(pos, "3d_armor_stand:armor_entity")
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("owner", placer:get_player_name() or "") meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Armor Stand (owned by " .. meta:set_string("infotext", S("Armor Stand (owned by @1)", meta:get_string("owner")))
meta:get_string("owner") .. ")")
add_hidden_node(pos, placer) add_hidden_node(pos, placer)
end, end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player) allow_metadata_inventory_put = function(pos, listname, index, stack, player)
@ -312,7 +307,7 @@ minetest.register_entity("3d_armor_stand:armor_entity", {
pos = nil, pos = nil,
timer = 0, timer = 0,
on_activate = function(self) on_activate = function(self)
local pos = self.object:getpos() local pos = self.object:get_pos()
if pos then if pos then
self.pos = vector.round(pos) self.pos = vector.round(pos)
update_entity(pos) update_entity(pos)
@ -329,6 +324,18 @@ minetest.register_entity("3d_armor_stand:armor_entity", {
end, end,
}) })
minetest.register_abm({
nodenames = {"3d_armor_stand:locked_armor_stand", "3d_armor_stand:armor_stand"},
interval = 15,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local num
num = #minetest.get_objects_inside_radius(pos, 0.5)
if num > 0 then return end
update_entity(pos)
end
})
minetest.register_craft({ minetest.register_craft({
output = "3d_armor_stand:armor_stand", output = "3d_armor_stand:armor_stand",
recipe = { recipe = {
@ -344,4 +351,3 @@ minetest.register_craft({
{"3d_armor_stand:armor_stand", "default:steel_ingot"}, {"3d_armor_stand:armor_stand", "default:steel_ingot"},
} }
}) })

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] [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,17 +1,12 @@
-- support for i18n
local S = armor_i18n.gettext
local F = minetest.formspec_escape
local has_technic = minetest.get_modpath("technic") ~= nil
if not minetest.global_exists("unified_inventory") then if not minetest.global_exists("unified_inventory") then
minetest.log("warning", "3d_armor_ui: Mod loaded but unused.") minetest.log("warning", S("3d_armor_ui: Mod loaded but unused."))
return return
end end
local S = function(s) return s end
if minetest.global_exists("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
S = intllib.make_gettext_pair()
else
-- Old method using text files.
S = intllib.Getter()
end
end
if unified_inventory.sfinv_compat_layer then if unified_inventory.sfinv_compat_layer then
return return
@ -27,6 +22,7 @@ end)
unified_inventory.register_button("armor", { unified_inventory.register_button("armor", {
type = "image", type = "image",
image = "inventory_plus_armor.png", image = "inventory_plus_armor.png",
tooltip = S("3d Armor")
}) })
unified_inventory.register_page("armor", { unified_inventory.register_page("armor", {
@ -34,23 +30,23 @@ unified_inventory.register_page("armor", {
local fy = perplayer_formspec.formspec_y local fy = perplayer_formspec.formspec_y
local name = player:get_player_name() local name = player:get_player_name()
if armor.def[name].init_time == 0 then if armor.def[name].init_time == 0 then
return {formspec="label[0,0;Armor not initialized!]"} return {formspec="label[0,0;"..F(S("Armor not initialized!")).."]"}
end end
local formspec = "background[0.06,"..fy..";7.92,7.52;3d_armor_ui_form.png]".. local formspec = "background[0.06,"..fy..";7.92,7.52;3d_armor_ui_form.png]"..
"label[0,0;Armor]".. "label[0,0;"..F(S("Armor")).."]"..
"list[detached:"..name.."_armor;armor;0,"..fy..";2,3;]".. "list[detached:"..name.."_armor;armor;0,"..fy..";2,3;]"..
"image[2.5,"..(fy - 0.25)..";2,4;"..armor.textures[name].preview.."]".. "image[2.5,"..(fy - 0.25)..";2,4;"..armor.textures[name].preview.."]"..
"label[5.0,"..(fy + 0.0)..";"..S("Level")..": "..armor.def[name].level.."]".. "label[5.0,"..(fy + 0.0)..";"..F(S("Level"))..": "..armor.def[name].level.."]"..
"label[5.0,"..(fy + 0.5)..";"..S("Heal")..": "..armor.def[name].heal.."]".. "label[5.0,"..(fy + 0.5)..";"..F(S("Heal"))..": "..armor.def[name].heal.."]"..
"listring[current_player;main]".. "listring[current_player;main]"..
"listring[detached:"..name.."_armor;armor]" "listring[detached:"..name.."_armor;armor]"
if armor.config.fire_protect then if armor.config.fire_protect then
formspec = formspec.."label[5.0,"..(fy + 1.0)..";".. formspec = formspec.."label[5.0,"..(fy + 1.0)..";"..
S("Fire")..": "..armor.def[name].fire.."]" F(S("Fire"))..": "..armor.def[name].fire.."]"
end end
if minetest.global_exists("technic") then if has_technic then
formspec = formspec.."label[5.0,"..(fy + 1.5)..";".. formspec = formspec.."label[5.0,"..(fy + 1.5)..";"..
S("Radiation")..": "..armor.def[name].groups["radiation"].."]" F(S("Radiation"))..": "..armor.def[name].groups["radiation"].."]"
end end
return {formspec=formspec} return {formspec=formspec}
end, end,

View File

@ -1,9 +1,9 @@
3D Armor - Visible Player Armor 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. Special credit to Jordach and MirceaKitsune for providing the default 3d character model.

View File

@ -1,5 +1,5 @@
Modpack - 3d Armor [0.4.9] Modpack - 3d Armor [0.4.13]
========================== ===========================
### Table of Contents ### Table of Contents
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- START doctoc generated TOC please keep comment here to allow auto update -->
@ -9,8 +9,6 @@ Modpack - 3d Armor [0.4.9]
- [[mod] Visible Player Armor [3d_armor]](#mod-visible-player-armor-3d_armor) - [[mod] Visible Player Armor [3d_armor]](#mod-visible-player-armor-3d_armor)
- [[mod] Visible Wielded Items [wieldview]](#mod-visible-wielded-items-wieldview) - [[mod] Visible Wielded Items [wieldview]](#mod-visible-wielded-items-wieldview)
- [[mod] Shields [shields]](#mod-shields-shields) - [[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] 3d Armor Stand [3d_armor_stand]](#mod-3d-armor-stand-3d_armor_stand)
<!-- END doctoc generated TOC please keep comment here to allow auto update --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->
@ -19,7 +17,7 @@ Modpack - 3d Armor [0.4.9]
[mod] Visible Player Armor [3d_armor] [mod] Visible Player Armor [3d_armor]
------------------------------------- -------------------------------------
Minetest Version: 0.4.16 Minetest Version: 5.0.0
Game: minetest_game and many derivatives Game: minetest_game and many derivatives
@ -46,6 +44,8 @@ and [simple_skins] by TenPlus1.
Armor can be configured by adding a file called armor.conf in 3d_armor mod or world directory. Armor can be configured by adding a file called armor.conf in 3d_armor mod or world directory.
see armor.conf.example for all available options. see armor.conf.example for all available options.
For mod installation instructions, please visit: http://wiki.minetest.com/wiki/Installing_Mods
[mod] Visible Wielded Items [wieldview] [mod] Visible Wielded Items [wieldview]
--------------------------------------- ---------------------------------------
@ -61,23 +61,6 @@ Depends: 3d_armor
Originally a part of 3d_armor, shields have been re-included as an optional extra. 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. 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] [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 +0,0 @@
Adds hazmat suit (protects from water, fire and radiation) to 3d_armor.

View File

@ -1,112 +0,0 @@
if not minetest.get_modpath("technic") then
minetest.log("warning", "hazmat_suit: Mod loaded but unused.")
return
end
local S = function(s) return s end
if minetest.global_exists("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
S = intllib.make_gettext_pair()
else
-- Old method using text files.
S = intllib.Getter()
end
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

65
settingtypes.txt Normal file
View File

@ -0,0 +1,65 @@
[3d_armor]
armor_material_wood (Enable wood armor) bool true
armor_material_cactus (Enable cactus armor) bool true
armor_material_steel (Enable steel armor) bool true
armor_material_bronze (Enable bronze armor) bool true
armor_material_diamond (Enable diamond armor) bool true
armor_material_gold (Enable gold armor) bool true
armor_material_mithril (Enable mithril armor) bool true
armor_material_crystal (Enable crystal armor) bool true
# Increase this if you get initialization glitches when a player first joins.
armor_init_delay (Initialization delay) int 2
# Number of initialization attempts.
# Use in conjunction with armor_init_delay if initialization problems persist.
armor_init_times (Initialization attempts) int 10
# Increase this if armor is not getting into bones due to server lag.
armor_bones_delay (Delay for bones) int 1
# How often player armor items are updated.
armor_update_time (Armor refresh rate [seconds]) int 1
# Drop armor when a player dies.
# Uses bones mod if present, otherwise items are dropped around the player.
armor_drop (Drop armor on death) bool true
# Pulverize armor when a player dies, overrides armor_drop.
armor_destroy (Pulverize armor on death) bool false
# You can use this to increase or decrease overall armor effectiveness,
# eg: level_multiplier = 0.5 will reduce armor level by half.
armor_level_multiplier (Armor effectiveness multiplier) float 1
# You can use this to increase or decrease overall armor healing,
# eg: armor_heal_multiplier = 0 will disable healing altogether.
armor_heal_multiplier (Armor healing multiplier) float 1
# Enable water protection (periodically restores breath when activated).
armor_water_protect (Enable water protection) bool true
# Enable fire protection (defaults true if using ethereal mod).
armor_fire_protect (Enable fire protection) bool false
# Enable punch damage effects.
armor_punch_damage (Enable damage effects) bool true
# Enable migration of old armor inventories.
armor_migrate_old_inventory (Migrate old armor inventories) bool true
[shields]
shields_disable_sounds (Disable shield sounds) bool false
[wieldview]
# Set number of seconds between visible wielded item updates.
wieldview_update_time (Wieldview refresh rate [seconds]) int 2
# Show nodes as tiles, disabled by default.
wieldview_node_tiles (Show nodes as tiles) bool false

View File

@ -1,8 +1,8 @@
[mod] Shields [shields] [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 https://github.com/daviddoesminetest/3d-armors-new-textures

View File

@ -1,19 +1,11 @@
local S = function(s) return s end -- support for i18n
if minetest.global_exists("intllib") then local S = armor_i18n.gettext
if intllib.make_gettext_pair then
-- New method using gettext.
S = intllib.make_gettext_pair()
else
-- Old method using text files.
S = intllib.Getter()
end
end
local disable_sounds = minetest.settings:get_bool("shields_disable_sounds") local disable_sounds = minetest.settings:get_bool("shields_disable_sounds")
local use_moreores = minetest.get_modpath("moreores") local use_moreores = minetest.get_modpath("moreores")
local function play_sound_effect(player, name) local function play_sound_effect(player, name)
if not disable_sounds and player then if not disable_sounds and player then
local pos = player:getpos() local pos = player:get_pos()
if pos then if pos then
minetest.sound_play(name, { minetest.sound_play(name, {
pos = pos, pos = pos,

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 +0,0 @@
Adds tin, silver and technic materials to 3d_armor.

View File

@ -1,71 +0,0 @@
if not minetest.get_modpath("technic_worldgen") then
minetest.log("warning", "technic_armor: Mod loaded but unused.")
return
end
local S = function(s) return s end
if minetest.global_exists("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
S = intllib.make_gettext_pair()
else
-- Old method using text files.
S = intllib.Getter()
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
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, {
description = 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

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