aboutsummaryrefslogtreecommitdiff
path: root/src/utils/delayUtils.js
diff options
context:
space:
mode:
authorSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2022-09-17 23:47:59 +0800
committerGitHub <noreply@github.com>2022-09-17 23:47:59 +0800
commit364caae9b6e47b8d5e1bab950aebc5b35bc4baad (patch)
treee554b5859e0135b8f644986768306d5f3ee5683e /src/utils/delayUtils.js
parenteb8bc77bf2d790e97fe793eb96ad77e1b4d2bbbf (diff)
parent12f3a81cf12c6ffc24a7f2a0e8102dfba3fddf82 (diff)
downloadSoopyV2-364caae9b6e47b8d5e1bab950aebc5b35bc4baad.tar.gz
SoopyV2-364caae9b6e47b8d5e1bab950aebc5b35bc4baad.tar.bz2
SoopyV2-364caae9b6e47b8d5e1bab950aebc5b35bc4baad.zip
Merge pull request #71 from Soopyboo32/Babel
Diffstat (limited to 'src/utils/delayUtils.js')
-rw-r--r--src/utils/delayUtils.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/utils/delayUtils.js b/src/utils/delayUtils.js
new file mode 100644
index 0000000..3ec6d95
--- /dev/null
+++ b/src/utils/delayUtils.js
@@ -0,0 +1,29 @@
+const { default: FlatQueue } = require("../datastructures/flatqueue")
+
+if (!global.delayThingSoopy) {
+
+ let functionQueue = new FlatQueue()
+ let functions = new Map()
+ let functionId = 0
+
+ function delay(time, callback) {
+ let id = functionId++
+ functions.set(id, callback)
+ functionQueue.push(id, Date.now() + time)
+ }
+
+ register("tick", () => {
+ while (functionQueue.length > 0 && Date.now() > functionQueue.peekValue()) {
+ let id = functionQueue.pop()
+
+ functions.get(id)()
+ functions.delete(id)
+ }
+ })
+
+ global.delayThingSoopy = {
+ delay: delay
+ }
+}
+
+module.exports = global.delayThingSoopy