arx-convert
Version:
Converts various Arx Fatalis formats to JSON or YAML and back
46 lines (45 loc) • 1.41 kB
TypeScript
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;
}