Compare commits
	
		
			10 Commits
		
	
	
		
			357cc3aada
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					8f775a64f0 | ||
| 
						 | 
					dbe0a9276a | ||
| 
						 | 
					dbc891a711 | ||
| 
						 | 
					a79d1383aa | ||
| 
						 | 
					220cbc8d92 | ||
| 
						 | 
					8fe014e6d3 | ||
| 
						 | 
					a586aeee0c | ||
| 
						 | 
					082e866274 | ||
| 
						 | 
					c224a73df7 | ||
| 
						 | 
					280165fada | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -4,6 +4,7 @@
 | 
			
		||||
*bak*
 | 
			
		||||
tags
 | 
			
		||||
*.vim
 | 
			
		||||
armor.conf
 | 
			
		||||
 | 
			
		||||
## Eclipse project files & directories
 | 
			
		||||
.project
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
@@ -296,16 +296,21 @@ player_api.register_model("3d_armor_character.b3d", {
 | 
			
		||||
	},
 | 
			
		||||
	animations = {
 | 
			
		||||
		stand = {x=0, y=79},
 | 
			
		||||
		lay = {x=162, y=166},
 | 
			
		||||
		lay = {x=162, y=166, eye_height = 0.3, override_local = true,
 | 
			
		||||
			collisionbox = {-0.6, 0.0, -0.6, 0.6, 0.3, 0.6}},
 | 
			
		||||
		walk = {x=168, y=187},
 | 
			
		||||
		mine = {x=189, y=198},
 | 
			
		||||
		walk_mine = {x=200, y=219},
 | 
			
		||||
		sit = {x=81, y=160},
 | 
			
		||||
		sit = {x=81, y=160, eye_height = 0.8, override_local = true,
 | 
			
		||||
			collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.0, 0.3}},
 | 
			
		||||
		-- compatibility w/ the emote mod
 | 
			
		||||
		wave = {x = 192, y = 196, override_local = true},
 | 
			
		||||
		point = {x = 196, y = 196, override_local = true},
 | 
			
		||||
		freeze = {x = 205, y = 205, override_local = true},
 | 
			
		||||
	},
 | 
			
		||||
	collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
 | 
			
		||||
	-- stepheight: use default
 | 
			
		||||
	eye_height = 1.47,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
@@ -444,7 +449,7 @@ minetest.register_globalstep(function(dtime)
 | 
			
		||||
			local name = player:get_player_name()
 | 
			
		||||
			if armor.def[name].feather > 0 then
 | 
			
		||||
				local vel_y = player:get_velocity().y
 | 
			
		||||
				if vel_y < 0 and vel_y < 3 then
 | 
			
		||||
				if vel_y < -0.5 then
 | 
			
		||||
					vel_y = -(vel_y * 0.05)
 | 
			
		||||
					player:add_velocity({x = 0, y = vel_y, z = 0})
 | 
			
		||||
				end
 | 
			
		||||
@@ -495,5 +500,3 @@ if armor.config.fire_protect == true then
 | 
			
		||||
		return hp_change
 | 
			
		||||
	end, true)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.log("action", "[3d_armor] loaded.")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								3d_armor/locale/3d_armor.pl.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,7 @@
 | 
			
		||||
# textdomain: 3d_armor
 | 
			
		||||
Radiation=Promieniowanie
 | 
			
		||||
Level=Poziom
 | 
			
		||||
Heal=Uzdrawianie
 | 
			
		||||
Fire=Ogień
 | 
			
		||||
Your @1 is almost broken!=Twój @1 jest prawie zepsuty!
 | 
			
		||||
Your @1 got destroyed!=Twój @1 został zniszczony!
 | 
			
		||||
@@ -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» был уничтожен!
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								3d_armor/locale/3d_armor.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,7 @@
 | 
			
		||||
# textdomain: 3d_armor
 | 
			
		||||
Radiation=Радіація
 | 
			
		||||
Level=Рівень
 | 
			
		||||
Heal=Зцілення
 | 
			
		||||
Fire=Вогонь
 | 
			
		||||
Your @1 is almost broken!=Ваш @1 майже зламаний!
 | 
			
		||||
Your @1 got destroyed!=Ваш(і) @1 був(ли) зламаний(і)!
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 339 B After Width: | Height: | Size: 349 B  | 
| 
		 Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 571 B  | 
							
								
								
									
										3
									
								
								3d_armor_ip/locale/3d_armor_ip.ru.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,3 @@
 | 
			
		||||
# textdomain: 3d_armor_ip
 | 
			
		||||
Back=Назад
 | 
			
		||||
Armor=Броня
 | 
			
		||||
							
								
								
									
										3
									
								
								3d_armor_ip/locale/3d_armor_ip.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,3 @@
 | 
			
		||||
# textdomain: 3d_armor_ip
 | 
			
		||||
Back=Назад
 | 
			
		||||
Armor=Броня
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								3d_armor_sfinv/locale/3d_armor_sfinv.ru.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,2 @@
 | 
			
		||||
# textdomain: 3d_armor_sfinv
 | 
			
		||||
Armor=Броня
 | 
			
		||||
							
								
								
									
										2
									
								
								3d_armor_sfinv/locale/3d_armor_sfinv.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,2 @@
 | 
			
		||||
# textdomain: 3d_armor_sfinv
 | 
			
		||||
Armor=Броня
 | 
			
		||||
@@ -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.")
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								3d_armor_stand/locale/3d_armor_stand.uk.tr
									
									
									
									
									
										Executable file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
# textdomain: 3d_armor_stand
 | 
			
		||||
Armor Stand Top=Верх Стійки для Броні
 | 
			
		||||
Armor Stand=Стійка для Броні
 | 
			
		||||
Locked Armor Stand=Закрита Стійка для Броні
 | 
			
		||||
Armor Stand (owned by @1)=Стійка для Броні (власник @1)
 | 
			
		||||
@@ -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.")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								3d_armor_ui/locale/3d_armor_ui.ru.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
			
		||||
# textdomain: 3d_armor_ui
 | 
			
		||||
3D Armor=3D Броня
 | 
			
		||||
Armor not initialized!=Броня не инициализирована!
 | 
			
		||||
Armor=Броня
 | 
			
		||||
Level=Уровень
 | 
			
		||||
Heal=Исцеление
 | 
			
		||||
Fire=Пламя
 | 
			
		||||
Radiation=Излучение
 | 
			
		||||
							
								
								
									
										8
									
								
								3d_armor_ui/locale/3d_armor_ui.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
			
		||||
# textdomain: 3d_armor_ui
 | 
			
		||||
3D Armor=3D Броня
 | 
			
		||||
Armor not initialized!=Броня не ініціалізована!
 | 
			
		||||
Armor=Броня
 | 
			
		||||
Level=Рівень
 | 
			
		||||
Heal=Зцілення
 | 
			
		||||
Fire=Вогонь
 | 
			
		||||
Radiation=Радіація
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
# textdomain: armor_admin
 | 
			
		||||
Admin Helmet=шлем админа
 | 
			
		||||
Admin Chestplate=нагрудник админа
 | 
			
		||||
Admin Leggings=штаны админа
 | 
			
		||||
Admin Boots=ботинки админа
 | 
			
		||||
Admin Helmet=Шлем Админа
 | 
			
		||||
Admin Chestplate=Нагрудник Админа
 | 
			
		||||
Admin Leggings=Поножи Админа
 | 
			
		||||
Admin Boots=Ботинки Админа
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								armor_admin/locale/armor_admin.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
# textdomain: armor_admin
 | 
			
		||||
Admin Helmet=Шолом адміна
 | 
			
		||||
Admin Chestplate=Броня адміна
 | 
			
		||||
Admin Leggings=Штани адміна
 | 
			
		||||
Admin Boots=Взуття адміна
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 258 B  | 
| 
		 Before Width: | Height: | Size: 548 B After Width: | Height: | Size: 261 B  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 409 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 285 B  | 
| 
		 Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 348 B  | 
| 
		 Before Width: | Height: | Size: 869 B After Width: | Height: | Size: 261 B  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 216 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 256 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 188 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 214 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 288 B  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 298 B  | 
@@ -1,5 +1,5 @@
 | 
			
		||||
# textdomain: armor_bronze
 | 
			
		||||
Bronze Helmet=бронзовый шлем
 | 
			
		||||
Bronze Chestplate=бронзовый нагрудник
 | 
			
		||||
Bronze Leggings=бронзовые штаны
 | 
			
		||||
Bronze Boots=бронзовые ботинки
 | 
			
		||||
Bronze Helmet=Бронзовый Шлем
 | 
			
		||||
Bronze Chestplate=Бронзовый Нагрудник
 | 
			
		||||
Bronze Leggings=Бронзовые Поножи
 | 
			
		||||
Bronze Boots=Бронзовые Ботинки
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								armor_bronze/locale/armor_bronze.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
# textdomain: armor_bronze
 | 
			
		||||
Bronze Helmet=Бронзовий шолом
 | 
			
		||||
Bronze Chestplate=Бронзова броня
 | 
			
		||||
Bronze Leggings=Бронзові штани
 | 
			
		||||
Bronze Boots=Бронзове взуття
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 937 B After Width: | Height: | Size: 253 B  | 
| 
		 Before Width: | Height: | Size: 602 B After Width: | Height: | Size: 241 B  | 
| 
		 Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 396 B  | 
| 
		 Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 282 B  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 337 B  | 
| 
		 Before Width: | Height: | Size: 796 B After Width: | Height: | Size: 271 B  | 
| 
		 Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 207 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 261 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 180 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 245 B  | 
| 
		 Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 278 B  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 273 B  | 
@@ -1,5 +1,5 @@
 | 
			
		||||
# textdomain: armor_cactus
 | 
			
		||||
Cactus Helmet=кактусовый шлем
 | 
			
		||||
Cactus Chestplate=кактусовый нагрудник
 | 
			
		||||
Cactus Leggings=кактусовые штаны
 | 
			
		||||
Cactus Boots=кактусовые ботинки
 | 
			
		||||
Cactus Helmet=Кактусовый Шлем
 | 
			
		||||
Cactus Chestplate=Кактусовый Нагрудник
 | 
			
		||||
Cactus Leggings=Кактусовые Поножи
 | 
			
		||||
Cactus Boots=Кактусовые Ботинки
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								armor_cactus/locale/armor_cactus.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
# textdomain: armor_cactus
 | 
			
		||||
Cactus Helmet=Кактусовий шолом
 | 
			
		||||
Cactus Chestplate=Кактусова броня
 | 
			
		||||
Cactus Leggings=Кактусові штани
 | 
			
		||||
Cactus Boots=Кактусове взуття
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 903 B After Width: | Height: | Size: 252 B  | 
| 
		 Before Width: | Height: | Size: 821 B After Width: | Height: | Size: 239 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 393 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 286 B  | 
| 
		 Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 325 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 203 B  | 
| 
		 Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 194 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 246 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 183 B  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 217 B  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 251 B  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 261 B  | 
@@ -1,5 +1,5 @@
 | 
			
		||||
# textdomain: armor_crystal
 | 
			
		||||
Crystal Helmet=кристалловый шлем
 | 
			
		||||
Crystal Chestplate=кристалловый нагрудник
 | 
			
		||||
Crystal Leggings=кристалловые штаны
 | 
			
		||||
Crystal Boots=кристалловые ботинки
 | 
			
		||||
Crystal Helmet=Кристальный Шлем
 | 
			
		||||
Crystal Chestplate=Кристальный Нагрудник
 | 
			
		||||
Crystal Leggings=Кристальные Поножи
 | 
			
		||||
Crystal Boots=Кристальные Ботинки
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								armor_crystal/locale/armor_crystal.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
# textdomain: armor_crystal
 | 
			
		||||
Crystal Helmet=Кришталевий шолом
 | 
			
		||||
Crystal Chestplate=Кришталева броня
 | 
			
		||||
Crystal Leggings=Кришталеві штани
 | 
			
		||||
Crystal Boots=Кришталеве взуття
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 261 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 258 B  | 
| 
		 Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 404 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 289 B  | 
| 
		 Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 350 B  | 
| 
		 Before Width: | Height: | Size: 834 B After Width: | Height: | Size: 257 B  | 
| 
		 Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 217 B  | 
| 
		 Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 258 B  | 
| 
		 Before Width: | Height: | Size: 138 B After Width: | Height: | Size: 186 B  | 
| 
		 Before Width: | Height: | Size: 154 B After Width: | Height: | Size: 212 B  | 
| 
		 Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 290 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 268 B  | 
@@ -1,5 +1,5 @@
 | 
			
		||||
# textdomain: armor_diamond
 | 
			
		||||
Diamond Helmet=алмазный шлем
 | 
			
		||||
Diamond Chestplate=алмазный нагрудник
 | 
			
		||||
Diamond Leggings=алмазные штаны
 | 
			
		||||
Diamond Boots=алмазные ботинки
 | 
			
		||||
Diamond Helmet=Алмазный Шлем
 | 
			
		||||
Diamond Chestplate=Алмазный Нагрудник
 | 
			
		||||
Diamond Leggings=Алмазные Поножи
 | 
			
		||||
Diamond Boots=Алмазные Ботинки
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								armor_diamond/locale/armor_diamond.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
# textdomain: armor_diamond
 | 
			
		||||
Diamond Helmet=Діамантовий шолом
 | 
			
		||||
Diamond Chestplate=Діамантова броня
 | 
			
		||||
Diamond Leggings=Діамантові штани
 | 
			
		||||
Diamond Boots=Діамантове взуття
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 265 B  | 
| 
		 Before Width: | Height: | Size: 872 B After Width: | Height: | Size: 270 B  | 
| 
		 Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 429 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 290 B  | 
| 
		 Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 353 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 269 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 220 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 264 B  | 
| 
		 Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 189 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 213 B  | 
| 
		 Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 294 B  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 308 B  | 
@@ -1,5 +1,5 @@
 | 
			
		||||
# textdomain: armor_gold
 | 
			
		||||
Gold Helmet=золотой шлем
 | 
			
		||||
Gold Chestplate=золотой нагрудник
 | 
			
		||||
Gold Leggings=золотые штаны
 | 
			
		||||
Gold Boots=золотые ботинки
 | 
			
		||||
Gold Helmet=Золотой Шлем
 | 
			
		||||
Gold Chestplate=Золотой Нагрудник
 | 
			
		||||
Gold Leggings=Золотые Поножи
 | 
			
		||||
Gold Boots=Золотые Ботинки
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								armor_gold/locale/armor_gold.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
# textdomain: armor_gold
 | 
			
		||||
Gold Helmet=Золотий шолом
 | 
			
		||||
Gold Chestplate=Золота броня
 | 
			
		||||
Gold Leggings=Золоті штани
 | 
			
		||||
Gold Boots=Золоте взуття
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 245 B  | 
| 
		 Before Width: | Height: | Size: 779 B After Width: | Height: | Size: 226 B  | 
| 
		 Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 402 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 281 B  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 353 B  | 
| 
		 Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 251 B  | 
| 
		 Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 202 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 256 B  |