diff options
-rw-r--r-- | source/ChunkMap.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/ChunkMap.cpp b/source/ChunkMap.cpp index d03919a85..087afcc51 100644 --- a/source/ChunkMap.cpp +++ b/source/ChunkMap.cpp @@ -1499,6 +1499,17 @@ bool cChunkMap::ForEachEntityInChunk(int a_ChunkX, int a_ChunkZ, cEntityCallback void cChunkMap::DoExplosiontAt(float a_ExplosionSize, int a_BlockX, int a_BlockY, int a_BlockZ, cVector3iArray & a_BlocksAffected) { + switch (m_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ)) + // Check if the explosion is in a liquid. + { + case E_BLOCK_WATER: + case E_BLOCK_STATIONARY_WATER: + case E_BLOCK_LAVA: + case E_BLOCK_STATIONARY_LAVA: + { + return; + } + } cBlockArea area; int ExplosionSizeInt = (int) ceil(a_ExplosionSize); int ExplosionSizeSq = ExplosionSizeInt * ExplosionSizeInt; |