mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-08 16:12:12 +02:00
Fixes for domain server use of changed OctreeDataUtils
This commit is contained in:
parent
d183968175
commit
8c347fae70
2 changed files with 29 additions and 7 deletions
|
@ -44,6 +44,7 @@ namespace {
|
|||
}
|
||||
return !doc->isNull();
|
||||
}
|
||||
|
||||
} // Anon namespace.
|
||||
|
||||
bool OctreeUtils::RawOctreeData::readOctreeDataInfoFromJSON(QJsonObject root) {
|
||||
|
@ -62,6 +63,7 @@ bool OctreeUtils::RawOctreeData::readOctreeDataInfoFromMap(const QVariantMap& ma
|
|||
dataVersion = map["DataVersion"].toInt();
|
||||
version = map["Version"].toInt();
|
||||
}
|
||||
readSubclassData(map);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -85,13 +87,20 @@ bool OctreeUtils::RawOctreeData::readOctreeDataInfoFromData(QByteArray data) {
|
|||
// Reads octree file and parses it into a RawOctreeData object.
|
||||
// Returns false if readOctreeFile fails.
|
||||
bool OctreeUtils::RawOctreeData::readOctreeDataInfoFromFile(QString path) {
|
||||
QJsonDocument doc;
|
||||
if (!readOctreeFile(path, &doc)) {
|
||||
QFile file(path);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
qCritical() << "Cannot open json file for reading: " << path;
|
||||
return false;
|
||||
}
|
||||
|
||||
auto root = doc.object();
|
||||
return readOctreeDataInfoFromJSON(root);
|
||||
QByteArray data = file.readAll();
|
||||
QByteArray jsonData;
|
||||
|
||||
if (!gunzip(data, jsonData)) {
|
||||
jsonData = data;
|
||||
}
|
||||
|
||||
return readOctreeDataInfoFromData(jsonData);
|
||||
}
|
||||
|
||||
QByteArray OctreeUtils::RawOctreeData::toByteArray() {
|
||||
|
@ -139,8 +148,18 @@ void OctreeUtils::RawEntityData::readSubclassData(const QJsonObject& root) {
|
|||
}
|
||||
}
|
||||
|
||||
void OctreeUtils::RawEntityData::writeSubclassData(QJsonObject& root) const {
|
||||
root["Entities"] = entityData;
|
||||
void OctreeUtils::RawEntityData::readSubclassData(const QVariantMap& root) {
|
||||
variantEntityData = root["Entities"].toList();
|
||||
}
|
||||
|
||||
PacketType OctreeUtils::RawEntityData::dataPacketType() const { return PacketType::EntityData; }
|
||||
void OctreeUtils::RawEntityData::writeSubclassData(QJsonObject& root) const {
|
||||
//root["Entities"] = entityData;
|
||||
QJsonArray entitiesJsonArray;
|
||||
for (auto entityIter = variantEntityData.begin(); entityIter != variantEntityData.end(); ++entityIter) {
|
||||
entitiesJsonArray += entityIter->toJsonObject();
|
||||
}
|
||||
|
||||
root["Entities"] = entitiesJsonArray;
|
||||
}
|
||||
|
||||
PacketType OctreeUtils::RawEntityData::dataPacketType() const { return PacketType::EntityData; }
|
||||
|
|
|
@ -34,6 +34,7 @@ public:
|
|||
virtual PacketType dataPacketType() const;
|
||||
|
||||
virtual void readSubclassData(const QJsonObject& root) { }
|
||||
virtual void readSubclassData(const QVariantMap& root) { }
|
||||
virtual void writeSubclassData(QJsonObject& root) const { }
|
||||
|
||||
void resetIdAndVersion();
|
||||
|
@ -50,9 +51,11 @@ class RawEntityData : public RawOctreeData {
|
|||
public:
|
||||
PacketType dataPacketType() const override;
|
||||
void readSubclassData(const QJsonObject& root) override;
|
||||
void readSubclassData(const QVariantMap& root) override;
|
||||
void writeSubclassData(QJsonObject& root) const override;
|
||||
|
||||
QJsonArray entityData;
|
||||
QVariantList variantEntityData;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue