Merge remote-tracking branch 'james/homereset' into homereset

This commit is contained in:
ericrius1 2016-03-25 13:01:56 -07:00
commit 556f4b936d
2 changed files with 26 additions and 30 deletions

View file

@ -2,7 +2,7 @@
var utilsPath = Script.resolvePath("../utils.js"); var utilsPath = Script.resolvePath("../utils.js");
Script.include(utilsPath); Script.include(utilsPath);
var avatarModelURL; var avatarModelURL ='https://s3.amazonaws.com/hifi-public/ozan/avatars/albert/albert/albert.fbx';
DressingRoom = function() { DressingRoom = function() {
return this return this
@ -12,19 +12,19 @@
preload: function(entityID) { preload: function(entityID) {
print('PRELOAD DRESSING ROOM'); print('PRELOAD DRESSING ROOM');
this.entityID = entityID; this.entityID = entityID;
avatarModelURL = getAvatarFBX(); // avatarModelURL = getAvatarFBX();
}, },
enterEntity: function() { enterEntity: function() {
print('ENTER DRESSING ROOM'); print('ENTER DRESSING ROOM');
avatarModelURL = getAvatarFBX(); // avatarModelURL = getAvatarFBX();
makeDoppelgangerForMyAvatar(); makeDoppelgangerForMyAvatar();
subscribeToWearableMessages(); subscribeToWearableMessages();
subscribeToFreezeMessages(); // subscribeToFreezeMessages();
this.setOccupied(); this.setOccupied();
var doppelProps = Entities.getEntityProperties(this.entityID); var doppelProps = Entities.getEntityProperties(this.entityID);
Entities.editEntity(doppelgangers[0], { // Entities.editEntity(doppelgangers[0], {
dimensions: doppelProps.naturalDimensions, // dimensions: doppelProps.naturalDimensions,
}); // });
}, },
leaveEntity: function() { leaveEntity: function() {
print('EXIT DRESSING ROOM!'); print('EXIT DRESSING ROOM!');
@ -73,7 +73,6 @@
var doppelgangers = []; var doppelgangers = [];
function Doppelganger(avatar) { function Doppelganger(avatar) {
this.initialProperties = { this.initialProperties = {
name: 'Hifi-Doppelganger', name: 'Hifi-Doppelganger',
@ -84,7 +83,7 @@
rotation: matchBaseRotation(), rotation: matchBaseRotation(),
collisionsWillMove: false, collisionsWillMove: false,
ignoreForCollisions: false, ignoreForCollisions: false,
script: FREEZE_TOGGLER_SCRIPT_URL, // script: FREEZE_TOGGLER_SCRIPT_URL,
userData: JSON.stringify({ userData: JSON.stringify({
grabbableKey: { grabbableKey: {
grabbable: false, grabbable: false,
@ -93,7 +92,7 @@
}) })
}; };
this.id = createDoppelgangerEntity(this); this.id = createDoppelgangerEntity(this.initialProperties);
this.avatar = avatar; this.avatar = avatar;
return this; return this;
} }
@ -141,14 +140,16 @@
} }
function setJointData(doppelganger, relativeXforms) { function setJointData(doppelganger, relativeXforms) {
print('setting joint data for ' + doppelganger.id)
var jointRotations = []; var jointRotations = [];
var i, l = relativeXforms.length; var i, l = relativeXforms.length;
for (i = 0; i < l; i++) { for (i = 0; i < l; i++) {
jointRotations.push(relativeXforms[i].rot); jointRotations.push(relativeXforms[i].rot);
} }
var setJointSuccess = Entities.setAbsoluteJointRotationsInObjectFrame(doppelganger.id, jointRotations); var setJointSuccess = Entities.setAbsoluteJointRotationsInObjectFrame(doppelganger.id, jointRotations);
// print('JOINT ROTATIONS:: ' + JSON.stringify(jointRotations));
print('SUCCESS SETTING JOINTS?' + setJointSuccess + "for " + doppelganger.id) print('SUCCESS SETTING JOINTS?' + setJointSuccess + "for " + doppelganger.id)
return true; return;
} }
// maps joint names to their mirrored joint // maps joint names to their mirrored joint
@ -399,8 +400,8 @@
return new Doppelganger(avatar); return new Doppelganger(avatar);
} }
function createDoppelgangerEntity(doppelganger) { function createDoppelgangerEntity(initialProperties) {
return Entities.addEntity(doppelganger.initialProperties); return Entities.addEntity(initialProperties);
} }
function matchBasePosition() { function matchBasePosition() {
@ -449,7 +450,6 @@
return offset return offset
} }
function matchBaseRotation() { function matchBaseRotation() {
var ids = Entities.findEntities(MyAvatar.position, 20); var ids = Entities.findEntities(MyAvatar.position, 20);
var hasBase = false; var hasBase = false;
@ -466,20 +466,14 @@
} }
var isConnected = false;
function connectDoppelgangerUpdates() { function connectDoppelgangerUpdates() {
Script.update.connect(updateDoppelganger); Script.update.connect(updateDoppelganger);
isConnected = true;
} }
function disconnectDoppelgangerUpdates() { function disconnectDoppelgangerUpdates() {
Script.update.disconnect(updateDoppelganger);
if (isConnected === true) {
print('SHOULD DISCONNECT')
Script.update.disconnect(updateDoppelganger);
}
isConnected = false;
} }
var sinceLastUpdate = 0; var sinceLastUpdate = 0;
@ -509,7 +503,11 @@
absoluteXforms = mirroredAbsoluteXforms; absoluteXforms = mirroredAbsoluteXforms;
} }
var relativeXforms = buildRelativeXformsFromAbsoluteXforms(absoluteXforms); var relativeXforms = buildRelativeXformsFromAbsoluteXforms(absoluteXforms);
setJointData(doppelgangers[0], relativeXforms); // print('DOPPELGANGERS:::: ' + doppelgangers.length);
// print('first doppel id:: ' + doppelgangers[0].id);
doppelgangers.forEach(function(doppelganger) {
setJointData(doppelganger, relativeXforms);
})
} }
@ -552,7 +550,6 @@
} }
if (parsedMessage.action === 'unfreeze') { if (parsedMessage.action === 'unfreeze') {
print('ACTUAL UNFREEZE') print('ACTUAL UNFREEZE')
connectDoppelgangerUpdates(); connectDoppelgangerUpdates();
} }
@ -694,14 +691,15 @@
function cleanup() { function cleanup() {
if (isConnected === true) {
disconnectDoppelgangerUpdates(); Script.update.disconnect(updateDoppelganger);
}
doppelgangers.forEach(function(doppelganger) { doppelgangers.forEach(function(doppelganger) {
print('DOPPELGANGER' + doppelganger.id) print('DELETING DOPPELGANGER' + doppelganger.id)
Entities.deleteEntity(doppelganger.id); Entities.deleteEntity(doppelganger.id);
}); });
doppelgangers = [];
} }
return new DressingRoom(); return new DressingRoom();

View file

@ -67,8 +67,6 @@
preload: function(entityID) { preload: function(entityID) {
this.entityID = entityID; this.entityID = entityID;
this.initialProperties = Entities.getEntityProperties(this.entityID);
this.userData = JSON.parse(this.initialProperties.userData);
}, },
}; };