sc4
Version:
A command line utility for automating SimCity 4 modding tasks & modifying savegames
42 lines (41 loc) • 1.32 kB
TypeScript
import Pointer from './pointer.js';
import { kFileType } from './symbols.js';
import type { SavegameObject } from './types.js';
import type Stream from './stream.js';
type CitySize = 1024 | 2048 | 4096;
type TractSize = 16 | 32 | 64;
type TileSize = 64 | 128 | 256;
export default class ItemIndex {
static [kFileType]: 160405069;
crc: number;
mem: number;
major: number;
width: CitySize;
depth: CitySize;
tractWidth: TractSize;
tractDepth: TractSize;
tileWidth: TileSize;
tileDepth: TileSize;
elements: Cell[][];
get length(): number;
set length(length: number);
[Symbol.iterator](): Generator<Cell[], void, unknown>;
constructor(x?: TractSize, z?: TractSize);
get(x: number, z: number): Cell | undefined;
fill(): this;
rebuild(type: number, file: SavegameObject[]): this;
filter(...params: Parameters<Cell['filter']>): this;
ensure(): this;
clear(): void;
add(item: SavegameObject, type?: number): void;
parse(rs: Stream): this;
toBuffer(): Uint8Array<ArrayBufferLike>;
flat(): Generator<Cell, void, unknown>;
}
declare class Cell extends Array<Pointer> {
x: number;
z: number;
constructor(x?: number, z?: number);
filter(fn: (ptr: Pointer, index: number, cell: Cell) => boolean): this;
}
export {};