@urso/revolt-fx
Version:
Particle and Effect System for Pixi.js
61 lines (60 loc) • 2.08 kB
TypeScript
import * as PIXI from "pixi.js";
import { BaseEffect } from "./BaseEffect";
import { BaseEmitterCore } from "./core/BaseEmitterCore";
import { IEmitterSettings, IEmitterSpawn, IParticleEmitterParent } from "./FX";
import { Particle } from "./Particle";
import { FXSignal } from "./util/FXSignal";
export interface IParticleEmitterSignals {
started: FXSignal;
completed: FXSignal;
exhausted: FXSignal;
particleSpawned: FXSignal;
particleBounced: FXSignal;
particleDied: FXSignal;
particleUpdated: FXSignal;
}
export declare class ParticleEmitter extends BaseEffect implements IParticleEmitterParent {
infinite: boolean;
target: PIXI.Container;
targetOffset: number;
core: BaseEmitterCore;
settings: IEmitterSettings | undefined;
autoRecycleOnComplete: boolean;
private _particles;
private _particleCount;
private _spawnOnComplete;
private _childEmitters;
private _hasChildEmitters;
private _xPosIntialized;
private _yPosIntialized;
private _nextSpawnTime;
private _scaleMod;
private _paused;
__parent: IParticleEmitterParent | undefined;
__adoptRotation: boolean;
__on: IParticleEmitterSignals;
constructor(componentId: string);
init(container: PIXI.Container, autoStart?: boolean, scaleMod?: number): ParticleEmitter;
start(): ParticleEmitter;
stop(waitForParticles?: boolean): void;
update(dt: number): ParticleEmitter;
spawn(): ParticleEmitter;
recycle(): void;
dispose(): void;
get x(): number;
set x(value: number);
get y(): number;
set y(value: number);
set rotation(value: number);
get rotation(): number;
get paused(): boolean;
set paused(value: boolean);
get on(): IParticleEmitterSignals;
private recycleParticles;
private stopChildEmitters;
__removeParticle(particle: Particle): void;
__removeChildEmitter(emitter: any): void;
__subSpawn(particle: Particle, list: IEmitterSpawn[]): void;
__applySettings(value: IEmitterSettings): void;
__setCore(type: string): void;
}