From 913693795452f6bc758ea584c80dbe992c90ac84 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Wed, 14 Dec 2016 14:27:55 +1300 Subject: [PATCH] Add canWriteAssets method and signal to Entities API --- libraries/entities/src/EntityScriptingInterface.cpp | 6 ++++++ libraries/entities/src/EntityScriptingInterface.h | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 9ffac30a7e..3e9a41b62a 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -35,6 +35,7 @@ EntityScriptingInterface::EntityScriptingInterface(bool bidOnSimulationOwnership connect(nodeList.data(), &NodeList::isAllowedEditorChanged, this, &EntityScriptingInterface::canAdjustLocksChanged); connect(nodeList.data(), &NodeList::canRezChanged, this, &EntityScriptingInterface::canRezChanged); connect(nodeList.data(), &NodeList::canRezTmpChanged, this, &EntityScriptingInterface::canRezTmpChanged); + connect(nodeList.data(), &NodeList::canWriteAssetsChanged, this, &EntityScriptingInterface::canWriteAssetsChanged); } void EntityScriptingInterface::queueEntityMessage(PacketType packetType, @@ -63,6 +64,11 @@ bool EntityScriptingInterface::canRezTmp() { return nodeList->getThisNodeCanRezTmp(); } +bool EntityScriptingInterface::canWriteAssets() { + auto nodeList = DependencyManager::get(); + return nodeList->getThisNodeCanWriteAssets(); +} + void EntityScriptingInterface::setEntityTree(EntityTreePointer elementTree) { if (_entityTree) { disconnect(_entityTree.get(), &EntityTree::addingEntity, this, &EntityScriptingInterface::addingEntity); diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 63a9c59cb4..a0c7cdff36 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -110,6 +110,12 @@ public slots: */ Q_INVOKABLE bool canRezTmp(); + /**jsdoc + * @function Entities.canWriteAsseets + * @return {bool} `true` if the DomainServer will allow this Node/Avatar to write to the asset server + */ + Q_INVOKABLE bool canWriteAssets(); + /**jsdoc * Add a new entity with the specified properties. If `clientOnly` is true, the entity will * not be sent to the server and will only be visible/accessible on the local client. @@ -284,6 +290,7 @@ signals: void canAdjustLocksChanged(bool canAdjustLocks); void canRezChanged(bool canRez); void canRezTmpChanged(bool canRez); + void canWriteAssetsChanged(bool canWriteAssets); void mousePressOnEntity(const EntityItemID& entityItemID, const PointerEvent& event); void mouseMoveOnEntity(const EntityItemID& entityItemID, const PointerEvent& event);