sc4
Version:
A command line utility for automating SimCity 4 modding tasks & modifying savegames
65 lines (64 loc) • 1.99 kB
TypeScript
import type { byte, double, dword, float, qword, word } from 'sc4/types';
import type Stream from './stream.js';
import type WriteBuffer from './write-buffer.js';
type UnknownType = number | boolean | bigint | Uint8Array | UnknownType[];
export default class Unknown extends Array<UnknownType> {
bool(value: boolean): this;
byte(value: byte): this;
word(value: word): this;
dword(value?: dword): this;
qword(value: qword): this;
float(value: float): this;
double(value: double): this;
bytes(value: number[] | Uint8Array): this;
array(value?: UnknownType[]): this;
repeat(n: number, fn: (u: Unknown) => any): this;
reader(rs: Stream): UnknownReader;
writer(ws: WriteBuffer): UnknownWriter;
generator(): (() => unknown) & {
bool: () => boolean;
byte: () => byte;
word: () => word;
dword: () => dword;
qword: () => qword;
float: () => float;
double: () => double;
bytes: () => Uint8Array;
array: () => Array<Unknown>;
assert: () => void;
};
clear(): this;
}
declare class UnknownReader {
unknown: Unknown;
rs: Stream;
constructor(unknown: Unknown, rs: Stream);
bool(): void;
byte(): void;
word(): void;
dword(_expected?: number): void;
qword(): void;
float(): void;
double(): void;
bytes(length?: number): void;
array(fn: (this: this, u: this, i?: number) => any): void;
repeat(n: number, fn: (unknown: this) => void): void;
}
declare class UnknownWriter {
unknown: Unknown;
ws: WriteBuffer;
generator: ReturnType<Unknown['generator']>;
constructor(unknown: Unknown, ws: WriteBuffer);
bool(): void;
byte(): void;
word(): void;
dword(): void;
qword(): void;
float(): void;
double(): void;
bytes(): void;
assert(): void;
array(fn: (this: this, u: this, i?: number) => any): void;
repeat(n: number, fn: (unknown: this) => void): void;
}
export {};