Repeated right clicking when holding the right mouse button

Configure using repeat_rightclick_time in minetest.conf
This commit is contained in:
Jeija 2013-01-04 15:19:16 +01:00 committed by PilzAdam
parent 5bc14e2fe4
commit b50da63852
3 changed files with 12 additions and 1 deletions

@ -146,6 +146,9 @@
# (1: low level shaders; not implemented) # (1: low level shaders; not implemented)
# 2: enable high level shaders # 2: enable high level shaders
#enable_shaders = 2 #enable_shaders = 2
# The time in seconds it takes between repeated
# right clicks when holding the right mouse button
#repeat_rightclick_time = 0.25
# will only work for servers which use remote_media setting # will only work for servers which use remote_media setting
# and only for clients compiled with cURL # and only for clients compiled with cURL

@ -121,6 +121,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("trilinear_filter", "false"); settings->setDefault("trilinear_filter", "false");
settings->setDefault("preload_item_visuals", "true"); settings->setDefault("preload_item_visuals", "true");
settings->setDefault("enable_shaders", "2"); settings->setDefault("enable_shaders", "2");
settings->setDefault("repeat_rightclick_time", "0.25");
settings->setDefault("media_fetch_threads", "8"); settings->setDefault("media_fetch_threads", "8");

@ -1335,6 +1335,8 @@ void the_game(
float time_of_day = 0; float time_of_day = 0;
float time_of_day_smooth = 0; float time_of_day_smooth = 0;
float repeat_rightclick_timer = 0;
/* /*
Shader constants Shader constants
*/ */
@ -2266,6 +2268,9 @@ void the_game(
bool left_punch = false; bool left_punch = false;
soundmaker.m_player_leftpunch_sound.name = ""; soundmaker.m_player_leftpunch_sound.name = "";
if(input->getRightState())
repeat_rightclick_timer += dtime;
if(playeritem_usable && input->getLeftState()) if(playeritem_usable && input->getLeftState())
{ {
if(input->getLeftClicked()) if(input->getLeftClicked())
@ -2406,8 +2411,10 @@ void the_game(
camera.setDigging(0); // left click animation camera.setDigging(0); // left click animation
} }
if(input->getRightClicked()) if(input->getRightClicked() ||
repeat_rightclick_timer >= g_settings->getFloat("repeat_rightclick_time"))
{ {
repeat_rightclick_timer = 0;
infostream<<"Ground right-clicked"<<std::endl; infostream<<"Ground right-clicked"<<std::endl;
// Sign special case, at least until formspec is properly implemented. // Sign special case, at least until formspec is properly implemented.