UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

48 lines (39 loc) 1.42 kB
import { BinaryClassSerializationAdapter } from "../../../ecs/storage/binary/BinaryClassSerializationAdapter.js"; import { LightType } from "./LightType.js"; import { Light } from "./Light.js"; export class LightSerializationAdapter extends BinaryClassSerializationAdapter { klass = Light; version = 0; /** * * @param buffer * @param {Light} value */ serialize(buffer, value) { buffer.writeUint8(value.type.getValue()); buffer.writeUint32(value.color.toUint()); value.intensity.toBinaryBuffer(buffer); value.castShadow.toBinaryBuffer(buffer); if (value.type.getValue() === LightType.SPOT) { value.angle.toBinaryBuffer(buffer); value.penumbra.toBinaryBuffer(buffer); value.distance.toBinaryBuffer(buffer); } } /** * * @param buffer * @param {Light} value */ deserialize(buffer, value) { value.type.set(buffer.readUint8()); value.color.fromUint(buffer.readUint32()); value.intensity.fromBinaryBuffer(buffer); value.castShadow.fromBinaryBuffer(buffer); if (value.type.getValue() === LightType.SPOT) { value.angle.fromBinaryBuffer(buffer); value.penumbra.fromBinaryBuffer(buffer); value.distance.fromBinaryBuffer(buffer); } } }