@fluritheme/fluri
Version:
Interactive snowfall for websites: DOM-aware snow accumulation, mouse interactions, snow physics, Canvas 2D rendering, and Christmas effects.
40 lines • 1.35 kB
TypeScript
import type { Particle, Surface, WeatherConfig } from '../types.js';
export interface StepMetrics {
collisionChecks: number;
deposits: number;
transfers: number;
slides: number;
slideMass: number;
}
export interface EmissionBounds {
x: number;
y: number;
width: number;
height: number;
}
export declare class ParticleSystem {
private static readonly transientLimit;
readonly particles: Particle[];
private readonly random;
private readonly index;
private intensity;
private requestedIntensity;
private initialized;
private clumpCount;
private gustStrength;
private gustRemaining;
private flowing;
private contacts;
private sources;
private emission;
constructor(seed?: number);
setIntensity(amount: number): void;
gust(strength?: number, duration?: number): void;
clear(): void;
spawnClump(x: number, y: number, mass: number, vx: number, vy: number, source?: Surface): void;
burst(x: number, y: number, count: number, kind?: Particle['kind']): void;
step(dt: number, time: number, width: number, height: number, config: WeatherConfig, surfaces: readonly Surface[], quality?: number, emissionBounds?: EmissionBounds): StepMetrics;
private createFlake;
private moveContact;
}
//# sourceMappingURL=ParticleSystem.d.ts.map