summaryrefslogtreecommitdiffstats
path: root/source/Entities
diff options
context:
space:
mode:
authormadmaxoft <github@xoft.cz>2013-08-20 16:47:40 +0200
committermadmaxoft <github@xoft.cz>2013-08-20 16:48:27 +0200
commit0faa1ee2cbecc9ab4897676683c647ec9d43dbb1 (patch)
treea174ccb99c1702f1761209f46998d16e6c2de11a /source/Entities
parentMerge pull request #115 from tigerw/master (diff)
downloadcuberite-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')
-rw-r--r--source/Entities/ProjectileEntity.h69
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
+
+
+