summaryrefslogtreecommitdiffstats
path: root/source/Entities/FallingBlock.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/Entities/FallingBlock.h')
-rw-r--r--source/Entities/FallingBlock.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/source/Entities/FallingBlock.h b/source/Entities/FallingBlock.h
new file mode 100644
index 000000000..13931f061
--- /dev/null
+++ b/source/Entities/FallingBlock.h
@@ -0,0 +1,44 @@
+
+#pragma once
+
+#include "Entity.h"
+
+
+
+
+class cPlayer;
+class cItem;
+
+
+
+
+
+
+class cFallingBlock :
+ public cEntity
+{
+ typedef cEntity super;
+
+public:
+ CLASS_PROTODEF(cFallingBlock);
+
+ /// Creates a new falling block. a_BlockPosition is expected in world coords
+ cFallingBlock(const Vector3i & a_BlockPosition, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta);
+
+ BLOCKTYPE GetBlockType(void) const { return m_BlockType; }
+ NIBBLETYPE GetBlockMeta(void) const { return m_BlockMeta; }
+
+ // cEntity overrides:
+ virtual bool Initialize(cWorld * a_World) override;
+ virtual void SpawnOn(cClientHandle & a_ClientHandle) override;
+ virtual void Tick(float a_Dt, cChunk & a_Chunk) override;
+
+private:
+ BLOCKTYPE m_BlockType;
+ NIBBLETYPE m_BlockMeta;
+ Vector3i m_OriginalPosition; // Position where the falling block has started, in world coords
+} ;
+
+
+
+