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 | auto newManager = scriptManagerFactory(ScriptManager::ENTITY_SERVER_SCRIPT, NO_SCRIPT, engineName); | 470 | auto newManager = scriptManagerFactory(ScriptManager::ENTITY_SERVER_SCRIPT, NO_SCRIPT, engineName); |
| 471 | auto newEngine = newManager->engine(); | 471 | auto newEngine = newManager->engine(); |
| 472 | 472 | ||
| 473 | auto webSocketServerConstructorValue = newEngine->newFunction(WebSocketServerClass::constructor); | 473 | { |
| 474 | newEngine->globalObject().setProperty("WebSocketServer", webSocketServerConstructorValue); | 474 | auto guard = newEngine->getScopeGuard(); |
| 475 | 475 | { | |
| 476 | newEngine->registerGlobalObject("SoundCache", DependencyManager::get<SoundCacheScriptingInterface>().data()); | 476 | auto webSocketServerConstructorValue = newEngine->newFunction(WebSocketServerClass::constructor); |
| 477 | newEngine->registerGlobalObject("AvatarList", DependencyManager::get<AvatarHashMap>().data()); | 477 | newEngine->globalObject().setProperty("WebSocketServer", webSocketServerConstructorValue); |
| 478 | 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 | }); | ||
| 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 | newManager->runInThread(); | 521 | newManager->runInThread(); |
| 517 | std::shared_ptr<EntitiesScriptEngineProvider> newEngineSP = newManager; | 522 | std::shared_ptr<EntitiesScriptEngineProvider> newEngineSP = newManager; |
| 518 | // On the entity script server, these are the same | 523 | // On the entity script server, these are the same |