UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

72 lines (58 loc) 1.31 kB
export const SerializationFlags = { Transient: 1 }; export class SerializationMetadata { /** * * @type {number} */ flags = 0; /** * * @param {number|SerializationFlags} flag * @returns {void} */ setFlag(flag) { this.flags |= flag; } /** * * @param {number|SerializationFlags} flag * @returns {void} */ clearFlag(flag) { this.flags &= ~flag; } /** * * @param {number|SerializationFlags} flag * @param {boolean} value */ writeFlag(flag, value) { if (value) { this.setFlag(flag); } else { this.clearFlag(flag); } } /** * * @param {number|SerializationFlags} flag * @returns {boolean} */ getFlag(flag) { return (this.flags & flag) === flag; } toJSON() { return { flags: this.flags } } fromJSON({ flags = 0 }) { this.flags = flags; } } const transient = new SerializationMetadata(); transient.setFlag(SerializationFlags.Transient); SerializationMetadata.Transient = Object.freeze(transient); SerializationMetadata.typeName = "SerializationMetadata";