@etothepii/satisfactory-file-parser 0.1.12 → 0.1.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.
package/README.md CHANGED
@@ -13,13 +13,13 @@ The version support of the packages is indicated below.
13
13
 
14
14
  Game Version Files of U5 and below are NOT supported.
15
15
 
16
- U8 has only read support so far and only for save files, not for blueprint files. More coming soon.
16
+ U8 has read and write support for blueprints, but only read support for saves. More coming soon.
17
17
 
18
18
  | Game Version | Package |
19
19
  |:--------------:|:-----------------------------|
20
20
  | <= U5 | ❌ |
21
21
  | U6 + U7 | ✅ 0.0.1 - 0.0.34 |
22
- | U8 | ⚠️ >= 0.1.12 (Reading only) |
22
+ | U8 | ⚠️ >= 0.1.14 (readig for both saves and blueprints, writing only for blueprints) |
23
23
 
24
24
 
25
25
  ## Installation via npm
@@ -23,8 +23,9 @@ class BlueprintReader extends byte_reader_class_1.ByteReader {
23
23
  };
24
24
  }
25
25
  static ReadHeader(reader) {
26
- const unk = reader.readBytes(3 * 4);
27
- const positionThingOrWhat = (0, util_types_1.ParseVec3f)(reader);
26
+ const blueprintTypeOrWhat = reader.readBytes(4);
27
+ const versionThing = reader.readBytes(2 * 4);
28
+ const probablyDimensions = (0, util_types_1.ParseVec3f)(reader);
28
29
  let itemTypeCount = reader.readInt32();
29
30
  const itemCosts = new Array(itemTypeCount).fill(['', 0]);
30
31
  for (let i = 0; i < itemTypeCount; i++) {
@@ -104,7 +105,6 @@ class BlueprintReader extends byte_reader_class_1.ByteReader {
104
105
  const suomeChecksumThing = reader.readInt32();
105
106
  BlueprintReader.ReadBlueprintObjectContents('', reader, objects, 0);
106
107
  const pos = reader.getBufferPosition();
107
- console.log(pos, reader.getBufferLength(), reader.getBufferProgress());
108
108
  return objects;
109
109
  }
110
110
  static ReadBlueprintObjectContents(levelName, reader, objectsList, buildVersion) {
@@ -13,8 +13,8 @@ class BlueprintWriter extends byte_writer_class_1.ByteWriter {
13
13
  }
14
14
  static SerializeHeader(writer, header) {
15
15
  writer.writeInt32(2);
16
- writer.writeInt32(36);
17
- writer.writeInt32(211839);
16
+ writer.writeInt32(42);
17
+ writer.writeInt32(249836);
18
18
  writer.writeInt32(4);
19
19
  writer.writeInt32(4);
20
20
  writer.writeInt32(4);
@@ -518,28 +518,24 @@ class StructProperty extends AbstractBaseProperty {
518
518
  value = (0, util_types_1.ParseCol4RGBA)(reader);
519
519
  break;
520
520
  case 'Vector':
521
- value = (size === 12) ? (0, util_types_1.ParseVec3f)(reader) : (0, util_types_1.ParseVec3)(reader);
522
- break;
523
521
  case 'Rotator':
524
522
  case 'Vector2D':
525
- value = (0, util_types_1.ParseVec3f)(reader);
523
+ value = (size === 12) ? (0, util_types_1.ParseVec3f)(reader) : (0, util_types_1.ParseVec3)(reader);
526
524
  break;
527
525
  case 'Quat':
528
- value = value = (size === 16) ? (0, util_types_1.ParseVec4f)(reader) : (0, util_types_1.ParseVec4)(reader);
529
- break;
530
526
  case 'Vector4':
531
527
  case 'Vector4D':
532
- value = (0, util_types_1.ParseVec4f)(reader);
528
+ value = (size === 16) ? (0, util_types_1.ParseVec4f)(reader) : (0, util_types_1.ParseVec4)(reader);
533
529
  break;
534
530
  case 'Box':
535
- const otherBoxLike = {
536
- other1: (0, util_types_1.ParseVec3f)(reader),
537
- other2: (0, util_types_1.ParseVec3f)(reader)
538
- };
539
- value = {
531
+ value = (size === 25) ? {
540
532
  min: (0, util_types_1.ParseVec3f)(reader),
541
533
  max: (0, util_types_1.ParseVec3f)(reader),
542
534
  isValid: reader.readByte() >= 1
535
+ } : {
536
+ min: (0, util_types_1.ParseVec3)(reader),
537
+ max: (0, util_types_1.ParseVec3)(reader),
538
+ isValid: reader.readByte() >= 1
543
539
  };
544
540
  break;
545
541
  case 'RailroadTrackPosition':
@@ -621,18 +617,18 @@ class StructProperty extends AbstractBaseProperty {
621
617
  case 'Rotator':
622
618
  case 'Vector2D':
623
619
  value = value;
624
- (0, util_types_1.SerializeVec3f)(writer, value);
620
+ (0, util_types_1.SerializeVec3)(writer, value);
625
621
  break;
626
622
  case 'Quat':
627
623
  case 'Vector4':
628
624
  case 'Vector4D':
629
625
  value = value;
630
- (0, util_types_1.SerializeVec4f)(writer, value);
626
+ (0, util_types_1.SerializeVec4)(writer, value);
631
627
  break;
632
628
  case 'Box':
633
629
  value = value;
634
- (0, util_types_1.SerializeVec3f)(writer, value.min);
635
- (0, util_types_1.SerializeVec3f)(writer, value.max);
630
+ (0, util_types_1.SerializeVec3)(writer, value.min);
631
+ (0, util_types_1.SerializeVec3)(writer, value.max);
636
632
  writer.writeByte(value.isValid ? 1 : 0);
637
633
  break;
638
634
  case 'RailroadTrackPosition':
@@ -920,7 +916,7 @@ class MapProperty extends BasicProperty {
920
916
  reader.skipBytes(12);
921
917
  }
922
918
  else {
923
- key = (0, exports.ParseDynamicStructData)(reader, 0, 'MapPropertyKey-' + property.keyType);
919
+ key = (0, exports.ParseDynamicStructData)(reader, 0, property.keyType);
924
920
  }
925
921
  break;
926
922
  case 'ObjectProperty':
@@ -945,7 +941,7 @@ class MapProperty extends BasicProperty {
945
941
  }
946
942
  switch (property.valueType) {
947
943
  case 'StructProperty':
948
- value = (0, exports.ParseDynamicStructData)(reader, 0, 'MapPropertyValue-' + property.valueType);
944
+ value = (0, exports.ParseDynamicStructData)(reader, 0, property.valueType);
949
945
  break;
950
946
  case 'ObjectProperty':
951
947
  value = ObjectProperty.ReadValue(reader);
@@ -1007,8 +1003,8 @@ const ParseDynamicStructData = (reader, buildVersion, type) => {
1007
1003
  exports.ParseDynamicStructData = ParseDynamicStructData;
1008
1004
  const SerializeDynamicStructData = (writer, buildVersion, data) => {
1009
1005
  for (const key in data.properties) {
1010
- writer.writeString(key);
1011
1006
  for (const prop of (Array.isArray(data.properties[key]) ? data.properties[key] : [data.properties[key]])) {
1007
+ writer.writeString(key);
1012
1008
  DataFields_1.DataFields.SerializeProperty(writer, prop, key, buildVersion);
1013
1009
  }
1014
1010
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@etothepii/satisfactory-file-parser",
3
3
  "author": "etothepii",
4
- "version": "0.1.12",
4
+ "version": "0.1.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",