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

24 Commits

Author SHA1 Message Date
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
153 changed files with 1789 additions and 423 deletions

View File

@ -1,4 +1,7 @@
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 armor_def = setmetatable({}, { local armor_def = setmetatable({}, {
@ -39,7 +42,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 +73,7 @@ armor = {
on_destroy = {}, on_destroy = {},
}, },
migrate_old_inventory = true, migrate_old_inventory = true,
version = "0.4.9", version = "0.4.11",
} }
armor.config = { armor.config = {
@ -157,22 +160,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].skin,
self.textures[name].armor, self.textures[name].armor,
self.textures[name].wielditem, 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 +182,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
@ -389,6 +383,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!]"
@ -470,7 +487,7 @@ armor.set_inventory_stack = function(self, player, i, stack)
local msg = "[set_inventory_stack]" local msg = "[set_inventory_stack]"
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 armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"}) local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"})
@ -485,17 +502,17 @@ 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

@ -5,4 +5,3 @@ fire?
ethereal? ethereal?
bakedclay? bakedclay?
intllib? intllib?
multiskin?

View File

@ -1,13 +1,13 @@
local S = function(s) return s end -- support for i18n
if minetest.global_exists("intllib") then armor_i18n = { }
if intllib.make_gettext_pair then local MP = minetest.get_modpath(minetest.get_current_modname())
-- New method using gettext. armor_i18n.gettext, armor_i18n.ngettext = dofile(MP.."/intllib.lua")
S = intllib.make_gettext_pair() -- escaping formspec
else armor_i18n.fgettext = function(...) return minetest.formspec_escape(armor_i18n.gettext(...)) end
-- Old method using text files. -- local functions
S = intllib.Getter() local S = armor_i18n.gettext
end local F = armor_i18n.fgettext
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()
@ -65,14 +65,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("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,17 +96,16 @@ 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("Level")..": armor_level]"..
"label[5,1.5;"..S("Heal")..": armor_attr_heal]" "label[5,1.5;"..F("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("Fire")..": armor_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)
@ -174,13 +184,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")
if texture_path then
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) armor:set_player_armor(player)
end, player)
return true return true
end end
@ -189,10 +210,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 +224,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)
@ -308,7 +344,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 +365,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

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/fr.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.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-06 18:20+0200\n"
"PO-Revision-Date: 2017-08-06 18:20+0200\n"
"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 name is nil @1"
msgstr "3d_armor : Nom du joueur non trouvé @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player inventory is nil @1"
msgstr "3d_armor : Inventaire du joueur non trouvé @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor : Inventaire détaché pour l'armure non trouvé @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor : Référence au joueur non trouvée @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Casque d'admin"
#: ../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 !"
#: ../hazmat_suit/init.lua
msgid "hazmat_suit: Mod loaded but unused."
msgstr "hazmat_suit : Mod chargé mais non utilisé."
#: ../hazmat_suit/init.lua
msgid "Hazmat Helmet"
msgstr "Casque 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Chestplate"
msgstr "Cuirasse 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Sleeve"
msgstr "Manches 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Leggins"
msgstr "Jambières 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Boots"
msgstr "Bottes 'Hazmat'"
#: ../hazmat_suit/init.lua
msgid "Hazmat Suit"
msgstr "Combinaison 'Hazmat'"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Bouclier d'admin"
#: ../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"
#: ../technic_armor/init.lua
msgid "technic_armor: Mod loaded but unused."
msgstr "technic_armor : Mod chargé mais non utilisé."
#: ../technic_armor/init.lua
msgid "Lead"
msgstr "plomb"
#: ../technic_armor/init.lua
msgid "Brass"
msgstr "laiton"
#: ../technic_armor/init.lua
msgid "Cast Iron"
msgstr "fonte"
#: ../technic_armor/init.lua
msgid "Carbon Steel"
msgstr "acier au carbone"
#: ../technic_armor/init.lua
msgid "Stainless Steel"
msgstr "acier inoxydable"
#: ../technic_armor/init.lua
msgid "Tin"
msgstr "étain"
#: ../technic_armor/init.lua
msgid "Silver"
msgstr "argent"
#: ../technic_armor/init.lua
msgid "Helmet"
msgstr "Casque"
#: ../technic_armor/init.lua
msgid "Chestplate"
msgstr "Cuirasse"
#: ../technic_armor/init.lua
msgid "Leggings"
msgstr "Jambières"
#: ../technic_armor/init.lua
msgid "Boots"
msgstr "Bottes"
#: ../technic_armor/init.lua
msgid "Shield"
msgstr "Bouclier"
#. Translators: @1 stands for material and @2 for part of the armor, so that you could use a conjunction if in your language part name comes first then material (e.g. in french 'Silver Boots' is translated in 'Bottes en argent' by using '@2 en @1' as translated string)
#: ../technic_armor/init.lua
msgid "@1 @2"
msgstr "@2 en @1"

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

@ -0,0 +1,384 @@
# ITALIAN LOCALE FILE FOR THE 3D ARMOR MODULE
# Copyright (C) 2012-2017 Stuart Jones
# This file is distributed under the same license as the 3D ARMOR package.
# Hamlet <h4mlet@riseup.net>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Italian localization file for the 3D Armor module\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-06 18:20+0200\n"
"PO-Revision-Date: 2017-08-18 00:36+0100\n"
"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 name is nil @1"
msgstr "3d_armor: Il nome della/del gicatrice/tore è nullo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player inventory is nil @1"
msgstr "3d_armor: L'inventario della/del giocatrice/tore è nullo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr "3d_armor: L'inventario staccato dell'armatura è nullo @1"
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: Il riferimento alla/al giocatrice/tore è nullo @1"
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr "Elmo dell'amministratrice/tore"
#: ../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!"
#: ../hazmat_suit/init.lua
msgid "hazmat_suit: Mod loaded but unused."
msgstr "hazmat_suit: Mod caricato ma inutilizzato."
#: ../hazmat_suit/init.lua
msgid "Hazmat Helmet"
msgstr "Elmo hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Chestplate"
msgstr "Corazza hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Sleeve"
msgstr "Manica hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Leggins"
msgstr "Gambali hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Boots"
msgstr "Stivali hazmat"
#: ../hazmat_suit/init.lua
msgid "Hazmat Suit"
msgstr "Completo hazmat"
#: ../shields/init.lua
msgid "Admin Shield"
msgstr "Scudo dell'amministratrice/tore"
#: ../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"
#: ../technic_armor/init.lua
msgid "technic_armor: Mod loaded but unused."
msgstr "technic_armor: Mod caricato ma inutilizzato."
#: ../technic_armor/init.lua
msgid "Lead"
msgstr "Piombo"
#: ../technic_armor/init.lua
msgid "Brass"
msgstr "Ottone"
#: ../technic_armor/init.lua
msgid "Cast Iron"
msgstr "Ghisa"
#: ../technic_armor/init.lua
msgid "Carbon Steel"
msgstr "Acciaio al carbonio"
#: ../technic_armor/init.lua
msgid "Stainless Steel"
msgstr "Acciaio inossidabile"
#: ../technic_armor/init.lua
msgid "Tin"
msgstr "Stagno"
#: ../technic_armor/init.lua
msgid "Silver"
msgstr "Argento"
#: ../technic_armor/init.lua
msgid "Helmet"
msgstr "Elmo"
#: ../technic_armor/init.lua
msgid "Chestplate"
msgstr "Corazza"
#: ../technic_armor/init.lua
msgid "Leggings"
msgstr "Gambali"
#: ../technic_armor/init.lua
msgid "Boots"
msgstr "Stivali"
#: ../technic_armor/init.lua
msgid "Shield"
msgstr "Scudo"
#. Translators: @1 stands for material and @2 for part of the armor, so that you could use a conjunction if in your language part name comes first then material (e.g. in french 'Silver Boots' is translated in 'Bottes en argent' by using '@2 en @1' as translated string)
#: ../technic_armor/init.lua
msgid "@1 @2"
msgstr "@2 di @1"

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

@ -0,0 +1,386 @@
# 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.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-06 18:20+0200\n"
"PO-Revision-Date: 2018-02-07 13:25+0800\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: MuhdNurHidayat (MNH48) <mnh48mail@gmail.com>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"Language: ms\n"
#: ../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: Player inventory is nil @1"
msgstr "3d_armor: Inventori 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/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr "3d_armor: Rujukan pemain 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!"
#: ../hazmat_suit/init.lua
msgid "hazmat_suit: Mod loaded but unused."
msgstr "hazmat_suit: Mods dimuatkan tetapi tidak digunakan."
#: ../hazmat_suit/init.lua
msgid "Hazmat Helmet"
msgstr "Helmet Keselamatan"
#: ../hazmat_suit/init.lua
msgid "Hazmat Chestplate"
msgstr "Perisai Dada Keselamatan"
#: ../hazmat_suit/init.lua
msgid "Hazmat Sleeve"
msgstr "Perisai Tangan Keselamatan"
#: ../hazmat_suit/init.lua
msgid "Hazmat Leggins"
msgstr "Perisai Kaki Keselamatan"
#: ../hazmat_suit/init.lua
msgid "Hazmat Boots"
msgstr "But Keselamatan"
#: ../hazmat_suit/init.lua
msgid "Hazmat Suit"
msgstr "Pakaian Keselamatan"
#: ../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"
#: ../technic_armor/init.lua
msgid "technic_armor: Mod loaded but unused."
msgstr "technic_armor: Mods dimuatkan tetapi tidak digunakan."
# 'Lead' here is the chemical compound so the translation is 'plumbum', not 'pimpin' (act of leading).
#: ../technic_armor/init.lua
msgid "Lead"
msgstr "Plumbum"
#: ../technic_armor/init.lua
msgid "Brass"
msgstr "Loyang"
#: ../technic_armor/init.lua
msgid "Cast Iron"
msgstr "Besi Tuang"
#: ../technic_armor/init.lua
msgid "Carbon Steel"
msgstr "Keluli Karbon"
#: ../technic_armor/init.lua
msgid "Stainless Steel"
msgstr "Keluli Tahan Karat"
#: ../technic_armor/init.lua
msgid "Tin"
msgstr "Timah"
#: ../technic_armor/init.lua
msgid "Silver"
msgstr "Perak"
#: ../technic_armor/init.lua
msgid "Helmet"
msgstr "Helmet"
#: ../technic_armor/init.lua
msgid "Chestplate"
msgstr "Perisai Dada"
#: ../technic_armor/init.lua
msgid "Leggings"
msgstr "Perisai Kaki"
#: ../technic_armor/init.lua
msgid "Boots"
msgstr "But"
#: ../technic_armor/init.lua
msgid "Shield"
msgstr "Perisai Pegang"
#. 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 @1"

View File

@ -0,0 +1,383 @@
# 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: \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 name is nil @1"
msgstr ""
#: ../3d_armor/api.lua
msgid "3d_armor: Player inventory is nil @1"
msgstr ""
#: ../3d_armor/api.lua
msgid "3d_armor: Detached armor inventory is nil @1"
msgstr ""
#: ../3d_armor/api.lua
msgid "3d_armor: Player reference is nil @1"
msgstr ""
#: ../3d_armor/armor.lua
msgid "Admin Helmet"
msgstr ""
#: ../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 ""
#: ../hazmat_suit/init.lua
msgid "hazmat_suit: Mod loaded but unused."
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Helmet"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Chestplate"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Sleeve"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Leggins"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Boots"
msgstr ""
#: ../hazmat_suit/init.lua
msgid "Hazmat Suit"
msgstr ""
#: ../shields/init.lua
msgid "Admin Shield"
msgstr ""
#: ../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 ""
#: ../technic_armor/init.lua
msgid "technic_armor: Mod loaded but unused."
msgstr ""
#: ../technic_armor/init.lua
msgid "Lead"
msgstr ""
#: ../technic_armor/init.lua
msgid "Brass"
msgstr ""
#: ../technic_armor/init.lua
msgid "Cast Iron"
msgstr ""
#: ../technic_armor/init.lua
msgid "Carbon Steel"
msgstr ""
#: ../technic_armor/init.lua
msgid "Stainless Steel"
msgstr ""
#: ../technic_armor/init.lua
msgid "Tin"
msgstr ""
#: ../technic_armor/init.lua
msgid "Silver"
msgstr ""
#: ../technic_armor/init.lua
msgid "Helmet"
msgstr ""
#: ../technic_armor/init.lua
msgid "Chestplate"
msgstr ""
#: ../technic_armor/init.lua
msgid "Leggings"
msgstr ""
#: ../technic_armor/init.lua
msgid "Boots"
msgstr ""
#: ../technic_armor/init.lua
msgid "Shield"
msgstr ""
#. Translators: @1 stands for material and @2 for part of the armor, so that you could use a conjunction if in your language part name comes first then material (e.g. in french 'Silver Boots' is translated in 'Bottes en argent' by using '@2 en @1' as translated string)
#: ../technic_armor/init.lua
msgid "@1 @2"
msgstr ""

View File

Before

Width:  |  Height:  |  Size: 349 B

After

Width:  |  Height:  |  Size: 349 B

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

@ -0,0 +1,25 @@
#! /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_ \
--keyword=F \
--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 = armor_i18n.fgettext
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("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 ..
@ -172,7 +165,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 +233,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 +254,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)
@ -329,6 +321,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 +348,3 @@ minetest.register_craft({
{"3d_armor_stand:armor_stand", "default:steel_ingot"}, {"3d_armor_stand:armor_stand", "default:steel_ingot"},
} }
}) })

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,11 @@
-- support for i18n
local S = armor_i18n.gettext
local F = armor_i18n.fgettext
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 +21,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 +29,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("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("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("Level")..": "..armor.def[name].level.."]"..
"label[5.0,"..(fy + 0.5)..";"..S("Heal")..": "..armor.def[name].heal.."]".. "label[5.0,"..(fy + 0.5)..";"..F("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("Fire")..": "..armor.def[name].fire.."]"
end end
if minetest.global_exists("technic") then if minetest.global_exists("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("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.11]
========================== ===========================
### 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 -->
@ -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

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

@ -7,10 +7,3 @@ 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 what shields then simply remove the shields folder from the modpack. If you do not what shields then simply remove the shields folder from the modpack.
Shields Configuration
---------------------
Override the following default settings by adding them to your minetest.conf file.
shields_disable_sounds = false

View File

@ -1,22 +1,14 @@
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 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 player then
local pos = player:getpos() local pos = player:getpos()
if pos then if pos then
minetest.sound_play(name, { minetest.sound_play({
pos = pos, pos = pos,
name = name,
max_hear_distance = 10, max_hear_distance = 10,
gain = 0.5, gain = 0.5,
}) })
@ -36,6 +28,15 @@ armor:register_armor("shields:shield_admin", {
description = S("Admin Shield"), description = S("Admin Shield"),
inventory_image = "shields_inv_shield_admin.png", inventory_image = "shields_inv_shield_admin.png",
groups = {armor_shield=1000, armor_heal=100, armor_use=0, not_in_creative_inventory=1}, groups = {armor_shield=1000, armor_heal=100, armor_use=0, not_in_creative_inventory=1},
on_punched = function(player, hitter, time_from_last_punch, tool_capabilities)
if type(hitter) == "userdata" then
if hitter:is_player() then
hitter:set_wielded_item("")
end
play_sound_effect(player, "default_dig_metal")
end
return false
end,
}) })
minetest.register_alias("adminshield", "shields:shield_admin") minetest.register_alias("adminshield", "shields:shield_admin")

View File

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

View File

@ -1,9 +0,0 @@
[mod] Technic Armor [technic_armor]
===================================
Adds tin, silver and technic materials to 3d_armor.
Requires technic (technic_worldgen at least) mod.
Depends: 3d_armor, technic_worldgen
Textures by poet.nohit and numberZero

View File

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

View File

@ -1 +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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

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