2014-04-26 20:24:44 -04:00
|
|
|
//
|
2014-04-27 20:03:06 -04:00
|
|
|
// ThrownSnowballEntity.h
|
2014-04-26 20:24:44 -04:00
|
|
|
//
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "ProjectileEntity.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-26 20:58:06 -04:00
|
|
|
// tolua_begin
|
|
|
|
|
2014-04-26 20:24:44 -04:00
|
|
|
class cThrownSnowballEntity :
|
2014-04-27 20:03:06 -04:00
|
|
|
public cProjectileEntity
|
2014-04-26 20:24:44 -04:00
|
|
|
{
|
|
|
|
typedef cProjectileEntity super;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
// tolua_end
|
|
|
|
|
2014-07-22 18:36:13 -04:00
|
|
|
CLASS_PROTODEF(cThrownSnowballEntity)
|
2014-04-26 20:24:44 -04:00
|
|
|
|
|
|
|
cThrownSnowballEntity(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;
|
|
|
|
}
|
|
|
|
}
|
2014-07-04 12:42:40 -04:00
|
|
|
else
|
|
|
|
{
|
|
|
|
super::Tick(a_Dt, a_Chunk);
|
|
|
|
}
|
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:24:44 -04:00
|
|
|
|
2014-07-17 16:15:34 -04:00
|
|
|
} ; // tolua_export
|