1#if PROTOCOL_VERSION > 767
25 throw std::runtime_error(
"Unable to create RecipeDisplayData with id: " + std::to_string(
static_cast<int>(type)) +
".");
32 Data = std::make_shared<ShapelessCraftingRecipeDisplay>();
35 Data = std::make_shared<ShapedCraftingRecipeDisplay>();
38 Data = std::make_shared<FurnaceRecipeDisplay>();
41 Data = std::make_shared<StonecutterRecipeDisplay>();
44 Data = std::make_shared<SmithingRecipeDisplay>();
48 throw std::runtime_error(
"Unable to create RecipeDisplayData with id: " + std::to_string(
static_cast<int>(Type)) +
".");
58 SetType(ReadData<RecipeDisplayDataType, VarInt>(iter, length));
59 if (GetData() !=
nullptr)
61 GetData()->Read(iter, length);
67 WriteData<RecipeDisplayDataType, VarInt>(GetType(), container);
68 if (GetData() !=
nullptr)
70 GetData()->Write(container);
78 output[std::string(field_name<Type_index>)] = GetType();
79 output[std::string(field_name<Data_index>)] = GetData() ==
nullptr ? Json::Object() : GetData()->
Serialize();
#define DEFINE_NETWORK_TYPE(ClassName)
virtual Json::Value SerializeImpl() const =0
virtual void WriteImpl(WriteContainer &container) const =0
virtual Json::Value Serialize() const
virtual void ReadImpl(ReadIterator &iter, size_t &length)=0
RecipeDisplay & SetType(const RecipeDisplayDataType type)
@ NUM_RECIPE_DISPLAY_DATA_TYPES
std::vector< unsigned char > WriteContainer
std::vector< unsigned char >::const_iterator ReadIterator