2024-02-25 14:46:47 +00:00
|
|
|
#pragma once
|
2023-06-20 04:33:09 +00:00
|
|
|
|
|
|
|
#include "StarItemDescriptor.hpp"
|
|
|
|
#include "StarGameTypes.hpp"
|
|
|
|
|
|
|
|
namespace Star {
|
|
|
|
|
|
|
|
STAR_EXCEPTION(RecipeException, StarException);
|
|
|
|
|
|
|
|
struct ItemRecipe {
|
2024-06-03 05:47:18 +00:00
|
|
|
Json toJson() const;
|
2023-06-20 04:33:09 +00:00
|
|
|
|
2024-06-03 05:47:18 +00:00
|
|
|
bool isNull() const;
|
2023-06-20 04:33:09 +00:00
|
|
|
|
|
|
|
bool operator==(ItemRecipe const& rhs) const;
|
|
|
|
bool operator!=(ItemRecipe const& rhs) const;
|
|
|
|
|
|
|
|
StringMap<uint64_t> currencyInputs;
|
|
|
|
List<ItemDescriptor> inputs;
|
|
|
|
ItemDescriptor output;
|
|
|
|
float duration;
|
|
|
|
StringSet groups;
|
|
|
|
Rarity outputRarity;
|
|
|
|
String guiFilterString;
|
|
|
|
StringMap<String> collectables;
|
|
|
|
bool matchInputParameters;
|
|
|
|
};
|
|
|
|
|
|
|
|
template <>
|
|
|
|
struct hash<ItemRecipe> {
|
|
|
|
size_t operator()(ItemRecipe const& v) const;
|
|
|
|
};
|
|
|
|
|
|
|
|
std::ostream& operator<<(std::ostream& os, ItemRecipe const& recipe);
|
|
|
|
}
|
|
|
|
|
2023-06-27 09:24:35 +00:00
|
|
|
template <> struct fmt::formatter<Star::ItemRecipe> : ostream_formatter {};
|