From 9ec248eaa09a6e575a6bd5f79028dda3ef982bdf Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Tue, 13 Aug 2013 16:34:26 +0100 Subject: Fixes #57 --- source/Piston.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/source/Piston.cpp b/source/Piston.cpp index d179d70b6..f5aaabf00 100644 --- a/source/Piston.cpp +++ b/source/Piston.cpp @@ -122,6 +122,14 @@ void cPiston::ExtendPiston( int pistx, int pisty, int pistz ) AddDir(extx, exty, extz, pistonMeta & 7, 1) + #ifdef _WIN32 // Pause for 0.1 seconds to allow client animation to run + #include + Sleep(100); + #else + #include + usleep(100 * 1000); // takes microseconds + #endif + m_World->SetBlock(extx, exty, extz, E_BLOCK_PISTON_EXTENSION, isSticky + pistonMeta & 7); } @@ -142,7 +150,7 @@ void cPiston::RetractPiston( int pistx, int pisty, int pistz ) m_World->BroadcastBlockAction(pistx, pisty, pistz, 1, pistonMeta & ~(8), E_BLOCK_PISTON); m_World->BroadcastSoundEffect("tile.piston.in", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f); m_World->FastSetBlock(pistx, pisty, pistz, pistonBlock, pistonMeta & ~(8)); - + AddDir(pistx, pisty, pistz, pistonMeta & 7, 1) if (m_World->GetBlock(pistx, pisty, pistz) != E_BLOCK_PISTON_EXTENSION) { @@ -166,11 +174,27 @@ void cPiston::RetractPiston( int pistx, int pisty, int pistz ) // These cannot be moved by the sticky piston, bail out return; } + #ifdef _WIN32 + #include + Sleep(100); + #else + #include + usleep(100 * 1000); // takes microseconds + #endif + m_World->SetBlock(pistx, pisty, pistz, tempblock, tempmeta); m_World->SetBlock(tempx, tempy, tempz, E_BLOCK_AIR, 0); } else { + #ifdef _WIN32 + #include + Sleep(100); + #else + #include + usleep(100 * 1000); // takes microseconds + #endif + m_World->SetBlock(pistx, pisty, pistz, E_BLOCK_AIR, 0); } } -- cgit v1.2.3