diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-12-13 15:06:55 +0100 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-12-13 15:06:55 +0100 |
commit | b6fd4002769b3a1d1f2ee875f7ebba99ee1446d0 (patch) | |
tree | 11fcc800b589a7a46a30b6346f6d87d407ce5dc0 /src/UI/EnderChestWindow.h | |
parent | Merge pull request #1660 from Seadragon91/master (diff) | |
download | cuberite-b6fd4002769b3a1d1f2ee875f7ebba99ee1446d0.tar cuberite-b6fd4002769b3a1d1f2ee875f7ebba99ee1446d0.tar.gz cuberite-b6fd4002769b3a1d1f2ee875f7ebba99ee1446d0.tar.bz2 cuberite-b6fd4002769b3a1d1f2ee875f7ebba99ee1446d0.tar.lz cuberite-b6fd4002769b3a1d1f2ee875f7ebba99ee1446d0.tar.xz cuberite-b6fd4002769b3a1d1f2ee875f7ebba99ee1446d0.tar.zst cuberite-b6fd4002769b3a1d1f2ee875f7ebba99ee1446d0.zip |
Diffstat (limited to 'src/UI/EnderChestWindow.h')
-rw-r--r-- | src/UI/EnderChestWindow.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/UI/EnderChestWindow.h b/src/UI/EnderChestWindow.h new file mode 100644 index 000000000..597fab9f9 --- /dev/null +++ b/src/UI/EnderChestWindow.h @@ -0,0 +1,60 @@ + +// EnderChestWindow.h + +// Representing the UI window for the enderchest block + + + + + +#pragma once + +#include "Window.h" +#include "../BlockEntities/EnderChestEntity.h" + + + + + +class cEnderChestWindow : + public cWindow +{ + typedef cWindow super; + +public: + cEnderChestWindow(cEnderChestEntity * a_EnderChest) : + cWindow(wtChest, "Ender Chest"), + m_World(a_EnderChest->GetWorld()), + m_BlockX(a_EnderChest->GetPosX()), + m_BlockY(a_EnderChest->GetPosY()), + m_BlockZ(a_EnderChest->GetPosZ()) + { + m_ShouldDistributeToHotbarFirst = false; + m_SlotAreas.push_back(new cSlotAreaEnderChest(a_EnderChest, *this)); + m_SlotAreas.push_back(new cSlotAreaInventory(*this)); + m_SlotAreas.push_back(new cSlotAreaHotBar(*this)); + + // Play the opening sound: + m_World->BroadcastSoundEffect("random.chestopen", (double)m_BlockX, (double)m_BlockY, (double)m_BlockZ, 1, 1); + + // Send out the chest-open packet: + m_World->BroadcastBlockAction(m_BlockX, m_BlockY, m_BlockZ, 1, 1, E_BLOCK_ENDER_CHEST); + } + + ~cEnderChestWindow() + { + // Send out the chest-close packet: + m_World->BroadcastBlockAction(m_BlockX, m_BlockY, m_BlockZ, 1, 0, E_BLOCK_ENDER_CHEST); + + // Play the closing sound + m_World->BroadcastSoundEffect("random.chestclosed", (double)m_BlockX, (double)m_BlockY, (double)m_BlockZ, 1, 1); + } + +protected: + cWorld * m_World; + int m_BlockX, m_BlockY, m_BlockZ; // Position of the enderchest, for the window-close packet +}; + + + + |