phaser3-rex-plugins
Version:
181 lines (166 loc) • 4.49 kB
TypeScript
// import * as Phaser from 'phaser';
import Sizer from '../sizer/Sizer';
export default ToastQueue;
declare namespace ToastQueue {
/**
* Message payload type accepted by toast queue.
*/
type MessageType = string | Object;
/**
* Callback used to create a message label object.
*/
type CreateMessageLabelCallbackType = (
/**
* Scene that owns the created label.
*/
scene: Phaser.Scene,
/**
* Message payload to display.
*/
message: MessageType,
/**
* Toast queue instance.
*/
toastQueue: ToastQueue
) => Phaser.GameObjects.GameObject;
/**
* Callback used to run toast transition animations.
*/
type TransitionCallbackType = (
/**
* Target message label.
*/
messageLabel: Phaser.GameObjects.GameObject,
/**
* Transition duration in milliseconds.
*/
duration: number,
/**
* Toast queue instance.
*/
toastQueue: ToastQueue
) => void;
/**
* Configuration options for creating a toast queue.
*/
interface IConfig extends Sizer.IConfig {
/**
* Callback used to create message labels.
*/
createMessageLabelCallback: CreateMessageLabelCallbackType,
/**
* Queue growth direction.
*/
queueDirection?: 1 | 0 | 'bottom-to-top' | 'top-to-bottom' | 'right-to-left' | 'left-to-right',
duration?: {
/**
* Transition-in duration.
*/
in?: number,
/**
* Display duration.
*/
hold?: number,
/**
* Transition-out duration.
*/
out?: number,
},
/**
* Transition-in callback.
*/
transitIn?: TransitionCallbackType,
/**
* Transition-out callback.
*/
transitOut?: TransitionCallbackType,
}
}
/**
* Queue-based toast message container.
*/
declare class ToastQueue extends Sizer {
/**
* Create a toast queue component.
*
* @param scene - Scene that owns this component.
* @param config - Optional toast queue configuration.
*/
constructor(
scene: Phaser.Scene,
config?: ToastQueue.IConfig
);
/**
* Show a message as a toast item.
*
* @param message - Message payload to display.
* @returns This component instance.
*/
showMessage(
message: ToastQueue.MessageType
): this;
/**
* Remove a specific message label.
*
* @param messageLabel - Message label to remove.
* @returns This component instance.
*/
removeMessage(messageLabel: Phaser.GameObjects.GameObject): this;
/**
* Remove all queued message labels.
*
* @returns This component instance.
*/
removeAllMessages(): this;
/**
* Current transition-in time in milliseconds.
*/
transitInTime: number;
/**
* Set transition-in time.
*
* @param time - Duration in milliseconds.
* @returns This component instance.
*/
setTransitInTime(time: number): this;
/**
* Current display time in milliseconds.
*/
displayTime: number;
/**
* Set display time.
*
* @param time - Duration in milliseconds.
* @returns This component instance.
*/
setDisplayTime(time: number): this;
/**
* Current transition-out time in milliseconds.
*/
transitOutTime: number;
/**
* Set transition-out time.
*
* @param time - Duration in milliseconds.
* @returns This component instance.
*/
setTransitOutTime(time: number): this;
/**
* Set transition-in callback.
*
* @param callback - Transition callback.
* @returns This component instance.
*/
setTransitInCallback(
callback: ToastQueue.TransitionCallbackType
): this;
/**
* Set transition-out callback.
*
* @param callback - Transition callback.
* @returns This component instance.
*/
setTransitOutCallback(
callback: ToastQueue.TransitionCallbackType
): this;
}