phaser3-rex-plugins
Version:
189 lines (175 loc) • 4.6 kB
TypeScript
// import * as Phaser from 'phaser';
import Scrollable from '../utils/scrollable/Scrollable';
export default ScrollablePanel;
declare namespace ScrollablePanel {
type MaskConfig = {
/**
* Mask padding.
*/
padding?: number | {
/**
* Left padding.
*/
left?: number,
/**
* Right padding.
*/
right?: number,
/**
* Top padding.
*/
top?: number,
/**
* Bottom padding.
*/
bottom?: number,
},
/**
* Mask update mode.
*/
updateMode?: 0 | 1 | 'update' | 'everyTick'
}
interface IConfig extends Scrollable.IConfig {
/**
* Spacing configuration.
*/
space?: {
/**
* Left space.
*/
left?: number,
/**
* Right space.
*/
right?: number,
/**
* Top space.
*/
top?: number,
/**
* Bottom space.
*/
bottom?: number,
/**
* Panel padding or spacing.
*/
panel?: number | {
/**
* Left panel padding.
*/
left?: number,
/**
* Right panel padding.
*/
right?: number,
/**
* Top panel padding.
*/
top?: number,
/**
* Bottom panel padding.
*/
bottom?: number,
},
/**
* Horizontal slider spacing.
*/
sliderX?: number,
/**
* Vertical slider spacing.
*/
sliderY?: number,
/**
* Header spacing.
*/
header?: number,
/**
* Footer spacing.
*/
footer?: number,
},
/**
* Panel configuration.
*/
panel: {
/**
* Panel child game object.
*/
child: Phaser.GameObjects.GameObject,
/**
* Mask configuration or true to enable.
*/
mask?: MaskConfig | boolean,
/**
* True to enable layer support.
*/
enableLayer?: boolean,
/**
* True to keep original child origin.
*/
childOrigin0?: boolean,
},
/**
* Alignment configuration.
*/
align?: {
/**
* Header alignment.
*/
header?: Scrollable.AlignTypes,
/**
* Footer alignment.
*/
footer?: Scrollable.AlignTypes,
/**
* Panel alignment.
*/
panel?: Scrollable.AlignTypes,
},
/**
* Expand settings.
*/
expand?: {
/**
* True to expand header.
*/
header?: boolean,
/**
* True to expand footer.
*/
footer?: boolean,
/**
* True to expand panel.
*/
panel?: boolean,
},
}
}
/**
* Scrollable panel that hosts a single child with optional mask.
*/
declare class ScrollablePanel extends Scrollable {
/**
* Create a scrollable panel.
* @param scene - The Scene to which this object belongs.
* @param config - Configuration options.
*/
constructor(
scene: Phaser.Scene,
config?: ScrollablePanel.IConfig
);
/**
* Scroll to make a child visible.
* @param child - Child to scroll to.
* @param align - Alignment within the viewport.
* @param duration - Tween duration in ms.
* @param ease - Easing name.
* @returns This instance.
*/
scrollToChild(
child: Phaser.GameObjects.GameObject,
align?: 'top' | 'bottom' | 'centerY' | 'left' | 'right' | 'centerX' | 'center',
duration?: number,
ease?: string
): this;
}