1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Add disable_descend to disable active node sinking

This commit is contained in:
Wuzzy 2023-02-21 14:07:43 +01:00 committed by DS
parent a4e69d6843
commit 6b3deaa170
3 changed files with 11 additions and 4 deletions

View file

@ -463,6 +463,8 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
itemgroup_get(f1.groups, "disable_jump");
m_can_jump = ((touching_ground && !is_climbing) || sneak_can_jump || standing_node_bouncy != 0)
&& !m_disable_jump;
m_disable_descend = itemgroup_get(f.groups, "disable_descend") ||
itemgroup_get(f1.groups, "disable_descend");
// Jump/Sneak key pressed while bouncing from a bouncy block
float jumpspeed = movement_speed_jump * physics_override.jump;
@ -549,10 +551,10 @@ void LocalPlayer::applyControl(float dtime, Environment *env)
speedV.Y = -movement_speed_fast;
else
speedV.Y = -movement_speed_walk;
} else if (in_liquid || in_liquid_stable) {
} else if ((in_liquid || in_liquid_stable) && !m_disable_descend) {
speedV.Y = -movement_speed_walk;
swimming_vertical = true;
} else if (is_climbing) {
} else if (is_climbing && !m_disable_descend) {
speedV.Y = -movement_speed_climb;
} else {
// If not free movement but fast is allowed, aux1 is
@ -581,13 +583,13 @@ void LocalPlayer::applyControl(float dtime, Environment *env)
speedV.Y = -movement_speed_fast;
else
speedV.Y = -movement_speed_walk;
} else if (in_liquid || in_liquid_stable) {
} else if ((in_liquid || in_liquid_stable) && !m_disable_descend) {
if (fast_climb)
speedV.Y = -movement_speed_fast;
else
speedV.Y = -movement_speed_walk;
swimming_vertical = true;
} else if (is_climbing) {
} else if (is_climbing && !m_disable_descend) {
if (fast_climb)
speedV.Y = -movement_speed_fast;
else
@ -1088,6 +1090,7 @@ void LocalPlayer::old_move(f32 dtime, Environment *env, f32 pos_max_d,
// Determine if jumping is possible
m_disable_jump = itemgroup_get(f.groups, "disable_jump");
m_can_jump = (touching_ground || standing_node_bouncy != 0) && !m_disable_jump;
m_disable_descend = itemgroup_get(f.groups, "disable_descend");
// Jump/Sneak key pressed while bouncing from a bouncy block
float jumpspeed = movement_speed_jump * physics_override.jump;