#pragma once class ShapedRecipy : public Recipy { private: int width, height, group; ItemInstance** recipeItems; ItemInstance* result; bool _keepTag; public: const int resultId; public: ShapedRecipy(int width, int height, ItemInstance** recipeItems, ItemInstance* result, int iGroup = Recipy::eGroupType_Decoration); virtual ~ShapedRecipy() override; virtual const ItemInstance* getResultItem(); virtual const int getGroup(); virtual bool matches(shared_ptr craftSlots, Level* level); private: bool matches(shared_ptr craftSlots, int xOffs, int yOffs, bool xFlip); public: virtual shared_ptr assemble(shared_ptr craftSlots); virtual int size(); ShapedRecipy* keepTag(); // 4J-PB - to return the items required to make a recipe virtual bool reqs(int iRecipe); virtual void reqs(INGREDIENTS_REQUIRED* pIngReq); virtual void writeToStream(DataOutputStream* dos); static ShapedRecipy* readFromStream(DataInputStream* dis); };