Showing the changes to assignment-client/src/scripts/EntityScriptServer.cpp (1 of 18 files). Show all
Unified · Split
| @@ -470,49 +470,54 @@ void EntityScriptServer::resetEntitiesScriptEngine() { · 469 unmodified lines | ||
| 470 | 470 | auto newManager = scriptManagerFactory(ScriptManager::ENTITY_SERVER_SCRIPT, NO_SCRIPT, engineName); |
| 471 | 471 | auto newEngine = newManager->engine(); |
| 472 | 472 | |
| 473 | − auto webSocketServerConstructorValue = newEngine->newFunction(WebSocketServerClass::constructor); | |
| 474 | − newEngine->globalObject().setProperty("WebSocketServer", webSocketServerConstructorValue); | |
| 475 | − | |
| 476 | − newEngine->registerGlobalObject("SoundCache", DependencyManager::get<SoundCacheScriptingInterface>().data()); | |
| 477 | − newEngine->registerGlobalObject("AvatarList", DependencyManager::get<AvatarHashMap>().data()); | |
| 478 | − | |
| 479 | − // connect this script engines printedMessage signal to the global ScriptEngines these various messages | |
| 480 | − auto scriptEngines = DependencyManager::get<ScriptEngines>().data(); | |
| 481 | − connect(newManager.get(), &ScriptManager::printedMessage, scriptEngines, &ScriptEngines::onPrintedMessage); | |
| 482 | − connect(newManager.get(), &ScriptManager::errorMessage, scriptEngines, &ScriptEngines::onErrorMessage); | |
| 483 | − connect(newManager.get(), &ScriptManager::warningMessage, scriptEngines, &ScriptEngines::onWarningMessage); | |
| 484 | − connect(newManager.get(), &ScriptManager::infoMessage, scriptEngines, &ScriptEngines::onInfoMessage); | |
| 485 | − | |
| 486 | − // Make script engine messages available through ScriptDiscoveryService | |
| 487 | − connect(newManager.get(), &ScriptManager::infoEntityMessage, scriptEngines, &ScriptEngines::infoEntityMessage); | |
| 488 | − connect(newManager.get(), &ScriptManager::printedEntityMessage, scriptEngines, &ScriptEngines::printedEntityMessage); | |
| 489 | − connect(newManager.get(), &ScriptManager::errorEntityMessage, scriptEngines, &ScriptEngines::errorEntityMessage); | |
| 490 | − connect(newManager.get(), &ScriptManager::warningEntityMessage, scriptEngines, &ScriptEngines::warningEntityMessage); | |
| 491 | − | |
| 492 | − connect(newManager.get(), &ScriptManager::infoEntityMessage, | |
| 493 | − [this](const QString& message, const QString& fileName, int lineNumber, const EntityItemID& entityID) { | |
| 494 | − addLogEntry(message, fileName, lineNumber, entityID, ScriptMessage::Severity::SEVERITY_INFO); | |
| 495 | − }); | |
| 496 | − connect(newManager.get(), &ScriptManager::printedEntityMessage, | |
| 497 | − [this](const QString& message, const QString& fileName, int lineNumber, const EntityItemID& entityID) { | |
| 498 | − addLogEntry(message, fileName, lineNumber, entityID, ScriptMessage::Severity::SEVERITY_PRINT); | |
| 499 | − }); | |
| 500 | − connect(newManager.get(), &ScriptManager::errorEntityMessage, | |
| 501 | − [this](const QString& message, const QString& fileName, int lineNumber, const EntityItemID& entityID) { | |
| 502 | − addLogEntry(message, fileName, lineNumber, entityID, ScriptMessage::Severity::SEVERITY_ERROR); | |
| 503 | − }); | |
| 504 | − connect(newManager.get(), &ScriptManager::warningEntityMessage, | |
| 505 | − [this](const QString& message, const QString& fileName, int lineNumber, const EntityItemID& entityID) { | |
| 506 | − addLogEntry(message, fileName, lineNumber, entityID, ScriptMessage::Severity::SEVERITY_WARNING); | |
| 507 | − }); | |
| 508 | − | |
| 509 | − connect(newManager.get(), &ScriptManager::update, this, [this] { | |
| 510 | − _entityViewer.queryOctree(); | |
| 511 | − _entityViewer.getTree()->preUpdate(); | |
| 512 | − _entityViewer.getTree()->update(); | |
| 513 | − }); | |
| 473 | + { | |
| 474 | + auto guard = newEngine->getScopeGuard(); | |
| 475 | + { | |
| 476 | + auto webSocketServerConstructorValue = newEngine->newFunction(WebSocketServerClass::constructor); | |
| 477 | + newEngine->globalObject().setProperty("WebSocketServer", webSocketServerConstructorValue); | |
| 478 | + } | |
| 514 | 479 | |
| 515 | − scriptEngines->runScriptInitializers(newManager); | |
| 480 | + newEngine->registerGlobalObject("SoundCache", DependencyManager::get<SoundCacheScriptingInterface>().data()); | |
| 481 | + newEngine->registerGlobalObject("AvatarList", DependencyManager::get<AvatarHashMap>().data()); | |
| 482 | + | |
| 483 | + // connect this script engines printedMessage signal to the global ScriptEngines these various messages | |
| 484 | + auto scriptEngines = DependencyManager::get<ScriptEngines>().data(); | |
| 485 | + connect(newManager.get(), &ScriptManager::printedMessage, scriptEngines, &ScriptEngines::onPrintedMessage); | |
| 486 | + connect(newManager.get(), &ScriptManager::errorMessage, scriptEngines, &ScriptEngines::onErrorMessage); | |
| 487 | + connect(newManager.get(), &ScriptManager::warningMessage, scriptEngines, &ScriptEngines::onWarningMessage); | |
| 488 | + connect(newManager.get(), &ScriptManager::infoMessage, scriptEngines, &ScriptEngines::onInfoMessage); | |
| 489 | + | |
| 490 | + // Make script engine messages available through ScriptDiscoveryService | |
| 491 | + connect(newManager.get(), &ScriptManager::infoEntityMessage, scriptEngines, &ScriptEngines::infoEntityMessage); | |
| 492 | + connect(newManager.get(), &ScriptManager::printedEntityMessage, scriptEngines, &ScriptEngines::printedEntityMessage); | |
| 493 | + connect(newManager.get(), &ScriptManager::errorEntityMessage, scriptEngines, &ScriptEngines::errorEntityMessage); | |
| 494 | + connect(newManager.get(), &ScriptManager::warningEntityMessage, scriptEngines, &ScriptEngines::warningEntityMessage); | |
| 495 | + | |
| 496 | + connect(newManager.get(), &ScriptManager::infoEntityMessage, | |
| 497 | + [this](const QString& message, const QString& fileName, int lineNumber, const EntityItemID& entityID) { | |
| 498 | + addLogEntry(message, fileName, lineNumber, entityID, ScriptMessage::Severity::SEVERITY_INFO); | |
| 499 | + }); | |
| 500 | + connect(newManager.get(), &ScriptManager::printedEntityMessage, | |
| 501 | + [this](const QString& message, const QString& fileName, int lineNumber, const EntityItemID& entityID) { | |
| 502 | + addLogEntry(message, fileName, lineNumber, entityID, ScriptMessage::Severity::SEVERITY_PRINT); | |
| 503 | + }); | |
| 504 | + connect(newManager.get(), &ScriptManager::errorEntityMessage, | |
| 505 | + [this](const QString& message, const QString& fileName, int lineNumber, const EntityItemID& entityID) { | |
| 506 | + addLogEntry(message, fileName, lineNumber, entityID, ScriptMessage::Severity::SEVERITY_ERROR); | |
| 507 | + }); | |
| 508 | + connect(newManager.get(), &ScriptManager::warningEntityMessage, | |
| 509 | + [this](const QString& message, const QString& fileName, int lineNumber, const EntityItemID& entityID) { | |
| 510 | + addLogEntry(message, fileName, lineNumber, entityID, ScriptMessage::Severity::SEVERITY_WARNING); | |
| 511 | + }); | |
| 512 | + | |
| 513 | + connect(newManager.get(), &ScriptManager::update, this, [this] { | |
| 514 | + _entityViewer.queryOctree(); | |
| 515 | + _entityViewer.getTree()->preUpdate(); | |
| 516 | + _entityViewer.getTree()->update(); | |
| 517 | + }); | |
| 518 | + | |
| 519 | + scriptEngines->runScriptInitializers(newManager); | |
| 520 | + } | |
| 516 | 521 | newManager->runInThread(); |
| 517 | 522 | std::shared_ptr<EntitiesScriptEngineProvider> newEngineSP = newManager; |
| 518 | 523 | // On the entity script server, these are the same |