History

first cut at running scripts from entities

ZappoMan committed 12 years ago

Commit a5088ee1 parent 277da5a7 files · +167 −34Browse files

Showing the changes to interface/src/Application.cpp (1 of 7 files). Show all

Unified · Split

interface/src/Application.cpp+36−30
@@ -148,7 +148,9 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 147 unmodified lines
148148 _voxelImporter(),
149149 _importSucceded(false),
150150 _sharedVoxelSystem(TREE_SCALE, DEFAULT_MAX_VOXELS_PER_SYSTEM, &_clipboard),
151− _entityClipboardRenderer(),
151+ _entities(true),
152+ _entityCollisionSystem(),
153+ _entityClipboardRenderer(false),
152154 _entityClipboard(),
153155 _wantToKillLocalVoxels(false),
154156 _viewFrustum(),
@@ -3831,35 +3833,7 @@ void joystickFromScriptValue(const QScriptValue &object, Joystick* &out) { · 3676 unmodified lines
38313833 out = qobject_cast<Joystick*>(object.toQObject());
38323834 }
38333835
3834−ScriptEngine* Application::loadScript(const QString& scriptFilename, bool isUserLoaded,
3835− bool loadScriptFromEditor, bool activateMainWindow) {
3836− QUrl scriptUrl(scriptFilename);
3837− const QString& scriptURLString = scriptUrl.toString();
3838− if (_scriptEnginesHash.contains(scriptURLString) && loadScriptFromEditor
3839− && !_scriptEnginesHash[scriptURLString]->isFinished()) {
3840−
3841− return _scriptEnginesHash[scriptURLString];
3842− }
3843−
3844− ScriptEngine* scriptEngine;
3845− if (scriptFilename.isNull()) {
3846− scriptEngine = new ScriptEngine(NO_SCRIPT, "", &_controllerScriptingInterface);
3847− } else {
3848− // start the script on a new thread...
3849− scriptEngine = new ScriptEngine(scriptUrl, &_controllerScriptingInterface);
3850−
3851− if (!scriptEngine->hasScript()) {
3852− qDebug() << "Application::loadScript(), script failed to load...";
3853− QMessageBox::warning(getWindow(), "Error Loading Script", scriptURLString + " failed to load.");
3854− return NULL;
3855− }
3856−
3857− _scriptEnginesHash.insertMulti(scriptURLString, scriptEngine);
3858− _runningScriptsWidget->setRunningScripts(getRunningScripts());
3859− UserActivityLogger::getInstance().loadedScript(scriptURLString);
3860− }
3861− scriptEngine->setUserLoaded(isUserLoaded);
3862−
3836+void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scriptEngine) {
38633837 // setup the packet senders and jurisdiction listeners of the script engine's scripting interfaces so
38643838 // we can use the same ones from the application.
38653839 scriptEngine->getVoxelsScriptingInterface()->setPacketSender(&_voxelEditSender);
@@ -3941,6 +3915,38 @@ ScriptEngine* Application::loadScript(const QString& scriptFilename, bool isUser · 75 unmodified lines
39413915
39423916 // Starts an event loop, and emits workerThread->started()
39433917 workerThread->start();
3918+}
3919+
3920+ScriptEngine* Application::loadScript(const QString& scriptFilename, bool isUserLoaded,
3921+ bool loadScriptFromEditor, bool activateMainWindow) {
3922+ QUrl scriptUrl(scriptFilename);
3923+ const QString& scriptURLString = scriptUrl.toString();
3924+ if (_scriptEnginesHash.contains(scriptURLString) && loadScriptFromEditor
3925+ && !_scriptEnginesHash[scriptURLString]->isFinished()) {
3926+
3927+ return _scriptEnginesHash[scriptURLString];
3928+ }
3929+
3930+ ScriptEngine* scriptEngine;
3931+ if (scriptFilename.isNull()) {
3932+ scriptEngine = new ScriptEngine(NO_SCRIPT, "", &_controllerScriptingInterface);
3933+ } else {
3934+ // start the script on a new thread...
3935+ scriptEngine = new ScriptEngine(scriptUrl, &_controllerScriptingInterface);
3936+
3937+ if (!scriptEngine->hasScript()) {
3938+ qDebug() << "Application::loadScript(), script failed to load...";
3939+ QMessageBox::warning(getWindow(), "Error Loading Script", scriptURLString + " failed to load.");
3940+ return NULL;
3941+ }
3942+
3943+ _scriptEnginesHash.insertMulti(scriptURLString, scriptEngine);
3944+ _runningScriptsWidget->setRunningScripts(getRunningScripts());
3945+ UserActivityLogger::getInstance().loadedScript(scriptURLString);
3946+ }
3947+ scriptEngine->setUserLoaded(isUserLoaded);
3948+
3949+ registerScriptEngineWithApplicationServices(scriptEngine);
39443950
39453951 // restore the main window's active state
39463952 if (activateMainWindow && !loadScriptFromEditor) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t