summaryrefslogtreecommitdiffstats
path: root/src/Entities/Pickup.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Entities/Pickup.h')
-rw-r--r--src/Entities/Pickup.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/Entities/Pickup.h b/src/Entities/Pickup.h
new file mode 100644
index 000000000..d39eda298
--- /dev/null
+++ b/src/Entities/Pickup.h
@@ -0,0 +1,64 @@
+
+#pragma once
+
+#include "Entity.h"
+#include "../Item.h"
+
+
+
+
+
+class cPlayer;
+
+
+
+
+
+// tolua_begin
+class cPickup :
+ public cEntity
+{
+ // tolua_end
+ typedef cEntity super;
+
+public:
+ CLASS_PROTODEF(cPickup);
+
+ cPickup(double a_PosX, double a_PosY, double a_PosZ, const cItem & a_Item, bool IsPlayerCreated, float a_SpeedX = 0.f, float a_SpeedY = 0.f, float a_SpeedZ = 0.f); // tolua_export
+
+ cItem & GetItem(void) {return m_Item; } // tolua_export
+ const cItem & GetItem(void) const {return m_Item; }
+
+ virtual void SpawnOn(cClientHandle & a_ClientHandle) override;
+
+ bool CollectedBy(cPlayer * a_Dest); // tolua_export
+
+ virtual void Tick(float a_Dt, cChunk & a_Chunk) override;
+
+ /// Returns the number of ticks that this entity has existed
+ int GetAge(void) const { return (int)(m_Timer / 50); } // tolua_export
+
+ /// Returns true if the pickup has already been collected
+ bool IsCollected(void) const { return m_bCollected; } // tolua_export
+
+ /// Returns true if created by player (i.e. vomiting), used for determining picking-up delay time
+ bool IsPlayerCreated(void) const { return m_bIsPlayerCreated; } // tolua_export
+
+private:
+ Vector3d m_ResultingSpeed; //Can be used to modify the resulting speed for the current tick ;)
+
+ Vector3d m_WaterSpeed;
+
+ /// The number of ticks that the entity has existed / timer between collect and destroy; in msec
+ float m_Timer;
+
+ cItem m_Item;
+
+ bool m_bCollected;
+
+ bool m_bIsPlayerCreated;
+}; // tolua_export
+
+
+
+