@rhyster/wow-casc-dbc
Version:
Fetch World of Warcraft data files from CASC and parse DBC/DB2 files.
109 lines • 3.86 kB
TypeScript
import type ADBReader from './adb.ts';
import type { MissingKeyBlock } from './blte.ts';
interface WDCReaderOptions {
blocks?: MissingKeyBlock[];
adb?: ADBReader;
detectIsZeroedByData?: boolean;
}
interface FieldStructure {
size: number;
position: number;
}
interface FieldStorageInfoCompressionNone {
fieldOffsetBits: number;
fieldSizeBits: number;
additionalDataSize: number;
storageType: 'none';
}
interface FieldStorageInfoCompressionBitpacked {
fieldOffsetBits: number;
fieldSizeBits: number;
additionalDataSize: number;
storageType: 'bitpacked';
bitpackingOffsetBits: number;
bitpackingSizeBits: number;
flags: number;
}
interface FieldStorageInfoCompressionCommonData {
fieldOffsetBits: number;
fieldSizeBits: number;
additionalDataSize: number;
storageType: 'commonData';
defaultValue: number;
}
interface FieldStorageInfoCompressionBitpackedIndexed {
fieldOffsetBits: number;
fieldSizeBits: number;
additionalDataSize: number;
storageType: 'bitpackedIndexed';
bitpackingOffsetBits: number;
bitpackingSizeBits: number;
}
interface FieldStorageInfoCompressionBitpackedIndexedArray {
fieldOffsetBits: number;
fieldSizeBits: number;
additionalDataSize: number;
storageType: 'bitpackedIndexedArray';
bitpackingOffsetBits: number;
bitpackingSizeBits: number;
arrayCount: number;
}
interface FieldStorageInfoCompressionBitpackedSigned {
fieldOffsetBits: number;
fieldSizeBits: number;
additionalDataSize: number;
storageType: 'bitpackedSigned';
bitpackingOffsetBits: number;
bitpackingSizeBits: number;
flags: number;
}
type FieldStorageInfo = FieldStorageInfoCompressionNone | FieldStorageInfoCompressionBitpacked | FieldStorageInfoCompressionCommonData | FieldStorageInfoCompressionBitpackedIndexed | FieldStorageInfoCompressionBitpackedIndexedArray | FieldStorageInfoCompressionBitpackedSigned;
interface ParsedFieldNone {
type: 'none';
data: number | bigint;
string?: string;
}
interface ParsedFieldCommonData {
type: 'commonData';
data: number;
}
interface ParsedFieldBitpacked {
type: 'bitpacked';
data: number;
}
interface ParsedFieldBitpackedArray {
type: 'bitpackedArray';
data: number[];
}
type ParsedField = ParsedFieldNone | ParsedFieldCommonData | ParsedFieldBitpacked | ParsedFieldBitpackedArray;
interface SparseRow {
type: 'sparse';
data: Buffer;
}
interface HotfixModify {
type: 'modify';
data: Buffer;
}
interface HotfixDelete {
type: 'delete';
}
type Hotfix = HotfixModify | HotfixDelete;
export default class WDCReader {
readonly tableHash: number;
readonly layoutHash: number;
readonly locale: number;
readonly isNormal: boolean;
readonly hasRelationshipData: boolean;
readonly fields: FieldStructure[];
readonly fieldsInfo: FieldStorageInfo[];
readonly rows: Map<number, SparseRow | ParsedField[]>;
readonly relationships: Map<number, number>;
readonly copyTable: Map<number, number>;
readonly hotfixes: Map<number, Hotfix>;
constructor(buffer: Buffer, blocksOrOption?: MissingKeyBlock[] | WDCReaderOptions, adbInput?: ADBReader);
getAllIDs(): number[];
getRowData(id: number): ParsedField[] | SparseRow | undefined;
getRowRelationship(id: number): number | undefined;
}
export type { FieldStructure, FieldStorageInfo, FieldStorageInfoCompressionNone, FieldStorageInfoCompressionBitpacked, FieldStorageInfoCompressionCommonData, FieldStorageInfoCompressionBitpackedIndexed, FieldStorageInfoCompressionBitpackedIndexedArray, FieldStorageInfoCompressionBitpackedSigned, ParsedField, ParsedFieldNone, ParsedFieldCommonData, ParsedFieldBitpacked, ParsedFieldBitpackedArray, SparseRow, Hotfix, HotfixModify, HotfixDelete, };
//# sourceMappingURL=wdc.d.ts.map