History

Script API for subscribing to entity server messages

ksuprynowicz committed 2 years ago

Commit c311d3c1 parent d75efdb7 files · +132 −10Browse files

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

Unified · Split

libraries/script-engine/src/ScriptManagerScriptingInterface.cpp+25−4
@@ -91,16 +91,37 @@ void ScriptManagerScriptingInterface::stopProfilingAndSave() { · 90 unmodified lines
9191 }
9292
9393 void ScriptManagerScriptingInterface::requestServerEntityScriptMessages() {
94− if (_manager->isEntityServerScript() || _manager->isEntityServerScript() || _manager->isClientScript()) {
94+ if (_manager->isEntityServerScript() || _manager->isEntityServerScript()) {
95+ _manager->engine()->raiseException("Uuid needs to be specified when requestServerEntityScriptMessages is invoked from entity script");
96+ } else {
9597 auto scriptEngines = DependencyManager::get<ScriptEngines>().data();
96− //TODO;
98+ scriptEngines->requestServerEntityScriptMessages(_manager);
99+ }
100+}
101+
102+void ScriptManagerScriptingInterface::requestServerEntityScriptMessages(const QUuid& entityID) {
103+ if (_manager->isEntityServerScript() || _manager->isEntityServerScript()) {
104+ auto scriptEngines = DependencyManager::get<ScriptEngines>().data();
105+ scriptEngines->requestServerEntityScriptMessages(_manager, entityID);
106+ } else {
107+ _manager->engine()->raiseException("Uuid must not be specified when requestServerEntityScriptMessages is invoked from entity script");
97108 }
98109 }
99110
100111 void ScriptManagerScriptingInterface::removeServerEntityScriptMessagesRequest() {
101− if (_manager->isEntityServerScript() || _manager->isEntityServerScript() || _manager->isClientScript()) {
112+ if (_manager->isEntityServerScript() || _manager->isEntityServerScript()) {
113+ _manager->engine()->raiseException("Uuid needs to be specified when removeServerEntityScriptMessagesRequest is invoked from entity script");
114+ } else {
102115 auto scriptEngines = DependencyManager::get<ScriptEngines>().data();
103− //TODO;
116+ scriptEngines->removeServerEntityScriptMessagesRequest(_manager);
104117 }
105118 }
106119
120+void ScriptManagerScriptingInterface::removeServerEntityScriptMessagesRequest(const QUuid& entityID) {
121+ if (_manager->isEntityServerScript() || _manager->isEntityServerScript()) {
122+ auto scriptEngines = DependencyManager::get<ScriptEngines>().data();
123+ scriptEngines->removeServerEntityScriptMessagesRequest(_manager, entityID);
124+ } else {
125+ _manager->engine()->raiseException("Uuid must not be specified when removeServerEntityScriptMessagesRequest is invoked from entity script");
126+ }
127+}