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

Game: disable 'toggle_sneak_key' while flying

This commit is contained in:
SmallJoker 2025-03-15 14:31:16 +01:00 committed by SmallJoker
parent cc65c8bd70
commit 5b2b2c7796
2 changed files with 8 additions and 2 deletions

View file

@ -112,6 +112,7 @@ doubletap_jump (Double tap jump for fly) bool false
always_fly_fast (Always fly fast) bool true
# If enabled, the "Sneak" key will toggle when pressed.
# This functionality is ignored when fly is enabled.
toggle_sneak_key (Toggle Sneak key) bool false
# If enabled, the "Aux1" key will toggle when pressed.

View file

@ -2450,6 +2450,11 @@ void Game::updatePlayerControl(const CameraOrientation &cam)
{
LocalPlayer *player = client->getEnv().getLocalPlayer();
// In free move (fly), the "toggle_sneak_key" setting would prevent precise
// up/down movements. Hence, enable the feature only during 'normal' movement.
const bool allow_sneak_toggle = m_cache_toggle_sneak_key &&
!player->getPlayerSettings().free_move;
//TimeTaker tt("update player control", NULL, PRECISION_NANO);
PlayerControl control(
@ -2458,8 +2463,8 @@ void Game::updatePlayerControl(const CameraOrientation &cam)
isKeyDown(KeyType::LEFT),
isKeyDown(KeyType::RIGHT),
isKeyDown(KeyType::JUMP) || player->getAutojump(),
getTogglableKeyState(KeyType::AUX1, m_cache_toggle_aux1_key, player->control.aux1),
getTogglableKeyState(KeyType::SNEAK, m_cache_toggle_sneak_key, player->control.sneak),
getTogglableKeyState(KeyType::AUX1, m_cache_toggle_aux1_key, player->control.aux1),
getTogglableKeyState(KeyType::SNEAK, allow_sneak_toggle, player->control.sneak),
isKeyDown(KeyType::ZOOM),
isKeyDown(KeyType::DIG),
isKeyDown(KeyType::PLACE),