#pragma once #include "Slot.h" class ResultSlot : public Slot { private: std::shared_ptr craftSlots; Player *player; // This can't be a std::shared_ptr, as we create a result slot in the inventorymenu in the Player ctor int removeCount; public: ResultSlot(Player *player, std::shared_ptr craftSlots, std::shared_ptr container, int id, int x, int y); virtual ~ResultSlot() {} virtual bool mayPlace(std::shared_ptr item); virtual std::shared_ptr remove(int c); protected: virtual void onQuickCraft(std::shared_ptr picked, int count); virtual void checkTakeAchievements(std::shared_ptr carried); public: virtual void onTake(std::shared_ptr player, std::shared_ptr carried); virtual bool mayCombine(std::shared_ptr item); // 4J Added };