#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); ~ShapedRecipy(); virtual const ItemInstance *getResultItem(); virtual const int getGroup(); virtual bool matches(shared_ptr craftSlots, Level *level); int getWidth() { return width; } int getHeight() { return height; } ItemInstance** getRecipeItems() { return recipeItems; } 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); };