#pragma once #include "AbstractContainerMenu.h" class CraftingContainer; class Container; class InventoryMenu : public AbstractContainerMenu { private: Player *owner; // 4J Stu Made these public for UI menus, perhaps should make friend class? public: static const int RESULT_SLOT; static const int CRAFT_SLOT_START; static const int CRAFT_SLOT_END; static const int ARMOR_SLOT_START; static const int ARMOR_SLOT_END; static const int INV_SLOT_START; static const int INV_SLOT_END; static const int USE_ROW_SLOT_START; static const int USE_ROW_SLOT_END; public: shared_ptr craftSlots; shared_ptr resultSlots; bool active; InventoryMenu(shared_ptr inventory, bool active, Player *player); private: void _init(shared_ptr inventory, bool active); public: virtual void slotsChanged(); // 4J used to take a shared_ptr but wasn't using it, so removed to simplify things virtual void removed(shared_ptr player); virtual bool stillValid(shared_ptr player); virtual shared_ptr quickMoveStack(shared_ptr player, int slotIndex); virtual bool mayCombine(Slot *slot, shared_ptr item); // 4J ADDED, virtual shared_ptr clicked(int slotIndex, int buttonNum, int clickType, shared_ptr player); };