grow-items
Version:
A standalone items.dat parser for Growtopia
127 lines (119 loc) • 3.49 kB
TypeScript
interface StringOptions {
id?: number;
encoded?: boolean;
}
interface ItemDefinition {
[key: string]: any;
id?: number;
flags?: number;
flagsCategory?: 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: 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(items: ItemDefinition[]): number;
decode(): Promise<void>;
encode(): Promise<void>;
private readString;
private writeString;
}
export { ExtendBuffer, type ItemDefinition, ItemsDat, type ItemsDatMeta, type StringOptions };