{"version":3,"sources":["../lib/ExtendBuffer.ts","../lib/Items.ts"],"sourcesContent":["export class ExtendBuffer {\n  public data: number[];\n\n  constructor(data: number[] | number, public mempos = 0) {\n    this.data = Array.isArray(data) ? data : new Array(data).fill(0);\n  }\n\n  private read(size: number): number {\n    let value = 0;\n    for (let i = 0; i < size; i++) {\n      value |= this.data[this.mempos + i] << (i * 8);\n    }\n    this.mempos += size;\n    return value >>> 0;\n  }\n\n  private readSigned(size: number): number {\n    let value = this.read(size);\n    const bits = size * 8;\n    if (value & (1 << (bits - 1))) {\n      value = value - (1 << bits);\n    }\n    return value;\n  }\n\n  private write(value: number, size: number): void {\n    for (let i = 0; i < size; i++) {\n      this.data[this.mempos + i] = (value >> (i * 8)) & 0xff;\n    }\n    this.mempos += size;\n  }\n\n  public readU8 = () => this.read(1);\n  public readU16 = (be = false) => (be ? this.readBE(2) : this.read(2));\n  public readU32 = (be = false) => (be ? this.readBE(4) : this.read(4));\n\n  public readI8 = () => this.readSigned(1);\n  public readI16 = (be = false) => (be ? this.readSignedBE(2) : this.readSigned(2));\n  public readI32 = (be = false) => (be ? this.readSignedBE(4) : this.readSigned(4));\n\n  private readBE(size: number): number {\n    let value = 0;\n    for (let i = 0; i < size; i++) {\n      value = (value << 8) | this.data[this.mempos + i];\n    }\n    this.mempos += size;\n    return value >>> 0;\n  }\n\n  private readSignedBE(size: number): number {\n    let value = this.readBE(size);\n    const bits = size * 8;\n    if (value & (1 << (bits - 1))) {\n      value = value - (1 << bits);\n    }\n    return value;\n  }\n\n  public writeU8 = (value: number) => this.write(value, 1);\n  public writeU16 = (value: number, be = false) => (be ? this.writeBE(value, 2) : this.write(value, 2));\n  public writeU32 = (value: number, be = false) => (be ? this.writeBE(value, 4) : this.write(value, 4));\n\n  public writeI8 = (value: number) => this.write(value, 1);\n  public writeI16 = (value: number, be = false) => (be ? this.writeBE(value, 2) : this.write(value, 2));\n  public writeI32 = (value: number, be = false) => (be ? this.writeBE(value, 4) : this.write(value, 4));\n\n  private writeBE(value: number, size: number): void {\n    for (let i = 0; i < size; i++) {\n      this.data[this.mempos + i] = (value >> ((size - 1 - i) * 8)) & 0xff;\n    }\n    this.mempos += size;\n  }\n\n  public writeU = (size: number, value: number, be = false) => {\n    const methods = { 1: this.writeU8, 2: this.writeU16, 4: this.writeU32 };\n    methods[size as 1 | 2 | 4](value, be);\n  };\n\n  public writeI = (size: number, value: number, be = false) => {\n    const methods = { 1: this.writeI8, 2: this.writeI16, 4: this.writeI32 };\n    methods[size as 1 | 2 | 4](value, be);\n  };\n\n  public async readString(be = false) {\n    const len = be ? this.readBE(2) : this.read(2);\n    const chars = this.data.slice(this.mempos, this.mempos + len);\n    this.mempos += len;\n    return String.fromCharCode(...chars);\n  }\n\n  public async writeString(str: string, be = false) {\n    const bytes = str.split(\"\").map((char) => char.charCodeAt(0));\n    be ? this.writeBE(str.length, 2) : this.write(str.length, 2);\n    for (const byte of bytes) {\n      this.data[this.mempos++] = byte;\n    }\n  }\n}\n","import type { ItemDefinition, ItemsDatMeta, StringOptions } from \"../types\";\nimport { ExtendBuffer } from \"./ExtendBuffer\";\n\nexport class ItemsDat {\n  public buffer: ExtendBuffer;\n  private key: string = \"PBG892FXX982ABC*\";\n  private stringFields: string[] = [\n    \"name\",\n    \"texture\",\n    \"extraFile\",\n    \"petName\",\n    \"petPrefix\",\n    \"petSuffix\",\n    \"petAbility\",\n    \"extraOptions\",\n    \"texture2\",\n    \"extraOptions2\",\n    \"punchOptions\",\n    \"extraTexture\",\n    \"itemRenderer\"\n  ];\n\n  public meta: ItemsDatMeta = {\n    items: [],\n    itemCount: 0,\n    version: 0\n  };\n\n  constructor(data: number[] | number) {\n    this.buffer = new ExtendBuffer(data);\n  }\n\n  private getWriteSize(items: ItemDefinition[]) {\n    let size = 83 * items.length;\n\n    for (const item of items) {\n      const keys = Object.keys(item);\n\n      for (const key of keys) {\n        const strValue = item[key] as unknown as string;\n        if (this.stringFields.includes(key) && typeof strValue === \"string\") {\n          size += strValue.length + 2;\n        }\n        if (typeof item[key] === \"object\") {\n          const numArray = item[key] as unknown as number[];\n          size += numArray.length;\n        }\n      }\n    }\n\n    return size + 4 + 2;\n  }\n\n  public async decode() {\n    this.buffer.mempos = 0;\n    this.meta.version = this.buffer.readU16();\n    this.meta.itemCount = this.buffer.readI32();\n\n    for (let i = 0; i < this.meta.itemCount; i++) {\n      const item: ItemDefinition = {};\n\n      item.id = this.buffer.readI32();\n      item.flags = this.buffer.readU8();\n      item.flagsCategory = this.buffer.readU8();\n      item.type = this.buffer.readU8();\n      item.materialType = this.buffer.readU8();\n\n      item.name = await this.readString({ id: item.id, encoded: true });\n      item.texture = await this.readString({ id: item.id });\n\n      item.textureHash = this.buffer.readI32();\n      item.visualEffectType = this.buffer.readU8();\n      item.flags2 = this.buffer.readI32();\n\n      item.textureX = this.buffer.readU8();\n      item.textureY = this.buffer.readU8();\n      item.storageType = this.buffer.readU8();\n      item.isStripeyWallpaper = this.buffer.readU8();\n      item.collisionType = this.buffer.readU8();\n      item.breakHits = this.buffer.readU8() / 6;\n\n      item.resetStateAfter = this.buffer.readI32();\n      item.bodyPartType = this.buffer.readU8();\n      item.rarity = this.buffer.readI16();\n      item.maxAmount = this.buffer.readU8();\n\n      item.extraFile = await this.readString({ id: item.id });\n      item.extraFileHash = this.buffer.readI32();\n      item.audioVolume = this.buffer.readI32();\n\n      item.petName = await this.readString({ id: item.id });\n      item.petPrefix = await this.readString({ id: item.id });\n      item.petSuffix = await this.readString({ id: item.id });\n      item.petAbility = await this.readString({ id: item.id });\n\n      item.seedBase = this.buffer.readU8();\n      item.seedOverlay = this.buffer.readU8();\n      item.treeBase = this.buffer.readU8();\n      item.treeLeaves = this.buffer.readU8();\n\n      item.seedColor = this.buffer.readI32();\n      item.seedOverlayColor = this.buffer.readI32();\n      item.ingredient = this.buffer.readI32();\n      item.growTime = this.buffer.readI32();\n\n      item.flags3 = this.buffer.readI16();\n      item.isRayman = this.buffer.readI16();\n\n      item.extraOptions = await this.readString({ id: item.id });\n      item.texture2 = await this.readString({ id: item.id });\n      item.extraOptions2 = await this.readString({ id: item.id });\n\n      item.extraBytes = this.buffer.data.slice(this.buffer.mempos, (this.buffer.mempos += 80));\n\n      if (this.meta.version >= 11) {\n        item.punchOptions = await this.readString({ id: item.id });\n\n        if (this.meta.version >= 12) {\n          item.flags4 = this.buffer.readI32();\n          item.bodyPart = this.buffer.data.slice(this.buffer.mempos, (this.buffer.mempos += 9));\n        }\n        if (this.meta.version >= 13) item.flags5 = this.buffer.readI32();\n        if (this.meta.version >= 14) item.unknownInt1 = this.buffer.readI32();\n        if (this.meta.version >= 15) {\n          item.unknownBytes1 = this.buffer.data.slice(this.buffer.mempos, (this.buffer.mempos += 25));\n          item.extraTexture = await this.readString({ id: item.id });\n        }\n        if (this.meta.version >= 16) item.itemRenderer = await this.readString({ id: item.id });\n        if (this.meta.version >= 17) item.extraFlags1 = this.buffer.readI32();\n        if (this.meta.version >= 18) item.extraHash1 = this.buffer.readI32();\n        if (this.meta.version >= 19) item.unknownBytes2 = this.buffer.data.slice(this.buffer.mempos, (this.buffer.mempos += 9));\n        if (this.meta.version! >= 21) item.unknownShort1 = this.buffer.readI16();\n      }\n\n      this.meta.items.push(item);\n    }\n  }\n\n  public async encode() {\n    this.buffer.mempos = 0;\n    const size = this.getWriteSize(this.meta.items);\n\n    this.buffer = new ExtendBuffer(size);\n    this.buffer.writeI16(this.meta.version!);\n    this.buffer.writeI32(this.meta.items.length);\n\n    for (const item of this.meta.items) {\n      this.buffer.writeI32(item.id!);\n      this.buffer.writeU8(item.flags!);\n      this.buffer.writeU8(item.flagsCategory!);\n      this.buffer.writeU8(item.type!);\n      this.buffer.writeU8(item.materialType!);\n\n      await this.writeString(item.name!, item.id!, true);\n      await this.writeString(item.texture!, item.id!);\n\n      this.buffer.writeI32(item.textureHash!);\n      this.buffer.writeU8(item.visualEffectType!);\n      this.buffer.writeI32(item.flags2!);\n\n      this.buffer.writeU8(item.textureX!);\n      this.buffer.writeU8(item.textureY!);\n      this.buffer.writeU8(item.storageType!);\n      this.buffer.writeU8(item.isStripeyWallpaper!);\n      this.buffer.writeU8(item.collisionType!);\n      this.buffer.writeU8(item.breakHits! * 6);\n\n      this.buffer.writeI32(item.resetStateAfter!);\n      this.buffer.writeU8(item.bodyPartType!);\n      this.buffer.writeI16(item.rarity!);\n      this.buffer.writeU8(item.maxAmount!);\n\n      await this.writeString(item.extraFile!, item.id!);\n      this.buffer.writeI32(item.extraFileHash!);\n      this.buffer.writeI32(item.audioVolume!);\n\n      await this.writeString(item.petName!, item.id!);\n      await this.writeString(item.petPrefix!, item.id!);\n      await this.writeString(item.petSuffix!, item.id!);\n      await this.writeString(item.petAbility!, item.id!);\n\n      this.buffer.writeU8(item.seedBase!);\n      this.buffer.writeU8(item.seedOverlay!);\n      this.buffer.writeU8(item.treeBase!);\n      this.buffer.writeU8(item.treeLeaves!);\n\n      this.buffer.writeI32(item.seedColor!);\n      this.buffer.writeI32(item.seedOverlayColor!);\n      this.buffer.writeI32(item.ingredient!);\n      this.buffer.writeI32(item.growTime!);\n\n      this.buffer.writeI16(item.flags3!);\n      this.buffer.writeI16(item.isRayman!);\n\n      await this.writeString(item.extraOptions!, item.id!);\n      await this.writeString(item.texture2!, item.id!);\n      await this.writeString(item.extraOptions2!, item.id!);\n\n      if (item.extraBytes) {\n        for (const byte of item.extraBytes) {\n          this.buffer.writeU8(byte);\n        }\n      }\n\n      if (this.meta.version! >= 11) {\n        await this.writeString(item.punchOptions || \"\", item.id!);\n\n        if (this.meta.version! >= 12) {\n          this.buffer.writeI32(item.flags4!);\n          if (item.bodyPart) {\n            for (const byte of item.bodyPart) {\n              this.buffer.writeU8(byte);\n            }\n          }\n        }\n        if (this.meta.version! >= 13) this.buffer.writeI32(item.flags5!);\n        if (this.meta.version! >= 14) this.buffer.writeI32(item.unknownInt1!);\n        if (this.meta.version! >= 15) {\n          if (item.unknownBytes1) {\n            for (const byte of item.unknownBytes1) {\n              this.buffer.writeU8(byte);\n            }\n          }\n          await this.writeString(item.extraTexture || \"\", item.id!);\n        }\n        if (this.meta.version! >= 16) {\n          await this.writeString(item.itemRenderer || \"\", item.id!);\n        }\n        if (this.meta.version! >= 17) this.buffer.writeI32(item.extraFlags1!);\n        if (this.meta.version! >= 18) this.buffer.writeI32(item.extraHash1!);\n        if (this.meta.version! >= 19) {\n          if (item.unknownBytes2) {\n            for (const byte of item.unknownBytes2) {\n              this.buffer.writeU8(byte);\n            }\n          }\n        }\n        if (this.meta.version! >= 21) this.buffer.writeI16(item.unknownShort1!);\n      }\n    }\n  }\n\n  private async readString(opts: StringOptions = { encoded: false }): Promise<string> {\n    const len = this.buffer.readI16();\n\n    if (!opts.encoded) {\n      const chars = [];\n      for (let i = 0; i < len; i++) {\n        chars.push(String.fromCharCode(this.buffer.data[this.buffer.mempos++]));\n      }\n      return chars.join(\"\");\n    } else {\n      const chars = [];\n      for (let i = 0; i < len; i++) {\n        chars.push(String.fromCharCode(this.buffer.data[this.buffer.mempos] ^ this.key.charCodeAt((opts.id! + i) % this.key.length)));\n        this.buffer.mempos++;\n      }\n      return chars.join(\"\");\n    }\n  }\n\n  private async writeString(str: string, id: number, encoded: boolean = false): Promise<void> {\n    this.buffer.writeI16(str.length);\n\n    if (!encoded) {\n      for (let i = 0; i < str.length; i++) {\n        this.buffer.writeU8(str.charCodeAt(i));\n      }\n    } else {\n      for (let i = 0; i < str.length; i++) {\n        const char = str.charCodeAt(i) ^ this.key.charCodeAt((i + id) % this.key.length);\n        this.buffer.writeU8(char);\n      }\n    }\n  }\n}\n"],"mappings":"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","names":["ExtendBuffer","data","mempos","size","value","bits","be","len","chars","str","bytes","char","byte","ItemsDat","data","ExtendBuffer","items","size","item","keys","key","strValue","numArray","i","byte","opts","len","chars","str","id","encoded","char"]}