summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2013-08-27 22:11:00 +0200
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2013-08-27 22:11:00 +0200
commitfa7def847b4565667b75f34502b2675c375057ad (patch)
treedf36deba68f0ab02200aae096389ff8c91097863
parentPreliminary Minecart physics handling [SEE DESC] (diff)
downloadcuberite-fa7def847b4565667b75f34502b2675c375057ad.tar
cuberite-fa7def847b4565667b75f34502b2675c375057ad.tar.gz
cuberite-fa7def847b4565667b75f34502b2675c375057ad.tar.bz2
cuberite-fa7def847b4565667b75f34502b2675c375057ad.tar.lz
cuberite-fa7def847b4565667b75f34502b2675c375057ad.tar.xz
cuberite-fa7def847b4565667b75f34502b2675c375057ad.tar.zst
cuberite-fa7def847b4565667b75f34502b2675c375057ad.zip
-rw-r--r--source/Mobs/Skeleton.cpp11
-rw-r--r--source/Mobs/Zombie.cpp13
2 files changed, 14 insertions, 10 deletions
diff --git a/source/Mobs/Skeleton.cpp b/source/Mobs/Skeleton.cpp
index bec912afa..ad4037db9 100644
--- a/source/Mobs/Skeleton.cpp
+++ b/source/Mobs/Skeleton.cpp
@@ -21,12 +21,13 @@ void cSkeleton::Tick(float a_Dt, cChunk & a_Chunk)
{
cMonster::Tick(a_Dt, a_Chunk);
- // TODO Outsource
- // TODO should do SkyLight check, mobs in the dark donīt burn
- if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+ if ((GetWorld()->GetBlockSkyLight(GetPosX(), GetPosY(), GetPosZ()) == 15) && (GetWorld()->GetBlock(GetPosX(), GetPosY(), GetPosZ()) != E_BLOCK_SOULSAND))
{
- // Burn for 10 ticks, then decide again
- StartBurning(10);
+ if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+ {
+ // Burn for 100 ticks, then decide again
+ StartBurning(100);
+ }
}
}
diff --git a/source/Mobs/Zombie.cpp b/source/Mobs/Zombie.cpp
index a6e39d6df..f3adf1283 100644
--- a/source/Mobs/Zombie.cpp
+++ b/source/Mobs/Zombie.cpp
@@ -3,10 +3,12 @@
#include "Zombie.h"
#include "../World.h"
+#include "../LineBlockTracer.h"
+// They're eating your brains!
cZombie::cZombie(void) :
super("Zombie", 54, "mob.zombie.hurt", "mob.zombie.death", 0.6, 1.8)
@@ -20,12 +22,13 @@ cZombie::cZombie(void) :
void cZombie::Tick(float a_Dt, cChunk & a_Chunk)
{
super::Tick(a_Dt, a_Chunk);
-
- // TODO Same as in cSkeleton :D
- if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+ if ((GetWorld()->GetBlockSkyLight(GetPosX(), GetPosY(), GetPosZ()) == 15) && (GetWorld()->GetBlock(GetPosX(), GetPosY(), GetPosZ()) != E_BLOCK_SOULSAND))
{
- // Burn for 10 ticks, then decide again
- StartBurning(10);
+ if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+ {
+ // Burn for 100 ticks, then decide again
+ StartBurning(100);
+ }
}
}