mirror of
https://github.com/overte-org/overte.git
synced 2025-04-09 19:42:40 +02:00
84 lines
2.9 KiB
JavaScript
84 lines
2.9 KiB
JavaScript
//
|
|
// spinner.js
|
|
//
|
|
// Created by Ryan Huffman on 9/1/16.
|
|
// Copyright 2016 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 DEBUG = true;
|
|
function debug() {
|
|
if (DEBUG) {
|
|
print.apply(this, arguments);
|
|
}
|
|
}
|
|
|
|
var spinnerSound = SoundCache.getSound("atp:/tutorial_sounds/Pinwheel.L.wav");
|
|
var Spinner = function() {
|
|
};
|
|
function getChildProperties(entityID, propertyNames) {
|
|
var childEntityIDs = Entities.getChildrenIDs(entityID);
|
|
var results = {}
|
|
for (var i = 0; i < childEntityIDs.length; ++i) {
|
|
var childEntityID = childEntityIDs[i];
|
|
var properties = Entities.getEntityProperties(childEntityID, propertyNames);
|
|
results[childEntityID] = properties;
|
|
}
|
|
return results;
|
|
}
|
|
Spinner.prototype = {
|
|
onLit: function() {
|
|
debug("spinner.js | Spinner lit");
|
|
Entities.editEntity(this.entityID, {
|
|
"angularDamping": 0.1,
|
|
"angularVelocity": {
|
|
"x": 20.471975326538086,
|
|
"y": 0,
|
|
"z": 0
|
|
},
|
|
});
|
|
var injector = Audio.playSound(spinnerSound, {
|
|
position: Entities.getEntityProperties(this.entityID, 'position').position,
|
|
volume: 1.0,
|
|
loop: false
|
|
});
|
|
|
|
var childrenProps = getChildProperties(this.entityID, ['type']);
|
|
for (var childEntityID in childrenProps) {
|
|
var props = childrenProps[childEntityID];
|
|
if (props.type == "ParticleEffect") {
|
|
debug("spinner.js | Modifying: ", childEntityID);
|
|
Entities.editEntity(childEntityID, {
|
|
emitRate: 35,
|
|
});
|
|
}
|
|
}
|
|
Messages.sendLocalMessage("Tutorial-Spinner", "wasLit");
|
|
|
|
var self = this;
|
|
Script.setTimeout(function() {
|
|
debug("spinner.js | Finishing spinner");
|
|
injector.stop();
|
|
|
|
var childrenProps = getChildProperties(self.entityID, ['type']);
|
|
for (var childEntityID in childrenProps) {
|
|
var props = childrenProps[childEntityID];
|
|
if (props.type == "ParticleEffect") {
|
|
debug("spinner.js | Modifying: ", childEntityID);
|
|
Entities.editEntity(childEntityID, {
|
|
emitRate: 0,
|
|
});
|
|
}
|
|
}
|
|
}, 4900);
|
|
},
|
|
preload: function(entityID) {
|
|
debug("spinner.js | Preload");
|
|
this.entityID = entityID;
|
|
},
|
|
};
|
|
return new Spinner();
|
|
});
|