diff options
Diffstat (limited to 'src/ChunkMap.cpp')
-rw-r--r-- | src/ChunkMap.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ChunkMap.cpp b/src/ChunkMap.cpp index 30bab923d..d970956f3 100644 --- a/src/ChunkMap.cpp +++ b/src/ChunkMap.cpp @@ -19,6 +19,7 @@ #include "Blocks/ChunkInterface.h" #include "Entities/Pickup.h" #include "DeadlockDetect.h" +#include "BlockEntities/BlockEntity.h" #ifndef _WIN32 #include <cstdlib> // abs @@ -1763,6 +1764,18 @@ void cChunkMap::DoExplosionAt(double a_ExplosionSize, double a_BlockX, double a_ } } + // Destroy any block entities + if (cBlockEntity::IsBlockEntityBlockType(Block)) + { + Vector3i BlockPos(bx + x, by + y, bz + z); + DoWithBlockEntityAt(BlockPos.x, BlockPos.y, BlockPos.z, [](cBlockEntity & a_BE) + { + a_BE.Destroy(); + return true; + } + ); + } + area.SetBlockTypeMeta(bx + x, by + y, bz + z, E_BLOCK_AIR, 0); a_BlocksAffected.push_back(Vector3i(bx + x, by + y, bz + z)); break; |