diff options
Diffstat (limited to 'src/BlockEntities/ChestEntity.h')
-rw-r--r-- | src/BlockEntities/ChestEntity.h | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/src/BlockEntities/ChestEntity.h b/src/BlockEntities/ChestEntity.h index 02b182481..ee3c59b8b 100644 --- a/src/BlockEntities/ChestEntity.h +++ b/src/BlockEntities/ChestEntity.h @@ -34,32 +34,20 @@ public: // tolua_end - /** Constructor used for normal operation */ cChestEntity(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos, cWorld * a_World); - // cBlockEntity overrides: - virtual void CopyFrom(const cBlockEntity & a_Src) override; - virtual void OnRemoveFromWorld() override; - virtual void SendTo(cClientHandle & a_Client) override; - virtual bool UsedBy(cPlayer * a_Player) override; + /** Gets the number of players who currently have this chest open */ + int GetNumberOfPlayers(void) const { return m_NumActivePlayers; } - /** Search horizontally adjacent blocks for neighbouring chests of the same type and links them together. */ - void ScanNeighbours(); + /** Returns the associated primary chest. */ + cChestEntity & GetPrimaryChest(); - /** Returns the value of m_Neighbour. */ - cChestEntity * GetNeighbour(); + /** Returns the associated secondary chest, if any. */ + cChestEntity * GetSecondaryChest(); - /** Opens a new chest window where this is the primary chest and any neighbour is the secondary. */ - void OpenNewWindow(); - - /** Forces any players to close the owned window. */ - void DestroyWindow(); - - /** Returns true if the chest should not be accessible by players. */ - bool IsBlocked(); - - /** Gets the number of players who currently have this chest open */ - int GetNumberOfPlayers(void) const { return m_NumActivePlayers; } + /** Search the given horizontally adjacent relative position for a neighbouring chest of the same type. + If found, links them together with ourselves and returns true. */ + bool ScanNeighbour(cChunk & a_Chunk, Vector3i a_Position); /** Sets the number of players who currently have this chest open */ void SetNumberOfPlayers(int a_NumActivePlayers) { m_NumActivePlayers = a_NumActivePlayers; } @@ -72,6 +60,22 @@ private: /** Neighbouring chest that links to form a double chest */ cChestEntity * m_Neighbour; + /** Forces any players to close the owned window. */ + void DestroyWindow(); + + /** Returns true if the chest should not be accessible by players. */ + bool IsBlocked(); + + /** Opens a new chest window where this is the primary chest and any neighbour is the secondary. */ + void OpenNewWindow(); + + // cBlockEntity overrides: + virtual void CopyFrom(const cBlockEntity & a_Src) override; + virtual void OnAddToWorld(cWorld & a_World, cChunk & a_Chunk) override; + virtual void OnRemoveFromWorld() override; + virtual void SendTo(cClientHandle & a_Client) override; + virtual bool UsedBy(cPlayer * a_Player) override; + /** cItemGrid::cListener overrides: */ virtual void OnSlotChanged(cItemGrid * a_Grid, int a_SlotNum) override; } ; // tolua_export |