phaser3-rex-plugins
Version:
142 lines (128 loc) • 3.4 kB
TypeScript
import ComponentBase from '../../utils/componentbase/ComponentBase.js';
export default Button;
declare namespace Button {
/**
* Button configuration.
*/
interface IConfig {
/**
* Click mode.
*/
mode?: 0 | 1 | 'pointerdown' | 'pointerup' | 'press' | 'release',
/**
* Minimum interval between clicks in ms.
*/
clickInterval?: number,
/**
* Drag threshold in pixels.
*/
threshold?: number,
/**
* True to enable.
*/
enable?: boolean,
/**
* Event emitter override or true to use game object emitter.
*/
eventEmitter?: boolean | Phaser.Events.EventEmitter
}
namespace Events {
/**
* Click callback.
*/
type ClickCallbackType =
(
/**
* Button component.
*/
button: Button,
/**
* Target game object.
*/
gameObject: Phaser.GameObjects.GameObject,
/**
* Pointer input.
*/
pointer: Phaser.Input.Pointer,
/**
* Input event data.
*/
event: Phaser.Types.Input.EventData
) => void;
/**
* Enable callback.
*/
type EnableCallbackType = (
/**
* Button component.
*/
button: Button,
/**
* Target game object.
*/
gameObject: Phaser.GameObjects.GameObject,
) => void;
/**
* Disable callback.
*/
type DisableCallbackType = (
/**
* Button component.
*/
button: Button,
/**
* Target game object.
*/
gameObject: Phaser.GameObjects.GameObject,
) => void;
}
}
/**
* Button input component for a game object.
*/
declare class Button extends ComponentBase {
/**
* Create a button component.
* @param gameObject - Target game object.
* @param config - Button configuration.
*/
constructor(
gameObject: Phaser.GameObjects.GameObject,
config?: Button.IConfig
);
/**
* Enable or disable the button.
* @param enable - True to enable.
* @returns This instance.
*/
setEnable(enable?: boolean): this;
/**
* Toggle enable state.
* @returns This instance.
*/
toggleEnable(): this;
/**
* True if enabled.
*/
enable: boolean;
/**
* Set click mode.
* @param mode - Click mode.
* @returns This instance.
*/
setMode(
mode?: 0 | 1 | 'pointerdown' | 'press' | 'pointerup' | 'release'
): this;
/**
* Set click interval.
* @param interval - Interval in ms.
* @returns This instance.
*/
setClickInterval(interval: number): this;
/**
* Set drag threshold.
* @param distance - Threshold distance in pixels.
* @returns This instance.
*/
setDragThreshold(distance: number): this;
}