42 lines · 1.7 KB · JavaScript
RawDownload
/** * An array for sounds, allows you to randomly play a sound * taken from the removed editVoxels.js */SoundArray = function(audioOptions, autoUpdateAudioPosition) {    this.audioOptions = audioOptions !== undefined ? audioOptions : {};    this.autoUpdateAudioPosition = autoUpdateAudioPosition !== undefined ? autoUpdateAudioPosition : false;    if (this.audioOptions.position === undefined) {        this.audioOptions.position = Vec3.sum(MyAvatar.position, { x: 0, y: 1, z: 0});    }    if (this.audioOptions.volume === undefined) {        this.audioOptions.volume = 1.0;    }    this.sounds = new Array();    this.addSound = function (soundURL) {        this.sounds[this.sounds.length] = SoundCache.getSound(soundURL);    };    this.play = function (index) {        if (0 <= index && index < this.sounds.length) {            if (this.autoUpdateAudioPosition) {                this.updateAudioPosition();            }            if (this.sounds[index].downloaded) {                Audio.playSound(this.sounds[index], this.audioOptions);            }        } else {            print("[ERROR] libraries/soundArray.js:play() : Index " + index + " out of range.");        }    };    this.playRandom = function () {        if (this.sounds.length > 0) {            this.play(Math.floor(Math.random() * this.sounds.length));        } else {            print("[ERROR] libraries/soundArray.js:playRandom() : Array is empty.");        }    };    this.updateAudioPosition = function() {        var position = MyAvatar.position;        var forwardVector = Quat.getForward(MyAvatar.orientation);        this.audioOptions.position = Vec3.sum(position, forwardVector);    };};