diff options
Diffstat (limited to 'src/client/localplayer.cpp')
-rw-r--r-- | src/client/localplayer.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/client/localplayer.cpp b/src/client/localplayer.cpp index c20c3619f..1e7040d57 100644 --- a/src/client/localplayer.cpp +++ b/src/client/localplayer.cpp @@ -200,6 +200,8 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d, if (noclip && free_move) { position += m_speed * dtime; setPosition(position); + + touching_ground = false; added_velocity = v3f(0.0f); // ignored return; } @@ -436,9 +438,11 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d, Check properties of the node on which the player is standing */ const ContentFeatures &f = nodemgr->get(map->getNode(m_standing_node)); + const ContentFeatures &f1 = nodemgr->get(map->getNode(m_standing_node + v3s16(0, 1, 0))); // Determine if jumping is possible - m_disable_jump = itemgroup_get(f.groups, "disable_jump"); + m_disable_jump = itemgroup_get(f.groups, "disable_jump") || + itemgroup_get(f1.groups, "disable_jump"); m_can_jump = ((touching_ground && !is_climbing) || sneak_can_jump) && !m_disable_jump; // Jump key pressed while jumping off from a bouncy block @@ -785,6 +789,8 @@ void LocalPlayer::old_move(f32 dtime, Environment *env, f32 pos_max_d, if (free_move) { position += m_speed * dtime; setPosition(position); + + touching_ground = false; m_sneak_node_exists = false; added_velocity = v3f(0.0f); return; |