phaser3-rex-plugins
Version:
271 lines (252 loc) • 6.42 kB
TypeScript
import BaseShapes from '../shapes/BaseShapes';
import type {
DashPatternConfig as StrokeDashPatternConfig,
DashPatternType as StrokeDashPatternType,
IStrokePathConfigMethods,
IStrokePathState,
} from '../utils/strokepath/StrokePathMethods';
// import * as Phaser from 'phaser';
export default Line;
declare namespace Line {
/**
* Point on the line path.
*/
type PointType = { x: number, y: number };
/**
* Line path type.
*/
type LineType = 0 | 'bezier' | 1 | 'spline' | 2 | 'polyline' | 'poly' | 3 | 'straightline' | 'straight';
/**
* Endpoint shape type.
*/
type EndPointType = 0 | 'none' | 1 | 'triangle' | 2 | 'dot' | 3 | 'box' | 4 | 'diamond';
/**
* Auto dash pattern configuration.
*/
type DashPatternConfig = StrokeDashPatternConfig;
/**
* Dash pattern definition.
*/
type DashPatternType = StrokeDashPatternType;
interface IConfig {
/**
* Line path points.
*/
points?: PointType[],
/**
* Line width.
*/
lineWidth?: number,
/**
* Line color.
*/
color?: number,
/**
* Line alpha.
*/
alpha?: number,
/**
* Line type.
*/
lineType?: LineType,
/**
* Point radius for curves.
*/
pointRadius?: number,
/**
* Head shape type.
*/
headShape?: EndPointType | string | number,
/**
* Head size.
*/
headSize?: number,
/**
* Head fill color.
*/
headColor?: number,
/**
* Head fill alpha.
*/
headAlpha?: number,
/**
* Head stroke width.
*/
headStrokeWidth?: number,
/**
* Head stroke color.
*/
headStrokeColor?: number,
/**
* Head stroke alpha.
*/
headStrokeAlpha?: number,
/**
* Tail shape type.
*/
tailShape?: EndPointType | string | number,
/**
* Tail size.
*/
tailSize?: number,
/**
* Tail fill color.
*/
tailColor?: number,
/**
* Tail fill alpha.
*/
tailAlpha?: number,
/**
* Tail stroke width.
*/
tailStrokeWidth?: number,
/**
* Tail stroke color.
*/
tailStrokeColor?: number,
/**
* Tail stroke alpha.
*/
tailStrokeAlpha?: number,
/**
* Dash pattern definition for line stroke.
*/
dashPattern?: DashPatternType,
/**
* Dash offset along the line path.
*/
dashOffset?: number,
}
}
/**
* Line shape with optional head and tail endpoints.
*/
declare class Line extends BaseShapes {
/**
* Create a line shape.
* @param scene - The Scene to which this object belongs.
* @param config - Configuration options.
*/
constructor(
scene: Phaser.Scene,
config?: Line.IConfig
);
/**
* Create a line shape.
* @param scene - The Scene to which this object belongs.
* @param points - Line path points.
* @param lineWidth - Line width.
* @param color - Line color.
* @param alpha - Line alpha.
* @param config - Configuration options.
*/
constructor(
scene: Phaser.Scene,
points?: Line.PointType[],
lineWidth?: number,
color?: number,
alpha?: number,
config?: Line.IConfig
);
/**
* Set line points and type.
* @param points - Line path points.
* @param lineType - Line type.
* @returns This instance.
*/
setLine(
points: Line.PointType[],
lineType?: Line.LineType
): this;
/**
* Set line type.
* @param lineType - Line type.
* @returns This instance.
*/
setLineType(lineType: Line.LineType): this;
/**
* Current points.
*/
readonly points: Line.PointType[];
/**
* Current line type.
*/
readonly lineType: number;
/**
* Set point radius for curves.
* @param radius - Point radius.
* @returns This instance.
*/
setPointRadius(radius: number): this;
/**
* Set head shape.
* @param endPointType - Endpoint shape.
* @returns This instance.
*/
setHeadShape(endPointType?: Line.EndPointType): this;
/**
* Set head size.
* @param size - Head size.
* @returns This instance.
*/
setHeadSize(size?: number): this;
/**
* Set head fill style.
* @param color - Fill color.
* @param alpha - Fill alpha.
* @returns This instance.
*/
setHeadFillStyle(
color?: number,
alpha?: number
): this;
/**
* Set head stroke style.
* @param lineWidth - Stroke width.
* @param color - Stroke color.
* @param alpha - Stroke alpha.
* @returns This instance.
*/
setHeadStrokeStyle(
lineWidth?: number,
color?: number,
alpha?: number
): this;
/**
* Set tail shape.
* @param endPointType - Endpoint shape.
* @returns This instance.
*/
setTailShape(endPointType?: Line.EndPointType): this;
/**
* Set tail size.
* @param size - Tail size.
* @returns This instance.
*/
setTailSize(size?: number): this;
/**
* Set tail fill style.
* @param color - Fill color.
* @param alpha - Fill alpha.
* @returns This instance.
*/
setTailFillStyle(
color?: number,
alpha?: number
): this;
/**
* Set tail stroke style.
* @param lineWidth - Stroke width.
* @param color - Stroke color.
* @param alpha - Stroke alpha.
* @returns This instance.
*/
setTailStrokeStyle(
lineWidth?: number,
color?: number,
alpha?: number
): this;
}
interface Line extends IStrokePathConfigMethods, IStrokePathState {
}