#pragma once class Container; class Slot { private: int slot; public: std::shared_ptr container; public: int index; int x, y; Slot(std::shared_ptr container, int slot, int x, int y); virtual ~Slot() {} void onQuickCraft(std::shared_ptr picked, std::shared_ptr original); protected: virtual void onQuickCraft(std::shared_ptr picked, int count); virtual void checkTakeAchievements(std::shared_ptr picked); public: void swap(Slot *other); virtual void onTake(std::shared_ptr player, std::shared_ptr carried); virtual bool mayPlace(std::shared_ptr item); virtual std::shared_ptr getItem(); virtual bool hasItem(); virtual void set(std::shared_ptr item); virtual void setChanged(); virtual int getMaxStackSize(); virtual Icon *getNoItemIcon(); virtual std::shared_ptr remove(int c); virtual bool isAt(std::shared_ptr c, int s); virtual bool mayPickup(std::shared_ptr player); virtual bool mayCombine(std::shared_ptr item); // 4J Added virtual std::shared_ptr combine(std::shared_ptr item); // 4J Added };