diff options
author | madmaxoft <github@xoft.cz> | 2013-09-05 17:44:22 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2013-09-05 17:44:22 +0200 |
commit | cdaa48377846c688b4c003c35e02529ba00c779c (patch) | |
tree | dfb4d74621fc06768d4712dba4a297e6cc0e1b78 /source/Mobs | |
parent | Removed TimedWait from cEvent. (diff) | |
parent | Fixed inconsistent meta naming (diff) | |
download | cuberite-cdaa48377846c688b4c003c35e02529ba00c779c.tar cuberite-cdaa48377846c688b4c003c35e02529ba00c779c.tar.gz cuberite-cdaa48377846c688b4c003c35e02529ba00c779c.tar.bz2 cuberite-cdaa48377846c688b4c003c35e02529ba00c779c.tar.lz cuberite-cdaa48377846c688b4c003c35e02529ba00c779c.tar.xz cuberite-cdaa48377846c688b4c003c35e02529ba00c779c.tar.zst cuberite-cdaa48377846c688b4c003c35e02529ba00c779c.zip |
Diffstat (limited to 'source/Mobs')
-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); + } } } |