Add Entities.getServerScriptStatus

This commit is contained in:
Ryan Huffman 2017-01-18 11:15:59 -08:00
parent 8137c59ef7
commit d85f27e992
2 changed files with 14 additions and 16 deletions

View file

@ -672,23 +672,20 @@ RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionWorke
} }
bool EntityScriptingInterface::reloadServerScripts(QUuid entityID) { bool EntityScriptingInterface::reloadServerScripts(QUuid entityID) {
// Send packet to entity script server auto client = DependencyManager::get<EntityScriptClient>();
auto nodeList = DependencyManager::get<NodeList>(); return client->reloadServerScript(entityID);
SharedNodePointer entityScriptServer = nodeList->soloNodeOfType(NodeType::AssetServer); }
if (entityScriptServer) { bool EntityScriptingInterface::getServerScriptStatus(QUuid entityID, QScriptValue callback) {
auto id = entityID.toByteArray(); auto client = DependencyManager::get<EntityScriptClient>();
auto payloadSize = id.size(); auto request = client->createScriptStatusRequest(entityID);
auto packet = NLPacket::create(PacketType::ReloadEntityServerScript, payloadSize, true); connect(request, &GetScriptStatusRequest::finished, callback.engine(), [callback](GetScriptStatusRequest* request) mutable {
QScriptValueList args { true };
packet->write(id); callback.call(QScriptValue(), args);
request->deleteLater();
if (nodeList->sendPacket(std::move(packet), *entityScriptServer) != -1) { });
return true; request->start();
} return true;
}
return false;
} }
void EntityScriptingInterface::setLightsArePickable(bool value) { void EntityScriptingInterface::setLightsArePickable(bool value) {

View file

@ -211,6 +211,7 @@ public slots:
Q_INVOKABLE RayToEntityIntersectionResult findRayIntersectionBlocking(const PickRay& ray, bool precisionPicking = false, const QScriptValue& entityIdsToInclude = QScriptValue(), const QScriptValue& entityIdsToDiscard = QScriptValue()); Q_INVOKABLE RayToEntityIntersectionResult findRayIntersectionBlocking(const PickRay& ray, bool precisionPicking = false, const QScriptValue& entityIdsToInclude = QScriptValue(), const QScriptValue& entityIdsToDiscard = QScriptValue());
Q_INVOKABLE bool reloadServerScripts(QUuid entityID); Q_INVOKABLE bool reloadServerScripts(QUuid entityID);
Q_INVOKABLE bool getServerScriptStatus(QUuid entityID, QScriptValue callback);
Q_INVOKABLE void setLightsArePickable(bool value); Q_INVOKABLE void setLightsArePickable(bool value);
Q_INVOKABLE bool getLightsArePickable() const; Q_INVOKABLE bool getLightsArePickable() const;