UNPKG

arx-convert

Version:

Converts various Arx Fatalis formats to JSON or YAML and back

34 lines 1.35 kB
import { BinaryIO } from '../common/BinaryIO.js'; import { Color } from '../common/Color.js'; import { concatArrayBuffers, times } from '../common/helpers.js'; import { Light } from './Light.js'; import { LightingHeader } from './LightingHeader.js'; import { LlfHeader } from './LlfHeader.js'; export class LLF { static load(decompressedFile) { const file = new BinaryIO(decompressedFile); const { numberOfLights, ...header } = LlfHeader.readFrom(file); const lights = times(() => { return Light.readFrom(file); }, numberOfLights); const { numberOfColors } = LightingHeader.readFrom(file); const colors = times(() => { return Color.readFrom(file, 'bgra'); }, numberOfColors); return { header, lights, colors, }; } static save(json) { const header = LlfHeader.accumulateFrom(json); const lights = concatArrayBuffers(json.lights.map(Light.accumulateFrom)); const lightingHeader = LightingHeader.accumulateFrom(json.colors); const colors = concatArrayBuffers(json.colors.map((color) => { return Color.accumulateFrom(color, 'bgra'); })); return concatArrayBuffers([header, lights, lightingHeader, colors]); } } //# sourceMappingURL=LLF.js.map