mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Switch to fly mode if spacebar is doubleclicked
Can be turned off in the key change GUI or in minetest.conf via doubletab_space
This commit is contained in:
parent
b50da63852
commit
82fd83fd12
4 changed files with 58 additions and 0 deletions
35
src/game.cpp
35
src/game.cpp
|
@ -1310,6 +1310,9 @@ void the_game(
|
|||
float damage_flash = 0;
|
||||
s16 farmesh_range = 20*MAP_BLOCKSIZE;
|
||||
|
||||
float jump_timer = 0;
|
||||
bool reset_jump_timer = false;
|
||||
|
||||
const float object_hit_delay = 0.2;
|
||||
float object_hit_delay_timer = 0.0;
|
||||
float time_from_last_punch = 10;
|
||||
|
@ -1592,6 +1595,10 @@ void the_game(
|
|||
// Input handler step() (used by the random input generator)
|
||||
input->step(dtime);
|
||||
|
||||
// Increase timer for doubleclick of "jump"
|
||||
if(g_settings->getBool("doubletab_jump") && jump_timer <= 0.2)
|
||||
jump_timer += dtime;
|
||||
|
||||
/*
|
||||
Launch menus and trigger stuff according to keys
|
||||
*/
|
||||
|
@ -1681,6 +1688,27 @@ void the_game(
|
|||
statustext += L" (note: no 'fly' privilege)";
|
||||
}
|
||||
}
|
||||
else if(input->wasKeyDown(getKeySetting("keymap_jump")))
|
||||
{
|
||||
if(g_settings->getBool("doubletab_jump") && jump_timer < 0.2)
|
||||
{
|
||||
if(g_settings->getBool("free_move"))
|
||||
{
|
||||
g_settings->set("free_move","false");
|
||||
statustext = L"free_move disabled";
|
||||
statustext_time = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_settings->set("free_move","true");
|
||||
statustext = L"free_move enabled";
|
||||
statustext_time = 0;
|
||||
if(!client.checkPrivilege("fly"))
|
||||
statustext += L" (note: no 'fly' privilege)";
|
||||
}
|
||||
}
|
||||
reset_jump_timer = true;
|
||||
}
|
||||
else if(input->wasKeyDown(getKeySetting("keymap_fastmove")))
|
||||
{
|
||||
if(g_settings->getBool("fast_move"))
|
||||
|
@ -1843,6 +1871,13 @@ void the_game(
|
|||
statustext_time = 0;
|
||||
}
|
||||
|
||||
// Reset jump_timer
|
||||
if(!input->isKeyDown(getKeySetting("keymap_jump")) && reset_jump_timer)
|
||||
{
|
||||
reset_jump_timer = false;
|
||||
jump_timer = 0.0;
|
||||
}
|
||||
|
||||
// Handle QuicktuneShortcutter
|
||||
if(input->wasKeyDown(getKeySetting("keymap_quicktune_next")))
|
||||
quicktune.next();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue