unreal.js
Version:
A pak reader for games like VALORANT & Fortnite written in Node.JS
228 lines (227 loc) • 5.94 kB
TypeScript
/// <reference types="node" />
/// <reference types="ref-napi" />
import { FArchive } from "../reader/FArchive";
import { FIoDirectoryIndexHandle } from "./IoDispatcher";
import { Lazy } from "../../util/Lazy";
/**
* FIoDirectoryIndexEntry
*/
export declare class FIoDirectoryIndexEntry {
/**
* name
* @type {number}
* @public
*/
name: number;
/**
* firstChildEntry
* @type {number}
* @public
*/
firstChildEntry: number;
/**
* nextSiblingEntry
* @type {number}
* @public
*/
nextSiblingEntry: number;
/**
* firstFileEntry
* @type {number}
* @public
*/
firstFileEntry: number;
/**
* Creates an instance using an UE4 Reader
* @param {FArchive} Ar UE4 Reader to use
* @constructor
* @public
*/
constructor(Ar: FArchive);
}
/**
* FIoFileIndexEntry
*/
export declare class FIoFileIndexEntry {
/**
* name
* @type {number}
* @public
*/
name: number;
/**
* nextFileEntry
* @type {number}
* @public
*/
nextFileEntry: number;
/**
* userData
* @type {number}
* @public
*/
userData: number;
/**
* Creates an instance using an UE4 Reader
* @param {FArchive} Ar UE4 Reader to use
* @constructor
* @public
*/
constructor(Ar: FArchive);
}
/**
* FIoDirectoryIndexResource
*/
export declare class FIoDirectoryIndexResource {
/**
* mountPoint
* @type {string}
* @public
*/
mountPoint: string;
/**
* directoryEntries
* @type {Array<FIoDirectoryIndexEntry>}
* @public
*/
directoryEntries: FIoDirectoryIndexEntry[];
/**
* fileEntries
* @type {Array<FIoFileIndexEntry>}
* @public
*/
fileEntries: FIoFileIndexEntry[];
/**
* stringTable
* @type {Array<string>}
* @public
*/
stringTable: string[];
/**
* Creates an instance using an UE4 Reader
* @param {FArchive} Ar UE4 Reader to use
* @constructor
* @public
*/
constructor(Ar: FArchive);
}
/**
* FDirectoryIndexVisitorFunction
*/
declare type FDirectoryIndexVisitorFunction = (filename: string, tocEntryIndex: number) => boolean;
/**
* FIoDirectoryIndexReader
*/
export declare class FIoDirectoryIndexReader {
/**
* Buffer to read
* @type {Buffer}
* @public
*/
buffer: Buffer;
/**
* Decryption key to use
* @type {Buffer}
* @public
*/
decryptionKey: Buffer;
/**
* Creates an instance using buffers
* @param {Buffer} buffer Buffer to read
* @param {Buffer} decryptionKey Decryption key to use
* @constructor
* @public
*/
constructor(buffer: Buffer, decryptionKey: Buffer);
/**
* directoryIndex
* @type {Lazy<FIoDirectoryIndexResource>}
* @public
*/
directoryIndex: Lazy<FIoDirectoryIndexResource>;
/**
* mountPoint
* @type {string}
* @public
*/
get mountPoint(): string;
/**
* Gets child directory
* @param {FIoDirectoryIndexHandle} directory Directory to look in
* @returns {FIoDirectoryIndexHandle} Child directory
* @public
*/
getChildDirectory(directory: FIoDirectoryIndexHandle): FIoDirectoryIndexHandle;
/**
* Gets next directory
* @param {FIoDirectoryIndexHandle} directory Directory to look in
* @returns {FIoDirectoryIndexHandle} Next directory
* @public
*/
getNextDirectory(directory: FIoDirectoryIndexHandle): FIoDirectoryIndexHandle;
/**
* Gets file
* @param {FIoDirectoryIndexHandle} directory Directory to look in
* @returns {FIoDirectoryIndexHandle} File
* @public
*/
getFile(directory: FIoDirectoryIndexHandle): FIoDirectoryIndexHandle;
/**
* Gets next file
* @param {FIoDirectoryIndexHandle} directory Directory to look in
* @returns {FIoDirectoryIndexHandle} File
* @public
*/
getNextFile(directory: FIoDirectoryIndexHandle): FIoDirectoryIndexHandle;
/**
* Gets directory name
* @param {FIoDirectoryIndexHandle} directory Directory to get name from
* @returns {string} Directory name
* @public
*/
getDirectoryName(directory: FIoDirectoryIndexHandle): string;
/**
* Gets file name
* @param {FIoDirectoryIndexHandle} file File to get name from
* @returns {string} File name
* @public
*/
getFileName(file: FIoDirectoryIndexHandle): string;
/**
* Gets file data
* @param {FIoDirectoryIndexHandle} file File to get data from
* @returns {number} Data
* @public
*/
getFileData(file: FIoDirectoryIndexHandle): number;
/**
* Iterates through directory index
* @param {FIoDirectoryIndexHandle} directoryIndexHandle Directory to iterate through
* @param {string} path Path to directory
* @param {FDirectoryIndexVisitorFunction} visit Method to call
* @returns {boolean}
* @public
*/
iterateDirectoryIndex(directoryIndexHandle: FIoDirectoryIndexHandle, path: string, visit: FDirectoryIndexVisitorFunction): boolean;
/**
* Gets directory entry
* @param {FIoDirectoryIndexHandle} directory Directory to look in
* @returns {FIoDirectoryIndexEntry} Entry
* @private
*/
private getDirectoryEntry;
/**
* Gets file entry
* @param {FIoDirectoryIndexHandle} file File to look in
* @returns {FIoFileIndexEntry} Entry
* @private
*/
private getFileEntry;
/**
* Whether valid index
* @returns {boolean} Result
* @private
*/
private isValidIndex;
}
export {};