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