UNPKG

arx-convert

Version:

Converts various Arx Fatalis formats to JSON or YAML and back

42 lines 1.34 kB
import { BinaryIO } from './BinaryIO.js'; export class Color { static readFrom(binary, mode) { if (mode === 'bgra') { const [b, g, r, a] = binary.readUint8Array(4); return { r, g, b, a: a / 255 }; } if (mode === 'abgr') { const [a, b, g, r] = binary.readUint8Array(4); return { r, g, b, a: a / 255 }; } const [r, g, b] = binary.readFloat32Array(3); return { r: r * 255, g: g * 255, b: b * 255, a: 1 }; } static accumulateFrom({ r, g, b, a }, mode) { const buffer = new ArrayBuffer(Color.sizeOf(mode)); const binary = new BinaryIO(buffer); if (mode === 'bgra') { binary.writeUint8Array([b, g, r, a * 255]); } else if (mode === 'abgr') { binary.writeUint8Array([a * 255, b, g, r]); } else { binary.writeFloat32Array([r / 255, g / 255, b / 255]); } return buffer; } static sizeOf(mode) { if (mode === 'rgb') { return BinaryIO.sizeOfFloat32Array(3); } return BinaryIO.sizeOfUint8Array(4); } static get black() { return { r: 0, g: 0, b: 0, a: 1 }; } static get transparent() { return { r: 0, g: 0, b: 0, a: 0 }; } } //# sourceMappingURL=Color.js.map