When digging a node, don't switch to punching an object without raising button

master
Perttu Ahola 2011-11-21 14:34:43 +02:00
parent 941176cd65
commit 94feb62b08
1 changed files with 6 additions and 1 deletions

View File

@ -937,6 +937,7 @@ void the_game(
float dig_time = 0.0; float dig_time = 0.0;
u16 dig_index = 0; u16 dig_index = 0;
v3s16 nodepos_old(-32768,-32768,-32768); v3s16 nodepos_old(-32768,-32768,-32768);
bool ldown_for_dig = false;
float damage_flash_timer = 0; float damage_flash_timer = 0;
s16 farmesh_range = 20*MAP_BLOCKSIZE; s16 farmesh_range = 20*MAP_BLOCKSIZE;
@ -1626,7 +1627,7 @@ void the_game(
bool left_punch = false; bool left_punch = false;
bool left_punch_muted = false; bool left_punch_muted = false;
if(selected_active_object != NULL) if(selected_active_object != NULL && !ldown_for_dig)
{ {
/* Clear possible cracking animation */ /* Clear possible cracking animation */
if(nodepos_old != v3s16(-32768,-32768,-32768)) if(nodepos_old != v3s16(-32768,-32768,-32768))
@ -1710,6 +1711,7 @@ void the_game(
client.clearTempMod(nodepos_old); client.clearTempMod(nodepos_old);
dig_time = 0.0; dig_time = 0.0;
nodepos_old = v3s16(-32768,-32768,-32768); nodepos_old = v3s16(-32768,-32768,-32768);
ldown_for_dig = false;
} }
} else { } else {
/* /*
@ -1738,6 +1740,7 @@ void the_game(
{ {
client.clearTempMod(nodepos); client.clearTempMod(nodepos);
dig_time = 0.0; dig_time = 0.0;
ldown_for_dig = false;
} }
if(nodig_delay_counter > 0.0) if(nodig_delay_counter > 0.0)
@ -1768,6 +1771,7 @@ void the_game(
if(input->getLeftClicked()) if(input->getLeftClicked())
{ {
client.setTempMod(nodepos, NodeMod(NODEMOD_CRACK, 0)); client.setTempMod(nodepos, NodeMod(NODEMOD_CRACK, 0));
ldown_for_dig = true;
} }
if(input->getLeftState()) if(input->getLeftState())
{ {
@ -1938,6 +1942,7 @@ void the_game(
infostream<<"Left button released (stopped digging)" infostream<<"Left button released (stopped digging)"
<<std::endl; <<std::endl;
client.groundAction(2, v3s16(0,0,0), v3s16(0,0,0), 0); client.groundAction(2, v3s16(0,0,0), v3s16(0,0,0), 0);
ldown_for_dig = false;
} }
if(input->getRightReleased()) if(input->getRightReleased())
{ {