Zombies and Skeletons don't walk into the sun anymore.
This commit is contained in:
parent
52d956ccf3
commit
3dc3e5eca7
@ -3,6 +3,8 @@
|
||||
|
||||
#include "Skeleton.h"
|
||||
#include "../World.h"
|
||||
#include "../Entities/ProjectileEntity.h"
|
||||
#include "../Entities/Entity.h"
|
||||
|
||||
|
||||
|
||||
@ -28,3 +30,16 @@ void cSkeleton::GetDrops(cItems & a_Drops, cEntity * a_Killer)
|
||||
|
||||
|
||||
|
||||
|
||||
void cSkeleton::MoveToPosition(const Vector3f & a_Position)
|
||||
{
|
||||
m_Destination = a_Position;
|
||||
|
||||
// If the destination is in the sun and if it is not night AND the skeleton isn't on fire then block the movement.
|
||||
if ((m_World->GetBlockSkyLight((int) a_Position.x, (int) a_Position.y, (int) a_Position.z) == 15) && (m_World->GetTimeOfDay() < 13187) && !IsOnFire())
|
||||
{
|
||||
m_bMovingToDestination = false;
|
||||
return;
|
||||
}
|
||||
m_bMovingToDestination = true;
|
||||
}
|
@ -18,6 +18,7 @@ public:
|
||||
CLASS_PROTODEF(cSkeleton);
|
||||
|
||||
virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL) override;
|
||||
virtual void MoveToPosition(const Vector3f & a_Position) override;
|
||||
bool IsWither(void) const { return m_bIsWither; };
|
||||
|
||||
private:
|
||||
|
@ -30,3 +30,18 @@ void cZombie::GetDrops(cItems & a_Drops, cEntity * a_Killer)
|
||||
|
||||
|
||||
|
||||
|
||||
void cZombie::MoveToPosition(const Vector3f & a_Position)
|
||||
{
|
||||
m_Destination = a_Position;
|
||||
|
||||
// If the destination is in the sun and if it is not night AND the skeleton isn't on fire then block the movement.
|
||||
if ((m_World->GetBlockSkyLight((int) a_Position.x, (int) a_Position.y, (int) a_Position.z) == 15) && (m_World->GetTimeOfDay() < 13187) && !IsOnFire())
|
||||
{
|
||||
m_bMovingToDestination = false;
|
||||
return;
|
||||
}
|
||||
m_bMovingToDestination = true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -17,6 +17,7 @@ public:
|
||||
CLASS_PROTODEF(cZombie);
|
||||
|
||||
virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL) override;
|
||||
virtual void MoveToPosition(const Vector3f & a_Position) override;
|
||||
|
||||
bool IsVillagerZombie(void) const {return m_bIsVillagerZombie; }
|
||||
bool IsConverting(void) const {return m_bIsConverting; }
|
||||
|
Loading…
Reference in New Issue
Block a user