From bcfa09aa1420a6bfed77c3492f186408ef1d5cc8 Mon Sep 17 00:00:00 2001 From: "nielsbreu@gmail.com" Date: Tue, 18 Jun 2013 20:32:22 +0000 Subject: [PATCH] Explosions do not effect the terrain when they are in water. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1608 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/ChunkMap.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) 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;