UNPKG

asciitorium

Version:
98 lines (97 loc) 2.65 kB
export interface LegendEntry { name?: string; solid: boolean; showOnMap?: boolean; entity?: string; variant?: string; material: string; } export interface LegendArrayEntry { chars: string[]; name?: string; solid: boolean; showOnMap?: boolean; entity?: string; variant?: string; material: string; } export interface MaterialLayer { layer: 'here' | 'near' | 'middle' | 'far'; position: 'left' | 'center' | 'right'; x?: number; lines: string[]; } export interface SpriteFrame { lines: string[][]; meta: { duration?: number; sound?: string; }; } export interface SpriteDefaults { duration?: number; loop?: boolean; transparent?: string; } export interface FontGlyph { character: string; lines: string[][]; width: number; height: number; } export interface FontAsset { glyphs: Map<string, FontGlyph>; height: number; } export interface Asset { kind: 'map' | 'material' | 'sprite' | 'font'; width: number; height: number; data: MapAsset | MaterialAsset | SpriteAsset | FontAsset; } export interface MapAsset { mapData: string[]; legend: Record<string, LegendEntry>; } export interface MaterialAsset { usage: string; placement?: 'ground' | 'ceiling'; onEnterSound?: string; onExitSound?: string; ambientSound?: string; layers: MaterialLayer[]; } export interface SpriteAsset { frames: SpriteFrame[]; defaults: SpriteDefaults; } export declare class AssetManager { private static mapCache; private static materialCache; private static spriteCache; private static fontCache; static getMap(name: string): Promise<MapAsset>; static getMaterial(name: string): Promise<MaterialAsset>; static getSprite(name: string): Promise<SpriteAsset>; static getFont(name: string): Promise<FontAsset>; private static calculateMapWidth; private static calculateMaterialWidth; private static calculateMaterialHeight; private static calculateSpriteWidth; private static calculateSpriteHeight; private static loadMapAsset; /** * Expands legend format from array format to character map * - Format: { "legend": [ { "chars": [...], ...props } ] } */ private static expandLegendFormat; private static loadMaterialAsset; private static loadSpriteAsset; private static loadFontAsset; private static parseMaterialData; private static parseLayerSection; private static parseSpriteData; private static parseFontData; private static normalizeBlock; private static normalizeFontBlock; }