From 86e344640708d65a964b6cf4e8c600219832c5c6 Mon Sep 17 00:00:00 2001 From: THE-NERD2 Date: Fri, 16 Aug 2024 22:21:18 +0200 Subject: [PATCH] Update mount.lua to fix horse riding problem (#4580) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, horses would continue to move even after the movement key was released. This was because mcl_mobs.drive was returning before stopping the horse. This commit makes mcl_mobs.drive stop the horse before returning. Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4580 Reviewed-by: Mikita Wiśniewski Co-authored-by: THE-NERD2 Co-committed-by: THE-NERD2 --- mods/ENTITIES/mcl_mobs/mount.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/mount.lua b/mods/ENTITIES/mcl_mobs/mount.lua index 21c52157a..e6b6de78f 100644 --- a/mods/ENTITIES/mcl_mobs/mount.lua +++ b/mods/ENTITIES/mcl_mobs/mount.lua @@ -258,6 +258,18 @@ function mcl_mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) end end + -- Stop! + local s = get_sign(entity.v) + + entity.v = entity.v - 0.02 * s + + if s ~= get_sign(entity.v) then + + entity.object:set_velocity({x = 0, y = 0, z = 0}) + entity.v = 0 + return + end + -- if not moving then set animation and return if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then @@ -273,18 +285,6 @@ function mcl_mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) mcl_mobs:set_animation(entity, moving_anim) end - -- Stop! - local s = get_sign(entity.v) - - entity.v = entity.v - 0.02 * s - - if s ~= get_sign(entity.v) then - - entity.object:set_velocity({x = 0, y = 0, z = 0}) - entity.v = 0 - return - end - -- enforce speed limit forward and reverse local max_spd = entity.max_speed_reverse