From 40b929c02ea05ea046d890829a7f1b05b2717e25 Mon Sep 17 00:00:00 2001 From: ElNounch Date: Sun, 28 Aug 2016 07:18:32 +0200 Subject: [PATCH] Fix breaking ice in survival not giving a water's source (#3356) Fix #3355 --- src/Blocks/BlockIce.h | 3 +-- src/ClientHandle.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Blocks/BlockIce.h b/src/Blocks/BlockIce.h index aae190036..633b00e51 100644 --- a/src/Blocks/BlockIce.h +++ b/src/Blocks/BlockIce.h @@ -38,8 +38,7 @@ public: return; } - a_ChunkInterface.FastSetBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_WATER, 0); - // This is called later than the real destroying of this ice block + a_ChunkInterface.SetBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_WATER, 0); } } diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index 7dbf5a0a4..c44b8195b 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -1267,7 +1267,7 @@ void cClientHandle::HandleBlockDigFinished(int a_BlockX, int a_BlockY, int a_Blo BlockHandler(a_OldBlock)->OnDestroyedByPlayer(ChunkInterface, *World, m_Player, a_BlockX, a_BlockY, a_BlockZ); World->BroadcastSoundParticleEffect(EffectID::PARTICLE_SMOKE, a_BlockX, a_BlockY, a_BlockZ, a_OldBlock, this); // This call would remove the water, placed from the ice block handler - if (a_OldBlock != E_BLOCK_ICE) + if (!((a_OldBlock == E_BLOCK_ICE) && (ChunkInterface.GetBlock(a_BlockX, a_BlockY, a_BlockZ) == E_BLOCK_WATER))) { World->DigBlock(a_BlockX, a_BlockY, a_BlockZ); }