UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

48 lines (37 loc) 1.05 kB
import { Action } from "../../../src/core/process/undo/Action.js"; /** * @extends {Action<Editor>} */ class EntityRemoveAction extends Action { constructor(entity) { super(); this.entity = entity; this.components = []; } /** * * @param {Editor} editor */ async apply(editor) { const em = editor.engine.entityManager; const ecd = em.dataset; this.components = ecd.getAllComponents(this.entity); ecd.removeEntity(this.entity); } /** * * @param {Editor} editor */ async revert(editor) { const em = editor.engine.entityManager; const ecd = em.dataset; ecd.createEntitySpecific(this.entity); for (let i = 0; i < this.components.length; i++) { const c = this.components[i]; if (c !== undefined) { ecd.addComponentToEntityByIndex(this.entity, i, c); } } } } export default EntityRemoveAction;