#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 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 requires(int iRecipe); virtual void requires(INGREDIENTS_REQUIRED *pIngReq); };