phaser3-rex-plugins
Version:
157 lines (138 loc) • 3.92 kB
TypeScript
// import * as Phaser from 'phaser';
import OverlapSizer from '../overlapsizer/OverlapSizer';
import GetBoundsConfig from '../../../plugins/utils/bounds/GetBoundsConfig';
export default Pages;
declare namespace Pages {
/**
* Alignment values for pages and child elements.
*/
type AlignTypes = number | 'center' | 'left' | 'right' | 'top' | 'bottom' |
'left-top' | 'left-center' | 'left-bottom' |
'center-top' | 'center-center' | 'center-bottom' |
'right-top' | 'right-center' | 'right-bottom';
/**
* Padding configuration types.
*/
type PaddingTypes = GetBoundsConfig.PaddingConfigType;
/**
* Configuration options for creating a Pages container.
*/
interface IConfig extends OverlapSizer.IConfig {
/**
* Default fade-in duration for swaps, in milliseconds.
*/
fadeIn?: number,
/**
* Behavior used when swapping pages.
*/
swapMode?: 0 | 1 | 'invisible' | 'destroy',
}
}
/**
* A container that manages multiple pages and swaps between them.
*/
declare class Pages extends OverlapSizer {
/**
* Create a Pages container.
*
* @param scene - The Phaser.Scene that owns this Pages container.
* @param config - Configuration options for the Pages container.
*/
constructor(
scene: Phaser.Scene,
config?: Pages.IConfig
);
/**
* Set how the previous page is handled during a swap.
*
* @param mode - The swap mode to use.
* @returns This Pages instance.
*/
setSwapMode(
mode: 0 | 1 | 'invisible' | 'destroy'
): this;
/**
* Add a new page to the container.
*
* @param gameObject - The page game object.
* @param config - Page-specific configuration.
* @returns This Pages instance.
*/
addPage(
gameObject: Phaser.GameObjects.GameObject,
config?: {
/**
* The page key.
*/
key?: string,
/**
* Alignment for the page.
*/
align?: Pages.AlignTypes,
/**
* Padding for the page.
*/
padding?: Pages.PaddingTypes,
/**
* Expand options for the page.
*/
expand: boolean |
{
/**
* Expand width.
*/
width?: boolean,
/**
* Expand height.
*/
height?: boolean,
},
/**
* Minimum width of the page.
*/
minWidth?: number,
/**
* Minimum height of the page.
*/
minHeight?: number
}
): this;
/**
* Swap to the page with the given key.
*
* @param key - The page key to activate.
* @param fadeInDuration - Fade-in duration in milliseconds.
* @returns This Pages instance.
*/
swapPage(
key: string,
fadeInDuration?: number
): this;
/**
* Key of the current page.
*/
currentKey: string;
/**
* Key of the previous page.
*/
readonly previousKey: string;
/**
* All page keys in this container.
*/
keys: string[];
/**
* Get a page by key.
*
* @param key - The page key.
* @returns The page game object.
*/
getPage(key: string): Phaser.GameObjects.GameObject;
/**
* Current page game object.
*/
readonly currentPage: Phaser.GameObjects.GameObject;
/**
* Previous page game object.
*/
readonly previousPage: Phaser.GameObjects.GameObject;
}