mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
84 lines
No EOL
1.9 KiB
JavaScript
84 lines
No EOL
1.9 KiB
JavaScript
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); |