#pragma once #include "StarItemDescriptor.hpp" #include "StarGameTypes.hpp" namespace Star { STAR_EXCEPTION(RecipeException, StarException); struct ItemRecipe { Json toJson() const; bool isNull() const; bool operator==(ItemRecipe const& rhs) const; bool operator!=(ItemRecipe const& rhs) const; StringMap currencyInputs; List inputs; ItemDescriptor output; float duration; StringSet groups; Rarity outputRarity; String guiFilterString; StringMap collectables; bool matchInputParameters; }; template <> struct hash { size_t operator()(ItemRecipe const& v) const; }; std::ostream& operator<<(std::ostream& os, ItemRecipe const& recipe); } template <> struct fmt::formatter : ostream_formatter {};