Fix visuals /w blocking with shield
parent
12de38ed9a
commit
7c3d7065cc
|
@ -2,4 +2,3 @@ pvp_revamped.projectile_throw_style_dip = 1
|
|||
pvp_revamped.projectile_throw_style_spinning = 2
|
||||
pvp_revamped.point_torso = 0
|
||||
pvp_revamped.point_arm = 1
|
||||
pvp_revamped.use_player_api = minetest.global_exists("player_api")
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
pvp_revamped.lag = 0
|
||||
pvp_revamped.projectile_data = nil
|
||||
pvp_revamped.armor_3d = minetest.global_exists("armor")
|
||||
pvp_revamped.player_data = {}
|
||||
pvp_revamped.player_persistent_data = {}
|
||||
pvp_revamped.hit_points = {{x = 0.3, y = 1.2, z = 0, part = 1},
|
||||
|
|
|
@ -102,8 +102,6 @@ minetest.register_globalstep(function(dtime)
|
|||
local entity = v.entity
|
||||
-- Drop arms.
|
||||
player:set_bone_position(entity.bone, entity.position, new(-180, 0, 0))
|
||||
-- Update player's armor visual.
|
||||
armor:update_player_visuals(player)
|
||||
|
||||
v.entity.object:remove()
|
||||
v.entity = nil
|
||||
|
|
18
helper.lua
18
helper.lua
|
@ -6,7 +6,7 @@ local shield_entity_pos = pvp_revamped.config.shield_entity_pos
|
|||
local shield_entity_rotate = pvp_revamped.config.shield_entity_rotate
|
||||
local shield_entity_scale = pvp_revamped.config.shield_entity_scale
|
||||
local hudkit = pvp_revamped.hudkit
|
||||
local armor_3d = pvp_revamped.armor_3d
|
||||
local armor_3d = minetest.global_exists("armor")
|
||||
local maxn = table.maxn
|
||||
local new = vector.new
|
||||
local cos = math.cos
|
||||
|
@ -101,12 +101,6 @@ end
|
|||
local create_wield_shield = pvp_revamped.create_wield_shield
|
||||
local create_hud_text_center = pvp_revamped.create_hud_text_center
|
||||
local remove_text_center = pvp_revamped.remove_text_center
|
||||
local use_player_api = pvp_revamped.use_player_api
|
||||
local set_textures
|
||||
|
||||
if use_player_api then
|
||||
set_textures = player_api.set_textures
|
||||
end
|
||||
|
||||
local function remove_hits(name)
|
||||
local hit_data = get_player_data(name).hit
|
||||
|
@ -252,16 +246,6 @@ function pvp_revamped.shield_inv(user, name, player_pdata, data)
|
|||
-- Remove un-used hud element.
|
||||
remove_text_center(user, "pvp_revamped:block_pool")
|
||||
|
||||
if use_player_api then
|
||||
local tex_data = armor.textures[name]
|
||||
-- Remove shield from left arm.
|
||||
set_textures(user, {
|
||||
tex_data.skin,
|
||||
tex_data.armor:gsub("%^" .. data_shield.texture .. ".png", ""),
|
||||
tex_data.wielditem
|
||||
})
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
|
|
1
init.lua
1
init.lua
|
@ -11,6 +11,7 @@ dofile(format("%s/helper.lua", modpath))
|
|||
dofile(format("%s/projectile_entity.lua", modpath))
|
||||
dofile(format("%s/shield_entity.lua", modpath))
|
||||
dofile(format("%s/overrides.lua", modpath))
|
||||
dofile(format("%s/override_wieldview.lua", modpath))
|
||||
dofile(format("%s/globalstep.lua", modpath))
|
||||
dofile(format("%s/sscsm.lua", modpath))
|
||||
dofile(format("%s/player_events.lua", modpath))
|
||||
|
|
2
mod.conf
2
mod.conf
|
@ -1,3 +1,3 @@
|
|||
name = pvp_revamped
|
||||
description = Adds an extra layer to pvp.
|
||||
optional_depends = sscsm, shields, player_api
|
||||
optional_depends = sscsm, shields, wieldview
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
if not wieldview then
|
||||
return
|
||||
end
|
||||
|
||||
local player_data = pvp_revamped.player_data
|
||||
|
||||
function wieldview.update_wielded_item(self, player)
|
||||
if not player then
|
||||
return
|
||||
end
|
||||
|
||||
local name = player:get_player_name()
|
||||
local stack = player:get_wielded_item()
|
||||
local item = stack:get_name()
|
||||
if not item then
|
||||
return
|
||||
end
|
||||
if self.wielded_item[name] then
|
||||
local pdata = player_data[name]
|
||||
|
||||
if pdata and pdata.shield then
|
||||
armor.textures[name].wielditem = "3d_armor_trans.png"
|
||||
armor:update_player_visuals(player)
|
||||
return
|
||||
end
|
||||
|
||||
if self.wielded_item[name] == item then
|
||||
return
|
||||
end
|
||||
|
||||
armor.textures[name].wielditem = self:get_item_texture(item)
|
||||
armor:update_player_visuals(player)
|
||||
end
|
||||
self.wielded_item[name] = item
|
||||
end
|
|
@ -15,14 +15,12 @@ local block_duration = pvp_revamped.config.block_duration
|
|||
local counter_duration = pvp_revamped.config.counter_duration
|
||||
local parry_dmg_mul = pvp_revamped.config.parry_dmg_mul
|
||||
local counter_dmg_mul = pvp_revamped.config.counter_dmg_mul
|
||||
local armor_3d = pvp_revamped.armor_3d
|
||||
local get_player_data = pvp_revamped.get_player_data
|
||||
local create_wield_shield = pvp_revamped.create_wield_shield
|
||||
local player_data = pvp_revamped.player_data
|
||||
local player_persistent_data = pvp_revamped.player_persistent_data
|
||||
local create_hud_text_center = pvp_revamped.create_hud_text_center
|
||||
local remove_text_center = pvp_revamped.remove_text_center
|
||||
local use_player_api = pvp_revamped.use_player_api
|
||||
local shield_inv = pvp_revamped.shield_inv
|
||||
local registered_tools = minetest.registered_tools
|
||||
local get_item_group = minetest.get_item_group
|
||||
|
@ -30,11 +28,6 @@ local get_us_time = minetest.get_us_time
|
|||
local new = vector.new
|
||||
local max = math.max
|
||||
local floor = math.floor
|
||||
local set_textures
|
||||
|
||||
if use_player_api then
|
||||
set_textures = player_api.set_textures
|
||||
end
|
||||
|
||||
minetest.register_on_mods_loaded(function()
|
||||
local max_armor_use
|
||||
|
@ -264,16 +257,6 @@ minetest.register_on_mods_loaded(function()
|
|||
|
||||
-- Remove un-used hud element.
|
||||
remove_text_center(user, "pvp_revamped:block_pool")
|
||||
|
||||
if use_player_api then
|
||||
local tex_data = armor.textures[name]
|
||||
-- Remove shield from right arm.
|
||||
set_textures(user, {
|
||||
tex_data.skin,
|
||||
tex_data.armor,
|
||||
"3d_armor_trans.png"
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
minetest.override_item(k, {on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
|
@ -309,8 +292,6 @@ if minetest.global_exists("armor") then
|
|||
if armor_shield > 0 then
|
||||
local def = stack:get_definition()
|
||||
local groups = def.groups
|
||||
local texture = def.texture or name:gsub("%:", "_")
|
||||
texture = texture:gsub(".png$", "")
|
||||
|
||||
player_persistent_data[playername].inventory_armor_shield = {
|
||||
name = name,
|
||||
|
@ -318,8 +299,7 @@ if minetest.global_exists("armor") then
|
|||
block_pool = groups.block_pool,
|
||||
duration = groups.duration,
|
||||
hasty_guard_duration = groups.hasty_guard_duration,
|
||||
groups = groups,
|
||||
texture = texture
|
||||
groups = groups
|
||||
}
|
||||
|
||||
return old_save_armor_inventory(self, player)
|
||||
|
@ -355,8 +335,6 @@ if minetest.global_exists("armor") then
|
|||
if armor_shield > 0 then
|
||||
local def = stack:get_definition()
|
||||
local groups = def.groups
|
||||
local texture = def.texture or name:gsub("%:", "_")
|
||||
texture = texture:gsub(".png$", "")
|
||||
|
||||
player_persistent_data[playername].inventory_armor_shield = {
|
||||
name = name,
|
||||
|
@ -364,8 +342,7 @@ if minetest.global_exists("armor") then
|
|||
block_pool = groups.block_pool,
|
||||
duration = groups.duration,
|
||||
hasty_guard_duration = groups.hasty_guard_duration,
|
||||
groups = groups,
|
||||
texture = texture
|
||||
groups = groups
|
||||
}
|
||||
|
||||
return results
|
||||
|
@ -385,36 +362,4 @@ if minetest.global_exists("armor") then
|
|||
|
||||
return results
|
||||
end
|
||||
|
||||
armor.update_player_visuals = function(self, player)
|
||||
if not player then
|
||||
return
|
||||
end
|
||||
|
||||
local name = player:get_player_name()
|
||||
local tex_data = self.textures[name]
|
||||
|
||||
if tex_data then
|
||||
local tex_armor = tex_data.armor
|
||||
local wielditem = tex_data.wielditem
|
||||
local shield_data = get_player_data(name).shield
|
||||
local inventory_armor_shield = player_persistent_data[name].inventory_armor_shield
|
||||
|
||||
if inventory_armor_shield and shield_data and shield_data.armor_inv then
|
||||
tex_armor = tex_armor:gsub("%^" .. inventory_armor_shield.texture .. ".png", "")
|
||||
end
|
||||
|
||||
if shield_data and not shield_data.armor_inv then
|
||||
wielditem = "3d_armor_trans.png"
|
||||
end
|
||||
|
||||
set_textures(player, {
|
||||
tex_data.skin,
|
||||
tex_armor,
|
||||
wielditem
|
||||
})
|
||||
end
|
||||
|
||||
self:run_callbacks("on_update", player)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -27,7 +27,7 @@ local counter_duration = pvp_revamped.config.counter_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 armor_3d = pvp_revamped.armor_3d
|
||||
local armor_3d = minetest.global_exists("armor")
|
||||
local hit_points = pvp_revamped.hit_points
|
||||
local create_hud_text_center = pvp_revamped.create_hud_text_center
|
||||
local remove_text_center = pvp_revamped.remove_text_center
|
||||
|
|
|
@ -10,21 +10,15 @@ local player_persistent_data = pvp_revamped.player_persistent_data
|
|||
local create_wield_shield = pvp_revamped.create_wield_shield
|
||||
local create_hud_text_center = pvp_revamped.create_hud_text_center
|
||||
local remove_text_center = pvp_revamped.remove_text_center
|
||||
local use_player_api = pvp_revamped.use_player_api
|
||||
local shield_inv = pvp_revamped.shield_inv
|
||||
local dash = pvp_revamped.dash
|
||||
local barrel_roll = pvp_revamped.barrel_roll
|
||||
local dodge = pvp_revamped.dodge
|
||||
local get_us_time = minetest.get_us_time
|
||||
local get_player_by_name = minetest.get_player_by_name
|
||||
local set_textures
|
||||
local cos = math.cos
|
||||
local sin = math.sin
|
||||
|
||||
if use_player_api then
|
||||
set_textures = player_api.set_textures
|
||||
end
|
||||
|
||||
-- Register a sscsm for dodging and dashing.
|
||||
sscsm.register({name = "pvp_revamped:movement",
|
||||
file = minetest.get_modpath("pvp_revamped") .. "/movement.lua"})
|
||||
|
|
Loading…
Reference in New Issue