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
2525
2626 #include <Sound.h>
2727
28+#include "MenuItemProperties.h"
2829 #include "ScriptEngine.h"
2930
3031 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
4243
4344
4445 ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems, const QString& fileNameString,
45− AbstractMenuInterface* menu,
4646 AbstractControllerScriptingInterface* controllerScriptingInterface) :
4747 _isAvatar(false),
4848 _avatarIdentityTimer(NULL),
49+ _avatarBillboardTimer(NULL),
4950 _avatarData(NULL)
5051 {
5152 _scriptContents = scriptContents;
@@ -68,7 +69,6 @@ ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems, co · 16 unmodified lines
6869 _scriptMenuName.append(_scriptNumber);
6970 }
7071 _scriptNumber++;
71− _menu = menu;
7272 _controllerScriptingInterface = controllerScriptingInterface;
7373 }
7474
@@ -80,14 +80,17 @@ void ScriptEngine::setIsAvatar(bool isAvatar) { · 5 unmodified lines
8080 _isAvatar = isAvatar;
8181
8282 if (_isAvatar && !_avatarIdentityTimer) {
83− // set up the avatar identity timer
83+ // set up the avatar timers
8484 _avatarIdentityTimer = new QTimer(this);
85+ _avatarBillboardTimer = new QTimer(this);
8586
8687 // connect our slot
8788 connect(_avatarIdentityTimer, &QTimer::timeout, this, &ScriptEngine::sendAvatarIdentityPacket);
89+ connect(_avatarBillboardTimer, &QTimer::timeout, this, &ScriptEngine::sendAvatarBillboardPacket);
8890
89− // start the timer
91+ // start the timers
9092 _avatarIdentityTimer->start(AVATAR_IDENTITY_PACKET_SEND_INTERVAL_MSECS);
93+ _avatarBillboardTimer->start(AVATAR_BILLBOARD_PACKET_SEND_INTERVAL_MSECS);
9194 }
9295 }
9396
@@ -101,16 +104,9 @@ void ScriptEngine::setAvatarData(AvatarData* avatarData, const QString& objectNa · 7 unmodified lines
101104 registerGlobalObject(objectName, _avatarData);
102105 }
103106
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);
114110 }
115111 }
116112
@@ -138,8 +134,8 @@ void ScriptEngine::init() { · 21 unmodified lines
138134 // register various meta-types
139135 registerMetaTypes(&_engine);
140136 registerVoxelMetaTypes(&_engine);
141− //registerParticleMetaTypes(&_engine);
142137 registerEventTypes(&_engine);
138+ registerMenuItemProperties(&_engine);
143139
144140 qScriptRegisterMetaType(&_engine, ParticlePropertiesToScriptValue, ParticlePropertiesFromScriptValue);
145141 qScriptRegisterMetaType(&_engine, ParticleIDtoScriptValue, ParticleIDfromScriptValue);
@@ -172,7 +168,6 @@ void ScriptEngine::init() { · 26 unmodified lines
172168 _voxelsScriptingInterface.getVoxelPacketSender()->setProcessCallIntervalHint(VISUAL_DATA_CALLBACK_USECS);
173169 _particlesScriptingInterface.getParticlePacketSender()->setProcessCallIntervalHint(VISUAL_DATA_CALLBACK_USECS);
174170
175− //qDebug() << "Script:\n" << _scriptContents << "\n";
176171 }
177172
178173 void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) {
@@ -201,6 +196,12 @@ void ScriptEngine::sendAvatarIdentityPacket() { · 22 unmodified lines
201196 }
202197 }
203198
199+void ScriptEngine::sendAvatarBillboardPacket() {
200+ if (_isAvatar && _avatarData) {
201+ _avatarData->sendBillboardPacket();
202+ }
203+}
204+
204205 void ScriptEngine::run() {
205206 if (!_isInitialized) {
206207 init();
@@ -295,7 +296,7 @@ void ScriptEngine::run() { · 88 unmodified lines
295296 }
296297 }
297298
298− cleanMenuItems();
299+ cleanupMenuItems();
299300
300301 // If we were on a thread, then wait till it's done
301302 if (thread()) {