phaser4-rex-plugins
Version:
316 lines (234 loc) • 8.4 kB
TypeScript
// import * as Phaser from 'phaser';
import Sizer from '../sizer/Sizer';
import { ModalBehavoir } from '../modal/Modal';
export default Dialog;
declare namespace Dialog {
type AlignTypes = number | 'left' | 'center' | 'right';
interface IConfigClick {
mode: 0 | 1 | 'pointerup' | 'pointerdown' | 'release' | 'press',
clickInterval?: number
}
interface IConfig extends Sizer.IConfig {
space?: {
left?: number, right?: number, top?: number, bottom?: number,
title?: number,
titleLeft?: number,
titleRight?: number,
titleTop?: number,
content?: number,
contentLeft?: number,
contentRight?: number,
description?: number,
descriptionLeft?: number,
descriptionRight?: number,
choices?: number,
choicesLeft?: number,
choicesRight?: number,
choice?: number,
choiceLine?: number,
choiceColumn?: number, choiceRow?: number,
choicesBackgroundLeft?: number,
choicesBackgroundRight?: number,
choicesBackgroundTop?: number,
choicesBackgroundBottom?: number,
action?: number,
actionsLeft?: number,
actionsRight?: number,
actionsBottom?: number,
toolbarItem?: number,
leftToolbarItem?: number,
};
background?: Phaser.GameObjects.GameObject,
title?: Phaser.GameObjects.GameObject,
toolbar?: Phaser.GameObjects.GameObject[],
toolbarBackground?: Phaser.GameObjects.GameObject,
leftToolbar?: Phaser.GameObjects.GameObject[],
leftToolbarBackground?: Phaser.GameObjects.GameObject,
content?: Phaser.GameObjects.GameObject,
description?: Phaser.GameObjects.GameObject,
choicesType?: string,
choicesWidth?: number,
choicesHeight?: number,
choices?: Phaser.GameObjects.GameObject[],
choicesBackground?: Phaser.GameObjects.GameObject,
actions?: Phaser.GameObjects.GameObject[],
actionsBackground?: Phaser.GameObjects.GameObject,
proportion?: {
title?: number,
content?: number,
description?: number,
choices?: number,
actions?: number,
},
expand?: {
title?: boolean,
content?: boolean,
description?: boolean,
choices?: boolean,
actions?: boolean,
},
align?: {
title?: AlignTypes,
content?: AlignTypes,
description?: AlignTypes,
choices?: AlignTypes,
actions?: AlignTypes,
},
click?: IConfigClick
}
interface IModalConfig extends ModalBehavoir.IConfig {
defaultBehavior?: boolean,
}
interface ICloseEventData {
index: number,
text: string,
button: Phaser.GameObjects.GameObject,
dialog: Dialog,
value: any
}
type OnModalCloseCallbackType = (data: ICloseEventData | Dialog) => void;
}
declare class Dialog extends Sizer {
constructor(
scene: Phaser.Scene,
config?: Dialog.IConfig
);
emitChoiceClick(
index: number | Phaser.GameObjects.GameObject
): this;
emitActionClick(
index: number | Phaser.GameObjects.GameObject
): this;
emitToolbarClick(
index: number | Phaser.GameObjects.GameObject
): this;
emitLeftToolbarClick(
index: number | Phaser.GameObjects.GameObject
): this;
setChoiceEnable(
index: number | Phaser.GameObjects.GameObject,
enable?: boolean
): this;
setActionEnable(
index: number | Phaser.GameObjects.GameObject,
enable?: boolean
): this;
setToolbarEnable(
index: number | Phaser.GameObjects.GameObject,
enable?: boolean
): this;
setLeftToolbarEnable(
index: number | Phaser.GameObjects.GameObject,
enable?: boolean
): this;
toggleChoiceEnable(
index: number | Phaser.GameObjects.GameObject
): this;
toggleActionEnable(
index: number | Phaser.GameObjects.GameObject
): this;
toggleToolbarEnable(
index: number | Phaser.GameObjects.GameObject
): this;
toggleLeftToolbarEnable(
index: number | Phaser.GameObjects.GameObject
): this;
getChoiceEnable(
index: number | Phaser.GameObjects.GameObject
): boolean;
getActionEnable(
index: number | Phaser.GameObjects.GameObject
): boolean;
getToolbarEnable(
index: number | Phaser.GameObjects.GameObject
): boolean;
getLeftToolbarEnable(
index: number | Phaser.GameObjects.GameObject
): boolean;
addChoice(gameObject: Phaser.GameObjects.GameObject): this;
addAction(gameObject: Phaser.GameObjects.GameObject): this;
addToolbar(gameObject: Phaser.GameObjects.GameObject): this;
addLeftToolbar(gameObject: Phaser.GameObjects.GameObject): this;
removeChoice(
index: number | Phaser.GameObjects.GameObject,
destroyChild?: boolean
): this;
removeAction(
index: number | Phaser.GameObjects.GameObject,
destroyChild?: boolean
): this;
removeToolbar(
index: number | Phaser.GameObjects.GameObject,
destroyChild?: boolean
): this;
removeLeftToolbar(
index: number | Phaser.GameObjects.GameObject,
destroyChild?: boolean
): this;
clearChoices(destroyChild?: boolean): this;
clearActions(destroyChild?: boolean): this;
clearToolbar(destroyChild?: boolean): this;
clearLeftToolbar(destroyChild?: boolean): this;
showChoice(
index: number | Phaser.GameObjects.GameObject
): this;
showAction(
index: number | Phaser.GameObjects.GameObject
): this;
showToolbar(
index: number | Phaser.GameObjects.GameObject
): this;
showLeftToolbar(
index: number | Phaser.GameObjects.GameObject
): this;
hideChoice(
index: number | Phaser.GameObjects.GameObject
): this;
hideAction(
index: number | Phaser.GameObjects.GameObject
): this;
hideToolbar(
index: number | Phaser.GameObjects.GameObject
): this;
hideLeftToolbar(
index: number | Phaser.GameObjects.GameObject
): this;
forEachChoice(
callback: (button: Phaser.GameObjects.GameObject, index: number, buttons: Phaser.GameObjects.GameObject[]) => void,
scop?: unknown
): this;
forEachAction(
callback: (button: Phaser.GameObjects.GameObject, index: number, buttons: Phaser.GameObjects.GameObject[]) => void,
scop?: unknown
): this;
forEachToolbar(
callback: (button: Phaser.GameObjects.GameObject, index: number, buttons: Phaser.GameObjects.GameObject[]) => void,
scop?: unknown
): this;
forEachLeftToolbar(
callback: (button: Phaser.GameObjects.GameObject, index: number, buttons: Phaser.GameObjects.GameObject[]) => void,
scop?: unknown
): this;
hasAnyChoice(): boolean;
hasAnyAction(): boolean;
hasAnyToolbar(): boolean;
hasAnyLeftToolbar(): boolean;
setAllButtonsEnable(enable?: boolean): this;
getChoicesButtonState(name: string): boolean;
getChoicesButtonState(): { [name: string]: boolean };
getChoicessButtonStates(): { [name: string]: boolean };
setChoicesButtonState(name: string, state?: boolean): this;
clearChoicesButtonStates(): this;
getChoicesSelectButtonName(): string;
modal(
config?: Dialog.IModalConfig,
onClose?: Dialog.OnModalCloseCallbackType
): this;
modal(
onClose?: Dialog.OnModalCloseCallbackType
): this;
modalPromise(
config?: Dialog.IModalConfig,
): Promise<Dialog.ICloseEventData | Dialog>;
modalClose(closeEventData?: Dialog.ICloseEventData): this;
}