minetest-3d_armor/3d_armor
2017-03-19 16:10:52 +00:00
..
models Rebase armor model, armature and UV fixes 2016-11-27 16:11:51 +00:00
textures Add preview generator and update preview textures 2017-03-11 20:02:55 +00:00
api.lua Depreciate update_inventory and use on_update callback 2017-03-19 16:10:52 +00:00
armor.conf.example Depreciate global configs, closes #68 2017-03-18 17:23:50 +00:00
armor.lua Depreciate global configs, closes #68 2017-03-18 17:23:50 +00:00
crafting_guide.txt Add crystal armor and fire protection by TenPlus1 2015-05-04 17:08:40 +01:00
depends.txt Add support for player monoids, resolves #85 2017-03-10 20:33:45 +00:00
description.txt Add support for mod managers 2016-03-25 19:52:00 +00:00
init.lua Depreciate update_inventory and use on_update callback 2017-03-19 16:10:52 +00:00
LICENSE.txt Add new armor textures by @daviddoesminetest 2017-02-19 19:33:10 +00:00
README.txt Correction to documentation 2017-03-18 20:39:03 +00:00

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

Depends: default

Recommends: sfinv, inventory_plus or unified_inventory (use only one to avoid conflicts)

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

-- You can use this to increase or decrease overall armor radiation protection,
-- eg: armor_radiation_multiplier = 0 will completely disable radiation protection.
armor_radiation_multiplier = 1

-- Enable fire protection (defaults true if using ethereal mod)
armor_fire_protect = false

API
---

Armor Registration:

minetest.register_tool("your_mod_name:speed_boots", {
	description = "Speed Boots",
	inventory_image = "your_mod_name_speed_boots_inv.png",
	texture = "your_mod_name_speed_boots.png",
	groups = {armor_feet=10, physics_speed=0.5, armor_use=2000},
	on_destroy = function(player, item_name)
		minetest.sound_play("your_mod_name_break_sound", {
			to_player = player:get_player_name(),
		})
	end,
})

See armor.lua, technic_armor and shields mods for more examples.

Default groups:

Elements: armor_head, armor_torso, armor_legs, armor_feet
Physics: physics_jump, physics_speed, physics_gravity
Durability: armor_use

Notes:

Elements may be modified by dependent mods, eg shields adds armor_shield.

Physics values are 'stackable', durability is determined
by the level of armor_use. total uses == approx (65535/armor_use)

Item Callbacks:

on_equip = func(player, stack)
on_unequip = func(player, stack)
on_destroy = func(player, item_name)

Global Callbacks:

armor:register_on_update(func(player))
armor:register_on_equip(ifunc(player, stack))
armor:register_on_unequip(func(player, stack))
armor:register_on_destroy(func(player, stack))

Global Callback Example:

armor:register_on_update(function(player)
	print(player:get_player_name().." armor updated!")
end)