44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
// ===========================================================================
|
|
// 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);
|
|
}
|
|
|
|
// ===========================================================================
|