summaryrefslogtreecommitdiffstats
path: root/source/Mobs
diff options
context:
space:
mode:
authormadmaxoft <github@xoft.cz>2013-09-05 17:44:22 +0200
committermadmaxoft <github@xoft.cz>2013-09-05 17:44:22 +0200
commitcdaa48377846c688b4c003c35e02529ba00c779c (patch)
treedfb4d74621fc06768d4712dba4a297e6cc0e1b78 /source/Mobs
parentRemoved TimedWait from cEvent. (diff)
parentFixed inconsistent meta naming (diff)
downloadcuberite-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.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);
+ }
}
}