2014-04-26 20:08:39 -04:00
|
|
|
//
|
2014-04-27 20:03:06 -04:00
|
|
|
// ThrownEnderPearlEntity.h
|
2014-04-26 20:08:39 -04:00
|
|
|
//
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "ProjectileEntity.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-26 20:58:06 -04:00
|
|
|
// tolua_begin
|
|
|
|
|
2014-04-26 20:08:39 -04:00
|
|
|
class cThrownEnderPearlEntity :
|
2014-04-27 20:03:06 -04:00
|
|
|
public cProjectileEntity
|
2014-04-26 20:08:39 -04:00
|
|
|
{
|
|
|
|
typedef cProjectileEntity super;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
// tolua_end
|
|
|
|
|
|
|
|
CLASS_PROTODEF(cThrownEnderPearlEntity);
|
|
|
|
|
|
|
|
cThrownEnderPearlEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const Vector3d & a_Speed);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
// cProjectileEntity overrides:
|
|
|
|
virtual void OnHitSolidBlock(const Vector3d & a_HitPos, eBlockFace a_HitFace) override;
|
|
|
|
virtual void OnHitEntity (cEntity & a_EntityHit, const Vector3d & a_HitPos) override;
|
2014-06-22 15:44:01 -04:00
|
|
|
virtual void Tick (float a_Dt, cChunk & a_Chunk) override
|
|
|
|
{
|
|
|
|
if (m_DestroyTimer > 0)
|
|
|
|
{
|
|
|
|
m_DestroyTimer--;
|
|
|
|
if (m_DestroyTimer == 0)
|
|
|
|
{
|
|
|
|
Destroy();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else { super::Tick(a_Dt, a_Chunk); }
|
|
|
|
}
|
|
|
|
|
|
|
|
/** Teleports the creator where the ender pearl lands */
|
2014-04-26 20:08:39 -04:00
|
|
|
void TeleportCreator(const Vector3d & a_HitPos);
|
2014-06-22 15:44:01 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
/** Time in ticks to wait for the hit animation to begin before destroying */
|
|
|
|
int m_DestroyTimer;
|
2014-04-26 20:08:39 -04:00
|
|
|
|
2014-04-27 12:42:31 -04:00
|
|
|
} ; // tolua_export
|