summaryrefslogtreecommitdiffstats
path: root/source/Entities/Pickup.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/Entities/Pickup.h')
-rw-r--r--source/Entities/Pickup.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/source/Entities/Pickup.h b/source/Entities/Pickup.h
new file mode 100644
index 000000000..1f32c97b5
--- /dev/null
+++ b/source/Entities/Pickup.h
@@ -0,0 +1,59 @@
+
+#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(int a_MicroPosX, int a_MicroPosY, int a_MicroPosZ, const cItem & a_Item, float a_SpeedX = 0.f, float a_SpeedY = 0.f, float a_SpeedZ = 0.f); // tolua_export
+
+ virtual bool Initialize(cWorld * a_World) override;
+
+ cItem & GetItem(void) {return m_Item; } // tolua_export
+ const cItem & GetItem(void) const {return m_Item; }
+
+ virtual void SpawnOn(cClientHandle & a_ClientHandle) override;
+
+ virtual bool CollectedBy(cPlayer * a_Dest); // tolua_export
+
+ virtual void Tick(float a_Dt, cChunk & a_Chunk) override;
+
+ short GetHealth(void) const { return m_Health; }
+
+ /// Returns the number of ticks that this entity has existed
+ short GetAge(void) const { return (short)(m_Timer / 50); }
+
+private:
+ Vector3d m_ResultingSpeed; //Can be used to modify the resulting speed for the current tick ;)
+
+ Vector3d m_WaterSpeed;
+
+ float m_Timer;
+
+ cItem m_Item;
+
+ bool m_bCollected;
+}; // tolua_export
+
+
+
+