1
0

Merge pull request #3252 from Altenius/fixpiston

Fixed piston destroying other pistons
This commit is contained in:
Mattes D 2016-07-06 15:46:26 +02:00 committed by GitHub
commit 402ca1c4dd

View File

@ -32,13 +32,17 @@ void cBlockPistonHandler::OnDestroyed(cChunkInterface & a_ChunkInterface, cWorld
{ {
Vector3i blockPos(a_BlockX, a_BlockY, a_BlockZ); Vector3i blockPos(a_BlockX, a_BlockY, a_BlockZ);
// Get the extension of the piston
NIBBLETYPE OldMeta = a_ChunkInterface.GetBlockMeta(blockPos.x, blockPos.y, blockPos.z); NIBBLETYPE OldMeta = a_ChunkInterface.GetBlockMeta(blockPos.x, blockPos.y, blockPos.z);
blockPos += MetadataToOffset(OldMeta); // If the piston is extended, destroy the extension as well
if (IsExtended(OldMeta))
if (a_ChunkInterface.GetBlock(blockPos) == E_BLOCK_PISTON_EXTENSION)
{ {
a_ChunkInterface.SetBlock(blockPos.x, blockPos.y, blockPos.z, E_BLOCK_AIR, 0); // Get the position of the extension
blockPos += MetadataToOffset(OldMeta);
if (a_ChunkInterface.GetBlock(blockPos) == E_BLOCK_PISTON_EXTENSION)
{
a_ChunkInterface.SetBlock(blockPos.x, blockPos.y, blockPos.z, E_BLOCK_AIR, 0);
}
} }
} }