Merge branch 'master' of https://github.com/highfidelity/hifi into MandatoryMania-ECWallet

This commit is contained in:
howard-stearns 2017-11-27 10:02:53 -08:00
commit 2e919682a0
4 changed files with 30 additions and 9 deletions

View file

@ -550,6 +550,7 @@ void DomainServerSettingsManager::unpackPermissions() {
} else { } else {
// anonymous, logged in, and friend users get connect permissions by default // anonymous, logged in, and friend users get connect permissions by default
perms->set(NodePermissions::Permission::canConnectToDomain); perms->set(NodePermissions::Permission::canConnectToDomain);
perms->set(NodePermissions::Permission::canRezTemporaryCertifiedEntities);
} }
// add the permissions to the standard map // add the permissions to the standard map

View file

@ -59,6 +59,11 @@ Item {
ListModel { ListModel {
id: helpModel; id: helpModel;
ListElement {
isExpanded: false;
question: "How can I get HFC?"
answer: qsTr("High Fidelity commerce is in closed beta right now.<br><br>To request entry and get free HFC, <b>please contact info@highfidelity.com with your High Fidelity account username and the email address registered to that account.</b>");
}
ListElement { ListElement {
isExpanded: false; isExpanded: false;
question: "What are private keys?" question: "What are private keys?"
@ -87,12 +92,7 @@ Item {
ListElement { ListElement {
isExpanded: false; isExpanded: false;
question: "My HFC balance isn't what I expect it to be. Why?" question: "My HFC balance isn't what I expect it to be. Why?"
answer: qsTr('High Fidelity Coin (HFC) transactions are backed by a <b>blockchain</b>, which takes time to update. The status of a transaction usually updates within 90 seconds.<br><br><b><font color="#0093C5"><a href="#blockchain">Tap here to learn more about the blockchain.</a></font></b>'); answer: qsTr('High Fidelity Coin (HFC) transactions are backed by a <b>blockchain</b>, which takes time to update. The status of a transaction usually updates within a few seconds.<br><br><b><font color="#0093C5"><a href="#blockchain">Tap here to learn more about the blockchain.</a></font></b>');
}
ListElement {
isExpanded: false;
question: "My friend purchased my item from the Marketplace, but I still haven't received the money from the sale. Why not?"
answer: qsTr('High Fidelity Coin (HFC) transactions are backed by a <b>blockchain</b>, which takes time to update. The status of a transaction usually updates within 90 seconds, at which point you will receive your money.<br><br><b><font color="#0093C5"><a href="#blockchain">Tap here to learn more about the blockchain.</a></font></b>');
} }
ListElement { ListElement {
isExpanded: false; isExpanded: false;
@ -212,7 +212,7 @@ Item {
if (link === "#privateKeyPath") { if (link === "#privateKeyPath") {
Qt.openUrlExternally("file:///" + root.keyFilePath.substring(0, root.keyFilePath.lastIndexOf('/'))); Qt.openUrlExternally("file:///" + root.keyFilePath.substring(0, root.keyFilePath.lastIndexOf('/')));
} else if (link === "#blockchain") { } else if (link === "#blockchain") {
Qt.openUrlExternally("https://www.highfidelity.com/"); Qt.openUrlExternally("https://docs.highfidelity.com/high-fidelity-commerce");
} }
} }
} }

View file

@ -58,7 +58,7 @@ void Light::setOrientation(const glm::quat& orientation) {
} }
void Light::setDirection(const Vec3& direction) { void Light::setDirection(const Vec3& direction) {
_lightSchemaBuffer.edit().volume.direction = (_transform.getRotation() * direction); _lightSchemaBuffer.edit().volume.direction = (direction);
} }
const Vec3& Light::getDirection() const { const Vec3& Light::getDirection() const {

View file

@ -33,6 +33,7 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
this.lastUnequipCheckTime = 0; this.lastUnequipCheckTime = 0;
this.autoUnequipCounter = 0; this.autoUnequipCounter = 0;
this.lastUnexpectedChildrenCheckTime = 0; this.lastUnexpectedChildrenCheckTime = 0;
this.robbed = false;
this.parameters = makeDispatcherModuleParameters( this.parameters = makeDispatcherModuleParameters(
500, 500,
@ -75,6 +76,14 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
return false; return false;
}; };
this.getOtherModule = function() {
return this.hand === RIGHT_HAND ? leftNearParentingGrabEntity : rightNearParentingGrabEntity;
};
this.otherHandIsParent = function(props) {
return this.getOtherModule().thisHandIsParent(props);
};
this.startNearParentingGrabEntity = function (controllerData, targetProps) { this.startNearParentingGrabEntity = function (controllerData, targetProps) {
Controller.triggerHapticPulse(HAPTIC_PULSE_STRENGTH, HAPTIC_PULSE_DURATION, this.hand); Controller.triggerHapticPulse(HAPTIC_PULSE_STRENGTH, HAPTIC_PULSE_DURATION, this.hand);
@ -100,6 +109,11 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
// this should never happen, but if it does, don't set previous parent to be this hand. // this should never happen, but if it does, don't set previous parent to be this hand.
this.previousParentID[targetProps.id] = null; this.previousParentID[targetProps.id] = null;
this.previousParentJointIndex[targetProps.id] = -1; this.previousParentJointIndex[targetProps.id] = -1;
} else if (this.otherHandIsParent(targetProps)) {
var otherModule = this.getOtherModule();
this.previousParentID[this.grabbedThingID] = otherModule.previousParentID[this.grabbedThingID];
this.previousParentJointIndex[this.grabbedThingID] = otherModule.previousParentJointIndex[this.grabbedThingID];
otherModule.robbed = true;
} else { } else {
this.previousParentID[targetProps.id] = targetProps.parentID; this.previousParentID[targetProps.id] = targetProps.parentID;
this.previousParentJointIndex[targetProps.id] = targetProps.parentJointIndex; this.previousParentJointIndex[targetProps.id] = targetProps.parentJointIndex;
@ -119,7 +133,7 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
this.endNearParentingGrabEntity = function (controllerData) { this.endNearParentingGrabEntity = function (controllerData) {
this.hapticTargetID = null; this.hapticTargetID = null;
var props = controllerData.nearbyEntityPropertiesByID[this.targetEntityID]; var props = controllerData.nearbyEntityPropertiesByID[this.targetEntityID];
if (this.thisHandIsParent(props)) { if (this.thisHandIsParent(props) && !this.robbed) {
if (this.previousParentID[this.targetEntityID] === Uuid.NULL || this.previousParentID === undefined) { if (this.previousParentID[this.targetEntityID] === Uuid.NULL || this.previousParentID === undefined) {
Entities.editEntity(this.targetEntityID, { Entities.editEntity(this.targetEntityID, {
parentID: this.previousParentID[this.targetEntityID], parentID: this.previousParentID[this.targetEntityID],
@ -145,6 +159,7 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
})); }));
this.grabbing = false; this.grabbing = false;
this.targetEntityID = null; this.targetEntityID = null;
this.robbed = false;
}; };
this.checkForChildTooFarAway = function (controllerData) { this.checkForChildTooFarAway = function (controllerData) {
@ -253,12 +268,14 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
if (controllerData.triggerValues[this.hand] < TRIGGER_OFF_VALUE && if (controllerData.triggerValues[this.hand] < TRIGGER_OFF_VALUE &&
controllerData.secondaryValues[this.hand] < TRIGGER_OFF_VALUE) { controllerData.secondaryValues[this.hand] < TRIGGER_OFF_VALUE) {
this.checkForUnexpectedChildren(controllerData); this.checkForUnexpectedChildren(controllerData);
this.robbed = false;
return makeRunningValues(false, [], []); return makeRunningValues(false, [], []);
} }
if (targetProps) { if (targetProps) {
if ((propsArePhysical(targetProps) || propsAreCloneDynamic(targetProps)) && if ((propsArePhysical(targetProps) || propsAreCloneDynamic(targetProps)) &&
targetProps.parentID === Uuid.NULL) { targetProps.parentID === Uuid.NULL) {
this.robbed = false;
return makeRunningValues(false, [], []); // let nearActionGrabEntity handle it return makeRunningValues(false, [], []); // let nearActionGrabEntity handle it
} else { } else {
this.targetEntityID = targetProps.id; this.targetEntityID = targetProps.id;
@ -266,6 +283,7 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
} }
} else { } else {
this.hapticTargetID = null; this.hapticTargetID = null;
this.robbed = false;
return makeRunningValues(false, [], []); return makeRunningValues(false, [], []);
} }
}; };
@ -284,6 +302,7 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
this.grabbing = false; this.grabbing = false;
this.targetEntityID = null; this.targetEntityID = null;
this.hapticTargetID = null; this.hapticTargetID = null;
this.robbed = false;
return makeRunningValues(false, [], []); return makeRunningValues(false, [], []);
} }
@ -300,6 +319,7 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
// still searching / highlighting // still searching / highlighting
var readiness = this.isReady(controllerData); var readiness = this.isReady(controllerData);
if (!readiness.active) { if (!readiness.active) {
this.robbed = false;
return readiness; return readiness;
} }
if (controllerData.triggerClicks[this.hand] || controllerData.secondaryValues[this.hand] > BUMPER_ON_VALUE) { if (controllerData.triggerClicks[this.hand] || controllerData.secondaryValues[this.hand] > BUMPER_ON_VALUE) {