@runejs/filestore
Version:
Tools for managing the RuneJS filestore.
57 lines (56 loc) • 1.57 kB
TypeScript
import type { Filestore } from '../filestore';
export declare const maxRegions = 32768;
export interface MapFile {
fileId: number;
regionX: number;
regionY: number;
tileHeights: number[][][];
tileSettings: Uint8Array[][];
tileOverlayIds: Uint8Array[][];
tileOverlayPaths: Uint8Array[][];
tileOverlayOrientations: Uint8Array[][];
tileUnderlayIds: Uint8Array[][];
}
export interface LandscapeObject {
objectId: number;
x: number;
y: number;
level: number;
type: number;
orientation: number;
}
export interface LandscapeFile {
fileId: number;
regionX: number;
regionY: number;
landscapeObjects: LandscapeObject[];
}
export interface Region {
regionX: number;
regionY: number;
mapFile: MapFile;
landscapeFile: LandscapeFile | null;
}
export interface XteaDefinition {
archive: number;
group: number;
name_hash: number;
name: string;
mapsquare: number;
key: [number, number, number, number];
}
export type TileArray = Uint8Array[][];
export declare class RegionStore {
private fileStore;
readonly xteas: {
[key: number]: XteaDefinition;
};
private readonly regionIndex;
constructor(fileStore: Filestore, xteas?: {
[p: number]: XteaDefinition;
});
getMapKeys(regionX: number, regionY: number): number[];
getRegion(regionX: number, regionY: number): Region | null;
getLandscapeFile(regionX: number, regionY: number): LandscapeFile | null;
getMapFile(regionX: number, regionY: number): MapFile | null;
}