Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 104 files). Show all
Unified · Split
| @@ -25,6 +25,7 @@ · 24 unmodified lines | |||
| 25 | 25 | ||
| 26 | #include <Sound.h> | 26 | #include <Sound.h> |
| 27 | 27 | ||
| 28 | #include "MenuItemProperties.h" | ||
| 28 | #include "ScriptEngine.h" | 29 | #include "ScriptEngine.h" |
| 29 | 30 | ||
| 30 | const unsigned int VISUAL_DATA_CALLBACK_USECS = (1.0 / 60.0) * 1000 * 1000; | 31 | const unsigned int VISUAL_DATA_CALLBACK_USECS = (1.0 / 60.0) * 1000 * 1000; |
| @@ -42,10 +43,10 @@ static QScriptValue soundConstructor(QScriptContext* context, QScriptEngine* eng · 11 unmodified lines | |||
| 42 | 43 | ||
| 43 | 44 | ||
| 44 | ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems, const QString& fileNameString, | 45 | ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems, const QString& fileNameString, |
| 45 | AbstractMenuInterface* menu, | ||
| 46 | AbstractControllerScriptingInterface* controllerScriptingInterface) : | 46 | AbstractControllerScriptingInterface* controllerScriptingInterface) : |
| 47 | _isAvatar(false), | 47 | _isAvatar(false), |
| 48 | _avatarIdentityTimer(NULL), | 48 | _avatarIdentityTimer(NULL), |
| 49 | _avatarBillboardTimer(NULL), | ||
| 49 | _avatarData(NULL) | 50 | _avatarData(NULL) |
| 50 | { | 51 | { |
| 51 | _scriptContents = scriptContents; | 52 | _scriptContents = scriptContents; |
| @@ -68,7 +69,6 @@ ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems, co · 16 unmodified lines | |||
| 68 | _scriptMenuName.append(_scriptNumber); | 69 | _scriptMenuName.append(_scriptNumber); |
| 69 | } | 70 | } |
| 70 | _scriptNumber++; | 71 | _scriptNumber++; |
| 71 | _menu = menu; | ||
| 72 | _controllerScriptingInterface = controllerScriptingInterface; | 72 | _controllerScriptingInterface = controllerScriptingInterface; |
| 73 | } | 73 | } |
| 74 | 74 | ||
| @@ -80,14 +80,17 @@ void ScriptEngine::setIsAvatar(bool isAvatar) { · 5 unmodified lines | |||
| 80 | _isAvatar = isAvatar; | 80 | _isAvatar = isAvatar; |
| 81 | 81 | ||
| 82 | if (_isAvatar && !_avatarIdentityTimer) { | 82 | if (_isAvatar && !_avatarIdentityTimer) { |
| 83 | // set up the avatar identity timer | 83 | // set up the avatar timers |
| 84 | _avatarIdentityTimer = new QTimer(this); | 84 | _avatarIdentityTimer = new QTimer(this); |
| 85 | _avatarBillboardTimer = new QTimer(this); | ||
| 85 | 86 | ||
| 86 | // connect our slot | 87 | // connect our slot |
| 87 | connect(_avatarIdentityTimer, &QTimer::timeout, this, &ScriptEngine::sendAvatarIdentityPacket); | 88 | connect(_avatarIdentityTimer, &QTimer::timeout, this, &ScriptEngine::sendAvatarIdentityPacket); |
| 89 | connect(_avatarBillboardTimer, &QTimer::timeout, this, &ScriptEngine::sendAvatarBillboardPacket); | ||
| 88 | 90 | ||
| 89 | // start the timer | 91 | // start the timers |
| 90 | _avatarIdentityTimer->start(AVATAR_IDENTITY_PACKET_SEND_INTERVAL_MSECS); | 92 | _avatarIdentityTimer->start(AVATAR_IDENTITY_PACKET_SEND_INTERVAL_MSECS); |
| 93 | _avatarBillboardTimer->start(AVATAR_BILLBOARD_PACKET_SEND_INTERVAL_MSECS); | ||
| 91 | } | 94 | } |
| 92 | } | 95 | } |
| 93 | 96 | ||
| @@ -101,16 +104,9 @@ void ScriptEngine::setAvatarData(AvatarData* avatarData, const QString& objectNa · 7 unmodified lines | |||
| 101 | registerGlobalObject(objectName, _avatarData); | 104 | registerGlobalObject(objectName, _avatarData); |
| 102 | } | 105 | } |
| 103 | 106 | ||
| 104 | 107 | void ScriptEngine::cleanupMenuItems() { | |
| 105 | void ScriptEngine::setupMenuItems() { | 108 | if (_wantMenuItems) { |
| 106 | if (_menu && _wantMenuItems) { | 109 | emit cleanupMenuItem(_scriptMenuName); |
| 107 | _menu->addActionToQMenuAndActionHash(_menu->getActiveScriptsMenu(), _scriptMenuName, 0, this, SLOT(stop())); | ||
| 108 | } | ||
| 109 | } | ||
| 110 | |||
| 111 | void ScriptEngine::cleanMenuItems() { | ||
| 112 | if (_menu && _wantMenuItems) { | ||
| 113 | _menu->removeAction(_menu->getActiveScriptsMenu(), _scriptMenuName); | ||
| 114 | } | 110 | } |
| 115 | } | 111 | } |
| 116 | 112 | ||
| @@ -138,8 +134,8 @@ void ScriptEngine::init() { · 21 unmodified lines | |||
| 138 | // register various meta-types | 134 | // register various meta-types |
| 139 | registerMetaTypes(&_engine); | 135 | registerMetaTypes(&_engine); |
| 140 | registerVoxelMetaTypes(&_engine); | 136 | registerVoxelMetaTypes(&_engine); |
| 141 | //registerParticleMetaTypes(&_engine); | ||
| 142 | registerEventTypes(&_engine); | 137 | registerEventTypes(&_engine); |
| 138 | registerMenuItemProperties(&_engine); | ||
| 143 | 139 | ||
| 144 | qScriptRegisterMetaType(&_engine, ParticlePropertiesToScriptValue, ParticlePropertiesFromScriptValue); | 140 | qScriptRegisterMetaType(&_engine, ParticlePropertiesToScriptValue, ParticlePropertiesFromScriptValue); |
| 145 | qScriptRegisterMetaType(&_engine, ParticleIDtoScriptValue, ParticleIDfromScriptValue); | 141 | qScriptRegisterMetaType(&_engine, ParticleIDtoScriptValue, ParticleIDfromScriptValue); |
| @@ -172,7 +168,6 @@ void ScriptEngine::init() { · 26 unmodified lines | |||
| 172 | _voxelsScriptingInterface.getVoxelPacketSender()->setProcessCallIntervalHint(VISUAL_DATA_CALLBACK_USECS); | 168 | _voxelsScriptingInterface.getVoxelPacketSender()->setProcessCallIntervalHint(VISUAL_DATA_CALLBACK_USECS); |
| 173 | _particlesScriptingInterface.getParticlePacketSender()->setProcessCallIntervalHint(VISUAL_DATA_CALLBACK_USECS); | 169 | _particlesScriptingInterface.getParticlePacketSender()->setProcessCallIntervalHint(VISUAL_DATA_CALLBACK_USECS); |
| 174 | 170 | ||
| 175 | //qDebug() << "Script:\n" << _scriptContents << "\n"; | ||
| 176 | } | 171 | } |
| 177 | 172 | ||
| 178 | void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { | 173 | void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { |
| @@ -201,6 +196,12 @@ void ScriptEngine::sendAvatarIdentityPacket() { · 22 unmodified lines | |||
| 201 | } | 196 | } |
| 202 | } | 197 | } |
| 203 | 198 | ||
| 199 | void ScriptEngine::sendAvatarBillboardPacket() { | ||
| 200 | if (_isAvatar && _avatarData) { | ||
| 201 | _avatarData->sendBillboardPacket(); | ||
| 202 | } | ||
| 203 | } | ||
| 204 | |||
| 204 | void ScriptEngine::run() { | 205 | void ScriptEngine::run() { |
| 205 | if (!_isInitialized) { | 206 | if (!_isInitialized) { |
| 206 | init(); | 207 | init(); |
| @@ -295,7 +296,7 @@ void ScriptEngine::run() { · 88 unmodified lines | |||
| 295 | } | 296 | } |
| 296 | } | 297 | } |
| 297 | 298 | ||
| 298 | cleanMenuItems(); | 299 | cleanupMenuItems(); |
| 299 | 300 | ||
| 300 | // If we were on a thread, then wait till it's done | 301 | // If we were on a thread, then wait till it's done |
| 301 | if (thread()) { | 302 | if (thread()) { |