scriptyBase.js

Allows you to communicate between other scripts and to create a shared canvas element.

let _sb = {};
_sb.events = [];
_sb.scripts = {};
_sb.addEvent = (e,c) => {
    if (!_sb.events[e]) {
        _sb.events[e] = [c];
    }else{
        _sb.events[e].push(c);
    }
}
_sb.callEvents = (e, ...args) => {
    if (_sb.events[e]) {
        _sb.events[e].forEach(c => c(...args));
    }
}
_sb.createMainCanvas = () => {
    if (_sb.mainCanvas) {
        return _sb.mainCanvas;
    }
    const c = document.createElement('canvas');
    _sb.mainCanvas = c;
    _sb.mainContext2d = c.getContext('2d');
    document.body.appendChild(c);
    return c;
}

Usage

Subscribing to events:

_sb.addEvent("eventName", (param1, param2, ...) => {
    //do something after event is fired
);

Triggering an event:

_sb.callEvents("eventName", param1, param2, ...)

Registering your script:

_sb.scripts.yourScript = yourScriptObject
// or
_sb.scripts["yourScript"] = yourScriptObject

You can check this example scripts to see how _sb is used as communication between scripts and how shared canvas is used.

Last updated