UNPKG

sc4

Version:

A command line utility for automating SimCity 4 modding tasks & modifying savegames

61 lines (60 loc) 2.34 kB
import { Cohort, Exemplar, type Entry, type ExemplarPropertyKey as Key } from 'sc4/core'; import type { BasePluginIndex } from 'sc4/plugins'; type ExemplarEntry = Entry<Exemplar | Cohort>; export default class LotIndex { fileIndex: BasePluginIndex; lots: LotIndexEntry[]; height: IndexedArray<LotIndexEntry>; constructor(index: BasePluginIndex); add(entry: ExemplarEntry): this; getBuildings(IID: number): ExemplarEntry[]; getBuilding(IID: number): ExemplarEntry; getPropertyValue<K extends Key>(file: Exemplar, key: K): import("../core/exemplar-properties-types.js").Value<K> | undefined; } declare class LotIndexEntry { #private; lot: ExemplarEntry; building: ExemplarEntry; constructor(fileIndex: BasePluginIndex, lot: ExemplarEntry, building: ExemplarEntry); get size(): number[] & { x: number; z: number; }; get buildingSize(): number[] & { x: number; y: number; z: number; }; get height(): number; get growthStage(): number; get zoneTypes(): number[]; get occupantGroups(): number[]; getLotPropertyValue<K extends Key = Key>(key: K): import("../core/exemplar-properties-types.js").Value<K> | undefined; getBuildingPropertyValue<K extends Key = Key>(key: K): import("../core/exemplar-properties-types.js").Value<K> | undefined; } type IndexedArrayOptions<T> = { compare(a: T, b: T): number; entries: T[]; sorted?: boolean; }; type ElementType<T> = T extends (infer U)[] ? U : never; type RawElement<T> = T extends any[] ? ElementType<T> : T; type MaybeArray<T> = T | T[]; type IndexedArrayQuery<T> = Partial<{ [K in keyof T]: MaybeArray<RawElement<T[K]>>; }>; declare class IndexedArray<T> { entries: T[]; compare: (a: T, b: T) => number; constructor(opts: IndexedArrayOptions<T>); get length(): number; at(index: number): T | undefined; clone(entries: T[]): IndexedArray<T>; getRangeIndices(min: Partial<T>, max: Partial<T>): any[]; range(min: Partial<T>, max: Partial<T>): IndexedArray<T>; it(min: T, max: T): Generator<T, void, unknown>; query(query: IndexedArrayQuery<T>): IndexedArray<T>; filter(fn: (element: T, index: number, thisArg?: any) => boolean): IndexedArray<T>; [Symbol.iterator](): Generator<T, void, unknown>; } export {};