wawa-vfx
Version:
A simple and easy-to-use library for creating visual effects in React Three Fiber.
63 lines (53 loc) • 1.85 kB
TypeScript
import { ForwardRefExoticComponent } from 'react';
import { RefAttributes } from 'react';
import * as THREE from 'three';
export declare const VFXEmitter: ForwardRefExoticComponent<Omit<VFXEmitterProps, "ref"> & RefAttributes<THREE.Object3D<THREE.Object3DEventMap>>>;
declare interface VFXEmitterProps {
debug: boolean;
settings: VFXEmitterSettings;
emitter: string;
ref?: React.RefObject<THREE.Object3D>;
}
declare interface VFXEmitterSettings {
duration?: number;
nbParticles?: number;
spawnMode?: "time" | "burst";
loop?: boolean;
delay?: number;
colorStart?: string[];
colorEnd?: string[];
particlesLifetime?: [number, number];
speed?: [number, number];
size?: [number, number];
startPositionMin?: [number, number, number];
startPositionMax?: [number, number, number];
startRotationMin?: [number, number, number];
startRotationMax?: [number, number, number];
rotationSpeedMin?: [number, number, number];
rotationSpeedMax?: [number, number, number];
directionMin?: [number, number, number];
directionMax?: [number, number, number];
}
export declare const VFXParticles: React.FC<VFXParticlesProps>;
declare interface VFXParticlesProps {
name: string;
settings?: VFXParticlesSettings;
alphaMap?: THREE.Texture;
geometry?: React.ReactElement;
}
declare interface VFXParticlesSettings {
nbParticles?: number;
intensity?: number;
renderMode?: "billboard" | "mesh";
fadeSize?: [number, number];
fadeAlpha?: [number, number];
gravity?: [number, number, number];
}
export { }
declare module "@react-three/fiber" {
interface ThreeElements {
particlesMaterial: ThreeElements["shaderMaterial"] & {
alphaMap?: THREE.Texture;
};
}
}