content/hifi-content/rebecca/halloween/catEyes.js
2022-02-14 02:04:11 +01:00

84 lines
3 KiB
JavaScript

//
// catEyes.js
//
// Created by Rebecca Stankus on 09/11/18
// Copyright 2018 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
(function() {
var UPDATE_EYES_INTERVAL_MS = 200;
var _this;
var leftEyeOverlay;
var rightEyeOverlay;
var cat;
var interval;
var leftEyePosition;
var rightEyePosition;
var CatEyes = function() {
_this = this;
};
CatEyes.prototype = {
preload: function(entityID) {
_this.entityID = entityID;
cat = Entities.getEntityProperties(_this.entityID, 'parentID').parentID;
},
enterEntity: function() {
leftEyeOverlay = Overlays.addOverlay("model", {
url: Script.resolvePath("models/catEye.fbx"),
dimensions: { x: 0.029752083122730255, y: 0.029752083122730255, z: 0.029752083122730255 },
name: "Cat Eye CC-BY Poly by Google",
parentID: cat,
localPosition: { x: -0.024972915649414062, y: -0.1860809326171875, z: 0.14186573028564453 },
localRotation: { x: 0.6599678993225098, y: 0.07908749580383301, z: 0.0625467300415039, w: 0.7444723844528198 },
glow: 1
});
rightEyeOverlay = Overlays.addOverlay("model", {
url: Script.resolvePath("models/catEye.fbx"),
dimensions: { x: 0.03403420001268387, y: 0.03403420001268387, z: 0.03403420001268387 },
name: "Cat Eye CC-BY Poly by Google",
parentID: cat,
localPosition: { x: -0.07740211486816406, y: -0.1835193634033203, z: 0.13999652862548828 },
localRotation: { x: 0.665918946266174, y: -0.0835736393928527, z: -0.0666666626930236, w: 0.7383078336715698 },
glow: 1
});
leftEyePosition = Overlays.getProperty(leftEyeOverlay, 'position');
rightEyePosition = Overlays.getProperty(rightEyeOverlay, 'position');
interval = Script.setInterval(function() {
Overlays.editOverlay(leftEyeOverlay, {
rotation: Quat.cancelOutRoll(Quat.lookAtSimple(MyAvatar.getJointPosition("Head"), leftEyePosition))
});
Overlays.editOverlay(rightEyeOverlay, {
rotation: Quat.cancelOutRoll(Quat.lookAtSimple(MyAvatar.getJointPosition("Head"), rightEyePosition))
});
}, UPDATE_EYES_INTERVAL_MS);
},
leaveEntity: function() {
Overlays.deleteOverlay(rightEyeOverlay);
Overlays.deleteOverlay(leftEyeOverlay);
if (interval) {
Script.clearInterval(interval);
}
},
unload: function() {
_this.leaveEntity();
}
};
return new CatEyes;
});