UNPKG

arx-convert

Version:

Converts various Arx Fatalis formats to JSON or YAML and back

46 lines (45 loc) 1.41 kB
import { BinaryIO } from '../common/BinaryIO.js'; import { type ArxColor } from '../common/Color.js'; import type { ArxRotation, ArxVector3 } from '../common/types.js'; /** * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/scene/LevelFormat.h#L132 */ export type ArxFog = { position: ArxVector3; color: ArxColor; size: number; /** * Either 0 = ? or 1 = FOG_DIRECTIONAL */ special: number; scale: number; /** * A normal vector, all axis are between -1 and 1 */ move: ArxVector3; orientation: ArxRotation; /** * Movement speed of fog particles: `move` * (`speed` * 0.1) */ speed: number; /** * Particle rotation between 0 (stationary) and 1 (rotating as fast as the FPS allows) */ rotateSpeed: number; /** * How long each particle lives (fade in -> show -> fade out) in milliseconds */ toLive: number; /** * Whether to draw new fog particles is checked by creating a random number between 0 and 2000. * If that random number is < frequency then a new particle is drawn. * * Having the frequency set to 2000 or above means spawning fog particles on every frame. */ frequency: number; }; export declare class Fog { static readFrom(binary: BinaryIO<ArrayBufferLike>): ArxFog; static accumulateFrom(fog: ArxFog): ArrayBuffer; static sizeOf(): number; }