@etothepii/satisfactory-file-parser 0.0.25 → 0.0.27

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.
Files changed (47) hide show
  1. package/dist/index.d.ts +774 -0
  2. package/dist/index.js +1 -0
  3. package/package.json +13 -6
  4. package/build/index.d.ts +0 -19
  5. package/build/index.js +0 -52
  6. package/build/parser/byte/alignment.enum.d.ts +0 -4
  7. package/build/parser/byte/alignment.enum.js +0 -8
  8. package/build/parser/byte/byte-reader.class.d.ts +0 -34
  9. package/build/parser/byte/byte-reader.class.js +0 -121
  10. package/build/parser/byte/byte-writer.class.d.ts +0 -33
  11. package/build/parser/byte/byte-writer.class.js +0 -139
  12. package/build/parser/error/parser.error.d.ts +0 -12
  13. package/build/parser/error/parser.error.js +0 -28
  14. package/build/parser/file.types.d.ts +0 -9
  15. package/build/parser/file.types.js +0 -2
  16. package/build/parser/parser.d.ts +0 -16
  17. package/build/parser/parser.js +0 -88
  18. package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts +0 -18
  19. package/build/parser/satisfactory/blueprint/blueprint-reader.js +0 -124
  20. package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts +0 -15
  21. package/build/parser/satisfactory/blueprint/blueprint-writer.js +0 -63
  22. package/build/parser/satisfactory/blueprint/blueprint.types.d.ts +0 -20
  23. package/build/parser/satisfactory/blueprint/blueprint.types.js +0 -2
  24. package/build/parser/satisfactory/objects/DataFields.d.ts +0 -13
  25. package/build/parser/satisfactory/objects/DataFields.js +0 -224
  26. package/build/parser/satisfactory/objects/ObjectReference.d.ts +0 -9
  27. package/build/parser/satisfactory/objects/ObjectReference.js +0 -17
  28. package/build/parser/satisfactory/objects/Property.d.ts +0 -270
  29. package/build/parser/satisfactory/objects/Property.js +0 -1001
  30. package/build/parser/satisfactory/objects/SaveComponent.d.ts +0 -16
  31. package/build/parser/satisfactory/objects/SaveComponent.js +0 -31
  32. package/build/parser/satisfactory/objects/SaveEntity.d.ts +0 -25
  33. package/build/parser/satisfactory/objects/SaveEntity.js +0 -70
  34. package/build/parser/satisfactory/objects/SaveObject.d.ts +0 -14
  35. package/build/parser/satisfactory/objects/SaveObject.js +0 -29
  36. package/build/parser/satisfactory/save/level.class.d.ts +0 -21
  37. package/build/parser/satisfactory/save/level.class.js +0 -138
  38. package/build/parser/satisfactory/save/satisfactory-save.d.ts +0 -11
  39. package/build/parser/satisfactory/save/satisfactory-save.js +0 -11
  40. package/build/parser/satisfactory/save/save-reader.d.ts +0 -44
  41. package/build/parser/satisfactory/save/save-reader.js +0 -233
  42. package/build/parser/satisfactory/save/save-writer.d.ts +0 -12
  43. package/build/parser/satisfactory/save/save-writer.js +0 -112
  44. package/build/parser/satisfactory/save/save.types.d.ts +0 -49
  45. package/build/parser/satisfactory/save/save.types.js +0 -2
  46. package/build/parser/satisfactory/structs/util.types.d.ts +0 -40
  47. package/build/parser/satisfactory/structs/util.types.js +0 -95
@@ -0,0 +1,774 @@
1
+ declare module '@etothepii/satisfactory-file-parser/index' {
2
+ export * from '@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint.types';
3
+ export { DataFields } from '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/DataFields';
4
+ export { ObjectReference } from '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/ObjectReference';
5
+ export * from '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/Property';
6
+ export { SaveComponent } from '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveComponent';
7
+ export { SaveEntity } from '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveEntity';
8
+ export { Level } from '@etothepii/satisfactory-file-parser/parser/satisfactory/save/level.class';
9
+ export { SatisfactorySave } from '@etothepii/satisfactory-file-parser/parser/satisfactory/save/satisfactory-save';
10
+ export * from '@etothepii/satisfactory-file-parser/parser/satisfactory/save/save.types';
11
+ export { ByteReader } from '@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class';
12
+ export { ByteWriter } from '@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class';
13
+ export { BlueprintConfigReader, BlueprintReader } from '@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint-reader';
14
+ export { BlueprintConfigWriter, BlueprintWriter } from '@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint-writer';
15
+ export { SaveReader } from '@etothepii/satisfactory-file-parser/parser/satisfactory/save/save-reader';
16
+ export { SaveWriter } from '@etothepii/satisfactory-file-parser/parser/satisfactory/save/save-writer';
17
+ export * from '@etothepii/satisfactory-file-parser/parser/satisfactory/structs/util.types';
18
+ export { CompressionLibraryError, CorruptSaveError, ParserError, UnsupportedVersionError } from '@etothepii/satisfactory-file-parser/parser/error/parser.error';
19
+ export * from '@etothepii/satisfactory-file-parser/parser/file.types';
20
+ export { Parser } from '@etothepii/satisfactory-file-parser/parser/parser';
21
+
22
+ }
23
+ declare module '@etothepii/satisfactory-file-parser/parser/byte/alignment.enum' {
24
+ export enum Alignment {
25
+ BIG_ENDIAN = 0,
26
+ LITTLE_ENDIAN = 1
27
+ }
28
+
29
+ }
30
+ declare module '@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class' {
31
+ import { Alignment } from "@etothepii/satisfactory-file-parser/parser/byte/alignment.enum";
32
+ export abstract class ByteReader {
33
+ protected bufferView: DataView;
34
+ protected fileBuffer: ArrayBuffer;
35
+ protected alignment: Alignment;
36
+ protected currentByte: number;
37
+ protected handledByte: number;
38
+ protected maxByte: number;
39
+ protected lastStrRead: number;
40
+ constructor(fileBuffer: ArrayBuffer, alignment: Alignment);
41
+ reset(newFileBuffer: ArrayBuffer): void;
42
+ skipBytes(byteLength?: number): void;
43
+ readByte(): number;
44
+ readBytes(count: number): Uint8Array;
45
+ readHex(hexLength: number): string;
46
+ readInt8(): number;
47
+ readUint8(): number;
48
+ readUint16(): number;
49
+ readInt32(): number;
50
+ readUint32(): number;
51
+ readLong(): bigint;
52
+ readFloat(): number;
53
+ readDouble(): number;
54
+ protected getStringInfo(): {
55
+ payload: string;
56
+ counter: number;
57
+ };
58
+ getBufferPosition: () => number;
59
+ getBufferSlice: (begin: number, end: number | undefined) => ArrayBuffer;
60
+ getBufferProgress: () => number;
61
+ getBufferLength: () => number;
62
+ getBuffer: () => ArrayBuffer;
63
+ readString(): string;
64
+ }
65
+
66
+ }
67
+ declare module '@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class' {
68
+ import { Alignment } from "@etothepii/satisfactory-file-parser/parser/byte/alignment.enum";
69
+ export abstract class ByteWriter {
70
+ protected alignment: Alignment;
71
+ protected bufferArray: ArrayBuffer;
72
+ protected bufferView: DataView;
73
+ protected currentByte: number;
74
+ constructor(alignment: Alignment, bufferSize?: number);
75
+ skipBytes(count?: number): void;
76
+ jumpTo(pos: number): void;
77
+ writeByte(value: number): void;
78
+ writeBytesArray(bytes: number[]): void;
79
+ writeBytes(bytes: Uint8Array): void;
80
+ writeInt8(value: number): void;
81
+ writeUint8(value: number): void;
82
+ writeInt16(value: number): void;
83
+ writeUint16(value: number): void;
84
+ writeInt32(value: number): void;
85
+ writeUint32(value: number): void;
86
+ writeInt64(value: bigint): void;
87
+ writeUint64(value: bigint): void;
88
+ writeFloat(value: number): void;
89
+ writeDouble(value: number): void;
90
+ writeString(value: string): void;
91
+ static IsASCIICompatible: (value: string) => boolean;
92
+ getBufferPosition: () => number;
93
+ getBufferSlice: (start: number, end?: number) => ArrayBuffer;
94
+ writeBinarySizeFromPosition(lenIndicatorPos: number, start: number): void;
95
+ protected extendBufferIfNeeded(countNeededBytes: number, factor?: number): void;
96
+ protected truncateBuffer(): void;
97
+ endWriting(): ArrayBuffer;
98
+ static ToInt32(num: number): Uint8Array;
99
+ static AppendBuffer(buffer1: ArrayBuffer, buffer2: ArrayBuffer): ArrayBuffer;
100
+ }
101
+
102
+ }
103
+ declare module '@etothepii/satisfactory-file-parser/parser/error/parser.error' {
104
+ export class ParserError extends Error {
105
+ constructor(name: string, message: string);
106
+ }
107
+ export class UnsupportedVersionError extends ParserError {
108
+ constructor(message?: string);
109
+ }
110
+ export class CorruptSaveError extends ParserError {
111
+ constructor(message?: string);
112
+ }
113
+ export class CompressionLibraryError extends ParserError {
114
+ constructor(message?: string);
115
+ }
116
+
117
+ }
118
+ declare module '@etothepii/satisfactory-file-parser/parser/file.types' {
119
+ export type ChunkCompressionInfo = {
120
+ chunkHeaderSize: number;
121
+ packageFileTag: number;
122
+ maxChunkContentSize: number;
123
+ };
124
+ export type ChunkSummary = {
125
+ uncompressedSize: number;
126
+ compressedSize: number;
127
+ };
128
+
129
+ }
130
+ declare module '@etothepii/satisfactory-file-parser/parser/parser' {
131
+ /// <reference types="node" />
132
+ import { ChunkSummary } from "@etothepii/satisfactory-file-parser/parser/file.types";
133
+ import { Blueprint } from "@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint.types";
134
+ import { SatisfactorySave } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/satisfactory-save";
135
+ import { SaveProjectionConfig } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/save-reader";
136
+ export class Parser {
137
+ static WriteSave(save: SatisfactorySave, onBinaryBeforeCompressing: (buffer: ArrayBuffer) => void, onHeader: (header: Uint8Array) => void, onChunk: (chunk: Uint8Array) => void): ChunkSummary[];
138
+ static ParseSaveFile(file: Buffer, onDecompressedSaveBody?: (buffer: ArrayBuffer) => void, onProgress?: (progress: number, message?: string) => void): SatisfactorySave;
139
+ static WriteBlueprintFiles(blueprint: Blueprint, onMainFileBinaryBeforeCompressing?: (binary: ArrayBuffer) => void, onMainFileHeader?: (header: Uint8Array) => void, onMainFileChunk?: (chunk: Uint8Array) => void): {
140
+ mainFileChunkSummary: ChunkSummary[];
141
+ configFileBinary: ArrayBuffer;
142
+ };
143
+ static ParseBlueprintFiles(name: string, blueprintFile: Buffer, blueprintConfigFile: Buffer, onDecompressedBlueprintBody?: (buffer: ArrayBuffer) => void): Blueprint;
144
+ static ProjectSave(save: SatisfactorySave, config: SaveProjectionConfig): SatisfactorySave;
145
+ static JSONStringifyModified: (obj: any, indent?: number) => string;
146
+ }
147
+
148
+ }
149
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint-reader' {
150
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
151
+ import { ChunkCompressionInfo } from "@etothepii/satisfactory-file-parser/parser/file.types";
152
+ import { SaveComponent } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveComponent";
153
+ import { SaveEntity } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveEntity";
154
+ import { BlueprintConfig, BlueprintHeader } from "@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint.types";
155
+ export class BlueprintReader extends ByteReader {
156
+ compressionInfo: ChunkCompressionInfo;
157
+ constructor(bluePrintBuffer: ArrayBuffer);
158
+ static ReadHeader(reader: ByteReader): BlueprintHeader;
159
+ inflateChunks(): any;
160
+ static ParseObjects(reader: ByteReader): (SaveEntity | SaveComponent)[];
161
+ }
162
+ export class BlueprintConfigReader extends ByteReader {
163
+ bluePrintConfigBuffer: ArrayBuffer;
164
+ constructor(bluePrintConfigBuffer: ArrayBuffer);
165
+ parse: () => BlueprintConfig;
166
+ static ParseConfig(reader: ByteReader): BlueprintConfig;
167
+ }
168
+
169
+ }
170
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint-writer' {
171
+ import { ByteWriter } from "@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class";
172
+ import { ChunkCompressionInfo, ChunkSummary } from "@etothepii/satisfactory-file-parser/parser/file.types";
173
+ import { SaveComponent } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveComponent";
174
+ import { SaveEntity } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveEntity";
175
+ import { BlueprintConfig, BlueprintHeader } from "@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint.types";
176
+ export class BlueprintWriter extends ByteWriter {
177
+ constructor();
178
+ static SerializeHeader(writer: ByteWriter, header: BlueprintHeader): void;
179
+ generateChunks(compressionInfo: ChunkCompressionInfo, posAfterHeader: number, onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onHeader: (header: Uint8Array) => void, onChunk: (chunk: Uint8Array) => void): ChunkSummary[];
180
+ static SerializeObjects(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[]): void;
181
+ }
182
+ export class BlueprintConfigWriter extends ByteWriter {
183
+ constructor();
184
+ static SerializeConfig(writer: ByteWriter, config: BlueprintConfig): void;
185
+ }
186
+
187
+ }
188
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/blueprint/blueprint.types' {
189
+ import { ChunkCompressionInfo } from "@etothepii/satisfactory-file-parser/parser/file.types";
190
+ import { SaveComponent } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveComponent";
191
+ import { SaveEntity } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveEntity";
192
+ import { col4 } from "@etothepii/satisfactory-file-parser/parser/satisfactory/structs/util.types";
193
+ export interface BlueprintConfig {
194
+ description: string;
195
+ color: col4;
196
+ iconID: number;
197
+ }
198
+ export type BlueprintHeader = {
199
+ itemCosts: [string, number][];
200
+ recipeReferences: string[];
201
+ };
202
+ export interface Blueprint {
203
+ name: string;
204
+ compressionInfo: ChunkCompressionInfo;
205
+ header: BlueprintHeader;
206
+ config: BlueprintConfig;
207
+ objects: (SaveEntity | SaveComponent)[];
208
+ }
209
+
210
+ }
211
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/DataFields' {
212
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
213
+ import { SaveWriter } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/save-writer";
214
+ import { AbstractBaseProperty } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/Property";
215
+ export class DataFields {
216
+ properties: any[];
217
+ trailingData: number[];
218
+ shouldBeNulled: boolean;
219
+ constructor();
220
+ static Parse(length: number, reader: ByteReader, buildVersion: number): DataFields;
221
+ static ParseProperty(reader: ByteReader, buildVersion: number, propertyName: string): AbstractBaseProperty | null;
222
+ static Serialize(writer: SaveWriter, fields: DataFields, buildVersion: number): void;
223
+ static SerializeProperty(writer: SaveWriter, property: AbstractBaseProperty, propertyName: string, buildVersion: number): void;
224
+ }
225
+
226
+ }
227
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/ObjectReference' {
228
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
229
+ import { ByteWriter } from "@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class";
230
+ export class ObjectReference {
231
+ levelName: string;
232
+ pathName: string;
233
+ constructor(levelName: string, pathName: string);
234
+ static Parse(reader: ByteReader): ObjectReference;
235
+ static Serialize(writer: ByteWriter, ref: ObjectReference): void;
236
+ }
237
+
238
+ }
239
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/Property' {
240
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
241
+ import { SaveWriter } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/save-writer";
242
+ import { col4, vec3, vec4 } from "@etothepii/satisfactory-file-parser/parser/satisfactory/structs/util.types";
243
+ import { ObjectReference } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/ObjectReference";
244
+ export type Properties = {
245
+ [key: string]: string | number | boolean | any;
246
+ };
247
+ export abstract class AbstractProperty {
248
+ type: string;
249
+ index?: number | undefined;
250
+ constructor(type: string, index?: number | undefined);
251
+ }
252
+ export abstract class AbstractBaseProperty extends AbstractProperty {
253
+ ueType: string;
254
+ name: string;
255
+ constructor(type: string, ueType: string, index: number);
256
+ }
257
+ export abstract class BasicProperty extends AbstractBaseProperty {
258
+ guidInfo: GUID;
259
+ constructor(type: string, ueType: string, guidInfo: GUID, index?: number);
260
+ }
261
+ export type GUID = undefined | Uint8Array;
262
+ export const ParseGUID: (reader: ByteReader) => GUID;
263
+ export const SerializeGUID: (writer: SaveWriter, guid: GUID) => void;
264
+ export type OverheadResult = {
265
+ overhead: number;
266
+ };
267
+ export class BoolProperty extends BasicProperty {
268
+ value: boolean;
269
+ constructor(value: boolean, ueType?: string, guidInfo?: GUID, index?: number);
270
+ static Parse(reader: ByteReader, ueType: string, index?: number): BoolProperty;
271
+ static ReadValue(reader: ByteReader): boolean;
272
+ static CalcOverhead(property: BoolProperty): number;
273
+ static Serialize(writer: SaveWriter, property: BoolProperty): void;
274
+ static SerializeValue(writer: SaveWriter, value: boolean): void;
275
+ }
276
+ export type BytePropertyValue = {
277
+ type: string;
278
+ value: string | number;
279
+ };
280
+ export class ByteProperty extends BasicProperty {
281
+ value: BytePropertyValue;
282
+ constructor(value: BytePropertyValue, ueType?: string, guidInfo?: GUID, index?: number);
283
+ static Parse(reader: ByteReader, ueType: string, index?: number): ByteProperty;
284
+ static ReadValue(reader: ByteReader): number;
285
+ static CalcOverhead(property: ByteProperty): number;
286
+ static Serialize(writer: SaveWriter, property: ByteProperty): void;
287
+ static SerializeValue(writer: SaveWriter, value: number): void;
288
+ }
289
+ export class Int8Property extends BasicProperty {
290
+ value: number;
291
+ constructor(value: number, ueType?: string, guidInfo?: GUID, index?: number);
292
+ static Parse(reader: ByteReader, ueType: string, index?: number): Int8Property;
293
+ static ReadValue(reader: ByteReader): number;
294
+ static CalcOverhead(property: Int8Property): number;
295
+ static Serialize(writer: SaveWriter, property: Int8Property): void;
296
+ static SerializeValue(writer: SaveWriter, value: number): void;
297
+ }
298
+ export class Uint8Property extends BasicProperty {
299
+ value: number;
300
+ constructor(value: number, ueType?: string, guidInfo?: GUID, index?: number);
301
+ static Parse(reader: ByteReader, ueType: string, index?: number): Uint8Property;
302
+ static ReadValue(reader: ByteReader): number;
303
+ static CalcOverhead(property: Uint8Property): number;
304
+ static Serialize(writer: SaveWriter, property: Uint8Property): void;
305
+ static SerializeValue(writer: SaveWriter, value: number): void;
306
+ }
307
+ export class Int32Property extends BasicProperty {
308
+ value: number;
309
+ constructor(value: number, ueType?: string, guidInfo?: GUID, index?: number);
310
+ static Parse(reader: ByteReader, ueType: string, index?: number): Int32Property;
311
+ static ReadValue(reader: ByteReader): number;
312
+ static CalcOverhead(property: Int32Property): number;
313
+ static Serialize(writer: SaveWriter, property: Int32Property): void;
314
+ static SerializeValue(writer: SaveWriter, value: number): void;
315
+ }
316
+ export class Uint32Property extends BasicProperty {
317
+ value: number;
318
+ constructor(value: number, ueType?: string, guidInfo?: GUID, index?: number);
319
+ static Parse(reader: ByteReader, ueType: string, index?: number): Uint32Property;
320
+ static ReadValue(reader: ByteReader): number;
321
+ static CalcOverhead(property: Uint32Property): number;
322
+ static Serialize(writer: SaveWriter, property: Uint32Property): void;
323
+ static SerializeValue(writer: SaveWriter, value: number): void;
324
+ }
325
+ export class Int64Property extends BasicProperty {
326
+ value: string;
327
+ constructor(value: string, ueType?: string, guidInfo?: GUID, index?: number);
328
+ static Parse(reader: ByteReader, ueType: string, index?: number): Int64Property;
329
+ static ReadValue(reader: ByteReader): string;
330
+ static CalcOverhead(property: Int64Property): number;
331
+ static Serialize(writer: SaveWriter, property: Int64Property): void;
332
+ static SerializeValue(writer: SaveWriter, value: string): void;
333
+ }
334
+ export class FloatProperty extends BasicProperty {
335
+ value: number;
336
+ constructor(value: number, ueType?: string, guidInfo?: GUID, index?: number);
337
+ static Parse(reader: ByteReader, ueType: string, index?: number): FloatProperty;
338
+ static CalcOverhead(property: FloatProperty): number;
339
+ static ReadValue(reader: ByteReader): number;
340
+ static Serialize(writer: SaveWriter, property: FloatProperty): void;
341
+ static SerializeValue(writer: SaveWriter, value: number): void;
342
+ }
343
+ export class DoubleProperty extends BasicProperty {
344
+ value: number;
345
+ constructor(value: number, ueType?: string, guidInfo?: GUID, index?: number);
346
+ static Parse(reader: ByteReader, ueType: string, index?: number): DoubleProperty;
347
+ static ReadValue(reader: ByteReader): number;
348
+ static CalcOverhead(property: DoubleProperty): number;
349
+ static Serialize(writer: SaveWriter, property: DoubleProperty): void;
350
+ static SerializeValue(writer: SaveWriter, value: number): void;
351
+ }
352
+ export class StrProperty extends BasicProperty {
353
+ value: string;
354
+ constructor(value: string, ueType?: string, guidInfo?: GUID, index?: number);
355
+ static Parse(reader: ByteReader, ueType: string, index?: number): StrProperty;
356
+ static ReadValue(reader: ByteReader): string;
357
+ static CalcOverhead(property: StrProperty): number;
358
+ static Serialize(writer: SaveWriter, property: StrProperty): void;
359
+ static SerializeValue(writer: SaveWriter, value: string): void;
360
+ }
361
+ export class ObjectProperty extends BasicProperty {
362
+ value: ObjectReference;
363
+ constructor(value: ObjectReference, ueType?: string, guidInfo?: GUID, index?: number);
364
+ static Parse(reader: ByteReader, ueType: string, index?: number): ObjectProperty;
365
+ static ReadValue(reader: ByteReader): ObjectReference;
366
+ static CalcOverhead(property: ObjectProperty): number;
367
+ static Serialize(writer: SaveWriter, property: ObjectProperty): void;
368
+ static SerializeValue(writer: SaveWriter, value: {
369
+ levelName: string;
370
+ pathName: string;
371
+ }): void;
372
+ }
373
+ export class EnumProperty extends BasicProperty {
374
+ value: {
375
+ name: string;
376
+ value: string;
377
+ };
378
+ constructor(value: {
379
+ name: string;
380
+ value: string;
381
+ }, ueType?: string, guidInfo?: GUID, index?: number);
382
+ static Parse(reader: ByteReader, ueType: string, index?: number): EnumProperty;
383
+ static ReadValue(reader: ByteReader): string;
384
+ static CalcOverhead(property: EnumProperty): number;
385
+ static Serialize(writer: SaveWriter, property: EnumProperty): void;
386
+ static SerializeValue(writer: SaveWriter, value: string): void;
387
+ }
388
+ export type TextPropertyValue = {
389
+ flags: number;
390
+ historyType: number;
391
+ namespace?: string;
392
+ key?: string;
393
+ value?: string;
394
+ sourceFmt?: TextPropertyValue;
395
+ arguments?: {
396
+ name: string;
397
+ valueType: number;
398
+ argumentValue: TextPropertyValue;
399
+ }[];
400
+ sourceText?: TextPropertyValue;
401
+ transformType?: number;
402
+ hasCultureInvariantString?: boolean;
403
+ };
404
+ export class TextProperty extends BasicProperty {
405
+ value: TextPropertyValue;
406
+ constructor(value: TextPropertyValue, ueType?: string, guidInfo?: GUID, index?: number);
407
+ static Parse(reader: ByteReader, ueType: string, index?: number): TextProperty;
408
+ static ParseValue(reader: ByteReader): TextPropertyValue;
409
+ static CalcOverhead(property: TextProperty): number;
410
+ static Serialize(writer: SaveWriter, property: TextProperty): void;
411
+ static SerializeValue(writer: SaveWriter, value: TextPropertyValue): void;
412
+ }
413
+ export type BasicMultipleStructPropertyValue = {
414
+ values: any;
415
+ };
416
+ export type BasicStructPropertyValue = {
417
+ value: any;
418
+ };
419
+ export type BoxStructPropertyValue = {
420
+ min: vec3;
421
+ max: vec3;
422
+ isValid: boolean;
423
+ };
424
+ export type RailroadTrackPositionStructPropertyValue = {
425
+ root: string;
426
+ instanceName: string;
427
+ offset: number;
428
+ forward: number;
429
+ };
430
+ export type InventoryItemStructPropertyValue = {
431
+ unk1: number;
432
+ itemName: string;
433
+ unk2: string;
434
+ unk3: string;
435
+ properties: any[];
436
+ };
437
+ export type FICFrameRangeStructPropertyValue = {
438
+ begin: string;
439
+ end: string;
440
+ };
441
+ export type DynamicStructPropertyValue = {
442
+ type: string;
443
+ properties: Properties;
444
+ };
445
+ export type GENERIC_STRUCT_PROPERTY_VALUE = BasicMultipleStructPropertyValue | BasicStructPropertyValue | BoxStructPropertyValue | RailroadTrackPositionStructPropertyValue | InventoryItemStructPropertyValue | FICFrameRangeStructPropertyValue | DynamicStructPropertyValue | col4 | vec3 | vec4 | string;
446
+ export class StructProperty extends AbstractBaseProperty {
447
+ subtype: string;
448
+ guid: number;
449
+ value: GENERIC_STRUCT_PROPERTY_VALUE;
450
+ unk1?: number;
451
+ unk2?: number;
452
+ unk3?: number;
453
+ unk4?: number;
454
+ constructor(subtype: string, ueType?: string, index?: number, guid?: number);
455
+ static Parse(reader: ByteReader, ueType: string, index: number, size: number): StructProperty;
456
+ static ParseValue(reader: ByteReader, subtype: string, size: number): GENERIC_STRUCT_PROPERTY_VALUE;
457
+ static CalcOverhead(property: StructProperty): number;
458
+ static Serialize(writer: SaveWriter, property: StructProperty): void;
459
+ static SerializeValue(writer: SaveWriter, subtype: string, value: GENERIC_STRUCT_PROPERTY_VALUE): void;
460
+ }
461
+ export type ArrayPropertyStructValueFields = {
462
+ allStructType: string;
463
+ allIndex: number;
464
+ allGuid: number;
465
+ allUnk1?: number;
466
+ allUnk2?: number;
467
+ allUnk3?: number;
468
+ allUnk4?: number;
469
+ };
470
+ export class ArrayProperty<T> extends BasicProperty {
471
+ subtype: string;
472
+ values: T[];
473
+ structValueFields?: ArrayPropertyStructValueFields | undefined;
474
+ constructor(subtype: string, values: T[], ueType?: string, index?: number, structValueFields?: ArrayPropertyStructValueFields | undefined);
475
+ static Parse(reader: ByteReader, ueType: string, index: number, propertyName: string): ArrayProperty<any>;
476
+ static CalcOverhead(property: ArrayProperty<any>): number;
477
+ static Serialize(writer: SaveWriter, property: ArrayProperty<any>, propertyName: string): void;
478
+ }
479
+ export class SetProperty<T> extends BasicProperty {
480
+ subtype: string;
481
+ values: T[];
482
+ constructor(subtype: string, values: T[], ueType: string, index: number);
483
+ static Parse(reader: ByteReader, ueType: string, index: number, propertyName: string): SetProperty<any>;
484
+ static CalcOverhead(property: SetProperty<any>): number;
485
+ static Serialize(writer: SaveWriter, property: SetProperty<any>): void;
486
+ }
487
+ export class MapProperty extends BasicProperty {
488
+ keyType: string;
489
+ valueType: string;
490
+ modeType: number;
491
+ modeUnk1: string | undefined;
492
+ modeUnk2: string;
493
+ modeUnk3: string;
494
+ remainingData: number[];
495
+ values: {
496
+ key: any;
497
+ value: any;
498
+ }[];
499
+ constructor(keyType: string, valueType: string, ueType: string, index: number);
500
+ static Parse(reader: ByteReader, propertyName: string, buildVersion: number, size: number, ueType?: string, index?: number): MapProperty;
501
+ static CalcOverhead(property: MapProperty): number;
502
+ static Serialize(writer: SaveWriter, property: MapProperty): void;
503
+ }
504
+ export const ParseDynamicStructData: (reader: ByteReader, buildVersion: number, type: string) => DynamicStructPropertyValue;
505
+ export const SerializeDynamicStructData: (writer: SaveWriter, buildVersion: number, data: DynamicStructPropertyValue) => void;
506
+ export const ReadFINNetworkTrace: (reader: ByteReader) => any;
507
+ export const SerializeFINNetworkTrace: (writer: SaveWriter, obj: any) => void;
508
+ export const ReadFINLuaProcessorStateStorage: (reader: ByteReader, size: number) => any;
509
+ export const SerializeFINLuaProcessorStateStorage: (writer: SaveWriter, stateStorage: any) => void;
510
+
511
+ }
512
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveComponent' {
513
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
514
+ import { ByteWriter } from "@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class";
515
+ import { SaveObject } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveObject";
516
+ export const isSaveComponent: (obj: any) => obj is SaveComponent;
517
+ export class SaveComponent extends SaveObject {
518
+ typePath: string;
519
+ rootObject: string;
520
+ instanceName: string;
521
+ parentEntityName: string;
522
+ static readonly TypeID = 0;
523
+ readonly type = "SaveComponent";
524
+ constructor(typePath: string, rootObject: string, instanceName: string, parentEntityName?: string);
525
+ static ParseHeader(reader: ByteReader, obj: SaveComponent): void;
526
+ static SerializeHeader(writer: ByteWriter, component: SaveComponent): void;
527
+ static ParseData(component: SaveComponent, length: number, reader: ByteReader, buildVersion: number): void;
528
+ }
529
+
530
+ }
531
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveEntity' {
532
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
533
+ import { ByteWriter } from "@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class";
534
+ import { Transform } from "@etothepii/satisfactory-file-parser/parser/satisfactory/structs/util.types";
535
+ import { ObjectReference } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/ObjectReference";
536
+ import { SaveObject } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveObject";
537
+ export const isSaveEntity: (obj: any) => obj is SaveEntity;
538
+ export class SaveEntity extends SaveObject {
539
+ typePath: string;
540
+ rootObject: string;
541
+ instanceName: string;
542
+ parentEntityName: string;
543
+ static readonly TypeID = 1;
544
+ readonly type = "SaveEntity";
545
+ needTransform: boolean;
546
+ transform: Transform;
547
+ wasPlacedInLevel: boolean;
548
+ parentObjectRoot: string;
549
+ parentObjectName: string;
550
+ components: ObjectReference[];
551
+ constructor(typePath: string, rootObject: string, instanceName: string, parentEntityName?: string, needsTransform?: boolean);
552
+ static ParseHeader(reader: ByteReader, obj: SaveEntity): void;
553
+ static ParseData(entity: SaveEntity, length: number, reader: ByteReader, buildVersion: number): void;
554
+ static SerializeHeader(writer: ByteWriter, entity: SaveEntity): void;
555
+ static SerializeData(writer: ByteWriter, entity: SaveEntity, buildVersion: number): void;
556
+ }
557
+
558
+ }
559
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveObject' {
560
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
561
+ import { ByteWriter } from "@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class";
562
+ import { DataFields } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/DataFields";
563
+ export abstract class SaveObject {
564
+ typePath: string;
565
+ rootObject: string;
566
+ instanceName: string;
567
+ dataFields: DataFields;
568
+ constructor(typePath: string, rootObject: string, instanceName: string);
569
+ protected static ParseHeader(reader: ByteReader, obj: SaveObject): void;
570
+ protected static SerializeHeader(writer: ByteWriter, obj: SaveObject): void;
571
+ static ParseData(obj: SaveObject, length: number, reader: ByteReader, buildVersion: number): void;
572
+ static SerializeData(writer: any, obj: SaveObject, buildVersion: number): void;
573
+ }
574
+
575
+ }
576
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/save/level.class' {
577
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
578
+ import { ByteWriter } from "@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class";
579
+ import { ObjectReference } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/ObjectReference";
580
+ import { SaveComponent } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveComponent";
581
+ import { SaveEntity } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveEntity";
582
+ import { SaveObject } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveObject";
583
+ import { SaveReader } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/save-reader";
584
+ export class Level {
585
+ name: string;
586
+ objects: (SaveEntity | SaveComponent)[];
587
+ collectables: ObjectReference[];
588
+ constructor(name: string);
589
+ static SerializeObjectHeaders(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[]): void;
590
+ static WriteLevel(writer: ByteWriter, level: Level, buildVersion: number): void;
591
+ static SerializeObjectContents(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[], buildVersion: number): void;
592
+ static ReadObjectHeaders(reader: ByteReader, objectsList: SaveObject[], onProgressCallback: (progress: number, msg?: string) => void): void;
593
+ static ReadObjectContents(reader: ByteReader, objectsList: SaveObject[], buildVersion: number, onProgressCallback: (progress: number, msg?: string) => void): void;
594
+ static ReadLevel(reader: SaveReader, levelName: string, buildVersion: number): Level;
595
+ static SerializeCollectablesList(writer: ByteWriter, collectables: ObjectReference[]): void;
596
+ static ReadCollectablesList(reader: SaveReader): ObjectReference[];
597
+ }
598
+
599
+ }
600
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/save/satisfactory-save' {
601
+ import { ChunkCompressionInfo } from "@etothepii/satisfactory-file-parser/parser/file.types";
602
+ import { ObjectReference } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/ObjectReference";
603
+ import { Level } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/level.class";
604
+ import { SatisfactorySaveHeader } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/save.types";
605
+ export class SatisfactorySave {
606
+ header: SatisfactorySaveHeader;
607
+ levels: Level[];
608
+ trailingCollectedObjects: ObjectReference[];
609
+ compressionInfo?: ChunkCompressionInfo;
610
+ constructor(header: SatisfactorySaveHeader);
611
+ }
612
+
613
+ }
614
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/save/save-reader' {
615
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
616
+ import { ChunkCompressionInfo } from "@etothepii/satisfactory-file-parser/parser/file.types";
617
+ import { ObjectReference } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/ObjectReference";
618
+ import { SaveComponent } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveComponent";
619
+ import { SaveEntity } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveEntity";
620
+ import { SaveObject } from "@etothepii/satisfactory-file-parser/parser/satisfactory/objects/SaveObject";
621
+ import { Level } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/level.class";
622
+ import { SatisfactorySaveHeader } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/save.types";
623
+ export type EntityPathFilter = {
624
+ behavior: 'whitelist' | 'blacklist';
625
+ list: string[];
626
+ };
627
+ export type SaveProjectionConfig = {
628
+ entityPathFilter: EntityPathFilter;
629
+ includeComponents: boolean;
630
+ };
631
+ export const projectionFilterApplies: (config: SaveProjectionConfig, object: SaveComponent | SaveEntity) => boolean;
632
+ export class SaveReader extends ByteReader {
633
+ onProgressCallback: (progress: number, msg?: string) => void;
634
+ header: SatisfactorySaveHeader | undefined;
635
+ levels: Level[];
636
+ trailingCollectedObjects: ObjectReference[];
637
+ compressionInfo: ChunkCompressionInfo;
638
+ static readonly EPOCH_TICKS = 621355968000000000n;
639
+ constructor(fileBuffer: ArrayBuffer, onProgressCallback?: (progress: number, msg?: string) => void);
640
+ readHeader(): SatisfactorySaveHeader;
641
+ inflateChunks(): {
642
+ concatenatedChunkLength: number;
643
+ numChunks: number;
644
+ };
645
+ readLevels(): Level[];
646
+ }
647
+ export class Conveyor {
648
+ static getConveyorBeltRegex(): RegExp;
649
+ static getConveyorLiftRegex(): RegExp;
650
+ static isAConveyorBelt(obj: SaveObject): boolean;
651
+ static isAConveyorLift(obj: SaveObject): boolean;
652
+ static get availableConnections(): string[];
653
+ static get availableConveyorBelts(): string[];
654
+ static get availableConveyorLifts(): string[];
655
+ static isConveyor(currentObject: any): boolean;
656
+ static isConveyorBelt(currentObject: any): boolean;
657
+ static isConveyorLift(currentObject: any): boolean;
658
+ }
659
+
660
+ }
661
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/save/save-writer' {
662
+ import { Alignment } from "@etothepii/satisfactory-file-parser/parser/byte/alignment.enum";
663
+ import { ByteWriter } from "@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class";
664
+ import { ChunkCompressionInfo, ChunkSummary } from "@etothepii/satisfactory-file-parser/parser/file.types";
665
+ import { SatisfactorySave } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/satisfactory-save";
666
+ import { SatisfactorySaveHeader } from "@etothepii/satisfactory-file-parser/parser/satisfactory/save/save.types";
667
+ export class SaveWriter extends ByteWriter {
668
+ constructor();
669
+ static WriteHeader(writer: ByteWriter, header: SatisfactorySaveHeader): void;
670
+ static WriteLevels(writer: ByteWriter, save: SatisfactorySave, buildVersion: number): void;
671
+ static GenerateCompressedChunksFromData(bufferArray: ArrayBuffer, compressionInfo: ChunkCompressionInfo, onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onChunk: (chunk: Uint8Array) => void, alignment?: Alignment): ChunkSummary[];
672
+ generateChunks(compressionInfo: ChunkCompressionInfo, posAfterHeader: number, onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onHeader: (header: Uint8Array) => void, onChunk: (chunk: Uint8Array) => void): ChunkSummary[];
673
+ }
674
+
675
+ }
676
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/save/save.types' {
677
+ export interface ModData {
678
+ Reference: string;
679
+ Name: string;
680
+ Version: string;
681
+ }
682
+ export interface SatisfactoryModMetadata {
683
+ Mods: ModData[];
684
+ }
685
+ export interface SatisfactorySaveHeader {
686
+ saveHeaderType: number;
687
+ saveVersion: number;
688
+ buildVersion: number;
689
+ mapName: string;
690
+ mapOptions: string;
691
+ sessionName: string;
692
+ playDurationSeconds: number;
693
+ saveDateTime: string;
694
+ sessionVisibility: number;
695
+ rawModMetadataString?: string;
696
+ modMetadata?: SatisfactoryModMetadata;
697
+ isModdedSave?: number;
698
+ saveIdentifier?: string;
699
+ fEditorObjectVersion?: number;
700
+ }
701
+ export type ResourceNodeEntry = {
702
+ purity: string;
703
+ pathName: string;
704
+ position: {
705
+ x: number;
706
+ y: number;
707
+ z: number;
708
+ };
709
+ type: string;
710
+ };
711
+ export type CollectibleEntry = {
712
+ pathName: string;
713
+ position: {
714
+ x: number;
715
+ y: number;
716
+ z: number;
717
+ };
718
+ type: string;
719
+ };
720
+ export type StaticData = {
721
+ collectibles: CollectibleEntry[];
722
+ artifacts: CollectibleEntry[];
723
+ slugs: CollectibleEntry[];
724
+ resourceNodes: ResourceNodeEntry[];
725
+ };
726
+
727
+ }
728
+ declare module '@etothepii/satisfactory-file-parser/parser/satisfactory/structs/util.types' {
729
+ import { ByteReader } from "@etothepii/satisfactory-file-parser/parser/byte/byte-reader.class";
730
+ import { ByteWriter } from "@etothepii/satisfactory-file-parser/parser/byte/byte-writer.class";
731
+ export type col4 = {
732
+ r: number;
733
+ g: number;
734
+ b: number;
735
+ a: number;
736
+ };
737
+ export const SerializeCol4RGBA: (writer: ByteWriter, value: col4) => void;
738
+ export const ParseCol4RGBA: (reader: ByteReader) => col4;
739
+ export const SerializeCol4BGRA: (writer: ByteWriter, value: col4) => void;
740
+ export const ParseCol4BGRA: (reader: ByteReader) => col4;
741
+ export type vec4 = vec3 & {
742
+ w: number;
743
+ };
744
+ export const ParseVec4: (reader: ByteReader) => vec4;
745
+ export const SerializeVec4: (writer: ByteWriter, vec: vec4) => void;
746
+ export const sub: (other: vec3, vec: vec3) => vec3;
747
+ export const add: (vec: vec3, other: vec3) => vec3;
748
+ export const length: (vec: vec3) => number;
749
+ export const mult: (vec: vec3, scale: number) => vec3;
750
+ export const norm: (vec: vec3) => vec3;
751
+ export type vec3 = vec2 & {
752
+ z: number;
753
+ };
754
+ export const ParseVec3: (reader: ByteReader) => vec3;
755
+ export const SerializeVec3: (writer: ByteWriter, vec: vec3) => void;
756
+ export type vec2 = {
757
+ x: number;
758
+ y: number;
759
+ };
760
+ export const ParseVec2: (reader: ByteReader) => vec2;
761
+ export const SerializeVec2: (writer: ByteWriter, vec: vec2) => void;
762
+ export type Transform = {
763
+ rotation: vec4;
764
+ translation: vec3;
765
+ scale3d: vec3;
766
+ };
767
+ export const ParseTransform: (reader: ByteReader) => Transform;
768
+ export const SerializeTransform: (writer: ByteWriter, transform: Transform) => void;
769
+
770
+ }
771
+ declare module '@etothepii/satisfactory-file-parser' {
772
+ import main = require('@etothepii/satisfactory-file-parser/index');
773
+ export = main;
774
+ }