1
0

Fixed some piston bugs

Due to our QueueSetBlocks, a fast extension then retraction would lead
to invalid game states. This hopefully fixes it. Also reduced delay
speed.
This commit is contained in:
Tiger Wang 2013-11-22 22:00:37 +00:00
parent c7d55d8bbd
commit e40b384547

View File

@ -15,7 +15,7 @@
/// Number of ticks that the piston extending / retracting waits before setting the block
const int PISTON_TICK_DELAY = 6;
const int PISTON_TICK_DELAY = 5;
@ -24,7 +24,6 @@ const int PISTON_TICK_DELAY = 6;
cPiston::cPiston(cWorld * a_World)
: m_World(a_World)
{
}
@ -132,19 +131,19 @@ void cPiston::RetractPiston(int pistx, int pisty, int pistz)
// Already retracted, bail out
return;
}
m_World->BroadcastBlockAction(pistx, pisty, pistz, 1, pistonMeta & ~(8), pistonBlock);
m_World->BroadcastSoundEffect("tile.piston.in", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f);
m_World->SetBlock(pistx, pisty, pistz, pistonBlock, pistonMeta & ~(8));
// Check the extension:
AddDir(pistx, pisty, pistz, pistonMeta, 1);
if (m_World->GetBlock(pistx, pisty, pistz) != E_BLOCK_PISTON_EXTENSION)
{
LOGD("%s: Piston without an extension?", __FUNCTION__);
LOGD("%s: Piston without an extension - still extending, or just in an invalid state?", __FUNCTION__);
return;
}
m_World->BroadcastBlockAction(pistx, pisty, pistz, 1, pistonMeta & ~(8), pistonBlock);
m_World->BroadcastSoundEffect("tile.piston.in", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f);
m_World->SetBlock(pistx, pisty, pistz, pistonBlock, pistonMeta & ~(8));
// Retract the extension, pull block if appropriate
if (IsSticky(pistonBlock))
{