@hiddentao/clockwork-engine
Version:
A TypeScript/PIXI.js game engine for deterministic, replayable games with built-in rendering
50 lines • 1.91 kB
TypeScript
import type { Loader } from "../Loader";
import type { RenderingLayer, TextureId } from "../platform";
/**
* Spritesheet wrapper that provides high-level API for working with spritesheets.
* Wraps the platform RenderingLayer's low-level spritesheet methods.
*
* Example usage:
* ```typescript
* const sheet = await Spritesheet.load(
* loader,
* rendering,
* 'player.png',
* 'player.json' // optional, will try imageFile + '.json' if omitted
* )
*
* const idleFrame = sheet.getTexture('player_idle_0')
* const walkFrames = sheet.getAnimationFrames('player_walk_')
* ```
*/
export declare class Spritesheet {
private readonly spritesheetId;
private readonly rendering;
private constructor();
/**
* Load a spritesheet from image and JSON data.
*
* @param loader - Loader instance for fetching asset data
* @param rendering - RenderingLayer for loading spritesheet
* @param imageFile - Path to spritesheet image file
* @param jsonFile - Optional path to JSON metadata. If omitted, uses imageFile + '.json'
* @returns Promise resolving to Spritesheet instance
*/
static load(loader: Loader, rendering: RenderingLayer, imageFile: string, jsonFile?: string): Promise<Spritesheet>;
/**
* Get a texture by frame name.
*
* @param name - Frame name from the spritesheet JSON
* @returns TextureId if found, undefined otherwise
*/
getTexture(name: string): TextureId | undefined;
/**
* Get all texture frames matching a prefix (useful for animations).
* Frames are returned in alphabetical order by frame name.
*
* @param prefix - Frame name prefix (e.g., 'player_walk_' to match 'player_walk_0', 'player_walk_1', etc.)
* @returns Array of TextureIds matching the prefix
*/
getAnimationFrames(prefix: string): TextureId[];
}
//# sourceMappingURL=Spritesheet.d.ts.map