From 2c68d560594b0b9c8daba51367ca86f4f5d7c16d Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 5 Mar 2015 12:34:05 -0800 Subject: [PATCH] Update Entity::sendEntities to return new entity ids --- libraries/entities/src/EntityTree.cpp | 7 ++++++- libraries/entities/src/EntityTree.h | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 978ba43960..99095aa251 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -1000,13 +1000,17 @@ void EntityTree::pruneTree() { recurseTreeWithOperator(&theOperator); } -void EntityTree::sendEntities(EntityEditPacketSender* packetSender, EntityTree* localTree, float x, float y, float z) { +QVector EntityTree::sendEntities(EntityEditPacketSender* packetSender, EntityTree* localTree, float x, float y, float z) { SendEntitiesOperationArgs args; args.packetSender = packetSender; args.localTree = localTree; args.root = glm::vec3(x, y, z); + QVector newEntityIDs; + args.newEntityIDs = &newEntityIDs; recurseTreeWithOperation(sendEntitiesOperation, &args); packetSender->releaseQueuedMessages(); + + return newEntityIDs; } bool EntityTree::sendEntitiesOperation(OctreeElement* element, void* extraData) { @@ -1016,6 +1020,7 @@ bool EntityTree::sendEntitiesOperation(OctreeElement* element, void* extraData) const QList& entities = entityTreeElement->getEntities(); for (int i = 0; i < entities.size(); i++) { EntityItemID newID(NEW_ENTITY, EntityItemID::getNextCreatorTokenID(), false); + args->newEntityIDs->append(newID); EntityItemProperties properties = entities[i]->getProperties(); properties.setPosition(properties.getPosition() + args->root); properties.markAllChanged(); // so the entire property set is considered new, since we're making a new entity diff --git a/libraries/entities/src/EntityTree.h b/libraries/entities/src/EntityTree.h index d8b9b9f38f..2935cf56d2 100644 --- a/libraries/entities/src/EntityTree.h +++ b/libraries/entities/src/EntityTree.h @@ -39,6 +39,7 @@ public: glm::vec3 root; EntityTree* localTree; EntityEditPacketSender* packetSender; + QVector* newEntityIDs; }; @@ -144,7 +145,7 @@ public: virtual void dumpTree(); virtual void pruneTree(); - void sendEntities(EntityEditPacketSender* packetSender, EntityTree* localTree, float x, float y, float z); + QVector sendEntities(EntityEditPacketSender* packetSender, EntityTree* localTree, float x, float y, float z); void entityChanged(EntityItem* entity);