@tf2-automatic/tf2-format 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,400 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TF2Parser = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const parser_1 = require("../parser");
6
+ const constants_1 = require("./constants");
7
+ const protobufjs_1 = tslib_1.__importDefault(require("protobufjs"));
8
+ const path_1 = tslib_1.__importDefault(require("path"));
9
+ var AttributeTokens;
10
+ (function (AttributeTokens) {
11
+ AttributeTokens[AttributeTokens["cannot trade"] = 153] = "cannot trade";
12
+ AttributeTokens[AttributeTokens["always tradable"] = 195] = "always tradable";
13
+ AttributeTokens[AttributeTokens["expiration date"] = 302] = "expiration date";
14
+ AttributeTokens[AttributeTokens["never craftable"] = 449] = "never craftable";
15
+ AttributeTokens[AttributeTokens["non economy"] = 777] = "non economy";
16
+ AttributeTokens[AttributeTokens["tool target item"] = 2012] = "tool target item";
17
+ AttributeTokens[AttributeTokens["killstreak effect"] = 2013] = "killstreak effect";
18
+ AttributeTokens[AttributeTokens["killstreak idleeffect"] = 2014] = "killstreak idleeffect";
19
+ AttributeTokens[AttributeTokens["killstreak tier"] = 2025] = "killstreak tier";
20
+ })(AttributeTokens || (AttributeTokens = {}));
21
+ const root = protobufjs_1.default.loadSync(path_1.default.resolve(__dirname, './tf2.proto'));
22
+ const recipeComponentType = root.lookupType('CAttribute_DynamicRecipeComponent');
23
+ const ATTRIBUTE_SEPERATOR = '|\x01\x02\x01\x03|\x01\x02\x01\x03|';
24
+ class TF2Parser extends parser_1.Parser {
25
+ extract(item) {
26
+ const [attributes, defindexes] = TF2Parser.getAttributes(item);
27
+ const data = {
28
+ assetid: item.id,
29
+ originalId: item.original_id,
30
+ defindex: item.def_index,
31
+ quality: item.quality,
32
+ quantity: item.quantity,
33
+ level: item.level,
34
+ elevated: attributes.elevated,
35
+ australium: attributes.australium,
36
+ festivized: attributes.festivized,
37
+ effect: attributes.effect,
38
+ wear: attributes.wear,
39
+ paintkit: attributes.paintkit,
40
+ primaryPaint: attributes.primaryPaint,
41
+ secondaryPaint: attributes.secondaryPaint,
42
+ killstreak: attributes.killstreak,
43
+ sheen: attributes.sheen,
44
+ killstreaker: attributes.killstreaker,
45
+ spells: attributes.spells,
46
+ parts: attributes.parts,
47
+ inputs: attributes.inputs,
48
+ output: attributes.output,
49
+ outputQuality: attributes.outputQuality,
50
+ target: attributes.target,
51
+ crateSeries: null,
52
+ };
53
+ const context = {
54
+ flags: item.flags,
55
+ origin: item.origin,
56
+ attributes: defindexes,
57
+ };
58
+ const result = [data, context];
59
+ return result;
60
+ }
61
+ static getAttributes(item) {
62
+ var _a, _b, _c;
63
+ const attributes = {
64
+ effect: null,
65
+ primaryPaint: null,
66
+ secondaryPaint: null,
67
+ parts: [],
68
+ spells: [],
69
+ wear: null,
70
+ paintkit: null,
71
+ killstreaker: null,
72
+ sheen: null,
73
+ killstreak: 0,
74
+ australium: false,
75
+ festivized: false,
76
+ target: null,
77
+ inputs: null,
78
+ output: null,
79
+ outputQuality: null,
80
+ elevated: false,
81
+ };
82
+ const defindexes = new Set();
83
+ for (let i = 0; i < item.attribute.length; i++) {
84
+ const attribute = item.attribute[i];
85
+ defindexes.add(attribute.def_index);
86
+ const value = Buffer.from(attribute.value_bytes);
87
+ switch (attribute.def_index) {
88
+ case 142:
89
+ // Paint color for RED/BLU if universal and RED if team color
90
+ attributes.primaryPaint = value.readFloatLE(0).toString(16);
91
+ break;
92
+ case 261:
93
+ // Paint color for BLU
94
+ attributes.secondaryPaint = value.readFloatLE(0).toString(16);
95
+ break;
96
+ case 214:
97
+ case 294:
98
+ case 494:
99
+ if (item.quality !== 11) {
100
+ attributes.elevated = true;
101
+ }
102
+ break;
103
+ case 134:
104
+ case 2041:
105
+ attributes.effect = value.readFloatLE(0);
106
+ break;
107
+ case 2053:
108
+ attributes.festivized = value.readFloatLE(0) > 0;
109
+ break;
110
+ case 380:
111
+ case 382:
112
+ case 384:
113
+ attributes.parts.push(Math.round(value.readFloatLE(0)));
114
+ break;
115
+ case 1004:
116
+ case 1005:
117
+ attributes.spells.push([attribute.def_index, value.readFloatLE(0)]);
118
+ break;
119
+ case 1006:
120
+ case 1007:
121
+ case 1008:
122
+ case 1009:
123
+ // Spells
124
+ attributes.spells.push(attribute.def_index);
125
+ break;
126
+ case 2000:
127
+ case 2001:
128
+ case 2002:
129
+ case 2003:
130
+ case 2004:
131
+ case 2005:
132
+ case 2006:
133
+ case 2007:
134
+ case 2008:
135
+ case 2009: {
136
+ if (attributes.inputs === null) {
137
+ attributes.inputs = [];
138
+ }
139
+ // Fabricator inputs
140
+ const component = recipeComponentType
141
+ .decode(value)
142
+ .toJSON();
143
+ component.componentFlags = (_a = component.componentFlags) !== null && _a !== void 0 ? _a : 0;
144
+ const attribs = component.attributesString
145
+ ? component.attributesString.split(ATTRIBUTE_SEPERATOR)
146
+ : [];
147
+ const attribsMap = {};
148
+ for (let i = 0; i < attribs.length; i += 2) {
149
+ attribsMap[attribs[i]] = parseFloat(attribs[i + 1]);
150
+ }
151
+ const isOutput = component.componentFlags & constants_1.DynamicRecipeFlags.IS_OUTPUT;
152
+ if (!isOutput) {
153
+ const input = {
154
+ quality: 6,
155
+ amount: ((_b = component.numRequired) !== null && _b !== void 0 ? _b : 0) - ((_c = component.numFulfilled) !== null && _c !== void 0 ? _c : 0),
156
+ };
157
+ if (component.componentFlags & constants_1.DynamicRecipeFlags.PARAM_ITEM_DEF_SET) {
158
+ input.defindex = component.defIndex;
159
+ }
160
+ if (component.componentFlags & constants_1.DynamicRecipeFlags.PARAM_QUALITY_SET) {
161
+ input.quality = component.itemQuality;
162
+ }
163
+ if (attribsMap[AttributeTokens['killstreak tier']]) {
164
+ input.killstreak = attribsMap[AttributeTokens['killstreak tier']];
165
+ }
166
+ attributes.inputs.push(input);
167
+ }
168
+ else {
169
+ if (attribsMap[AttributeTokens['tool target item']]) {
170
+ attributes.target =
171
+ attribsMap[AttributeTokens['tool target item']];
172
+ }
173
+ if (attribsMap[AttributeTokens['killstreak idleeffect']]) {
174
+ attributes.sheen =
175
+ attribsMap[AttributeTokens['killstreak idleeffect']];
176
+ attributes.killstreak = 2;
177
+ }
178
+ if (attribsMap[AttributeTokens['killstreak effect']]) {
179
+ attributes.killstreaker =
180
+ attribsMap[AttributeTokens['killstreak effect']];
181
+ attributes.killstreak = 3;
182
+ }
183
+ attributes.outputQuality = component.itemQuality;
184
+ attributes.output = component.defIndex;
185
+ }
186
+ break;
187
+ }
188
+ case 2012:
189
+ attributes.target = value.readFloatLE(0);
190
+ break;
191
+ case 2013:
192
+ attributes.killstreaker = value.readFloatLE(0);
193
+ break;
194
+ case 2014:
195
+ attributes.sheen = value.readFloatLE(0);
196
+ break;
197
+ case 2025:
198
+ attributes.killstreak = value.readFloatLE(0);
199
+ break;
200
+ case 2027:
201
+ attributes.australium = value.readFloatLE(0) > 0;
202
+ break;
203
+ case 725:
204
+ attributes.wear = Math.round(value.readFloatLE(0) / 0.2);
205
+ break;
206
+ case 834:
207
+ attributes.paintkit = value.readUInt32LE(0);
208
+ break;
209
+ default:
210
+ break;
211
+ }
212
+ }
213
+ const killstreak = constants_1.KILLSTREAK_FABRICATORS[item.def_index];
214
+ if (killstreak) {
215
+ attributes.killstreak = killstreak;
216
+ }
217
+ return [attributes, defindexes];
218
+ }
219
+ static isCraftable(schemaItem, context) {
220
+ // Always craftable
221
+ if (context.attributes.has(AttributeTokens['always tradable']) ||
222
+ TF2Parser.hasAttribute('always tradable', schemaItem)) {
223
+ return true;
224
+ }
225
+ // Never craftable
226
+ if (context.attributes.has(AttributeTokens['never craftable']) ||
227
+ TF2Parser.hasAttribute('never craftable', schemaItem)) {
228
+ return false;
229
+ }
230
+ // Temporary item
231
+ if (context.attributes.has(AttributeTokens['expiration date']) ||
232
+ TF2Parser.hasAttribute('expiration date', schemaItem)) {
233
+ return false;
234
+ }
235
+ switch (context.origin) {
236
+ case constants_1.eEconItemOrigin.kEconItemOrigin_Invalid:
237
+ case constants_1.eEconItemOrigin.kEconItemOrigin_Foreign:
238
+ case constants_1.eEconItemOrigin.kEconItemOrigin_StorePromotion:
239
+ case constants_1.eEconItemOrigin.kEconItemOrigin_SteamWorkshopContribution:
240
+ return false;
241
+ case constants_1.eEconItemOrigin.kEconItemOrigin_Purchased:
242
+ if ((context.flags &
243
+ constants_1.eEconItemFlags.kEconItemFlag_PurchasedAfterStoreCraftabilityChanges2012) ===
244
+ 0) {
245
+ return false;
246
+ }
247
+ if (schemaItem.capabilities &&
248
+ schemaItem.capabilities['can_craft_if_purchased'] === '0') {
249
+ return false;
250
+ }
251
+ break;
252
+ }
253
+ return true;
254
+ }
255
+ static isTradable(schemaItem, extracted, context) {
256
+ if (context.attributes.has(AttributeTokens['non economy']) ||
257
+ this.hasAttribute('non economy', schemaItem)) {
258
+ return false;
259
+ }
260
+ if (context.attributes.has(AttributeTokens['always tradable']) ||
261
+ this.hasAttribute('always tradable', schemaItem)) {
262
+ return true;
263
+ }
264
+ if (context.attributes.has(AttributeTokens['cannot trade']) ||
265
+ this.hasAttribute('cannot trade', schemaItem)) {
266
+ return false;
267
+ }
268
+ switch (context.origin) {
269
+ case constants_1.eEconItemOrigin.kEconItemOrigin_Invalid:
270
+ case constants_1.eEconItemOrigin.kEconItemOrigin_Achievement:
271
+ case constants_1.eEconItemOrigin.kEconItemOrigin_Foreign:
272
+ case constants_1.eEconItemOrigin.kEconItemOrigin_PreviewItem:
273
+ case constants_1.eEconItemOrigin.kEconItemOrigin_SteamWorkshopContribution:
274
+ return false;
275
+ }
276
+ if (context.origin === constants_1.eEconItemOrigin.kEconItemOrigin_PreviewItem) {
277
+ return false;
278
+ }
279
+ if (extracted.quality >= 7 && extracted.quality <= 9) {
280
+ return false;
281
+ }
282
+ if ((context.flags & constants_1.eEconItemFlags.kEconItemFlag_CannotTrade) !== 0) {
283
+ return false;
284
+ }
285
+ return true;
286
+ }
287
+ static hasAttribute(attribute, schemaItem) {
288
+ var _a;
289
+ if (schemaItem.attributes &&
290
+ ((_a = schemaItem.attributes[attribute]) === null || _a === void 0 ? void 0 : _a.value) === '1') {
291
+ return true;
292
+ }
293
+ if (schemaItem.static_attrs && schemaItem.static_attrs[attribute] === '1') {
294
+ return true;
295
+ }
296
+ return false;
297
+ }
298
+ parse(extracted, context) {
299
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
300
+ let schemaItem = this.schema.getItemByDefindex(extracted.defindex);
301
+ if (schemaItem === undefined) {
302
+ schemaItem = yield this.schema.fetchItemByDefindex(extracted.defindex);
303
+ }
304
+ else if (schemaItem instanceof Error) {
305
+ throw schemaItem;
306
+ }
307
+ let paint = null;
308
+ if (extracted.primaryPaint) {
309
+ paint = this.schema.getPaintByColor(extracted.primaryPaint);
310
+ if (paint === undefined) {
311
+ paint = yield this.schema.fetchPaintByColor(extracted.primaryPaint);
312
+ }
313
+ else if (paint instanceof Error) {
314
+ throw paint;
315
+ }
316
+ }
317
+ const spells = [];
318
+ if (extracted.spells.length > 0) {
319
+ for (let i = 0; i < extracted.spells.length; i++) {
320
+ const spell = extracted.spells[i];
321
+ if (!Array.isArray(spell)) {
322
+ spells.push(spell);
323
+ }
324
+ else {
325
+ let match = this.schema.getSpellById(spell[0], spell[1]);
326
+ if (match instanceof Error) {
327
+ throw match;
328
+ }
329
+ else if (match === undefined) {
330
+ match = yield this.schema.fetchSpellById(spell[0], spell[1]);
331
+ }
332
+ spells.push(match);
333
+ }
334
+ }
335
+ }
336
+ const parts = [];
337
+ if (extracted.parts.length > 0) {
338
+ for (let i = 0; i < extracted.parts.length; i++) {
339
+ const part = extracted.parts[i];
340
+ let match = this.schema.getStrangePartById(part);
341
+ if (match instanceof Error) {
342
+ throw match;
343
+ }
344
+ else if (match === undefined) {
345
+ match = yield this.schema.fetchStrangePartById(part);
346
+ }
347
+ parts.push(match);
348
+ }
349
+ }
350
+ let sheen = null;
351
+ if (extracted.sheen) {
352
+ sheen = this.schema.getSheenById(extracted.sheen);
353
+ if (sheen === undefined) {
354
+ sheen = yield this.schema.fetchSheenById(extracted.sheen);
355
+ }
356
+ else if (sheen instanceof Error) {
357
+ throw sheen;
358
+ }
359
+ }
360
+ let killstreaker = null;
361
+ if (extracted.killstreaker) {
362
+ killstreaker = this.schema.getKillstreakerById(extracted.killstreaker);
363
+ if (killstreaker === undefined) {
364
+ killstreaker = yield this.schema.fetchKillstreakerById(extracted.killstreaker);
365
+ }
366
+ else if (killstreaker instanceof Error) {
367
+ throw killstreaker;
368
+ }
369
+ }
370
+ const parsed = {
371
+ assetid: extracted.assetid,
372
+ defindex: extracted.defindex,
373
+ quality: extracted.quality,
374
+ craftable: TF2Parser.isCraftable(schemaItem, context),
375
+ tradable: TF2Parser.isTradable(schemaItem, extracted, context),
376
+ australium: extracted.australium,
377
+ festivized: extracted.festivized,
378
+ effect: extracted.effect,
379
+ wear: extracted.wear,
380
+ paintkit: extracted.paintkit,
381
+ killstreak: extracted.killstreak,
382
+ target: extracted.target,
383
+ output: extracted.output,
384
+ outputQuality: extracted.outputQuality,
385
+ elevated: extracted.elevated,
386
+ crateSeries: extracted.crateSeries,
387
+ paint,
388
+ parts,
389
+ spells,
390
+ sheen,
391
+ killstreaker,
392
+ inputs: extracted.inputs,
393
+ };
394
+ return parsed;
395
+ });
396
+ }
397
+ }
398
+ exports.TF2Parser = TF2Parser;
399
+ tslib_1.__exportStar(require("./types"), exports);
400
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../../libs/tf2-format/src/lib/parsing/tf2/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ message CAttribute_DynamicRecipeComponent {
2
+ optional uint32 def_index = 1;
3
+ optional uint32 item_quality = 2;
4
+ optional uint32 component_flags = 3;
5
+ optional string attributes_string = 4;
6
+ optional uint32 num_required = 5;
7
+ optional uint32 num_fulfilled = 6;
8
+ };
@@ -0,0 +1,77 @@
1
+ import { RecipeInput } from '../../types';
2
+ export interface TF2Item {
3
+ attribute: Attribute[];
4
+ equipped_state: EquippedState[];
5
+ id: string;
6
+ account_id: number;
7
+ inventory: number;
8
+ def_index: number;
9
+ quantity: number;
10
+ level: number;
11
+ quality: number;
12
+ flags: number;
13
+ origin: number;
14
+ custom_name: string | null;
15
+ custom_desc: string | null;
16
+ interior_item: TF2Item | null;
17
+ in_use: boolean;
18
+ style: number;
19
+ original_id: string | null;
20
+ contains_equipped_state: null;
21
+ contains_equipped_state_v2: boolean;
22
+ position: number;
23
+ }
24
+ export interface EquippedState {
25
+ new_class: number;
26
+ new_slot: number;
27
+ }
28
+ export interface Attribute {
29
+ def_index: number;
30
+ value: unknown;
31
+ value_bytes: ValueBytes | Buffer;
32
+ }
33
+ export interface ValueBytes {
34
+ type: 'Buffer';
35
+ data: number[];
36
+ }
37
+ export interface Attributes {
38
+ [key: string]: any;
39
+ }
40
+ /**
41
+ * The result of extracting information from an TF2Item
42
+ */
43
+ export interface ExtractedTF2Item {
44
+ assetid: string;
45
+ originalId: string | null;
46
+ level: number;
47
+ defindex: number;
48
+ quality: number;
49
+ elevated: boolean;
50
+ australium: boolean;
51
+ festivized: boolean;
52
+ effect: number | null;
53
+ wear: number | null;
54
+ primaryPaint: string | null;
55
+ secondaryPaint: string | null;
56
+ killstreak: number;
57
+ sheen: number | null;
58
+ killstreaker: number | null;
59
+ /**
60
+ * Either the defindex of the spell, or an array with the defindex and value
61
+ * of the attribute.
62
+ */
63
+ spells: (number | [number, number])[];
64
+ parts: number[];
65
+ paintkit: number | null;
66
+ quantity: number | null;
67
+ inputs: RecipeInput[] | null;
68
+ output: number | null;
69
+ outputQuality: number | null;
70
+ target: number | null;
71
+ crateSeries: number | null;
72
+ }
73
+ export interface Context {
74
+ origin: number;
75
+ flags: number;
76
+ attributes: Set<number>;
77
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../libs/tf2-format/src/lib/parsing/tf2/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './sku';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./sku"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/tf2-format/src/lib/sku/index.ts"],"names":[],"mappings":";;;AAAA,gDAAsB"}
@@ -0,0 +1,5 @@
1
+ import { RequiredItemAttributes } from '../types';
2
+ export declare class SKU {
3
+ static fromObject(item: RequiredItemAttributes): string;
4
+ static fromString(sku: string): RequiredItemAttributes;
5
+ }