add doppelganger

This commit is contained in:
James B. Pollack 2015-12-27 11:23:54 -08:00
parent a8c5828eb3
commit 3f73f83cf1

View file

@ -0,0 +1,84 @@
var TEST_MODEL_URL = '';
var doppelgangers = [];
function Doppelganger(avatar) {
this.initialProperties = {
name: 'Hifi-Doppelganger',
type: 'Model',
modelURL: TEST_MODEL_URL,
dimensions: getAvatarDimensions(avatar),
position: putDoppelgangerAcrossFromAvatar(this, avatar),
rotation: rotateDoppelgangerTowardAvatar(this, avatar),
};
this.id = createDoppelgangerEntity(this);
this.avatar = avatar;
return this;
}
function getJointData() {
return jointData;
}
function setJointData(doppelganger, jointData) {
return true;
}
function mirrorJointData() {
return mirroredJointData;
}
function createDoppelganger(avatar) {
return new Doppelganger(avatar);
}
function createDoppelgangerEntity(doppelganger) {
return Entities.addEntitiy(doppelganger.initialProperties);
}
function putDoppelgangerAcrossFromAvatar(doppelganger, avatar) {
return position;
}
function getAvatarDimensions(avatar) {
return dimensions;
}
function rotateDoppelgangerTowardAvatar(doppelganger, avatar) {
return rotation;
}
function connectDoppelgangerUpdates() {
Script.update.connect(updateDoppelganger);
}
function disconnectDoppelgangerUpdates() {
Script.update.disconnect(updateDoppelganger);
}
function updateDoppelganger() {
doppelgangers.forEach(function(doppelganger) {
var joints = getJointData(doppelganger.avatar.id);
var mirroredJoints = mirrorJointData(joints);
setJointData(doppelganger, mirroredJoints);
});
}
function makeDoppelgangerForMyAvatar() {
var doppelganger = createDoppelganger(MyAvatar);
doppelgangers.push(doppelganger);
connectDoppelgangerUpdates();
}
function cleanup() {
disconnectDoppelgangerUpdates();
doppelgangers.forEach(function(doppelganger) {
Entities.deleteEntity(doppelganger);
});
}
Script.scriptEnding.connect(cleanup);