1#if PROTOCOL_VERSION > 767
28 throw std::runtime_error(
"Unable to create SlotDisplaysData with id: " + std::to_string(
static_cast<int>(type)) +
".");
36 Data = std::make_shared<SlotDisplayDataEmpty>();
39 Data = std::make_shared<ItemSlotDisplay>();
42 Data = std::make_shared<ItemStackSlotDisplay>();
45 Data = std::make_shared<TagSlotDisplay>();
48 Data = std::make_shared<SmithingTrimDemoSlotDisplay>();
51 Data = std::make_shared<WithRemainderSlotDisplay>();
54 Data = std::make_shared<CompositeSlotDisplay>();
58 throw std::runtime_error(
"Unable to create SlotDisplaysData with id: " + std::to_string(
static_cast<int>(Type)) +
".");
68 SetType(ReadData<SlotDisplaysDataType, VarInt>(iter, length));
69 if (GetData() !=
nullptr)
71 GetData()->Read(iter, length);
77 WriteData<SlotDisplaysDataType, VarInt>(GetType(), container);
78 if (GetData() !=
nullptr)
80 GetData()->Write(container);
88 output[std::string(field_name<Type_index>)] = GetType();
89 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
SlotDisplay & SetType(const SlotDisplaysDataType type)
std::vector< unsigned char > WriteContainer
std::vector< unsigned char >::const_iterator ReadIterator
@ NUM_SLOT_DISPLAYS_DATA_TYPES