Fix entity data ID sometimes being reset

This commit is contained in:
Ryan Huffman 2018-02-07 09:27:51 -08:00 committed by Atlante45
parent fc8e7a0841
commit ff5be2d690
2 changed files with 11 additions and 5 deletions

View file

@ -1802,7 +1802,7 @@ void DomainServer::processOctreeDataRequestMessage(QSharedPointer<ReceivedMessag
qCDebug(domain_server) << "ES has sufficient octree data, not sending data";
reply->writePrimitive(false);
} else {
qCDebug(domain_server) << "Sending newer octree data to ES";
qCDebug(domain_server) << "Sending newer octree data to ES: ID(" << data.id << ") DataVersion(" << data.version << ")";
QFile file(entityFilePath);
if (file.open(QIODevice::ReadOnly)) {
reply->writePrimitive(true);
@ -3312,6 +3312,9 @@ void DomainServer::handleOctreeFileReplacementFromURLRequest(QSharedPointer<Rece
QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
QNetworkRequest request(modelsURL);
QNetworkReply* reply = networkAccessManager.get(request);
qDebug() << "Downloading JSON from: " << modelsURL;
connect(reply, &QNetworkReply::finished, [this, reply, modelsURL]() {
QNetworkReply::NetworkError networkError = reply->error();
if (networkError == QNetworkReply::NoError) {

View file

@ -171,15 +171,13 @@ bool OctreePersistThread::process() {
quint64 loadStarted = usecTimestampNow();
qCDebug(octree) << "loading Octrees from file: " << _filename << "...";
if (_replacementData.isNull()) {
sendLatestEntityDataToDS();
} else {
if (!_replacementData.isNull()) {
replaceData(_replacementData);
_replacementData.clear();
}
OctreeUtils::RawOctreeData data;
if (OctreeUtils::readOctreeDataInfoFromFile(_filename, &data)) {
qDebug() << "Setting entity version info to: " << data.id << data.version;
_tree->setEntityVersionInfo(data.id, data.version);
}
@ -244,6 +242,11 @@ bool OctreePersistThread::process() {
// want an uninitialized value for this, so we set it to the current time (startup of the server)
time(&_lastPersistTime);
if (_replacementData.isNull()) {
sendLatestEntityDataToDS();
}
_replacementData.clear();
emit loadCompleted();
}