UNPKG

@runejs/filestore

Version:

Tools for managing the RuneJS filestore.

171 lines (170 loc) 4.84 kB
import { ByteBuffer } from '@runejs/common'; import type { FileIndex } from '../file-index'; import type { Filestore } from '../filestore'; import type { FileData } from '../file-data'; import type { Archive } from '../archive'; export declare abstract class WidgetBase { id: number; parentId: number; type: number; format: number; originalX: number; originalY: number; x: number; y: number; width: number; height: number; menuType: number; contentType: number; opacity: number; hidden: boolean; targetVerb: string; spellName: string; clickMask: number; hintText: string; hoveredSiblingId: number; alternateOperators: number[]; alternateRhs: number[]; cs1: number[][]; hasListeners: boolean; /** * Writes this unpacked widget file to the disk under `./unpacked/widgets/{widgetId}_widget.json` */ writeToDisk(): Promise<void>; } export declare class ParentWidget extends WidgetBase { children: WidgetBase[]; constructor(id: number); } export declare class ContainerWidget extends WidgetBase { type: number; scrollHeight: number; scrollPosition: number; scrollWidth: number; children?: WidgetBase[]; } export declare class TextWidget extends WidgetBase { type: number; textAlignmentX: number; textAlignmentY: number; lineHeight: number; fontId: number; textShadowed: boolean; textColor: number; } export declare class InteractableItemWidget extends WidgetBase { type: number; items: number[]; itemAmounts: number[]; itemSwapable: boolean; isInventory: boolean; itemUsable: boolean; itemDeletesDraged: boolean; itemSpritePadsX: number; itemSpritePadsY: number; imageX: number[]; imageY: number[]; images: number[]; options: string[]; } export declare class RectangleWidget extends WidgetBase { type: number; filled: boolean; textColor: number; alternateTextColor: number; hoveredTextColor: number; alternateHoveredTextColor: number; } export declare class LinkWidget extends WidgetBase { type: number; textAlignmentX: number; textAlignmentY: number; lineHeight: number; fontId: number; textShadowed: boolean; text: string; alternateText: string; textColor: number; alternateTextColor: number; hoveredTextColor: number; alternateHoveredTextColor: number; } export declare class SpriteWidget extends WidgetBase { type: number; spriteId: number; alternateSpriteId: number; textureId: number; tiled: boolean; } export declare class ModelWidget extends WidgetBase { type: number; modelType: number; modelId: number; alternateModelType: number; alternateModelId: number; animation: number; alternateAnimation: number; modelZoom: number; rotationX: number; rotationY: number; rotationZ: number; offsetX: number; offsetY: number; orthogonal: boolean; } export declare class StaticItemWidget extends WidgetBase { type: number; items: number[]; itemAmounts: number[]; isInventory: boolean; itemSpritePadsX: number; itemSpritePadsY: number; options: string[]; textAlignmentX: number; fontId: number; textShadowed: boolean; textColor: number; } export declare class TooltipWidget extends WidgetBase { type: number; text: string; } export declare class LineWidget extends WidgetBase { type: number; lineWidth: number; textColor: number; } /** * Controls game interface widget file format and storage. */ export declare class WidgetStore { private fileStore; /** * The main file index of the widget store. */ readonly widgetFileIndex: FileIndex; constructor(fileStore: Filestore); /** * Writes all unpacked widget files to the disk under `./unpacked/widgets/` */ writeToDisk(): Promise<void>; /** * Decodes the specified widget file. * @param id The numeric ID of the widget file to decode. */ decodeWidget(id: number): WidgetBase; /** * Decodes the specified widget file, first determining if it is in the new or older widget format. * @param id The numeric ID of the widget file to decode. * @param widgetFile The file data of the widget file to decode. */ decodeWidgetFile(id: number, widgetFile: FileData | Archive): WidgetBase; /** * Decodes all widget files within the filestore. * @returns The list of decoded WidgetBase objects from the widget store. */ decodeWidgetStore(): WidgetBase[]; createWidget(widgetType: number): WidgetBase; decodeWidgetFormat2(widgetId: number, inputBuffer: ByteBuffer): WidgetBase; decodeWidgetFormat1(widgetId: number, inputBuffer: ByteBuffer): WidgetBase; }