UNPKG

grow-items

Version:

A standalone items.dat parser for Growtopia

173 lines (164 loc) 7.42 kB
/** A {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map | Map} with some Array-like additions. */ declare class Collection<K, V> extends Map<K, V> { /** If this collection is empty. */ get empty(): boolean; /** See: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array#every } */ every<T extends V, ThisArg = Collection<K, V>>(predicate: (value: V, index: number, array: Array<V>) => value is T, thisArg?: ThisArg): this is Array<T>; every<ThisArg = Collection<K, V>>(predicate: (value: V, index: number, array: Array<V>) => unknown, thisArg?: ThisArg): boolean; /** See: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array#filter } */ filter<S extends V, ThisArg = Collection<K, V>>(predicate: (this: ThisArg, value: V, index: number, array: Array<V>) => value is S, thisArg?: ThisArg): Array<S>; filter<ThisArg = Collection<K, V>>(predicate: (this: ThisArg, value: V, index: number, array: Array<V>) => unknown, thisArg?: ThisArg): Array<V>; /** See: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array#find } */ find<S extends V, ThisArg = Collection<K, V>>(predicate: (this: ThisArg, value: V, index: number, obj: Array<V>) => value is S, thisArg?: ThisArg): S | undefined; find<ThisArg = Collection<K, V>>(predicate: (this: ThisArg, value: V, index: number, obj: Array<V>) => unknown, thisArg?: ThisArg): V | undefined; /** See: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array#findIndex } */ findIndex(predicate: (value: V, index: number, obj: Array<V>) => unknown, thisArg?: unknown): number; /** * Get the first element, or first X elements if a number is provided. * @param amount The amount of elements to get. */ first(): V | undefined; first(amount: number): Array<V>; /** * Get the last element, or last X elements if a number is provided. * @param amount The amount of elements to get. */ last(): V | undefined; last(amount: number): Array<V>; /** See: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array#map } */ map<T>(predicate: (value: V, index: number, obj: Array<V>) => T, thisArg?: unknown): Array<T>; /** * Pick a random element from the collection, or undefined if the collection is empty. */ random(): V | undefined; /** See: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array#reduce } */ reduce(predicate: (previousValue: V, currentValue: V, currentIndex: number, array: Array<V>) => V): V; reduce(predicate: (previousValue: V, currentValue: V, currentIndex: number, array: Array<V>) => V, initialValue: V): V; reduce<T>(predicate: (previousValue: T, currentValue: V, currentIndex: number, array: Array<V>) => T, initialValue: T): T; /** See: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight | Array#reduceRight } */ reduceRight(predicate: (previousValue: V, currentValue: V, currentIndex: number, array: Array<V>) => V): V; reduceRight(predicate: (previousValue: V, currentValue: V, currentIndex: number, array: Array<V>) => V, initialValue: V): V; reduceRight<T>(predicate: (previousValue: T, currentValue: V, currentIndex: number, array: Array<V>) => T, initialValue: T): T; /** See: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array#some } */ some<ThisArg = Collection<K, V>>(predicate: (value: V, index: number, array: Array<V>) => unknown, thisArg?: ThisArg): boolean; /** Get the values of this collection as an array. */ toArray(): Array<V>; } interface StringOptions { id?: number; encoded?: boolean; } interface ItemDefinition { [key: string]: any; id?: number; flags?: number; type?: number; materialType?: number; name?: string; texture?: string; textureHash?: number; visualEffectType?: number; cookingTime?: number; textureX?: number; textureY?: number; storageType?: number; isStripeyWallpaper?: number; collisionType?: number; breakHits?: number; resetStateAfter?: number; bodyPartType?: number; blockType?: number; growTime?: number; rarity?: number; maxAmount?: number; extraFile?: string; extraFileHash?: number; audioVolume?: number; petName?: string; petPrefix?: string; petSuffix?: string; petAbility?: string; seedBase?: number; seedOverlay?: number; treeBase?: number; treeLeaves?: number; seedColor?: number; seedOverlayColor?: number; isMultiFace?: number; extraOptions?: string; texture2?: string; extraOptions2?: string; punchOptions?: string; extraBytes?: number[]; tileRange?: number; vaultCapacity?: number; ingredient?: number; fxFlags?: number; flags2?: number; flags3?: number; bodyPart?: number[]; lightRange?: number; canSit?: number; playerOffsetX?: number; playerOffsetY?: number; chairTextureX?: number; chairTextureY?: number; chairLegOffsetX?: number; chairLegOffsetY?: number; chairTexture?: string; itemRenderer?: string; unknownInt1?: number; // NOTE: not sure what this does unknownInt2?: number; // NOTE: not sure what this does unknownInt3?: number; // NOTE: not sure what this does unknownBytes1?: number[]; // NOTE: not sure what this does extraFlags1?: number; // NOTE: not sure what this does itemRendererHash?: number; // NOTE: not sure what this does unknownBytes2?: number[]; // NOTE: not sure what this does unknownShort1?: number; // NOTE: not sure what this does info?: string; // NOTE: not sure what this does } interface ItemsDatMeta { version?: number; itemCount?: number; items: Collection<string, ItemDefinition>; } declare class ExtendBuffer { mempos: number; data: number[]; constructor(data: number[] | number, mempos?: number); private read; private readSigned; private write; readU8: () => number; readU16: (be?: boolean) => number; readU32: (be?: boolean) => number; readI8: () => number; readI16: (be?: boolean) => number; readI32: (be?: boolean) => number; private readBE; private readSignedBE; writeU8: (value: number) => void; writeU16: (value: number, be?: boolean) => void; writeU32: (value: number, be?: boolean) => void; writeI8: (value: number) => void; writeI16: (value: number, be?: boolean) => void; writeI32: (value: number, be?: boolean) => void; private writeBE; writeU: (size: number, value: number, be?: boolean) => void; writeI: (size: number, value: number, be?: boolean) => void; readString(be?: boolean): Promise<string>; writeString(str: string, be?: boolean): Promise<void>; } declare class ItemsDat { buffer: ExtendBuffer; private key; private stringFields; meta: ItemsDatMeta; constructor(data: number[] | number); getWriteSize(): number; decode(): Promise<void>; encode(): Promise<void>; private readString; private writeString; } export { ExtendBuffer, type ItemDefinition, ItemsDat, type ItemsDatMeta, type StringOptions };