// // SplashPotionEntity.h // #pragma once #include "ProjectileEntity.h" #include "EntityEffect.h" #include "../World.h" #include "Entity.h" // tolua_begin class cSplashPotionEntity : public cProjectileEntity { typedef cProjectileEntity super; public: // tolua_end CLASS_PROTODEF(cSplashPotionEntity); cSplashPotionEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const Vector3d & a_Speed, cEntityEffect::eType a_EntityEffectType, cEntityEffect a_EntityEffect, int a_PotionName); cEntityEffect::eType GetEntityEffectType() { return m_EntityEffectType; } cEntityEffect GetEntityEffect() { return m_EntityEffect; } int GetPotionName() { return m_PotionName; } void SetEntityEffectType(cEntityEffect::eType a_EntityEffectType) { m_EntityEffectType = a_EntityEffectType; } void SetEntityEffect(cEntityEffect a_EntityEffect) { m_EntityEffect = a_EntityEffect; } void SetPotionName(int a_PotionName) { m_PotionName = a_PotionName; } 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; /** Splashes the potion, fires its particle effects and sounds * @param a_HitPos The position where the potion will splash */ void Splash(const Vector3d & a_HitPos); cEntityEffect::eType m_EntityEffectType; cEntityEffect m_EntityEffect; int m_PotionName; class cSplashPotionCallback : public cEntityCallback { public: cSplashPotionCallback(const Vector3d & a_HitPos, cEntityEffect::eType &a_EntityEffectType, cEntityEffect &a_EntityEffect); virtual bool Item(cEntity *a_Entity) override; private: const Vector3d &m_HitPos; cEntityEffect::eType &m_EntityEffectType; cEntityEffect &m_EntityEffect; }; } ; // tolua_export