summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-04-18 13:59:14 +0200
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-04-18 13:59:14 +0200
commit6cb63a768dd2356d0e41aef1ef086ae972449bdd (patch)
tree11e962cbe08f7b9345827a076ec339ed3b6f0513
parentFixed #904 (diff)
downloadcuberite-6cb63a768dd2356d0e41aef1ef086ae972449bdd.tar
cuberite-6cb63a768dd2356d0e41aef1ef086ae972449bdd.tar.gz
cuberite-6cb63a768dd2356d0e41aef1ef086ae972449bdd.tar.bz2
cuberite-6cb63a768dd2356d0e41aef1ef086ae972449bdd.tar.lz
cuberite-6cb63a768dd2356d0e41aef1ef086ae972449bdd.tar.xz
cuberite-6cb63a768dd2356d0e41aef1ef086ae972449bdd.tar.zst
cuberite-6cb63a768dd2356d0e41aef1ef086ae972449bdd.zip
-rw-r--r--src/Entities/Entity.cpp10
-rw-r--r--src/Mobs/Monster.cpp3
2 files changed, 12 insertions, 1 deletions
diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp
index 86aee4c6f..56ef36ef8 100644
--- a/src/Entities/Entity.cpp
+++ b/src/Entities/Entity.cpp
@@ -771,6 +771,16 @@ void cEntity::TickBurning(cChunk & a_Chunk)
{
// Remember the current burning state:
bool HasBeenBurning = (m_TicksLeftBurning > 0);
+
+ if (GetWorld()->GetWeather() == eWeather_Rain)
+ {
+ if (HasBeenBurning)
+ {
+ m_TicksLeftBurning = 0;
+ OnFinishedBurning();
+ }
+ return;
+ }
// Do the burning damage:
if (m_TicksLeftBurning > 0)
diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp
index 27bd28045..9df5d5e3b 100644
--- a/src/Mobs/Monster.cpp
+++ b/src/Mobs/Monster.cpp
@@ -1003,7 +1003,8 @@ void cMonster::HandleDaylightBurning(cChunk & a_Chunk)
(a_Chunk.GetSkyLight(RelX, RelY, RelZ) == 15) && // In the daylight
(a_Chunk.GetBlock(RelX, RelY, RelZ) != E_BLOCK_SOULSAND) && // Not on soulsand
(GetWorld()->GetTimeOfDay() < (12000 + 1000)) && // It is nighttime
- !IsOnFire() // Not already burning
+ !IsOnFire() && // Not already burning
+ (GetWorld()->GetWeather() != eWeather_Rain) // Not raining
)
{
// Burn for 100 ticks, then decide again