UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

81 lines (64 loc) 1.4 kB
import { assert } from "../../core/assert.js"; import { BaseProcess } from "../../core/process/BaseProcess.js"; export class EnginePlugin extends BaseProcess { /** * * @type {Class<EnginePlugin>[]} * @private */ __dependencies = []; /** * * @type {Engine|null} */ engine = null; attach() { /** * Must be unique for each plugin * @type {string} */ this.id = ""; /** * * @type {Engine} */ this.engine = null; } /** * * @returns {Class<EnginePlugin>[]} */ get dependencies() { return this.__dependencies; } /** * * @param {Engine} engine */ initialize(engine) { assert.defined(engine, 'engine'); assert.notNull(engine, 'engine'); assert.equal(engine.isEngine, true, '.isEngine !== true'); this.engine = engine; super.initialize(); } finalize() { super.finalize(); } /** * * @return {Promise} */ async startup() { super.startup(); return Promise.resolve(); } /** * * @return {Promise} */ async shutdown() { super.shutdown(); return Promise.resolve(); } }