#pragma once #include #include #include "ItemFilter.h" #include "CraftingStorage.h" class Recipie : public virtual Framework::ReferenceCounter { private: Framework::RCArray filters; Framework::Array inputAmount; Framework::RCArray outputs; Framework::Array outputAmount; public: Recipie(); void addIngredient( ItemFilter* filter, int amount ); void addOutput( Item* item, int amount ); bool testApplicability( CraftingStorage* zStorage ); void apply( CraftingStorage* zStorage ); }; class ShapedRecipie : public virtual Framework::ReferenceCounter { private: Framework::RCArray filters; int width; int height; Item* output; int outputAmount; public: ShapedRecipie( int width, int height ); ~ShapedRecipie(); void setIngredient( int x, int y, ItemFilter* filter ); void setOutput( Item* item, int amount ); bool testApplicability( ShapedCraftingStorage* zStorage ); void apply( ShapedCraftingStorage* zStorage ); };