From 880aedd4445014799992b70601b8c5248b692d07 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Wed, 10 Feb 2016 19:01:25 -0800 Subject: [PATCH] update to track grab-script changes --- examples/attachedEntitiesManager.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/examples/attachedEntitiesManager.js b/examples/attachedEntitiesManager.js index b5d023c70c..7172b456be 100644 --- a/examples/attachedEntitiesManager.js +++ b/examples/attachedEntitiesManager.js @@ -120,10 +120,7 @@ function AttachedEntitiesManager() { parsedMessage.action === 'loaded') { // ignore } else if (parsedMessage.action === 'release') { - manager.checkIfWearable(parsedMessage.grabbedEntity, parsedMessage.joint) - // manager.saveAttachedEntities(); - } else if (parsedMessage.action === 'shared-release') { - manager.updateRelativeOffsets(parsedMessage.grabbedEntity); + manager.handleEntityRelease(parsedMessage.grabbedEntity, parsedMessage.joint) // manager.saveAttachedEntities(); } else if (parsedMessage.action === 'equip') { // manager.saveAttachedEntities(); @@ -145,7 +142,14 @@ function AttachedEntitiesManager() { return false; } - this.checkIfWearable = function(grabbedEntity, releasedFromJoint) { + this.handleEntityRelease = function(grabbedEntity, releasedFromJoint) { + // if this is still equipped, just rewrite the position information. + var grabData = getEntityCustomData('grabKey', entityID, {}); + if ("refCount" in grabData && grabData.refCount > 0) { + manager.updateRelativeOffsets(parsedMessage.grabbedEntity); + return; + } + var allowedJoints = getEntityCustomData('wearable', grabbedEntity, DEFAULT_WEARABLE_DATA).joints; var props = Entities.getEntityProperties(grabbedEntity, ["position", "parentID", "parentJointIndex"]);