UNPKG

arx-convert

Version:

Converts various Arx Fatalis formats to JSON or YAML and back

35 lines 1.34 kB
import { BinaryIO } from '../common/BinaryIO.js'; import { TEA_VERSION_OLD } from './constants.js'; export class TeaHeader { static readFrom(binary) { binary.readString(20); // identifier - always "Theo Animation File" return { version: binary.readUint32(), name: binary.readString(256), totalNumberOfFrames: binary.readInt32(), numberOfGroups: binary.readInt32(), numberOfKeyFrames: binary.readInt32(), }; } static accumulateFrom(json) { const buffer = new ArrayBuffer(TeaHeader.sizeOf()); const binary = new BinaryIO(buffer); binary.writeString('Theo Animation File', 20); binary.writeUint32(TEA_VERSION_OLD); binary.writeString(json.header.name, 256); binary.writeInt32(json.header.totalNumberOfFrames); if (json.keyframes.length === 0) { binary.writeInt32(0); binary.writeInt32(0); } else { binary.writeInt32(json.keyframes[0].groups.length); binary.writeInt32(json.keyframes.length); } return buffer; } static sizeOf() { return (BinaryIO.sizeOfString(20) + BinaryIO.sizeOfUint32() + BinaryIO.sizeOfString(256) + BinaryIO.sizeOfInt32Array(3)); } } //# sourceMappingURL=TeaHeader.js.map