diff --git a/scripts/shared/queue.js b/scripts/shared/queue.js new file mode 100644 index 00000000..f63b5b1e --- /dev/null +++ b/scripts/shared/queue.js @@ -0,0 +1,44 @@ +// =========================================================================== +// Vortrex's Roleplay Resource +// https://github.com/VortrexFTW/v-roleplay +// =========================================================================== +// FILE: queue.js +// DESC: Provides simple queue functions +// TYPE: Shared (JavaScript) +// =========================================================================== + +class QueueData { + constructor(func, duration) { + this.duration = duration; + this.func = func; + this.nextUp = null; + + if (this.nextUp != null) { + if (duration <= 0) { + this.nextUp.func(); + } else { + delayedFunction(this.nextUp.func, this.duration); + } + } + } + + next(func, duration) { + this.nextUp = createQueue(func, duration); + } +} + +// =========================================================================== + +function createQueue(func, duration) { + return new QueueData(func, duration); +} + +// =========================================================================== + +function delayedFunction(func, duration) { + setTimeout(function () { + func(); + }, duration); +} + +// =========================================================================== \ No newline at end of file