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 "Skeleton.h"
|
||||||
#include "../World.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);
|
CLASS_PROTODEF(cSkeleton);
|
||||||
|
|
||||||
virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL) override;
|
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; };
|
bool IsWither(void) const { return m_bIsWither; };
|
||||||
|
|
||||||
private:
|
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);
|
CLASS_PROTODEF(cZombie);
|
||||||
|
|
||||||
virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL) override;
|
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 IsVillagerZombie(void) const {return m_bIsVillagerZombie; }
|
||||||
bool IsConverting(void) const {return m_bIsConverting; }
|
bool IsConverting(void) const {return m_bIsConverting; }
|
||||||
|
Loading…
Reference in New Issue
Block a user