73 lines
2.6 KiB
Lua
73 lines
2.6 KiB
Lua
-- See if the mod armor_3d is a thing here.
|
|
if not minetest.global_exists("armor") then
|
|
return
|
|
end
|
|
|
|
local hasty_guard_duration = pvp_revamped.config.hasty_guard_duration
|
|
local get_player_data = pvp_revamped.get_player_data
|
|
local player_data = pvp_revamped.player_data
|
|
local player_persistent_data = pvp_revamped.player_persistent_data
|
|
local remove_text_center = pvp_revamped.remove_text_center
|
|
local get_item_group = minetest.get_item_group
|
|
local old_save_armor_inventory = armor.save_armor_inventory
|
|
local old_load_armor_inventory = armor.load_armor_inventory
|
|
|
|
local function get_inventory_armor_shield(player, inv)
|
|
local playername = player:get_player_name()
|
|
|
|
-- Create new shield inv data.
|
|
if inv then
|
|
for i, stack in pairs(inv:get_list("armor")) do
|
|
if stack:get_count() == 1 then
|
|
local name = stack:get_name()
|
|
local armor_shield = get_item_group(name, "armor_shield") or 0
|
|
|
|
if armor_shield > 0 then
|
|
local def = stack:get_definition()
|
|
local groups = def.groups
|
|
|
|
player_persistent_data[playername].inventory_armor_shield = {
|
|
name = name,
|
|
index = i,
|
|
block_pool = groups.block_pool,
|
|
duration = groups.duration,
|
|
block_cooldown = groups.block_cooldown,
|
|
hasty_guard_duration = groups.hasty_guard_duration,
|
|
groups = groups,
|
|
on_block_activate = def.on_block_activate,
|
|
on_block_deactivated = def.on_block_deactivated,
|
|
on_block_damage = def.on_block_damage,
|
|
on_guard_break = def.on_guard_break,
|
|
on_hasty_guard = def.on_hasty_guard
|
|
}
|
|
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local data = get_player_data(playername)
|
|
|
|
data.shield = nil
|
|
player_data[playername] = data
|
|
player_persistent_data[playername].inventory_armor_shield = nil
|
|
|
|
-- Remove un-used hud element.
|
|
remove_text_center(player, "pvp_revamped:shield_pool")
|
|
end
|
|
|
|
armor.save_armor_inventory = function(self, player)
|
|
local _, inv = self:get_valid_player(player)
|
|
|
|
get_inventory_armor_shield(player, inv)
|
|
return old_save_armor_inventory(self, player)
|
|
end
|
|
|
|
armor.load_armor_inventory = function(self, player)
|
|
local _, inv = self:get_valid_player(player)
|
|
|
|
get_inventory_armor_shield(player, inv)
|
|
return old_load_armor_inventory(self, player)
|
|
end
|