History

Merge branch 'master' of https://github.com/highfidelity/hifi into local_voxels

Atlante45 committed 12 years ago

Commit b0334322 parents 878259d 89cf2f9104 files · +3165 −6059Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 104 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+18−17
@@ -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
30const unsigned int VISUAL_DATA_CALLBACK_USECS = (1.0 / 60.0) * 1000 * 1000;31const 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
44ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems, const QString& fileNameString,45ScriptEngine::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 timer83 // 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 slot87 // 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 timer91 // 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 107void ScriptEngine::cleanupMenuItems() {
105void 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
111void 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-types134 // 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
178void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) {173void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) {
@@ -201,6 +196,12 @@ void ScriptEngine::sendAvatarIdentityPacket() { · 22 unmodified lines
201 }196 }
202}197}
203 198
199void ScriptEngine::sendAvatarBillboardPacket() {
200 if (_isAvatar && _avatarData) {
201 _avatarData->sendBillboardPacket();
202 }
203}
204
204void ScriptEngine::run() {205void 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 done301 // If we were on a thread, then wait till it's done
301 if (thread()) {302 if (thread()) {