3d_armor/3d_armor
ImgBotApp 8c35451f12
[ImgBot] Optimize images
*Total -- 507.49kb -> 121.83kb (75.99%)

/3d_armor/textures/3d_armor_helmet_cactus_preview.png -- 2.87kb -> 0.35kb (87.82%)
/3d_armor/textures/3d_armor_leggings_wood_preview.png -- 2.88kb -> 0.35kb (87.79%)
/3d_armor/textures/3d_armor_boots_wood_preview.png -- 2.90kb -> 0.36kb (87.67%)
/3d_armor/textures/3d_armor_helmet_wood_preview.png -- 2.89kb -> 0.36kb (87.58%)
/3d_armor/textures/3d_armor_boots_bronze_preview.png -- 2.90kb -> 0.36kb (87.58%)
/3d_armor/textures/3d_armor_boots_gold_preview.png -- 2.89kb -> 0.36kb (87.54%)
/3d_armor/textures/3d_armor_boots_steel_preview.png -- 2.87kb -> 0.36kb (87.46%)
/3d_armor/textures/3d_armor_boots_wood.png -- 2.92kb -> 0.37kb (87.4%)
/3d_armor/textures/3d_armor_boots_cactus_preview.png -- 2.90kb -> 0.37kb (87.32%)
/3d_armor/textures/3d_armor_helmet_bronze_preview.png -- 2.94kb -> 0.37kb (87.32%)
/3d_armor/textures/3d_armor_helmet_diamond_preview.png -- 2.96kb -> 0.38kb (87.25%)
/3d_armor/textures/3d_armor_helmet_mithril_preview.png -- 2.92kb -> 0.37kb (87.24%)
/3d_armor/textures/3d_armor_boots_diamond_preview.png -- 2.93kb -> 0.37kb (87.23%)
/3d_armor/textures/3d_armor_boots_admin_preview.png -- 2.93kb -> 0.37kb (87.22%)
/3d_armor/textures/3d_armor_helmet_gold_preview.png -- 2.92kb -> 0.37kb (87.22%)
/3d_armor/textures/3d_armor_helmet_admin_preview.png -- 2.95kb -> 0.38kb (87.21%)
/3d_armor/textures/3d_armor_inv_helmet_wood.png -- 2.85kb -> 0.36kb (87.21%)
/3d_armor/textures/3d_armor_boots_crystal_preview.png -- 2.92kb -> 0.37kb (87.2%)
/3d_armor/textures/3d_armor_boots_mithril_preview.png -- 2.91kb -> 0.37kb (87.19%)
/3d_armor/textures/3d_armor_helmet_crystal_preview.png -- 2.94kb -> 0.38kb (87.16%)
/3d_armor/textures/3d_armor_leggings_cactus_preview.png -- 2.93kb -> 0.38kb (87.16%)
/3d_armor/textures/3d_armor_helmet_steel_preview.png -- 2.92kb -> 0.38kb (87.09%)
/3d_armor/textures/3d_armor_leggings_bronze_preview.png -- 2.91kb -> 0.38kb (87.09%)
/3d_armor/textures/3d_armor_inv_helmet_cactus.png -- 2.91kb -> 0.38kb (87.04%)
/3d_armor/textures/3d_armor_boots_steel.png -- 2.96kb -> 0.38kb (87.02%)
/3d_armor/textures/3d_armor_leggings_gold_preview.png -- 2.89kb -> 0.38kb (86.99%)
/3d_armor/textures/3d_armor_leggings_wood.png -- 2.97kb -> 0.39kb (86.96%)
/3d_armor/textures/3d_armor_inv_helmet_bronze.png -- 2.91kb -> 0.38kb (86.95%)
/3d_armor/textures/3d_armor_leggings_crystal_preview.png -- 2.91kb -> 0.38kb (86.95%)
/3d_armor/textures/3d_armor_leggings_diamond_preview.png -- 2.94kb -> 0.38kb (86.93%)
/3d_armor/textures/3d_armor_boots_bronze.png -- 2.98kb -> 0.39kb (86.91%)
/3d_armor/textures/3d_armor_leggings_mithril_preview.png -- 2.93kb -> 0.38kb (86.88%)
/3d_armor/textures/3d_armor_leggings_admin_preview.png -- 2.93kb -> 0.38kb (86.88%)
/3d_armor/textures/3d_armor_leggings_steel_preview.png -- 2.91kb -> 0.38kb (86.86%)
/3d_armor/textures/3d_armor_inv_helmet_mithril.png -- 2.89kb -> 0.38kb (86.86%)
/3d_armor/textures/3d_armor_inv_helmet_diamond.png -- 2.91kb -> 0.38kb (86.85%)
/3d_armor/textures/3d_armor_inv_helmet_gold.png -- 2.88kb -> 0.38kb (86.82%)
/shields/textures/shields_inv_shield_cactus.png -- 2.93kb -> 0.39kb (86.82%)
/3d_armor/textures/3d_armor_inv_helmet_crystal.png -- 2.90kb -> 0.38kb (86.81%)
/3d_armor/textures/3d_armor_boots_gold.png -- 2.96kb -> 0.39kb (86.81%)
/3d_armor/textures/3d_armor_inv_helmet_admin.png -- 2.90kb -> 0.38kb (86.8%)
/3d_armor/textures/3d_armor_leggings_bronze.png -- 3.04kb -> 0.40kb (86.79%)
/shields/textures/shields_shield_cactus.png -- 2.99kb -> 0.40kb (86.75%)
/3d_armor/textures/3d_armor_boots_cactus.png -- 2.98kb -> 0.39kb (86.75%)
/shields/textures/shields_shield_cactus_preview.png -- 2.99kb -> 0.40kb (86.75%)
/3d_armor/textures/3d_armor_leggings_cactus.png -- 2.99kb -> 0.40kb (86.75%)
/3d_armor/textures/3d_armor_boots_mithril.png -- 3.00kb -> 0.40kb (86.73%)
/3d_armor/textures/3d_armor_inv_boots_cactus.png -- 2.92kb -> 0.39kb (86.67%)
/3d_armor/textures/3d_armor_inv_boots_bronze.png -- 2.97kb -> 0.40kb (86.67%)
/3d_armor/textures/3d_armor_boots_diamond.png -- 2.99kb -> 0.40kb (86.65%)
/3d_armor/textures/3d_armor_leggings_gold.png -- 3.01kb -> 0.40kb (86.65%)
/3d_armor/textures/3d_armor_boots_admin.png -- 2.98kb -> 0.40kb (86.63%)
/3d_armor/textures/3d_armor_inv_boots_admin.png -- 2.98kb -> 0.40kb (86.62%)
/3d_armor/textures/3d_armor_inv_boots_wood.png -- 2.99kb -> 0.40kb (86.61%)
/3d_armor/textures/3d_armor_inv_boots_diamond.png -- 2.98kb -> 0.40kb (86.61%)
/3d_armor/textures/3d_armor_inv_helmet_steel.png -- 2.91kb -> 0.39kb (86.59%)
/3d_armor/textures/3d_armor_boots_crystal.png -- 2.97kb -> 0.40kb (86.57%)
/3d_armor/textures/3d_armor_inv_boots_crystal.png -- 2.96kb -> 0.40kb (86.56%)
/3d_armor/textures/3d_armor_inv_leggings_admin.png -- 2.97kb -> 0.40kb (86.53%)
/3d_armor/textures/3d_armor_inv_leggings_cactus.png -- 2.95kb -> 0.40kb (86.51%)
/3d_armor/textures/3d_armor_inv_boots_gold.png -- 2.94kb -> 0.40kb (86.51%)
/shields/textures/shields_inv_shield_enhanced_cactus.png -- 2.95kb -> 0.40kb (86.49%)
/3d_armor/textures/3d_armor_inv_leggings_diamond.png -- 2.95kb -> 0.40kb (86.44%)
/3d_armor/textures/3d_armor_inv_leggings_crystal.png -- 2.95kb -> 0.40kb (86.43%)
/3d_armor/textures/3d_armor_inv_boots_steel.png -- 2.94kb -> 0.40kb (86.43%)
/3d_armor/textures/3d_armor_leggings_diamond.png -- 3.05kb -> 0.42kb (86.41%)
/shields/textures/shields_shield_enhanced_cactus.png -- 3.01kb -> 0.41kb (86.39%)
/shields/textures/shields_shield_enhanced_cactus_preview.png -- 3.01kb -> 0.41kb (86.39%)
/3d_armor/textures/3d_armor_leggings_admin.png -- 3.05kb -> 0.42kb (86.39%)
/3d_armor/textures/3d_armor_leggings_crystal.png -- 3.05kb -> 0.42kb (86.38%)
/3d_armor/textures/3d_armor_inv_chestplate_wood.png -- 3.05kb -> 0.42kb (86.38%)
/3d_armor/textures/3d_armor_leggings_mithril.png -- 3.03kb -> 0.41kb (86.38%)
/3d_armor/textures/3d_armor_inv_leggings_wood.png -- 2.97kb -> 0.41kb (86.36%)
/shields/textures/shields_inv_shield_wood.png -- 2.97kb -> 0.41kb (86.29%)
/3d_armor/textures/3d_armor_inv_boots_mithril.png -- 2.96kb -> 0.41kb (86.29%)
/shields/textures/shields_shield_wood_preview.png -- 3.03kb -> 0.42kb (86.28%)
/3d_armor/textures/3d_armor_inv_leggings_gold.png -- 2.97kb -> 0.41kb (86.19%)
/shields/textures/shields_inv_shield_bronze.png -- 3.12kb -> 0.43kb (86.16%)
/3d_armor/textures/3d_armor_inv_leggings_bronze.png -- 2.96kb -> 0.41kb (86.14%)
/shields/textures/shields_shield_wood.png -- 3.02kb -> 0.42kb (86.14%)
/shields/textures/shields_inv_shield_steel.png -- 3.10kb -> 0.43kb (86.11%)
/3d_armor/textures/3d_armor_inv_leggings_mithril.png -- 2.97kb -> 0.41kb (86.1%)
/3d_armor/textures/3d_armor_leggings_steel.png -- 3.03kb -> 0.42kb (86.08%)
/3d_armor/textures/3d_armor_inv_leggings_steel.png -- 2.94kb -> 0.41kb (86.07%)
/shields/textures/shields_inv_shield_mithril.png -- 3.09kb -> 0.43kb (86.03%)
/shields/textures/shields_shield_enhanced_wood_preview.png -- 3.12kb -> 0.44kb (85.96%)
/shields/textures/shields_inv_shield_diamond.png -- 3.11kb -> 0.44kb (85.94%)
/shields/textures/shields_inv_shield_enhanced_wood.png -- 3.07kb -> 0.43kb (85.92%)
/shields/textures/shields_inv_shield_gold.png -- 3.06kb -> 0.43kb (85.9%)
/3d_armor/textures/3d_armor_inv_chestplate_cactus.png -- 3.00kb -> 0.42kb (85.9%)
/3d_armor/textures/3d_armor_inv_chestplate_bronze.png -- 3.03kb -> 0.43kb (85.89%)
/3d_armor/textures/3d_armor_inv_chestplate_mithril.png -- 2.99kb -> 0.42kb (85.87%)
/3d_armor/textures/3d_armor_chestplate_bronze_preview.png -- 3.05kb -> 0.43kb (85.86%)
/3d_armor/textures/3d_armor_inv_chestplate_steel.png -- 3.02kb -> 0.43kb (85.83%)
/3d_armor/textures/3d_armor_inv_chestplate_diamond.png -- 3.03kb -> 0.43kb (85.82%)
/shields/textures/shields_shield_bronze_preview.png -- 3.19kb -> 0.45kb (85.81%)
/3d_armor/textures/3d_armor_chestplate_steel_preview.png -- 3.03kb -> 0.43kb (85.8%)
/3d_armor/textures/3d_armor_chestplate_wood_preview.png -- 3.00kb -> 0.43kb (85.79%)
/shields/textures/shields_inv_shield_crystal.png -- 3.07kb -> 0.44kb (85.79%)
/3d_armor/textures/3d_armor_chestplate_cactus_preview.png -- 3.05kb -> 0.43kb (85.78%)
/3d_armor/textures/3d_armor_inv_chestplate_admin.png -- 3.02kb -> 0.43kb (85.77%)
/shields/textures/shields_shield_bronze.png -- 3.18kb -> 0.45kb (85.77%)
/3d_armor/textures/3d_armor_inv_chestplate_gold.png -- 3.00kb -> 0.43kb (85.74%)
/3d_armor/textures/3d_armor_inv_chestplate_crystal.png -- 3.01kb -> 0.43kb (85.73%)
/shields/textures/shields_inv_shield_admin.png -- 3.06kb -> 0.44kb (85.72%)
/3d_armor/textures/3d_armor_chestplate_mithril_preview.png -- 3.05kb -> 0.44kb (85.71%)
/shields/textures/shields_shield_enhanced_wood.png -- 3.09kb -> 0.44kb (85.7%)
/3d_armor/textures/3d_armor_chestplate_diamond_preview.png -- 3.05kb -> 0.44kb (85.7%)
/shields/textures/shields_shield_steel_preview.png -- 3.15kb -> 0.45kb (85.7%)
/3d_armor/textures/3d_armor_chestplate_admin_preview.png -- 3.04kb -> 0.44kb (85.7%)
/3d_armor/textures/3d_armor_chestplate_crystal_preview.png -- 3.04kb -> 0.44kb (85.7%)
/shields/textures/shields_shield_diamond_preview.png -- 3.18kb -> 0.46kb (85.67%)
/3d_armor/textures/3d_armor_chestplate_wood.png -- 3.08kb -> 0.44kb (85.64%)
/3d_armor/textures/3d_armor_helmet_bronze.png -- 3.18kb -> 0.46kb (85.61%)
/3d_armor/textures/3d_armor_chestplate_gold_preview.png -- 3.01kb -> 0.43kb (85.61%)
/3d_armor/textures/3d_armor_helmet_wood.png -- 3.13kb -> 0.45kb (85.59%)
/shields/textures/shields_shield_diamond.png -- 3.18kb -> 0.46kb (85.58%)
/shields/textures/shields_shield_crystal_preview.png -- 3.14kb -> 0.46kb (85.47%)
/shields/textures/shields_shield_admin.png -- 3.16kb -> 0.46kb (85.47%)
/shields/textures/shields_shield_steel.png -- 3.18kb -> 0.46kb (85.46%)
/shields/textures/shields_shield_admin_preview.png -- 3.13kb -> 0.46kb (85.45%)
/shields/textures/shields_shield_mithril_preview.png -- 3.16kb -> 0.46kb (85.45%)
/3d_armor/textures/3d_armor_helmet_diamond.png -- 3.19kb -> 0.46kb (85.45%)
/3d_armor/textures/3d_armor_helmet_cactus.png -- 3.11kb -> 0.45kb (85.44%)
/shields/textures/shields_shield_mithril.png -- 3.17kb -> 0.46kb (85.42%)
/shields/textures/shields_shield_crystal.png -- 3.14kb -> 0.46kb (85.38%)
/shields/textures/shields_shield_gold_preview.png -- 3.14kb -> 0.46kb (85.33%)
/3d_armor/textures/3d_armor_helmet_admin.png -- 3.17kb -> 0.46kb (85.31%)
/shields/textures/shields_shield_gold.png -- 3.14kb -> 0.46kb (85.28%)
/3d_armor/textures/3d_armor_helmet_crystal.png -- 3.15kb -> 0.46kb (85.25%)
/3d_armor/textures/3d_armor_helmet_mithril.png -- 3.12kb -> 0.46kb (85.16%)
/3d_armor/textures/3d_armor_chestplate_bronze.png -- 3.26kb -> 0.49kb (85.03%)
/3d_armor/textures/3d_armor_chestplate_steel.png -- 3.23kb -> 0.49kb (84.92%)
/3d_armor/textures/3d_armor_helmet_steel.png -- 3.15kb -> 0.48kb (84.67%)
/3d_armor/textures/3d_armor_chestplate_cactus.png -- 3.21kb -> 0.49kb (84.64%)
/3d_armor/textures/3d_armor_helmet_gold.png -- 3.12kb -> 0.48kb (84.64%)
/3d_armor/textures/3d_armor_chestplate_mithril.png -- 3.26kb -> 0.50kb (84.6%)
/3d_armor/textures/3d_armor_chestplate_gold.png -- 3.19kb -> 0.50kb (84.46%)
/3d_armor/textures/3d_armor_chestplate_diamond.png -- 3.26kb -> 0.51kb (84.33%)
/3d_armor/textures/3d_armor_chestplate_admin.png -- 3.21kb -> 0.50kb (84.31%)
/3d_armor/textures/3d_armor_chestplate_crystal.png -- 3.19kb -> 0.50kb (84.23%)
/3d_armor/textures/inventory_plus_armor.png -- 3.59kb -> 0.65kb (81.97%)
/3d_armor_stand/models/3d_armor_stand.png -- 1.59kb -> 0.97kb (38.88%)
/3d_armor_stand/models/3d_armor_stand_locked.png -- 1.95kb -> 1.21kb (37.6%)
/screenshot.png -- 65.39kb -> 51.81kb (20.77%)
/3d_armor/textures/3d_armor_ui_form.png -- 8.90kb -> 8.26kb (7.2%)
/3d_armor/textures/character_preview.png -- 0.34kb -> 0.32kb (5.73%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
2020-01-30 08:53:33 +00:00
..
locale Add Portuguese Translations 2018-11-09 17:50:10 +00:00
models Offset models for minetest 5.0.0 2019-03-05 19:30:38 +00:00
textures [ImgBot] Optimize images 2020-01-30 08:53:33 +00:00
tools Cleanup locales (#155) 2018-07-26 20:05:50 +01:00
api.lua Preserve immortal group for per-player damage 2019-10-07 20:12:58 +02:00
armor.conf.example Add support for non-fleshy damage groups, closes #47 2017-03-26 20:53:04 +01:00
armor.lua added complete intllib support (i18n) 2017-08-08 18:09:27 +01:00
crafting_guide.txt Add crystal armor and fire protection by TenPlus1 2015-05-04 17:08:40 +01:00
depends.txt add POVA support (#138) 2018-05-07 14:41:40 +01:00
description.txt Add support for mod managers 2016-03-25 19:52:00 +00:00
init.lua add armor breakage alerts 2019-12-28 23:13:41 +11:00
intllib.lua added complete intllib support (i18n) 2017-08-08 18:09:27 +01:00
LICENSE.txt Update licenses 2019-05-27 20:30:03 +01:00
README.txt Replace deprecated getpos call 2019-03-05 19:40:54 +00:00

[mod] Visible Player Armor [3d_armor]
=====================================

Depends: default

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.

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.

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 = 2

-- Number of initialization attempts.
-- Use in conjunction with armor_init_delay if initialization problems persist.
armor_init_times = 10

-- 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:get_pos()
		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)