float dig_time = 0.0;
u16 dig_index = 0;
v3s16 nodepos_old(-32768,-32768,-32768);
+ bool ldown_for_dig = false;
float damage_flash_timer = 0;
s16 farmesh_range = 20*MAP_BLOCKSIZE;
- const float object_hit_delay = 0.5;
+ const float object_hit_delay = 0.2;
float object_hit_delay_timer = 0.0;
bool invert_mouse = g_settings->getBool("invert_mouse");
bool left_punch = false;
bool left_punch_muted = false;
- if(selected_active_object != NULL)
+ if(selected_active_object != NULL && !ldown_for_dig)
{
/* Clear possible cracking animation */
if(nodepos_old != v3s16(-32768,-32768,-32768))
client.clearTempMod(nodepos_old);
dig_time = 0.0;
nodepos_old = v3s16(-32768,-32768,-32768);
+ ldown_for_dig = false;
}
} else {
/*
{
client.clearTempMod(nodepos);
dig_time = 0.0;
+ ldown_for_dig = false;
}
if(nodig_delay_counter > 0.0)
if(input->getLeftClicked())
{
client.setTempMod(nodepos, NodeMod(NODEMOD_CRACK, 0));
+ ldown_for_dig = true;
}
if(input->getLeftState())
{
infostream<<"Left button released (stopped digging)"
<<std::endl;
client.groundAction(2, v3s16(0,0,0), v3s16(0,0,0), 0);
+ ldown_for_dig = false;
}
if(input->getRightReleased())
{