@etothepii/satisfactory-file-parser 0.4.13 → 0.4.14

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 (55) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +43 -22
  3. package/build/parser/byte/binary-readable.interface.d.ts +0 -3
  4. package/build/parser/byte/binary-writable.interface.d.ts +20 -0
  5. package/build/parser/byte/binary-writable.interface.js +2 -0
  6. package/build/parser/byte/byte-reader.class.d.ts +0 -3
  7. package/build/parser/byte/byte-reader.class.js +0 -8
  8. package/build/parser/byte/byte-writer.class.d.ts +6 -3
  9. package/build/parser/byte/byte-writer.class.js +3 -1
  10. package/build/parser/satisfactory/blueprint/blueprint-reader.js +8 -8
  11. package/build/parser/satisfactory/edit/edit-constants.d.ts +2 -0
  12. package/build/parser/satisfactory/edit/edit-constants.js +82 -158
  13. package/build/parser/satisfactory/objects/DataFields.js +9 -9
  14. package/build/parser/satisfactory/objects/SaveObject.d.ts +1 -1
  15. package/build/parser/satisfactory/objects/SaveObject.js +1 -1
  16. package/build/parser/satisfactory/objects/property/generic/FloatProperty.js +1 -1
  17. package/build/parser/satisfactory/objects/property/generic/StructProperty.js +11 -4
  18. package/build/parser/satisfactory/save/level.class.d.ts +1 -2
  19. package/build/parser/satisfactory/save/level.class.js +10 -15
  20. package/build/parser/satisfactory/save/save-reader.js +8 -4
  21. package/build/parser/satisfactory/save/save.types.d.ts +0 -25
  22. package/build/parser/satisfactory/structs/util.types.js +8 -8
  23. package/build/parser/stream/reworked/readable-stream-parser.d.ts +1 -0
  24. package/build/parser/stream/reworked/readable-stream-parser.js +28 -3
  25. package/package.json +1 -1
  26. package/build/parser/satisfactory/objects/ObjectReference.d.ts +0 -10
  27. package/build/parser/satisfactory/objects/ObjectReference.js +0 -17
  28. package/build/parser/satisfactory/objects/Property.d.ts +0 -272
  29. package/build/parser/satisfactory/objects/Property.js +0 -1177
  30. package/build/parser/satisfactory/objects/ue/FMD5Hash.d.ts +0 -7
  31. package/build/parser/satisfactory/objects/ue/FMD5Hash.js +0 -19
  32. package/build/parser/satisfactory/objects/ue/GUID.d.ts +0 -6
  33. package/build/parser/satisfactory/objects/ue/GUID.js +0 -21
  34. package/build/parser/satisfactory/save/asynchronous-level.class.d.ts +0 -9
  35. package/build/parser/satisfactory/save/asynchronous-level.class.js +0 -66
  36. package/build/parser/stream/byte-stream-reader.class.d.ts +0 -57
  37. package/build/parser/stream/byte-stream-reader.class.js +0 -241
  38. package/build/parser/stream/json-stream-state-writer.d.ts +0 -12
  39. package/build/parser/stream/json-stream-state-writer.js +0 -18
  40. package/build/parser/stream/json-stream-writable.d.ts +0 -20
  41. package/build/parser/stream/json-stream-writable.js +0 -83
  42. package/build/parser/stream/json-stream-writer.d.ts +0 -22
  43. package/build/parser/stream/json-stream-writer.js +0 -127
  44. package/build/parser/stream/reworked/stream-parser.d.ts +0 -6
  45. package/build/parser/stream/reworked/stream-parser.js +0 -31
  46. package/build/parser/stream/save-stream-json-stringifier.d.ts +0 -6
  47. package/build/parser/stream/save-stream-json-stringifier.js +0 -35
  48. package/build/parser/stream/save-stream-reader.class.d.ts +0 -15
  49. package/build/parser/stream/save-stream-reader.class.js +0 -121
  50. package/build/parser/stream/save-stream-writer.class.d.ts +0 -25
  51. package/build/parser/stream/save-stream-writer.class.js +0 -119
  52. package/build/parser/stream/stream-level.class.d.ts +0 -12
  53. package/build/parser/stream/stream-level.class.js +0 -103
  54. package/build/parser/stream/stream-parser.d.ts +0 -40
  55. package/build/parser/stream/stream-parser.js +0 -225
@@ -9,7 +9,6 @@ class Level {
9
9
  this.name = name;
10
10
  this.objects = [];
11
11
  this.collectables = [];
12
- this.remainingStuffAfterHeaders = new Uint8Array();
13
12
  }
14
13
  static SerializeObjectHeaders(writer, objects) {
15
14
  writer.writeInt32(objects.length);
@@ -30,12 +29,11 @@ class Level {
30
29
  }
31
30
  }
32
31
  static WriteLevel(writer, level, buildVersion) {
33
- const lenIndicatorHeaderAndCollectableSize = writer.getBufferPosition();
32
+ const lenIndicatorHeaderAndDestroyedEntitiesSize = writer.getBufferPosition();
34
33
  writer.writeInt32(0);
35
34
  writer.writeInt32(0);
36
35
  Level.SerializeObjectHeaders(writer, level.objects);
37
- Level.SerializeCollectablesList(writer, level.collectables);
38
- writer.writeBinarySizeFromPosition(lenIndicatorHeaderAndCollectableSize, lenIndicatorHeaderAndCollectableSize + 8);
36
+ writer.writeBinarySizeFromPosition(lenIndicatorHeaderAndDestroyedEntitiesSize, lenIndicatorHeaderAndDestroyedEntitiesSize + 8);
39
37
  Level.SerializeObjectContents(writer, level.objects, buildVersion, level.name);
40
38
  Level.SerializeCollectablesList(writer, level.collectables);
41
39
  }
@@ -45,7 +43,7 @@ class Level {
45
43
  writer.writeInt32(0);
46
44
  writer.writeInt32(objects.length);
47
45
  for (const obj of objects) {
48
- writer.writeInt32(obj.saveOrBlueprintIndicator);
46
+ writer.writeInt32(obj.objectVersion);
49
47
  writer.writeInt32(obj.unknownType2);
50
48
  const lenReplacementPosition = writer.getBufferPosition();
51
49
  writer.writeInt32(0);
@@ -93,7 +91,7 @@ class Level {
93
91
  onProgressCallback(reader.getBufferProgress(), `read object count [${(i + 1)}/${(countEntities + 1)}] in level ${levelName}`);
94
92
  }
95
93
  const obj = objectsList[i];
96
- obj.saveOrBlueprintIndicator = reader.readInt32();
94
+ obj.objectVersion = reader.readInt32();
97
95
  obj.unknownType2 = reader.readInt32();
98
96
  const binarySize = reader.readInt32();
99
97
  const before = reader.getBufferPosition();
@@ -117,7 +115,7 @@ class Level {
117
115
  Level.ReadObjectHeaders(reader, level.objects, reader.onProgressCallback);
118
116
  let remainingSize = headersBinLen - (reader.getBufferPosition() - posBeforeHeaders);
119
117
  if (remainingSize > 0) {
120
- const doubledCollectablesIgnored = Level.ReadCollectablesList(reader, 'collectables at the header section! ' + levelName);
118
+ const doubledCollectablesIgnored = Level.ReadCollectablesList(reader);
121
119
  }
122
120
  else {
123
121
  }
@@ -135,7 +133,7 @@ class Level {
135
133
  console.warn('save seems corrupt.', this.name);
136
134
  }
137
135
  reader.onProgressCallback(reader.getBufferProgress());
138
- level.collectables = Level.ReadCollectablesList(reader, 'collectables 2! ' + levelName);
136
+ level.collectables = Level.ReadCollectablesList(reader);
139
137
  return level;
140
138
  }
141
139
  static SerializeCollectablesList(writer, collectables) {
@@ -144,14 +142,11 @@ class Level {
144
142
  ObjectReference_1.ObjectReference.write(writer, collectable);
145
143
  }
146
144
  }
147
- static ReadCollectablesList(reader, printSmthWhenItsCollectables) {
145
+ static ReadCollectablesList(reader) {
148
146
  const collected = [];
149
- let countSmthing = reader.readInt32();
150
- if (countSmthing > 0) {
151
- for (let i = 0; i < countSmthing; i++) {
152
- const collectable = ObjectReference_1.ObjectReference.read(reader);
153
- collected.push(collectable);
154
- }
147
+ let count = reader.readInt32();
148
+ for (let i = 0; i < count; i++) {
149
+ collected.push(ObjectReference_1.ObjectReference.read(reader));
155
150
  }
156
151
  return collected;
157
152
  }
@@ -167,11 +167,15 @@ class SaveReader extends byte_reader_class_1.ByteReader {
167
167
  if (!this.header) {
168
168
  throw new parser_error_1.ParserError('ParserError', 'Header must be set before objects can be read.');
169
169
  }
170
- if (this.header.saveVersion < 29) {
170
+ const roughSaveVersion = SaveReader.getRoughSaveVersion(this.header.saveVersion, this.header.saveHeaderType);
171
+ if (roughSaveVersion === '<U6') {
171
172
  throw new parser_error_1.UnsupportedVersionError('Game Version < U6 is not supported.');
172
173
  }
173
- if (this.header.saveHeaderType < 13) {
174
- throw new parser_error_1.UnsupportedVersionError('Game Version < U8 is not supported in this package version. Consider downgrading to the latest package version supporting it, which is 0.0.34');
174
+ else if (roughSaveVersion === 'U6/U7') {
175
+ throw new parser_error_1.UnsupportedVersionError('Game Version U6/U7 is not supported in this package version. Consider downgrading to the latest package version supporting it, which is 0.0.34');
176
+ }
177
+ else if (roughSaveVersion === 'U8') {
178
+ throw new parser_error_1.UnsupportedVersionError('Game Version U8 is not supported in this package version. Consider downgrading to the latest package version supporting it, which is 0.3.7');
175
179
  }
176
180
  const levels = [];
177
181
  const levelCount = this.readInt32();
@@ -184,7 +188,7 @@ class SaveReader extends byte_reader_class_1.ByteReader {
184
188
  levels.push(level_class_1.Level.ReadLevel(this, levelSingleName, this.header.buildVersion));
185
189
  }
186
190
  levels.push(level_class_1.Level.ReadLevel(this, this.header.mapName, this.header.buildVersion));
187
- const trailingStuffToIgnore = level_class_1.Level.ReadCollectablesList(this, 'collectables 6!');
191
+ const trailingStuffToIgnore = level_class_1.Level.ReadCollectablesList(this);
188
192
  this.onProgressCallback(this.getBufferProgress(), 'finished parsing.');
189
193
  return levels;
190
194
  }
@@ -29,28 +29,3 @@ export interface SatisfactorySaveHeader {
29
29
  creativeModeEnabled?: boolean;
30
30
  }
31
31
  export type RoughSaveVersion = '<U6' | 'U6/U7' | 'U8' | 'U1.0+';
32
- export type ResourceNodeEntry = {
33
- purity: string;
34
- pathName: string;
35
- position: {
36
- x: number;
37
- y: number;
38
- z: number;
39
- };
40
- type: string;
41
- };
42
- export type CollectibleEntry = {
43
- pathName: string;
44
- position: {
45
- x: number;
46
- y: number;
47
- z: number;
48
- };
49
- type: string;
50
- };
51
- export type StaticData = {
52
- collectibles: CollectibleEntry[];
53
- artifacts: CollectibleEntry[];
54
- slugs: CollectibleEntry[];
55
- resourceNodes: ResourceNodeEntry[];
56
- };
@@ -4,10 +4,10 @@ exports.Transform = exports.vec2 = exports.vec3 = exports.vec4 = exports.col4 =
4
4
  var col4;
5
5
  (function (col4) {
6
6
  col4.SerializeRGBA = (writer, value) => {
7
- writer.writeFloat(value.r);
8
- writer.writeFloat(value.g);
9
- writer.writeFloat(value.b);
10
- writer.writeFloat(value.a);
7
+ writer.writeFloat32(value.r);
8
+ writer.writeFloat32(value.g);
9
+ writer.writeFloat32(value.b);
10
+ writer.writeFloat32(value.a);
11
11
  };
12
12
  col4.ParseRGBA = (reader) => {
13
13
  return {
@@ -52,7 +52,7 @@ var vec4;
52
52
  };
53
53
  vec4.SerializeF = (writer, vec) => {
54
54
  vec3.SerializeF(writer, vec);
55
- writer.writeFloat(vec.w);
55
+ writer.writeFloat32(vec.w);
56
56
  };
57
57
  })(vec4 || (exports.vec4 = vec4 = {}));
58
58
  var vec3;
@@ -87,7 +87,7 @@ var vec3;
87
87
  };
88
88
  vec3.SerializeF = (writer, vec) => {
89
89
  vec2.SerializeF(writer, vec);
90
- writer.writeFloat(vec.z);
90
+ writer.writeFloat32(vec.z);
91
91
  };
92
92
  vec3.sub = (other, vec) => ({ x: other.x - vec.x, y: other.y - vec.y, z: other.z - vec.z });
93
93
  vec3.add = (vec, other) => ({ x: vec.x + other.x, y: vec.y + other.y, z: vec.z + other.z });
@@ -114,8 +114,8 @@ var vec2;
114
114
  };
115
115
  };
116
116
  vec2.SerializeF = (writer, vec) => {
117
- writer.writeFloat(vec.x);
118
- writer.writeFloat(vec.y);
117
+ writer.writeFloat32(vec.x);
118
+ writer.writeFloat32(vec.y);
119
119
  };
120
120
  })(vec2 || (exports.vec2 = vec2 = {}));
121
121
  var Transform;
@@ -7,6 +7,7 @@ export declare class ReadableStreamParser {
7
7
  };
8
8
  private static WriteHeaderAndGrids;
9
9
  private static WriteLevels;
10
+ private static ReadDestroyedEntityReferences;
10
11
  private static ReadNObjectHeaders;
11
12
  private static ReadNObjects;
12
13
  }
@@ -3,8 +3,10 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ReadableStreamParser = void 0;
5
5
  const web_1 = require("stream/web");
6
+ const parser_error_1 = require("../../error/parser.error");
6
7
  const SaveComponent_1 = require("../../satisfactory/objects/SaveComponent");
7
8
  const SaveEntity_1 = require("../../satisfactory/objects/SaveEntity");
9
+ const ObjectReference_1 = require("../../satisfactory/objects/values/ObjectReference");
8
10
  const level_class_1 = require("../../satisfactory/save/level.class");
9
11
  const satisfactory_save_1 = require("../../satisfactory/save/satisfactory-save");
10
12
  const save_reader_1 = require("../../satisfactory/save/save-reader");
@@ -57,7 +59,7 @@ class ReadableStreamParser {
57
59
  }
58
60
  await write(`${j > 0 ? ', ' : ''}{"name": "${levelName}", "objects": [`, false);
59
61
  const headersBinLen = reader.readInt32();
60
- const unk = reader.readInt32();
62
+ reader.readInt32();
61
63
  const posBeforeHeaders = reader.getBufferPosition();
62
64
  const afterAllHeaders = posBeforeHeaders + headersBinLen;
63
65
  let countObjectHeaders = reader.readInt32();
@@ -152,6 +154,16 @@ ReadableStreamParser.CreateReadableStreamFromSaveToJson = (name, bytes, onDecomp
152
154
  const reader = new save_reader_1.SaveReader(bytes.buffer, onProgress);
153
155
  const header = reader.readHeader();
154
156
  const save = new satisfactory_save_1.SatisfactorySave(name, header);
157
+ const roughSaveVersion = save_reader_1.SaveReader.getRoughSaveVersion(header.saveVersion, header.saveHeaderType);
158
+ if (roughSaveVersion === '<U6') {
159
+ throw new parser_error_1.UnsupportedVersionError('Game Version < U6 is not supported.');
160
+ }
161
+ else if (roughSaveVersion === 'U6/U7') {
162
+ throw new parser_error_1.UnsupportedVersionError('Game Version U6/U7 is not supported in this package version. Consider downgrading to the latest package version supporting it, which is 0.0.34');
163
+ }
164
+ else if (roughSaveVersion === 'U8') {
165
+ throw new parser_error_1.UnsupportedVersionError('Game Version U8 is not supported in this package version. Consider downgrading to the latest package version supporting it, which is 0.3.7');
166
+ }
155
167
  const inflateResult = reader.inflateChunks();
156
168
  onDecompressedSaveBody(reader.getBuffer());
157
169
  const gridHash = reader.readSaveBodyHash();
@@ -166,6 +178,15 @@ ReadableStreamParser.CreateReadableStreamFromSaveToJson = (name, bytes, onDecomp
166
178
  ReadableStreamParser.WriteHeaderAndGrids = async (write, compressionInfo, header, grids, gridHash) => {
167
179
  return write(`{"header": ${JSON.stringify(header)}, "compressionInfo": ${JSON.stringify(compressionInfo)}, "gridHash": ${JSON.stringify(gridHash)}, "grids": ${JSON.stringify(grids)}, "levels": [`, false);
168
180
  };
181
+ ReadableStreamParser.ReadDestroyedEntityReferences = (reader) => {
182
+ const destroyedEntitiesCount = reader.readInt32();
183
+ const destroyedEntities = [];
184
+ for (let i = 0; i < destroyedEntitiesCount; i++) {
185
+ const destroyed = ObjectReference_1.ObjectReference.read(reader);
186
+ destroyedEntities.push(destroyed);
187
+ }
188
+ return destroyedEntities;
189
+ };
169
190
  ReadableStreamParser.ReadNObjectHeaders = (reader, count) => {
170
191
  let objects = [];
171
192
  let objectsRead = 0;
@@ -182,7 +203,7 @@ ReadableStreamParser.ReadNObjectHeaders = (reader, count) => {
182
203
  SaveComponent_1.SaveComponent.ParseHeader(reader, obj);
183
204
  break;
184
205
  default:
185
- throw new Error('Unknown object type' + objectType);
206
+ throw new parser_error_1.CorruptSaveError('Unknown object type' + objectType);
186
207
  }
187
208
  objects.push(obj);
188
209
  }
@@ -190,7 +211,7 @@ ReadableStreamParser.ReadNObjectHeaders = (reader, count) => {
190
211
  };
191
212
  ReadableStreamParser.ReadNObjects = (reader, count, objects, buildVersion) => {
192
213
  for (let i = 0; i < count; i++) {
193
- objects[i].saveOrBlueprintIndicator = reader.readInt32();
214
+ objects[i].objectVersion = reader.readInt32();
194
215
  objects[i].unknownType2 = reader.readInt32();
195
216
  const binarySize = reader.readInt32();
196
217
  const before = reader.getBufferPosition();
@@ -200,5 +221,9 @@ ReadableStreamParser.ReadNObjects = (reader, count, objects, buildVersion) => {
200
221
  else if ((0, SaveComponent_1.isSaveComponent)(objects[i])) {
201
222
  SaveComponent_1.SaveComponent.ParseData(objects[i], binarySize, reader, buildVersion, objects[i].typePath);
202
223
  }
224
+ const after = reader.getBufferPosition();
225
+ if (after - before !== binarySize) {
226
+ throw new parser_error_1.CorruptSaveError(`Could not read entity ${objects[i].instanceName}, as ${after - before} bytes were read, but ${binarySize} bytes were indicated.`);
227
+ }
203
228
  }
204
229
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@etothepii/satisfactory-file-parser",
3
3
  "author": "etothepii",
4
- "version": "0.4.13",
4
+ "version": "0.4.14",
5
5
  "description": "A file parser for satisfactory files. Includes save files and blueprint files.",
6
6
  "types": "./build/index.d.ts",
7
7
  "main": "./build/index.js",
@@ -1,10 +0,0 @@
1
- import { BinaryReadable } from "../../byte/binary-readable.interface";
2
- import { ByteWriter } from "../../byte/byte-writer.class";
3
- export type ObjectReference = {
4
- levelName: string;
5
- pathName: string;
6
- };
7
- export declare namespace ObjectReference {
8
- const read: (reader: BinaryReadable) => ObjectReference;
9
- const write: (writer: ByteWriter, ref: ObjectReference) => void;
10
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectReference = void 0;
4
- var ObjectReference;
5
- (function (ObjectReference) {
6
- ObjectReference.read = (reader) => {
7
- return {
8
- levelName: reader.readString(),
9
- pathName: reader.readString()
10
- };
11
- };
12
- ObjectReference.write = (writer, ref) => {
13
- writer.writeString(ref.levelName);
14
- writer.writeString(ref.pathName);
15
- };
16
- })(ObjectReference = exports.ObjectReference || (exports.ObjectReference = {}));
17
- ;
@@ -1,272 +0,0 @@
1
- import { BinaryReadable } from "../../byte/binary-readable.interface";
2
- import { ByteWriter } from '../../byte/byte-writer.class';
3
- import { col4, vec3, vec4 } from "../structs/util.types";
4
- import { GUIDInfo } from './GUIDInfo';
5
- import { ObjectReference } from "./values/ObjectReference";
6
- export type PropertiesMap = {
7
- [name: string]: AbstractBaseProperty | AbstractBaseProperty[];
8
- };
9
- export declare abstract class AbstractProperty {
10
- type: string;
11
- index?: number | undefined;
12
- constructor(type: string, index?: number | undefined);
13
- }
14
- export declare abstract class AbstractBaseProperty extends AbstractProperty {
15
- ueType: string;
16
- name: string;
17
- constructor(type: string, ueType: string, index: number);
18
- }
19
- export declare abstract class BasicProperty extends AbstractBaseProperty {
20
- guidInfo: GUIDInfo;
21
- constructor(type: string, ueType: string, guidInfo: GUIDInfo, index?: number);
22
- }
23
- export declare class BoolProperty extends BasicProperty {
24
- value: boolean;
25
- constructor(value: boolean, ueType?: string, guidInfo?: GUIDInfo, index?: number);
26
- static Parse(reader: BinaryReadable, ueType: string, index?: number): BoolProperty;
27
- static ReadValue(reader: BinaryReadable): boolean;
28
- static CalcOverhead(property: BoolProperty): number;
29
- static Serialize(writer: ByteWriter, property: BoolProperty): void;
30
- static SerializeValue(writer: ByteWriter, value: boolean): void;
31
- }
32
- export type BytePropertyValue = {
33
- type: string;
34
- value: string | number;
35
- };
36
- export declare class ByteProperty extends BasicProperty {
37
- value: BytePropertyValue;
38
- constructor(value: BytePropertyValue, ueType?: string, guidInfo?: GUIDInfo, index?: number);
39
- static Parse(reader: BinaryReadable, ueType: string, index?: number): ByteProperty;
40
- static ReadValue(reader: BinaryReadable): number;
41
- static CalcOverhead(property: ByteProperty): number;
42
- static Serialize(writer: ByteWriter, property: ByteProperty): void;
43
- static SerializeValue(writer: ByteWriter, value: number): void;
44
- }
45
- export declare class Int8Property extends BasicProperty {
46
- value: number;
47
- constructor(value: number, ueType?: string, guidInfo?: GUIDInfo, index?: number);
48
- static Parse(reader: BinaryReadable, ueType: string, index?: number): Int8Property;
49
- static ReadValue(reader: BinaryReadable): number;
50
- static CalcOverhead(property: Int8Property): number;
51
- static Serialize(writer: ByteWriter, property: Int8Property): void;
52
- static SerializeValue(writer: ByteWriter, value: number): void;
53
- }
54
- export declare class Uint8Property extends BasicProperty {
55
- value: number;
56
- constructor(value: number, ueType?: string, guidInfo?: GUIDInfo, index?: number);
57
- static Parse(reader: BinaryReadable, ueType: string, index?: number): Uint8Property;
58
- static ReadValue(reader: BinaryReadable): number;
59
- static CalcOverhead(property: Uint8Property): number;
60
- static Serialize(writer: ByteWriter, property: Uint8Property): void;
61
- static SerializeValue(writer: ByteWriter, value: number): void;
62
- }
63
- export declare class Int32Property extends BasicProperty {
64
- value: number;
65
- constructor(value: number, ueType?: string, guidInfo?: GUIDInfo, index?: number);
66
- static Parse(reader: BinaryReadable, ueType: string, index?: number): Int32Property;
67
- static ReadValue(reader: BinaryReadable): number;
68
- static CalcOverhead(property: Int32Property): number;
69
- static Serialize(writer: ByteWriter, property: Int32Property): void;
70
- static SerializeValue(writer: ByteWriter, value: number): void;
71
- }
72
- export declare class Uint32Property extends BasicProperty {
73
- value: number;
74
- constructor(value: number, ueType?: string, guidInfo?: GUIDInfo, index?: number);
75
- static Parse(reader: BinaryReadable, ueType: string, index?: number): Uint32Property;
76
- static ReadValue(reader: BinaryReadable): number;
77
- static CalcOverhead(property: Uint32Property): number;
78
- static Serialize(writer: ByteWriter, property: Uint32Property): void;
79
- static SerializeValue(writer: ByteWriter, value: number): void;
80
- }
81
- export declare class Int64Property extends BasicProperty {
82
- value: string;
83
- constructor(value: string, ueType?: string, guidInfo?: GUIDInfo, index?: number);
84
- static Parse(reader: BinaryReadable, ueType: string, index?: number): Int64Property;
85
- static ReadValue(reader: BinaryReadable): string;
86
- static CalcOverhead(property: Int64Property): number;
87
- static Serialize(writer: ByteWriter, property: Int64Property): void;
88
- static SerializeValue(writer: ByteWriter, value: string): void;
89
- }
90
- export declare class FloatProperty extends BasicProperty {
91
- value: number;
92
- constructor(value: number, ueType?: string, guidInfo?: GUIDInfo, index?: number);
93
- static Parse(reader: BinaryReadable, ueType: string, index?: number): FloatProperty;
94
- static CalcOverhead(property: FloatProperty): number;
95
- static ReadValue(reader: BinaryReadable): number;
96
- static Serialize(writer: ByteWriter, property: FloatProperty): void;
97
- static SerializeValue(writer: ByteWriter, value: number): void;
98
- }
99
- export declare class DoubleProperty extends BasicProperty {
100
- value: number;
101
- constructor(value: number, ueType?: string, guidInfo?: GUIDInfo, index?: number);
102
- static Parse(reader: BinaryReadable, ueType: string, index?: number): DoubleProperty;
103
- static ReadValue(reader: BinaryReadable): number;
104
- static CalcOverhead(property: DoubleProperty): number;
105
- static Serialize(writer: ByteWriter, property: DoubleProperty): void;
106
- static SerializeValue(writer: ByteWriter, value: number): void;
107
- }
108
- export declare class StrProperty extends BasicProperty {
109
- value: string;
110
- constructor(value: string, ueType?: string, guidInfo?: GUIDInfo, index?: number);
111
- static Parse(reader: BinaryReadable, ueType: string, index?: number): StrProperty;
112
- static ReadValue(reader: BinaryReadable): string;
113
- static CalcOverhead(property: StrProperty): number;
114
- static Serialize(writer: ByteWriter, property: StrProperty): void;
115
- static SerializeValue(writer: ByteWriter, value: string): void;
116
- }
117
- export declare class ObjectProperty extends BasicProperty {
118
- value: ObjectReference;
119
- constructor(value: ObjectReference, ueType?: string, guidInfo?: GUIDInfo, index?: number);
120
- static Parse(reader: BinaryReadable, ueType: string, index?: number): ObjectProperty;
121
- static ReadValue(reader: BinaryReadable): ObjectReference;
122
- static CalcOverhead(property: ObjectProperty): number;
123
- static Serialize(writer: ByteWriter, property: ObjectProperty): void;
124
- static SerializeValue(writer: ByteWriter, value: ObjectReference): void;
125
- }
126
- export declare class EnumProperty extends BasicProperty {
127
- value: {
128
- name: string;
129
- value: string;
130
- };
131
- constructor(value: {
132
- name: string;
133
- value: string;
134
- }, ueType?: string, guidInfo?: GUIDInfo, index?: number);
135
- static Parse(reader: BinaryReadable, ueType: string, index?: number): EnumProperty;
136
- static ReadValue(reader: BinaryReadable): string;
137
- static CalcOverhead(property: EnumProperty): number;
138
- static Serialize(writer: ByteWriter, property: EnumProperty): void;
139
- static SerializeValue(writer: ByteWriter, value: string): void;
140
- }
141
- export type TextPropertyValue = {
142
- flags: number;
143
- historyType: number;
144
- namespace?: string;
145
- key?: string;
146
- value?: string;
147
- sourceFmt?: TextPropertyValue;
148
- arguments?: {
149
- name: string;
150
- valueType: number;
151
- argumentValue: TextPropertyValue;
152
- }[];
153
- sourceText?: TextPropertyValue;
154
- transformType?: number;
155
- hasCultureInvariantString?: boolean;
156
- };
157
- export declare class TextProperty extends BasicProperty {
158
- value: TextPropertyValue;
159
- constructor(value: TextPropertyValue, ueType?: string, guidInfo?: GUIDInfo, index?: number);
160
- static Parse(reader: BinaryReadable, ueType: string, index?: number): TextProperty;
161
- static ParseValue(reader: BinaryReadable): TextPropertyValue;
162
- static CalcOverhead(property: TextProperty): number;
163
- static Serialize(writer: ByteWriter, property: TextProperty): void;
164
- static SerializeValue(writer: ByteWriter, value: TextPropertyValue): void;
165
- }
166
- export type BasicMultipleStructPropertyValue = {
167
- values: any;
168
- };
169
- export type BasicStructPropertyValue = {
170
- value: any;
171
- };
172
- export type BoxStructPropertyValue = {
173
- min: vec3;
174
- max: vec3;
175
- isValid: boolean;
176
- };
177
- export type RailroadTrackPositionStructPropertyValue = {
178
- root: string;
179
- instanceName: string;
180
- offset: number;
181
- forward: number;
182
- };
183
- export type InventoryItemStructPropertyValue = {
184
- unk1: number;
185
- itemName: string;
186
- hasItemState: number;
187
- itemState?: {
188
- unk: number;
189
- pathName: string;
190
- binarySize: number;
191
- itemStateRaw: number[];
192
- };
193
- };
194
- export type FICFrameRangeStructPropertyValue = {
195
- begin: string;
196
- end: string;
197
- };
198
- export type DynamicStructPropertyValue = {
199
- type: string;
200
- properties: PropertiesMap;
201
- };
202
- export type ClientIdentityInfo = {
203
- id: string;
204
- clientUnk1: number;
205
- clientUnk2: number;
206
- clientHashSize: number;
207
- someClientHash: number[];
208
- };
209
- export type GENERIC_STRUCT_PROPERTY_VALUE = BasicMultipleStructPropertyValue | BasicStructPropertyValue | BoxStructPropertyValue | RailroadTrackPositionStructPropertyValue | InventoryItemStructPropertyValue | FICFrameRangeStructPropertyValue | ClientIdentityInfo | DynamicStructPropertyValue | col4 | vec3 | vec4 | string;
210
- export declare class StructProperty extends AbstractBaseProperty {
211
- subtype: string;
212
- guid: number;
213
- value: GENERIC_STRUCT_PROPERTY_VALUE;
214
- unk1?: number;
215
- unk2?: number;
216
- unk3?: number;
217
- unk4?: number;
218
- constructor(subtype: string, ueType?: string, index?: number, guid?: number);
219
- static Parse(reader: BinaryReadable, ueType: string, index: number, size: number): StructProperty;
220
- static ParseValue(reader: BinaryReadable, subtype: string, size: number): GENERIC_STRUCT_PROPERTY_VALUE;
221
- static CalcOverhead(property: StructProperty): number;
222
- static Serialize(writer: ByteWriter, property: StructProperty): void;
223
- static SerializeValue(writer: ByteWriter, subtype: string, value: GENERIC_STRUCT_PROPERTY_VALUE): void;
224
- }
225
- export type ArrayPropertyStructValueFields = {
226
- allStructType: string;
227
- allIndex: number;
228
- allGuid: number;
229
- allUnk1?: number;
230
- allUnk2?: number;
231
- allUnk3?: number;
232
- allUnk4?: number;
233
- };
234
- export declare class ArrayProperty<T> extends BasicProperty {
235
- subtype: string;
236
- values: T[];
237
- structValueFields?: ArrayPropertyStructValueFields | undefined;
238
- constructor(subtype: string, values: T[], ueType?: string, index?: number, structValueFields?: ArrayPropertyStructValueFields | undefined);
239
- static Parse(reader: BinaryReadable, ueType: string, index: number, propertyName: string): ArrayProperty<any>;
240
- static CalcOverhead(property: ArrayProperty<any>): number;
241
- static Serialize(writer: ByteWriter, property: ArrayProperty<any>, propertyName: string): void;
242
- }
243
- export declare class SetProperty<T> extends BasicProperty {
244
- subtype: string;
245
- values: T[];
246
- constructor(subtype: string, values: T[], ueType: string, index: number);
247
- static Parse(reader: BinaryReadable, ueType: string, index: number, propertyName: string): SetProperty<any>;
248
- static CalcOverhead(property: SetProperty<any>): number;
249
- static Serialize(writer: ByteWriter, property: SetProperty<any>): void;
250
- }
251
- export type MAP_STRUCT_KEY_PROXY = [number, number, number, number, number, number, number, number, number, number, number, number];
252
- export type GENERIC_MAP_KEY_TYPE = number | ObjectReference | boolean | GENERIC_STRUCT_PROPERTY_VALUE | MAP_STRUCT_KEY_PROXY;
253
- export type GENERIC_MAP_VALUE_TYPE = number | ObjectReference | boolean | GENERIC_STRUCT_PROPERTY_VALUE;
254
- export declare class MapProperty extends BasicProperty {
255
- keyType: string;
256
- valueType: string;
257
- modeType: number;
258
- modeUnk1: string | undefined;
259
- modeUnk2: string;
260
- modeUnk3: string;
261
- values: [key: GENERIC_MAP_KEY_TYPE, value: GENERIC_MAP_VALUE_TYPE][];
262
- constructor(keyType: string, valueType: string, ueType: string, index: number);
263
- static Parse(reader: BinaryReadable, propertyName: string, buildVersion: number, size: number, ueType?: string, index?: number): MapProperty;
264
- static CalcOverhead(property: MapProperty): number;
265
- static Serialize(writer: ByteWriter, property: MapProperty): void;
266
- }
267
- export declare const ParseDynamicStructData: (reader: BinaryReadable, buildVersion: number, type: string) => DynamicStructPropertyValue;
268
- export declare const SerializeDynamicStructData: (writer: ByteWriter, buildVersion: number, data: DynamicStructPropertyValue) => void;
269
- export declare const ReadFINNetworkTrace: (reader: BinaryReadable) => any;
270
- export declare const SerializeFINNetworkTrace: (writer: ByteWriter, obj: any) => void;
271
- export declare const ReadFINLuaProcessorStateStorage: (reader: BinaryReadable, size: number) => any;
272
- export declare const SerializeFINLuaProcessorStateStorage: (writer: ByteWriter, stateStorage: any) => void;