diff options
author | peterbell10 <peterbell10@live.co.uk> | 2017-06-03 21:17:53 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2017-06-03 21:17:53 +0200 |
commit | 36be4a89f8bedca7a7b369289562cf71041a3db6 (patch) | |
tree | fab8f27bb0c0abdb2e16508c6180c38988ac6af1 /src/BlockEntities/ChestEntity.h | |
parent | Fixed exp orb (#3744) (diff) | |
download | cuberite-36be4a89f8bedca7a7b369289562cf71041a3db6.tar cuberite-36be4a89f8bedca7a7b369289562cf71041a3db6.tar.gz cuberite-36be4a89f8bedca7a7b369289562cf71041a3db6.tar.bz2 cuberite-36be4a89f8bedca7a7b369289562cf71041a3db6.tar.lz cuberite-36be4a89f8bedca7a7b369289562cf71041a3db6.tar.xz cuberite-36be4a89f8bedca7a7b369289562cf71041a3db6.tar.zst cuberite-36be4a89f8bedca7a7b369289562cf71041a3db6.zip |
Diffstat (limited to 'src/BlockEntities/ChestEntity.h')
-rw-r--r-- | src/BlockEntities/ChestEntity.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/BlockEntities/ChestEntity.h b/src/BlockEntities/ChestEntity.h index dfd5ca0d0..96d904248 100644 --- a/src/BlockEntities/ChestEntity.h +++ b/src/BlockEntities/ChestEntity.h @@ -39,7 +39,7 @@ public: virtual void SendTo(cClientHandle & a_Client) override; virtual bool UsedBy(cPlayer * a_Player) override; - /** Search horizontally adjacent blocks for neighbouring chests and links them together. */ + /** Search horizontally adjacent blocks for neighbouring chests of the same type and links them together. */ void ScanNeighbours(); /** Opens a new chest window where this is the primary chest and any neighbour is the secondary. */ @@ -72,9 +72,19 @@ private: ASSERT(a_Grid == &m_Contents); if (m_World != nullptr) { - if (GetWindow() != nullptr) + cWindow * Window = GetWindow(); + if ( + (Window == nullptr) && + (m_Neighbour != nullptr) + ) { - GetWindow()->BroadcastWholeWindow(); + // Neighbour might own the window + Window = m_Neighbour->GetWindow(); + } + + if (Window != nullptr) + { + Window->BroadcastWholeWindow(); } m_World->MarkChunkDirty(GetChunkX(), GetChunkZ()); |