diff options
author | madmaxoft <github@xoft.cz> | 2013-08-20 16:47:40 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2013-08-20 16:48:27 +0200 |
commit | 0faa1ee2cbecc9ab4897676683c647ec9d43dbb1 (patch) | |
tree | a174ccb99c1702f1761209f46998d16e6c2de11a /source/Entities/ProjectileEntity.h | |
parent | Merge pull request #115 from tigerw/master (diff) | |
download | cuberite-0faa1ee2cbecc9ab4897676683c647ec9d43dbb1.tar cuberite-0faa1ee2cbecc9ab4897676683c647ec9d43dbb1.tar.gz cuberite-0faa1ee2cbecc9ab4897676683c647ec9d43dbb1.tar.bz2 cuberite-0faa1ee2cbecc9ab4897676683c647ec9d43dbb1.tar.lz cuberite-0faa1ee2cbecc9ab4897676683c647ec9d43dbb1.tar.xz cuberite-0faa1ee2cbecc9ab4897676683c647ec9d43dbb1.tar.zst cuberite-0faa1ee2cbecc9ab4897676683c647ec9d43dbb1.zip |
Diffstat (limited to 'source/Entities/ProjectileEntity.h')
-rw-r--r-- | source/Entities/ProjectileEntity.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/source/Entities/ProjectileEntity.h b/source/Entities/ProjectileEntity.h new file mode 100644 index 000000000..2e050068b --- /dev/null +++ b/source/Entities/ProjectileEntity.h @@ -0,0 +1,69 @@ + +// ProjectileEntity.h + +// Declares the cProjectileEntity class representing the common base class for projectiles + + + + + +#pragma once + +#include "Entity.h" + + + + + +// tolua_begin + +class cProjectileEntity : + public cEntity +{ + typedef cEntity super; + +public: + /// The kind of the projectile. The numbers correspond to the network type ID used for spawning via the 0x17 packet. + enum eKind + { + pkArrow = 60, + pkSnowball = 61, + pkEgg = 62, + pkGhastFireball = 63, // TODO: Unverified TypeID, check this in ProtoProxy + pkFireCharge = 64, // TODO: Unverified TypeID, check this in ProtoProxy + pkEnderPearl = 65, + pkExpBottle = 75, + pkSplashPotion = 73, + pkWitherSkull = 66, + pkFishingFloat = 90, + } ; + + cProjectileEntity(eKind a_Kind, cEntity * a_Creator, double a_X, double a_Y, double a_Z, double a_Width, double a_Height); + cProjectileEntity(eKind a_Kind, cEntity * a_Creator, const Vector3d & a_Pos, const Vector3d & a_Speed, double a_Width, double a_Height); + + /// Called by the physics blocktracer when the entity hits a solid block, the coords and the face hit is given + virtual void OnHitSolidBlock(double a_BlockX, double a_BlockY, double a_BlockZ, char a_BlockFace) {}; + +protected: + eKind m_Kind; + + /// The entity who has created this projectile; may be NULL (e. g. for dispensers) + cEntity * m_Creator; +} ; + + + + + +class cArrowEntity : + public cProjectileEntity +{ +public: + cArrowEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, double a_Width, double a_Height); + cArrowEntity(cEntity * a_Creator, const Vector3d & a_Pos, const Vector3d & a_Speed, double a_Width, double a_Height); +} ; + +// tolua_end + + + |