mirror of
https://github.com/overte-org/overte.git
synced 2025-04-21 08:04:01 +02:00
adjust wearables with saved offsets after WEAR IT
This commit is contained in:
parent
73b21f7cd5
commit
26cb275b89
1 changed files with 56 additions and 1 deletions
|
@ -8,7 +8,8 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
/* global Tablet, Script, HMD, UserActivityLogger, Entities */
|
||||
/* global Tablet, Script, HMD, UserActivityLogger, Entities, Account, Wallet, ContextOverlay, Settings, Camera, Vec3,
|
||||
Quat, MyAvatar, Clipboard, Menu */
|
||||
/* eslint indent: ["error", 4, { "outerIIFEBody": 0 }] */
|
||||
|
||||
(function () { // BEGIN LOCAL_SCOPE
|
||||
|
@ -188,6 +189,41 @@
|
|||
|
||||
function rezEntity(itemHref, isWearable) {
|
||||
var success = Clipboard.importEntities(itemHref);
|
||||
var wearableLocalPosition = null;
|
||||
var wearableLocalRotation = null;
|
||||
var wearableLocalDimensions = null;
|
||||
var wearableDimensions = null;
|
||||
|
||||
if (isWearable) {
|
||||
var wearableTransforms = Settings.getValue("io.highfidelity.avatarStore.checkOut.transforms");
|
||||
if (!wearableTransforms) {
|
||||
// TODO delete this clause
|
||||
wearableTransforms = Settings.getValue("io.highfidelity.avatarStore.checkOut.tranforms");
|
||||
}
|
||||
var certPos = itemHref.search("certificate_id="); // TODO how do I parse a URL from here?
|
||||
if (certPos >= 0) {
|
||||
certPos += 15; // length of "certificate_id="
|
||||
var certURLEncoded = itemHref.substring(certPos);
|
||||
var certB64Encoded = decodeURIComponent(certURLEncoded);
|
||||
for (var key in wearableTransforms) {
|
||||
if (wearableTransforms.hasOwnProperty(key)) {
|
||||
var certificateTransforms = wearableTransforms[key].certificateTransforms;
|
||||
if (certificateTransforms) {
|
||||
for (var certID in certificateTransforms) {
|
||||
if (certificateTransforms.hasOwnProperty(certID) &&
|
||||
certID == certB64Encoded) {
|
||||
var certificateTransform = certificateTransforms[certID];
|
||||
wearableLocalPosition = certificateTransform.localPosition;
|
||||
wearableLocalRotation = certificateTransform.localRotation;
|
||||
wearableLocalDimensions = certificateTransform.localDimensions;
|
||||
wearableDimensions = certificateTransform.dimensions;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (success) {
|
||||
var VERY_LARGE = 10000;
|
||||
|
@ -257,6 +293,24 @@
|
|||
}
|
||||
}
|
||||
|
||||
if (isWearable) {
|
||||
// apply the relative offsets saved during checkout
|
||||
var offsets = {};
|
||||
if (wearableLocalPosition) {
|
||||
offsets.localPosition = wearableLocalPosition;
|
||||
}
|
||||
if (wearableLocalRotation) {
|
||||
offsets.localRotation = wearableLocalRotation;
|
||||
}
|
||||
if (wearableLocalDimensions) {
|
||||
offsets.localDimensions = wearableLocalDimensions;
|
||||
} else if (wearableDimensions) {
|
||||
offsets.dimensions = wearableDimensions;
|
||||
}
|
||||
// we currently assume a wearable is a single entity
|
||||
Entities.editEntity(pastedEntityIDs[0], offsets);
|
||||
}
|
||||
|
||||
if (isActive) {
|
||||
selectionManager.setSelections(pastedEntityIDs);
|
||||
}
|
||||
|
@ -399,6 +453,7 @@
|
|||
referrer: "purchases"
|
||||
});
|
||||
openWallet();
|
||||
break;
|
||||
case 'checkout_walletNotSetUp':
|
||||
wireEventBridge(true);
|
||||
tablet.sendToQml({
|
||||
|
|
Loading…
Reference in a new issue