@runejs/filestore
Version:
Tools for managing the RuneJS filestore.
74 lines (73 loc) • 2.11 kB
TypeScript
import { PNG } from 'pngjs';
import { type Filestore } from '../filestore';
import type { FileData } from '../file-data';
export declare function toRgb(inputNum: number): number[];
/**
* A single Sprite within a SpritePack.
*/
export declare class Sprite {
spriteId: number;
maxWidth: number;
maxHeight: number;
offsetX: number;
offsetY: number;
width: number;
height: number;
pixelIdx: number[];
palette: number[];
pixels: number[];
constructor(spriteId: number, width: number, height: number);
resizeToLibSize(): void;
/**
* First converts the Sprite into a base64 PNG image.
*/
toBase64(): Promise<string>;
/**
* Converts the Sprite into a PNG image and returns the resulting PNG object.
*/
toPng(): PNG;
/**
* Converts the Sprite's pixels into a Uint8ClampedArray.
*/
getPixels(): Uint8ClampedArray;
}
/**
* A package of one or many Sprite objects.
*/
export declare class SpritePack {
readonly fileData: FileData;
private _sprites;
constructor(fileData: FileData);
writeToDisk(): Promise<void>;
/**
* Decodes the sprite pack file.
*/
decode(): SpritePack;
get sprites(): Sprite[];
get packId(): number;
}
/**
* Controls SpritePack file storage.
*/
export declare class SpriteStore {
private fileStore;
constructor(fileStore: Filestore);
writeToDisk(): Promise<void>;
/**
* Decodes the specified sprite pack.
* @param fileName The name of the sprite pack file.
* @returns The decoded SpritePack object, or null if the file is not found.
*/
getSpritePack(fileName: string): SpritePack | null;
/**
* Decodes the specified sprite pack.
* @param id The ID of the sprite pack file.
* @returns The decoded SpritePack object, or null if the file is not found.
*/
getSpritePack(id: number): SpritePack | null;
/**
* Decodes all sprite packs within the filestore.
* @returns The list of decoded SpritePack objects from the sprite store.
*/
decodeSpriteStore(): SpritePack[];
}