phaser4-rex-plugins
Version:
74 lines (55 loc) • 2.2 kB
TypeScript
// import * as Phaser from 'phaser';
import Sizer from '../sizer/Sizer';
export default HolyGrail;
declare namespace HolyGrail {
type HAlignTypes = number | 'left' | 'center' | 'right';
type VAlignTypes = number | 'top' | 'center' | 'bottom';
type LayoutModeTypes = 0 | 1 | 2 | 3 | 'FFF' | 'LFF' | 'FFR' | 'LFR';
interface IBuildConfig {
layoutMode?: LayoutModeTypes,
background?: Phaser.GameObjects.GameObject,
header?: Phaser.GameObjects.GameObject,
leftSide?: Phaser.GameObjects.GameObject,
content?: Phaser.GameObjects.GameObject,
rightSide?: Phaser.GameObjects.GameObject,
footer?: Phaser.GameObjects.GameObject,
proportion?: {
header?: number,
leftSide?: number,
content?: number,
rightSide?: number,
footer?: number,
},
expand?: {
header?: boolean,
leftSide?: boolean,
content?: boolean,
rightSide?: boolean,
footer?: boolean,
},
align?: {
header?: HAlignTypes,
leftSide?: VAlignTypes,
content?: HAlignTypes | VAlignTypes,
rightSide?: VAlignTypes,
footer?: HAlignTypes,
},
}
interface IConfig extends Sizer.IConfig, IBuildConfig {
space?: {
left?: number, right?: number, top?: number, bottom?: number,
header?: number | { left?: number, right?: number, top?: number, bottom?: number },
leftSide?: number | { left?: number, right?: number, top?: number, bottom?: number },
content?: { left?: number, right?: number, top?: number, bottom?: number },
rightSide?: number | { left?: number, right?: number, top?: number, bottom?: number },
footer?: number | { left?: number, right?: number, top?: number, bottom?: number },
};
}
}
declare class HolyGrail extends Sizer {
constructor(
scene: Phaser.Scene,
config?: HolyGrail.IConfig
);
build(config?: HolyGrail.IBuildConfig): this
}