mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Disable vertical movement when both jump and sneak keys are pressed (#13426)
This commit is contained in:
parent
15fb4cab15
commit
35112f2453
1 changed files with 17 additions and 13 deletions
|
@ -573,7 +573,8 @@ void LocalPlayer::applyControl(float dtime, Environment *env)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (control.sneak) {
|
if (control.sneak && !control.jump) {
|
||||||
|
// Descend player in freemove mode, liquids and climbable nodes by sneak key, only if jump key is released
|
||||||
if (free_move) {
|
if (free_move) {
|
||||||
// In free movement mode, sneak descends
|
// In free movement mode, sneak descends
|
||||||
if (fast_move && (control.aux1 || always_fly_fast))
|
if (fast_move && (control.aux1 || always_fly_fast))
|
||||||
|
@ -606,16 +607,19 @@ void LocalPlayer::applyControl(float dtime, Environment *env)
|
||||||
|
|
||||||
if (control.jump) {
|
if (control.jump) {
|
||||||
if (free_move) {
|
if (free_move) {
|
||||||
if (player_settings.aux1_descends || always_fly_fast) {
|
if (!control.sneak) {
|
||||||
if (fast_move)
|
// Don't fly up if sneak key is pressed
|
||||||
speedV.Y = movement_speed_fast;
|
if (player_settings.aux1_descends || always_fly_fast) {
|
||||||
else
|
if (fast_move)
|
||||||
speedV.Y = movement_speed_walk;
|
speedV.Y = movement_speed_fast;
|
||||||
} else {
|
else
|
||||||
if (fast_move && control.aux1)
|
speedV.Y = movement_speed_walk;
|
||||||
speedV.Y = movement_speed_fast;
|
} else {
|
||||||
else
|
if (fast_move && control.aux1)
|
||||||
speedV.Y = movement_speed_walk;
|
speedV.Y = movement_speed_fast;
|
||||||
|
else
|
||||||
|
speedV.Y = movement_speed_walk;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (m_can_jump) {
|
} else if (m_can_jump) {
|
||||||
/*
|
/*
|
||||||
|
@ -629,13 +633,13 @@ void LocalPlayer::applyControl(float dtime, Environment *env)
|
||||||
setSpeed(speedJ);
|
setSpeed(speedJ);
|
||||||
m_client->getEventManager()->put(new SimpleTriggerEvent(MtEvent::PLAYER_JUMP));
|
m_client->getEventManager()->put(new SimpleTriggerEvent(MtEvent::PLAYER_JUMP));
|
||||||
}
|
}
|
||||||
} else if (in_liquid && !m_disable_jump) {
|
} else if (in_liquid && !m_disable_jump && !control.sneak) {
|
||||||
if (fast_climb)
|
if (fast_climb)
|
||||||
speedV.Y = movement_speed_fast;
|
speedV.Y = movement_speed_fast;
|
||||||
else
|
else
|
||||||
speedV.Y = movement_speed_walk;
|
speedV.Y = movement_speed_walk;
|
||||||
swimming_vertical = true;
|
swimming_vertical = true;
|
||||||
} else if (is_climbing && !m_disable_jump) {
|
} else if (is_climbing && !m_disable_jump && !control.sneak) {
|
||||||
if (fast_climb)
|
if (fast_climb)
|
||||||
speedV.Y = movement_speed_fast;
|
speedV.Y = movement_speed_fast;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue