1#if PROTOCOL_VERSION > 770
26 throw std::runtime_error(
"Unable to create particle with id: " + std::to_string(
static_cast<int>(type)) +
".");
32 Data = std::make_shared<EmptyWaypoint>();
35 Data = std::make_shared<Vec3iWaypoint>();
38 Data = std::make_shared<ChunkWaypoint>();
41 Data = std::make_shared<AzimuthWaypoint>();
44 throw std::runtime_error(
"Unable to create TrackedWaypointData with id: " + std::to_string(
static_cast<int>(Type)) +
".");
52 Identifier = ReadData<Either<UUID, std::string>>(iter, length);
53 Icon = ReadData<WaypointIcon>(iter, length);
54 SetType(ReadData<TrackedWaypointType, VarInt>(iter, length));
57 Data->Read(iter, length);
63 WriteData<Either<UUID, std::string>>(Identifier, container);
64 WriteData<WaypointIcon>(Icon, container);
65 WriteData<TrackedWaypointType, VarInt>(Type, container);
68 Data->Write(container);
76 output[std::string(field_name<Identifier_index>)] = Identifier;
77 output[std::string(field_name<Icon_index>)] = Icon;
78 output[std::string(field_name<Type_index>)] = Type;
79 output[std::string(field_name<Data_index>)] = Data ==
nullptr ? Json::Object() : Data->
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
TrackedWaypoint & SetType(const TrackedWaypointType type)
std::vector< unsigned char > WriteContainer
std::vector< unsigned char >::const_iterator ReadIterator