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 | 26 | #include <Sound.h> |
| 27 | 27 | |
| 28 | +#include "MenuItemProperties.h" | |
| 28 | 29 | #include "ScriptEngine.h" |
| 29 | 30 | |
| 30 | 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 | 45 | ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems, const QString& fileNameString, |
| 45 | − AbstractMenuInterface* menu, | |
| 46 | 46 | AbstractControllerScriptingInterface* controllerScriptingInterface) : |
| 47 | 47 | _isAvatar(false), |
| 48 | 48 | _avatarIdentityTimer(NULL), |
| 49 | + _avatarBillboardTimer(NULL), | |
| 49 | 50 | _avatarData(NULL) |
| 50 | 51 | { |
| 51 | 52 | _scriptContents = scriptContents; |
| @@ -68,7 +69,6 @@ ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems, co · 16 unmodified lines | ||
| 68 | 69 | _scriptMenuName.append(_scriptNumber); |
| 69 | 70 | } |
| 70 | 71 | _scriptNumber++; |
| 71 | − _menu = menu; | |
| 72 | 72 | _controllerScriptingInterface = controllerScriptingInterface; |
| 73 | 73 | } |
| 74 | 74 | |
| @@ -80,14 +80,17 @@ void ScriptEngine::setIsAvatar(bool isAvatar) { · 5 unmodified lines | ||
| 80 | 80 | _isAvatar = isAvatar; |
| 81 | 81 | |
| 82 | 82 | if (_isAvatar && !_avatarIdentityTimer) { |
| 83 | − // set up the avatar identity timer | |
| 83 | + // set up the avatar timers | |
| 84 | 84 | _avatarIdentityTimer = new QTimer(this); |
| 85 | + _avatarBillboardTimer = new QTimer(this); | |
| 85 | 86 | |
| 86 | 87 | // connect our slot |
| 87 | 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 | 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 | 104 | registerGlobalObject(objectName, _avatarData); |
| 102 | 105 | } |
| 103 | 106 | |
| 104 | − | |
| 105 | −void ScriptEngine::setupMenuItems() { | |
| 106 | − if (_menu && _wantMenuItems) { | |
| 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); | |
| 107 | +void ScriptEngine::cleanupMenuItems() { | |
| 108 | + if (_wantMenuItems) { | |
| 109 | + emit cleanupMenuItem(_scriptMenuName); | |
| 114 | 110 | } |
| 115 | 111 | } |
| 116 | 112 | |
| @@ -138,8 +134,8 @@ void ScriptEngine::init() { · 21 unmodified lines | ||
| 138 | 134 | // register various meta-types |
| 139 | 135 | registerMetaTypes(&_engine); |
| 140 | 136 | registerVoxelMetaTypes(&_engine); |
| 141 | − //registerParticleMetaTypes(&_engine); | |
| 142 | 137 | registerEventTypes(&_engine); |
| 138 | + registerMenuItemProperties(&_engine); | |
| 143 | 139 | |
| 144 | 140 | qScriptRegisterMetaType(&_engine, ParticlePropertiesToScriptValue, ParticlePropertiesFromScriptValue); |
| 145 | 141 | qScriptRegisterMetaType(&_engine, ParticleIDtoScriptValue, ParticleIDfromScriptValue); |
| @@ -172,7 +168,6 @@ void ScriptEngine::init() { · 26 unmodified lines | ||
| 172 | 168 | _voxelsScriptingInterface.getVoxelPacketSender()->setProcessCallIntervalHint(VISUAL_DATA_CALLBACK_USECS); |
| 173 | 169 | _particlesScriptingInterface.getParticlePacketSender()->setProcessCallIntervalHint(VISUAL_DATA_CALLBACK_USECS); |
| 174 | 170 | |
| 175 | − //qDebug() << "Script:\n" << _scriptContents << "\n"; | |
| 176 | 171 | } |
| 177 | 172 | |
| 178 | 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 | 205 | void ScriptEngine::run() { |
| 205 | 206 | if (!_isInitialized) { |
| 206 | 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 | 301 | // If we were on a thread, then wait till it's done |
| 301 | 302 | if (thread()) { |