1
0

Hopefully fixed piston duplication issues

* Fixes #879
* Fixes #714
This commit is contained in:
Tiger Wang
2014-05-25 13:46:34 +01:00
parent 27a9fa3110
commit ee929793f0
15 changed files with 372 additions and 437 deletions

View File

@@ -1551,9 +1551,9 @@ bool cWorld::SetAreaBiome(const cCuboid & a_Area, EMCSBiome a_Biome)
void cWorld::SetBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
void cWorld::SetBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, bool a_SendToClients)
{
m_ChunkMap->SetBlock(*this, a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta);
m_ChunkMap->SetBlock(*this, a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta, a_SendToClients);
}
@@ -3127,6 +3127,50 @@ void cWorld::cTaskUnloadUnusedChunks::Run(cWorld & a_World)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cWorld::cTaskSendBlockTo
cWorld::cTaskSendBlockToAllPlayers::cTaskSendBlockToAllPlayers(int a_BlockX, int a_BlockY, int a_BlockZ) :
m_BlockX(a_BlockX),
m_BlockY(a_BlockY),
m_BlockZ(a_BlockZ)
{
}
void cWorld::cTaskSendBlockToAllPlayers::Run(cWorld & a_World)
{
class cPlayerCallback :
public cPlayerListCallback
{
public:
cPlayerCallback(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld & a_World) :
m_BlockX(a_BlockX),
m_BlockY(a_BlockY),
m_BlockZ(a_BlockZ),
m_World(a_World)
{
}
virtual bool Item(cPlayer * a_Player)
{
m_World.SendBlockTo(m_BlockX, m_BlockY, m_BlockZ, a_Player);
return false;
}
private:
int m_BlockX, m_BlockY, m_BlockZ;
cWorld & m_World;
} PlayerCallback(m_BlockX, m_BlockY, m_BlockZ, a_World);
a_World.ForEachPlayer(PlayerCallback);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cWorld::cChunkGeneratorCallbacks: