phaser3-rex-plugins
Version:
224 lines (199 loc) • 5.54 kB
TypeScript
// import * as Phaser from 'phaser';
import FixWidthSizer from '../fixwidthsizer/FixWidthSizer';
import { IConfig as IConfigButtons } from '../utils/buttongroup/Buttons';
export default FixWidthButtons;
declare namespace FixWidthButtons {
/**
* Callback invoked for each button in the collection.
*/
type EachButtonCallbackType = (
/**
* Current button game object.
*/
button: Phaser.GameObjects.GameObject,
/**
* Zero-based button index.
*/
index: number,
/**
* Full button list.
*/
buttons: Phaser.GameObjects.GameObject[]
) => void;
/**
* Configuration options for creating a fixed-width buttons container.
*/
interface IConfig extends FixWidthSizer.IConfig, IConfigButtons {
/**
* Optional background game object.
*/
background?: Phaser.GameObjects.GameObject,
/**
* Initial button game objects.
*/
buttons?: Phaser.GameObjects.GameObject[],
}
}
/**
* Fixed-width sizer that manages a group of clickable buttons.
*/
declare class FixWidthButtons extends FixWidthSizer {
/**
* Create a fixed-width buttons component.
*
* @param scene - Scene that owns this component.
* @param config - Optional component configuration.
*/
constructor(
scene: Phaser.Scene,
config?: FixWidthButtons.IConfig
);
/**
* Emit a button-click event for a button index or object.
*
* @param index - Button index or button game object.
* @returns This component instance.
*/
emitButtonClick(
index: number | Phaser.GameObjects.GameObject
): this;
/**
* Enable or disable a button, or all buttons.
*
* @param index - Button index, button game object, or boolean shortcut.
* @param enable - Target enabled state.
* @returns This component instance.
*/
setButtonEnable(
index?: number | Phaser.GameObjects.GameObject | boolean,
enable?: boolean
): this;
/**
* Toggle enabled state of a button.
*
* @param index - Button index or button game object.
* @returns This component instance.
*/
toggleButtonEnable(
index?: number | Phaser.GameObjects.GameObject
): this;
/**
* Get enabled state of a button.
*
* @param index - Button index or button game object.
* @returns True if enabled.
*/
getButtonEnable(
index: number | Phaser.GameObjects.GameObject
): boolean;
/**
* Get a button by index.
*
* @param index - Zero-based button index.
* @returns Button game object or null if not found.
*/
getButton(
index: number
): Phaser.GameObjects.GameObject | null;
/**
* Add a button.
*
* @param gameObject - Button game object to add.
* @returns This component instance.
*/
addButton(
gameObject: Phaser.GameObjects.GameObject
): this;
/**
* Remove a button.
*
* @param gameObject - Button game object to remove.
* @param destroyChild - Set to true to destroy removed button.
* @returns This component instance.
*/
removeButton(
gameObject: Phaser.GameObjects.GameObject,
destroyChild?: boolean
): this;
/**
* Remove all buttons.
*
* @param destroyChild - Set to true to destroy removed buttons.
* @returns This component instance.
*/
clearButtons(
destroyChild?: boolean
): this;
/**
* Show a button.
*
* @param index - Button index or button game object.
* @returns This component instance.
*/
showButton(
index: number | Phaser.GameObjects.GameObject
): this;
/**
* Hide a button.
*
* @param index - Button index or button game object.
* @returns This component instance.
*/
hideButton(
index: number | Phaser.GameObjects.GameObject
): this;
/**
* Iterate all buttons.
*
* @param callback - Callback invoked per button.
* @param scop - Optional callback execution scope.
* @returns This component instance.
*/
forEachButtton(
callback: FixWidthButtons.EachButtonCallbackType,
scop?: unknown
): this;
/**
* Current button list.
*/
readonly buttons: Phaser.GameObjects.GameObject[];
/**
* Current component value.
*/
value: unknown;
/**
* Set selected button by name.
*
* @param name - Button name.
* @returns This component instance.
*/
setSelectedButtonName(
name: string
): this;
/**
* Get selected button name.
*
* @returns Selected button name.
*/
getSelectedButtonName(): string;
/**
* Set state of a named button.
*
* @param name - Button name.
* @param state - Target state.
* @returns This component instance.
*/
setButtonState(
name: string,
state?: boolean
): this;
/**
* Get state of a named button.
*
* @param name - Button name.
* @returns Button state.
*/
getButtonState(
name: string
): boolean;
}