diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2013-08-27 22:11:00 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2013-08-27 22:11:00 +0200 |
commit | fa7def847b4565667b75f34502b2675c375057ad (patch) | |
tree | df36deba68f0ab02200aae096389ff8c91097863 | |
parent | Preliminary Minecart physics handling [SEE DESC] (diff) | |
download | cuberite-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.cpp | 11 | ||||
-rw-r--r-- | source/Mobs/Zombie.cpp | 13 |
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); + } } } |