From 17224b0a86e4b71e96f0fa027b838d06d790f662 Mon Sep 17 00:00:00 2001 From: Victor Westerlund Date: Fri, 8 Oct 2021 13:56:10 +0200 Subject: [PATCH] Renamed "worker" to "do" Renaming the "worker" folder to "do" so we can add more workers without having to cram them all in one folder. --- Monkeydo.mjs | 2 +- {worker => do}/Monkey.js | 18 ++++++++++++++++-- {worker => do}/MonkeyManager.mjs | 2 ++ 3 files changed, 19 insertions(+), 3 deletions(-) rename {worker => do}/Monkey.js (84%) rename {worker => do}/MonkeyManager.mjs (98%) diff --git a/Monkeydo.mjs b/Monkeydo.mjs index e67236b..7cd8033 100644 --- a/Monkeydo.mjs +++ b/Monkeydo.mjs @@ -1,4 +1,4 @@ -import { default as MonkeyWorker } from "./worker/MonkeyManager.mjs"; +import { default as MonkeyWorker } from "./do/MonkeyManager.mjs"; export default class Monkeydo extends MonkeyWorker { constructor(methods = {},manifest = false) { diff --git a/worker/Monkey.js b/do/Monkey.js similarity index 84% rename from worker/Monkey.js rename to do/Monkey.js index 9bb7d66..7513e4c 100644 --- a/worker/Monkey.js +++ b/do/Monkey.js @@ -1,7 +1,8 @@ -// Task scheduler and iterator of Monkeydo manifests +// Dedicated worker which executes tasks from a Monkeydo manifest class Monkey { constructor(manifest) { + const self = this; this.data = manifest.body; this.dataLength = this.data.length - 1; @@ -9,6 +10,19 @@ class Monkey { playing: 0, stacking: 0, // Subsequent calls to play() will build a queue (jQuery-style) loop: 0, // Loop n times; <0 = infinite + _forwards: 1, // Playback direction + set forwards(forwards = true) { + if(forwards == this._forwards) { + return false; + } + // Toggle playback direction + console.log(this); + self.data = self.data.reverse(); + this._forwards = 1 - this._forwards; + }, + get forwards() { + return this._forwards; + } } this.i = 0; // Manifest iterator index @@ -37,7 +51,7 @@ class Monkey { play() { // Stack playback as loops if flag is set if(this.flags.playing) { - if(this.flags.stacking) { + if(this.flags.stacking && this.flags.loop >= 0) { this.flags.loop++; } return; diff --git a/worker/MonkeyManager.mjs b/do/MonkeyManager.mjs similarity index 98% rename from worker/MonkeyManager.mjs rename to do/MonkeyManager.mjs index 66d2dd7..4d20861 100644 --- a/worker/MonkeyManager.mjs +++ b/do/MonkeyManager.mjs @@ -13,6 +13,8 @@ export default class MonkeyManager { // Spawn a dedicated worker for scheduling events from manifest this.worker = new Worker(location + "Monkey.js"); this.worker.addEventListener("message",message => this.message(message)); + + this.reversed = false; } // Get a status flag from the worker