Add tag's value getter + TagString
parent
c57d9e6405
commit
502625a18c
@ -0,0 +1,35 @@
|
||||
#include "TagString.h"
|
||||
|
||||
#include "TagShort.h"
|
||||
|
||||
#include <QtCore/QDataStream>
|
||||
|
||||
TagString::TagString(const QString &value) : AbstractNamedTag(ID), m_value(value) {}
|
||||
|
||||
const QString &TagString::value() const {
|
||||
return m_value;
|
||||
}
|
||||
|
||||
void TagString::readPayloadFromData(QDataStream &data) {
|
||||
TagShort size;
|
||||
data >> size;
|
||||
|
||||
QByteArray string(size.value(), '\0');
|
||||
for (qint16 elem = 0; elem < size.value(); elem++) {
|
||||
qint8 byte;
|
||||
data >> byte;
|
||||
|
||||
string[elem] = byte;
|
||||
}
|
||||
|
||||
m_value = QString::fromUtf8(string);
|
||||
}
|
||||
void TagString::writePayloadToData(QDataStream &data) const {
|
||||
const QByteArray string(m_value.toUtf8());
|
||||
const TagShort size(string.size());
|
||||
|
||||
data << size;
|
||||
for(qint16 elem = 0; elem < size.value(); elem++) {
|
||||
data << string.at(elem);
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
#ifndef NBTMODIFIER_TAGSTRING_H
|
||||
#define NBTMODIFIER_TAGSTRING_H
|
||||
|
||||
#include "AbstractNamedTag.h"
|
||||
|
||||
#include <QtCore/QString>
|
||||
|
||||
class TagString : public AbstractNamedTag {
|
||||
public:
|
||||
static constexpr quint8 ID = 8;
|
||||
|
||||
TagString(const QString &value = 0);
|
||||
|
||||
const QString &value() const;
|
||||
|
||||
protected:
|
||||
virtual void readPayloadFromData(QDataStream &data) override;
|
||||
virtual void writePayloadToData(QDataStream &data) const override;
|
||||
|
||||
private:
|
||||
QString m_value;
|
||||
};
|
||||
|
||||
#endif //NBTMODIFIER_TAGSTRING_H
|
Loading…
Reference in New Issue