// import * as Phaser from 'phaser'; import PolygnBase from '../utils/polygonbase/PolygnBase'; export default RoundRectangle; declare namespace RoundRectangle { /** * Corner radius with convex flag. */ type CornerRadiusType = { /** * Radius x. */ x: number, /** * Radius y. */ y: number, /** * True if convex. */ convex: boolean }; /** * Radius value or per-axis config. */ type RadiusType = number | { x?: number, y?: number }; interface IRadiusConfig { /** * Top-left radius. */ tl?: RadiusType, /** * Top-right radius. */ tr?: RadiusType, /** * Bottom-left radius. */ bl?: RadiusType, /** * Bottom-right radius. */ br?: RadiusType, /** * Uniform radius x. */ x?: number, /** * Uniform radius y. */ y?: number, } interface IConfig { /** * Initial x position. */ x?: number, /** * Initial y position. */ y?: number, /** * Initial width. */ width?: number, /** * Initial height. */ height?: number, /** * Radius configuration. */ radius?: number | IRadiusConfig | ({ /** * Radius configuration. */ radius?: (number | IRadiusConfig), /** * Corner iteration. */ iteration?: number }), /** * Fill color. */ color?: number, /** * Fill alpha. */ alpha?: number, /** * Stroke color. */ strokeColor?: number, /** * Stroke alpha. */ strokeAlpha?: number, /** * Stroke width. */ strokeWidth?: number, /** * Shape type. */ shape?: 0 | 'rectangle' | 1 | 'circle', /** * Dash pattern definition. */ dashPattern?: PolygnBase.DashPatternType, /** * Dash offset along the path. */ dashOffset?: number, } } /** * Rounded rectangle shape game object. */ declare class RoundRectangle extends PolygnBase { /** * Create a rounded rectangle. * @param scene - The Scene to which this object belongs. * @param x - The x position. * @param y - The y position. * @param width - The width. * @param height - The height. * @param radiusConfig - Radius configuration. * @param fillColor - Fill color. * @param fillAlpha - Fill alpha. */ constructor( scene: Phaser.Scene, x?: number, y?: number, width?: number, height?: number, radiusConfig?: number | RoundRectangle.IRadiusConfig | ({ radius?: (number | RoundRectangle.IRadiusConfig), iteration?: number }), fillColor?: number, fillAlpha?: number ); /** * Create a rounded rectangle from config. * @param scene - The Scene to which this object belongs. * @param config - Configuration options. */ constructor( scene: Phaser.Scene, config?: RoundRectangle.IConfig ) /** * Resize the shape. * @param width - New width. * @param height - New height. * @returns This instance. */ resize(width: number, height: number): this; /** * Set corner iteration. * @param iteration - Iteration value. * @returns This instance. */ setIteration(iteration: number): this; /** * Corner iteration value. */ iteration: number; /** * Set radius for all corners. * @param value - Radius config. * @returns This instance. */ setRadius( value: number | RoundRectangle.IRadiusConfig ): this; /** * Radius value. */ radius: number; /** * Set top-left radius. * @param value - Radius config. * @returns This instance. */ setRadiusTL( value: number | RoundRectangle.IRadiusConfig ): this; /** * Top-left radius. */ radiusTL: number; /** * Set top-right radius. * @param value - Radius config. * @returns This instance. */ setRadiusTR( value: number | RoundRectangle.IRadiusConfig ): this; /** * Top-right radius. */ radiusTR: number; /** * Set bottom-left radius. * @param value - Radius config. * @returns This instance. */ setRadiusBL( value: number | RoundRectangle.IRadiusConfig ): this; /** * Bottom-left radius. */ radiusBL: number; /** * Set bottom-right radius. * @param value - Radius config. * @returns This instance. */ setRadiusBR( value: number | RoundRectangle.IRadiusConfig ): this; /** * Bottom-right radius. */ radiusBR: number; /** * Corner radius data. */ readonly cornerRadius: { /** * Top-left corner radius. */ tl: RoundRectangle.CornerRadiusType, /** * Top-right corner radius. */ tr: RoundRectangle.CornerRadiusType, /** * Bottom-left corner radius. */ bl: RoundRectangle.CornerRadiusType, /** * Bottom-right corner radius. */ br: RoundRectangle.CornerRadiusType, }; }