function turnOffTime() { var date = new Date(); // Midnight date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0); // Next midnight date.setDate(date.getDate() + 1); // Switch off between 1 and 2 AM return new Date(date.valueOf() + (1 + random()) * (1000 * 60 * 60)); }
var GifAnimation = module.exports = function(matrix) { var _index = random(3, 1013); var _animations = [runRain, runPerlin, runRain, runGif, runRain, runGif, runRain, runGif]; function runPerlin(priority) { matrix.emit('perlin', {mode:3, priority:priority, duration:60}); }; function runRain(priority) { matrix.emit('rain', {priority:priority, duration:180}); }; function runGif(priority) { matrix.emit('animation', {priority:priority, duration:120, name:random(['tree','pacman','pong','boat','fireplace','reduction', 'bubbles', 'crystal', 'dancer', 'haze', 'orbit', 'robot-factory'])}); } function runAnimation(animation, priority) { animation(priority); } this.run = function(priority) { return new Promise(function(resolve, reject) { // Move on to next _index = (_index + 1) % _animations.length; // Run it runAnimation(_animations[_index]); // Finish resolve(); }); } };
function runGif(priority) { matrix.emit('animation', {priority:priority, duration:120, name:random(['tree','pacman','pong','boat','fireplace','reduction', 'bubbles', 'crystal', 'dancer', 'haze', 'orbit', 'robot-factory'])}); }