summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/ChunkMap.cpp11
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;