summaryrefslogtreecommitdiffstats
path: root/src/BlockEntities/ChestEntity.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/BlockEntities/ChestEntity.h')
-rw-r--r--src/BlockEntities/ChestEntity.h46
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