diff options
Diffstat (limited to 'src/UI/BeaconWindow.h')
-rw-r--r-- | src/UI/BeaconWindow.h | 53 |
1 files changed, 3 insertions, 50 deletions
diff --git a/src/UI/BeaconWindow.h b/src/UI/BeaconWindow.h index c4d337afd..fa28b41ba 100644 --- a/src/UI/BeaconWindow.h +++ b/src/UI/BeaconWindow.h @@ -22,61 +22,14 @@ class cBeaconWindow : typedef cWindow super; public: - cBeaconWindow(int a_BlockX, int a_BlockY, int a_BlockZ, cBeaconEntity * a_Beacon) : - cWindow(wtBeacon, "Beacon"), - m_Beacon(a_Beacon) - { - m_SlotAreas.push_back(new cSlotAreaBeacon(m_Beacon, *this)); - m_SlotAreas.push_back(new cSlotAreaInventory(*this)); - m_SlotAreas.push_back(new cSlotAreaHotBar(*this)); - } - + cBeaconWindow(int a_BlockX, int a_BlockY, int a_BlockZ, cBeaconEntity * a_Beacon); cBeaconEntity * GetBeaconEntity(void) const { return m_Beacon; } - - virtual void DistributeStack(cItem & a_ItemStack, int a_Slot, cPlayer & a_Player, cSlotArea * a_ClickedArea, bool a_ShouldApply) override - { - cSlotAreas AreasInOrder; - - if (a_ClickedArea == m_SlotAreas[0]) - { - // Beacon Area - AreasInOrder.push_back(m_SlotAreas[2]); /* Hotbar */ - AreasInOrder.push_back(m_SlotAreas[1]); /* Inventory */ - super::DistributeStackToAreas(a_ItemStack, a_Player, AreasInOrder, a_ShouldApply, true); - } - else - { - if (cSlotAreaBeacon::IsPlaceableItem(a_ItemStack.m_ItemType) && (a_ItemStack.m_ItemCount == 1)) - { - AreasInOrder.push_back(m_SlotAreas[0]); /* Beacon */ - } - - if (a_ClickedArea == m_SlotAreas[1]) - { - // Inventory Area - AreasInOrder.push_back(m_SlotAreas[2]); /* Hotbar */ - } - else - { - // Hotbar Area - AreasInOrder.push_back(m_SlotAreas[1]); /* Inventory */ - } - super::DistributeStackToAreas(a_ItemStack, a_Player, AreasInOrder, a_ShouldApply, false); - } - } - + virtual void DistributeStack(cItem & a_ItemStack, int a_Slot, cPlayer & a_Player, cSlotArea * a_ClickedArea, bool a_ShouldApply) override; // cWindow Overrides: - virtual void OpenedByPlayer(cPlayer & a_Player) override - { - super::OpenedByPlayer(a_Player); - - a_Player.GetClientHandle()->SendWindowProperty(*this, 0, m_Beacon->GetBeaconLevel()); - a_Player.GetClientHandle()->SendWindowProperty(*this, 1, m_Beacon->GetPrimaryEffect()); - a_Player.GetClientHandle()->SendWindowProperty(*this, 2, m_Beacon->GetSecondaryEffect()); - } + virtual void OpenedByPlayer(cPlayer & a_Player) override; protected: cBeaconEntity * m_Beacon; |