From ba2a9b6b2c1519563662a6a1147a82f96afb36dc Mon Sep 17 00:00:00 2001 From: faketruth Date: Sun, 30 Sep 2012 16:37:44 +0000 Subject: Added falling block entities. Sand and gravel now properly fall down Implemented the PACKET_SPAWN_OBJECT packet Made some things use BLOCKTYPE instead of char Android: Requests WebAdmin port when pressing the configure button git-svn-id: http://mc-server.googlecode.com/svn/trunk@915 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/FallingBlock.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 source/FallingBlock.h (limited to 'source/FallingBlock.h') diff --git a/source/FallingBlock.h b/source/FallingBlock.h new file mode 100644 index 000000000..08e3302e1 --- /dev/null +++ b/source/FallingBlock.h @@ -0,0 +1,44 @@ + +#pragma once + +#include "Entity.h" +#include "Defines.h" + + + + +class cPlayer; +class cItem; + + + + + + +class cFallingBlock : public cEntity +{ + typedef cEntity super; +public: + CLASS_PROTOTYPE(); + + cFallingBlock(const Vector3i & a_BlockPosition, BLOCKTYPE a_BlockType); + ~cFallingBlock(); + + virtual void Initialize(cWorld * a_World) override; + virtual void SpawnOn(cClientHandle & a_ClientHandle) override; + virtual void Tick(float a_Dt) override; +private: + BLOCKTYPE m_BlockType; + Vector3i m_OriginalPosition; + + float m_SpeedY; + + static bool IsPassable( BLOCKTYPE a_BlockType ) + { + return a_BlockType == E_BLOCK_AIR || IsBlockLiquid( a_BlockType ); + } +}; + + + + -- cgit v1.2.3