phaser4-rex-plugins
Version:
311 lines (253 loc) • 7.78 kB
TypeScript
// import * as Phaser from 'phaser';
import CanvasGameObjectBase from '../../../utils/types/CanvasGameObjectBase';
import TextStyleBase from '../../textbase/textstyle/TextStyle';
export default Text;
declare namespace Text {
type MetricsType = {
ascent: number,
descent: number,
fontSize: number
};
type FontConfigType = string |
{
fontFamily?: string,
fontSize?: string,
fontStyle?: string
};
type TextMarginsType = {
left?: number
};
interface ImageData {
key: string, frame?: string,
width?: number, height?: number,
y?: number,
left?: number, right?: number,
}
interface TextStyle extends TextStyleBase {
images?: ImageData[],
interactive?: boolean,
urlCursor?: string,
}
namespace Events {
type AnyAreaCallbackType = (
key: string,
pointer: Phaser.Input.Pointer,
localX: number,
localY: number
) => void;
type AreaCallbackType = (
pointer: Phaser.Input.Pointer,
localX: number,
localY: number
) => void;
}
}
declare class Text extends CanvasGameObjectBase {
constructor(
scene: Phaser.Scene,
x?: number, y?: number,
content?: string,
style?: Text.TextStyle
);
canvas: HTMLCanvasElement;
context: CanvasRenderingContext2D;
setRTL(rtl?: boolean): this;
text: string;
setText(text: string | number | string[]): this;
appendText(
text: string | number | string[],
addCR?: boolean
): this;
getPlainText(
start?: number, end?: number
): string;
getPlainText(
text?: string | undefined,
start?: number, end?: number
): string;
getWrappedText(
start?: number, end?: number
): string[];
getWrappedText(
text?: string | undefined,
start?: number, end?: number
): string[];
getText(
start?: number, end?: number
): string;
getText(
text?: string | undefined,
start?: number, end?: number
): string;
getSubString(
start?: number, end?: number
): string;
getSubString(
text?: string | undefined,
start?: number, end?: number
): string;
updateText(runWrap?: boolean): this;
setWrapMode(
mode: 0 | 1 | 2 | 3 | 'none' | 'word' | 'char' | 'character' | 'mix'
): this;
setWrapWidth(width: number): this;
setWordWrapWidth(width: number): this;
setFont(font: Text.FontConfigType): this;
setFontFamily(family: string): this;
setFontSize(size: number | string): this;
setFontStyle(style: string): this;
setStyle(style: Text.TextStyle): this;
setTestString(string: string): this;
setColor(
color?: null | string | number
): this;
setFill(
color?: null | string | number
): this;
setStroke(
color?: null | string | number,
thickness?: number
): this;
setUnderline(
color?: null | string | number,
thickness?: number,
ofset?: number
): this;
setUnderlineColor(
color?: null | string | number
): this;
setUnderlineThinkness(thickness: number): this;
setUnderlineOffset(ofset: number): this;
setStrikethrough(
color?: null | string | number,
thickness?: number,
ofset?: number
): this;
setStrikethroughColor(
color?: null | string | number
): this;
setStrikethroughThinkness(thickness: number): this;
setStrikethroughOffset(ofset: number): this;
setBackgroundColor(
color?: null | string | number,
color2?: null | string | number,
isHorizontalGradient?: boolean
): this;
setBackgroundStrokeColor(
color?: null | string | number,
lineWidth?: number
): this;
setBackgroundCornerRadius(
radius?: number,
iteration?: number
): this;
setShadow(
x?: number, y?: number,
color?: null | string | number,
blur?: number,
shadowStroke?: boolean,
shadowFill?: boolean
): this;
setShadowOffset(x: number, y: number): this;
setShadowColor(color?: null | string | number): this;
setShadowBlur(blur: number): this;
setShadowStroke(enabled?: boolean): this;
setShadowFill(enabled?: boolean): this;
setAlign(align?: 'left' | 'center' | 'right'): this;
setHAlign(align?: 'left' | 'center' | 'right'): this;
setVAlign(align?: 'top' | 'center' | 'bottom'): this;
addImage(
imgKey: string,
config?: {
key: string,
frame?: string,
width?: number,
height?: number,
y?: number,
left?: number,
right?: number,
}
): this;
drawAreaBounds(
graphics: Phaser.GameObjects.Graphics,
color?: number
): this;
setLineSpacing(value: number): this;
lineSpacing: number;
setLetterSpacing(value: number): this;
letterSpacing: number;
setXOffset(value: number): this;
setPadding(
left?: number | {
left?: number, right?: number, top?: number, bottom?: number
},
top?: number,
right?: number,
bottom?: number,
): this;
setMaxLines(max?: number): this;
measureTextMargins(
testString: string,
out?: Text.TextMarginsType
): Text.TextMarginsType;
setResolution(value: number): this;
setFixedSize(width?: number, height?: number): this;
setSize(width?: number, height?: number): this;
resize(width?: number, height?: number): this;
getTextMetrics(): Text.MetricsType;
setTextMetrics(
metrics: Text.MetricsType,
font: Text.FontConfigType
): this;
generateTexture(
key: string,
x?: number, y?: number,
width?: number, height?: number
): this;
setUrlTagCursor(cursor?: string): this;
urlTagCursor: string;
getHitArea(
worldX: number, worldY: number,
camera: Phaser.Cameras.Scene2D.Camera
): string;
style: {
color: string | null,
stroke: string | null,
strokeThickness: number,
underlineColor: string | null,
underlineThickness: number,
underlineOffset: number,
strikethroughColor: string | null,
strikethroughThickness: number,
strikethroughOffset: number,
backgroundColor: string | null,
backgroundColor2: string | null,
backgroundHorizontalGradient: boolean,
backgroundStrokeColor: string | null,
backgroundStrokeLineWidth: number,
backgroundCornerRadius: number,
backgroundCornerIteration: number | undefined,
shadowColor: string | null,
shadowOffsetX: number,
shadowOffsetY: number,
shadowBlur: number,
shadowStroke: boolean,
shadowFill: boolean,
lineSpacing: number,
maxLines: number,
resolution: number,
fixedWidth: number,
fixedHeight: number,
halign: string,
valign: string,
wrapWidth: number | null,
wrapMode: number,
lineHeight: number,
};
padding: {
left: number,
right: number,
top: number,
bottom: number
};
}