diff options
author | sfan5 <sfan5@live.de> | 2019-07-16 14:00:42 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2019-08-10 19:44:27 +0200 |
commit | cf64054390970f3cf974afb2b174340a3e1da382 (patch) | |
tree | 9f3a62d3f935ae76f00fb1c0002f9ba59e59f219 /src/client/localplayer.cpp | |
parent | b19400aa74f30ef61ba0c1bb4a25a978e7cf4125 (diff) | |
download | minetest-cf64054390970f3cf974afb2b174340a3e1da382.tar.gz minetest-cf64054390970f3cf974afb2b174340a3e1da382.tar.bz2 minetest-cf64054390970f3cf974afb2b174340a3e1da382.zip |
Implement adding velocity to player from Lua
The intended usecase is knockback, but there's potential for more.
Diffstat (limited to 'src/client/localplayer.cpp')
-rw-r--r-- | src/client/localplayer.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/client/localplayer.cpp b/src/client/localplayer.cpp index 0e273a16a..c356f7c24 100644 --- a/src/client/localplayer.cpp +++ b/src/client/localplayer.cpp @@ -188,6 +188,7 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d, // Copy parent position if local player is attached if (isAttached) { setPosition(overridePosition); + added_velocity = v3f(); // ignored return; } @@ -201,9 +202,13 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d, if (noclip && free_move) { position += m_speed * dtime; setPosition(position); + added_velocity = v3f(); // ignored return; } + m_speed += added_velocity; + added_velocity = v3f(); + /* Collision detection */ @@ -782,6 +787,7 @@ void LocalPlayer::old_move(f32 dtime, Environment *env, f32 pos_max_d, if (isAttached) { setPosition(overridePosition); m_sneak_node_exists = false; + added_velocity = v3f(); return; } @@ -795,9 +801,13 @@ void LocalPlayer::old_move(f32 dtime, Environment *env, f32 pos_max_d, position += m_speed * dtime; setPosition(position); m_sneak_node_exists = false; + added_velocity = v3f(); return; } + m_speed += added_velocity; + added_velocity = v3f(); + /* Collision detection */ |