diff options
Diffstat (limited to 'src/UI/FurnaceWindow.h')
-rw-r--r-- | src/UI/FurnaceWindow.h | 57 |
1 files changed, 4 insertions, 53 deletions
diff --git a/src/UI/FurnaceWindow.h b/src/UI/FurnaceWindow.h index 532f99928..845505f8e 100644 --- a/src/UI/FurnaceWindow.h +++ b/src/UI/FurnaceWindow.h @@ -10,7 +10,6 @@ #pragma once #include "Window.h" -#include "../Root.h" @@ -22,58 +21,10 @@ class cFurnaceWindow : typedef cWindow super; public: - cFurnaceWindow(int a_BlockX, int a_BlockY, int a_BlockZ, cFurnaceEntity * a_Furnace) : - cWindow(wtFurnace, "Furnace") - { - m_SlotAreas.push_back(new cSlotAreaFurnace(a_Furnace, *this)); - m_SlotAreas.push_back(new cSlotAreaInventory(*this)); - m_SlotAreas.push_back(new cSlotAreaHotBar(*this)); - } - - - 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]) - { - // Furnace Area - if (a_Slot == 2) - { - // Result Slot - 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 - { - // Furnace Input/Fuel Slot - AreasInOrder.push_back(m_SlotAreas[1]); /* Inventory */ - AreasInOrder.push_back(m_SlotAreas[2]); /* Hotbar */ - super::DistributeStackToAreas(a_ItemStack, a_Player, AreasInOrder, a_ShouldApply, false); - } - } - else - { - cFurnaceRecipe * FurnaceRecipes = cRoot::Get()->GetFurnaceRecipe(); - if ((FurnaceRecipes->GetRecipeFrom(a_ItemStack) != nullptr) || (FurnaceRecipes->IsFuel(a_ItemStack))) - { - // The item is a valid input item or fuel - AreasInOrder.push_back(m_SlotAreas[0]); /* Furnace Area */ - } - else 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); - } - } + cFurnaceWindow(int a_BlockX, int a_BlockY, int a_BlockZ, cFurnaceEntity * a_Furnace); + + virtual void DistributeStack(cItem & a_ItemStack, int a_Slot, cPlayer & a_Player, cSlotArea * a_ClickedArea, bool a_ShouldApply) override; + }; |