UNPKG

arx-convert

Version:

Converts various Arx Fatalis formats to JSON or YAML and back

28 lines 1.14 kB
import { BinaryIO } from '../common/BinaryIO.js'; import { concatArrayBuffers, times } from '../common/helpers.js'; import { KeyFrame } from './KeyFrame.js'; import { TeaHeader } from './TeaHeader.js'; import { TEA_VERSION_OLD } from './constants.js'; export class TEA { static load(decompressedFile) { const file = new BinaryIO(decompressedFile); const { numberOfKeyFrames, numberOfGroups, version, ...header } = TeaHeader.readFrom(file); if (version < TEA_VERSION_OLD) { throw new Error(`Invalid TEA version ${version}`); } const data = { $schema: 'https://arx-tools.github.io/schemas/tea.schema.json', header, keyframes: times(() => { return KeyFrame.readFrom(file, version, numberOfGroups); }, numberOfKeyFrames), }; return data; } static save(json) { const header = TeaHeader.accumulateFrom(json); const keyframes = concatArrayBuffers(json.keyframes.map(KeyFrame.accumulateFrom)); return concatArrayBuffers([header, keyframes]); } } //# sourceMappingURL=TEA.js.map