phaser3-rex-plugins
Version:
145 lines (132 loc) • 3.25 kB
TypeScript
import Base from '../base/Base';
import * as Geoms from '../../../plugins/gameobjects/shape/shapes/geoms';
export default Custom;
declare namespace Custom {
/**
* Name values for shape lookups.
*/
type NameTypes = string | string[] | number;
/**
* Arc shape type.
*/
type Arc = Geoms.Arc;
/**
* Circle shape type.
*/
type Circle = Geoms.Circle;
/**
* Curve shape type.
*/
type Curve = Geoms.Curve;
/**
* Ellipse shape type.
*/
type Ellipse = Geoms.Ellipse;
/**
* Line shape type.
*/
type Line = Geoms.Line;
/**
* Lines shape type.
*/
type Lines = Geoms.Lines;
/**
* Rectangle shape type.
*/
type Rectangle = Geoms.Rectangle;
/**
* Round rectangle shape type.
*/
type RoundRectangle = Geoms.RoundRectangle;
/**
* Triangle shape type.
*/
type Triangle = Geoms.Triangle;
/**
* Supported shape types.
*/
type ShapeTypes = Arc | Circle | Curve | Ellipse |
Line | Lines | Rectangle | RoundRectangle | Triangle;
/**
* Callback used to create shapes.
*/
type CreateCallback = (this: Custom) => void;
/**
* Callback used to update shapes.
*/
type UpdateCallback = (this: Custom) => void;
/**
* Configuration options for creating a Custom spinner.
*/
interface IConfig extends Base.IConfig {
/**
* Shape creation configuration or callback.
*/
create?: {
/**
* Arc shape names.
*/
arc?: NameTypes,
/**
* Circle shape names.
*/
circle?: NameTypes,
/**
* Ellipse shape names.
*/
ellipse?: NameTypes,
/**
* Line shape names.
*/
line?: NameTypes,
/**
* Lines shape names.
*/
lines?: NameTypes,
/**
* Rectangle shape names.
*/
rectangle?: NameTypes,
/**
* Triangle shape names.
*/
triangle?: NameTypes,
} | CreateCallback;
/**
* Update callback for custom shapes.
*/
update?: UpdateCallback;
/**
* Custom spinner type name.
*/
type?: string,
}
}
/**
* Custom spinner with user-defined shapes.
*/
declare class Custom extends Base {
/**
* Create a Custom spinner.
*
* @param scene - The Phaser.Scene that owns this spinner.
* @param config - Configuration options for the spinner.
*/
constructor(
scene: Phaser.Scene,
config?: Custom.IConfig
)
/**
* Get a shape by name.
*
* @param name - The shape name.
* @returns The shape instance.
*/
getShape(name: string): Custom.ShapeTypes;
/**
* Get all shapes.
*
* @returns The list of shapes.
*/
getShapes(): Custom.ShapeTypes[];
}