content/hifi-content/liv/dev/BoomBox/boomBoxEntityServerScript.js
2022-02-14 02:04:11 +01:00

48 lines
No EOL
1.4 KiB
JavaScript

// Happy Boom Box
// boomBoxEntityScript.js
// Licensed under the Apache 2.0 License
// Music provided by Bensound
(function(){
var LOAD_WAIT = 500;
var selfEntityID;
var audioInjector;
function BoomBox(){
}
BoomBox.prototype = {
remotelyCallable: ['playMusic', 'stopMusic'],
preload: function(entityID) {
selfEntityID = entityID;
},
unload: function () {
if (audioInjector && audioInjector.playing) {
audioInjector.stop();
}
},
playMusic: function(entityID, args) {
var sound = SoundCache.getSound(args[0]);
var audioInjectorOptions = {
volume: 0.5,
loop: false,
position: Entities.getEntityProperties(selfEntityID, 'position').position
};
print ("Audio Options: " + JSON.stringify(audioInjectorOptions));
if (audioInjector && audioInjector.playing) {
audioInjector.stop();
}
Script.setTimeout(function(){
audioInjector = Audio.playSound(sound, audioInjectorOptions);
}, LOAD_WAIT);
},
stopMusic : function() {
if (audioInjector && audioInjector.playing) {
audioInjector.stop();
}
}
};
return new BoomBox();
});