{
  "version": 3,
  "sources": ["../../../src/index.ts", "../../../src/BPCmd.ts", "../../../src/BuildBits.ts", "../../../src/constants/Enum.ts", "../../../src/constants/ItemEnum.ts", "../../../src/constants/ShapeEnum.ts", "../../../src/BuildCmd.ts", "../../../src/constants/public.ts", "../../../src/ConfigCmd.ts", "../../../src/Blueprint.ts", "../../../src/Decoder.ts", "../../../src/Encoder.ts", "../../../src/util.ts", "../../../src/injNode.ts"],
  "sourcesContent": ["import { Blueprint } from \"./Blueprint.js\"\r\nimport { ConfigCmd } from \"./ConfigCmd.js\"\r\nimport { Decoder } from \"./Decoder.js\"\r\nimport { Encoder } from \"./Encoder.js\"\r\nimport { DecoderOptions } from \"./types.js\"\r\nimport * as util from \"./util.js\"\r\n\r\nexport { BPCmd } from \"./BPCmd.js\"\r\nexport { BuildBits } from \"./BuildBits.js\"\r\nexport { BuildCmd } from \"./BuildCmd.js\"\r\nexport { Enum } from \"./constants/Enum.js\"\r\nexport { FabricatorType, Item } from \"./constants/ItemEnum.js\"\r\nexport * from \"./constants/public.js\"\r\nexport { Shape } from \"./constants/ShapeEnum.js\"\r\nexport * from \"./types.js\"\r\nexport { Blueprint, ConfigCmd, Decoder, Encoder }\r\n\r\n/**\r\n * Synchronously decodes a blueprint string.\r\n * Supports the \"DSA:\" prefix (case-insensitive).\r\n * @param input The blueprint string.\r\n * @param options Decoding options.\r\n * @example\r\n * import { decodeSync } from \"dsabp-js\"\r\n * \r\n * const bp = decodeSync(str)\r\n */\r\nexport function decodeSync(input: string, options?: DecoderOptions) {\r\n\treturn new Decoder().decodeSync(input, options)\r\n}\r\n\r\n/**\r\n * Asynchronously decodes a blueprint string.\r\n * Supports the \"DSA:\" prefix (case-insensitive).\r\n * @param input The blueprint string.\r\n * @param options Decoding options.\r\n * @example\r\n * import { decode } from \"dsabp-js\"\r\n * \r\n * const bp = await decode(str)\r\n */\r\nexport async function decode(input: string, options?: DecoderOptions) {\r\n\treturn util.decodeAsync(input, options)\r\n}\r\n\r\n/**\r\n * Synchronously decodes the data of a {@link ConfigCmd} containing raw data.\r\n * See {@link DecoderOptions.ignoreConfigCmdData} for more info.\r\n * @returns The same input instance, with decoded data.\r\n */\r\nexport function decodeConfigCmdSync(cmd: ConfigCmd) {\r\n\treturn new Decoder().decodeConfigCmdSync(cmd)\r\n}\r\n\r\n/**\r\n * Asynchronously decodes the data of a {@link ConfigCmd} containing raw data.\r\n * See {@link DecoderOptions.ignoreConfigCmdData} for more info.\r\n * @returns The same input instance, with decoded data.\r\n */\r\nexport async function decodeConfigCmd(cmd: ConfigCmd) {\r\n\tif (!(cmd instanceof ConfigCmd))\r\n\t\tthrow new TypeError(`input must be a ${ConfigCmd.name}`)\r\n\tif (!cmd.isRaw) return cmd\r\n\tconst dataArr = await util.decodeConfigCmdAsync(cmd.rawData)\r\n\tcmd.rawData = undefined\r\n\treturn cmd.fillDataFromArray(dataArr)\r\n}\r\n\r\n/**\r\n * Synchronously encodes a {@link Blueprint} into a blueprint string.\r\n * Does not include the \"DSA:\" prefix, consider adding it on a public app.\r\n * @param input The blueprint to encode.\r\n * @example\r\n * import { encodeSync, PREFIX } from \"dsabp-js\"\r\n * \r\n * const str = PREFIX + encodeSync(bp)\r\n */\r\nexport function encodeSync(input: Blueprint) {\r\n\treturn new Encoder().encodeSync(input)\r\n}\r\n\r\n/**\r\n * Asynchronously encodes a {@link Blueprint} into a blueprint string.\r\n * Does not include the \"DSA:\" prefix, consider adding it on a public app.\r\n * @param input The blueprint to encode.\r\n * @example\r\n * import { encode, PREFIX } from \"dsabp-js\"\r\n * \r\n * const str = PREFIX + await encode(bp)\r\n */\r\nexport function encode(input: Blueprint) {\r\n\treturn util.encodeAsync(input)\r\n}\r\n", "export abstract class BPCmd {\r\n\r\n\tabstract clone()\r\n\r\n\tabstract toArray(): any[]\r\n}\r\n", "/**\r\n * Used to specify repeated placements along the X+ axis in a single build command.\r\n * `101` = place 2 objects with a space between. Cannot exceed 64 bits.\r\n */\r\nexport class BuildBits {\r\n\r\n\tint: bigint\r\n\r\n\r\n\tconstructor(input?: string | number | bigint) {\r\n\t\tif (input == null) {\r\n\t\t\tthis.int = 0n\r\n\t\t\treturn\r\n\t\t}\r\n\t\tif (typeof input == \"string\") {\r\n\t\t\tinput = \"0b\" + reverse(input)\r\n\t\t} else if (typeof input != \"number\" && typeof input != \"bigint\") {\r\n\t\t\tthrow new TypeError(\"input must be a number, bigint or string\")\r\n\t\t}\r\n\t\tthis.int = BigInt(input)\r\n\t}\r\n\r\n\r\n\tset(index: number): this {\r\n\t\tif (index < 0 || index > 63) throw new RangeError(\"index must be between [0,63]\")\r\n\t\tthis.int |= mask(index)\r\n\t\treturn this\r\n\t}\r\n\r\n\r\n\tclear(index: number): this {\r\n\t\tif (index < 0 || index > 63) throw new RangeError(\"index must be between [0,63]\")\r\n\t\tthis.int &= ~mask(index)\r\n\t\treturn this\r\n\t}\r\n\r\n\r\n\ttoggle(index: number, force?: boolean): this {\r\n\t\tif (index < 0 || index > 63) throw new RangeError(\"index must be between [0,63]\")\r\n\t\tif (typeof force == \"undefined\")\r\n\t\t\tthis.int ^= mask(index)\r\n\t\telse if (force === true)\r\n\t\t\tthis.set(index)\r\n\t\telse if (force === false)\r\n\t\t\tthis.clear(index)\r\n\t\treturn this\r\n\t}\r\n\r\n\r\n\tisSet(index: number): boolean {\r\n\t\tif (index < 0 || index > 63) return false\r\n\t\treturn !!(this.int & mask(index))\r\n\t}\r\n\r\n\r\n\tisZero(): boolean {\r\n\t\treturn this.int == 0n\r\n\t}\r\n\r\n\r\n\tisOne(): boolean {\r\n\t\treturn this.int == 1n\r\n\t}\r\n\r\n\r\n\ttrimLeadZeros(): this {\r\n\t\tif (this.int)\r\n\t\t\tthis.int /= -this.int & this.int\r\n\t\treturn this\r\n\t}\r\n\r\n\r\n\tget size(): number {\r\n\t\treturn this.int.toString(2).length\r\n\t}\r\n\r\n\t*[Symbol.iterator](): Iterator<boolean> {\r\n\t\tfor (const b of reverse(this.int.toString(2))) {\r\n\t\t\tyield b == \"1\"\r\n\t\t}\r\n\t}\r\n\r\n\r\n\ttoArray(): boolean[] {\r\n\t\treturn Array.from(this)\r\n\t}\r\n\r\n\r\n\ttoString(): string {\r\n\t\treturn reverse(this.int.toString(2))\r\n\t}\r\n\r\n\r\n\tget [Symbol.toStringTag]() {\r\n\t\treturn this.toString()\r\n\t}\r\n\r\n\r\n\tequals(target: BuildBits) {\r\n\t\treturn this.int === target?.int\r\n\t}\r\n\r\n\r\n\tclone(): BuildBits {\r\n\t\treturn Object.assign(Object.create(Object.getPrototypeOf(this)), this)\r\n\t}\r\n}\r\n\r\nfunction mask(i: number) {\r\n\treturn 1n << BigInt(i)\r\n}\r\n\r\nfunction reverse(str: string) {\r\n\tif (str.length < 1) return str\r\n\treturn str.split(\"\").reduce((r, c) => c + r)\r\n}\r\n", "interface C<T> {\r\n\tnew(...args: any[]): T\r\n\tmaps: any\r\n\tgetMap: any\r\n\tgetReverseMap: any\r\n}\r\n\r\n/**\r\n * An alternative to TS Enums. Simple, efficient, and compatible with IntelliSense.\r\n * \r\n * An enum constant is an instance of the derived class. References to instances are stored in maps for fast lookups.\r\n * The derived class can add static or non-static members to store more data or to have more methods on the enum.\r\n * A constant must have a \"main value\" (enumValue) that can be anything (preferably a primitive) and is used with the reverse mapping.\r\n * Easy to add NoReverseEnum and NoValueEnum if ever needed.\r\n */\r\n\r\n/** @hidden */\r\nexport class Enum<V> {\r\n\r\n\tstatic readonly maps = new Map<string, [Map<string, Enum<any>>, Map<any, string>]>()\r\n\r\n\r\n\tstatic getMap<CT>(this: C<CT>): Map<string, CT> {\r\n\t\treturn this.maps.get(this.name)[0]\r\n\t}\r\n\r\n\r\n\tstatic getReverseMap<CT extends { enumValue: any }>(this: C<CT>): Map<CT[\"enumValue\"], string> {\r\n\t\treturn this.maps.get(this.name)[1]\r\n\t}\r\n\r\n\r\n\tstatic getByName<CT>(this: C<CT>, name: string): CT | undefined {\r\n\t\treturn this.getMap().get(name)\r\n\t}\r\n\r\n\r\n\tstatic getByValue<CT extends { enumValue: any }>(this: C<CT>, value: CT[\"enumValue\"]): CT | undefined {\r\n\t\treturn this.getMap().get(\r\n\t\t\tthis.getReverseMap().get(value)\r\n\t\t)\r\n\t}\r\n\r\n\r\n\tstatic end() {\r\n\t\tthis.maps.set(this.name, [new Map(), new Map()])\r\n\t\tconst map = this.getMap()\r\n\t\tconst reverseMap = this.getReverseMap()\r\n\t\tfor (const key in this) {\r\n\t\t\tconst value = this[key]\r\n\t\t\tif (value instanceof Enum) {\r\n\t\t\t\tvalue.enumName = key\r\n\t\t\t\tmap.set(key, value)\r\n\t\t\t\treverseMap.set(value.enumValue, key)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconstructor(value: V) {\r\n\t\tthis.enumValue = value\r\n\t}\r\n\r\n\r\n\tenumName: string\r\n\r\n\r\n\tenumValue: V\r\n\r\n\r\n\ttoString() {\r\n\t\treturn this.constructor.name + \".\" + this.enumName\r\n\t}\r\n}\r\n", "import { Enum } from \"./Enum.js\"\r\n\r\nexport type FabricatorType = \"Legacy\" | \"Starter\" | \"Munitions\" | \"Engineering\" | \"Machine_DEPRECATED\" | \"Equipment\"\r\n\r\n/**\r\n * The item names, IDs and data are taken directly from the game source.\r\n *\r\n * The item data may be unstable because it is not edited or checked, including the\r\n * property names. If you use it, it is up to you to test it and handle the game changes.\r\n * The major version won't be incremented for any breaking changes to it.\r\n *\r\n * <small>Generated using test.drednot.io version: `Sun Aug 24 16:24:50 MDT 2025 / 8200d52`</small>\r\n */\r\nexport class Item extends Enum<number> {\r\n\treadonly name: string\r\n\treadonly description: string\r\n\treadonly stackable: boolean\r\n\treadonly rarity: number\r\n\tdeclare readonly image?: string\r\n\tdeclare readonly recipe?: Partial<{ count: number, time: number, input: { item: number, count: number }[], built_by: FabricatorType[] }>\r\n\r\n\tdeclare readonly buildInfo?: Array<Partial<{ bounds: { x: number, y: number }, shape: { verts: { x: number, y: number }[] }, allow_non_solids: boolean, image: string, image_only: boolean, snap_y: boolean, offset: { x: number, y: number }, require_blocks: { x: number, y: number, block: \"_BUILD_SURFACE\" | \"AIR\" | \"HULL_CORNER\" | \"HULL_H\" | \"HULL_V\" | \"INTERIOR_BLOCK\" | \"LADDER\" | \"WALKWAY\" | \"ITEM_NET\" | \"RAMP_1\" | \"RAMP_2\" | \"RAMP_3\" | \"RAMP_4\" | \"COLOR_PANEL\" | \"HYPER_RUBBER\" | \"ICE_GLASS\" | \"ANNIHILATOR\" }[], allow_solids: boolean, snap_x: boolean, buildDirection: \"HORIZONTAL\" | \"VERTICAL\", allow_world: boolean, block: number, block_shaped: boolean, block_is_colored: boolean, allow_any: boolean, build_angle: \"Any\" | \"Fixed\", image_anim: string, is_lockdown_override: boolean, offset2: { x: number, y: number } }>>\r\n\tdeclare readonly blacklist_autobuild?: boolean\r\n\tdeclare readonly fab_type?: FabricatorType\r\n\r\n\tconstructor(id, name, description, stackable, rarity, image?, recipe?, buildInfo?, blacklist_autobuild?, fab_type?) {\r\n\t\tsuper(id)\r\n\t\tthis.name = name\r\n\t\tthis.description = description\r\n\t\tthis.stackable = stackable\r\n\t\tthis.rarity = rarity\r\n\t\tif (image !== undefined) this.image = image\r\n\t\tif (recipe !== undefined) this.recipe = recipe\r\n\t\tif (buildInfo !== undefined) this.buildInfo = buildInfo\r\n\t\tif (blacklist_autobuild !== undefined) this.blacklist_autobuild = blacklist_autobuild\r\n\t\tif (fab_type !== undefined) this.fab_type = fab_type\r\n\t}\r\n\r\n\tdeclare enumValue: number\r\n\r\n\tget id() { return this.enumValue }\r\n\tget isBuildable() { return !!this.buildInfo }\r\n\tget isBlock() { return !!this.buildInfo?.[0]?.block }\r\n\r\n\tstatic getById(id: number) { return Item.getByValue(id) }\r\n\r\n\tstatic NULL = new this(0, \"\", \"\", false, NaN)\r\n\r\n\tstatic RES_METAL = new this(1, \"Iron\", \"Material. Used to produce most items.\", true, 0, \"item/res_iron\")\r\n\r\n\tstatic RES_GUNPOWDER = new this(2, \"Explosives\", \"Material. Used to produce munitions.\", true, 0, \"item/res_explosives\")\r\n\r\n\tstatic RES_HYPER_RUBBER = new this(4, \"Hyper Rubber\", \"Material. High Elasticity.\", true, 2, \"item/res_hyper_rubber\")\r\n\r\n\tstatic RES_FLUX = new this(5, \"Flux Crystals\", \"Material. Used to produce advanced machinery.\", true, 2, \"item/res_flux_crystals\")\r\n\r\n\tstatic RES_FUEL = new this(6, \"Thruster Fuel\", \"Refined fuel. Powers thrusters. More efficient than explosives.\", true, 0, \"item/fuel\", {count:1,time:30,input:[{item:2,count:1}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic COMPRESSED_EXPLOSIVES = new this(49, \"Compressed Explosives\", \"Explosives, compressed into a flux matrix at a 16:1 ratio. Unpack with a recycler.\", true, 2, \"item/comp_exp\")\r\n\r\n\tstatic COMPRESSED_IRON = new this(50, \"Compressed Iron\", \"Iron, compressed into a flux matrix at a 24:1 ratio. Unpack with a recycler.\", true, 2, \"item/comp_iron\")\r\n\r\n\tstatic BALL_VOLLEY = new this(51, \"Volleyball\", \"\uD83C\uDFD0\", false, 2, \"item/ball_volley\")\r\n\r\n\tstatic BALL_VOLLEY_GOLD = new this(52, \"Golden Volleyball\", \"\uD83C\uDF1F\uD83C\uDFD0\uD83C\uDF1F\", false, 2, \"item/ball_vg\")\r\n\r\n\tstatic BALL_BASKET = new this(53, \"Basketball\", \"\uD83C\uDFC0\", false, 2, \"item/ball_basket\")\r\n\r\n\tstatic BALL_BASKET_GOLD = new this(54, \"Golden Basketball\", \"\uD83C\uDF1F\uD83C\uDFC0\uD83C\uDF1F\", false, 2, \"item/ball_bg\")\r\n\r\n\tstatic BALL_BEACH = new this(55, \"Beach Ball\", \"\uD83C\uDF34\", false, 2, \"item/ball_beach\")\r\n\r\n\tstatic BALL_SOCCER = new this(56, \"Football\", \"\u26BD\", false, 2, \"item/ball_soccer\")\r\n\r\n\tstatic WRENCH = new this(100, \"Wrench\", \"Used to take stuff apart.\", false, 0, \"item/wrench\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic SHREDDER = new this(101, \"Item Shredder\", \"Destroys items.\", false, 0, \"item/item_shredder\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic SHREDDER_GOLD = new this(102, \"Golden Item Shredder\", \"Destroys items quickly, with style.\", false, 9, \"item/item_shredder_g\")\r\n\r\n\tstatic REPAIR_TOOL = new this(103, \"Repair Tool\", \"Used to repair blocks and objects.\", false, 0, \"item/repair_tool\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic HAND_PUSHER = new this(104, \"Handheld Pusher\", \"A pusher you can hold in your hand.\", false, 2, \"item/pusher_hand\", {count:1,time:5,input:[{item:1,count:4},{item:5,count:16}],built_by:[\"Engineering\"]})\r\n\r\n\tstatic SHIELD_BOOSTER = new this(105, \"Ship Shield Booster\", \"An inferior power source for shield generators.\", false, 0, \"item/repairkit\", {count:1,time:3,input:[{item:1,count:2}],built_by:[\"Engineering\",\"Munitions\"]})\r\n\r\n\tstatic SHIP_EMBIGGENER = new this(106, \"Ship Embiggener\", \"Makes your ship bigger. Press R to change axis.\", false, 0, \"item/ship_embiggener\", {count:1,time:3,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic SHIP_SHRINKINATOR = new this(107, \"Ship Shrinkinator\", \"Makes your ship smaller. Space must be completely empty. Press R to change axis.\", false, 0, \"item/ship_shrinkinator\", {count:1,time:3,input:[{item:1,count:4}],built_by:[\"Engineering\"]})\r\n\r\n\tstatic EQUIPMENT_BACKPACK = new this(108, \"Backpack\", \"Equipment (Back). Lets you hold more items.\", false, 1, \"item/eq_backpack\")\r\n\r\n\tstatic EQUIPMENT_SPEED_SKATES = new this(109, \"Speed Skates\", \"Equipment (Feet). SPEED.\", false, 2, \"item/eq_speed_skates\", {count:1,time:20,input:[{item:1,count:8},{item:4,count:4},{item:5,count:16}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic EQUIPMENT_BOOSTER_BOOTS = new this(110, \"Booster Boots\", \"Equipment (Feet). Provides a double-jump and slightly more powerful jumps.\", false, 2, \"item/eq_booster_boots\", {count:1,time:20,input:[{item:1,count:8},{item:4,count:8},{item:5,count:16}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic EQUIPMENT_LAUNCHER_GAUNTLETS = new this(111, \"Launcher Gauntlets\", \"Equipment (Hands). Throw items more powerfully.\", false, 2, \"item/eq_launcher_gauntlets\", {count:1,time:20,input:[{item:1,count:8},{item:4,count:8},{item:5,count:8}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic EQUIPMENT_CONSTRUCTION_GAUNTLETS = new this(112, \"Construction Gauntlets\", \"Equipment (Hands). While in a safe zone: Doubles build/destruct/repair/use range and speed, and allows using objects through walls.\", false, 2, \"item/eq_construction_gauntlets\", {count:1,time:20,input:[{item:1,count:8},{item:4,count:4},{item:5,count:32}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic EQUIPMENT_ROCKET_PACK = new this(113, \"Rocket Pack\", \"Equipment (Back). Speedy Flight.\", false, 2, \"item/eq_rocket_pack\", {count:1,time:20,input:[{item:1,count:16},{item:4,count:4},{item:5,count:32}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic EQUIPMENT_HOVER_PACK = new this(114, \"Hover Pack\", \"Equipment (Back). Controlled Flight.\", false, 2, \"item/eq_hover_pack\", {count:1,time:20,input:[{item:1,count:16},{item:4,count:4},{item:5,count:32}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic SCANNER_MANIFEST = new this(115, \"Manifest Scanner\", \"Generate a list of items on your ship.\", false, 2, \"item/scanner_manifest\")\r\n\r\n\tstatic SCANNER_BOM = new this(116, \"BoM Scanner\", \"Generate a list of materials used to build your ship.\", false, 2, \"item/scanner_bom\")\r\n\r\n\tstatic WRENCH_STARTER = new this(117, \"Starter Wrench\", \"Useful for getting you out of a bind. Slow. Disappears if dropped.\", false, -1, \"item/wrench_starter\")\r\n\r\n\tstatic SHREDDER_STARTER = new this(118, \"Starter Shredder\", \"Destroys items. Slow. Disappears if dropped.\", false, -1, \"item/item_shredder_starter\")\r\n\r\n\tstatic HAND_CANNON = new this(119, \"Hand Cannon\", \"[TEST EXCLUSIVE] A small, handheld cannon. Uses ammo in your inventory.\", false, 0, \"item/hand_cannon\")\r\n\r\n\tstatic SCANNER_BLUEPRINT = new this(120, \"Blueprint Scanner\", \"Generates blueprint strings, which describe how to rebuild ships or parts of ships. Click and drag to select a region.\", false, 2, \"item/scanner_blueprint\")\r\n\r\n\tstatic RCD_SANDBOX = new this(121, \"Sandbox RCD\", \"Buildable. Used for automated construction. This test-exclusive variant can spawn items and doesn't need fuel. It works faster on ships owned by patrons.\", false, -1, \"item/rcd_sandbox\", undefined, [{bounds:{x:2.5,y:2.5},shape:{verts:[{x:-1.2,y:-0.3999999999999999},{x:-0.3999999999999999,y:-1.2},{x:0.3999999999999999,y:-1.2},{x:1.2,y:-0.3999999999999999},{x:1.2,y:0.3999999999999999},{x:0.3999999999999999,y:1.2},{x:-0.3999999999999999,y:1.2},{x:-1.2,y:0.3999999999999999}]},allow_non_solids:true,image:\"rcd_sandbox\",image_only:true}], true)\r\n\r\n\tstatic RCD_FLUX = new this(122, \"Flux RCD\", \"Buildable. Used for automated construction. Consumes flux as fuel.\", false, 2, \"item/rcd_flux\", undefined, [{bounds:{x:2.5,y:2.5},shape:{verts:[{x:-1.2,y:-0.3999999999999999},{x:-0.3999999999999999,y:-1.2},{x:0.3999999999999999,y:-1.2},{x:1.2,y:-0.3999999999999999},{x:1.2,y:0.3999999999999999},{x:0.3999999999999999,y:1.2},{x:-0.3999999999999999,y:1.2},{x:-1.2,y:0.3999999999999999}]},allow_non_solids:true,image:\"rcd_flux\",image_only:true}], true)\r\n\r\n\tstatic SHIELD_CORE = new this(123, \"Shield Core\", \"A power source for shield generators.\", false, 0, \"item/shield_core\")\r\n\r\n\tstatic AMMO_STANDARD = new this(150, \"Standard Ammo\", \"Regular bullets.\", true, 0, \"item/ammo_standard\", {count:4,time:1,input:[{item:1,count:1},{item:2,count:1}],built_by:[\"Starter\",\"Munitions\"]})\r\n\r\n\tstatic AMMO_SCATTER = new this(151, \"ScatterShot Ammo\", \"Shoots multiple projectiles. Significant damage at close range, with knock-back.\", true, 0, \"item/ammo_scattershot\", {count:4,time:1,input:[{item:1,count:1},{item:2,count:1}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic AMMO_FLAK = new this(152, \"Flak Ammo\", \"Explodes into more bullets in flight.\", true, 0, \"item/ammo_flak\", {count:4,time:1,input:[{item:1,count:1},{item:2,count:1}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic AMMO_SNIPER = new this(153, \"Sniper Ammo\", \"Speedy. Gains power from bouncing.\", true, 0, \"item/ammo_sniper\", {count:4,time:1,input:[{item:1,count:1},{item:2,count:1}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic AMMO_PUNCH = new this(154, \"Punch Ammo\", \"Pushes objects away.\", true, 0, \"item/ammo_punch\", {count:4,time:1,input:[{item:1,count:1},{item:2,count:1}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic AMMO_YANK = new this(155, \"Yank Ammo\", \"Pulls objects.\", true, 0, \"item/ammo_yank\", {count:4,time:1,input:[{item:1,count:1},{item:2,count:1}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic AMMO_SLUG = new this(156, \"Slug Ammo\", \"Slow bullet. Gains speed and damage as it falls.\", true, 0, \"item/ammo_slug\", {count:4,time:1,input:[{item:1,count:1},{item:2,count:1}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic AMMO_TRASH = new this(157, \"Trash Box\", \"Low quality, but free! Decays over time.\", true, 0, \"item/ammo_trash\", {count:1,time:3,input:[],built_by:[\"Munitions\"]})\r\n\r\n\tstatic FUEL_BOOSTER_LOW = new this(159, \"Booster Fuel (Low Grade)\", \"Increases thruster power for a short time.\", false, 0, \"item/booster_low\", {count:1,time:30,input:[{item:2,count:16}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic FUEL_BOOSTER_HIGH = new this(160, \"Booster Fuel (High Grade)\", \"Increases thruster power for a short time.\", false, 2, \"item/booster_high\", {count:4,time:30,input:[{item:2,count:64},{item:5,count:1}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic VOID_ORB = new this(161, \"Void Orb\", \"DO NOT EAT!\", false, 10, \"item/void_orb\")\r\n\r\n\tstatic TURRET_BOOSTER_RAPID = new this(162, \"Turret Booster - Rapid Fire\", \"Boosts a re-configurable turret's fire rate by 50%, with reduced accuracy.\", false, 2, \"item/turret_booster_rapid\")\r\n\r\n\tstatic TURRET_BOOSTER_RAPID_USED = new this(163, \"Turret Booster - Rapid Fire (Depleted)\", \"Boosts a re-configurable turret's fire rate by 25%, with reduced accuracy. Nearly depleted!\", false, 2, \"item/turret_booster_rapid_used\")\r\n\r\n\tstatic TURRET_BOOSTER_PRESERVATION = new this(164, \"Turret Booster - Preservation\", \"Boosts a re-configurable turret's ammo preservation by 10%, with reduced rotational aiming limits.\", false, 2, \"item/turret_booster_preservation\")\r\n\r\n\tstatic TURRET_BOOSTER_PRESERVATION_USED = new this(165, \"Turret Booster - Preservation (Depleted)\", \"Boosts a re-configurable turret's ammo preservation by 5%, with reduced rotational aiming limits. Nearly depleted!\", false, 2, \"item/turret_booster_preservation_used\")\r\n\r\n\tstatic COOLING_CELL = new this(166, \"Cooling Cell\", \"Prevents machine cannons from damaging themselves.\", false, 0, \"item/cooling_cell\", {count:1,time:1,input:[{item:234,count:4}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic COOLING_CELL_HOT = new this(167, \"Cooling Cell (Hot)\", \"Will take some time to cool back down.\", false, 0, \"item/cooling_cell_hot\")\r\n\r\n\tstatic BURST_CHARGE = new this(168, \"Burst Charge\", \"Power source for burst cannons. Overcharging cannons may result in damage!\", false, 0, \"item/burst_charge\", {count:1,time:1,input:[{item:2,count:4}],built_by:[\"Munitions\"]})\r\n\r\n\tstatic HELM = new this(215, \"Helm (Packaged)\", \"Buildable. Used to pilot your ship.\", false, 0, \"item/helm\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{snap_y:true,offset:{x:0,y:0.3},bounds:{x:1.5,y:1.5},require_blocks:[{x:0,y:-1,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"helm_wheel\",image_only:true}])\r\n\r\n\tstatic HELM_STARTER = new this(216, \"Helm (Starter, Packaged)\", \"Buildable Starter Item. Used to pilot your ship.\", false, -1, \"item/helm_starter\", undefined, [{snap_y:true,offset:{x:0,y:0.3},bounds:{x:1.5,y:1.5},require_blocks:[{x:0,y:-1,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"helm_wheel_starter\",image_only:true}])\r\n\r\n\tstatic COMMS_STATION = new this(217, \"Comms Station (Packaged)\", \"Buildable. Used to communicate with other ships.\", false, 0, \"item/comms\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{snap_y:true,offset:{x:0,y:-0.25},bounds:{x:1.25,y:2.5},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"comms_station\",image_only:true}])\r\n\r\n\tstatic SIGN = new this(218, \"Sign (Packaged)\", \"Buildable. Can display a short message.\", false, 0, \"item/sign\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},allow_solids:true,image:\"sign\"}], true)\r\n\r\n\tstatic SPAWN_POINT = new this(219, \"Spawn Point (Packaged)\", \"Buildable. Can be set to spawn a specific rank.\", false, 0, \"item/spawn\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{snap_y:true,offset:{x:0,y:0.5},bounds:{x:1,y:2},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"spawn\"}], true)\r\n\r\n\tstatic DOOR = new this(220, \"Door (Packaged)\", \"Buildable. Can be restricted to specific ranks. Press R to rotate.\", false, 0, \"item/door\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,offset:{x:0.5,y:0},bounds:{x:2,y:0.45},image:\"door_full\"},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,offset:{x:0,y:0.5},bounds:{x:0.45,y:2},image:\"door_full\"}], true)\r\n\r\n\tstatic ITEM_HATCH = new this(221, \"Cargo Hatch (Packaged)\", \"Buildable. Drops items picked up by the ship.\", false, 0, \"item/item_hatch\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},allow_solids:true}])\r\n\r\n\tstatic ITEM_HATCH_STARTER = new this(222, \"Cargo Hatch (Starter, Packaged)\", \"Buildable Starter Item. Drops items picked up by the ship.\", false, -1, \"item/item_hatch_starter\", undefined, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},allow_solids:true}])\r\n\r\n\tstatic ITEM_EJECTOR = new this(223, \"Cargo Ejector (Packaged)\", \"Buildable. Ejects items from the ship.\", false, 0, \"item/item_ejector\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true},{snap_x:true,snap_y:true,bounds:{x:1,y:1},build_angle:\"Fixed\",image:\"arrow_shape\",image_only:true}])\r\n\r\n\tstatic TURRET_CONTROLLER = new this(224, \"Turret Controller (Packaged)\", \"Buildable. Controls adjacent turrets.\", false, 0, \"item/turret_controller\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true}])\r\n\r\n\tstatic TURRET_REMOTE = new this(226, \"Cannon (Packaged)\", \"Buildable. A normal cannon that you can use to shoot at stuff.\", false, 1, \"item/turret_rc\", undefined, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true}])\r\n\r\n\tstatic TURRET_REMOTE_STARTER = new this(227, \"Starter Cannon (Packaged)\", \"Buildable Starter Item. Slowly re-generates ammo when empty.\", false, -1, \"item/turret_rc_starter\", undefined, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true}])\r\n\r\n\tstatic TURRET_BURST = new this(228, \"Burst Cannon (Packaged)\", \"Buildable. Fires a burst of shots when supplied with burst charges. May damage itself.\", false, 1, \"item/turret_burst\", undefined, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true}])\r\n\r\n\tstatic TURRET_AUTO = new this(229, \"Machine Cannon (Packaged)\", \"Buildable. A fully automatic gun that takes time to wind up. Requires cooling.\", false, 1, \"item/turret_auto\", undefined, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true}])\r\n\r\n\tstatic THRUSTER = new this(230, \"Thruster (Packaged)\", \"Buildable. Moves your ship. Fuelled with explosives.\", false, 0, \"item/thruster\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true}])\r\n\r\n\tstatic THRUSTER_STARTER = new this(231, \"Thruster (Starter, Packaged)\", \"Buildable Starter Item. Moves your ship. Doesn't need fuel.\", false, -1, \"item/thruster_starter\", undefined, [{snap_x:true,snap_y:true,bounds:{x:0.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_CORNER\"}],allow_world:true}])\r\n\r\n\tstatic BLOCK = new this(232, \"Iron Block\", \"Buildable. Used for interior walls/floors.\", true, 0, \"item/block\", {count:1,time:1,input:[{item:1,count:2}],built_by:[\"Starter\",\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block:4,block_shaped:true}])\r\n\r\n\tstatic BLOCK_HYPER_RUBBER = new this(233, \"Hyper Rubber Block\", \"Buildable. Bouncy.\", true, 2, \"item/block_hrubber\", {count:1,time:1,input:[{item:4,count:2}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block:13,block_shaped:true}])\r\n\r\n\tstatic BLOCK_ICE_GLASS = new this(234, \"Hyper Ice Block\", \"Buildable. Low-friction ice that can't melt for some reason.\", true, 1, \"item/block_sglass\", undefined, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block:14,block_shaped:true}])\r\n\r\n\tstatic BLOCK_LADDER = new this(235, \"Ladder\", \"Buildable. You can climb them.\", true, 0, \"item/ladder\", {count:1,time:1,input:[{item:1,count:2}],built_by:[\"Starter\",\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block:5}])\r\n\r\n\tstatic BLOCK_WALKWAY = new this(236, \"Walkway\", \"Buildable. Blocks players but not items.\", true, 0, \"item/walkway\", {count:1,time:1,input:[{item:1,count:2}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block:6,block_shaped:true}])\r\n\r\n\tstatic BLOCK_ITEM_NET = new this(237, \"Item Net\", \"Buildable. Blocks items but not players.\", true, 0, \"item/item_net\", {count:1,time:1,input:[{item:1,count:2}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block:7,block_shaped:true}])\r\n\r\n\tstatic PAINT = new this(239, \"Paint\", \"Used to paint your ship's background. Hold R to select color.\", true, 0, \"item/color_panel\", {count:1,time:1,input:[{item:1,count:2}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block_is_colored:true,allow_world:true,allow_any:true}], true)\r\n\r\n\tstatic EXPANDO_BOX = new this(240, \"Expando Box (Packaged)\", \"Buildable. Flexible bulk storage.\", false, 0, \"item/exbox\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{bounds:{x:2,y:2},shape:{verts:[{x:-0.95,y:-0.75},{x:-0.75,y:-0.95},{x:0.75,y:-0.95},{x:0.95,y:-0.75},{x:0.95,y:0.75},{x:0.75,y:0.95},{x:-0.75,y:0.95},{x:-0.95,y:0.75}]},allow_non_solids:true,build_angle:\"Any\",image:\"exbox_base\",image_only:true}])\r\n\r\n\tstatic FREEPORT_ANCHOR = new this(241, \"Safety Anchor\", \"Buildable. Prevents teleports out of safe zones while placed.\", false, 0, \"item/anchor\", {count:1,time:20,input:[{item:1,count:16}],built_by:[\"Engineering\"]}, [{bounds:{x:3,y:3},snap_x:true,snap_y:true,image:\"anchor\"}])\r\n\r\n\tstatic PUSHER = new this(242, \"Pusher (Packaged)\", \"Buildable. Pushes things.\", false, 2, \"item/pusher\", {count:1,time:10,input:[{item:1,count:8},{item:5,count:4}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},image:\"loader_base\",image_anim:\"pusher\",image_only:true}])\r\n\r\n\tstatic ITEM_LAUNCHER = new this(243, \"Item Launcher (Packaged)\", \"Buildable. Launches items at a configurable speed and angle.\", false, 2, \"item/item_launcher\", {count:1,time:10,input:[{item:1,count:8},{item:4,count:8},{item:5,count:8}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},image:\"item_launcher\",image_only:true}], true)\r\n\r\n\tstatic LOADER = new this(244, \"DEPRECATED ITEM\", \"DEPRECATED ITEM\", false, 2, \"item/loader_old\")\r\n\r\n\tstatic RECYCLER = new this(245, \"Recycler (Packaged)\", \"Buildable. Converts items back into resources.\", false, 0, \"item/recycler\", {count:1,time:10,input:[{item:1,count:8}],built_by:[\"Engineering\"]}, [{snap_y:true,offset:{x:0,y:0.25},bounds:{x:2.25,y:3.5},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"recycler\",image_only:true}])\r\n\r\n\tstatic FABRICATOR_GOLD = new this(246, \"Fabricator (Legacy, Packaged)\", \"Buildable. It doesn't do anything.\", false, 9, \"item/fabricator_legacy\", undefined, [{snap_y:true,bounds:{x:2.5,y:3},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"fab_lod\",image_only:true}], undefined, \"Legacy\")\r\n\r\n\tstatic FABRICATOR_STARTER = new this(247, \"Fabricator (Starter, Packaged)\", \"Buildable Starter Item. Used to craft basic items.\", false, -1, \"item/fabricator_starter\", undefined, [{snap_y:true,bounds:{x:2.5,y:3},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"fab_lod\",image_only:true}], undefined, \"Starter\")\r\n\r\n\tstatic FABRICATOR_MUNITIONS = new this(248, \"Fabricator (Munitions, Packaged)\", \"Buildable. Used to craft ammo and other consumables.\", false, 0, \"item/fabricator_munitions\", {count:1,time:20,input:[{item:1,count:16}],built_by:[\"Starter\",\"Engineering\"]}, [{snap_y:true,bounds:{x:2.5,y:3},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"fab_lod\",image_only:true}], undefined, \"Munitions\")\r\n\r\n\tstatic FABRICATOR_ENGINEERING = new this(249, \"Fabricator (Engineering, Packaged)\", \"Buildable. Used to craft tools, blocks, and security items.\", false, 0, \"item/fabricator_engineering\", {count:1,time:20,input:[{item:1,count:16}],built_by:[\"Starter\",\"Engineering\"]}, [{snap_y:true,bounds:{x:2.5,y:3},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"fab_lod\",image_only:true}], undefined, \"Engineering\")\r\n\r\n\tstatic FABRICATOR_MACHINE_DEPRECATED = new this(250, \"Fabricator (DEPRECATED, Packaged)\", \"DEPRECATED ITEM\", false, 0, \"item/fabricator_machine\", {count:1,time:20,input:[{item:1,count:16}],built_by:[]}, [{snap_y:true,bounds:{x:2.5,y:3},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"fab_lod\",image_only:true}], undefined, \"Engineering\")\r\n\r\n\tstatic FABRICATOR_EQUIPMENT = new this(251, \"Fabricator (Equipment, Packaged)\", \"Buildable. Used to craft wearable equipment.\", false, 0, \"item/fabricator_equipment\", {count:1,time:20,input:[{item:1,count:16}],built_by:[\"Engineering\"]}, [{snap_y:true,bounds:{x:2.5,y:3},require_blocks:[{x:0,y:-2,block:\"_BUILD_SURFACE\"}],allow_solids:true,image:\"fab_lod\",image_only:true}], undefined, \"Equipment\")\r\n\r\n\tstatic LOADER_NEW = new this(252, \"Loader (Packaged)\", \"Buildable. Loads items into machines.\", false, 2, \"item/loader\", {count:1,time:10,input:[{item:1,count:8},{item:5,count:2}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},image:\"loader_base\",image_anim:\"loader\",image_only:true}])\r\n\r\n\tstatic LOCKDOWN_OVERRIDE_GREEN = new this(253, \"Lockdown Override Unit\", \"Buildable. Allows a limited number of green rarity items to be removed from a ship while in lockdown mode.\", false, 2, \"item/lockdown_override_green\", {count:1,time:20,input:[{item:5,count:64}],built_by:[\"Engineering\"]}, [{bounds:{x:1,y:1},snap_x:true,snap_y:true,image:\"lockdown_override_green\",is_lockdown_override:true}], true)\r\n\r\n\tstatic BLOCK_ANNIHILATOR = new this(254, \"Annihilator Tile\", \"[TEST EXCLUSIVE] Buildable. Destroys objects.\", true, 0, \"item/annihilator_tile\", undefined, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block:15}])\r\n\r\n\tstatic FLUID_TANK = new this(255, \"Fluid Tank\", \"Buildable. Stores fluids.\", false, 0, \"item/tank\", {count:1,time:20,input:[{item:1,count:64}],built_by:[\"Engineering\"]}, [{bounds:{x:2,y:2},snap_x:true,snap_y:true,offset:{x:0.5,y:0.5},offset2:{x:-0.5,y:-0.5},image:\"tank\"}])\r\n\r\n\tstatic SHIELD_GENERATOR = new this(256, \"Shield Generator\", \"Buildable. Generates shield fluid.\", false, 1, \"item/shield_generator\", undefined, [{bounds:{x:4,y:2},snap_x:true,snap_y:true,offset:{x:0.5,y:0.5},offset2:{x:-0.5,y:-0.5},image:\"shield_generator\",build_angle:\"Fixed\",image_only:true}])\r\n\r\n\tstatic SHIELD_PROJECTOR = new this(257, \"Shield Projector\", \"Buildable. Used to activate an adjacent bank of shield tanks.\", false, 1, \"item/shield_projector\", undefined, [{bounds:{x:1,y:1},snap_x:true,snap_y:true,image:\"shield_projector_1\"}])\r\n\r\n\tstatic TURRET_CONTROLLER_NEW = new this(258, \"Enhanced Turret Controller\", \"Buildable. Used to control turrets remotely.\", false, 2, \"item/turret_controller_new\", undefined, [{bounds:{x:1,y:1},snap_x:true,snap_y:true}])\r\n\r\n\tstatic BULK_EJECTOR = new this(259, \"Bulk Ejector (Packaged)\", \"Buildable. WIP / UNOBTAINABLE\", false, 2, \"item/bulk_ejector\", undefined, [{bounds:{x:2,y:2},snap_x:true,snap_y:true,offset:{x:0.5,y:0.5},offset2:{x:-0.5,y:-0.5},build_angle:\"Fixed\"}])\r\n\r\n\tstatic BULK_BAY_MARKER = new this(260, \"Bulk Loading Bay Designator (Packaged)\", \"Buildable. WIP / UNOBTAINABLE\", false, 2, \"item/bulk_bay_marker\", undefined, [{bounds:{x:1,y:1},snap_x:true,snap_y:true}])\r\n\r\n\tstatic NAV_UNIT = new this(261, \"Navigation Unit (Starter, Packaged)\", \"Buildable Starter Item. Used to select a destination zone and initiate emergency warps. Also functions as a simple shield projector.\", false, -1, \"item/nav_unit\", undefined, [{bounds:{x:1,y:1},snap_x:true,snap_y:true}])\r\n\r\n\tstatic BLOCK_LOGISTICS_RAIL = new this(262, \"Logistics Rail\", \"Buildable. Used by munitions supply units to deliver munitions.\", true, 0, \"item/logistics_rail\", {count:1,time:1,input:[{item:1,count:2}],built_by:[\"Engineering\"]}, [{snap_x:true,snap_y:true,bounds:{x:1,y:1},block:16}])\r\n\r\n\tstatic TURRET_ACUTE = new this(263, \"Acute Cannon (Packaged)\", \"Buildable. A gun with a limited firing angle, and a slightly improved fire-rate.\", false, 1, \"item/turret_acute\", undefined, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true}])\r\n\r\n\tstatic MUNITIONS_SUPPLY_UNIT = new this(264, \"Munitions Supply Unit (Packaged)\", \"Buildable. Sends munitions to turrets via logistics rails.\", false, 1, \"item/msu\", undefined, [{bounds:{x:2,y:2},snap_x:true,snap_y:true,offset:{x:0.5,y:0.5},offset2:{x:-0.5,y:-0.5}}])\r\n\r\n\tstatic TURRET_OBTUSE = new this(265, \"Obtuse Cannon (Packaged)\", \"Buildable. A gun which preserves ammo, and has a slightly reduced fire-rate.\", false, 1, \"item/turret_obtuse\", undefined, [{buildDirection:\"HORIZONTAL\",snap_x:true,snap_y:true,bounds:{x:2.8,y:0.8},require_blocks:[{x:0,y:0,block:\"HULL_H\"},{x:1,y:0,block:\"HULL_H\"},{x:-1,y:0,block:\"HULL_H\"}],allow_world:true},{buildDirection:\"VERTICAL\",snap_x:true,snap_y:true,bounds:{x:0.8,y:2.8},require_blocks:[{x:0,y:0,block:\"HULL_V\"},{x:0,y:1,block:\"HULL_V\"},{x:0,y:-1,block:\"HULL_V\"}],allow_world:true}])\r\n\r\n\tstatic ETERNAL_WRENCH_BRONZE = new this(300, \"Eternal Bronze Wrench\", \"Patron reward. Will not despawn. Thank you for your support! \uD83D\uDE00\", false, -1, \"item/wrench_bronze_et\")\r\n\r\n\tstatic ETERNAL_WRENCH_SILVER = new this(301, \"Eternal Silver Wrench\", \"Patron reward. Will not despawn. Thank you for your support! \uD83D\uDE00\", false, -1, \"item/wrench_silver_et\")\r\n\r\n\tstatic ETERNAL_WRENCH_GOLD = new this(302, \"Eternal Gold Wrench\", \"Patron reward. Will not despawn. Thank you for your support! \uD83D\uDE00\", false, -1, \"item/wrench_gold_et\")\r\n\r\n\tstatic ETERNAL_WRENCH_FLUX = new this(303, \"Eternal Flux Wrench\", \"Patron reward. Will not despawn. Thank you for your support! \uD83D\uDE00\", false, -1, \"item/wrench_flux_et\")\r\n\r\n\tstatic ETERNAL_WRENCH_PLATINUM = new this(304, \"Eternal Platinum Wrench\", \"Patron reward. Will not despawn. Thank you for your support! \uD83D\uDE00\", false, -1, \"item/wrench_platinum_et\")\r\n\r\n\tstatic TROPHY_NULL = new this(305, \"Gold Null Trophy\", \"RIP 0x items.\", false, 9, \"item/trophy_null\")\r\n\r\n\tstatic TROPHY_BUG_HUNTER = new this(306, \"Bug Hunter Trophy\", \"Rewarded for reporting a serious problem.\", false, -1, \"item/trophy_bug\")\r\n\r\n\tstatic TROPHY_NULL_SILVER = new this(307, \"Silver Null Trophy\", \"RIP 0x items.\", false, 9, \"item/trophy_null_silver\")\r\n\r\n\tstatic PAT_WRENCH_BRONZE = new this(308, \"Bronze Wrench\", \"Patron reward. Thank you for your support! \uD83D\uDE00\", false, 0, \"item/wrench_bronze\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic PAT_WRENCH_SILVER = new this(309, \"Silver Wrench\", \"Patron reward. Thank you for your support! \uD83D\uDE00\", false, 0, \"item/wrench_silver\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic PAT_WRENCH_GOLD = new this(310, \"Gold Wrench\", \"Patron reward. Thank you for your support! \uD83D\uDE00\", false, 0, \"item/wrench_gold\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic PAT_WRENCH_PLATINUM = new this(311, \"Platinum Wrench\", \"Patron reward. Thank you for your support! \uD83D\uDE00\", false, 0, \"item/wrench_platinum\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic PAT_WRENCH_FLUX = new this(312, \"Flux Wrench\", \"Patron reward. Thank you for your support! \uD83D\uDE00\", false, 0, \"item/wrench_flux\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Starter\",\"Engineering\"]})\r\n\r\n\tstatic COS_LESSER_CAP = new this(313, \"Lesser Cap\", \"Cosmetic Equipment (Head). Patron reward.\", false, 0, \"item/cap\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_GOOFY_GLASSES = new this(314, \"Goofy Glasses\", \"Cosmetic Equipment (Face). Patron reward.\", false, 0, \"item/glasses\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_SHADES = new this(315, \"Shades\", \"Cosmetic Equipment (Face). Patron reward.\", false, 0, \"item/shades\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_TOP_HAT = new this(316, \"Top Hat\", \"Cosmetic Equipment (Head). Patron reward.\", false, 0, \"item/top_hat\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_HORNS = new this(317, \"Demon Horns\", \"Cosmetic Equipment (Head). Patron reward.\", false, 0, \"item/horns\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_MASK_ALIEN = new this(318, \"Alien Mask\", \"Cosmetic Equipment (Face). Patron reward.\", false, 0, \"item/mask_alien\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_MASK_CLOWN = new this(319, \"Clown Mask\", \"Cosmetic Equipment (Face). Patron reward.\", false, 0, \"item/mask_clown\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_MASK_GOBLIN = new this(320, \"Goblin Mask\", \"Cosmetic Equipment (Face). Patron reward.\", false, 0, \"item/mask_goblin\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_PUMPKIN = new this(321, \"Pumpkin\", \"Cosmetic Equipment (Face). Patron reward.\", false, 0, \"item/mask_pumpkin\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic COS_WITCH_HAT = new this(322, \"Witch Hat\", \"Cosmetic Equipment (Head). Patron reward.\", false, 0, \"item/witch_hat\", {count:1,time:5,input:[{item:1,count:4}],built_by:[\"Equipment\"]})\r\n\r\n\tstatic GREMLIN_RED = new this(323, \"Wild Gremlin (Red)\", \"It looks upset.\", false, 2, \"item/gremlin_red\")\r\n\r\n\tstatic GREMLIN_ORANGE = new this(324, \"Wild Gremlin (Orange)\", \"It looks upset.\", false, 2, \"item/gremlin_orange\")\r\n\r\n\tstatic GREMLIN_YELLOW = new this(325, \"Wild Gremlin (Yellow)\", \"It looks upset.\", false, 2, \"item/gremlin_yellow\")\r\n\r\n\tstatic ELIMINATION_LOOT_BOX = new this(326, \"Elimination Loot Box\", \"Recycle in a safe zone to unbox.\", true, 2, \"item/loot_box\")\r\n\r\n\tstatic ELIMINATION_LOOT_BOX_LOCKED = new this(327, \"Elimination Loot Box (Locked)\", \"Recycle in a safe zone to unbox.\", true, 2, \"item/loot_box_locked\")\r\n\tstatic { this.end() }\r\n}\r\n", "/* eslint-disable no-irregular-whitespace */\r\nimport { Enum } from \"./Enum.js\"\r\n\r\n/**\r\n * The shape names and vertices are taken directly from the game source. The names may not be\r\n * descriptive, but you don't usually need to refer to them by name. Additionally, the constants\r\n * have a comment that visually represents the shape with braille ascii art, generated from the vertices.\r\n *\r\n * The {@link vertices} are sorted to prevent them from overlapping.\r\n *\r\n * <small>Generated using test.drednot.io version: `Sat Nov 2 23:16:10 MDT 2024 / 07f2ca2`</small>\r\n */\r\nexport class Shape extends Enum<number> {\r\n\tconstructor(v: number, readonly vertices: { x: number, y: number }[]) {\r\n\t\tsuper(v)\r\n\t}\r\n\r\n\tget isBuildSurface() { return Shape.buildSurfaceShapes.has(this) }\r\n\r\n\tstatic BLOCK = new this(0, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic RAMP_UR = new this(1, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic RAMP_DR = new this(2, [{x:-0.5,y:-0.5},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic RAMP_DL = new this(3, [{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic RAMP_UL = new this(4, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5}])\r\n\r\n\tstatic SLAB_U = new this(5, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0},{x:-0.5,y:0}])\r\n\r\n\tstatic SLAB_R = new this(6, [{x:-0.5,y:-0.5},{x:0,y:-0.5},{x:0,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic SLAB_D = new this(7, [{x:-0.5,y:0},{x:0.5,y:0},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic SLAB_L = new this(8, [{x:0,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:0,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_1_U = new this(9, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:-0.5,y:0}])\r\n\r\n\tstatic HALF_RAMP_1_R = new this(10, [{x:-0.5,y:-0.5},{x:0,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_1_D = new this(11, [{x:0.5,y:0},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_1_L = new this(12, [{x:0,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_2_U = new this(13, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_2_R = new this(14, [{x:-0.5,y:-0.5},{x:0,y:-0.5},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_2_D = new this(15, [{x:-0.5,y:0},{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_2_L = new this(16, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:0,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_1_UI = new this(17, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0}])\r\n\r\n\tstatic HALF_RAMP_1_RI = new this(18, [{x:-0.5,y:-0.5},{x:0,y:-0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_1_DI = new this(19, [{x:-0.5,y:0},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_1_LI = new this(20, [{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:0,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_2_UI = new this(21, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:-0.5,y:0}])\r\n\r\n\tstatic HALF_RAMP_2_RI = new this(22, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_2_DI = new this(23, [{x:-0.5,y:-0.5},{x:0.5,y:0},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_2_LI = new this(24, [{x:0,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_3_U = new this(25, [{x:-0.5,y:0},{x:0.5,y:0},{x:-0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_3_R = new this(26, [{x:0,y:-0.5},{x:0.5,y:0.5},{x:0,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_3_D = new this(27, [{x:0.5,y:-0.5},{x:0.5,y:0},{x:-0.5,y:0}])\r\n\r\n\tstatic HALF_RAMP_3_L = new this(28, [{x:-0.5,y:-0.5},{x:0,y:-0.5},{x:0,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_3_UI = new this(29, [{x:-0.5,y:0},{x:0.5,y:0},{x:0.5,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_3_RI = new this(30, [{x:0,y:-0.5},{x:0.5,y:-0.5},{x:0,y:0.5}])\r\n\r\n\tstatic HALF_RAMP_3_DI = new this(31, [{x:-0.5,y:-0.5},{x:0.5,y:0},{x:-0.5,y:0}])\r\n\r\n\tstatic HALF_RAMP_3_LI = new this(32, [{x:0,y:-0.5},{x:0,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic QUARTER_UR = new this(33, [{x:-0.5,y:-0.5},{x:0,y:-0.5},{x:0,y:0},{x:-0.5,y:0}])\r\n\r\n\tstatic QUARTER_DR = new this(34, [{x:-0.5,y:0},{x:0,y:0},{x:0,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic QUARTER_DL = new this(35, [{x:0,y:0},{x:0.5,y:0},{x:0.5,y:0.5},{x:0,y:0.5}])\r\n\r\n\tstatic QUARTER_UL = new this(36, [{x:0,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0},{x:0,y:0}])\r\n\r\n\tstatic QUARTER_RAMP_UR = new this(37, [{x:-0.5,y:-0.5},{x:0,y:-0.5},{x:-0.5,y:0}])\r\n\r\n\tstatic QUARTER_RAMP_DR = new this(38, [{x:-0.5,y:0},{x:0,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic QUARTER_RAMP_DL = new this(39, [{x:0.5,y:0},{x:0.5,y:0.5},{x:0,y:0.5}])\r\n\r\n\tstatic QUARTER_RAMP_UL = new this(40, [{x:0,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0}])\r\n\r\n\tstatic BEVEL_UR = new this(41, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0},{x:0,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic BEVEL_DR = new this(42, [{x:-0.5,y:-0.5},{x:0,y:-0.5},{x:0.5,y:0},{x:0.5,y:0.5},{x:-0.5,y:0.5}])\r\n\r\n\tstatic BEVEL_DL = new this(43, [{x:0,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:-0.5,y:0.5},{x:-0.5,y:0}])\r\n\r\n\tstatic BEVEL_UL = new this(44, [{x:-0.5,y:-0.5},{x:0.5,y:-0.5},{x:0.5,y:0.5},{x:0,y:0.5},{x:-0.5,y:0}])\r\n\tstatic { this.end() }\r\n\r\n\tstatic buildSurfaceShapes = new Set([this.BLOCK,this.RAMP_DR,this.RAMP_DL,this.SLAB_D,this.HALF_RAMP_1_D,this.HALF_RAMP_2_R,this.HALF_RAMP_2_D,this.HALF_RAMP_1_DI,this.HALF_RAMP_2_DI,this.HALF_RAMP_2_LI,this.BEVEL_DR,this.BEVEL_DL])\r\n}\r\n", "import { BPCmd } from \"./BPCmd.js\"\r\nimport { BuildBits } from \"./BuildBits.js\"\r\nimport { Item } from \"./constants/ItemEnum.js\"\r\nimport { Shape } from \"./constants/ShapeEnum.js\"\r\nimport { CmdType, BuildCmdIndex as Index } from \"./constants/private.js\"\r\nimport { BuildCmdOptions } from \"./types.js\"\r\n\r\nexport class BuildCmd extends BPCmd implements BuildCmdOptions {\r\n\r\n\tx: BuildCmdOptions[\"x\"]\r\n\ty: BuildCmdOptions[\"y\"]\r\n\titem: BuildCmdOptions[\"item\"]\r\n\tbits: BuildCmdOptions[\"bits\"]\r\n\tshape: BuildCmdOptions[\"shape\"]\r\n\r\n\tconstructor(input?: BuildCmdOptions) {\r\n\t\tsuper()\r\n\t\tfor (const prop in this)\r\n\t\t\tObject.defineProperty(this, prop, { configurable: false })\r\n\t\tif (input != null) {\r\n\t\t\tif (Object.getPrototypeOf(input) != Object.prototype)\r\n\t\t\t\tthrow new TypeError(\"input must be an object literal\")\r\n\t\t\tthis.set(input)\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tset(input: BuildCmdOptions): this {\r\n\t\treturn Object.assign(this, input)\r\n\t}\r\n\r\n\r\n\tfillFromArray(arr: any[]) {\r\n\t\tthis.x = arr[Index.X]\r\n\t\tthis.y = arr[Index.Y]\r\n\t\tthis.item = Item.getById(arr[Index.ITEM])\r\n\t\tthis.bits = typeof arr[Index.BITS] != \"undefined\" ? new BuildBits(arr[Index.BITS]) : undefined\r\n\t\tthis.shape = Shape.getByValue(arr[Index.SHAPE])\r\n\t\treturn this\r\n\t}\r\n\r\n\r\n\ttoArray() {\r\n\t\tconst arr = []\r\n\t\tarr[Index.TYPE] = CmdType.BUILD\r\n\r\n\t\tif (this.x !== undefined)\r\n\t\t\tarr[Index.X] = this.x\r\n\r\n\t\tif (this.y !== undefined)\r\n\t\t\tarr[Index.Y] = this.y\r\n\r\n\t\tif (this.item !== undefined)\r\n\t\t\tarr[Index.ITEM] = this.item.id\r\n\r\n\t\tif (this.bits !== undefined)\r\n\t\t\tarr[Index.BITS] = this.bits.int\r\n\r\n\t\tif (this.shape !== undefined && this.shape != Shape.BLOCK) { // game defaults to block\r\n\t\t\tarr[Index.SHAPE] = this.shape.enumValue\r\n\r\n\t\t\tif (typeof arr[Index.BITS] == \"undefined\") // can't have shape without bits\r\n\t\t\t\tarr[Index.BITS] = 1n\r\n\t\t}\r\n\t\treturn arr\r\n\t}\r\n\r\n\tclone(): BuildCmd {\r\n\t\tconst clone = Object.assign(Object.create(Object.getPrototypeOf(this)), this)\r\n\t\tif (this.bits)\r\n\t\t\tclone.bits = this.bits.clone()\r\n\t\treturn clone\r\n\t}\r\n}\r\n", "import { Enum } from \"./Enum.js\"\r\n\r\nexport const PREFIX = \"DSA:\"\r\n\r\n/** The mode of a pusher config. */\r\nexport class PusherMode extends Enum<number> {\r\n\tstatic PUSH = new this(0)\r\n\tstatic PULL = new this(1)\r\n\tstatic DO_NOTHING = new this(2)\r\n\tstatic { this.end() }\r\n}\r\n\r\n/** The pickup or drop point of a loader config. */\r\nexport class LoaderPoint extends Enum<number> {\r\n\tstatic TOP_LEFT = new this(0)\r\n\tstatic TOP = new this(1)\r\n\tstatic TOP_RIGHT = new this(2)\r\n\tstatic LEFT = new this(3)\r\n\tstatic RIGHT = new this(4)\r\n\tstatic BOTTOM_LEFT = new this(5)\r\n\tstatic BOTTOM = new this(6)\r\n\tstatic BOTTOM_RIGHT = new this(7)\r\n\tstatic { this.end() }\r\n}\r\n\r\n/** The priority of a loader config. */\r\nexport class LoaderPriority extends Enum<number> {\r\n\tstatic LOW = new this(0)\r\n\tstatic NORMAL = new this(1)\r\n\tstatic HIGH = new this(2)\r\n\tstatic { this.end() }\r\n}\r\n\r\n/** The mode of a filter config. */\r\nexport class FilterMode extends Enum<number> {\r\n\tstatic ALLOW_ALL = new this(0)\r\n\tstatic BLOCK_FILTER_ONLY = new this(1)\r\n\tstatic ALLOW_FILTER_ONLY = new this(2)\r\n\tstatic BLOCK_ALL = new this(3)\r\n\tstatic { this.end() }\r\n}\r\n\r\nexport class FixedAngle extends Enum<number> {\r\n\tstatic RIGHT = new this(0)\r\n\tstatic UP = new this(1)\r\n\tstatic LEFT = new this(2)\r\n\tstatic DOWN = new this(3)\r\n\tstatic { this.end() }\r\n}\r\n", "import { BPCmd } from \"./BPCmd.js\"\r\nimport { Item } from \"./constants/ItemEnum.js\"\r\nimport { CfgMsgKey, CmdType, ConfigCmdIndex as Index, LoaderCfgIndex, PusherCfgIndex } from \"./constants/private.js\"\r\nimport { FilterMode, FixedAngle, LoaderPoint, LoaderPriority, PusherMode } from \"./constants/public.js\"\r\nimport { ConfigCmdOptions, LoaderConfig, PusherConfig } from \"./types.js\"\r\n\r\nlet defaults: Required<ConfigCmdOptions> = {\r\n\tfilterMode: FilterMode.ALLOW_ALL,\r\n\tfilterItems: [Item.NULL, Item.NULL, Item.NULL],\r\n\tangle: 0,\r\n\tfixedAngle: FixedAngle.RIGHT,\r\n\tpusher: {\r\n\t\tdefaultMode: PusherMode.DO_NOTHING,\r\n\t\tfilteredMode: PusherMode.PUSH,\r\n\t\tangle: 0,\r\n\t\ttargetSpeed: 20,\r\n\t\tfilterByInventory: false,\r\n\t\tmaxBeamLength: 1000\r\n\t},\r\n\tloader: {\r\n\t\tpickupPoint: LoaderPoint.LEFT,\r\n\t\tdropPoint: LoaderPoint.RIGHT,\r\n\t\tpriority: LoaderPriority.NORMAL,\r\n\t\tstackLimit: 16,\r\n\t\tcycleTime: 20,\r\n\t\trequireOutputInventory: false,\r\n\t\twaitForStackLimit: false\r\n\t}\r\n}\r\n\r\nconst msgKey_prop: { [K in typeof CfgMsgKey[keyof typeof CfgMsgKey]]: keyof ConfigCmdOptions } = {\r\n\tfilter_config: \"filterMode\",\r\n\tfilter_items: \"filterItems\",\r\n\tangle: \"angle\",\r\n\tangle_fixed: \"fixedAngle\",\r\n\tconfig_pusher: \"pusher\",\r\n\tconfig_loader: \"loader\"\r\n}\r\nfor (const key in msgKey_prop) { msgKey_prop[msgKey_prop[key]] = key }\r\n\r\nexport class ConfigCmd extends BPCmd implements ConfigCmdOptions {\r\n\r\n\tstatic get defaults() {\r\n\t\treturn defaults\r\n\t}\r\n\tstatic set defaults(input) {\r\n\t\tif (input != null && Object.getPrototypeOf(input) != Object.prototype)\r\n\t\t\tthrow new TypeError(\"defaults can only be set to an object literal\")\r\n\t\tdefaults = input\r\n\t}\r\n\r\nrawData: Uint8Array\r\n\r\n\tfilterMode: ConfigCmdOptions[\"filterMode\"]\r\n\tfilterItems: ConfigCmdOptions[\"filterItems\"]\r\n\tangle: ConfigCmdOptions[\"angle\"]\r\n\tfixedAngle: ConfigCmdOptions[\"fixedAngle\"]\r\n\tpusher: ConfigCmdOptions[\"pusher\"] = {}\r\n\tloader: ConfigCmdOptions[\"loader\"] = {}\r\n\r\n\r\n\tconstructor(input?: ConfigCmdOptions) {\r\n\t\tsuper()\r\n\t\tfor (const prop in this)\r\n\t\t\tObject.defineProperty(this, prop, { configurable: false })\r\n\t\tif (input != null) {\r\n\t\t\tif (Object.getPrototypeOf(input) != Object.prototype)\r\n\t\t\t\tthrow new TypeError(\"input must be an object literal\")\r\n\t\t\tthis.set(input)\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tset(input: ConfigCmdOptions): this {\r\n\t\treturn Object.assign(this, input)\r\n\t}\r\n\r\n\r\n\tfillFromArray(arr: any[]) {\r\n\t\tif (arr[Index.DATA] == null)\r\n\t\t\treturn this\r\n\r\n\t\tif (arr[Index.DATA] instanceof Uint8Array)\r\n\t\t\treturn this.rawData = arr[Index.DATA], this\r\n\r\n\t\tarr = arr[Index.DATA]\r\n\r\n\t\tfor (let i = 0; i < arr.length; i++) {\r\n\t\t\tif (i <= 1) continue // ignore first 2 zeros, unknown\r\n\t\t\tif (typeof arr[i] == \"string\" // assume a string = key\r\n\t\t\t\t&& arr[i + 1] === 0 // assume following 0 means value next\r\n\t\t\t) {\r\n\t\t\t\tconst msgKey = arr[i]\r\n\t\t\t\tlet val = arr[i + 2]\r\n\r\n\t\t\t\tif (Array.isArray(val))\r\n\t\t\t\t\tval = cfgArrToObj(msgKey, val) ?? val\r\n\r\n\t\t\t\tthis[msgKey_prop[msgKey] ?? msgKey] = val\r\n\t\t\t\ti += 2\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this\r\n\t}\r\n\r\n\r\n\tfillDataFromArray(data: any[]) {\r\n\t\tconst arr = []\r\n\t\tarr[Index.TYPE] = CmdType.CONFIG\r\n\t\tarr[Index.DATA] = data\r\n\t\treturn this.fillFromArray(arr)\r\n\t}\r\n\r\n\r\n\ttoArray() {\r\n\t\tconst arr = []\r\n\t\tarr[Index.TYPE] = CmdType.CONFIG\r\n\r\n\t\tif (this.isRaw) {\r\n\t\t\tarr[Index.DATA] = this.rawData\r\n\t\t\treturn arr\r\n\t\t}\r\n\r\n\t\t// follows the same format commented in fillFromArray\r\n\t\tarr[Index.DATA] = [0, 0]\r\n\t\tfor (const prop of Object.keys(this)) {\r\n\t\t\tlet val = structuredClone(this[prop])\r\n\t\t\tconst msgKey = msgKey_prop[prop] ?? prop\r\n\r\n\t\t\tif (val === undefined) continue // undefined values are meant to be excluded\r\n\r\n\t\t\t// enum FILTER_CONFIG\r\n\t\t\tif (msgKey == CfgMsgKey.FILTER_CONFIG) {\r\n\t\t\t\tval = [(val as FilterMode ?? defaults.filterMode).enumValue]\r\n\t\t\t}\r\n\t\t\t// enum FILTER_ITEMS\r\n\t\t\telse if (msgKey == CfgMsgKey.FILTER_ITEMS) {\r\n\t\t\t\tif (val === null)\r\n\t\t\t\t\tval = defaults.filterItems\r\n\t\t\t\telse\r\n\t\t\t\t\tfor (let i = 0; i < val.length; i++)\r\n\t\t\t\t\t\tval[i] = (val[i] as Item ?? defaults.filterItems[i]).enumValue\r\n\t\t\t}\r\n\t\t\t// enum ANGLE_FIXED\r\n\t\t\telse if (msgKey == CfgMsgKey.ANGLE_FIXED) {\r\n\t\t\t\tval = [(val as FixedAngle ?? defaults.fixedAngle).enumValue]\r\n\t\t\t}\r\n\t\t\t// other {object}\r\n\t\t\telse if (val === null || Object.getPrototypeOf(val) == Object.prototype) {\r\n\t\t\t\tif (val !== null && !Object.keys(val).length)\r\n\t\t\t\t\tcontinue // ignore empty\r\n\t\t\t\tval = cfgObjToArr(msgKey, val)\r\n\t\t\t}\r\n\t\t\t// other non-array values\r\n\t\t\telse if (!Array.isArray(val)) {\r\n\t\t\t\tval = [val]\r\n\t\t\t}\r\n\r\n\t\t\tarr[Index.DATA].push(msgKey, 0, val)\r\n\t\t}\r\n\t\treturn arr\r\n\t}\r\n\r\n\r\n\tget isRaw() {\r\n\t\treturn this.rawData instanceof Uint8Array\r\n\t}\r\n\r\n\r\n\tequals(target: ConfigCmd) {\r\n\t\treturn deepEquals(this, target)\r\n\t}\r\n\r\n\tclone(): ConfigCmd {\r\n\t\tconst clone = Object.assign(Object.create(Object.getPrototypeOf(this)), this)\r\n\t\tclone.pusher = { ...this.pusher }\r\n\t\tclone.loader = { ...this.loader }\r\n\t\tif (this.rawData)\r\n\t\t\tclone.rawData = new Uint8Array(this.rawData)\r\n\t\treturn clone\r\n\t}\r\n}\r\n\r\nfunction deepEquals(a, b): boolean {\r\n\tif (a === b) return true\r\n\tif (a?.constructor !== b?.constructor) return false\r\n\tconst keysA = Object.keys(a)\r\n\treturn a && b\r\n\t\t&& typeof a === \"object\" && typeof b === \"object\"\r\n\t\t? (keysA.length === Object.keys(b).length\r\n\t\t\t&& keysA.every(key => deepEquals(a[key], b[key])))\r\n\t\t: a === b\r\n}\r\n\r\nfunction cfgArrToObj(key: string, arr: any[]) {\r\n\tswitch (key) {\r\n\t\tcase CfgMsgKey.ANGLE:\r\n\t\t\treturn arr[0]\r\n\t\tcase CfgMsgKey.FILTER_CONFIG:\r\n\t\t\treturn FilterMode.getByValue(arr[0])\r\n\t\tcase CfgMsgKey.FILTER_ITEMS:\r\n\t\t\tfor (let i = 0; i < arr.length; i++)\r\n\t\t\t\tarr[i] = Item.getById(arr[i])\r\n\t\t\treturn arr\r\n\t\tcase CfgMsgKey.LOADER:\r\n\t\t\treturn {\r\n\t\t\t\tpickupPoint: LoaderPoint.getByValue(arr[LoaderCfgIndex.PICKUP_POINT]),\r\n\t\t\t\tdropPoint: LoaderPoint.getByValue(arr[LoaderCfgIndex.DROP_POINT]),\r\n\t\t\t\tpriority: LoaderPriority.getByValue(arr[LoaderCfgIndex.PRIORTY]),\r\n\t\t\t\tstackLimit: arr[LoaderCfgIndex.STACK_LIMIT],\r\n\t\t\t\tcycleTime: arr[LoaderCfgIndex.CYCLE_TIME],\r\n\t\t\t\trequireOutputInventory: arr[LoaderCfgIndex.REQUIRE_OUTPUT_INVENTORY],\r\n\t\t\t\twaitForStackLimit: arr[LoaderCfgIndex.WAIT_FOR_STACK_LIMIT],\r\n\t\t\t}\r\n\t\tcase CfgMsgKey.PUSHER:\r\n\t\t\treturn {\r\n\t\t\t\tdefaultMode: PusherMode.getByValue(arr[PusherCfgIndex.DEFAULT_MODE]),\r\n\t\t\t\tfilteredMode: PusherMode.getByValue(arr[PusherCfgIndex.FILTERED_MODE]),\r\n\t\t\t\tangle: arr[PusherCfgIndex.ANGLE],\r\n\t\t\t\ttargetSpeed: arr[PusherCfgIndex.TARGET_SPEED],\r\n\t\t\t\tfilterByInventory: arr[PusherCfgIndex.FILTER_BY_INVENTORY],\r\n\t\t\t\tmaxBeamLength: arr[PusherCfgIndex.MAX_BEAM_LENGTH],\r\n\t\t\t}\r\n\t\tcase CfgMsgKey.ANGLE_FIXED:\r\n\t\t\treturn FixedAngle.getByValue(arr[0])\r\n\t}\r\n}\r\n\r\nfunction cfgObjToArr(key: string, obj: LoaderConfig | PusherConfig) {\r\n\tconst a = []\r\n\tif (obj !== null) { // delete props that are set to null, so they will be overwritten\r\n\t\tfor (const key in obj)\r\n\t\t\tif (obj[key] === null)\r\n\t\t\t\tdelete obj[key]\r\n\t}\r\n\tswitch (key) {\r\n\t\tcase CfgMsgKey.LOADER:\r\n\t\t\tobj = { ...defaults.loader, ...obj } as LoaderConfig\r\n\t\t\ta[LoaderCfgIndex.PICKUP_POINT] = obj.pickupPoint?.enumValue\r\n\t\t\ta[LoaderCfgIndex.DROP_POINT] = obj.dropPoint?.enumValue\r\n\t\t\ta[LoaderCfgIndex.PRIORTY] = obj.priority?.enumValue\r\n\t\t\ta[LoaderCfgIndex.STACK_LIMIT] = obj.stackLimit\r\n\t\t\ta[LoaderCfgIndex.CYCLE_TIME] = obj.cycleTime\r\n\t\t\ta[LoaderCfgIndex.REQUIRE_OUTPUT_INVENTORY] = obj.requireOutputInventory\r\n\t\t\ta[LoaderCfgIndex.WAIT_FOR_STACK_LIMIT] = obj.waitForStackLimit\r\n\t\t\tbreak\r\n\t\tcase CfgMsgKey.PUSHER:\r\n\t\t\tobj = { ...defaults.pusher, ...obj } as PusherConfig\r\n\t\t\ta[PusherCfgIndex.DEFAULT_MODE] = obj.defaultMode?.enumValue\r\n\t\t\ta[PusherCfgIndex.FILTERED_MODE] = obj.filteredMode?.enumValue\r\n\t\t\ta[PusherCfgIndex.ANGLE] = obj.angle\r\n\t\t\ta[PusherCfgIndex.TARGET_SPEED] = obj.targetSpeed\r\n\t\t\ta[PusherCfgIndex.FILTER_BY_INVENTORY] = obj.filterByInventory\r\n\t\t\ta[PusherCfgIndex.MAX_BEAM_LENGTH] = obj.maxBeamLength\r\n\t\t\tbreak\r\n\t}\r\n\treturn a\r\n}\r\n", "import { BuildCmd } from \"./BuildCmd.js\"\r\nimport { ConfigCmd } from \"./ConfigCmd.js\"\r\nimport { BuildCmdIndex, CmdType, ConfigCmdIndex, BlueprintIndex as Index } from \"./constants/private.js\"\r\nimport { BlueprintOptions } from \"./types.js\"\r\n\r\n// Should use Required<> but docs won't be inherited..\r\nexport class Blueprint implements BlueprintOptions {\r\n\r\n\tversion: BlueprintOptions[\"version\"]\r\n\twidth: BlueprintOptions[\"width\"]\r\n\theight: BlueprintOptions[\"height\"]\r\n\tcommands: BlueprintOptions[\"commands\"]\r\n\r\n\r\n\tconstructor(input?: BlueprintOptions) {\r\n\t\tfor (const prop in this)\r\n\t\t\tObject.defineProperty(this, prop, { configurable: false })\r\n\t\tif (input == null) {\r\n\t\t\tthis.version = 0\r\n\t\t\tthis.width = 1\r\n\t\t\tthis.height = 1\r\n\t\t\tthis.commands = []\r\n\t\t} else if (Object.getPrototypeOf(input) == Object.prototype) {\r\n\t\t\tthis.version = input.version ?? 0\r\n\t\t\tthis.width = input.width ?? 1\r\n\t\t\tthis.height = input.height ?? 1\r\n\t\t\tif (input.commands == null) {\r\n\t\t\t\tthis.commands = []\r\n\t\t\t} else {\r\n\t\t\t\tif (!Array.isArray(input.commands))\r\n\t\t\t\t\tthrow new TypeError(\"input.commands must be an array\")\r\n\t\t\t\tthis.commands = input.commands\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthrow new TypeError(\"input must be an object literal\")\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tset(input: BlueprintOptions): this {\r\n\t\treturn Object.assign(this, input)\r\n\t}\r\n\r\n\r\n\tfillFromArray(arr: any[], shallow?: boolean) {\r\n\t\tthis.version = arr[Index.VER]\r\n\t\tthis.width = arr[Index.WIDTH]\r\n\t\tthis.height = arr[Index.HEIGHT]\r\n\t\tthis.commands = shallow ? arr[Index.CMDS]\r\n\t\t\t: arr[Index.CMDS].map(cmd => {\r\n\t\t\t\tif (cmd[BuildCmdIndex.TYPE] == CmdType.BUILD)\r\n\t\t\t\t\treturn new BuildCmd().fillFromArray(cmd)\r\n\t\t\t\tif (cmd[ConfigCmdIndex.TYPE] == CmdType.CONFIG)\r\n\t\t\t\t\treturn new ConfigCmd().fillFromArray(cmd)\r\n\t\t\t})\r\n\t\treturn this\r\n\t}\r\n\r\n\r\n\ttoArray(shallow?: boolean) {\r\n\t\tconst arr = []\r\n\t\tarr[Index.VER] = this.version\r\n\t\tarr[Index.WIDTH] = this.width\r\n\t\tarr[Index.HEIGHT] = this.height\r\n\t\tarr[Index.CMDS] = shallow ? this.commands : this.commands.map(c => c.toArray())\r\n\t\treturn arr\r\n\t}\r\n\r\n\r\n\tclone(): Blueprint {\r\n\t\tconst clone = Object.assign(Object.create(Object.getPrototypeOf(this)), this)\r\n\t\tif (this.commands)\r\n\t\t\tclone.commands = this.commands.map(c => c.clone())\r\n\t\treturn clone\r\n\t}\r\n}\r\n", "import { Buffer } from \"buffer\" // @build_node-only\r\n\r\nimport { inflateRawSync as zlib_inflateRawSync } from \"zlib\" // @build_node-only\r\nimport { Blueprint } from \"./Blueprint.js\"\r\nimport { BuildCmd } from \"./BuildCmd.js\"\r\nimport { ConfigCmd } from \"./ConfigCmd.js\"\r\nimport { BuildCmdIndex, CmdType, ConfigCmdIndex, TAG } from \"./constants/private.js\"\r\nimport { PREFIX } from \"./constants/public.js\"\r\n\r\nimport { DecoderOptions } from \"./types.js\"\r\n\r\nconst enum ArrType {\r\n\tNONE,\r\n\tUNKNOWN,\r\n\tTOP,\r\n\tCMDS,\r\n\tCMD,\r\n\tCFG\r\n}\r\n\r\nconst arrTypeMap = {\r\n\t[ArrType.NONE]: ArrType.TOP,\r\n\t[ArrType.TOP]: ArrType.CMDS,\r\n\t[ArrType.CMDS]: ArrType.CMD,\r\n\t[ArrType.CMD]: ArrType.CFG,\r\n}\r\n\r\n/**\r\n * Internally created by the {@link decode}, {@link decodeSync}, {@link decodeConfigCmd} and {@link decodeConfigCmdSync} functions.\r\n * \r\n * There doesn't seem to be any benefit to using the same instance,\r\n * but it is possible to do so only with the sync methods.\r\n */\r\nexport class Decoder {\r\n\r\n\r\n\t#textDecoder: TextDecoder\r\n\t#bytes: Uint8Array\r\n\t#view: DataView\r\n\t#pos: number\r\n\t#lastArrType: number\r\n\toptions: DecoderOptions\r\n\r\n\tconstructor() {\r\n\t\tthis.#textDecoder = new TextDecoder(\"utf-8\")\r\n\t}\r\n\r\n\r\n\t#init(buff: Buffer | Uint8Array, lastArrType: ArrType) {\r\n\t\tthis.#bytes = new Uint8Array(buff)\r\n\t\tthis.#view = new DataView(buff.buffer)\r\n\t\tthis.#pos = 0\r\n\t\tthis.#lastArrType = lastArrType ?? ArrType.NONE\r\n\t}\r\n\r\n\r\n\tdecodeSync(input: string, options: DecoderOptions = {}): Blueprint {\r\n\t\tif (typeof input != \"string\")\r\n\t\t\tthrow new TypeError(\"input must be a string\")\r\n\r\n\t\tif (input.substring(0, PREFIX.length).toUpperCase() == PREFIX)\r\n\t\t\tinput = input.substring(PREFIX.length)\r\n\r\n\t\tif (typeof options.ignoreConfigCmdData == \"undefined\")\r\n\t\t\toptions.ignoreConfigCmdData = false\r\n\t\tthis.options = options\r\n\r\n\t\tlet inflated: Buffer | Uint8Array\r\n\t\tif (typeof zlib_inflateRawSync != \"undefined\") {\r\n\t\t\tconst b64decoded = Buffer.from(input, \"base64\")\r\n\t\t\tinflated = zlib_inflateRawSync(b64decoded)\r\n\t\t} else {\r\n\t\t\tconst b64decoded = b64toUi8(input)\r\n\t\t\tinflated = fflate_inflateSync(b64decoded)\r\n\t\t}\r\n\t\tthis.#init(inflated, ArrType.NONE)\r\n\t\treturn new Blueprint().fillFromArray(this.#read(), true)\r\n\t}\r\n\r\n\r\n\tdecodeConfigCmdSync(cmd: ConfigCmd) {\r\n\t\tif (!(cmd instanceof ConfigCmd))\r\n\t\t\tthrow new TypeError(`input must be a ${ConfigCmd.name}`)\r\n\t\tif (!cmd.isRaw) return cmd\r\n\t\tconst dataArr = this.decodeConfigCmdData(cmd.rawData)\r\n\t\tcmd.rawData = undefined\r\n\t\treturn cmd.fillDataFromArray(dataArr)\r\n\t}\r\n\r\n\r\n\tdecodeConfigCmdData(rawCmd: Uint8Array) {\r\n\t\tthis.#init(rawCmd, ArrType.CMD)\r\n\t\treturn this.#read()\r\n\t}\r\n\r\n\t#read() {\r\n\t\twhile (this.#pos < this.#bytes.length) {\r\n\t\t\tconst b = this.#bytes[this.#pos++]\r\n\t\t\tif (b <= 63) return b // positive fixint\r\n\t\t\tif (b <= 127) return b - 128 // negative fixint\r\n\t\t\tswitch (b) {\r\n\t\t\t\tcase TAG.ARRAY_BEGIN: return this.#readArray()\r\n\t\t\t\tcase TAG.U8: return this.#readU8()\r\n\t\t\t\tcase TAG.U16: return this.#readU16()\r\n\t\t\t\tcase TAG.U32: return this.#readU32()\r\n\t\t\t\tcase TAG.U64: return this.#readU64()\r\n\t\t\t\tcase TAG.I8: return this.#readI8()\r\n\t\t\t\tcase TAG.I16: return this.#readI16()\r\n\t\t\t\tcase TAG.I32: return this.#readI32()\r\n\t\t\t\tcase TAG.I64: return this.#readI64()\r\n\t\t\t\tcase TAG.F32: return this.#readF32()\r\n\t\t\t\tcase TAG.F64: return this.#readF64()\r\n\t\t\t\tcase TAG.NULL: return null\r\n\t\t\t\tcase TAG.TRUE: return true\r\n\t\t\t\tcase TAG.FALSE: return false\r\n\t\t\t\tcase TAG.BYTES_L1: return this.#readBytes(this.#getU8(), 1)\r\n\t\t\t\tcase TAG.BYTES_L2: return this.#readBytes(this.#getU16(), 2)\r\n\t\t\t\tcase TAG.BYTES_L4: return this.#readBytes(this.#getU32(), 4)\r\n\t\t\t\tcase TAG.STR_L1: return this.#readStr(this.#getU8(), 1)\r\n\t\t\t\tcase TAG.STR_L2: return this.#readStr(this.#getU16(), 2)\r\n\t\t\t\tcase TAG.STR_L4: return this.#readStr(this.#getU32(), 4)\r\n\t\t\t}\r\n\t\t\tthrow new Error(`unsupported byte: ${b} (0x${b.toString(16)})`)\r\n\t\t}\r\n\t}\r\n\r\n\t#readArray() {\r\n\t\tconst arr = []\r\n\t\tconst prevArrType = this.#lastArrType\r\n\t\tthis.#lastArrType = arrTypeMap[prevArrType] ?? ArrType.UNKNOWN\r\n\t\tconst currArrType = this.#lastArrType\r\n\r\n\t\twhile (this.#pos < this.#bytes.length) {\r\n\t\t\t// when reading the array ends\r\n\t\t\tif (this.#bytes[this.#pos] == TAG.ARRAY_END) {\r\n\t\t\t\tthis.#pos++\r\n\t\t\t\tthis.#lastArrType = prevArrType\r\n\r\n\t\t\t\t// if the array read is a command array, return a Cmd instance instead of the array\r\n\t\t\t\tif (currArrType == ArrType.CMD) {\r\n\t\t\t\t\tif (arr[BuildCmdIndex.TYPE] === CmdType.BUILD)\r\n\t\t\t\t\t\treturn new BuildCmd().fillFromArray(arr)\r\n\t\t\t\t\tif (arr[ConfigCmdIndex.TYPE] === CmdType.CONFIG)\r\n\t\t\t\t\t\treturn new ConfigCmd().fillFromArray(arr)\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn arr\r\n\t\t\t}\r\n\t\t\tarr.push(this.#read())\r\n\t\t}\r\n\t}\r\n\r\n\t#readU8() {\r\n\t\tconst v = this.#view.getUint8(this.#pos)\r\n\t\tthis.#pos++\r\n\t\treturn v\r\n\t}\r\n\t#readU16() {\r\n\t\tconst v = this.#view.getUint16(this.#pos, true)\r\n\t\tthis.#pos += 2\r\n\t\treturn v\r\n\t}\r\n\t#readU32() {\r\n\t\tconst v = this.#view.getUint32(this.#pos, true)\r\n\t\tthis.#pos += 4\r\n\t\treturn v\r\n\t}\r\n\t#readU64() {\r\n\t\tconst v = this.#view.getBigUint64(this.#pos, true)\r\n\t\tthis.#pos += 8\r\n\t\treturn v\r\n\t}\r\n\r\n\t#readI8() {\r\n\t\tconst v = this.#view.getInt8(this.#pos)\r\n\t\tthis.#pos++\r\n\t\treturn v\r\n\t}\r\n\t#readI16() {\r\n\t\tconst v = this.#view.getInt16(this.#pos, true)\r\n\t\tthis.#pos += 2\r\n\t\treturn v\r\n\t}\r\n\t#readI32() {\r\n\t\tconst v = this.#view.getInt32(this.#pos, true)\r\n\t\tthis.#pos += 4\r\n\t\treturn v\r\n\t}\r\n\t#readI64() {\r\n\t\tconst v = this.#view.getBigInt64(this.#pos, true)\r\n\t\tthis.#pos += 8\r\n\t\treturn v\r\n\t}\r\n\r\n\t#readF32() {\r\n\t\tconst v = this.#view.getFloat32(this.#pos, true)\r\n\t\tthis.#pos += 4\r\n\t\treturn v\r\n\t}\r\n\t#readF64() {\r\n\t\tconst v = this.#view.getFloat64(this.#pos, true)\r\n\t\tthis.#pos += 8\r\n\t\treturn v\r\n\t}\r\n\r\n\t#getU8() {\r\n\t\treturn this.#view.getUint8(this.#pos)\r\n\t}\r\n\t#getU16() {\r\n\t\treturn this.#view.getUint16(this.#pos, true)\r\n\t}\r\n\t#getU32() {\r\n\t\treturn this.#view.getUint32(this.#pos, true)\r\n\t}\r\n\r\n\t#readStr(byteLength, headerOffset) {\r\n\t\tconst offset = this.#pos + headerOffset\r\n\t\tconst str = this.#textDecoder.decode(this.#bytes.slice(offset, offset + byteLength))\r\n\t\tthis.#pos += headerOffset + byteLength\r\n\t\treturn str\r\n\t}\r\n\r\n\r\n\t#readBytes(byteLength, headOffset) {\r\n\t\t// if reading a byte array in a cmd array, it is config data\r\n\t\tconst readConfig = this.options.ignoreConfigCmdData !== true && this.#lastArrType == ArrType.CMD\r\n\r\n\t\tconst offset = this.#pos + headOffset\r\n\t\tconst arr = this.#bytes.slice(offset, offset + byteLength)\r\n\t\tthis.#pos = offset\r\n\t\tif (readConfig)\r\n\t\t\treturn this.#read() // directly start decoding the bytes inside the byte array\r\n\t\tthis.#pos += byteLength\r\n\t\treturn arr\r\n\t}\r\n}\r\n", "\r\nimport { deflateRawSync as zlib_deflateRawSync } from \"zlib\" // @build_node-only\r\nimport { Blueprint } from \"./Blueprint.js\"\r\nimport { BuildCmd } from \"./BuildCmd.js\"\r\nimport { ConfigCmd } from \"./ConfigCmd.js\"\r\nimport { ConfigCmdIndex, TAG } from \"./constants/private.js\"\r\n\r\n\r\n/**\r\n * Internally created by the {@link encode} and\t{@link encodeSync} methods.\r\n * \r\n * There doesn't seem to be any benefit to using the same instance,\r\n * but it is possible to do so only with the sync method.\r\n */\r\nexport class Encoder {\r\n\r\n\r\n\t#textEncoder: TextEncoder\r\n\t#bytes: Uint8Array\r\n\t#view: DataView\r\n\t#pos: number\r\n\r\n\tconstructor() {\r\n\t\tthis.#textEncoder = new TextEncoder()\r\n\t}\r\n\r\n\t#init(size: number) {\r\n\t\tthis.#view = new DataView(new ArrayBuffer(size))\r\n\t\tthis.#bytes = new Uint8Array(this.#view.buffer)\r\n\t\tthis.#pos = 0\r\n\t}\r\n\r\n\r\n\tencodeSync(bp: Blueprint) {\r\n\t\tif (!(bp instanceof Blueprint))\r\n\t\t\tthrow new TypeError(`input must be an instance of ${Blueprint.name}`)\r\n\r\n\t\tconst initSize = bp.commands.length\r\n\t\t\t? Math.max(bp.commands.length * 20, 512) // rough estimate based on cmd amount\r\n\t\t\t: 4096\r\n\t\tthis.#init(initSize)\r\n\t\tthis.#write(bp.toArray(true))\r\n\r\n\t\tconst encoded = this.#bytes.slice(0, this.#pos)\r\n\r\n\t\tif (typeof zlib_deflateRawSync != \"undefined\") {\r\n\t\t\tconst deflated = zlib_deflateRawSync(encoded, { level: 9 })\r\n\t\t\treturn deflated.toString(\"base64\")\r\n\t\t} else {\r\n\t\t\tconst deflated = fflate_deflateSync(encoded, { level: 9 })\r\n\t\t\treturn ui8tob64(deflated)\r\n\t\t}\r\n\t}\r\n\r\n\t#encodeArray(arr) {\r\n\t\tthis.#init(128)\r\n\t\tthis.#write(arr)\r\n\t\treturn this.#bytes.slice(0, this.#pos)\r\n\t}\r\n\r\n\t#write(obj) {\r\n\t\tif (typeof obj == \"number\" || typeof obj == \"bigint\") {\r\n\t\t\tthis.#writeNumber(obj)\r\n\t\t} else if (typeof obj == \"boolean\") {\r\n\t\t\tthis.#writeU8(obj ? TAG.TRUE : TAG.FALSE)\r\n\t\t} else if (typeof obj == \"string\") {\r\n\t\t\tthis.#writeStr(obj)\r\n\t\t} else if (obj == null) {\r\n\t\t\tthis.#writeU8(TAG.NULL)\r\n\t\t} else if (Array.isArray(obj)) {\r\n\t\t\tthis.#writeArr(obj)\r\n\t\t} else if (obj instanceof Uint8Array) {\r\n\t\t\tthis.#writeBin(obj)\r\n\t\t} else if (obj instanceof BuildCmd) {\r\n\t\t\tthis.#writeArr(obj.toArray())\r\n\t\t} else if (obj instanceof ConfigCmd) {\r\n\t\t\tconst arr = obj.toArray()\r\n\t\t\tif (Array.isArray(arr[ConfigCmdIndex.DATA])) // it is not raw data, encode it\r\n\t\t\t\tarr[ConfigCmdIndex.DATA] = new Uint8Array(new Encoder().#encodeArray(arr[ConfigCmdIndex.DATA]))\r\n\t\t\tthis.#writeArr(arr)\r\n\t\t} else {\r\n\t\t\tthrow new Error(`unsupported object: ${obj.constructor?.name} ${obj}`)\r\n\t\t}\r\n\t}\r\n\r\n\t#writeNumber(v: number | bigint, isSigned?: boolean) {\r\n\t\tlet isBigInt = typeof v == \"bigint\"\r\n\t\tif (isBigInt && v <= 4294967295) {\r\n\t\t\tv = Number(v)\r\n\t\t\tisBigInt = false\r\n\t\t}\r\n\r\n\t\t// float\r\n\t\tif (!Number.isSafeInteger(v) && !isBigInt) {\r\n\t\t\tthis.#writeU8(TAG.F32) // game uses F32?\r\n\t\t\tthis.#writeF32(v)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// single-byte fixint\r\n\t\tif (v >= -64 && v <= -1)\r\n\t\t\treturn this.#writeI8(64 | ((v as number) & 127))\r\n\t\telse if (v >= 0 && v <= 63)\r\n\t\t\treturn this.#writeI8(v)\r\n\r\n\t\t// int\r\n\t\tif (v < 0 || isSigned) {\r\n\t\t\tif (-128 <= v && v <= 127) {\r\n\t\t\t\tthis.#writeU8(TAG.I8)\r\n\t\t\t\tthis.#writeU8(v)\r\n\t\t\t} else if (-32768 <= v && v <= 32767) {\r\n\t\t\t\tthis.#writeU8(TAG.I16)\r\n\t\t\t\tthis.#writeI16(v)\r\n\t\t\t} else if (-2147483648 <= v && v <= 2147483647) {\r\n\t\t\t\tthis.#writeU8(TAG.I32)\r\n\t\t\t\tthis.#writeI32(v)\r\n\t\t\t} else {\r\n\t\t\t\tthis.#writeU8(TAG.I64)\r\n\t\t\t\tthis.#writeI64(BigInt(v))\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (v <= 255) {\r\n\t\t\t\tthis.#writeU8(TAG.U8)\r\n\t\t\t\tthis.#writeU8(v)\r\n\t\t\t} else if (v <= 65535) {\r\n\t\t\t\tthis.#writeU8(TAG.U16)\r\n\t\t\t\tthis.#writeU16(v)\r\n\t\t\t} else if (v <= 4294967295) {\r\n\t\t\t\tthis.#writeU8(TAG.U32)\r\n\t\t\t\tthis.#writeU32(v)\r\n\t\t\t} else {\r\n\t\t\t\tthis.#writeU8(TAG.U64)\r\n\t\t\t\tthis.#writeU64(BigInt(v))\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t#writeStr(v) {\r\n\t\tconst utf8arr = this.#textEncoder.encode(v)\r\n\t\tconst len = utf8arr.byteLength\r\n\t\tif (len <= 255) {\r\n\t\t\tthis.#writeU8(TAG.STR_L1)\r\n\t\t\tthis.#writeU8(len)\r\n\t\t} else if (len <= 65535) {\r\n\t\t\tthis.#writeU8(TAG.STR_L2)\r\n\t\t\tthis.#writeU16(len)\r\n\t\t} else if (len <= 4294967295) {\r\n\t\t\tthis.#writeU8(TAG.STR_L4)\r\n\t\t\tthis.#writeU32(len)\r\n\t\t}\r\n\t\tthis.#ensureSize(len)\r\n\t\tthis.#bytes.set(utf8arr, this.#pos)\r\n\t\tthis.#pos += len\r\n\t}\r\n\r\n\t#writeArr(arr) {\r\n\t\tthis.#writeU8(TAG.ARRAY_BEGIN)\r\n\t\tfor (const v of arr)\r\n\t\t\tthis.#write(v)\r\n\t\tthis.#writeU8(TAG.ARRAY_END)\r\n\t}\r\n\r\n\t#writeBin(obj) {\r\n\t\tconst size = obj.byteLength\r\n\t\tif (size <= 255) {\r\n\t\t\tthis.#writeU8(TAG.BYTES_L1)\r\n\t\t\tthis.#writeU8(size)\r\n\t\t} else if (size <= 65535) {\r\n\t\t\tthis.#writeU8(TAG.BYTES_L2)\r\n\t\t\tthis.#writeU16(size)\r\n\t\t} else if (size <= 4294967295) {\r\n\t\t\tthis.#writeU8(TAG.BYTES_L4)\r\n\t\t\tthis.#writeU32(size)\r\n\t\t}\r\n\t\tthis.#writeU8arr(obj)\r\n\t}\r\n\r\n\t#writeU8(v) {\r\n\t\tthis.#ensureSize(1)\r\n\t\tthis.#view.setUint8(this.#pos, v)\r\n\t\tthis.#pos++\r\n\t}\r\n\t#writeU16(v) {\r\n\t\tthis.#ensureSize(2)\r\n\t\tthis.#view.setUint16(this.#pos, v, true)\r\n\t\tthis.#pos += 2\r\n\t}\r\n\t#writeU32(v) {\r\n\t\tthis.#ensureSize(4)\r\n\t\tthis.#view.setUint32(this.#pos, v, true)\r\n\t\tthis.#pos += 4\r\n\t}\r\n\t#writeU64(v) {\r\n\t\tthis.#ensureSize(8)\r\n\t\tthis.#view.setBigUint64(this.#pos, v, true)\r\n\t\tthis.#pos += 8\r\n\t}\r\n\r\n\t#writeI8(v) {\r\n\t\tthis.#ensureSize(1)\r\n\t\tthis.#view.setInt8(this.#pos, v)\r\n\t\tthis.#pos++\r\n\t}\r\n\t#writeI16(v) {\r\n\t\tthis.#ensureSize(2)\r\n\t\tthis.#view.setInt16(this.#pos, v, true)\r\n\t\tthis.#pos += 2\r\n\t}\r\n\t#writeI32(v) {\r\n\t\tthis.#ensureSize(4)\r\n\t\tthis.#view.setInt32(this.#pos, v, true)\r\n\t\tthis.#pos += 4\r\n\t}\r\n\t#writeI64(v) {\r\n\t\tthis.#ensureSize(8)\r\n\t\tthis.#view.setBigInt64(this.#pos, v, true)\r\n\t\tthis.#pos += 8\r\n\t}\r\n\r\n\t#writeF32(v) {\r\n\t\tthis.#ensureSize(4)\r\n\t\tthis.#view.setFloat32(this.#pos, v, true)\r\n\t\tthis.#pos += 4\r\n\t}\r\n\r\n\r\n\t#writeU8arr(values) {\r\n\t\tthis.#ensureSize(values.length)\r\n\t\tthis.#bytes.set(values, this.#pos)\r\n\t\tthis.#pos += values.length\r\n\t}\r\n\r\n\t#ensureSize(size) {\r\n\t\tconst req = this.#pos + size\r\n\t\tif (req <= this.#view.byteLength) return\r\n\r\n\t\tconst buff = new ArrayBuffer(Math.max(req, this.#view.byteLength + 128))\r\n\t\tconst bytes = new Uint8Array(buff)\r\n\t\tconst view = new DataView(buff)\r\n\t\tbytes.set(this.#bytes)\r\n\t\tthis.#view = view\r\n\t\tthis.#bytes = bytes\r\n\t}\r\n}\r\n", "import { isMainThread } from \"worker_threads\" // @build_node-only\r\nimport { Blueprint } from \"./Blueprint.js\"\r\n\r\nimport { createWorker as node_createWorker } from \"./injNode.js\" // @build_node-only\r\n\r\nconst isNode = globalThis.process?.release?.name == \"node\"\r\nconst isWorkerThread = isNode ? !isMainThread : (typeof WorkerGlobalScope != \"undefined\" && self instanceof WorkerGlobalScope)\r\n\r\nlet wkMsgId = 0\r\nconst wkRequests: Record<string, { res: (value: unknown) => void, rej: (reason?: any) => void }> = {}\r\n\r\nexport const worker = isWorkerThread ? null : (isNode ? node_createWorker : browser_createWorker)() as any\r\n\r\nfunction handleWkMessage(data: { id: number; result: any; err: any }) {\r\n\tif (data.err)\r\n\t\twkRequests[data.id].rej(data.err)\r\n\telse\r\n\t\twkRequests[data.id].res(data.result)\r\n\tdelete wkRequests[data.id]\r\n}\r\n\r\nif (!isWorkerThread) {\r\n\tif (isNode)\r\n\t\tworker.on(\"message\", handleWkMessage)\r\n\telse\r\n\t\tworker.addEventListener(\"message\", e => handleWkMessage(e.data))\r\n}\r\n\r\nfunction wkPromise(id: number) {\r\n\treturn new Promise((res, rej) => wkRequests[id] = { res, rej })\r\n}\r\n\r\nexport async function decodeAsync(input, options) {\r\n\tconst id = wkMsgId++\r\n\tworker.postMessage({ id, cmd: \"decode\", args: { input, options } })\r\n\treturn new Blueprint().fillFromArray(\r\n\t\tawait wkPromise(id) as any[]\r\n\t)\r\n}\r\n\r\nexport function decodeConfigCmdAsync(rawData) {\r\n\tconst id = wkMsgId++\r\n\tworker.postMessage({ id, cmd: \"decodeConfigCmd\", args: { rawData } })\r\n\treturn wkPromise(id) as Promise<any[]>\r\n}\r\n\r\nexport function encodeAsync(input: Blueprint) {\r\n\tconst id = wkMsgId++\r\n\tworker.postMessage({ id, cmd: \"encode\", args: { input: input.toArray() } })\r\n\treturn wkPromise(id) as Promise<string>\r\n}\r\n", "import { Worker } from \"worker_threads\"\r\n\r\nexport function createWorker() {\r\n\tconst insideWorker = async info => {\r\n\t\tconst { parentPort: self } = require(\"worker_threads\") // eslint-disable-line\r\n\t\tlet lib: typeof import(\".\") // eslint-disable-line\r\n\t\tself.on(\"message\", async data => {\r\n\t\t\twhile (!lib) await new Promise(r => setTimeout(r, 0))\r\n\t\t\t//\r\n\t\t\tif (data.cmd == \"decode\") {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tdata.result = new lib.Decoder().decodeSync(data.args.input, data.args.options)\r\n\t\t\t\t\t\t.toArray()\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tdata.err = err.message\r\n\t\t\t\t}\r\n\t\t\t\tdelete data.args\r\n\t\t\t\tself.postMessage(data)\r\n\t\t\t} else if (data.cmd == \"decodeConfigCmd\") {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tdata.result = new lib.Decoder().decodeConfigCmdData(data.args.rawData)\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tdata.err = err.message\r\n\t\t\t\t}\r\n\t\t\t\tdelete data.args\r\n\t\t\t\tself.postMessage(data)\r\n\t\t\t} else if (data.cmd == \"encode\") {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst bp = new lib.Blueprint().fillFromArray(data.args.input)\r\n\t\t\t\t\tdata.result = new lib.Encoder().encodeSync(bp)\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tdata.err = err.message\r\n\t\t\t\t}\r\n\t\t\t\tdelete data.args\r\n\t\t\t\tself.postMessage(data)\r\n\t\t\t}\r\n\t\t\t//\r\n\t\t})\r\n\t\tlib = await import(info.bundleInfo ? (\"file://\" + info.path) : new URL(\"index.js\", info.path).toString())\r\n\t}\r\n\r\n\tconst workerData = {\r\n\t\tpath: __filename,\r\n\t\tbundleInfo: {format:\"cjs\",globalName:\"dsabp\"}\r\n\t}\r\n\treturn new Worker(\r\n\t\t`(${insideWorker.toString()})(${JSON.stringify(workerData)})`\r\n\t\t, { eval: true }\r\n\t)\r\n}\r\n"],
  "mappings": "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",
  "names": ["key", "zlib_inflateRawSync", "import_zlib", "zlib_deflateRawSync", "import_worker_threads", "self"]
}
