import { BasicSerializableObject } from "../savegame/serialization"; export class Component extends BasicSerializableObject { /** * Returns the components unique id * @returns {string} */ static getId() { abstract; return "unknown-component"; } /** * Should return the schema used for serialization */ static getSchema() { return {}; } /** * Should duplicate the component but without its contents * @returns {object} */ duplicateWithoutContents() { abstract; } /* dev:start */ /** * Fixes typeof DerivedComponent is not assignable to typeof Component, compiled out * in non-dev builds */ constructor(...args) { super(); } /** * Returns a string representing the components data, only in dev builds * @returns {string} */ getDebugString() { return null; } /* dev:end */ }