phaser3-rex-plugins
Version:
206 lines (187 loc) • 4.54 kB
TypeScript
import EventEmitter from "../../utils/eventemitter/EventEmitter";
export default CharacterCache;
declare namespace CharacterCache {
/**
* Configuration options for creating a CharacterCache.
*/
interface IConfig {
/**
* Texture key.
*/
key: string,
/**
* Cell width.
*/
cellWidth: number,
/**
* Cell height.
*/
cellHeight: number,
/**
* Maximum character count.
*/
maxCharacterCount?: number,
/**
* Enable frequency mode.
*/
freqMode?: boolean,
/**
* Text game object to bind.
*/
textObject?: Phaser.GameObjects.GameObject,
/**
* Text style configuration.
*/
style?: Phaser.GameObjects.TextStyle,
/**
* Initial content string.
*/
content?: string,
/**
* Event emitter instance or false to disable.
*/
eventEmitter?: EventEmitter | false,
}
/**
* Cached character data.
*/
interface CacheData {
/**
* Character string.
*/
character: string,
/**
* Usage frequency.
*/
freq: number,
/**
* Alive flag.
*/
alive: boolean,
/**
* Lock flag.
*/
lock: boolean,
}
}
/**
* Cache for bitmap text characters.
*/
declare class CharacterCache extends EventEmitter {
/**
* Create a CharacterCache.
*
* @param scene - Scene or game instance.
* @param config - Configuration options.
*/
constructor(
scene: Phaser.Scene | Phaser.Game,
config: CharacterCache.IConfig
);
/**
* Texture key.
*/
readonly key: string;
/**
* Cell width.
*/
readonly cellWidth: number;
/**
* Cell height.
*/
readonly cellHeight: number;
/**
* Count of cached characters.
*/
readonly inCacheCount: number;
/**
* Destroy the cache.
*/
destroy(): void;
/**
* Bind a text object.
*
* @param textObject - Text game object.
* @returns This CharacterCache instance.
*/
bindTextObject(
textObject: Phaser.GameObjects.GameObject
): this;
/**
* Override a bitmap text object.
*
* @param bitmapText - Bitmap text object.
* @returns The overridden game object.
*/
overrideBitmapText(
bitmapText: Phaser.GameObjects.GameObject
): Phaser.GameObjects.GameObject;
/**
* Create a BitmapText using this cache.
*
* @param scene - Scene instance.
* @param x - X position.
* @param y - Y position.
* @param text - Initial text.
* @param size - Font size.
* @param align - Alignment.
* @returns The BitmapText instance.
*/
addBitmapText(
scene: Phaser.Scene,
x?: number,
y?: number,
text?: string,
size?: number,
align?: number
): Phaser.GameObjects.BitmapText;
/**
* Create a DynamicBitmapText using this cache.
*
* @param scene - Scene instance.
* @param x - X position.
* @param y - Y position.
* @param text - Initial text.
* @param size - Font size.
* @param align - Alignment.
* @returns The DynamicBitmapText instance.
*/
addDynamicBitmapText(
scene: Phaser.Scene,
x?: number,
y?: number,
text?: string,
size?: number,
align?: number
): Phaser.GameObjects.DynamicBitmapText;
/**
* Load content into the cache.
*
* @param content - Content string.
* @param lock - Whether to lock the characters.
* @returns This CharacterCache instance.
*/
load(
content: string,
lock?: boolean
): this;
/**
* Unlock all cached characters.
*
* @returns This CharacterCache instance.
*/
unlock(): this;
/**
* Get all cached data.
*
* @returns Cached character data list.
*/
getAllData(
): CharacterCache.CacheData[];
/**
* Clear the cache.
*
* @returns This CharacterCache instance.
*/
clear(): this;
}