use messageEquip flag to fix Hifi-Hand-Grab

This commit is contained in:
David Back 2018-06-06 17:32:52 -07:00
parent b70ffa5bae
commit 048872c79a

View file

@ -274,6 +274,7 @@ EquipHotspotBuddy.prototype.update = function(deltaTime, timestamp, controllerDa
this.equipedWithSecondary = false;
this.handHasBeenRightsideUp = false;
this.mouseEquip = false;
this.messageEquip = false;
this.parameters = makeDispatcherModuleParameters(
300,
@ -283,11 +284,10 @@ EquipHotspotBuddy.prototype.update = function(deltaTime, timestamp, controllerDa
var equipHotspotBuddy = new EquipHotspotBuddy();
this.setMessageGrabData = function(entityProperties, mouseEquip) {
this.setMessageGrabData = function(entityProperties) {
if (entityProperties) {
this.messageGrabEntity = true;
this.grabEntityProps = entityProperties;
this.mouseEquip = mouseEquip;
}
};
@ -585,6 +585,7 @@ EquipHotspotBuddy.prototype.update = function(deltaTime, timestamp, controllerDa
this.messageGrabEntity = false;
this.grabEntityProps = null;
this.mouseEquip = false;
this.messageEquip = false;
};
this.updateInputs = function (controllerData) {
@ -661,7 +662,7 @@ EquipHotspotBuddy.prototype.update = function(deltaTime, timestamp, controllerDa
var timestamp = Date.now();
this.updateInputs(controllerData);
if (!this.mouseEquip && !this.isTargetIDValid(controllerData)) {
if (!this.mouseEquip && !this.messageEquip && !this.isTargetIDValid(controllerData)) {
this.endEquipEntity();
return makeRunningValues(false, [], []);
}
@ -762,9 +763,8 @@ EquipHotspotBuddy.prototype.update = function(deltaTime, timestamp, controllerDa
var equipModule = (data.hand === "left") ? leftEquipEntity : rightEquipEntity;
var entityProperties = Entities.getEntityProperties(data.entityID, DISPATCHER_PROPERTIES);
entityProperties.id = data.entityID;
var mouseEquip = false;
equipModule.setMessageGrabData(entityProperties, mouseEquip);
equipModule.messageEquip = true;
equipModule.setMessageGrabData(entityProperties);
} catch (e) {
print("WARNING: equipEntity.js -- error parsing Hifi-Hand-Grab message: " + message);
}
@ -812,15 +812,16 @@ EquipHotspotBuddy.prototype.update = function(deltaTime, timestamp, controllerDa
var distanceToLeftHand = Vec3.distance(entityProperties.position, leftHandPosition);
var leftHandAvailable = leftEquipEntity.targetEntityID === null;
var rightHandAvailable = rightEquipEntity.targetEntityID === null;
var mouseEquip = true;
if (rightHandAvailable && (distanceToRightHand < distanceToLeftHand || !leftHandAvailable)) {
// clear any existing grab actions on the entity now (their later removal could affect bootstrapping flags)
clearGrabActions(entityID);
rightEquipEntity.setMessageGrabData(entityProperties, mouseEquip);
rightEquipEntity.mouseEquip = true;
rightEquipEntity.setMessageGrabData(entityProperties);
} else if (leftHandAvailable && (distanceToLeftHand < distanceToRightHand || !rightHandAvailable)) {
// clear any existing grab actions on the entity now (their later removal could affect bootstrapping flags)
clearGrabActions(entityID);
leftEquipEntity.setMessageGrabData(entityProperties, mouseEquip);
leftEquipEntity.mouseEquip = true;
leftEquipEntity.setMessageGrabData(entityProperties);
}
}
}