Compare commits

...

2 Commits
5.2.0 ... 5.3.0

Author SHA1 Message Date
orbea
a443cb4358 player_api: Remove local variable (#2640) 2020-04-08 20:40:19 +02:00
Maksim
de5fc3240c Enable player animation when Right Click (#2622) 2020-04-06 15:22:08 +02:00

17
api.lua
View File

@@ -106,21 +106,15 @@ function minetest.calculate_knockback(player, ...)
end end
-- Check each player and apply animations -- Check each player and apply animations
minetest.register_globalstep(function(dtime) minetest.register_globalstep(function()
for _, player in pairs(minetest.get_connected_players()) do for _, player in pairs(minetest.get_connected_players()) do
local name = player:get_player_name() local name = player:get_player_name()
local model_name = player_model[name] local model_name = player_model[name]
local model = model_name and models[model_name] local model = model_name and models[model_name]
if model and not player_attached[name] then if model and not player_attached[name] then
local controls = player:get_player_control() local controls = player:get_player_control()
local walking = false
local animation_speed_mod = model.animation_speed or 30 local animation_speed_mod = model.animation_speed or 30
-- Determine if the player is walking
if controls.up or controls.down or controls.left or controls.right then
walking = true
end
-- Determine if the player is sneaking, and reduce animation speed if so -- Determine if the player is sneaking, and reduce animation speed if so
if controls.sneak then if controls.sneak then
animation_speed_mod = animation_speed_mod / 2 animation_speed_mod = animation_speed_mod / 2
@@ -129,18 +123,19 @@ minetest.register_globalstep(function(dtime)
-- Apply animations based on what the player is doing -- Apply animations based on what the player is doing
if player:get_hp() == 0 then if player:get_hp() == 0 then
player_set_animation(player, "lay") player_set_animation(player, "lay")
elseif walking then -- Determine if the player is walking
elseif controls.up or controls.down or controls.left or controls.right then
if player_sneak[name] ~= controls.sneak then if player_sneak[name] ~= controls.sneak then
player_anim[name] = nil player_anim[name] = nil
player_sneak[name] = controls.sneak player_sneak[name] = controls.sneak
end end
if controls.LMB then if controls.LMB or controls.RMB then
player_set_animation(player, "walk_mine", animation_speed_mod) player_set_animation(player, "walk_mine", animation_speed_mod)
else else
player_set_animation(player, "walk", animation_speed_mod) player_set_animation(player, "walk", animation_speed_mod)
end end
elseif controls.LMB then elseif controls.LMB or controls.RMB then
player_set_animation(player, "mine") player_set_animation(player, "mine", animation_speed_mod)
else else
player_set_animation(player, "stand", animation_speed_mod) player_set_animation(player, "stand", animation_speed_mod)
end end