#pragma once class cItem; class cFurnaceRecipe { public: cFurnaceRecipe(void); ~cFurnaceRecipe(); void ReloadRecipes(void); struct Fuel { cItem * In; int BurnTime; ///< How long this fuel burns, in ticks }; struct Recipe { cItem * In; cItem * Out; int CookTime; ///< How long this recipe takes to smelt, in ticks }; /// Returns a recipe for the specified input, NULL if no recipe found const Recipe * GetRecipeFrom(const cItem & a_Ingredient) const; /// Returns the amount of time that the specified fuel burns, in ticks int GetBurnTime(const cItem & a_Fuel) const; private: void ClearRecipes(void); struct sFurnaceRecipeState; sFurnaceRecipeState * m_pState; };