Compare commits
	
		
			318 Commits
		
	
	
		
			version-0.
			...
			5da2f3060a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					5da2f3060a | ||
| 
						 | 
					1ff3bb0041 | ||
| 
						 | 
					41b8c3e343 | ||
| 
						 | 
					941bfc27f9 | ||
| 
						 | 
					f991b676f4 | ||
| 
						 | 
					4c032e8c7e | ||
| 
						 | 
					945e816b55 | ||
| 
						 | 
					10ded06705 | ||
| 
						 | 
					43a69ad853 | ||
| 
						 | 
					13a8f0d019 | ||
| 
						 | 
					70325158e6 | ||
| 
						 | 
					c96ba7ef34 | ||
| 
						 | 
					838867a6bc | ||
| 
						 | 
					9ce0ed9f55 | ||
| 
						 | 
					c0d45ceaa1 | ||
| 
						 | 
					656bcf30bc | ||
| 
						 | 
					579e64a5e7 | ||
| 
						 | 
					6f99803d2d | ||
| 
						 | 
					f960fc1a41 | ||
| 
						 | 
					af4a381433 | ||
| 
						 | 
					1f11a28ad4 | ||
| 
						 | 
					a5ddc3e60a | ||
| 
						 | 
					83f3e01efa | ||
| 
						 | 
					7d30bc25a3 | ||
| 
						 | 
					e4b12558d4 | ||
| 
						 | 
					21b5c68505 | ||
| 
						 | 
					21716ffd31 | ||
| 
						 | 
					cc6fff2b04 | ||
| 
						 | 
					4210cafff3 | ||
| 
						 | 
					579d245a00 | ||
| 
						 | 
					c812e0ac56 | ||
| 
						 | 
					4baed2ca22 | ||
| 
						 | 
					b9c8681e14 | ||
| 
						 | 
					2fc92880fd | ||
| 
						 | 
					b4cfdac6f5 | ||
| 
						 | 
					59b26b37f9 | ||
| 
						 | 
					7226dd6174 | ||
| 
						 | 
					4fc51971d1 | ||
| 
						 | 
					291b34bfc6 | ||
| 
						 | 
					da7df11ce4 | ||
| 
						 | 
					4ff61da39a | ||
| 
						 | 
					688e21f285 | ||
| 
						 | 
					ea70066d7a | ||
| 
						 | 
					d5896a04e2 | ||
| 
						 | 
					d979815a49 | ||
| 
						 | 
					cca523f193 | ||
| 
						 | 
					ae448c150c | ||
| 
						 | 
					925b39f577 | ||
| 
						 | 
					0454d72c72 | ||
| 
						 | 
					9fa95b2e2c | ||
| 
						 | 
					43c9984d57 | ||
| 
						 | 
					cc26d04345 | ||
| 
						 | 
					38d79b91a1 | ||
| 
						 | 
					db8fb5ebd4 | ||
| 
						 | 
					2150fcea8d | ||
| 
						 | 
					9577fb773e | ||
| 
						 | 
					ea29ec6f6f | ||
| 
						 | 
					793c74856f | ||
| 
						 | 
					47734969e2 | ||
| 
						 | 
					1af0bb60f8 | ||
| 
						 | 
					a11b3302e1 | ||
| 
						 | 
					664d9fbfef | ||
| 
						 | 
					4dd7e41749 | ||
| 
						 | 
					df429ee487 | ||
| 
						 | 
					7566ecccee | ||
| 
						 | 
					99bc8cf2d3 | ||
| 
						 | 
					a2ec13e28d | ||
| 
						 | 
					065815eec1 | ||
| 
						 | 
					16b0ee2d9e | ||
| 
						 | 
					64f8b3cd58 | ||
| 
						 | 
					74ef6c5759 | ||
| 
						 | 
					b741b7426b | ||
| 
						 | 
					db312b3245 | ||
| 
						 | 
					de2c47f334 | ||
| 
						 | 
					b4283f6e60 | ||
| 
						 | 
					888fbacb49 | ||
| 
						 | 
					50453aa5a6 | ||
| 
						 | 
					b45fbd0f2a | ||
| 
						 | 
					9ffcc19fd7 | ||
| 
						 | 
					6359b0a0ed | ||
| 
						 | 
					4dbe76312b | ||
| 
						 | 
					20edce6c55 | ||
| 
						 | 
					6e58d1280b | ||
| 
						 | 
					20d4728829 | ||
| 
						 | 
					7cfd744ff3 | ||
| 
						 | 
					a76a35f177 | ||
| 
						 | 
					e5e926a02e | ||
| 
						 | 
					3951c833da | ||
| 
						 | 
					e9a2c57826 | ||
| 
						 | 
					5508a26dbf | ||
| 
						 | 
					0ec7858937 | ||
| 
						 | 
					1e059f2557 | ||
| 
						 | 
					5dab1ca887 | ||
| 
						 | 
					1fdff7adaa | ||
| 
						 | 
					23e4d5114f | ||
| 
						 | 
					7fde7c050d | ||
| 
						 | 
					45099ae25a | ||
| 
						 | 
					edebf13c1f | ||
| 
						 | 
					4083782246 | ||
| 
						 | 
					5911447048 | ||
| 
						 | 
					3aac5c98f4 | ||
| 
						 | 
					fe9664589a | ||
| 
						 | 
					11ce84873b | ||
| 
						 | 
					86fd6b0d7d | ||
| 
						 | 
					27a3823eed | ||
| 
						 | 
					348dad3d4d | ||
| 
						 | 
					ea86aa35f5 | ||
| 
						 | 
					f0edb9a710 | ||
| 
						 | 
					75191490c2 | ||
| 
						 | 
					f91af02c45 | ||
| 
						 | 
					3843578a33 | ||
| 
						 | 
					1570efb7ac | ||
| 
						 | 
					5517be8ff2 | ||
| 
						 | 
					709535dff0 | ||
| 
						 | 
					a1d904c517 | ||
| 
						 | 
					3c2cb16351 | ||
| 
						 | 
					6bf28dc2c5 | ||
| 
						 | 
					75a7181e0f | ||
| 
						 | 
					2b840fbe38 | ||
| 
						 | 
					701215c22f | ||
| 
						 | 
					e46ff3488b | ||
| 
						 | 
					f74a52df62 | ||
| 
						 | 
					3c4500a9bf | ||
| 
						 | 
					e69b59e2af | ||
| 
						 | 
					d43d96bb28 | ||
| 
						 | 
					7a980a6717 | ||
| 
						 | 
					fc3fcea4b7 | ||
| 
						 | 
					b59464de88 | ||
| 
						 | 
					80024fc154 | ||
| 
						 | 
					d826b53877 | ||
| 
						 | 
					01a3425ec8 | ||
| 
						 | 
					616d9398f2 | ||
| 
						 | 
					6661ec0b40 | ||
| 
						 | 
					ca1cf6bfeb | ||
| 
						 | 
					8f5ffeb384 | ||
| 
						 | 
					ca79d39688 | ||
| 
						 | 
					8b8a554ff7 | ||
| 
						 | 
					3df7802439 | ||
| 
						 | 
					19e297a2e8 | ||
| 
						 | 
					190614d47b | ||
| 
						 | 
					37b10d1cee | ||
| 
						 | 
					4b45f85687 | ||
| 
						 | 
					a5b650285b | ||
| 
						 | 
					26212fb3e4 | ||
| 
						 | 
					4829445d12 | ||
| 
						 | 
					4d3b219e7d | ||
| 
						 | 
					81ffdaa6a7 | ||
| 
						 | 
					ba62febdee | ||
| 
						 | 
					8939a0dd43 | ||
| 
						 | 
					c691f3e219 | ||
| 
						 | 
					bf9ba59c0f | ||
| 
						 | 
					75f808131c | ||
| 
						 | 
					b88f946929 | ||
| 
						 | 
					c63376b523 | ||
| 
						 | 
					c070dfb19f | ||
| 
						 | 
					4b70580ce4 | ||
| 
						 | 
					65b6d58580 | ||
| 
						 | 
					98786fd8f7 | ||
| 
						 | 
					9105e8403e | ||
| 
						 | 
					6b2e3adc00 | ||
| 
						 | 
					c9001f9e53 | ||
| 
						 | 
					cc25d6be13 | ||
| 
						 | 
					f557c4d69e | ||
| 
						 | 
					456c84e93e | ||
| 
						 | 
					0157ebd683 | ||
| 
						 | 
					c39f838893 | ||
| 
						 | 
					862deff373 | ||
| 
						 | 
					ac414d3df3 | ||
| 
						 | 
					3cf6887abd | ||
| 
						 | 
					b14db3c43c | ||
| 
						 | 
					8f8c6c6bfa | ||
| 
						 | 
					54ec4b3cef | ||
| 
						 | 
					32e87ee543 | ||
| 
						 | 
					d322a0f110 | ||
| 
						 | 
					9cc2f3db02 | ||
| 
						 | 
					ddd7f3786c | ||
| 
						 | 
					5c5359de4f | ||
| 
						 | 
					1aa2b769d7 | ||
| 
						 | 
					5421ce46da | ||
| 
						 | 
					72cffbae17 | ||
| 
						 | 
					170ee39aed | ||
| 
						 | 
					59bbc55b73 | ||
| 
						 | 
					1dd904f5be | ||
| 
						 | 
					9de8cc12bb | ||
| 
						 | 
					4e8cf05436 | ||
| 
						 | 
					b6a44057a6 | ||
| 
						 | 
					ae33659168 | ||
| 
						 | 
					fb29ce9150 | ||
| 
						 | 
					7408ebcd81 | ||
| 
						 | 
					36737441d4 | ||
| 
						 | 
					5a112547e6 | ||
| 
						 | 
					0d5cf6d58a | ||
| 
						 | 
					f17a104ab1 | ||
| 
						 | 
					f83e7e9984 | ||
| 
						 | 
					be1d353ec0 | ||
| 
						 | 
					241aa663f1 | ||
| 
						 | 
					921e1ace24 | ||
| 
						 | 
					0ec2dbfb36 | ||
| 
						 | 
					7fc991765c | ||
| 
						 | 
					991d2955e0 | ||
| 
						 | 
					64ec3dcf93 | ||
| 
						 | 
					e1caf0ab0c | ||
| 
						 | 
					a44d1a2530 | ||
| 
						 | 
					16bc6232ca | ||
| 
						 | 
					6efe3bf116 | ||
| 
						 | 
					67867e78ec | ||
| 
						 | 
					64f6be4d61 | ||
| 
						 | 
					741faf3520 | ||
| 
						 | 
					1c56ee4bd6 | ||
| 
						 | 
					40a3c1e0c4 | ||
| 
						 | 
					ae7ad422a5 | ||
| 
						 | 
					bad1452e87 | ||
| 
						 | 
					7cefc1a7ba | ||
| 
						 | 
					8f2badeec3 | ||
| 
						 | 
					734e01e847 | ||
| 
						 | 
					4eabd8512a | ||
| 
						 | 
					14a0eb8cca | ||
| 
						 | 
					e1ffdd6a0d | ||
| 
						 | 
					306f193db6 | ||
| 
						 | 
					6704431499 | ||
| 
						 | 
					bc0ea6b5bf | ||
| 
						 | 
					0fc71201b4 | ||
| 
						 | 
					d107708bec | ||
| 
						 | 
					bd2ebac24e | ||
| 
						 | 
					ebe159ac2c | ||
| 
						 | 
					1d1534b416 | ||
| 
						 | 
					91602ed6f2 | ||
| 
						 | 
					2b0ce6f63e | ||
| 
						 | 
					3badcea0d9 | ||
| 
						 | 
					d2f32beebb | ||
| 
						 | 
					b3f755f7d7 | ||
| 
						 | 
					dec92749f9 | ||
| 
						 | 
					9da2395586 | ||
| 
						 | 
					6942aa37d2 | ||
| 
						 | 
					7da9d81963 | ||
| 
						 | 
					905fc9fcb0 | ||
| 
						 | 
					b8e5d0adde | ||
| 
						 | 
					58337c0404 | ||
| 
						 | 
					87af6e0c68 | ||
| 
						 | 
					70d353bb6c | ||
| 
						 | 
					6e0fbc8bb2 | ||
| 
						 | 
					9c2b9c9b5a | ||
| 
						 | 
					b8be801b94 | ||
| 
						 | 
					679888398f | ||
| 
						 | 
					c03cefbc87 | ||
| 
						 | 
					d95f494a94 | ||
| 
						 | 
					195d138da5 | ||
| 
						 | 
					dd9c63e4ca | ||
| 
						 | 
					358e4a2467 | ||
| 
						 | 
					3dd43c7c6f | ||
| 
						 | 
					b17d8ea55a | ||
| 
						 | 
					e6979e9409 | ||
| 
						 | 
					466c5e6957 | ||
| 
						 | 
					a9fcbf29fe | ||
| 
						 | 
					499d5af310 | ||
| 
						 | 
					e3c2616328 | ||
| 
						 | 
					b5db0f1aa6 | ||
| 
						 | 
					ad6c464573 | ||
| 
						 | 
					5ab2f73695 | ||
| 
						 | 
					e14af35b95 | ||
| 
						 | 
					c3d37e83c2 | ||
| 
						 | 
					046880a534 | ||
| 
						 | 
					258b1cbf48 | ||
| 
						 | 
					c10a606632 | ||
| 
						 | 
					2415d66057 | ||
| 
						 | 
					abf445014e | ||
| 
						 | 
					4415e2b33b | ||
| 
						 | 
					36688c74a8 | ||
| 
						 | 
					672dbe1f54 | ||
| 
						 | 
					3c98acb9c9 | ||
| 
						 | 
					5075cc48a4 | ||
| 
						 | 
					7eebc378a6 | ||
| 
						 | 
					6f7a0ea7fc | ||
| 
						 | 
					7ee4126d15 | ||
| 
						 | 
					b67de94223 | ||
| 
						 | 
					3604420d9e | ||
| 
						 | 
					0936d6f173 | ||
| 
						 | 
					e4ab8c02ac | ||
| 
						 | 
					db157c080d | ||
| 
						 | 
					aaf90c2b24 | ||
| 
						 | 
					4420afb8d1 | ||
| 
						 | 
					3e9ce303e6 | ||
| 
						 | 
					11887fc73b | ||
| 
						 | 
					85f56f7ba0 | ||
| 
						 | 
					eedf913638 | ||
| 
						 | 
					ecfd397d77 | ||
| 
						 | 
					b76508397f | ||
| 
						 | 
					9aaba7569c | ||
| 
						 | 
					1886fe6b1a | ||
| 
						 | 
					19d45efd12 | ||
| 
						 | 
					72b612f081 | ||
| 
						 | 
					8a881022e9 | ||
| 
						 | 
					8457220413 | ||
| 
						 | 
					cf2786a818 | ||
| 
						 | 
					5345c50c7e | ||
| 
						 | 
					2b8e0c5fd9 | ||
| 
						 | 
					55e2b69a08 | ||
| 
						 | 
					a07a00c117 | ||
| 
						 | 
					681bf25505 | ||
| 
						 | 
					0b3deea513 | ||
| 
						 | 
					9dbf76d013 | ||
| 
						 | 
					f71204db09 | ||
| 
						 | 
					025c0136b7 | ||
| 
						 | 
					cf87528a03 | ||
| 
						 | 
					9481e548cf | ||
| 
						 | 
					02ba28f11b | ||
| 
						 | 
					5e52758216 | ||
| 
						 | 
					59048743ab | ||
| 
						 | 
					cfc6984a36 | ||
| 
						 | 
					619a52688f | ||
| 
						 | 
					8f2852c6b3 | ||
| 
						 | 
					956193b49a | ||
| 
						 | 
					d7a87a515b | ||
| 
						 | 
					eeb69e1280 | ||
| 
						 | 
					cf0331a043 | ||
| 
						 | 
					61e6052019 | ||
| 
						 | 
					0edd6ac9e0 | ||
| 
						 | 
					efea71a63e | 
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -5,3 +5,6 @@
 | 
			
		||||
tags
 | 
			
		||||
*.vim
 | 
			
		||||
 | 
			
		||||
## Eclipse project files & directories
 | 
			
		||||
.project
 | 
			
		||||
.settings
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								3d_armor/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,9 @@
 | 
			
		||||
[mod] 3d Armor [3d_armor]
 | 
			
		||||
=========================
 | 
			
		||||
 | 
			
		||||
License Source Code: (C) 2012-2017 Stuart Jones - LGPL v2.1
 | 
			
		||||
 | 
			
		||||
License Textures: Copyright (C) 2017 davidthecreator - CC-BY-SA 3.0
 | 
			
		||||
 | 
			
		||||
https://github.com/daviddoesminetest/3d-armors-new-textures
 | 
			
		||||
 | 
			
		||||
@@ -1,15 +1,191 @@
 | 
			
		||||
[mod] Visible Player Armor [3d_armor]
 | 
			
		||||
=====================================
 | 
			
		||||
 | 
			
		||||
depends: default, inventory_plus, unified_skins
 | 
			
		||||
Depends: default
 | 
			
		||||
 | 
			
		||||
Adds craftable armor that is visible to other players. Each armor item worn contibutes to
 | 
			
		||||
Recommends: sfinv, unified_inventory or smart_inventory (use only one to avoid conflicts)
 | 
			
		||||
 | 
			
		||||
Supports: player_monoids and armor_monoid
 | 
			
		||||
 | 
			
		||||
Adds craftable armor that is visible to other players. Each armor item worn contributes to
 | 
			
		||||
a player's armor group level making them less vulnerable to weapons.
 | 
			
		||||
 | 
			
		||||
Armor takes damage when a player is hurt but also offers a percentage chance of healing.
 | 
			
		||||
Overall level is boosted by 10% when wearing a full matching set.
 | 
			
		||||
 | 
			
		||||
default settings: [minetest.conf]
 | 
			
		||||
Fire protection added by TenPlus1 when using crystal armor if Ethereal mod active, level 1
 | 
			
		||||
protects against torches, level 2 for crystal spike, level 3 for fire, level 5 for lava.
 | 
			
		||||
 | 
			
		||||
# Set number of seconds between armor updates.
 | 
			
		||||
3d_armor_update_time = 1
 | 
			
		||||
Armor Configuration
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
Override the following default settings by adding them to your minetest.conf file.
 | 
			
		||||
 | 
			
		||||
-- Set false to disable individual armor materials.
 | 
			
		||||
armor_material_wood = true
 | 
			
		||||
armor_material_cactus = true
 | 
			
		||||
armor_material_steel = true
 | 
			
		||||
armor_material_bronze = true
 | 
			
		||||
armor_material_diamond = true
 | 
			
		||||
armor_material_gold = true
 | 
			
		||||
armor_material_mithril = true
 | 
			
		||||
armor_material_crystal = true
 | 
			
		||||
 | 
			
		||||
-- Increase this if you get initialization glitches when a player first joins.
 | 
			
		||||
armor_init_delay = 1
 | 
			
		||||
 | 
			
		||||
-- Number of initialization attempts.
 | 
			
		||||
-- Use in conjunction with armor_init_delay if initialization problems persist.
 | 
			
		||||
armor_init_times = 1
 | 
			
		||||
 | 
			
		||||
-- Increase this if armor is not getting into bones due to server lag.
 | 
			
		||||
armor_bones_delay = 1
 | 
			
		||||
 | 
			
		||||
-- How often player armor 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: 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
 | 
			
		||||
 | 
			
		||||
-- Enable water protection (periodically restores breath when activated)
 | 
			
		||||
armor_water_protect = true
 | 
			
		||||
 | 
			
		||||
-- Enable fire protection (defaults true if using ethereal mod)
 | 
			
		||||
armor_fire_protect = false
 | 
			
		||||
 | 
			
		||||
-- Enable punch damage effects.
 | 
			
		||||
armor_punch_damage = true
 | 
			
		||||
 | 
			
		||||
-- Enable migration of old armor inventories
 | 
			
		||||
armor_migrate_old_inventory = true
 | 
			
		||||
 | 
			
		||||
API
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Armor Registration:
 | 
			
		||||
 | 
			
		||||
armor:register_armor(name, def)
 | 
			
		||||
 | 
			
		||||
Wrapper function for `minetest.register_tool`, while registering armor as
 | 
			
		||||
a tool item is still supported, this may be deprecated in future so new code
 | 
			
		||||
should use this method.
 | 
			
		||||
 | 
			
		||||
Additional fields supported by 3d_armor:
 | 
			
		||||
 | 
			
		||||
	texture = <filename>
 | 
			
		||||
	preview = <filename>
 | 
			
		||||
	armor_groups = <table>
 | 
			
		||||
	damage_groups = <table>
 | 
			
		||||
	reciprocate_damage = <bool>
 | 
			
		||||
	on_equip = <function>
 | 
			
		||||
	on_unequip = <function>
 | 
			
		||||
	on_destroy = <function>
 | 
			
		||||
	on_damage = <function>
 | 
			
		||||
	on_punched = <function>
 | 
			
		||||
 | 
			
		||||
armor:register_armor_group(group, base)
 | 
			
		||||
 | 
			
		||||
Example:
 | 
			
		||||
 | 
			
		||||
armor:register_armor_group("radiation", 100)
 | 
			
		||||
 | 
			
		||||
armor:register_armor("mod_name:speed_boots", {
 | 
			
		||||
	description = "Speed Boots",
 | 
			
		||||
	inventory_image = "mod_name_speed_boots_inv.png",
 | 
			
		||||
	texture = "mod_name_speed_boots.png",
 | 
			
		||||
	preview = "mod_name_speed_boots_preview.png",
 | 
			
		||||
	groups = {armor_feet=1, armor_use=500, physics_speed=1.2, flammable=1},
 | 
			
		||||
	armor_groups = {fleshy=10, radiation=10},
 | 
			
		||||
	damage_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1},
 | 
			
		||||
	reciprocate_damage = true,
 | 
			
		||||
	on_destroy = function(player, index, stack)
 | 
			
		||||
		local pos = player:getpos()
 | 
			
		||||
		if pos then
 | 
			
		||||
			minetest.sound_play({
 | 
			
		||||
				name = "mod_name_break_sound",
 | 
			
		||||
				pos = pos,
 | 
			
		||||
				gain = 0.5,
 | 
			
		||||
			})
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
See armor.lua, technic_armor and shields mods for more examples.
 | 
			
		||||
 | 
			
		||||
Default groups:
 | 
			
		||||
 | 
			
		||||
Elements: armor_head, armor_torso, armor_legs, armor_feet
 | 
			
		||||
Attributes: armor_heal, armor_fire, armor_water
 | 
			
		||||
Physics: physics_jump, physics_speed, physics_gravity
 | 
			
		||||
Durability: armor_use, flammable
 | 
			
		||||
 | 
			
		||||
Notes:
 | 
			
		||||
 | 
			
		||||
Elements may be modified by dependent mods, eg shields adds armor_shield.
 | 
			
		||||
Attributes and physics values are 'stackable', durability is determined
 | 
			
		||||
by the level of armor_use, total uses == approx (65535/armor_use), non-fleshy
 | 
			
		||||
damage groups need to be defined in the tool/weapon used against the player.
 | 
			
		||||
 | 
			
		||||
Reciprocal tool damage will be done only by the first armor inventory item
 | 
			
		||||
 with `reciprocate_damage = true`
 | 
			
		||||
 | 
			
		||||
Armor Functions:
 | 
			
		||||
 | 
			
		||||
armor:set_player_armor(player)
 | 
			
		||||
 | 
			
		||||
Primarily an internal function but can be called externally to apply any
 | 
			
		||||
changes that might not otherwise get handled.
 | 
			
		||||
 | 
			
		||||
armor:punch(player, hitter, time_from_last_punch, tool_capabilities)
 | 
			
		||||
 | 
			
		||||
Used to apply damage to all equipped armor based on the damage groups of
 | 
			
		||||
each individual item.`hitter`, `time_from_last_punch` and `tool_capabilities`
 | 
			
		||||
are optional but should be valid if included.
 | 
			
		||||
 | 
			
		||||
armor:damage(player, index, stack, use)
 | 
			
		||||
 | 
			
		||||
Adds wear to a single armor itemstack, triggers `on_damage` callbacks and
 | 
			
		||||
updates the necessary inventories. Also handles item destruction callbacks
 | 
			
		||||
and so should NOT be called from `on_unequip` to avoid an infinite loop.
 | 
			
		||||
 | 
			
		||||
Item Callbacks:
 | 
			
		||||
 | 
			
		||||
on_equip = func(player, index, stack)
 | 
			
		||||
on_unequip = func(player, index, stack)
 | 
			
		||||
on_destroy = func(player, index, stack)
 | 
			
		||||
on_damage = func(player, index, stack)
 | 
			
		||||
on_punched = func(player, hitter, time_from_last_punch, tool_capabilities)
 | 
			
		||||
 | 
			
		||||
Notes:
 | 
			
		||||
 | 
			
		||||
`on_punched` is called every time a player is punched or takes damage, `hitter`,
 | 
			
		||||
`time_from_last_punch` and `tool_capabilities` can be `nil` and will be in the
 | 
			
		||||
case of fall damage, etc. When fire protection is enabled, hitter == "fire"
 | 
			
		||||
in the event of fire damage. Return `false` to override armor damage effects.
 | 
			
		||||
When armor is destroyed `stack` will contain a copy of the previous stack.
 | 
			
		||||
 | 
			
		||||
Global Callbacks:
 | 
			
		||||
 | 
			
		||||
armor:register_on_update(func(player))
 | 
			
		||||
armor:register_on_equip(func(player, index, stack))
 | 
			
		||||
armor:register_on_unequip(func(player, index, stack))
 | 
			
		||||
armor:register_on_destroy(func(player, index, stack))
 | 
			
		||||
 | 
			
		||||
Global Callback Example:
 | 
			
		||||
 | 
			
		||||
armor:register_on_update(function(player)
 | 
			
		||||
	print(player:get_player_name().." armor updated!")
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										525
									
								
								3d_armor/api.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,525 @@
 | 
			
		||||
-- support for i18n
 | 
			
		||||
local S = armor_i18n.gettext
 | 
			
		||||
 | 
			
		||||
local skin_previews = {}
 | 
			
		||||
local use_player_monoids = minetest.global_exists("player_monoids")
 | 
			
		||||
local use_armor_monoid = minetest.global_exists("armor_monoid")
 | 
			
		||||
local use_pova_mod = minetest.get_modpath("pova")
 | 
			
		||||
local armor_def = setmetatable({}, {
 | 
			
		||||
	__index = function()
 | 
			
		||||
		return setmetatable({
 | 
			
		||||
			groups = setmetatable({}, {
 | 
			
		||||
				__index = function()
 | 
			
		||||
					return 0
 | 
			
		||||
				end})
 | 
			
		||||
			}, {
 | 
			
		||||
			__index = function()
 | 
			
		||||
				return 0
 | 
			
		||||
			end
 | 
			
		||||
		})
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
local armor_textures = setmetatable({}, {
 | 
			
		||||
	__index = function()
 | 
			
		||||
		return setmetatable({}, {
 | 
			
		||||
			__index = function()
 | 
			
		||||
				return "blank.png"
 | 
			
		||||
			end
 | 
			
		||||
		})
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
armor = {
 | 
			
		||||
	timer = 0,
 | 
			
		||||
	elements = {"head", "torso", "legs", "feet"},
 | 
			
		||||
	physics = {"jump", "speed", "gravity"},
 | 
			
		||||
	attributes = {"heal", "fire", "water"},
 | 
			
		||||
	formspec = "image[2.5,0;2,4;armor_preview]"..
 | 
			
		||||
		default.gui_bg..
 | 
			
		||||
		default.gui_bg_img..
 | 
			
		||||
		default.gui_slots..
 | 
			
		||||
		default.get_hotbar_bg(0, 4.7)..
 | 
			
		||||
		"list[current_player;main;0,4.7;8,1;]"..
 | 
			
		||||
		"list[current_player;main;0,5.85;8,3;8]",
 | 
			
		||||
	def = armor_def,
 | 
			
		||||
	textures = armor_textures,
 | 
			
		||||
	default_skin = "character",
 | 
			
		||||
	materials = {
 | 
			
		||||
		wood = "group:wood",
 | 
			
		||||
		cactus = "default:cactus",
 | 
			
		||||
		steel = "default:steel_ingot",
 | 
			
		||||
		bronze = "default:bronze_ingot",
 | 
			
		||||
		diamond = "default:diamond",
 | 
			
		||||
		gold = "default:gold_ingot",
 | 
			
		||||
		mithril = "moreores:mithril_ingot",
 | 
			
		||||
		crystal = "ethereal:crystal_ingot",
 | 
			
		||||
	},
 | 
			
		||||
	fire_nodes = {
 | 
			
		||||
		{"default:lava_source",     5, 8},
 | 
			
		||||
		{"default:lava_flowing",    5, 8},
 | 
			
		||||
		{"fire:basic_flame",        3, 4},
 | 
			
		||||
		{"fire:permanent_flame",    3, 4},
 | 
			
		||||
		{"ethereal:crystal_spike",  2, 1},
 | 
			
		||||
		{"ethereal:fire_flower",    2, 1},
 | 
			
		||||
		{"default:torch",           1, 1},
 | 
			
		||||
		{"default:torch_ceiling",   1, 1},
 | 
			
		||||
		{"default:torch_wall",      1, 1},
 | 
			
		||||
	},
 | 
			
		||||
	registered_groups = {["fleshy"]=100},
 | 
			
		||||
	registered_callbacks = {
 | 
			
		||||
		on_update = {},
 | 
			
		||||
		on_equip = {},
 | 
			
		||||
		on_unequip = {},
 | 
			
		||||
		on_damage = {},
 | 
			
		||||
		on_destroy = {},
 | 
			
		||||
	},
 | 
			
		||||
	migrate_old_inventory = true,
 | 
			
		||||
	version = "0.4.12",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
armor.config = {
 | 
			
		||||
	init_delay = 2,
 | 
			
		||||
	init_times = 10,
 | 
			
		||||
	bones_delay = 1,
 | 
			
		||||
	update_time = 1,
 | 
			
		||||
	drop = minetest.get_modpath("bones") ~= nil,
 | 
			
		||||
	destroy = false,
 | 
			
		||||
	level_multiplier = 1,
 | 
			
		||||
	heal_multiplier = 1,
 | 
			
		||||
	material_wood = true,
 | 
			
		||||
	material_cactus = true,
 | 
			
		||||
	material_steel = true,
 | 
			
		||||
	material_bronze = true,
 | 
			
		||||
	material_diamond = true,
 | 
			
		||||
	material_gold = true,
 | 
			
		||||
	material_mithril = true,
 | 
			
		||||
	material_crystal = true,
 | 
			
		||||
	water_protect = true,
 | 
			
		||||
	fire_protect = minetest.get_modpath("ethereal") ~= nil,
 | 
			
		||||
	punch_damage = true,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Armor Registration
 | 
			
		||||
 | 
			
		||||
armor.register_armor = function(self, name, def)
 | 
			
		||||
	minetest.register_tool(name, def)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.register_armor_group = function(self, group, base)
 | 
			
		||||
	base = base or 100
 | 
			
		||||
	self.registered_groups[group] = base
 | 
			
		||||
	if use_armor_monoid then
 | 
			
		||||
		armor_monoid.register_armor_group(group, base)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Armor callbacks
 | 
			
		||||
 | 
			
		||||
armor.register_on_update = function(self, func)
 | 
			
		||||
	if type(func) == "function" then
 | 
			
		||||
		table.insert(self.registered_callbacks.on_update, func)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.register_on_equip = function(self, func)
 | 
			
		||||
	if type(func) == "function" then
 | 
			
		||||
		table.insert(self.registered_callbacks.on_equip, func)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.register_on_unequip = function(self, func)
 | 
			
		||||
	if type(func) == "function" then
 | 
			
		||||
		table.insert(self.registered_callbacks.on_unequip, func)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.register_on_damage = function(self, func)
 | 
			
		||||
	if type(func) == "function" then
 | 
			
		||||
		table.insert(self.registered_callbacks.on_damage, func)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.register_on_destroy = function(self, func)
 | 
			
		||||
	if type(func) == "function" then
 | 
			
		||||
		table.insert(self.registered_callbacks.on_destroy, func)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.run_callbacks = function(self, callback, player, index, stack)
 | 
			
		||||
	if stack then
 | 
			
		||||
		local def = stack:get_definition() or {}
 | 
			
		||||
		if type(def[callback]) == "function" then
 | 
			
		||||
			def[callback](player, index, stack)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	local callbacks = self.registered_callbacks[callback]
 | 
			
		||||
	if callbacks then
 | 
			
		||||
		for _, func in pairs(callbacks) do
 | 
			
		||||
			func(player, index, stack)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.update_player_visuals = function(self, player)
 | 
			
		||||
	if not player then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	if self.textures[name] then
 | 
			
		||||
		default.player_set_textures(player, {
 | 
			
		||||
			self.textures[name].skin,
 | 
			
		||||
			self.textures[name].armor,
 | 
			
		||||
			self.textures[name].wielditem,
 | 
			
		||||
		})
 | 
			
		||||
	end
 | 
			
		||||
	self:run_callbacks("on_update", player)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.set_player_armor = function(self, player)
 | 
			
		||||
	local name, armor_inv = self:get_valid_player(player, "[set_player_armor]")
 | 
			
		||||
	if not name then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local state = 0
 | 
			
		||||
	local count = 0
 | 
			
		||||
	local material = {count=1}
 | 
			
		||||
	local preview = armor:get_preview(name)
 | 
			
		||||
	local texture = "3d_armor_trans.png"
 | 
			
		||||
	local textures = {}
 | 
			
		||||
	local physics = {}
 | 
			
		||||
	local attributes = {}
 | 
			
		||||
	local levels = {}
 | 
			
		||||
	local groups = {}
 | 
			
		||||
	local change = {}
 | 
			
		||||
	for _, phys in pairs(self.physics) do
 | 
			
		||||
		physics[phys] = 1
 | 
			
		||||
	end
 | 
			
		||||
	for _, attr in pairs(self.attributes) do
 | 
			
		||||
		attributes[attr] = 0
 | 
			
		||||
	end
 | 
			
		||||
	for group, _ in pairs(self.registered_groups) do
 | 
			
		||||
		change[group] = 1
 | 
			
		||||
		levels[group] = 0
 | 
			
		||||
	end
 | 
			
		||||
	local list = armor_inv:get_list("armor")
 | 
			
		||||
	if type(list) ~= "table" then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	for i, stack in pairs(list) do
 | 
			
		||||
		if stack:get_count() == 1 then
 | 
			
		||||
			local def = stack:get_definition()
 | 
			
		||||
			for _, element in pairs(self.elements) do
 | 
			
		||||
				if def.groups["armor_"..element] then
 | 
			
		||||
					if def.armor_groups then
 | 
			
		||||
						for group, level in pairs(def.armor_groups) do
 | 
			
		||||
							if levels[group] then
 | 
			
		||||
								levels[group] = levels[group] + level
 | 
			
		||||
							end
 | 
			
		||||
						end
 | 
			
		||||
					else
 | 
			
		||||
						local level = def.groups["armor_"..element]
 | 
			
		||||
						levels["fleshy"] = levels["fleshy"] + level
 | 
			
		||||
					end
 | 
			
		||||
					break
 | 
			
		||||
				end
 | 
			
		||||
				-- DEPRECATED, use armor_groups instead
 | 
			
		||||
				if def.groups["armor_radiation"] and levels["radiation"] then
 | 
			
		||||
					levels["radiation"] = def.groups["armor_radiation"]
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
			local item = stack:get_name()
 | 
			
		||||
			local tex = def.texture or item:gsub("%:", "_")
 | 
			
		||||
			tex = tex:gsub(".png$", "")
 | 
			
		||||
			local prev = def.preview or tex.."_preview"
 | 
			
		||||
			prev = prev:gsub(".png$", "")
 | 
			
		||||
			texture = texture.."^"..tex..".png"
 | 
			
		||||
			preview = preview.."^"..prev..".png"
 | 
			
		||||
			state = state + stack:get_wear()
 | 
			
		||||
			count = count + 1
 | 
			
		||||
			for _, phys in pairs(self.physics) do
 | 
			
		||||
				local value = def.groups["physics_"..phys] or 0
 | 
			
		||||
				physics[phys] = physics[phys] + value
 | 
			
		||||
			end
 | 
			
		||||
			for _, attr in pairs(self.attributes) do
 | 
			
		||||
				local value = def.groups["armor_"..attr] or 0
 | 
			
		||||
				attributes[attr] = attributes[attr] + value
 | 
			
		||||
			end
 | 
			
		||||
			local mat = string.match(item, "%:.+_(.+)$")
 | 
			
		||||
			if material.name then
 | 
			
		||||
				if material.name == mat then
 | 
			
		||||
					material.count = material.count + 1
 | 
			
		||||
				end
 | 
			
		||||
			else
 | 
			
		||||
				material.name = mat
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	for group, level in pairs(levels) do
 | 
			
		||||
		if level > 0 then
 | 
			
		||||
			level = level * armor.config.level_multiplier
 | 
			
		||||
			if material.name and material.count == #self.elements then
 | 
			
		||||
				level = level * 1.1
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		local base = self.registered_groups[group]
 | 
			
		||||
		self.def[name].groups[group] = level
 | 
			
		||||
		if level > base then
 | 
			
		||||
			level = base
 | 
			
		||||
		end
 | 
			
		||||
		groups[group] = base - level
 | 
			
		||||
		change[group] = groups[group] / base
 | 
			
		||||
	end
 | 
			
		||||
	for _, attr in pairs(self.attributes) do
 | 
			
		||||
		local mult = attr == "heal" and self.config.heal_multiplier or 1
 | 
			
		||||
		self.def[name][attr] = attributes[attr] * mult
 | 
			
		||||
	end
 | 
			
		||||
	for _, phys in pairs(self.physics) do
 | 
			
		||||
		self.def[name][phys] = physics[phys]
 | 
			
		||||
	end
 | 
			
		||||
	if use_armor_monoid then
 | 
			
		||||
		armor_monoid.monoid:add_change(player, change, "3d_armor:armor")
 | 
			
		||||
	else
 | 
			
		||||
		player:set_armor_groups(groups)
 | 
			
		||||
	end
 | 
			
		||||
	if use_player_monoids then
 | 
			
		||||
		player_monoids.speed:add_change(player, physics.speed,
 | 
			
		||||
			"3d_armor:physics")
 | 
			
		||||
		player_monoids.jump:add_change(player, physics.jump,
 | 
			
		||||
			"3d_armor:physics")
 | 
			
		||||
		player_monoids.gravity:add_change(player, physics.gravity,
 | 
			
		||||
			"3d_armor:physics")
 | 
			
		||||
	elseif use_pova_mod then
 | 
			
		||||
		-- only add the changes, not the default 1.0 for each physics setting
 | 
			
		||||
		pova.add_override(name, "3d_armor", {
 | 
			
		||||
			speed = physics.speed - 1,
 | 
			
		||||
			jump = physics.jump - 1,
 | 
			
		||||
			gravity = physics.gravity - 1,
 | 
			
		||||
		})
 | 
			
		||||
		pova.do_override(player)
 | 
			
		||||
	else
 | 
			
		||||
		player:set_physics_override(physics)
 | 
			
		||||
	end
 | 
			
		||||
	self.textures[name].armor = texture
 | 
			
		||||
	self.textures[name].preview = preview
 | 
			
		||||
	self.def[name].level = self.def[name].groups.fleshy or 0
 | 
			
		||||
	self.def[name].state = state
 | 
			
		||||
	self.def[name].count = count
 | 
			
		||||
	self:update_player_visuals(player)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.punch = function(self, player, hitter, time_from_last_punch, tool_capabilities)
 | 
			
		||||
	local name, armor_inv = self:get_valid_player(player, "[punch]")
 | 
			
		||||
	if not name then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local state = 0
 | 
			
		||||
	local count = 0
 | 
			
		||||
	local recip = true
 | 
			
		||||
	local default_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1}
 | 
			
		||||
	local list = armor_inv:get_list("armor")
 | 
			
		||||
	for i, stack in pairs(list) do
 | 
			
		||||
		if stack:get_count() == 1 then
 | 
			
		||||
			local name = stack:get_name()
 | 
			
		||||
			local use = minetest.get_item_group(name, "armor_use") or 0
 | 
			
		||||
			local damage = use > 0
 | 
			
		||||
			local def = stack:get_definition() or {}
 | 
			
		||||
			if type(def.on_punched) == "function" then
 | 
			
		||||
				damage = def.on_punched(player, hitter, time_from_last_punch,
 | 
			
		||||
					tool_capabilities) ~= false and damage == true
 | 
			
		||||
			end
 | 
			
		||||
			if damage == true and tool_capabilities then
 | 
			
		||||
				local damage_groups = def.damage_groups or default_groups
 | 
			
		||||
				local level = damage_groups.level or 0
 | 
			
		||||
				local groupcaps = tool_capabilities.groupcaps or {}
 | 
			
		||||
				local uses = 0
 | 
			
		||||
				damage = false
 | 
			
		||||
				for group, caps in pairs(groupcaps) do
 | 
			
		||||
					local maxlevel = caps.maxlevel or 0
 | 
			
		||||
					local diff = maxlevel - level
 | 
			
		||||
					if diff == 0 then
 | 
			
		||||
						diff = 1
 | 
			
		||||
					end
 | 
			
		||||
					if diff > 0 and caps.times then
 | 
			
		||||
						local group_level = damage_groups[group]
 | 
			
		||||
						if group_level then
 | 
			
		||||
							local time = caps.times[group_level]
 | 
			
		||||
							if time then
 | 
			
		||||
								local dt = time_from_last_punch or 0
 | 
			
		||||
								if dt > time / diff then
 | 
			
		||||
									if caps.uses then
 | 
			
		||||
										uses = caps.uses * math.pow(3, diff)
 | 
			
		||||
									end
 | 
			
		||||
									damage = true
 | 
			
		||||
									break
 | 
			
		||||
								end
 | 
			
		||||
							end
 | 
			
		||||
						end
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
				if damage == true and recip == true and hitter and
 | 
			
		||||
						def.reciprocate_damage == true and uses > 0 then
 | 
			
		||||
					local item = hitter:get_wielded_item()
 | 
			
		||||
					if item and item:get_name() ~= "" then
 | 
			
		||||
						item:add_wear(65535 / uses)
 | 
			
		||||
						hitter:set_wielded_item(item)
 | 
			
		||||
					end
 | 
			
		||||
					-- reciprocate tool damage only once
 | 
			
		||||
					recip = false
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
			if damage == true and hitter == "fire" then
 | 
			
		||||
				damage = minetest.get_item_group(name, "flammable") > 0
 | 
			
		||||
			end
 | 
			
		||||
			if damage == true then
 | 
			
		||||
				self:damage(player, i, stack, use)
 | 
			
		||||
			end
 | 
			
		||||
			state = state + stack:get_wear()
 | 
			
		||||
			count = count + 1
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	self.def[name].state = state
 | 
			
		||||
	self.def[name].count = count
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.damage = function(self, player, index, stack, use)
 | 
			
		||||
	local old_stack = ItemStack(stack)
 | 
			
		||||
	stack:add_wear(use)
 | 
			
		||||
	self:run_callbacks("on_damage", player, index, stack)
 | 
			
		||||
	self:set_inventory_stack(player, index, stack)
 | 
			
		||||
	if stack:get_count() == 0 then
 | 
			
		||||
		self:run_callbacks("on_unequip", player, index, old_stack)
 | 
			
		||||
		self:run_callbacks("on_destroy", player, index, old_stack)
 | 
			
		||||
		self:set_player_armor(player)
 | 
			
		||||
	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)
 | 
			
		||||
	if armor.def[name].init_time == 0 then
 | 
			
		||||
		return "label[0,0;Armor not initialized!]"
 | 
			
		||||
	end
 | 
			
		||||
	local formspec = armor.formspec..
 | 
			
		||||
		"list[detached:"..name.."_armor;armor;0,0.5;2,3;]"
 | 
			
		||||
	if listring == true then
 | 
			
		||||
		formspec = formspec.."listring[current_player;main]"..
 | 
			
		||||
			"listring[detached:"..name.."_armor;armor]"
 | 
			
		||||
	end
 | 
			
		||||
	formspec = formspec:gsub("armor_preview", armor.textures[name].preview)
 | 
			
		||||
	formspec = formspec:gsub("armor_level", armor.def[name].level)
 | 
			
		||||
	for _, attr in pairs(self.attributes) do
 | 
			
		||||
		formspec = formspec:gsub("armor_attr_"..attr, armor.def[name][attr])
 | 
			
		||||
	end
 | 
			
		||||
	for group, _ in pairs(self.registered_groups) do
 | 
			
		||||
		formspec = formspec:gsub("armor_group_"..group,
 | 
			
		||||
			armor.def[name].groups[group])
 | 
			
		||||
	end
 | 
			
		||||
	return formspec
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.get_element = function(self, item_name)
 | 
			
		||||
	for _, element in pairs(armor.elements) do
 | 
			
		||||
		if minetest.get_item_group(item_name, "armor_"..element) > 0 then
 | 
			
		||||
			return element
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.serialize_inventory_list = function(self, list)
 | 
			
		||||
	local list_table = {}
 | 
			
		||||
	for _, stack in ipairs(list) do
 | 
			
		||||
		table.insert(list_table, stack:to_string())
 | 
			
		||||
	end
 | 
			
		||||
	return minetest.serialize(list_table)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.deserialize_inventory_list = function(self, list_string)
 | 
			
		||||
	local list_table = minetest.deserialize(list_string)
 | 
			
		||||
	local list = {}
 | 
			
		||||
	for _, stack in ipairs(list_table or {}) do
 | 
			
		||||
		table.insert(list, ItemStack(stack))
 | 
			
		||||
	end
 | 
			
		||||
	return list
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.load_armor_inventory = function(self, player)
 | 
			
		||||
	local _, inv = self:get_valid_player(player, "[load_armor_inventory]")
 | 
			
		||||
	if inv then
 | 
			
		||||
		local armor_list_string = player:get_attribute("3d_armor_inventory")
 | 
			
		||||
		if armor_list_string then
 | 
			
		||||
			inv:set_list("armor",
 | 
			
		||||
				self:deserialize_inventory_list(armor_list_string))
 | 
			
		||||
			return true
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.save_armor_inventory = function(self, player)
 | 
			
		||||
	local _, inv = self:get_valid_player(player, "[save_armor_inventory]")
 | 
			
		||||
	if inv then
 | 
			
		||||
		player:set_attribute("3d_armor_inventory",
 | 
			
		||||
			self:serialize_inventory_list(inv:get_list("armor")))
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.update_inventory = function(self, player)
 | 
			
		||||
	-- DEPRECATED: Legacy inventory support
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.set_inventory_stack = function(self, player, i, stack)
 | 
			
		||||
	local _, inv = self:get_valid_player(player, "[set_inventory_stack]")
 | 
			
		||||
	if inv then
 | 
			
		||||
		inv:set_stack("armor", i, stack)
 | 
			
		||||
		self:save_armor_inventory(player)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.get_valid_player = function(self, player, msg)
 | 
			
		||||
	msg = msg or ""
 | 
			
		||||
	if not player then
 | 
			
		||||
		minetest.log("warning", S("3d_armor: Player reference is nil @1", msg))
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	if not name then
 | 
			
		||||
		minetest.log("warning", S("3d_armor: Player name is nil @1", msg))
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local inv = minetest.get_inventory({type="detached", name=name.."_armor"})
 | 
			
		||||
	if not inv then
 | 
			
		||||
		minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg))
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	return name, inv
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor.drop_armor = function(pos, stack)
 | 
			
		||||
	local node = minetest.get_node_or_nil(pos)
 | 
			
		||||
	if node then
 | 
			
		||||
		local obj = minetest.add_item(pos, stack)
 | 
			
		||||
		if obj then
 | 
			
		||||
			obj:setvelocity({x=math.random(-1, 1), y=5, z=math.random(-1, 1)})
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										37
									
								
								3d_armor/armor.conf
									
									
									
									
									
										Executable file
									
								
							
							
						
						@@ -0,0 +1,37 @@
 | 
			
		||||
-- 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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										65
									
								
								3d_armor/armor.conf.example
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,65 @@
 | 
			
		||||
-- DEPRECATED, will not be supported in future versions
 | 
			
		||||
 | 
			
		||||
-- See README.txt for new configuration options.
 | 
			
		||||
 | 
			
		||||
-- Armor Configuration (defaults)
 | 
			
		||||
 | 
			
		||||
-- You can remove any unwanted armor materials from this table.
 | 
			
		||||
-- Note that existing armor that is removed will show up as an unknown item.
 | 
			
		||||
ARMOR_MATERIALS = {
 | 
			
		||||
	wood = "group:wood",
 | 
			
		||||
	cactus = "default:cactus",
 | 
			
		||||
	steel = "default:steel_ingot",
 | 
			
		||||
	bronze = "default:bronze_ingot",
 | 
			
		||||
	diamond = "default:diamond",
 | 
			
		||||
	gold = "default:gold_ingot",
 | 
			
		||||
	mithril = "moreores:mithril_ingot",
 | 
			
		||||
	crystal = "ethereal:crystal_ingot",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Enable fire protection (defaults true if using ethereal mod)
 | 
			
		||||
ARMOR_FIRE_PROTECT = false
 | 
			
		||||
 | 
			
		||||
-- Fire protection nodes, (name, protection level, damage)
 | 
			
		||||
ARMOR_FIRE_NODES = {
 | 
			
		||||
	{"default:lava_source",     5, 4},
 | 
			
		||||
	{"default:lava_flowing",    5, 4},
 | 
			
		||||
	{"fire:basic_flame",        3, 4},
 | 
			
		||||
	{"fire:permanent_flame",    3, 4},
 | 
			
		||||
	{"ethereal:crystal_spike",  2, 1},
 | 
			
		||||
	{"ethereal:fire_flower",    2, 1},
 | 
			
		||||
	{"default:torch",           1, 1},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Increase this if you get initialization glitches when a player first joins.
 | 
			
		||||
ARMOR_INIT_DELAY = 1
 | 
			
		||||
 | 
			
		||||
-- Number of initialization attempts.
 | 
			
		||||
-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist.
 | 
			
		||||
ARMOR_INIT_TIMES = 1
 | 
			
		||||
 | 
			
		||||
-- Increase this if armor is not getting into bones due to server lag.
 | 
			
		||||
ARMOR_BONES_DELAY = 1
 | 
			
		||||
 | 
			
		||||
-- 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 use this to increase or decrease overall armor radiation protection,
 | 
			
		||||
-- eg: ARMOR_RADIATION_MULTIPLIER = 0 will completely disable radiation protection.
 | 
			
		||||
-- Note: patched technic mod is required
 | 
			
		||||
ARMOR_RADIATION_MULTIPLIER = 1
 | 
			
		||||
							
								
								
									
										346
									
								
								3d_armor/armor.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,346 @@
 | 
			
		||||
-- support for i18n
 | 
			
		||||
local S = armor_i18n.gettext
 | 
			
		||||
 | 
			
		||||
armor:register_armor("3d_armor:helmet_admin", {
 | 
			
		||||
	description = S("Admin Helmet"),
 | 
			
		||||
	inventory_image = "3d_armor_inv_helmet_admin.png",
 | 
			
		||||
	armor_groups = {fleshy=100},
 | 
			
		||||
	groups = {armor_head=1, armor_heal=100, armor_use=0, armor_water=1,
 | 
			
		||||
			not_in_creative_inventory=1},
 | 
			
		||||
	on_drop = function(itemstack, dropper, pos)
 | 
			
		||||
		return
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
armor:register_armor("3d_armor:chestplate_admin", {
 | 
			
		||||
	description = S("Admin Chestplate"),
 | 
			
		||||
	inventory_image = "3d_armor_inv_chestplate_admin.png",
 | 
			
		||||
	armor_groups = {fleshy=100},
 | 
			
		||||
	groups = {armor_torso=1, armor_heal=100, armor_use=0,
 | 
			
		||||
			not_in_creative_inventory=1},
 | 
			
		||||
	on_drop = function(itemstack, dropper, pos)
 | 
			
		||||
		return
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
armor:register_armor("3d_armor:leggings_admin", {
 | 
			
		||||
	description = S("Admin Leggings"),
 | 
			
		||||
	inventory_image = "3d_armor_inv_leggings_admin.png",
 | 
			
		||||
	armor_groups = {fleshy=100},
 | 
			
		||||
	groups = {armor_legs=1, armor_heal=100, armor_use=0,
 | 
			
		||||
			not_in_creative_inventory=1},
 | 
			
		||||
	on_drop = function(itemstack, dropper, pos)
 | 
			
		||||
		return
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
armor:register_armor("3d_armor:boots_admin", {
 | 
			
		||||
	description = S("Admin Boots"),
 | 
			
		||||
	inventory_image = "3d_armor_inv_boots_admin.png",
 | 
			
		||||
	armor_groups = {fleshy=100},
 | 
			
		||||
	groups = {armor_feet=1, armor_heal=100, armor_use=0,
 | 
			
		||||
			not_in_creative_inventory=1},
 | 
			
		||||
	on_drop = function(itemstack, dropper, pos)
 | 
			
		||||
		return
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("adminboots", "3d_armor:boots_admin")
 | 
			
		||||
minetest.register_alias("adminhelmet", "3d_armor:helmet_admin")
 | 
			
		||||
minetest.register_alias("adminchestplate", "3d_armor:chestplate_admin")
 | 
			
		||||
minetest.register_alias("adminleggings", "3d_armor:leggings_admin")
 | 
			
		||||
 | 
			
		||||
if armor.materials.wood then
 | 
			
		||||
	armor:register_armor("3d_armor:helmet_wood", {
 | 
			
		||||
		description = S("Wood Helmet"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_helmet_wood.png",
 | 
			
		||||
		groups = {armor_head=1, armor_heal=0, armor_use=2000, flammable=1},
 | 
			
		||||
		armor_groups = {fleshy=5},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:chestplate_wood", {
 | 
			
		||||
		description = S("Wood Chestplate"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_chestplate_wood.png",
 | 
			
		||||
		groups = {armor_torso=1, armor_heal=0, armor_use=2000, flammable=1},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:leggings_wood", {
 | 
			
		||||
		description = S("Wood Leggings"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_leggings_wood.png",
 | 
			
		||||
		groups = {armor_legs=1, armor_heal=0, armor_use=2000, flammable=1},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:boots_wood", {
 | 
			
		||||
		description = S("Wood Boots"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_boots_wood.png",
 | 
			
		||||
		armor_groups = {fleshy=5},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
 | 
			
		||||
		groups = {armor_feet=1, armor_heal=0, armor_use=2000, flammable=1},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.materials.cactus then
 | 
			
		||||
	armor:register_armor("3d_armor:helmet_cactus", {
 | 
			
		||||
		description = S("Cactus Helmet"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_helmet_cactus.png",
 | 
			
		||||
		groups = {armor_head=1, armor_heal=0, armor_use=1000},
 | 
			
		||||
		armor_groups = {fleshy=5},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:chestplate_cactus", {
 | 
			
		||||
		description = S("Cactus Chestplate"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_chestplate_cactus.png",
 | 
			
		||||
		groups = {armor_torso=1, armor_heal=0, armor_use=1000},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:leggings_cactus", {
 | 
			
		||||
		description = S("Cactus Leggings"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_leggings_cactus.png",
 | 
			
		||||
		groups = {armor_legs=1, armor_heal=0, armor_use=1000},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:boots_cactus", {
 | 
			
		||||
		description = S("Cactus Boots"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_boots_cactus.png",
 | 
			
		||||
		groups = {armor_feet=1, armor_heal=0, armor_use=1000},
 | 
			
		||||
		armor_groups = {fleshy=5},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.materials.steel then
 | 
			
		||||
	armor:register_armor("3d_armor:helmet_steel", {
 | 
			
		||||
		description = S("Steel Helmet"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_helmet_steel.png",
 | 
			
		||||
		groups = {armor_head=1, armor_heal=0, armor_use=800,
 | 
			
		||||
			physics_speed=-0.01, physics_gravity=0.01},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:chestplate_steel", {
 | 
			
		||||
		description = S("Steel Chestplate"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_chestplate_steel.png",
 | 
			
		||||
		groups = {armor_torso=1, armor_heal=0, armor_use=800,
 | 
			
		||||
			physics_speed=-0.04, physics_gravity=0.04},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:leggings_steel", {
 | 
			
		||||
		description = S("Steel Leggings"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_leggings_steel.png",
 | 
			
		||||
		groups = {armor_legs=1, armor_heal=0, armor_use=800,
 | 
			
		||||
			physics_speed=-0.03, physics_gravity=0.03},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:boots_steel", {
 | 
			
		||||
		description = S("Steel Boots"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_boots_steel.png",
 | 
			
		||||
		groups = {armor_feet=1, armor_heal=0, armor_use=800,
 | 
			
		||||
			physics_speed=-0.01, physics_gravity=0.01},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.materials.bronze then
 | 
			
		||||
	armor:register_armor("3d_armor:helmet_bronze", {
 | 
			
		||||
		description = S("Bronze Helmet"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_helmet_bronze.png",
 | 
			
		||||
		groups = {armor_head=1, armor_heal=6, armor_use=400,
 | 
			
		||||
			physics_speed=-0.01, physics_gravity=0.01},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:chestplate_bronze", {
 | 
			
		||||
		description = S("Bronze Chestplate"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_chestplate_bronze.png",
 | 
			
		||||
		groups = {armor_torso=1, armor_heal=6, armor_use=400,
 | 
			
		||||
			physics_speed=-0.04, physics_gravity=0.04},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:leggings_bronze", {
 | 
			
		||||
		description = S("Bronze Leggings"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_leggings_bronze.png",
 | 
			
		||||
		groups = {armor_legs=1, armor_heal=6, armor_use=400,
 | 
			
		||||
			physics_speed=-0.03, physics_gravity=0.03},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:boots_bronze", {
 | 
			
		||||
		description = S("Bronze Boots"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_boots_bronze.png",
 | 
			
		||||
		groups = {armor_feet=1, armor_heal=6, armor_use=400,
 | 
			
		||||
			physics_speed=-0.01, physics_gravity=0.01},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.materials.diamond then
 | 
			
		||||
	armor:register_armor("3d_armor:helmet_diamond", {
 | 
			
		||||
		description = S("Diamond Helmet"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_helmet_diamond.png",
 | 
			
		||||
		groups = {armor_head=1, armor_heal=12, armor_use=200},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:chestplate_diamond", {
 | 
			
		||||
		description = S("Diamond Chestplate"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_chestplate_diamond.png",
 | 
			
		||||
		groups = {armor_torso=1, armor_heal=12, armor_use=200},
 | 
			
		||||
		armor_groups = {fleshy=20},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:leggings_diamond", {
 | 
			
		||||
		description = S("Diamond Leggings"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_leggings_diamond.png",
 | 
			
		||||
		groups = {armor_legs=1, armor_heal=12, armor_use=200},
 | 
			
		||||
		armor_groups = {fleshy=20},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:boots_diamond", {
 | 
			
		||||
		description = S("Diamond Boots"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_boots_diamond.png",
 | 
			
		||||
		groups = {armor_feet=1, armor_heal=12, armor_use=200},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.materials.gold then
 | 
			
		||||
	armor:register_armor("3d_armor:helmet_gold", {
 | 
			
		||||
		description = S("Gold Helmet"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_helmet_gold.png",
 | 
			
		||||
		groups = {armor_head=1, armor_heal=6, armor_use=300,
 | 
			
		||||
			physics_speed=-0.02, physics_gravity=0.02},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:chestplate_gold", {
 | 
			
		||||
		description = S("Gold Chestplate"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_chestplate_gold.png",
 | 
			
		||||
		groups = {armor_torso=1, armor_heal=6, armor_use=300,
 | 
			
		||||
			physics_speed=-0.05, physics_gravity=0.05},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:leggings_gold", {
 | 
			
		||||
		description = S("Gold Leggings"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_leggings_gold.png",
 | 
			
		||||
		groups = {armor_legs=1, armor_heal=6, armor_use=300,
 | 
			
		||||
			physics_speed=-0.04, physics_gravity=0.04},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:boots_gold", {
 | 
			
		||||
		description = S("Gold Boots"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_boots_gold.png",
 | 
			
		||||
		groups = {armor_feet=1, armor_heal=6, armor_use=300,
 | 
			
		||||
			physics_speed=-0.02, physics_gravity=0.02},
 | 
			
		||||
		armor_groups = {fleshy=10},
 | 
			
		||||
		damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.materials.mithril then
 | 
			
		||||
	armor:register_armor("3d_armor:helmet_mithril", {
 | 
			
		||||
		description = S("Mithril Helmet"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_helmet_mithril.png",
 | 
			
		||||
		groups = {armor_head=1, armor_heal=12, armor_use=100},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:chestplate_mithril", {
 | 
			
		||||
		description = S("Mithril Chestplate"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_chestplate_mithril.png",
 | 
			
		||||
		groups = {armor_torso=1, armor_heal=12, armor_use=100},
 | 
			
		||||
		armor_groups = {fleshy=20},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:leggings_mithril", {
 | 
			
		||||
		description = S("Mithril Leggings"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_leggings_mithril.png",
 | 
			
		||||
		groups = {armor_legs=1, armor_heal=12, armor_use=100},
 | 
			
		||||
		armor_groups = {fleshy=20},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:boots_mithril", {
 | 
			
		||||
		description = S("Mithril Boots"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_boots_mithril.png",
 | 
			
		||||
		groups = {armor_feet=1, armor_heal=12, armor_use=100},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.materials.crystal then
 | 
			
		||||
	armor:register_armor("3d_armor:helmet_crystal", {
 | 
			
		||||
		description = S("Crystal Helmet"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_helmet_crystal.png",
 | 
			
		||||
		groups = {armor_head=1, armor_heal=12, armor_use=100, armor_fire=1},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:chestplate_crystal", {
 | 
			
		||||
		description = S("Crystal Chestplate"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_chestplate_crystal.png",
 | 
			
		||||
		groups = {armor_torso=1, armor_heal=12, armor_use=100, armor_fire=1},
 | 
			
		||||
		armor_groups = {fleshy=20},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:leggings_crystal", {
 | 
			
		||||
		description = S("Crystal Leggings"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_leggings_crystal.png",
 | 
			
		||||
		groups = {armor_legs=1, armor_heal=12, armor_use=100, armor_fire=1},
 | 
			
		||||
		armor_groups = {fleshy=20},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
	armor:register_armor("3d_armor:boots_crystal", {
 | 
			
		||||
		description = S("Crystal Boots"),
 | 
			
		||||
		inventory_image = "3d_armor_inv_boots_crystal.png",
 | 
			
		||||
		groups = {armor_feet=1, armor_heal=12, armor_use=100, physics_speed=1,
 | 
			
		||||
				physics_jump=0.5, armor_fire=1},
 | 
			
		||||
		armor_groups = {fleshy=15},
 | 
			
		||||
		damage_groups = {cracky=2, snappy=1, level=3},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
for k, v in pairs(armor.materials) do
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "3d_armor:helmet_"..k,
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
			{"", "", ""},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "3d_armor:chestplate_"..k,
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "3d_armor:leggings_"..k,
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "3d_armor:boots_"..k,
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
@@ -1,91 +0,0 @@
 | 
			
		||||
 | 
			
		||||
armor_api = {
 | 
			
		||||
	player_hp = {},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
armor_api.get_armor_textures = function(self, player)
 | 
			
		||||
	if not player then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local textures = {}
 | 
			
		||||
	local player_inv = player:get_inventory()
 | 
			
		||||
	for _,v in ipairs({"head", "torso", "legs"}) do
 | 
			
		||||
		local stack = player_inv:get_stack("armor_"..v, 1)
 | 
			
		||||
		if stack:get_definition().groups["armor_"..v] then
 | 
			
		||||
			local item = stack:get_name()
 | 
			
		||||
			textures[v] = item:gsub("%:", "_")..".png"
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	local stack = player_inv:get_stack("armor_shield", 1)
 | 
			
		||||
	if stack:get_definition().groups["armor_shield"] then
 | 
			
		||||
		local item = stack:get_name()
 | 
			
		||||
		textures["shield"] = minetest.registered_items[item].inventory_image
 | 
			
		||||
	end	
 | 
			
		||||
	return textures
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor_api.set_player_armor = function(self, player)
 | 
			
		||||
	if not player then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local player_inv = player:get_inventory()
 | 
			
		||||
	local armor_level = 0
 | 
			
		||||
	for _,v in ipairs({"head", "torso", "legs", "shield"}) do
 | 
			
		||||
		local stack = player_inv:get_stack("armor_"..v, 1)
 | 
			
		||||
		local armor = stack:get_definition().groups["armor_"..v] or 0
 | 
			
		||||
		armor_level = armor_level + armor
 | 
			
		||||
	end
 | 
			
		||||
	local armor_groups = {fleshy=100}
 | 
			
		||||
	if armor_level > 0 then
 | 
			
		||||
		armor_groups.level = math.floor(armor_level / 20)
 | 
			
		||||
		armor_groups.fleshy = 100 - armor_level
 | 
			
		||||
	end
 | 
			
		||||
	player:set_armor_groups(armor_groups)
 | 
			
		||||
	uniskins:update_player_visuals(player)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
armor_api.update_armor = function(self, player)
 | 
			
		||||
	if not player then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local hp = player:get_hp()
 | 
			
		||||
	if hp == nil or hp == 0 or hp == self.player_hp[name] then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	if self.player_hp[name] > hp then
 | 
			
		||||
		local player_inv = player:get_inventory()
 | 
			
		||||
		local armor_inv = minetest.get_inventory({type="detached", name=name.."_outfit"})
 | 
			
		||||
		if armor_inv == nil then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		local heal_max = 0
 | 
			
		||||
		for _,v in ipairs({"head", "torso", "legs", "shield"}) do
 | 
			
		||||
			local stack = armor_inv:get_stack("armor_"..v, 1)
 | 
			
		||||
			if stack:get_count() > 0 then
 | 
			
		||||
				local use = stack:get_definition().groups["armor_use"] or 0
 | 
			
		||||
				local heal = stack:get_definition().groups["armor_heal"] or 0
 | 
			
		||||
				local item = stack:get_name()
 | 
			
		||||
				stack:add_wear(use)
 | 
			
		||||
				armor_inv:set_stack("armor_"..v, 1, stack)
 | 
			
		||||
				player_inv:set_stack("armor_"..v, 1, stack)
 | 
			
		||||
				if stack:get_count() == 0 then
 | 
			
		||||
					local desc = minetest.registered_items[item].description
 | 
			
		||||
					if desc then
 | 
			
		||||
						minetest.chat_send_player(name, "Your "..desc.." got destroyed!")
 | 
			
		||||
					end				
 | 
			
		||||
					self:set_player_armor(player)
 | 
			
		||||
				end
 | 
			
		||||
				heal_max = heal_max + heal
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		if heal_max > math.random(100) then
 | 
			
		||||
			player:set_hp(self.player_hp[name])
 | 
			
		||||
			return
 | 
			
		||||
		end		
 | 
			
		||||
	end
 | 
			
		||||
	self.player_hp[name] = hp
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@@ -12,8 +12,13 @@ Helmets:
 | 
			
		||||
+---+---+---+
 | 
			
		||||
 | 
			
		||||
[3d_armor:helmet_wood] X = [default:wood]
 | 
			
		||||
[3d_armor:helmet_cactus] X = [default:cactus]
 | 
			
		||||
[3d_armor:helmet_steel] X = [default:steel_ingot]
 | 
			
		||||
[3d_armor:helmet_bronze] X = [default:bronze_ingot]
 | 
			
		||||
[3d_armor:helmet_diamond] X = [default:diamond]
 | 
			
		||||
[3d_armor:helmet_gold] X = [default:gold_ingot]
 | 
			
		||||
[3d_armor:helmet_mithril] X = [moreores:mithril_ingot] *
 | 
			
		||||
[3d_armor:helmet_crystal] X = [ethereal:crystal_ingot] **
 | 
			
		||||
 | 
			
		||||
Chestplates:
 | 
			
		||||
 | 
			
		||||
@@ -26,8 +31,13 @@ Chestplates:
 | 
			
		||||
+---+---+---+
 | 
			
		||||
 | 
			
		||||
[3d_armor:chestplate_wood] X = [default:wood]
 | 
			
		||||
[3d_armor:chestplate_cactus] X = [default:cactus]
 | 
			
		||||
[3d_armor:chestplate_steel] X = [default:steel_ingot]
 | 
			
		||||
[3d_armor:chestplate_bronze] X = [default:bronze_ingot]
 | 
			
		||||
[3d_armor:chestplate_diamond] X = [default:diamond]
 | 
			
		||||
[3d_armor:chestplate_gold] X = [default:gold_ingot]
 | 
			
		||||
[3d_armor:chestplate_mithril] X = [moreores:mithril_ingot] *
 | 
			
		||||
[3d_armor:chestplate_crystal] X = [ethereal:crystal_ingot] **
 | 
			
		||||
 | 
			
		||||
Leggings:
 | 
			
		||||
 | 
			
		||||
@@ -40,35 +50,30 @@ Leggings:
 | 
			
		||||
+---+---+---+
 | 
			
		||||
 | 
			
		||||
[3d_armor:leggings_wood] X = [default:wood]
 | 
			
		||||
[3d_armor:leggings_cactus] X = [default:cactus]
 | 
			
		||||
[3d_armor:leggings_steel] X = [default:steel_ingot]
 | 
			
		||||
[3d_armor:leggings_bronze] X = [default:bronze_ingot]
 | 
			
		||||
[3d_armor:leggings_diamond] X = [default:diamond]
 | 
			
		||||
[3d_armor:leggings_gold] X = [default:gold_ingot]
 | 
			
		||||
[3d_armor:leggings_mithril] X = [moreores:mithril_ingot] *
 | 
			
		||||
[3d_armor:leggings_crystal] X = [ethereal:crystal_ingot] **
 | 
			
		||||
 | 
			
		||||
Shields:
 | 
			
		||||
Boots:
 | 
			
		||||
 | 
			
		||||
+---+---+---+
 | 
			
		||||
| X | X | X |
 | 
			
		||||
| X |   | X |
 | 
			
		||||
+---+---+---+
 | 
			
		||||
| X | X | X |
 | 
			
		||||
+---+---+---+
 | 
			
		||||
|   | X |   |
 | 
			
		||||
| X |   | X |
 | 
			
		||||
+---+---+---+
 | 
			
		||||
 | 
			
		||||
[3d_armor:shield_wood] X = [default:wood]
 | 
			
		||||
[3d_armor:shield_steel] X = [default:steel_ingot]
 | 
			
		||||
[3d_armor:shield_bronze] X = [default:bronze_ingot
 | 
			
		||||
 | 
			
		||||
Enhanced Wooden Shield:
 | 
			
		||||
 | 
			
		||||
SI = [default:steel_ingot]
 | 
			
		||||
WS = [3d_armor:shield_wood]
 | 
			
		||||
 | 
			
		||||
+----+
 | 
			
		||||
| SI |
 | 
			
		||||
+----+
 | 
			
		||||
| WS |
 | 
			
		||||
+----+
 | 
			
		||||
| SI |
 | 
			
		||||
+----+
 | 
			
		||||
 | 
			
		||||
[3d_armor:shield_enhanced_wood]
 | 
			
		||||
[3d_armor:boots_wood] X = [default:wood]
 | 
			
		||||
[3d_armor:boots_cactus] X = [default:cactus]
 | 
			
		||||
[3d_armor:boots_steel] X = [default:steel_ingot]
 | 
			
		||||
[3d_armor:boots_bronze] X = [default:bronze_ingot
 | 
			
		||||
[3d_armor:boots_diamond] X = [default:diamond]
 | 
			
		||||
[3d_armor:boots_gold] X = [default:gold_ingot]
 | 
			
		||||
[3d_armor:boots_mithril] X = [moreores:mithril_ingot] *
 | 
			
		||||
[3d_armor:boots_crystal] X = [ethereal:crystal_ingot] **
 | 
			
		||||
 | 
			
		||||
 * Requires moreores mod by Calinou - https://forum.minetest.net/viewtopic.php?id=549
 | 
			
		||||
** Requires ethereal mod by Chinchow & TenPlus1 - https://github.com/tenplus1/ethereal
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,8 @@
 | 
			
		||||
default
 | 
			
		||||
inventory_plus
 | 
			
		||||
unified_skins
 | 
			
		||||
player_monoids?
 | 
			
		||||
armor_monoid?
 | 
			
		||||
pova?
 | 
			
		||||
fire?
 | 
			
		||||
ethereal?
 | 
			
		||||
bakedclay?
 | 
			
		||||
intllib?
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								3d_armor/description.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1 @@
 | 
			
		||||
Adds craftable armor that is visible to other players.
 | 
			
		||||
@@ -1,231 +1,471 @@
 | 
			
		||||
dofile(minetest.get_modpath(minetest.get_current_modname()).."/armor_api.lua")
 | 
			
		||||
local modname = minetest.get_current_modname()
 | 
			
		||||
local modpath = minetest.get_modpath(modname)
 | 
			
		||||
local worldpath = minetest.get_worldpath()
 | 
			
		||||
local last_punch_time = {}
 | 
			
		||||
local pending_players = {}
 | 
			
		||||
local timer = 0
 | 
			
		||||
 | 
			
		||||
local time = 0
 | 
			
		||||
local update_time = tonumber(minetest.setting_get("3d_armor_update_time"))
 | 
			
		||||
if not update_time then
 | 
			
		||||
	update_time = 1
 | 
			
		||||
	minetest.setting_set("3d_armor_update_time", tostring(update_time))
 | 
			
		||||
-- support for i18n
 | 
			
		||||
armor_i18n = { }
 | 
			
		||||
armor_i18n.gettext, armor_i18n.ngettext = dofile(modpath.."/intllib.lua")
 | 
			
		||||
 | 
			
		||||
-- local functions
 | 
			
		||||
local S = armor_i18n.gettext
 | 
			
		||||
local F = minetest.formspec_escape
 | 
			
		||||
 | 
			
		||||
dofile(modpath.."/api.lua")
 | 
			
		||||
 | 
			
		||||
-- Legacy Config Support
 | 
			
		||||
 | 
			
		||||
local input = io.open(modpath.."/armor.conf", "r")
 | 
			
		||||
if input then
 | 
			
		||||
	dofile(modpath.."/armor.conf")
 | 
			
		||||
	input:close()
 | 
			
		||||
	input = nil
 | 
			
		||||
end
 | 
			
		||||
input = io.open(worldpath.."/armor.conf", "r")
 | 
			
		||||
if input then
 | 
			
		||||
	dofile(worldpath.."/armor.conf")
 | 
			
		||||
	input:close()
 | 
			
		||||
	input = nil
 | 
			
		||||
end
 | 
			
		||||
for name, _ in pairs(armor.config) do
 | 
			
		||||
	local global = "ARMOR_"..name:upper()
 | 
			
		||||
	if minetest.global_exists(global) then
 | 
			
		||||
		armor.config[name] = _G[global]
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
if minetest.global_exists("ARMOR_MATERIALS") then
 | 
			
		||||
	armor.materials = table.copy(ARMOR_MATERIALS)
 | 
			
		||||
end
 | 
			
		||||
if minetest.global_exists("ARMOR_FIRE_NODES") then
 | 
			
		||||
	armor.fire_nodes = table.copy(ARMOR_FIRE_NODES)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Regisiter Head Armor
 | 
			
		||||
-- Load Configuration
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:helmet_wood", {
 | 
			
		||||
	description = "Wood Helmet",
 | 
			
		||||
	inventory_image = "3d_armor_inv_helmet_wood.png",
 | 
			
		||||
	groups = {armor_head=5, armor_heal=0, armor_use=1000},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:helmet_steel", {
 | 
			
		||||
	description = "Steel Helmet",
 | 
			
		||||
	inventory_image = "3d_armor_inv_helmet_steel.png",
 | 
			
		||||
	groups = {armor_head=10, armor_heal=5, armor_use=250},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:helmet_bronze", {
 | 
			
		||||
	description = "Bronze Helmet",
 | 
			
		||||
	inventory_image = "3d_armor_inv_helmet_bronze.png",
 | 
			
		||||
	groups = {armor_head=15, armor_heal=10, armor_use=100},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Regisiter Torso Armor
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:chestplate_wood", {
 | 
			
		||||
	description = "Wood Chestplate",
 | 
			
		||||
	inventory_image = "3d_armor_inv_chestplate_wood.png",
 | 
			
		||||
	groups = {armor_torso=10, armor_heal=0, armor_use=1000},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:chestplate_steel", {
 | 
			
		||||
	description = "Steel Chestplate",
 | 
			
		||||
	inventory_image = "3d_armor_inv_chestplate_steel.png",
 | 
			
		||||
	groups = {armor_torso=15, armor_heal=5, armor_use=250},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:chestplate_bronze", {
 | 
			
		||||
	description = "Bronze Chestplate",
 | 
			
		||||
	inventory_image = "3d_armor_inv_chestplate_bronze.png",
 | 
			
		||||
	groups = {armor_torso=25, armor_heal=10, armor_use=100},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Regisiter Leg Armor
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:leggings_wood", {
 | 
			
		||||
	description = "Wood Leggings",
 | 
			
		||||
	inventory_image = "3d_armor_inv_leggings_wood.png",
 | 
			
		||||
	groups = {armor_legs=5, armor_heal=0, armor_use=1000},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:leggings_steel", {
 | 
			
		||||
	description = "Steel Leggings",
 | 
			
		||||
	inventory_image = "3d_armor_inv_leggings_steel.png",
 | 
			
		||||
	groups = {armor_legs=10, armor_heal=5, armor_use=250},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:leggings_bronze", {
 | 
			
		||||
	description = "Bronze Leggings",
 | 
			
		||||
	inventory_image = "3d_armor_inv_leggings_bronze.png",
 | 
			
		||||
	groups = {armor_legs=15, armor_heal=10, armor_use=100},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Regisiter Shields
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:shield_wood", {
 | 
			
		||||
	description = "Wooden Shield",
 | 
			
		||||
	inventory_image = "3d_armor_inv_shield_wood.png",
 | 
			
		||||
	groups = {armor_shield=10, armor_heal=0, armor_use=1000},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:shield_enhanced_wood", {
 | 
			
		||||
	description = "Enhanced Wooden Shield",
 | 
			
		||||
	inventory_image = "3d_armor_inv_shield_enhanced_wood.png",
 | 
			
		||||
	groups = {armor_shield=15, armor_heal=5, armor_use=500},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:shield_steel", {
 | 
			
		||||
	description = "Steel Shield",
 | 
			
		||||
	inventory_image = "3d_armor_inv_shield_steel.png",
 | 
			
		||||
	groups = {armor_shield=20, armor_heal=5, armor_use=250},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_tool("3d_armor:shield_bronze", {
 | 
			
		||||
	description = "Bronze Shield",
 | 
			
		||||
	inventory_image = "3d_armor_inv_shield_bronze.png",
 | 
			
		||||
	groups = {armor_shield=25, armor_heal=10, armor_use=100},
 | 
			
		||||
	wear = 0,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Register Craft Recipies
 | 
			
		||||
 | 
			
		||||
local craft_ingreds = {
 | 
			
		||||
	wood = "default:wood",
 | 
			
		||||
	steel = "default:steel_ingot",
 | 
			
		||||
	bronze = "default:bronze_ingot",
 | 
			
		||||
}	
 | 
			
		||||
 | 
			
		||||
for k, v in pairs(craft_ingreds) do
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "3d_armor:helmet_"..k,
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
			{"", "", ""},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "3d_armor:chestplate_"..k,
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "3d_armor:leggings_"..k,
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
			{v, "", v},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "3d_armor:shield_"..k,
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
			{v, v, v},
 | 
			
		||||
			{"", v, ""},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
for name, config in pairs(armor.config) do
 | 
			
		||||
	local setting = minetest.settings:get("armor_"..name)
 | 
			
		||||
	if type(config) == "number" then
 | 
			
		||||
		setting = tonumber(setting)
 | 
			
		||||
	elseif type(config) == "boolean" then
 | 
			
		||||
		setting = minetest.settings:get_bool("armor_"..name)
 | 
			
		||||
	end
 | 
			
		||||
	if setting ~= nil then
 | 
			
		||||
		armor.config[name] = setting
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
for material, _ in pairs(armor.materials) do
 | 
			
		||||
	local key = "material_"..material
 | 
			
		||||
	if armor.config[key] == false then
 | 
			
		||||
		armor.materials[material] = nil
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "3d_armor:shield_enhanced_wood",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"default:steel_ingot"},
 | 
			
		||||
		{"3d_armor:shield_wood"},
 | 
			
		||||
		{"default:steel_ingot"},
 | 
			
		||||
-- Mod Compatibility
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("technic") then
 | 
			
		||||
	armor.formspec = armor.formspec..
 | 
			
		||||
		"label[5,2.5;"..F(S("Radiation"))..":  armor_group_radiation]"
 | 
			
		||||
	armor:register_armor_group("radiation")
 | 
			
		||||
end
 | 
			
		||||
local skin_mods = {"skins", "u_skins", "simple_skins", "wardrobe"}
 | 
			
		||||
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
 | 
			
		||||
	armor.materials.mithril = nil
 | 
			
		||||
end
 | 
			
		||||
if not minetest.get_modpath("ethereal") then
 | 
			
		||||
	armor.materials.crystal = nil
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
dofile(modpath.."/armor.lua")
 | 
			
		||||
 | 
			
		||||
-- Armor Initialization
 | 
			
		||||
 | 
			
		||||
armor.formspec = armor.formspec..
 | 
			
		||||
	"label[5,1;"..F(S("Level"))..": armor_level]"..
 | 
			
		||||
	"label[5,1.5;"..F(S("Heal"))..":  armor_attr_heal]"
 | 
			
		||||
if armor.config.fire_protect then
 | 
			
		||||
	armor.formspec = armor.formspec.."label[5,2;"..F(S("Fire"))..":  armor_attr_fire]"
 | 
			
		||||
end
 | 
			
		||||
armor:register_on_destroy(function(player, index, stack)
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local def = stack:get_definition()
 | 
			
		||||
	if name and def and def.description then
 | 
			
		||||
		minetest.chat_send_player(name, S("Your @1 got destroyed!", def.description))
 | 
			
		||||
	end
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
local function validate_armor_inventory(player)
 | 
			
		||||
	-- Workaround for detached inventory swap exploit
 | 
			
		||||
	local _, inv = armor:get_valid_player(player, "[validate_armor_inventory]")
 | 
			
		||||
	if not inv then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local armor_prev = {}
 | 
			
		||||
	local armor_list_string = player:get_attribute("3d_armor_inventory")
 | 
			
		||||
	if armor_list_string then
 | 
			
		||||
		local armor_list = armor:deserialize_inventory_list(armor_list_string)
 | 
			
		||||
		for i, stack in ipairs(armor_list) do
 | 
			
		||||
			if stack:get_count() > 0 then
 | 
			
		||||
				armor_prev[stack:get_name()] = i
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	local elements = {}
 | 
			
		||||
	local player_inv = player:get_inventory()
 | 
			
		||||
	for i = 1, 6 do
 | 
			
		||||
		local stack = inv:get_stack("armor", i)
 | 
			
		||||
		if stack:get_count() > 0 then
 | 
			
		||||
			local item = stack:get_name()
 | 
			
		||||
			local element = armor:get_element(item)
 | 
			
		||||
			if element and not elements[element] then
 | 
			
		||||
				if armor_prev[item] then
 | 
			
		||||
					armor_prev[item] = nil
 | 
			
		||||
				else
 | 
			
		||||
					-- Item was not in previous inventory
 | 
			
		||||
					armor:run_callbacks("on_equip", player, i, stack)
 | 
			
		||||
				end
 | 
			
		||||
				elements[element] = true;
 | 
			
		||||
			else
 | 
			
		||||
				inv:remove_item("armor", stack)
 | 
			
		||||
				-- The following code returns invalid items to the player's main
 | 
			
		||||
				-- inventory but could open up the possibity for a hacked client
 | 
			
		||||
				-- to receive items back they never really had. I am not certain
 | 
			
		||||
				-- so remove the is_singleplayer check at your own risk :]
 | 
			
		||||
				if minetest.is_singleplayer() and player_inv and
 | 
			
		||||
						player_inv:room_for_item("main", stack) then
 | 
			
		||||
					player_inv:add_item("main", stack)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	for item, i in pairs(armor_prev) do
 | 
			
		||||
		local stack = ItemStack(item)
 | 
			
		||||
		-- Previous item is not in current inventory
 | 
			
		||||
		armor:run_callbacks("on_unequip", player, i, stack)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function init_player_armor(player)
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local pos = player:getpos()
 | 
			
		||||
	if not name or not pos then
 | 
			
		||||
		return false
 | 
			
		||||
	end
 | 
			
		||||
	local armor_inv = minetest.create_detached_inventory(name.."_armor", {
 | 
			
		||||
		on_put = function(inv, listname, index, stack, player)
 | 
			
		||||
			validate_armor_inventory(player)
 | 
			
		||||
			armor:save_armor_inventory(player)
 | 
			
		||||
			armor:set_player_armor(player)
 | 
			
		||||
		end,
 | 
			
		||||
		on_take = function(inv, listname, index, stack, player)
 | 
			
		||||
			validate_armor_inventory(player)
 | 
			
		||||
			armor:save_armor_inventory(player)
 | 
			
		||||
			armor:set_player_armor(player)
 | 
			
		||||
		end,
 | 
			
		||||
		on_move = function(inv, from_list, from_index, to_list, to_index, count, player)
 | 
			
		||||
			validate_armor_inventory(player)
 | 
			
		||||
			armor:save_armor_inventory(player)
 | 
			
		||||
			armor:set_player_armor(player)
 | 
			
		||||
		end,
 | 
			
		||||
		allow_put = function(inv, listname, index, put_stack, player)
 | 
			
		||||
			local element = armor:get_element(put_stack:get_name())
 | 
			
		||||
			if not element then
 | 
			
		||||
				return 0
 | 
			
		||||
			end
 | 
			
		||||
			for i = 1, 6 do
 | 
			
		||||
				local stack = inv:get_stack("armor", i)
 | 
			
		||||
				local def = stack:get_definition() or {}
 | 
			
		||||
				if def.groups and def.groups["armor_"..element]
 | 
			
		||||
						and i ~= index then
 | 
			
		||||
					return 0
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
			return 1
 | 
			
		||||
		end,
 | 
			
		||||
		allow_take = function(inv, listname, index, stack, player)
 | 
			
		||||
			return stack:get_count()
 | 
			
		||||
		end,
 | 
			
		||||
		allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
 | 
			
		||||
			return count
 | 
			
		||||
		end,
 | 
			
		||||
	}, name)
 | 
			
		||||
	armor_inv:set_size("armor", 6)
 | 
			
		||||
	if not armor:load_armor_inventory(player) and armor.migrate_old_inventory then
 | 
			
		||||
		local player_inv = player:get_inventory()
 | 
			
		||||
		player_inv:set_size("armor", 6)
 | 
			
		||||
		for i=1, 6 do
 | 
			
		||||
			local stack = player_inv:get_stack("armor", i)
 | 
			
		||||
			armor_inv:set_stack("armor", i, stack)
 | 
			
		||||
		end
 | 
			
		||||
		armor:save_armor_inventory(player)
 | 
			
		||||
		player_inv:set_size("armor", 0)
 | 
			
		||||
	end
 | 
			
		||||
	for i=1, 6 do
 | 
			
		||||
		local stack = armor_inv:get_stack("armor", i)
 | 
			
		||||
		if stack:get_count() > 0 then
 | 
			
		||||
			armor:run_callbacks("on_equip", player, i, stack)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	armor.def[name] = {
 | 
			
		||||
		init_time = minetest.get_gametime(),
 | 
			
		||||
		level = 0,
 | 
			
		||||
		state = 0,
 | 
			
		||||
		count = 0,
 | 
			
		||||
		groups = {},
 | 
			
		||||
	}
 | 
			
		||||
	for _, phys in pairs(armor.physics) do
 | 
			
		||||
		armor.def[name][phys] = 1
 | 
			
		||||
	end
 | 
			
		||||
	for _, attr in pairs(armor.attributes) do
 | 
			
		||||
		armor.def[name][attr] = 0
 | 
			
		||||
	end
 | 
			
		||||
	for group, _ in pairs(armor.registered_groups) do
 | 
			
		||||
		armor.def[name].groups[group] = 0
 | 
			
		||||
	end
 | 
			
		||||
	local skin = armor:get_player_skin(name)
 | 
			
		||||
	armor.textures[name] = {
 | 
			
		||||
		skin = skin,
 | 
			
		||||
		armor = "3d_armor_trans.png",
 | 
			
		||||
		wielditem = "3d_armor_trans.png",
 | 
			
		||||
		preview = armor.default_skin.."_preview.png",
 | 
			
		||||
	}
 | 
			
		||||
	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)
 | 
			
		||||
	return true
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Armor Player Model
 | 
			
		||||
 | 
			
		||||
default.player_register_model("3d_armor_character.b3d", {
 | 
			
		||||
	animation_speed = 30,
 | 
			
		||||
	textures = {
 | 
			
		||||
		armor.default_skin..".png",
 | 
			
		||||
		"3d_armor_trans.png",
 | 
			
		||||
		"3d_armor_trans.png",
 | 
			
		||||
	},
 | 
			
		||||
	animations = {
 | 
			
		||||
		stand = {x=0, y=79},
 | 
			
		||||
		lay = {x=162, y=166},
 | 
			
		||||
		walk = {x=168, y=187},
 | 
			
		||||
		mine = {x=189, y=198},
 | 
			
		||||
		walk_mine = {x=200, y=219},
 | 
			
		||||
		sit = {x=81, y=160},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Register Callbacks
 | 
			
		||||
 | 
			
		||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	if fields.outfit then
 | 
			
		||||
		inventory_plus.set_inventory_formspec(player, "size[8,7.5]"
 | 
			
		||||
		.."button[0,0;2,0.5;main;Back]"
 | 
			
		||||
		.."list[current_player;main;0,3.5;8,4;]"
 | 
			
		||||
		.."list[detached:"..name.."_outfit;armor_head;3,0;1,1;]"
 | 
			
		||||
		.."list[detached:"..name.."_outfit;armor_torso;3,1;1,1;]"
 | 
			
		||||
		.."list[detached:"..name.."_outfit;armor_legs;3,2;1,1;]"
 | 
			
		||||
		.."list[detached:"..name.."_outfit;armor_shield;4,1;1,1;]")
 | 
			
		||||
	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.sub(field,0,string.len("skins_set_")) == "skins_set_" then
 | 
			
		||||
		if string.find(field, "skins_set") then
 | 
			
		||||
			minetest.after(0, function(player)
 | 
			
		||||
				armor_api:set_player_armor(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)
 | 
			
		||||
	inventory_plus.register_button(player,"outfit", "Outfit")
 | 
			
		||||
	local player_inv = player:get_inventory()
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local armor_inv = minetest.create_detached_inventory(name.."_outfit",{
 | 
			
		||||
		on_put = function(inv, listname, index, stack, player)
 | 
			
		||||
			player:get_inventory():set_stack(listname, index, stack)
 | 
			
		||||
			armor_api:set_player_armor(player)
 | 
			
		||||
		end,
 | 
			
		||||
		on_take = function(inv, listname, index, stack, player)
 | 
			
		||||
			player:get_inventory():set_stack(listname, index, nil)
 | 
			
		||||
			armor_api:set_player_armor(player)
 | 
			
		||||
		end,
 | 
			
		||||
		allow_put = function(inv, listname, index, stack, player)
 | 
			
		||||
			if inv:is_empty(listname) then
 | 
			
		||||
				return 1
 | 
			
		||||
			end
 | 
			
		||||
			return 0
 | 
			
		||||
		end,
 | 
			
		||||
		allow_take = function(inv, listname, index, stack, player)
 | 
			
		||||
			return stack:get_count()
 | 
			
		||||
		end,
 | 
			
		||||
		allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
 | 
			
		||||
			return 0
 | 
			
		||||
		end,
 | 
			
		||||
	})
 | 
			
		||||
	for _,v in ipairs({"head", "torso", "legs", "shield"}) do
 | 
			
		||||
		local armor = "armor_"..v
 | 
			
		||||
		player_inv:set_size(armor, 1)
 | 
			
		||||
		armor_inv:set_size(armor, 1)
 | 
			
		||||
		armor_inv:set_stack(armor, 1, player_inv:get_stack(armor, 1))
 | 
			
		||||
	end
 | 
			
		||||
	armor_api.player_hp[name] = 0
 | 
			
		||||
	default.player_set_model(player, "3d_armor_character.b3d")
 | 
			
		||||
	minetest.after(0, function(player)
 | 
			
		||||
		armor_api:set_player_armor(player)
 | 
			
		||||
	end, player)	
 | 
			
		||||
		if init_player_armor(player) == false then
 | 
			
		||||
			pending_players[player] = 0
 | 
			
		||||
		end
 | 
			
		||||
	end, player)
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
minetest.register_on_leaveplayer(function(player)
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	if name then
 | 
			
		||||
		armor.def[name] = nil
 | 
			
		||||
		armor.textures[name] = nil
 | 
			
		||||
	end
 | 
			
		||||
	pending_players[player] = nil
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
if armor.config.drop == true or armor.config.destroy == true then
 | 
			
		||||
	minetest.register_on_dieplayer(function(player)
 | 
			
		||||
		local name, armor_inv = armor:get_valid_player(player, "[on_dieplayer]")
 | 
			
		||||
		if not name then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		local drop = {}
 | 
			
		||||
		for i=1, armor_inv:get_size("armor") do
 | 
			
		||||
			local stack = armor_inv:get_stack("armor", i)
 | 
			
		||||
			if stack:get_count() > 0 then
 | 
			
		||||
				table.insert(drop, stack)
 | 
			
		||||
				armor:run_callbacks("on_unequip", player, i, stack)
 | 
			
		||||
				armor_inv:set_stack("armor", i, nil)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		armor:save_armor_inventory(player)
 | 
			
		||||
		armor:set_player_armor(player)
 | 
			
		||||
		local pos = player:getpos()
 | 
			
		||||
		if pos and armor.config.destroy == false then
 | 
			
		||||
			minetest.after(armor.config.bones_delay, function()
 | 
			
		||||
				local meta = nil
 | 
			
		||||
				local maxp = vector.add(pos, 8)
 | 
			
		||||
				local minp = vector.subtract(pos, 8)
 | 
			
		||||
				local bones = minetest.find_nodes_in_area(minp, maxp, {"bones:bones"})
 | 
			
		||||
				for _, p in pairs(bones) do
 | 
			
		||||
					local m = minetest.get_meta(p)
 | 
			
		||||
					if m:get_string("owner") == name then
 | 
			
		||||
						meta = m
 | 
			
		||||
						break
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
				if meta then
 | 
			
		||||
					local inv = meta:get_inventory()
 | 
			
		||||
					for _,stack in ipairs(drop) do
 | 
			
		||||
						if inv:room_for_item("main", stack) then
 | 
			
		||||
							inv:add_item("main", stack)
 | 
			
		||||
						else
 | 
			
		||||
							armor.drop_armor(pos, stack)
 | 
			
		||||
						end
 | 
			
		||||
					end
 | 
			
		||||
				else
 | 
			
		||||
					for _,stack in ipairs(drop) do
 | 
			
		||||
						armor.drop_armor(pos, stack)
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
			end)
 | 
			
		||||
		end
 | 
			
		||||
	end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.config.punch_damage == true then
 | 
			
		||||
	minetest.register_on_punchplayer(function(player, hitter,
 | 
			
		||||
			time_from_last_punch, tool_capabilities)
 | 
			
		||||
		local name = player:get_player_name()
 | 
			
		||||
		if name then
 | 
			
		||||
			armor:punch(player, hitter, time_from_last_punch, tool_capabilities)
 | 
			
		||||
			last_punch_time[name] = minetest.get_gametime()
 | 
			
		||||
		end
 | 
			
		||||
	end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_on_player_hpchange(function(player, hp_change)
 | 
			
		||||
	if player and hp_change < 0 then
 | 
			
		||||
		local name = player:get_player_name()
 | 
			
		||||
		if name then
 | 
			
		||||
			local heal = armor.def[name].heal
 | 
			
		||||
			if heal >= math.random(100) then
 | 
			
		||||
				hp_change = 0
 | 
			
		||||
			end
 | 
			
		||||
			-- check if armor damage was handled by fire or on_punchplayer
 | 
			
		||||
			local time = last_punch_time[name] or 0
 | 
			
		||||
			if time == 0 or time + 1 < minetest.get_gametime() then
 | 
			
		||||
				armor:punch(player)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	return hp_change
 | 
			
		||||
end, true)
 | 
			
		||||
 | 
			
		||||
minetest.register_globalstep(function(dtime)
 | 
			
		||||
	time = time + dtime
 | 
			
		||||
	if time > update_time then
 | 
			
		||||
		for _,player in ipairs(minetest.get_connected_players()) do
 | 
			
		||||
			armor_api:update_armor(player)
 | 
			
		||||
	timer = timer + dtime
 | 
			
		||||
	if timer > armor.config.init_delay then
 | 
			
		||||
		for player, count in pairs(pending_players) do
 | 
			
		||||
			local remove = init_player_armor(player) == true
 | 
			
		||||
			pending_players[player] = count + 1
 | 
			
		||||
			if remove == false and count > armor.config.init_times then
 | 
			
		||||
				minetest.log("warning", S("3d_armor: Failed to initialize player"))
 | 
			
		||||
				remove = true
 | 
			
		||||
			end
 | 
			
		||||
			if remove == true then
 | 
			
		||||
				pending_players[player] = nil
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		time = 0
 | 
			
		||||
		timer = 0
 | 
			
		||||
	end
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
-- Fire Protection and water breating, added by TenPlus1
 | 
			
		||||
 | 
			
		||||
if armor.config.fire_protect == true then
 | 
			
		||||
	-- override hot nodes so they do not hurt player anywhere but mod
 | 
			
		||||
	for _, row in pairs(armor.fire_nodes) do
 | 
			
		||||
		if minetest.registered_nodes[row[1]] then
 | 
			
		||||
			minetest.override_item(row[1], {damage_per_second = 0})
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
else
 | 
			
		||||
	print (S("[3d_armor] Fire Nodes disabled"))
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if armor.config.water_protect == true or armor.config.fire_protect == true then
 | 
			
		||||
	minetest.register_globalstep(function(dtime)
 | 
			
		||||
		armor.timer = armor.timer + dtime
 | 
			
		||||
		if armor.timer < armor.config.update_time then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		for _,player in pairs(minetest.get_connected_players()) do
 | 
			
		||||
			local name = player:get_player_name()
 | 
			
		||||
			local pos = player:getpos()
 | 
			
		||||
			local hp = player:get_hp()
 | 
			
		||||
			if not name or not pos or not hp then
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
			-- water breathing
 | 
			
		||||
			if armor.config.water_protect == true then
 | 
			
		||||
				if armor.def[name].water > 0 and
 | 
			
		||||
						player:get_breath() < 10 then
 | 
			
		||||
					player:set_breath(10)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
			-- fire protection
 | 
			
		||||
			if armor.config.fire_protect == true then
 | 
			
		||||
				local fire_damage = true
 | 
			
		||||
				pos.y = pos.y + 1.4 -- head level
 | 
			
		||||
				local node_head = minetest.get_node(pos).name
 | 
			
		||||
				pos.y = pos.y - 1.2 -- feet level
 | 
			
		||||
				local node_feet = minetest.get_node(pos).name
 | 
			
		||||
				-- is player inside a hot node?
 | 
			
		||||
				for _, row in pairs(armor.fire_nodes) do
 | 
			
		||||
					-- check fire protection, if not enough then get hurt
 | 
			
		||||
					if row[1] == node_head or row[1] == node_feet then
 | 
			
		||||
						if fire_damage == true then
 | 
			
		||||
							armor:punch(player, "fire")
 | 
			
		||||
							last_punch_time[name] = minetest.get_gametime()
 | 
			
		||||
							fire_damage = false
 | 
			
		||||
						end
 | 
			
		||||
						if hp > 0 and armor.def[name].fire < row[2] then
 | 
			
		||||
							hp = hp - row[3] * armor.config.update_time
 | 
			
		||||
							player:set_hp(hp)
 | 
			
		||||
							break
 | 
			
		||||
						end
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		armor.timer = 0
 | 
			
		||||
	end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.log("action", "[3d_armor] loaded.")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										45
									
								
								3d_armor/intllib.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,45 @@
 | 
			
		||||
 | 
			
		||||
-- Fallback functions for when `intllib` is not installed.
 | 
			
		||||
-- Code released under Unlicense <http://unlicense.org>.
 | 
			
		||||
 | 
			
		||||
-- Get the latest version of this file at:
 | 
			
		||||
--   https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
 | 
			
		||||
 | 
			
		||||
local function format(str, ...)
 | 
			
		||||
	local args = { ... }
 | 
			
		||||
	local function repl(escape, open, num, close)
 | 
			
		||||
		if escape == "" then
 | 
			
		||||
			local replacement = tostring(args[tonumber(num)])
 | 
			
		||||
			if open == "" then
 | 
			
		||||
				replacement = replacement..close
 | 
			
		||||
			end
 | 
			
		||||
			return replacement
 | 
			
		||||
		else
 | 
			
		||||
			return "@"..open..num..close
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local gettext, ngettext
 | 
			
		||||
if minetest.get_modpath("intllib") then
 | 
			
		||||
	if intllib.make_gettext_pair then
 | 
			
		||||
		-- New method using gettext.
 | 
			
		||||
		gettext, ngettext = intllib.make_gettext_pair()
 | 
			
		||||
	else
 | 
			
		||||
		-- Old method using text files.
 | 
			
		||||
		gettext = intllib.Getter()
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Fill in missing functions.
 | 
			
		||||
 | 
			
		||||
gettext = gettext or function(msgid, ...)
 | 
			
		||||
	return format(msgid, ...)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
 | 
			
		||||
	return format(n==1 and msgid or msgid_plural, ...)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
return gettext, ngettext
 | 
			
		||||
							
								
								
									
										384
									
								
								3d_armor/locale/es.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,384 @@
 | 
			
		||||
# SOME DESCRIPTIVE TITLE.
 | 
			
		||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 | 
			
		||||
# This file is distributed under the same license as the PACKAGE package.
 | 
			
		||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2017-08-06 18:20+0200\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
			
		||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
			
		||||
"Language: es\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player name is nil @1"
 | 
			
		||||
msgstr "3d_armor: El nombre del jugador es nulo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player inventory is nil @1"
 | 
			
		||||
msgstr "3d_armor: El inventario del jugador es nulo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Detached armor inventory is nil @1"
 | 
			
		||||
msgstr "3d_armor: La armadura desconectada es nula @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player reference is nil @1"
 | 
			
		||||
msgstr "3d_armor: La referencia del jugador es nula @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Helmet"
 | 
			
		||||
msgstr "Casco de admin"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Chestplate"
 | 
			
		||||
msgstr "Peto de admin"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Leggings"
 | 
			
		||||
msgstr "Polainas de admin"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Boots"
 | 
			
		||||
msgstr "Botas de admin"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Helmet"
 | 
			
		||||
msgstr "Casco de madera"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Chestplate"
 | 
			
		||||
msgstr "Peto de madera"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Leggings"
 | 
			
		||||
msgstr "Polainas de madera"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Boots"
 | 
			
		||||
msgstr "Botas de madera"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Helmet"
 | 
			
		||||
msgstr "Casco de cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Chestplate"
 | 
			
		||||
msgstr "Peto de cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Leggings"
 | 
			
		||||
msgstr "Polainas de cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Boots"
 | 
			
		||||
msgstr "Botas de cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Helmet"
 | 
			
		||||
msgstr "Casco de acero"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Chestplate"
 | 
			
		||||
msgstr "Peto de acero"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Leggings"
 | 
			
		||||
msgstr "Polainas de acero"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Boots"
 | 
			
		||||
msgstr "Botas de acero"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Helmet"
 | 
			
		||||
msgstr "Casco de bronce"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Chestplate"
 | 
			
		||||
msgstr "Peto de bronce"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Leggings"
 | 
			
		||||
msgstr "Polainas de bronce"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Boots"
 | 
			
		||||
msgstr "Botas de bronce"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Helmet"
 | 
			
		||||
msgstr "Casco de diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Chestplate"
 | 
			
		||||
msgstr "Peto de diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Leggings"
 | 
			
		||||
msgstr "Polainas de diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Boots"
 | 
			
		||||
msgstr "Botas de diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Helmet"
 | 
			
		||||
msgstr "Casco de oro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Chestplate"
 | 
			
		||||
msgstr "Peto de oro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Leggings"
 | 
			
		||||
msgstr "Polainas de oro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Boots"
 | 
			
		||||
msgstr "Botas de oro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Helmet"
 | 
			
		||||
msgstr "Casco de mitrilo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Chestplate"
 | 
			
		||||
msgstr "Peto de mitrilo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Leggings"
 | 
			
		||||
msgstr "Polainas de mitrilo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Boots"
 | 
			
		||||
msgstr "Botas de mitrilo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Helmet"
 | 
			
		||||
msgstr "Casco de cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Chestplate"
 | 
			
		||||
msgstr "Peto de cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Leggings"
 | 
			
		||||
msgstr "Polainas de cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Boots"
 | 
			
		||||
msgstr "Botas de cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Radiation"
 | 
			
		||||
msgstr "Radiación"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Level"
 | 
			
		||||
msgstr "Nivel"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Heal"
 | 
			
		||||
msgstr "Salud"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Fire"
 | 
			
		||||
msgstr "Fuego"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "Your @1 got destroyed!"
 | 
			
		||||
msgstr "¡Tu @1 fue destruído!"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "3d_armor: Failed to initialize player"
 | 
			
		||||
msgstr "3d_armor: Fallo en la inicialización del jugador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "[3d_armor] Fire Nodes disabled"
 | 
			
		||||
msgstr "[3d_armor] Nodos de fuego desabilitados"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "3d_armor_ip: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ip: Mod cargado, pero sin ser usado."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "Back"
 | 
			
		||||
msgstr "Volver"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor"
 | 
			
		||||
msgstr "Armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_sfinv/init.lua
 | 
			
		||||
msgid "3d_armor_sfinv: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_sfinv: Mod cargado, pero sin ser usado."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand top"
 | 
			
		||||
msgstr "Parte arriba maniquí armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand"
 | 
			
		||||
msgstr "Maniquí para armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand"
 | 
			
		||||
msgstr "Maniquí para armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Locked Armor stand"
 | 
			
		||||
msgstr "Maniquí para armadura (bloqueado)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand (owned by @1)"
 | 
			
		||||
msgstr "Maniquí para armadura (propiedad de @1)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d_armor_ui: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ui: Mod cargado, pero sin ser usado."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d Armor"
 | 
			
		||||
msgstr "Armadura 3d"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor not initialized!"
 | 
			
		||||
msgstr "¡Armadura no inicializada!"
 | 
			
		||||
 | 
			
		||||
#: ../hazmat_suit/init.lua
 | 
			
		||||
msgid "hazmat_suit: Mod loaded but unused."
 | 
			
		||||
msgstr "hazmat_suit: Mod cargado, pero sin ser usado."
 | 
			
		||||
 | 
			
		||||
#: ../hazmat_suit/init.lua
 | 
			
		||||
msgid "Hazmat Helmet"
 | 
			
		||||
msgstr "Casco de hazmat"
 | 
			
		||||
 | 
			
		||||
#: ../hazmat_suit/init.lua
 | 
			
		||||
msgid "Hazmat Chestplate"
 | 
			
		||||
msgstr "Peto de hazmat"
 | 
			
		||||
 | 
			
		||||
#: ../hazmat_suit/init.lua
 | 
			
		||||
msgid "Hazmat Sleeve"
 | 
			
		||||
msgstr "Manga de hazmat"
 | 
			
		||||
 | 
			
		||||
#: ../hazmat_suit/init.lua
 | 
			
		||||
msgid "Hazmat Leggins"
 | 
			
		||||
msgstr "Polainas de hazmat"
 | 
			
		||||
 | 
			
		||||
#: ../hazmat_suit/init.lua
 | 
			
		||||
msgid "Hazmat Boots"
 | 
			
		||||
msgstr "Botas de hazmat"
 | 
			
		||||
 | 
			
		||||
#: ../hazmat_suit/init.lua
 | 
			
		||||
msgid "Hazmat Suit"
 | 
			
		||||
msgstr "Traje de hazmat"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Admin Shield"
 | 
			
		||||
msgstr "Escudo de admin"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Wooden Shield"
 | 
			
		||||
msgstr "Escudo de madera"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Wood Shield"
 | 
			
		||||
msgstr "Escudo de madera mejorado"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Cactus Shield"
 | 
			
		||||
msgstr "Escudo de cactus"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Cactus Shield"
 | 
			
		||||
msgstr "Escudo de cactus mejorado"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Steel Shield"
 | 
			
		||||
msgstr "Escudo de acero"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Bronze Shield"
 | 
			
		||||
msgstr "Escudo de bronce"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Diamond Shield"
 | 
			
		||||
msgstr "Escudo de diamante"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Gold Shield"
 | 
			
		||||
msgstr "Escudo de oro"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Mithril Shield"
 | 
			
		||||
msgstr "Escudo de mitrilo"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Crystal Shield"
 | 
			
		||||
msgstr "Escudo de cristal"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "technic_armor: Mod loaded but unused."
 | 
			
		||||
msgstr "technic_armor: Mod cargado, pero no usado."
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Lead"
 | 
			
		||||
msgstr "Plomo"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Brass"
 | 
			
		||||
msgstr "Latón"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Cast Iron"
 | 
			
		||||
msgstr "Hierro fundido"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Carbon Steel"
 | 
			
		||||
msgstr "Acero carbono"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Stainless Steel"
 | 
			
		||||
msgstr "Acero inoxidable"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Tin"
 | 
			
		||||
msgstr "Estaño"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Silver"
 | 
			
		||||
msgstr "Plata"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Helmet"
 | 
			
		||||
msgstr "Casco"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Chestplate"
 | 
			
		||||
msgstr "Peto"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Leggins"
 | 
			
		||||
msgstr "Polainas"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Boots"
 | 
			
		||||
msgstr "Botas"
 | 
			
		||||
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "Shield"
 | 
			
		||||
msgstr "Escudo"
 | 
			
		||||
 | 
			
		||||
#. Translators: @1 stands for material and @2 for part of the armor, so that you could use a conjunction if in your language part name comes first then material (e.g. in french 'Silver Boots' is translated in 'Bottes en argent' by using '@2 en @1' as translated string)
 | 
			
		||||
#: ../technic_armor/init.lua
 | 
			
		||||
msgid "@1 @2"
 | 
			
		||||
msgstr "@2 de @1"
 | 
			
		||||
							
								
								
									
										295
									
								
								3d_armor/locale/fr.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,295 @@
 | 
			
		||||
# French translation for 3D ARMOR MOD
 | 
			
		||||
# Copyright (C) 2018 by Stuart Jones
 | 
			
		||||
# This file is distributed under the same license as the 3D ARMOR MOD package.
 | 
			
		||||
# fat115 <fat115@framasoft.org>, 2017.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: \n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2018-07-23 21:30+0200\n"
 | 
			
		||||
"Last-Translator: fat115 <fat115@framasoft.org>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: fr\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.12\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player reference is nil @1"
 | 
			
		||||
msgstr "3d_armor : Référence au joueur non trouvée @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player name is nil @1"
 | 
			
		||||
msgstr "3d_armor : Nom du joueur non trouvé @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Detached armor inventory is nil @1"
 | 
			
		||||
msgstr "3d_armor : Inventaire détaché pour l'armure non trouvé @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Helmet"
 | 
			
		||||
msgstr "Casque d'admin"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Chestplate"
 | 
			
		||||
msgstr "Cuirasse d'admin"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Leggings"
 | 
			
		||||
msgstr "Jambières d'admin"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Boots"
 | 
			
		||||
msgstr "Bottes d'admin"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Helmet"
 | 
			
		||||
msgstr "Casque en bois"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Chestplate"
 | 
			
		||||
msgstr "Cuirasse en bois"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Leggings"
 | 
			
		||||
msgstr "Jambières en bois"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Boots"
 | 
			
		||||
msgstr "Bottes en bois"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Helmet"
 | 
			
		||||
msgstr "Casque en cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Chestplate"
 | 
			
		||||
msgstr "Cuirasse en cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Leggings"
 | 
			
		||||
msgstr "Jambières en cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Boots"
 | 
			
		||||
msgstr "Bottes en cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Helmet"
 | 
			
		||||
msgstr "Casque en acier"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Chestplate"
 | 
			
		||||
msgstr " = Cuirasse en acier"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Leggings"
 | 
			
		||||
msgstr "Jambières en acier"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Boots"
 | 
			
		||||
msgstr "Bottes en acier"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Helmet"
 | 
			
		||||
msgstr "Casque en bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Chestplate"
 | 
			
		||||
msgstr "Cuirasse en bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Leggings"
 | 
			
		||||
msgstr "Jambières en bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Boots"
 | 
			
		||||
msgstr "Bottes en bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Helmet"
 | 
			
		||||
msgstr "Casque en diamant"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Chestplate"
 | 
			
		||||
msgstr "Cuirasse en diamant"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Leggings"
 | 
			
		||||
msgstr "Jambières en diamant"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Boots"
 | 
			
		||||
msgstr "Bottes en diamant"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Helmet"
 | 
			
		||||
msgstr "Casque en or"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Chestplate"
 | 
			
		||||
msgstr "Cuirasse en or"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Leggings"
 | 
			
		||||
msgstr "Jambières en or"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Boots"
 | 
			
		||||
msgstr "Bottes en or"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Helmet"
 | 
			
		||||
msgstr "Casque en mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Chestplate"
 | 
			
		||||
msgstr "Cuirasse en mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Leggings"
 | 
			
		||||
msgstr "Jambières en mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Boots"
 | 
			
		||||
msgstr "Bottes en mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Helmet"
 | 
			
		||||
msgstr "Casque en cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Chestplate"
 | 
			
		||||
msgstr "Cuirasse en cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Leggings"
 | 
			
		||||
msgstr "Jambières en cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Boots"
 | 
			
		||||
msgstr "Bottes en cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Radiation"
 | 
			
		||||
msgstr "Radiation"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Level"
 | 
			
		||||
msgstr "Niveau"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Heal"
 | 
			
		||||
msgstr "Soins"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Fire"
 | 
			
		||||
msgstr "Fire"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "Your @1 got destroyed!"
 | 
			
		||||
msgstr "Une partie de votre armure a été détruite : @1 !"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "3d_armor: Failed to initialize player"
 | 
			
		||||
msgstr "3d_armor : Impossible d'initialiser le joueur"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "[3d_armor] Fire Nodes disabled"
 | 
			
		||||
msgstr "[3d_armor] Noeuds de type feu désactivés"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "3d_armor_ip: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ip : Mod chargé mais inutilisé."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "Back"
 | 
			
		||||
msgstr "Retour"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor"
 | 
			
		||||
msgstr "Armure"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_sfinv/init.lua
 | 
			
		||||
msgid "3d_armor_sfinv: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_sfinv : Mod chargé mais inutilisé."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand top"
 | 
			
		||||
msgstr "Haut de support d'armure"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand"
 | 
			
		||||
msgstr "Support d'armure"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand"
 | 
			
		||||
msgstr "Support d'armure"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Locked Armor stand"
 | 
			
		||||
msgstr "Support d'armure verrouillé"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand (owned by @1)"
 | 
			
		||||
msgstr "Support d'armure (propriété de @1)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d_armor_ui: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ui : Mod chargé mais inutilisé."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d Armor"
 | 
			
		||||
msgstr "Armure 3d"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor not initialized!"
 | 
			
		||||
msgstr "Armure non initialisée !"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Admin Shield"
 | 
			
		||||
msgstr "Bouclier d'admin"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Wooden Shield"
 | 
			
		||||
msgstr "Bouclier en bois"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Wood Shield"
 | 
			
		||||
msgstr "Bouclier en bois amélioré"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Cactus Shield"
 | 
			
		||||
msgstr "Bouclier en cactus"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Cactus Shield"
 | 
			
		||||
msgstr "Bouclier en cactus amélioré"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Steel Shield"
 | 
			
		||||
msgstr "Bouclier en acier"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Bronze Shield"
 | 
			
		||||
msgstr "Bouclier en bronze"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Diamond Shield"
 | 
			
		||||
msgstr "Bouclier en diamant"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Gold Shield"
 | 
			
		||||
msgstr "Bouclier en or"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Mithril Shield"
 | 
			
		||||
msgstr "Bouclier en mithril"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Crystal Shield"
 | 
			
		||||
msgstr "Bouclier en cristal"
 | 
			
		||||
							
								
								
									
										295
									
								
								3d_armor/locale/it.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,295 @@
 | 
			
		||||
# Italian translation for 3D ARMOR MOD
 | 
			
		||||
# Copyright (C) 2018 by Stuart Jones
 | 
			
		||||
# This file is distributed under the same license as the 3D ARMOR MOD package.
 | 
			
		||||
# Hamlet <h4mlet@riseup.net>, 2017.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: Italian localization file for the 3D Armor module\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2018-07-23 21:30+0200\n"
 | 
			
		||||
"Last-Translator: H4mlet <h4mlet@riseup.net>\n"
 | 
			
		||||
"Language-Team: ITALIANO\n"
 | 
			
		||||
"Language: it\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
			
		||||
"X-Generator: Poedit 1.6.10\n"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player reference is nil @1"
 | 
			
		||||
msgstr "3d_armor: Il riferimento alla/al giocatrice/tore è nullo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player name is nil @1"
 | 
			
		||||
msgstr "3d_armor: Il nome della/del gicatrice/tore è nullo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Detached armor inventory is nil @1"
 | 
			
		||||
msgstr "3d_armor: L'inventario staccato dell'armatura è nullo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Helmet"
 | 
			
		||||
msgstr "Elmo dell'amministratrice/tore"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Chestplate"
 | 
			
		||||
msgstr "Corazza dell'amministratrice/tore"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Leggings"
 | 
			
		||||
msgstr "Gambali dell'amministratrice/tore"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Boots"
 | 
			
		||||
msgstr "Stivali dell'amministratrice/tore"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Helmet"
 | 
			
		||||
msgstr "Elmo di legno"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Chestplate"
 | 
			
		||||
msgstr "Corazza di legno"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Leggings"
 | 
			
		||||
msgstr "Gambali di legno"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Boots"
 | 
			
		||||
msgstr "Stivali di legno"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Helmet"
 | 
			
		||||
msgstr "Elmo di cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Chestplate"
 | 
			
		||||
msgstr "Corazza di cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Leggings"
 | 
			
		||||
msgstr "Gambali di cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Boots"
 | 
			
		||||
msgstr "Stivali di cactus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Helmet"
 | 
			
		||||
msgstr "Elmo di acciaio"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Chestplate"
 | 
			
		||||
msgstr "Corazza di acciaio"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Leggings"
 | 
			
		||||
msgstr "Gambali di acciaio"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Boots"
 | 
			
		||||
msgstr "Stivali di acciaio"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Helmet"
 | 
			
		||||
msgstr "Elmo di bronzo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Chestplate"
 | 
			
		||||
msgstr "Corazza di bronzo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Leggings"
 | 
			
		||||
msgstr "Gambali di bronzo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Boots"
 | 
			
		||||
msgstr "Stivali di bronzo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Helmet"
 | 
			
		||||
msgstr "Elmo di diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Chestplate"
 | 
			
		||||
msgstr "Corazza di diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Leggings"
 | 
			
		||||
msgstr "Gambali di diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Boots"
 | 
			
		||||
msgstr "Stivali di diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Helmet"
 | 
			
		||||
msgstr "Elmo d'oro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Chestplate"
 | 
			
		||||
msgstr "Corazza d'oro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Leggings"
 | 
			
		||||
msgstr "Gambali d'oro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Boots"
 | 
			
		||||
msgstr "Stivali d'oro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Helmet"
 | 
			
		||||
msgstr "Elmo di mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Chestplate"
 | 
			
		||||
msgstr "Corazza di mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Leggings"
 | 
			
		||||
msgstr "Gambali di mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Boots"
 | 
			
		||||
msgstr "Stivali di mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Helmet"
 | 
			
		||||
msgstr "Elmo di cristallo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Chestplate"
 | 
			
		||||
msgstr "Corazza di cristallo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Leggings"
 | 
			
		||||
msgstr "Gambali di cristallo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Boots"
 | 
			
		||||
msgstr "Stivali di cristallo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Radiation"
 | 
			
		||||
msgstr "Radiazione"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Level"
 | 
			
		||||
msgstr "Livello"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Heal"
 | 
			
		||||
msgstr "Guarigione"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Fire"
 | 
			
		||||
msgstr "Fuoco"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "Your @1 got destroyed!"
 | 
			
		||||
msgstr "Il/i vostro/i @1 è/sono stato/i distrutto/i!"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "3d_armor: Failed to initialize player"
 | 
			
		||||
msgstr "3d_armor: Inizializzazione della/del giocatrice/tore fallita"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "[3d_armor] Fire Nodes disabled"
 | 
			
		||||
msgstr "[3d_armor] Nodi fuoco disabilitati"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "3d_armor_ip: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ip: Mod caricato ma inutilizzato."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "Back"
 | 
			
		||||
msgstr "Indietro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor"
 | 
			
		||||
msgstr "Armatura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_sfinv/init.lua
 | 
			
		||||
msgid "3d_armor_sfinv: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_sfinv: Mod caricato ma inutilizzato."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand top"
 | 
			
		||||
msgstr "Parte superiore del supporto per armatura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand"
 | 
			
		||||
msgstr "Supporto per armatura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand"
 | 
			
		||||
msgstr "Supporto per armatura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Locked Armor stand"
 | 
			
		||||
msgstr "Supporto per armatura chiuso a chiave"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand (owned by @1)"
 | 
			
		||||
msgstr "Supporto per armatura (di proprietà di @1)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d_armor_ui: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ui: Mod caricato ma inutilizzato."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d Armor"
 | 
			
		||||
msgstr "Armatura 3D"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor not initialized!"
 | 
			
		||||
msgstr "Armatura non inizializzata!"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Admin Shield"
 | 
			
		||||
msgstr "Scudo dell'amministratrice/tore"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Wooden Shield"
 | 
			
		||||
msgstr "Scudo di legno"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Wood Shield"
 | 
			
		||||
msgstr "Scudo di legno migliorato"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Cactus Shield"
 | 
			
		||||
msgstr "Scudo di cactus"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Cactus Shield"
 | 
			
		||||
msgstr "Scudo di cactus migliorato"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Steel Shield"
 | 
			
		||||
msgstr "Scudo di acciaio"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Bronze Shield"
 | 
			
		||||
msgstr "Scudo di bronzo"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Diamond Shield"
 | 
			
		||||
msgstr "Scudo di diamante"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Gold Shield"
 | 
			
		||||
msgstr "Scudo d'oro"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Mithril Shield"
 | 
			
		||||
msgstr "Scudo di mithril"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Crystal Shield"
 | 
			
		||||
msgstr "Scudo di cristallo"
 | 
			
		||||
							
								
								
									
										296
									
								
								3d_armor/locale/ms.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,296 @@
 | 
			
		||||
# Malay translation for 3D ARMOR MOD
 | 
			
		||||
# Copyright (C) 2018 by Stuart Jones
 | 
			
		||||
# This file is distributed under the same license as the 3D ARMOR MOD package.
 | 
			
		||||
# MuhdNurHidayat (MNH48) <mnh48mail@gmail.com>, 2018.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: \n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-07-23 21:21+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2018-07-23 21:30+0200\n"
 | 
			
		||||
"Last-Translator: MuhdNurHidayat (MNH48) <mnh48mail@gmail.com>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: ms\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Poedit 2.0.6\n"
 | 
			
		||||
"Plural-Forms: nplurals=1; plural=0;\n"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player reference is nil @1"
 | 
			
		||||
msgstr "3d_armor: Rujukan pemain tiada nilai @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player name is nil @1"
 | 
			
		||||
msgstr "3d_armor: Nama pemain tiada nilai @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Detached armor inventory is nil @1"
 | 
			
		||||
msgstr "3d_armor: Inventori perisai terpisah tiada nilai @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Helmet"
 | 
			
		||||
msgstr "Helmet Pentadbir"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Pentadbir"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Pentadbir"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Boots"
 | 
			
		||||
msgstr "But Pentadbir"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Helmet"
 | 
			
		||||
msgstr "Helmet Kayu"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Kayu"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Kayu"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Boots"
 | 
			
		||||
msgstr "But Kayu"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Helmet"
 | 
			
		||||
msgstr "Helmet Kaktus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Kaktus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Kaktus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Boots"
 | 
			
		||||
msgstr "But Kaktus"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Helmet"
 | 
			
		||||
msgstr "Helmet Keluli"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Keluli"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Keluli"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Boots"
 | 
			
		||||
msgstr "But Keluli"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Helmet"
 | 
			
		||||
msgstr "Helmet Gangsa"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Gangsa"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Gangsa"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Boots"
 | 
			
		||||
msgstr "But Gangsa"
 | 
			
		||||
 | 
			
		||||
# 'Diamond' should be translated as 'intan' because the more common word 'berlian' is only specifically used for the gemstone diamond.
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Helmet"
 | 
			
		||||
msgstr "Helmet Intan"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Intan"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Intan"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Boots"
 | 
			
		||||
msgstr "But Intan"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Helmet"
 | 
			
		||||
msgstr "Helmet Emas"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Emas"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Emas"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Boots"
 | 
			
		||||
msgstr "But Emas"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Helmet"
 | 
			
		||||
msgstr "Helmet Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Boots"
 | 
			
		||||
msgstr "But Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Helmet"
 | 
			
		||||
msgstr "Helmet Kristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Chestplate"
 | 
			
		||||
msgstr "Perisai Dada Kristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Leggings"
 | 
			
		||||
msgstr "Perisai Kaki Kristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Boots"
 | 
			
		||||
msgstr "But Kristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Radiation"
 | 
			
		||||
msgstr "Radiasi"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Level"
 | 
			
		||||
msgstr "Tahap"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Heal"
 | 
			
		||||
msgstr "Pulih"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Fire"
 | 
			
		||||
msgstr "Api"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "Your @1 got destroyed!"
 | 
			
		||||
msgstr "@1 anda telah musnah!"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "3d_armor: Failed to initialize player"
 | 
			
		||||
msgstr "3d_armor: Gagal mengasalkan pemain"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "[3d_armor] Fire Nodes disabled"
 | 
			
		||||
msgstr "[3d_armor] Nod-nod Api dilumpuhkan"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "3d_armor_ip: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ip: Mods dimuatkan tetapi tidak digunakan."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "Back"
 | 
			
		||||
msgstr "Kembali"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor"
 | 
			
		||||
msgstr "Perisai"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_sfinv/init.lua
 | 
			
		||||
msgid "3d_armor_sfinv: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_sfinv: Mods dimuatkan tetapi tidak digunakan."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand top"
 | 
			
		||||
msgstr "Bhg atas dirian perisai"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand"
 | 
			
		||||
msgstr "Dirian perisai"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand"
 | 
			
		||||
msgstr "Dirian Perisai"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Locked Armor stand"
 | 
			
		||||
msgstr "Dirian perisai Berkunci"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand (owned by @1)"
 | 
			
		||||
msgstr "Dirian Perisai (milik @1)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d_armor_ui: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ui: Mods dimuatkan tetapi tidak digunakan."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d Armor"
 | 
			
		||||
msgstr "Perisai 3d"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor not initialized!"
 | 
			
		||||
msgstr "Perisai tidak diasalkan!"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Admin Shield"
 | 
			
		||||
msgstr "Perisai Pegang Pentadbir"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Wooden Shield"
 | 
			
		||||
msgstr "Perisai Pegang Kayu"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Wood Shield"
 | 
			
		||||
msgstr "Perisai Pegang Kayu Kukuh"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Cactus Shield"
 | 
			
		||||
msgstr "Perisai Pegang Kaktus"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Cactus Shield"
 | 
			
		||||
msgstr "Perisai Pegang Kaktus Kukuh"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Steel Shield"
 | 
			
		||||
msgstr "Perisai Pegang Keluli"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Bronze Shield"
 | 
			
		||||
msgstr "Perisai Pegang Gangsa"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Diamond Shield"
 | 
			
		||||
msgstr "Perisai Pegang Intan"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Gold Shield"
 | 
			
		||||
msgstr "Perisai Pegang Emas"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Mithril Shield"
 | 
			
		||||
msgstr "Perisai Pegang Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Crystal Shield"
 | 
			
		||||
msgstr "Perisai Pegang Kristal"
 | 
			
		||||
							
								
								
									
										295
									
								
								3d_armor/locale/pt.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,295 @@
 | 
			
		||||
# LANGUAGE translation for 3D ARMOR MOD
 | 
			
		||||
# Copyright (C) 2018 by Stuart Jones
 | 
			
		||||
# This file is distributed under the same license as the 3D ARMOR MOD package.
 | 
			
		||||
# BrunoMine <borgesdossantosbruno@gmail.com>, 2018.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: 3d_armor\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2018-11-08 13:12-0200\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Poedit 2.0.6\n"
 | 
			
		||||
"Last-Translator: BrunoMine <borgesdossantosbruno@gmail.com>\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
			
		||||
"Language: pt\n"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player reference is nil @1"
 | 
			
		||||
msgstr "3d_armor: Referência Jogador é nula @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player name is nil @1"
 | 
			
		||||
msgstr "3d_armor: Nome de jogador é nulo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Detached armor inventory is nil @1"
 | 
			
		||||
msgstr "3d_armor: Inventario avulso de armadura é nulo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Helmet"
 | 
			
		||||
msgstr "Capacete de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Chestplate"
 | 
			
		||||
msgstr "Peitoral de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Leggings"
 | 
			
		||||
msgstr "Calças de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Boots"
 | 
			
		||||
msgstr "Botas de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Helmet"
 | 
			
		||||
msgstr "Capacete de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Chestplate"
 | 
			
		||||
msgstr "Peitoral de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Leggings"
 | 
			
		||||
msgstr "Calças de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Boots"
 | 
			
		||||
msgstr "Botas de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Helmet"
 | 
			
		||||
msgstr "Capacete de Cacto"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Chestplate"
 | 
			
		||||
msgstr "Peitoral de Cacto"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Leggings"
 | 
			
		||||
msgstr "Calças de Cacto"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Boots"
 | 
			
		||||
msgstr "Botas de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Helmet"
 | 
			
		||||
msgstr "Capacete de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Chestplate"
 | 
			
		||||
msgstr "Peitoral de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Leggings"
 | 
			
		||||
msgstr "Calças de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Boots"
 | 
			
		||||
msgstr "Botas de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Helmet"
 | 
			
		||||
msgstr "Capacete de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Chestplate"
 | 
			
		||||
msgstr "Peitoral de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Leggings"
 | 
			
		||||
msgstr "Calças de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Boots"
 | 
			
		||||
msgstr "Botas de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Helmet"
 | 
			
		||||
msgstr "Capacete de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Chestplate"
 | 
			
		||||
msgstr "Peitoral de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Leggings"
 | 
			
		||||
msgstr "Calças de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Boots"
 | 
			
		||||
msgstr "Botas de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Helmet"
 | 
			
		||||
msgstr "Capacete de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Chestplate"
 | 
			
		||||
msgstr "Peitoral de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Leggings"
 | 
			
		||||
msgstr "Calças de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Boots"
 | 
			
		||||
msgstr "Botas de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Helmet"
 | 
			
		||||
msgstr "Capacete de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Chestplate"
 | 
			
		||||
msgstr "Peitoral de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Leggings"
 | 
			
		||||
msgstr "Calças de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Boots"
 | 
			
		||||
msgstr "Botas de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Helmet"
 | 
			
		||||
msgstr "Capacete de Cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Chestplate"
 | 
			
		||||
msgstr "Peitoral de Cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Leggings"
 | 
			
		||||
msgstr "Calças de Cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Boots"
 | 
			
		||||
msgstr "Botas de Cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Radiation"
 | 
			
		||||
msgstr "Radiação"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Level"
 | 
			
		||||
msgstr "Nível"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Heal"
 | 
			
		||||
msgstr "Saúde"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Fire"
 | 
			
		||||
msgstr "Fogo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "Your @1 got destroyed!"
 | 
			
		||||
msgstr "@1 foi destruído(a)!"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "3d_armor: Failed to initialize player"
 | 
			
		||||
msgstr "3d_armor: Falha ao inicializar jogador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "[3d_armor] Fire Nodes disabled"
 | 
			
		||||
msgstr "[3d_armor] Nodes de gofo desabilitados"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "3d_armor_ip: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ip: Mod carregado mas inoperante."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "Back"
 | 
			
		||||
msgstr "Voltar"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor"
 | 
			
		||||
msgstr "Armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_sfinv/init.lua
 | 
			
		||||
msgid "3d_armor_sfinv: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_sfinv: Mod carregado mas inoperante."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand top"
 | 
			
		||||
msgstr "Topo de estande de armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand"
 | 
			
		||||
msgstr "Estande de armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand"
 | 
			
		||||
msgstr "Estande de Armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Locked Armor stand"
 | 
			
		||||
msgstr "Estande de Armadura Trancada"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand (owned by @1)"
 | 
			
		||||
msgstr "Estande de Armadura (pertente a @1)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d_armor_ui: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ui: Mod carregado mas inoperante."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d Armor"
 | 
			
		||||
msgstr "3d Armor"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor not initialized!"
 | 
			
		||||
msgstr "Armadura não inicializada!"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Admin Shield"
 | 
			
		||||
msgstr "Escudo de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Wooden Shield"
 | 
			
		||||
msgstr "Escudo de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Wood Shield"
 | 
			
		||||
msgstr "Escudo de Madeira Melhorado"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Cactus Shield"
 | 
			
		||||
msgstr "Escudo de Cacto"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Cactus Shield"
 | 
			
		||||
msgstr "Escudo de Cacto Melhorado"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Steel Shield"
 | 
			
		||||
msgstr "Escudo de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Bronze Shield"
 | 
			
		||||
msgstr "Escudo de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Diamond Shield"
 | 
			
		||||
msgstr "Escudo de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Gold Shield"
 | 
			
		||||
msgstr "Escudo de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Mithril Shield"
 | 
			
		||||
msgstr "Escudo de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Crystal Shield"
 | 
			
		||||
msgstr "Escudo de Cristal"
 | 
			
		||||
							
								
								
									
										295
									
								
								3d_armor/locale/pt_BR.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,295 @@
 | 
			
		||||
# LANGUAGE translation for 3D ARMOR MOD
 | 
			
		||||
# Copyright (C) 2018 by Stuart Jones
 | 
			
		||||
# This file is distributed under the same license as the 3D ARMOR MOD package.
 | 
			
		||||
# BrunoMine <borgesdossantosbruno@gmail.com>, 2018.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: 3d_armor\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2018-11-08 13:12-0200\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Poedit 2.0.6\n"
 | 
			
		||||
"Last-Translator: BrunoMine <borgesdossantosbruno@gmail.com>\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
			
		||||
"Language: pt_BR\n"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player reference is nil @1"
 | 
			
		||||
msgstr "3d_armor: Referência Jogador é nula @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player name is nil @1"
 | 
			
		||||
msgstr "3d_armor: Nome de jogador é nulo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Detached armor inventory is nil @1"
 | 
			
		||||
msgstr "3d_armor: Inventario avulso de armadura é nulo @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Helmet"
 | 
			
		||||
msgstr "Capacete de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Chestplate"
 | 
			
		||||
msgstr "Peitoral de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Leggings"
 | 
			
		||||
msgstr "Calças de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Boots"
 | 
			
		||||
msgstr "Botas de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Helmet"
 | 
			
		||||
msgstr "Capacete de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Chestplate"
 | 
			
		||||
msgstr "Peitoral de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Leggings"
 | 
			
		||||
msgstr "Calças de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Boots"
 | 
			
		||||
msgstr "Botas de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Helmet"
 | 
			
		||||
msgstr "Capacete de Cacto"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Chestplate"
 | 
			
		||||
msgstr "Peitoral de Cacto"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Leggings"
 | 
			
		||||
msgstr "Calças de Cacto"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Boots"
 | 
			
		||||
msgstr "Botas de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Helmet"
 | 
			
		||||
msgstr "Capacete de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Chestplate"
 | 
			
		||||
msgstr "Peitoral de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Leggings"
 | 
			
		||||
msgstr "Calças de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Boots"
 | 
			
		||||
msgstr "Botas de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Helmet"
 | 
			
		||||
msgstr "Capacete de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Chestplate"
 | 
			
		||||
msgstr "Peitoral de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Leggings"
 | 
			
		||||
msgstr "Calças de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Boots"
 | 
			
		||||
msgstr "Botas de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Helmet"
 | 
			
		||||
msgstr "Capacete de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Chestplate"
 | 
			
		||||
msgstr "Peitoral de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Leggings"
 | 
			
		||||
msgstr "Calças de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Boots"
 | 
			
		||||
msgstr "Botas de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Helmet"
 | 
			
		||||
msgstr "Capacete de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Chestplate"
 | 
			
		||||
msgstr "Peitoral de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Leggings"
 | 
			
		||||
msgstr "Calças de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Boots"
 | 
			
		||||
msgstr "Botas de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Helmet"
 | 
			
		||||
msgstr "Capacete de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Chestplate"
 | 
			
		||||
msgstr "Peitoral de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Leggings"
 | 
			
		||||
msgstr "Calças de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Boots"
 | 
			
		||||
msgstr "Botas de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Helmet"
 | 
			
		||||
msgstr "Capacete de Cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Chestplate"
 | 
			
		||||
msgstr "Peitoral de Cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Leggings"
 | 
			
		||||
msgstr "Calças de Cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Boots"
 | 
			
		||||
msgstr "Botas de Cristal"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Radiation"
 | 
			
		||||
msgstr "Radiação"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Level"
 | 
			
		||||
msgstr "Nível"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Heal"
 | 
			
		||||
msgstr "Saúde"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Fire"
 | 
			
		||||
msgstr "Fogo"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "Your @1 got destroyed!"
 | 
			
		||||
msgstr "@1 foi destruído(a)!"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "3d_armor: Failed to initialize player"
 | 
			
		||||
msgstr "3d_armor: Falha ao inicializar jogador"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "[3d_armor] Fire Nodes disabled"
 | 
			
		||||
msgstr "[3d_armor] Nodes de gofo desabilitados"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "3d_armor_ip: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ip: Mod carregado mas inoperante."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "Back"
 | 
			
		||||
msgstr "Voltar"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor"
 | 
			
		||||
msgstr "Armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_sfinv/init.lua
 | 
			
		||||
msgid "3d_armor_sfinv: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_sfinv: Mod carregado mas inoperante."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand top"
 | 
			
		||||
msgstr "Topo de estande de armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand"
 | 
			
		||||
msgstr "Estande de armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand"
 | 
			
		||||
msgstr "Estande de Armadura"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Locked Armor stand"
 | 
			
		||||
msgstr "Estande de Armadura Trancada"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand (owned by @1)"
 | 
			
		||||
msgstr "Estande de Armadura (pertente a @1)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d_armor_ui: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ui: Mod carregado mas inoperante."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d Armor"
 | 
			
		||||
msgstr "3d Armor"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor not initialized!"
 | 
			
		||||
msgstr "Armadura não inicializada!"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Admin Shield"
 | 
			
		||||
msgstr "Escudo de Administrador"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Wooden Shield"
 | 
			
		||||
msgstr "Escudo de Madeira"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Wood Shield"
 | 
			
		||||
msgstr "Escudo de Madeira Melhorado"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Cactus Shield"
 | 
			
		||||
msgstr "Escudo de Cacto"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Cactus Shield"
 | 
			
		||||
msgstr "Escudo de Cacto Melhorado"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Steel Shield"
 | 
			
		||||
msgstr "Escudo de Aço"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Bronze Shield"
 | 
			
		||||
msgstr "Escudo de Bronze"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Diamond Shield"
 | 
			
		||||
msgstr "Escudo de Diamante"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Gold Shield"
 | 
			
		||||
msgstr "Escudo de Ouro"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Mithril Shield"
 | 
			
		||||
msgstr "Escudo de Mithril"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Crystal Shield"
 | 
			
		||||
msgstr "Escudo de Cristal"
 | 
			
		||||
							
								
								
									
										294
									
								
								3d_armor/locale/ru.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,294 @@
 | 
			
		||||
# Russian translation for 3D ARMOR MOD
 | 
			
		||||
# Copyright (C) 2018 by Stuart Jones
 | 
			
		||||
# This file is distributed under the same license as the 3D ARMOR MOD package.
 | 
			
		||||
# CodeXP <codexp@gmx.net>, 2018.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: 3d_armor\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-07-23 21:21+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2018-07-23 21:30+0200\n"
 | 
			
		||||
"Last-Translator: CodeXP <codexp@gmx.net>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: ru\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player reference is nil @1"
 | 
			
		||||
msgstr "3d_armor: Ссылка игрока является nil @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player name is nil @1"
 | 
			
		||||
msgstr "3d_armor: Имя игрока является nil @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Detached armor inventory is nil @1"
 | 
			
		||||
msgstr "3d_armor: Отдельный инвентарь брони является nil @1"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Helmet"
 | 
			
		||||
msgstr "шлем админа"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Chestplate"
 | 
			
		||||
msgstr "бронежилет админа"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Leggings"
 | 
			
		||||
msgstr "гамаши админа"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Boots"
 | 
			
		||||
msgstr "ботинки админа"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Helmet"
 | 
			
		||||
msgstr "деревянный шлем"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Chestplate"
 | 
			
		||||
msgstr "деревянный бронежилет"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Leggings"
 | 
			
		||||
msgstr "деревянные гамаши"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Boots"
 | 
			
		||||
msgstr "деревянные ботинки"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Helmet"
 | 
			
		||||
msgstr "кактусовый шлем"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Chestplate"
 | 
			
		||||
msgstr "кактусовый бронежилет"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Leggings"
 | 
			
		||||
msgstr "кактусовые гамаши"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Boots"
 | 
			
		||||
msgstr "кактусовые ботинки"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Helmet"
 | 
			
		||||
msgstr "стальной шлем"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Chestplate"
 | 
			
		||||
msgstr "стальной бронежилет"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Leggings"
 | 
			
		||||
msgstr "стальные гамаши"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Boots"
 | 
			
		||||
msgstr "стальные ботинки"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Helmet"
 | 
			
		||||
msgstr "бронзовый шлем"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Chestplate"
 | 
			
		||||
msgstr "бронзовый бронежилет"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Leggings"
 | 
			
		||||
msgstr "бронзовые гамаши"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Boots"
 | 
			
		||||
msgstr "бронзовые ботинки"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Helmet"
 | 
			
		||||
msgstr "алмазный шлем"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Chestplate"
 | 
			
		||||
msgstr "алмазный бронежилет"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Leggings"
 | 
			
		||||
msgstr "алмазные гамаши"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Boots"
 | 
			
		||||
msgstr "алмазные ботинки"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Helmet"
 | 
			
		||||
msgstr "золотой шлем"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Chestplate"
 | 
			
		||||
msgstr "золотой бронежилет"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Leggings"
 | 
			
		||||
msgstr "золотые гамаши"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Boots"
 | 
			
		||||
msgstr "золотые ботинки"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Helmet"
 | 
			
		||||
msgstr "мифриловый шлем"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Chestplate"
 | 
			
		||||
msgstr "мифриловый бронежилет"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Leggings"
 | 
			
		||||
msgstr "мифриловые гамаши"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Boots"
 | 
			
		||||
msgstr "мифриловые ботинки"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Helmet"
 | 
			
		||||
msgstr "кристалловый шлем"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Chestplate"
 | 
			
		||||
msgstr "кристалловый бронежилет"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Leggings"
 | 
			
		||||
msgstr "кристалловые гамаши"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Boots"
 | 
			
		||||
msgstr "кристалловые ботинки"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Radiation"
 | 
			
		||||
msgstr "излучение"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Level"
 | 
			
		||||
msgstr "уровень"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Heal"
 | 
			
		||||
msgstr "исцеление"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Fire"
 | 
			
		||||
msgstr "огонь"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "Your @1 got destroyed!"
 | 
			
		||||
msgstr "твой(и) @1 был(и) разрушен(ы)!"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "3d_armor: Failed to initialize player"
 | 
			
		||||
msgstr "3d_armor: не смог подготовить игрока"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "[3d_armor] Fire Nodes disabled"
 | 
			
		||||
msgstr "[3d_armor] блоки огня отключены"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "3d_armor_ip: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ip: мод загружен но не используется."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "Back"
 | 
			
		||||
msgstr "назад"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor"
 | 
			
		||||
msgstr "бронь"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_sfinv/init.lua
 | 
			
		||||
msgid "3d_armor_sfinv: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_sfinv: мод загружен но не используется."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand top"
 | 
			
		||||
msgstr "стойка для брони (верх)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand"
 | 
			
		||||
msgstr "стойка для брони"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand"
 | 
			
		||||
msgstr "стойка для брони"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Locked Armor stand"
 | 
			
		||||
msgstr "защищенная стойка для брони"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand (owned by @1)"
 | 
			
		||||
msgstr "стойка для брони (принадлежит @1)"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d_armor_ui: Mod loaded but unused."
 | 
			
		||||
msgstr "3d_armor_ui: мод загружен но не используется."
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d Armor"
 | 
			
		||||
msgstr "3D бронь"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor not initialized!"
 | 
			
		||||
msgstr "бронь не подготовлена!"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Admin Shield"
 | 
			
		||||
msgstr "щит админа"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Wooden Shield"
 | 
			
		||||
msgstr "деревянный щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Wood Shield"
 | 
			
		||||
msgstr "улучшенный деревянный щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Cactus Shield"
 | 
			
		||||
msgstr "кактусный щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Cactus Shield"
 | 
			
		||||
msgstr "улучшенный кактусный щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Steel Shield"
 | 
			
		||||
msgstr "стальной щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Bronze Shield"
 | 
			
		||||
msgstr "бронзовый щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Diamond Shield"
 | 
			
		||||
msgstr "алмазный щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Gold Shield"
 | 
			
		||||
msgstr "золотой щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Mithril Shield"
 | 
			
		||||
msgstr "мифриловый щит"
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Crystal Shield"
 | 
			
		||||
msgstr "кристалловый щит"
 | 
			
		||||
							
								
								
									
										294
									
								
								3d_armor/locale/template.pot
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,294 @@
 | 
			
		||||
# LANGUAGE translation for 3D ARMOR MOD
 | 
			
		||||
# Copyright (C) 2018 by Stuart Jones
 | 
			
		||||
# This file is distributed under the same license as the 3D ARMOR MOD package.
 | 
			
		||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-07-23 21:24+0200\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
			
		||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
			
		||||
"Language: \n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=CHARSET\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player reference is nil @1"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Player name is nil @1"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/api.lua
 | 
			
		||||
msgid "3d_armor: Detached armor inventory is nil @1"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Admin Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Wood Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Cactus Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Steel Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Bronze Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Diamond Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Gold Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Mithril Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Helmet"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Chestplate"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Leggings"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/armor.lua
 | 
			
		||||
msgid "Crystal Boots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Radiation"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Level"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Heal"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Fire"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "Your @1 got destroyed!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "3d_armor: Failed to initialize player"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor/init.lua
 | 
			
		||||
msgid "[3d_armor] Fire Nodes disabled"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "3d_armor_ip: Mod loaded but unused."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua
 | 
			
		||||
msgid "Back"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_sfinv/init.lua
 | 
			
		||||
msgid "3d_armor_sfinv: Mod loaded but unused."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand top"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor stand"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Locked Armor stand"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_stand/init.lua
 | 
			
		||||
msgid "Armor Stand (owned by @1)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d_armor_ui: Mod loaded but unused."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "3d Armor"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../3d_armor_ui/init.lua
 | 
			
		||||
msgid "Armor not initialized!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Admin Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Wooden Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Wood Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Cactus Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Enhanced Cactus Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Steel Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Bronze Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Diamond Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Gold Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Mithril Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../shields/init.lua
 | 
			
		||||
msgid "Crystal Shield"
 | 
			
		||||
msgstr ""
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3d_armor/models/3d_armor_character.b3d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								3d_armor/models/3d_armor_character.blend
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_admin.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_admin_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 548 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_bronze.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 937 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_bronze_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 602 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_cactus.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 903 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_cactus_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 821 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_crystal.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 236 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_crystal_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_diamond.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_diamond_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 872 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_gold.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_gold_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 779 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_mithril.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 854 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_mithril_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 530 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_steel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_steel_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 783 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_wood.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_boots_wood_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 501 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_admin.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_admin_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 KiB  | 
| 
		 Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_bronze_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_cactus.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_cactus_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_crystal.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 613 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_crystal_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_diamond.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_diamond_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_gold.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_gold_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_mithril.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_mithril_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_steel_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.7 KiB  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_chestplate_wood_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_admin.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_admin_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 869 B  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_bronze_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 796 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_cactus.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_cactus_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_crystal.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 494 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_crystal_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 834 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_diamond.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_diamond_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_gold.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_gold_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 586 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_mithril.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_mithril_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 732 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_steel_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 932 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_helmet_wood_preview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 471 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_admin.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_bronze.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_cactus.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_crystal.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 129 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_diamond.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_gold.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_mithril.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_steel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_boots_wood.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_chestplate_admin.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
| 
		 Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 2.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_chestplate_cactus.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_chestplate_crystal.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 142 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_chestplate_diamond.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_chestplate_gold.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_chestplate_mithril.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.2 KiB  | 
| 
		 Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 2.9 KiB  | 
| 
		 Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 2.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_helmet_admin.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 KiB  | 
| 
		 Before Width: | Height: | Size: 232 B After Width: | Height: | Size: 2.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_helmet_cactus.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_helmet_crystal.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 138 B  | 
							
								
								
									
										
											BIN
										
									
								
								3d_armor/textures/3d_armor_inv_helmet_diamond.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.5 KiB  |