phaser3-rex-plugins
Version:
86 lines (78 loc) • 1.98 kB
TypeScript
import Clock from "../clock/Clock";
export default LifeTime;
declare namespace LifeTime {
/**
* Configuration options for creating a LifeTime.
*/
interface IConfig {
/**
* Lifetime duration in milliseconds.
*/
lifeTime?: number,
/**
* Destroy the game object on completion.
*/
destroy?: boolean,
/**
* Start immediately.
*/
start?: boolean
}
namespace Events {
/**
* Complete callback signature.
*
* @param gameObject - Target game object.
* @param lifeTime - LifeTime instance.
*/
type CompleteCallbackType = (
gameObject: Phaser.GameObjects.GameObject,
lifeTime: LifeTime
) => void;
}
}
/**
* Tracks a game object's lifetime.
*/
declare class LifeTime extends Clock {
/**
* Create a LifeTime tracker.
*
* @param gameObject - Target game object.
* @param config - Configuration options.
*/
constructor(
gameObject: Phaser.GameObjects.GameObject,
config?: LifeTime.IConfig
);
/**
* Target game object.
*/
readonly gameObject: Phaser.GameObjects.GameObject;
/**
* Set lifetime duration.
*
* @param time - Duration in milliseconds.
* @returns This LifeTime instance.
*/
setLifeTime(time: number): this;
/**
* Add to lifetime duration.
*
* @param time - Duration to add in milliseconds.
* @returns This LifeTime instance.
*/
addToLifeTime(time: number): this;
/**
* Lifetime duration in milliseconds.
*/
readonly lifeTime: number;
/**
* Remaining time in milliseconds.
*/
readonly remainder: number;
/**
* Whether the object is still alive.
*/
readonly isAlive: boolean;
}