diff options
author | Mattes D <github@xoft.cz> | 2016-07-06 15:46:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-06 15:46:26 +0200 |
commit | 402ca1c4dd9dfcdbb11b06d3907bfa9ccc4759da (patch) | |
tree | e782d2c1fbe004e6ee5a543bb803816d7c6aca76 /src/Blocks/BlockPiston.cpp | |
parent | Merge pull request #3250 from Altenius/master (diff) | |
parent | Fixed piston destroying other pistons (diff) | |
download | cuberite-402ca1c4dd9dfcdbb11b06d3907bfa9ccc4759da.tar cuberite-402ca1c4dd9dfcdbb11b06d3907bfa9ccc4759da.tar.gz cuberite-402ca1c4dd9dfcdbb11b06d3907bfa9ccc4759da.tar.bz2 cuberite-402ca1c4dd9dfcdbb11b06d3907bfa9ccc4759da.tar.lz cuberite-402ca1c4dd9dfcdbb11b06d3907bfa9ccc4759da.tar.xz cuberite-402ca1c4dd9dfcdbb11b06d3907bfa9ccc4759da.tar.zst cuberite-402ca1c4dd9dfcdbb11b06d3907bfa9ccc4759da.zip |
Diffstat (limited to '')
-rw-r--r-- | src/Blocks/BlockPiston.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Blocks/BlockPiston.cpp b/src/Blocks/BlockPiston.cpp index 1da2a61ec..3bed01cc1 100644 --- a/src/Blocks/BlockPiston.cpp +++ b/src/Blocks/BlockPiston.cpp @@ -32,13 +32,17 @@ void cBlockPistonHandler::OnDestroyed(cChunkInterface & a_ChunkInterface, cWorld { 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); - blockPos += MetadataToOffset(OldMeta); - - if (a_ChunkInterface.GetBlock(blockPos) == E_BLOCK_PISTON_EXTENSION) + // If the piston is extended, destroy the extension as well + if (IsExtended(OldMeta)) { - 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); + } } } |