6 Commits

Author SHA1 Message Date
Bradley Pierce
8f775a64f0 Rework armor stand inventories (#165)
This change makes armor stands only have one inventory list instead of four, thereby allowing the user to shift-click items back and forth. There is no visual difference in the formspec, and each piece of armor still has its own dedicated slot. An LBM is used to update the inventories of previous armor stands.
2025-09-06 08:06:39 +02:00
SmallJoker
dbe0a9276a Prevent switching pages when using sfinv
Previously, 3d_armor would issue an inventory update
even if the 3d_armor page wasn't shown..
2025-06-24 21:14:27 +02:00
EmptyStar
dbc891a711 Fix crash when right-clicking to equip a seventh armor element with a full armor inventory (#163) 2025-06-07 00:46:28 +02:00
BlackImpostor
a79d1383aa Russian Capitalization (#162)
* Update 3d_armor.ru.tr

* Create 3d_armor_ip.ru.tr

* Create 3d_armor_sfinv.ru.tr

* Create 3d_armor_ui.ru.tr

* Update 'Fire'

* Capitalization in armor_admin.ru.tr

* Capitalization in armor_bronze.ru.tr

* Capitalization in armor_cactus.ru.tr

* Capitalization in armor_crystal.ru.tr

* Capitalization in armor_diamond.ru.tr

* Capitalization in armor_gold.ru.tr

* Capitalization in armor_mithril.ru.tr

* Capitalization in armor_nether.ru.tr

* Capitalization in armor_steel.ru.tr

* Capitalization in armor_wood.ru.tr

* Capitalization in shields.ru.tr
2025-05-28 17:59:13 +02:00
BlackImpostor
220cbc8d92 Update 3d_armor_stand.ru.tr (#161) 2025-05-27 07:03:33 +02:00
TarasArt
8fe014e6d3 Add Ukrainian localization (#160) 2025-05-07 20:00:30 +02:00
184 changed files with 328 additions and 341 deletions

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@
*bak*
tags
*.vim
armor.conf
## Eclipse project files & directories
.project

View File

@@ -694,6 +694,9 @@ armor.equip = function(self, player, itemstack)
index = i
end
end
if not index then -- armor inventory is full with other armor elements
return itemstack
end
local stack = itemstack:take_item()
armor_inv:set_stack("armor", index, stack)
self:run_callbacks("on_equip", player, index, stack)

View File

@@ -1,37 +0,0 @@
-- Armor Configuration (defaults)
-- Increase this if you get initialization glitches when a player first joins.
ARMOR_INIT_DELAY = 3
-- Number of initialization attempts.
-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist.
ARMOR_INIT_TIMES = 3
-- Increase this if armor is not getting into bones due to server lag.
ARMOR_BONES_DELAY = 3
-- How often player armor/wield items are updated.
ARMOR_UPDATE_TIME = 1
-- Drop armor when a player dies.
-- Uses bones mod if present, otherwise items are dropped around the player.
ARMOR_DROP = true
-- Pulverise armor when a player dies, overrides ARMOR_DROP.
ARMOR_DESTROY = false
-- You can use this to increase or decrease overall armor effectiveness,
-- eg: ARMOR_LEVEL_MULTIPLIER = 0.5 will reduce armor level by half.
ARMOR_LEVEL_MULTIPLIER = 1
-- You can use this to increase or decrease overall armor healing,
-- eg: ARMOR_HEAL_MULTIPLIER = 0 will disable healing altogether.
ARMOR_HEAL_MULTIPLIER = 1
-- You can also use this file to execute arbitary lua code
-- eg: Dumb the armor down if using Simple Mobs
--if minetest.get_modpath("mobs") then
-- ARMOR_LEVEL_MULTIPLIER = 1
-- ARMOR_HEAL_MULTIPLIER = 0
--end

View File

@@ -500,5 +500,3 @@ if armor.config.fire_protect == true then
return hp_change
end, true)
end
minetest.log("action", "[3d_armor] loaded.")

View File

@@ -1,7 +1,7 @@
# textdomain: 3d_armor
Radiation=излучение
Level=уровень
Heal=исцеление
Fire=огонь
Your @1 is almost broken!=
Your @1 got destroyed!=твой(и) @1 был(и) разрушен(ы)!
Radiation=Излучение
Level=Уровень
Heal=Исцеление
Fire=Пламя
Your @1 is almost broken!=Ваш предмет «@1» почти сломан!
Your @1 got destroyed!=Ваш предмет «@1» был уничтожен!

View File

@@ -0,0 +1,7 @@
# textdomain: 3d_armor
Radiation=Радіація
Level=Рівень
Heal=Зцілення
Fire=Вогонь
Your @1 is almost broken!=Ваш @1 майже зламаний!
Your @1 got destroyed!=Ваш(і) @1 був(ли) зламаний(і)!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 B

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 571 B

View File

@@ -0,0 +1,3 @@
# textdomain: 3d_armor_ip
Back=Назад
Armor=Броня

View File

@@ -0,0 +1,3 @@
# textdomain: 3d_armor_ip
Back=Назад
Armor=Броня

View File

@@ -15,7 +15,7 @@ sfinv.register_page("3d_armor:armor", {
end
})
armor:register_on_update(function(player)
if sfinv.enabled then
if sfinv.enabled and sfinv.get_page(player) == "3d_armor:armor" then
sfinv.set_player_inventory_formspec(player)
end
end)

View File

@@ -0,0 +1,2 @@
# textdomain: 3d_armor_sfinv
Armor=Броня

View File

@@ -0,0 +1,2 @@
# textdomain: 3d_armor_sfinv
Armor=Броня

View File

@@ -6,27 +6,27 @@ local armor_stand_formspec = "size[8,7]" ..
default.gui_bg_img ..
default.gui_slots ..
default.get_hotbar_bg(0,3) ..
"list[current_name;armor_head;3,0.5;1,1;]" ..
"list[current_name;armor_torso;4,0.5;1,1;]" ..
"list[current_name;armor_legs;3,1.5;1,1;]" ..
"list[current_name;armor_feet;4,1.5;1,1;]" ..
"list[current_name;main;3,0.5;2,1;]" ..
"list[current_name;main;3,1.5;2,1;2]" ..
"image[3,0.5;1,1;3d_armor_stand_head.png]" ..
"image[4,0.5;1,1;3d_armor_stand_torso.png]" ..
"image[3,1.5;1,1;3d_armor_stand_legs.png]" ..
"image[4,1.5;1,1;3d_armor_stand_feet.png]" ..
"list[current_player;main;0,3;8,1;]" ..
"list[current_player;main;0,4.25;8,3;8]"
"list[current_player;main;0,4.25;8,3;8]" ..
"listring[current_name;main]" ..
"listring[current_player;main]"
local elements = {"head", "torso", "legs", "feet"}
local function drop_armor(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
for _, element in pairs(elements) do
local stack = inv:get_stack("armor_"..element, 1)
for i = 1, 4 do
local stack = inv:get_stack("main", i)
if stack and stack:get_count() > 0 then
armor.drop_armor(pos, stack)
inv:set_stack("armor_"..element, 1, nil)
inv:set_stack("main", i, nil)
end
end
end
@@ -68,8 +68,8 @@ local function update_entity(pos)
local inv = meta:get_inventory()
local yaw = 0
if inv then
for _, element in pairs(elements) do
local stack = inv:get_stack("armor_"..element, 1)
for i, element in ipairs(elements) do
local stack = inv:get_stack("main", i)
if stack:get_count() == 1 then
local item = stack:get_name() or ""
local def = stack:get_definition() or {}
@@ -149,236 +149,139 @@ minetest.register_node("3d_armor_stand:top", {
tiles = {"blank.png"},
})
minetest.register_node("3d_armor_stand:armor_stand", {
description = S("Armor Stand"),
drawtype = "mesh",
mesh = "3d_armor_stand.obj",
tiles = {"3d_armor_stand.png"},
use_texture_alpha = "clip",
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
selection_box = {
type = "fixed",
fixed = {
{-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25},
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
},
},
groups = {choppy=2, oddly_breakable_by_hand=2},
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", armor_stand_formspec)
meta:set_string("infotext", S("Armor Stand"))
local inv = meta:get_inventory()
for _, element in pairs(elements) do
inv:set_size("armor_"..element, 1)
local function register_armor_stand(def)
local function owns_armor_stand(pos, meta, player)
if def.name == "locked_armor_stand" and not has_locked_armor_stand_privilege(meta, player) then
return false
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
for _, element in pairs(elements) do
if not inv:is_empty("armor_"..element) then
return false
end
local has_access = minetest.is_player(player) and not minetest.is_protected(pos, player:get_player_name())
if def.name == "shared_armor_stand" and not has_access then
return false
end
return true
end,
after_place_node = function(pos, placer)
minetest.add_entity(pos, "3d_armor_stand:armor_entity")
add_hidden_node(pos, placer)
end,
allow_metadata_inventory_put = function(pos, listname, index, stack)
local def = stack:get_definition() or {}
local groups = def.groups or {}
if groups[listname] then
end
minetest.register_node("3d_armor_stand:" .. def.name, {
description = def.description,
drawtype = "mesh",
mesh = "3d_armor_stand.obj",
tiles = {def.texture},
use_texture_alpha = "clip",
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
selection_box = {
type = "fixed",
fixed = {
{-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25},
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
},
},
groups = {choppy=2, oddly_breakable_by_hand=2},
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", armor_stand_formspec)
meta:set_string("infotext", def.description)
if def.name == "locked_armor_stand" then
meta:set_string("owner", "")
end
local inv = meta:get_inventory()
inv:set_size("main", 4)
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if not inv:is_empty("main") then
return false
end
return true
end,
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
minetest.add_entity(pos, "3d_armor_stand:armor_entity")
if def.name == "locked_armor_stand" then
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", S("Armor Stand (owned by @1)", meta:get_string("owner")))
elseif def.name == "shared_armor_stand" then
meta:set_string("infotext", def.description)
end
add_hidden_node(pos, placer)
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not owns_armor_stand(pos, meta, player) then
return 0
end
local inv = meta:get_inventory()
local stack_def = stack:get_definition() or {}
local groups = stack_def.groups or {}
for i, element in ipairs(elements) do
if groups["armor_"..element] and inv:get_stack(listname, i):is_empty() then
return 1
end
end
return 0
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not owns_armor_stand(pos, meta, player) then
return 0
end
return 1
end
return 0
end,
allow_metadata_inventory_move = function(pos)
return 0
end,
on_metadata_inventory_put = function(pos)
update_entity(pos)
end,
on_metadata_inventory_take = function(pos)
update_entity(pos)
end,
after_destruct = function(pos)
update_entity(pos)
remove_hidden_node(pos)
end,
end,
allow_metadata_inventory_move = function(pos)
return 0
end,
on_metadata_inventory_put = function(pos, listname, index, stack)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local stack_def = stack:get_definition() or {}
local groups = stack_def.groups or {}
for i, element in ipairs(elements) do
if groups["armor_"..element] then
inv:set_stack(listname, i, stack)
if index ~= i then
inv:set_stack(listname, index, nil)
end
break
end
end
update_entity(pos)
end,
on_metadata_inventory_take = function(pos)
update_entity(pos)
end,
after_destruct = function(pos)
update_entity(pos)
remove_hidden_node(pos)
end,
on_blast = def.on_blast
})
end
register_armor_stand({
name = "armor_stand",
description = S("Armor Stand"),
texture = "3d_armor_stand.png",
on_blast = function(pos)
drop_armor(pos)
armor.drop_armor(pos, "3d_armor_stand:armor_stand")
minetest.remove_node(pos)
end,
end
})
minetest.register_node("3d_armor_stand:locked_armor_stand", {
register_armor_stand({
name = "locked_armor_stand",
description = S("Locked Armor Stand"),
drawtype = "mesh",
mesh = "3d_armor_stand.obj",
tiles = {"3d_armor_stand_locked.png"},
use_texture_alpha = "clip",
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
selection_box = {
type = "fixed",
fixed = {
{-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25},
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
},
},
groups = {choppy=2, oddly_breakable_by_hand=2},
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", armor_stand_formspec)
meta:set_string("infotext", S("Armor Stand"))
meta:set_string("owner", "")
local inv = meta:get_inventory()
for _, element in pairs(elements) do
inv:set_size("armor_"..element, 1)
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
for _, element in pairs(elements) do
if not inv:is_empty("armor_"..element) then
return false
end
end
return true
end,
after_place_node = function(pos, placer)
minetest.add_entity(pos, "3d_armor_stand:armor_entity")
local meta = minetest.get_meta(pos)
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", S("Armor Stand (owned by @1)", meta:get_string("owner")))
add_hidden_node(pos, placer)
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not has_locked_armor_stand_privilege(meta, player) then
return 0
end
local def = stack:get_definition() or {}
local groups = def.groups or {}
if groups[listname] then
return 1
end
return 0
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not has_locked_armor_stand_privilege(meta, player) then
return 0
end
return stack:get_count()
end,
allow_metadata_inventory_move = function(pos)
return 0
end,
on_metadata_inventory_put = function(pos)
update_entity(pos)
end,
on_metadata_inventory_take = function(pos)
update_entity(pos)
end,
after_destruct = function(pos)
update_entity(pos)
remove_hidden_node(pos)
end,
on_blast = function(pos)
-- Not affected by TNT
end,
texture = "3d_armor_stand_locked.png"
})
minetest.register_node("3d_armor_stand:shared_armor_stand", {
register_armor_stand({
name = "shared_armor_stand",
description = S("Shared Armor Stand"),
drawtype = "mesh",
mesh = "3d_armor_stand.obj",
tiles = {"3d_armor_stand_shared.png"},
use_texture_alpha = "clip",
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
selection_box = {
type = "fixed",
fixed = {
{-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25},
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
},
},
groups = {choppy=2, oddly_breakable_by_hand=2},
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", armor_stand_formspec)
meta:set_string("infotext", S("Shared Armor Stand"))
local inv = meta:get_inventory()
for _, element in pairs(elements) do
inv:set_size("armor_"..element, 1)
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
for _, element in pairs(elements) do
if not inv:is_empty("armor_"..element) then
return false
end
end
return true
end,
after_place_node = function(pos, placer)
minetest.add_entity(pos, "3d_armor_stand:armor_entity")
local meta = minetest.get_meta(pos)
meta:set_string("infotext", S("Shared Armor Stand"))
add_hidden_node(pos, placer)
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
if not minetest.is_player(player) or minetest.is_protected(pos, player:get_player_name()) then
return 0
end
local def = stack:get_definition() or {}
local groups = def.groups or {}
if groups[listname] then
return 1
end
return 0
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
if not minetest.is_player(player) or minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end,
allow_metadata_inventory_move = function(pos)
return 0
end,
on_metadata_inventory_put = function(pos)
update_entity(pos)
end,
on_metadata_inventory_take = function(pos)
update_entity(pos)
end,
after_destruct = function(pos)
update_entity(pos)
remove_hidden_node(pos)
end,
on_blast = function(pos)
-- Not affected by TNT
end,
texture = "3d_armor_stand_shared.png"
})
minetest.register_entity("3d_armor_stand:armor_entity", {
@@ -421,6 +324,32 @@ minetest.register_abm({
end
})
minetest.register_lbm({
label = "Update armor stand inventories",
name = "3d_armor_stand:update_inventories",
nodenames = {"3d_armor_stand:locked_armor_stand", "3d_armor_stand:shared_armor_stand", "3d_armor_stand:armor_stand"},
run_at_every_load = false,
action = function(pos, node)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local lists = inv:get_lists()
for _, element in pairs(elements) do
if not lists["armor_"..element] then
-- Abort to avoid item loss in case env_meta.txt is corrupted/deleted
return
end
end
inv:set_lists({main = {
lists.armor_head[1],
lists.armor_torso[1],
lists.armor_legs[1],
lists.armor_feet[1]
}})
meta:set_string("formspec", armor_stand_formspec)
update_entity(pos)
end
})
minetest.register_craft({
output = "3d_armor_stand:armor_stand",
recipe = {
@@ -443,5 +372,3 @@ minetest.register_craft({
{"3d_armor_stand:armor_stand", "default:copper_ingot"},
}
})
minetest.log("action", "[3d_armor_stand] loaded.")

View File

@@ -1,5 +1,6 @@
# textdomain: 3d_armor_stand
Armor Stand Top=верх стойки для брони
Armor Stand=стойка для брони
Locked Armor Stand=стойка для брони с замком
Armor Stand (owned by @1)=стойка для бони (владелец @1)
Armor Stand Top=Верх Стойки для Брони
Armor Stand=Стойка для Брони
Locked Armor Stand=Заблокированная Стойка для Брони
Shared Armor Stand=Публичная Стойка для Брони
Armor Stand (owned by @1)=Стойка для Брони (владалец: @1)

View File

@@ -0,0 +1,5 @@
# textdomain: 3d_armor_stand
Armor Stand Top=Верх Стійки для Броні
Armor Stand=Стійка для Броні
Locked Armor Stand=Закрита Стійка для Броні
Armor Stand (owned by @1)=Стійка для Броні (власник @1)

View File

@@ -43,9 +43,6 @@ unified_inventory.register_page("armor", {
"image[3.5,"..(fy - 0.25)..";2,4;"..armor.textures[name].preview.."]"..
"label[6.0,"..(fy + 0.0)..";"..F(S("Level"))..": "..armor.def[name].level.."]"..
"label[6.0,"..(fy + 0.5)..";"..F(S("Heal"))..": "..armor.def[name].heal.."]"..
"label[6.0,"..(fy + 2.0)..";"..F(S("Speed"))..": "..armor.def[name].speed.."]"..
"label[6.0,"..(fy + 2.5)..";"..F(S("Jump"))..": "..armor.def[name].jump.."]"..
"label[6.0,"..(fy + 3.0)..";"..F(S("Gravity"))..": "..armor.def[name].gravity.."]"..
"listring[current_player;main]"..
"listring[detached:"..name.."_armor;armor]"
if armor.config.fire_protect then
@@ -59,5 +56,3 @@ unified_inventory.register_page("armor", {
return {formspec=formspec}
end,
})
minetest.log("action", "[3d_armor_ui] loaded.")

View File

@@ -0,0 +1,8 @@
# textdomain: 3d_armor_ui
3D Armor=3D Броня
Armor not initialized!=Броня не инициализирована!
Armor=Броня
Level=Уровень
Heal=Исцеление
Fire=Пламя
Radiation=Излучение

View File

@@ -0,0 +1,8 @@
# textdomain: 3d_armor_ui
3D Armor=3D Броня
Armor not initialized!=Броня не ініціалізована!
Armor=Броня
Level=Рівень
Heal=Зцілення
Fire=Вогонь
Radiation=Радіація

View File

@@ -1,5 +1,5 @@
# textdomain: armor_admin
Admin Helmet=шлем админа
Admin Chestplate=нагрудник админа
Admin Leggings=штаны админа
Admin Boots=ботинки админа
Admin Helmet=Шлем Админа
Admin Chestplate=Нагрудник Админа
Admin Leggings=Поножи Админа
Admin Boots=Ботинки Админа

View File

@@ -0,0 +1,5 @@
# textdomain: armor_admin
Admin Helmet=Шолом адміна
Admin Chestplate=Броня адміна
Admin Leggings=Штани адміна
Admin Boots=Взуття адміна

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 B

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 869 B

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 298 B

View File

@@ -1,5 +1,5 @@
# textdomain: armor_bronze
Bronze Helmet=бронзовый шлем
Bronze Chestplate=бронзовый нагрудник
Bronze Leggings=бронзовые штаны
Bronze Boots=бронзовые ботинки
Bronze Helmet=Бронзовый Шлем
Bronze Chestplate=Бронзовый Нагрудник
Bronze Leggings=Бронзовые Поножи
Bronze Boots=Бронзовые Ботинки

View File

@@ -0,0 +1,5 @@
# textdomain: armor_bronze
Bronze Helmet=Бронзовий шолом
Bronze Chestplate=Бронзова броня
Bronze Leggings=Бронзові штани
Bronze Boots=Бронзове взуття

Binary file not shown.

Before

Width:  |  Height:  |  Size: 937 B

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 B

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 796 B

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 273 B

View File

@@ -1,5 +1,5 @@
# textdomain: armor_cactus
Cactus Helmet=кактусовый шлем
Cactus Chestplate=кактусовый нагрудник
Cactus Leggings=кактусовые штаны
Cactus Boots=кактусовые ботинки
Cactus Helmet=Кактусовый Шлем
Cactus Chestplate=Кактусовый Нагрудник
Cactus Leggings=Кактусовые Поножи
Cactus Boots=Кактусовые Ботинки

View File

@@ -0,0 +1,5 @@
# textdomain: armor_cactus
Cactus Helmet=Кактусовий шолом
Cactus Chestplate=Кактусова броня
Cactus Leggings=Кактусові штани
Cactus Boots=Кактусове взуття

Binary file not shown.

Before

Width:  |  Height:  |  Size: 903 B

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 821 B

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 261 B

View File

@@ -1,5 +1,5 @@
# textdomain: armor_crystal
Crystal Helmet=кристалловый шлем
Crystal Chestplate=кристалловый нагрудник
Crystal Leggings=кристалловые штаны
Crystal Boots=кристалловые ботинки
Crystal Helmet=Кристальный Шлем
Crystal Chestplate=Кристальный Нагрудник
Crystal Leggings=Кристальные Поножи
Crystal Boots=Кристальные Ботинки

View File

@@ -0,0 +1,5 @@
# textdomain: armor_crystal
Crystal Helmet=Кришталевий шолом
Crystal Chestplate=Кришталева броня
Crystal Leggings=Кришталеві штани
Crystal Boots=Кришталеве взуття

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 834 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 B

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 B

After

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 268 B

View File

@@ -1,5 +1,5 @@
# textdomain: armor_diamond
Diamond Helmet=алмазный шлем
Diamond Chestplate=алмазный нагрудник
Diamond Leggings=алмазные штаны
Diamond Boots=алмазные ботинки
Diamond Helmet=Алмазный Шлем
Diamond Chestplate=Алмазный Нагрудник
Diamond Leggings=Алмазные Поножи
Diamond Boots=Алмазные Ботинки

View File

@@ -0,0 +1,5 @@
# textdomain: armor_diamond
Diamond Helmet=Діамантовий шолом
Diamond Chestplate=Діамантова броня
Diamond Leggings=Діамантові штани
Diamond Boots=Діамантове взуття

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 872 B

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 308 B

View File

@@ -1,5 +1,5 @@
# textdomain: armor_gold
Gold Helmet=золотой шлем
Gold Chestplate=золотой нагрудник
Gold Leggings=золотые штаны
Gold Boots=золотые ботинки
Gold Helmet=Золотой Шлем
Gold Chestplate=Золотой Нагрудник
Gold Leggings=Золотые Поножи
Gold Boots=Золотые Ботинки

View File

@@ -0,0 +1,5 @@
# textdomain: armor_gold
Gold Helmet=Золотий шолом
Gold Chestplate=Золота броня
Gold Leggings=Золоті штани
Gold Boots=Золоте взуття

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 779 B

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 178 B

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