Merge pull request #85 from tigerw/master

Fixed #57
master
Tiger Wang 2013-08-14 03:36:16 -07:00
commit 7803bde6b6
2 changed files with 25 additions and 2 deletions

View File

@ -103,7 +103,6 @@ public:
virtual bool DoesAllowBlockOnTop(void) override
{
return true;
//was false
}

View File

@ -12,8 +12,14 @@
#include "Server.h"
#include "Blocks/BlockHandler.h"
#ifdef _WIN32
#include <windows.h>
#else
#include <unistd.h>
#endif
//Athar from http://www.cplusplus.com/forum/unices/60161/ helped with the sleep code.
extern bool g_BlockPistonBreakable[];
@ -122,6 +128,12 @@ void cPiston::ExtendPiston( int pistx, int pisty, int pistz )
AddDir(extx, exty, extz, pistonMeta & 7, 1)
#ifdef _WIN32
Sleep(100);
#else
usleep(static_cast<useconds_t>(100)*1000);
#endif
m_World->SetBlock(extx, exty, extz, E_BLOCK_PISTON_EXTENSION, isSticky + pistonMeta & 7);
}
@ -142,7 +154,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 +178,23 @@ void cPiston::RetractPiston( int pistx, int pisty, int pistz )
// These cannot be moved by the sticky piston, bail out
return;
}
#ifdef _WIN32
Sleep(100);
#else
usleep(static_cast<useconds_t>(100)*1000);
#endif
m_World->SetBlock(pistx, pisty, pistz, tempblock, tempmeta);
m_World->SetBlock(tempx, tempy, tempz, E_BLOCK_AIR, 0);
}
else
{
#ifdef _WIN32
Sleep(100);
#else
usleep(static_cast<useconds_t>(100)*1000);
#endif
m_World->SetBlock(pistx, pisty, pistz, E_BLOCK_AIR, 0);
}
}