@etothepii/satisfactory-file-parser 0.4.20 → 0.4.22

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 (86) hide show
  1. package/README.md +11 -4
  2. package/build/index.d.ts +35 -36
  3. package/build/index.js +36 -40
  4. package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts +2 -2
  5. package/build/parser/satisfactory/blueprint/blueprint-reader.js +12 -10
  6. package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts +2 -2
  7. package/build/parser/satisfactory/blueprint/blueprint-writer.js +6 -6
  8. package/build/parser/satisfactory/blueprint/blueprint.types.d.ts +6 -5
  9. package/build/parser/satisfactory/save/level.class.d.ts +6 -6
  10. package/build/parser/satisfactory/save/level.class.js +22 -22
  11. package/build/parser/satisfactory/save/save-reader.js +1 -1
  12. package/build/parser/satisfactory/save/save-writer.js +2 -2
  13. package/build/parser/satisfactory/save/save.types.d.ts +1 -1
  14. package/build/parser/satisfactory/types/objects/SaveComponent.d.ts +19 -0
  15. package/build/parser/satisfactory/types/objects/SaveComponent.js +31 -0
  16. package/build/parser/satisfactory/types/objects/SaveEntity.d.ts +30 -0
  17. package/build/parser/satisfactory/types/objects/SaveEntity.js +66 -0
  18. package/build/parser/satisfactory/types/objects/SaveObject.d.ts +24 -0
  19. package/build/parser/satisfactory/types/objects/SaveObject.js +33 -0
  20. package/build/parser/satisfactory/types/property/DataFields.d.ts +15 -0
  21. package/build/parser/satisfactory/types/property/DataFields.js +493 -0
  22. package/build/parser/satisfactory/types/property/generic/ArrayProperty.d.ts +22 -0
  23. package/build/parser/satisfactory/types/property/generic/ArrayProperty.js +171 -0
  24. package/build/parser/satisfactory/types/property/generic/BasicProperty.d.ts +25 -0
  25. package/build/parser/satisfactory/types/property/generic/BasicProperty.js +28 -0
  26. package/build/parser/satisfactory/types/property/generic/BoolProperty.d.ts +14 -0
  27. package/build/parser/satisfactory/types/property/generic/BoolProperty.js +32 -0
  28. package/build/parser/satisfactory/types/property/generic/ByteProperty.d.ts +18 -0
  29. package/build/parser/satisfactory/types/property/generic/ByteProperty.js +52 -0
  30. package/build/parser/satisfactory/types/property/generic/DoubleProperty.d.ts +14 -0
  31. package/build/parser/satisfactory/types/property/generic/DoubleProperty.js +32 -0
  32. package/build/parser/satisfactory/types/property/generic/EnumProperty.d.ts +20 -0
  33. package/build/parser/satisfactory/types/property/generic/EnumProperty.js +35 -0
  34. package/build/parser/satisfactory/types/property/generic/FloatProperty.d.ts +14 -0
  35. package/build/parser/satisfactory/types/property/generic/FloatProperty.js +32 -0
  36. package/build/parser/satisfactory/types/property/generic/Int32Property.d.ts +14 -0
  37. package/build/parser/satisfactory/types/property/generic/Int32Property.js +32 -0
  38. package/build/parser/satisfactory/types/property/generic/Int64Property.d.ts +14 -0
  39. package/build/parser/satisfactory/types/property/generic/Int64Property.js +32 -0
  40. package/build/parser/satisfactory/types/property/generic/Int8Property.d.ts +14 -0
  41. package/build/parser/satisfactory/types/property/generic/Int8Property.js +32 -0
  42. package/build/parser/satisfactory/types/property/generic/MapProperty.d.ts +22 -0
  43. package/build/parser/satisfactory/types/property/generic/MapProperty.js +162 -0
  44. package/build/parser/satisfactory/types/property/generic/ObjectProperty.d.ts +15 -0
  45. package/build/parser/satisfactory/types/property/generic/ObjectProperty.js +37 -0
  46. package/build/parser/satisfactory/types/property/generic/SetProperty.d.ts +12 -0
  47. package/build/parser/satisfactory/types/property/generic/SetProperty.js +94 -0
  48. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.d.ts +13 -0
  49. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.js +27 -0
  50. package/build/parser/satisfactory/types/property/generic/StrProperty.d.ts +14 -0
  51. package/build/parser/satisfactory/types/property/generic/StrProperty.js +32 -0
  52. package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts +69 -0
  53. package/build/parser/satisfactory/types/property/generic/StructProperty.js +365 -0
  54. package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts +30 -0
  55. package/build/parser/satisfactory/types/property/generic/TextProperty.js +111 -0
  56. package/build/parser/satisfactory/types/property/generic/Uint32Property.d.ts +14 -0
  57. package/build/parser/satisfactory/types/property/generic/Uint32Property.js +32 -0
  58. package/build/parser/satisfactory/types/property/generic/Uint64Property.d.ts +14 -0
  59. package/build/parser/satisfactory/types/property/generic/Uint64Property.js +32 -0
  60. package/build/parser/satisfactory/types/property/generic/Uint8Property.d.ts +14 -0
  61. package/build/parser/satisfactory/types/property/generic/Uint8Property.js +32 -0
  62. package/build/parser/satisfactory/types/property/special/SpecialAnyProperty.d.ts +54 -0
  63. package/build/parser/satisfactory/types/property/special/SpecialAnyProperty.js +2 -0
  64. package/build/parser/satisfactory/types/structs/GUID.d.ts +7 -0
  65. package/build/parser/satisfactory/types/structs/GUID.js +21 -0
  66. package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts +8 -0
  67. package/build/parser/satisfactory/types/structs/GUIDInfo.js +26 -0
  68. package/build/parser/satisfactory/types/structs/MD5Hash.d.ts +10 -0
  69. package/build/parser/satisfactory/types/structs/MD5Hash.js +21 -0
  70. package/build/parser/satisfactory/types/structs/ObjectReference.d.ts +10 -0
  71. package/build/parser/satisfactory/types/structs/ObjectReference.js +17 -0
  72. package/build/parser/satisfactory/types/structs/SoftObjectReference.d.ts +11 -0
  73. package/build/parser/satisfactory/types/structs/SoftObjectReference.js +19 -0
  74. package/build/parser/satisfactory/types/structs/Transform.d.ts +15 -0
  75. package/build/parser/satisfactory/types/structs/Transform.js +32 -0
  76. package/build/parser/satisfactory/types/structs/col4.d.ts +14 -0
  77. package/build/parser/satisfactory/types/structs/col4.js +34 -0
  78. package/build/parser/satisfactory/types/structs/vec2.d.ts +12 -0
  79. package/build/parser/satisfactory/types/structs/vec2.js +26 -0
  80. package/build/parser/satisfactory/types/structs/vec3.d.ts +19 -0
  81. package/build/parser/satisfactory/types/structs/vec3.js +44 -0
  82. package/build/parser/satisfactory/types/structs/vec4.d.ts +12 -0
  83. package/build/parser/satisfactory/types/structs/vec4.js +27 -0
  84. package/build/parser/stream/reworked/readable-stream-parser.js +3 -3
  85. package/build/parser/stream/reworked/save-stream-writer.class.d.ts +2 -2
  86. package/package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # Satisfactory File Parser
2
2
  This is an NPM TypeScript Module to parse Satisfactory Files. Satisfactory is a game released by Coffee Stain Studios.
3
-
4
- The Module is written entirely in TypeScript and comes with Type Definitions.
5
- Currently, only the built JavaScript and Type Definitions are available. But if needed, the TypeScript source can be provided as well in future versions.
3
+ The reporitory is written entirely in TypeScript and comes with Type Definitions.
6
4
 
7
5
  This parser can read, modify and write:
8
6
  - Save Files `.sav`
@@ -140,9 +138,18 @@ fs.writeFileSync('./MyModifiedBlueprint.sbpcfg', Buffer.from(summary.configFileB
140
138
 
141
139
  # Bug Reports or Feedback
142
140
  So far this was just a private hobby project. But i figure some people actually use it.
143
- If you find a bug or have feedback about the parser, you can just hit me up on the satisfactory discord `etothepii`.
141
+ If you find a bug or have feedback about the parser, you can just open an issue on the github repo or hit me up on the satisfactory discord `etothepii`.
144
142
 
145
143
  # Changelog
144
+ ### [0.4.22] (2024-10-07)
145
+ #### compatibility fix
146
+ * referenced icon libraries in blueprints are now optional when being parsed.
147
+
148
+ ### [0.4.21] (2024-10-07)
149
+ #### internal package restructuring
150
+ * restructured some internal packages.
151
+ * provides now typeguards for every property.
152
+
146
153
  ### [0.4.20] (2024-10-06)
147
154
  #### bugfix
148
155
  * added parsing of icon library reference to parsing blueprints.
package/build/index.d.ts CHANGED
@@ -1,40 +1,40 @@
1
1
  export * from './parser/satisfactory/blueprint/blueprint.types';
2
- export { DataFields } from './parser/satisfactory/objects/DataFields';
3
- export * from './parser/satisfactory/objects/GUIDInfo';
4
- export * from './parser/satisfactory/objects/property/generic/ArrayProperty';
5
- export * from './parser/satisfactory/objects/property/generic/BasicProperty';
6
- export * from './parser/satisfactory/objects/property/generic/BoolProperty';
7
- export * from './parser/satisfactory/objects/property/generic/ByteProperty';
8
- export * from './parser/satisfactory/objects/property/generic/DoubleProperty';
9
- export * from './parser/satisfactory/objects/property/generic/EnumProperty';
10
- export * from './parser/satisfactory/objects/property/generic/FloatProperty';
11
- export * from './parser/satisfactory/objects/property/generic/Int32Property';
12
- export * from './parser/satisfactory/objects/property/generic/Int64Property';
13
- export * from './parser/satisfactory/objects/property/generic/Int8Property';
14
- export * from './parser/satisfactory/objects/property/generic/MapProperty';
15
- export * from './parser/satisfactory/objects/property/generic/ObjectProperty';
16
- export * from './parser/satisfactory/objects/property/generic/SetProperty';
17
- export * from './parser/satisfactory/objects/property/generic/StrProperty';
18
- export * from './parser/satisfactory/objects/property/generic/StructProperty';
19
- export * from './parser/satisfactory/objects/property/generic/TextProperty';
20
- export * from './parser/satisfactory/objects/property/generic/Uint32Property';
21
- export * from './parser/satisfactory/objects/property/generic/Uint64Property';
22
- export * from './parser/satisfactory/objects/property/generic/Uint8Property';
23
- export * from './parser/satisfactory/objects/property/special/SpecialAnyProperty';
24
- export * from './parser/satisfactory/objects/SaveComponent';
25
- export * from './parser/satisfactory/objects/SaveEntity';
26
- export * from './parser/satisfactory/objects/ue/MD5Hash';
27
- export * from './parser/satisfactory/objects/values/GUID';
28
- export * from './parser/satisfactory/objects/values/ObjectReference';
29
- export * from './parser/satisfactory/objects/values/SoftObjectReference';
30
- export { Level } from './parser/satisfactory/save/level.class';
31
- export { SatisfactorySave } from './parser/satisfactory/save/satisfactory-save';
2
+ export * from './parser/satisfactory/save/level.class';
3
+ export * from './parser/satisfactory/save/satisfactory-save';
32
4
  export * from './parser/satisfactory/save/save.types';
33
- export * from './parser/satisfactory/structs/util.types';
34
- export { BinaryOperable } from './parser/byte/binary-operable.interface';
35
- export { BinaryReadable } from './parser/byte/binary-readable.interface';
36
- export { ByteReader } from './parser/byte/byte-reader.class';
37
- export { ByteWriter } from './parser/byte/byte-writer.class';
5
+ export * from './parser/satisfactory/types/objects/SaveComponent';
6
+ export * from './parser/satisfactory/types/objects/SaveEntity';
7
+ export * from './parser/satisfactory/types/property/DataFields';
8
+ export * from './parser/satisfactory/types/property/generic/ArrayProperty';
9
+ export * from './parser/satisfactory/types/property/generic/BasicProperty';
10
+ export * from './parser/satisfactory/types/property/generic/BoolProperty';
11
+ export * from './parser/satisfactory/types/property/generic/ByteProperty';
12
+ export * from './parser/satisfactory/types/property/generic/DoubleProperty';
13
+ export * from './parser/satisfactory/types/property/generic/EnumProperty';
14
+ export * from './parser/satisfactory/types/property/generic/FloatProperty';
15
+ export * from './parser/satisfactory/types/property/generic/Int32Property';
16
+ export * from './parser/satisfactory/types/property/generic/Int64Property';
17
+ export * from './parser/satisfactory/types/property/generic/Int8Property';
18
+ export * from './parser/satisfactory/types/property/generic/MapProperty';
19
+ export * from './parser/satisfactory/types/property/generic/ObjectProperty';
20
+ export * from './parser/satisfactory/types/property/generic/SetProperty';
21
+ export * from './parser/satisfactory/types/property/generic/StrProperty';
22
+ export * from './parser/satisfactory/types/property/generic/StructProperty';
23
+ export * from './parser/satisfactory/types/property/generic/TextProperty';
24
+ export * from './parser/satisfactory/types/property/generic/Uint32Property';
25
+ export * from './parser/satisfactory/types/property/generic/Uint64Property';
26
+ export * from './parser/satisfactory/types/property/generic/Uint8Property';
27
+ export * from './parser/satisfactory/types/property/special/SpecialAnyProperty';
28
+ export * from './parser/satisfactory/types/structs/col4';
29
+ export * from './parser/satisfactory/types/structs/GUID';
30
+ export * from './parser/satisfactory/types/structs/GUIDInfo';
31
+ export * from './parser/satisfactory/types/structs/MD5Hash';
32
+ export * from './parser/satisfactory/types/structs/ObjectReference';
33
+ export * from './parser/satisfactory/types/structs/SoftObjectReference';
34
+ export * from './parser/satisfactory/types/structs/Transform';
35
+ export * from './parser/satisfactory/types/structs/vec2';
36
+ export * from './parser/satisfactory/types/structs/vec3';
37
+ export * from './parser/satisfactory/types/structs/vec4';
38
38
  export { BlueprintConfigReader, BlueprintReader } from './parser/satisfactory/blueprint/blueprint-reader';
39
39
  export { BlueprintConfigWriter, BlueprintWriter } from './parser/satisfactory/blueprint/blueprint-writer';
40
40
  export { SaveReader } from './parser/satisfactory/save/save-reader';
@@ -42,7 +42,6 @@ export { SaveWriter } from './parser/satisfactory/save/save-writer';
42
42
  export { SaveStreamJsonStringifier } from './parser/stream/reworked/save-stream-json-stringifier';
43
43
  export { SaveStreamWriter } from './parser/stream/reworked/save-stream-writer.class';
44
44
  export * from './parser/error/parser.error';
45
- export * from './parser/file.types';
46
45
  export { Parser } from './parser/parser';
47
46
  export { ReadableStreamParser } from './parser/stream/reworked/readable-stream-parser';
48
47
  export * from './parser/satisfactory/edit/edit-constants';
package/build/index.js CHANGED
@@ -14,47 +14,44 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ReadableStreamParser = exports.Parser = exports.SaveStreamWriter = exports.SaveStreamJsonStringifier = exports.SaveWriter = exports.SaveReader = exports.BlueprintWriter = exports.BlueprintConfigWriter = exports.BlueprintReader = exports.BlueprintConfigReader = exports.ByteWriter = exports.ByteReader = exports.SatisfactorySave = exports.Level = exports.DataFields = void 0;
17
+ exports.ReadableStreamParser = exports.Parser = exports.SaveStreamWriter = exports.SaveStreamJsonStringifier = exports.SaveWriter = exports.SaveReader = exports.BlueprintWriter = exports.BlueprintConfigWriter = exports.BlueprintReader = exports.BlueprintConfigReader = void 0;
18
18
  __exportStar(require("./parser/satisfactory/blueprint/blueprint.types"), exports);
19
- var DataFields_1 = require("./parser/satisfactory/objects/DataFields");
20
- Object.defineProperty(exports, "DataFields", { enumerable: true, get: function () { return DataFields_1.DataFields; } });
21
- __exportStar(require("./parser/satisfactory/objects/GUIDInfo"), exports);
22
- __exportStar(require("./parser/satisfactory/objects/property/generic/ArrayProperty"), exports);
23
- __exportStar(require("./parser/satisfactory/objects/property/generic/BasicProperty"), exports);
24
- __exportStar(require("./parser/satisfactory/objects/property/generic/BoolProperty"), exports);
25
- __exportStar(require("./parser/satisfactory/objects/property/generic/ByteProperty"), exports);
26
- __exportStar(require("./parser/satisfactory/objects/property/generic/DoubleProperty"), exports);
27
- __exportStar(require("./parser/satisfactory/objects/property/generic/EnumProperty"), exports);
28
- __exportStar(require("./parser/satisfactory/objects/property/generic/FloatProperty"), exports);
29
- __exportStar(require("./parser/satisfactory/objects/property/generic/Int32Property"), exports);
30
- __exportStar(require("./parser/satisfactory/objects/property/generic/Int64Property"), exports);
31
- __exportStar(require("./parser/satisfactory/objects/property/generic/Int8Property"), exports);
32
- __exportStar(require("./parser/satisfactory/objects/property/generic/MapProperty"), exports);
33
- __exportStar(require("./parser/satisfactory/objects/property/generic/ObjectProperty"), exports);
34
- __exportStar(require("./parser/satisfactory/objects/property/generic/SetProperty"), exports);
35
- __exportStar(require("./parser/satisfactory/objects/property/generic/StrProperty"), exports);
36
- __exportStar(require("./parser/satisfactory/objects/property/generic/StructProperty"), exports);
37
- __exportStar(require("./parser/satisfactory/objects/property/generic/TextProperty"), exports);
38
- __exportStar(require("./parser/satisfactory/objects/property/generic/Uint32Property"), exports);
39
- __exportStar(require("./parser/satisfactory/objects/property/generic/Uint64Property"), exports);
40
- __exportStar(require("./parser/satisfactory/objects/property/generic/Uint8Property"), exports);
41
- __exportStar(require("./parser/satisfactory/objects/property/special/SpecialAnyProperty"), exports);
42
- __exportStar(require("./parser/satisfactory/objects/SaveComponent"), exports);
43
- __exportStar(require("./parser/satisfactory/objects/SaveEntity"), exports);
44
- __exportStar(require("./parser/satisfactory/objects/ue/MD5Hash"), exports);
45
- __exportStar(require("./parser/satisfactory/objects/values/GUID"), exports);
46
- __exportStar(require("./parser/satisfactory/objects/values/ObjectReference"), exports);
47
- __exportStar(require("./parser/satisfactory/objects/values/SoftObjectReference"), exports);
48
- var level_class_1 = require("./parser/satisfactory/save/level.class");
49
- Object.defineProperty(exports, "Level", { enumerable: true, get: function () { return level_class_1.Level; } });
50
- var satisfactory_save_1 = require("./parser/satisfactory/save/satisfactory-save");
51
- Object.defineProperty(exports, "SatisfactorySave", { enumerable: true, get: function () { return satisfactory_save_1.SatisfactorySave; } });
19
+ __exportStar(require("./parser/satisfactory/save/level.class"), exports);
20
+ __exportStar(require("./parser/satisfactory/save/satisfactory-save"), exports);
52
21
  __exportStar(require("./parser/satisfactory/save/save.types"), exports);
53
- __exportStar(require("./parser/satisfactory/structs/util.types"), exports);
54
- var byte_reader_class_1 = require("./parser/byte/byte-reader.class");
55
- Object.defineProperty(exports, "ByteReader", { enumerable: true, get: function () { return byte_reader_class_1.ByteReader; } });
56
- var byte_writer_class_1 = require("./parser/byte/byte-writer.class");
57
- Object.defineProperty(exports, "ByteWriter", { enumerable: true, get: function () { return byte_writer_class_1.ByteWriter; } });
22
+ __exportStar(require("./parser/satisfactory/types/objects/SaveComponent"), exports);
23
+ __exportStar(require("./parser/satisfactory/types/objects/SaveEntity"), exports);
24
+ __exportStar(require("./parser/satisfactory/types/property/DataFields"), exports);
25
+ __exportStar(require("./parser/satisfactory/types/property/generic/ArrayProperty"), exports);
26
+ __exportStar(require("./parser/satisfactory/types/property/generic/BasicProperty"), exports);
27
+ __exportStar(require("./parser/satisfactory/types/property/generic/BoolProperty"), exports);
28
+ __exportStar(require("./parser/satisfactory/types/property/generic/ByteProperty"), exports);
29
+ __exportStar(require("./parser/satisfactory/types/property/generic/DoubleProperty"), exports);
30
+ __exportStar(require("./parser/satisfactory/types/property/generic/EnumProperty"), exports);
31
+ __exportStar(require("./parser/satisfactory/types/property/generic/FloatProperty"), exports);
32
+ __exportStar(require("./parser/satisfactory/types/property/generic/Int32Property"), exports);
33
+ __exportStar(require("./parser/satisfactory/types/property/generic/Int64Property"), exports);
34
+ __exportStar(require("./parser/satisfactory/types/property/generic/Int8Property"), exports);
35
+ __exportStar(require("./parser/satisfactory/types/property/generic/MapProperty"), exports);
36
+ __exportStar(require("./parser/satisfactory/types/property/generic/ObjectProperty"), exports);
37
+ __exportStar(require("./parser/satisfactory/types/property/generic/SetProperty"), exports);
38
+ __exportStar(require("./parser/satisfactory/types/property/generic/StrProperty"), exports);
39
+ __exportStar(require("./parser/satisfactory/types/property/generic/StructProperty"), exports);
40
+ __exportStar(require("./parser/satisfactory/types/property/generic/TextProperty"), exports);
41
+ __exportStar(require("./parser/satisfactory/types/property/generic/Uint32Property"), exports);
42
+ __exportStar(require("./parser/satisfactory/types/property/generic/Uint64Property"), exports);
43
+ __exportStar(require("./parser/satisfactory/types/property/generic/Uint8Property"), exports);
44
+ __exportStar(require("./parser/satisfactory/types/property/special/SpecialAnyProperty"), exports);
45
+ __exportStar(require("./parser/satisfactory/types/structs/col4"), exports);
46
+ __exportStar(require("./parser/satisfactory/types/structs/GUID"), exports);
47
+ __exportStar(require("./parser/satisfactory/types/structs/GUIDInfo"), exports);
48
+ __exportStar(require("./parser/satisfactory/types/structs/MD5Hash"), exports);
49
+ __exportStar(require("./parser/satisfactory/types/structs/ObjectReference"), exports);
50
+ __exportStar(require("./parser/satisfactory/types/structs/SoftObjectReference"), exports);
51
+ __exportStar(require("./parser/satisfactory/types/structs/Transform"), exports);
52
+ __exportStar(require("./parser/satisfactory/types/structs/vec2"), exports);
53
+ __exportStar(require("./parser/satisfactory/types/structs/vec3"), exports);
54
+ __exportStar(require("./parser/satisfactory/types/structs/vec4"), exports);
58
55
  var blueprint_reader_1 = require("./parser/satisfactory/blueprint/blueprint-reader");
59
56
  Object.defineProperty(exports, "BlueprintConfigReader", { enumerable: true, get: function () { return blueprint_reader_1.BlueprintConfigReader; } });
60
57
  Object.defineProperty(exports, "BlueprintReader", { enumerable: true, get: function () { return blueprint_reader_1.BlueprintReader; } });
@@ -70,7 +67,6 @@ Object.defineProperty(exports, "SaveStreamJsonStringifier", { enumerable: true,
70
67
  var save_stream_writer_class_1 = require("./parser/stream/reworked/save-stream-writer.class");
71
68
  Object.defineProperty(exports, "SaveStreamWriter", { enumerable: true, get: function () { return save_stream_writer_class_1.SaveStreamWriter; } });
72
69
  __exportStar(require("./parser/error/parser.error"), exports);
73
- __exportStar(require("./parser/file.types"), exports);
74
70
  var parser_1 = require("./parser/parser");
75
71
  Object.defineProperty(exports, "Parser", { enumerable: true, get: function () { return parser_1.Parser; } });
76
72
  var readable_stream_parser_1 = require("./parser/stream/reworked/readable-stream-parser");
@@ -1,8 +1,8 @@
1
1
  import { BinaryReadable } from "../../byte/binary-readable.interface";
2
2
  import { ByteReader } from "../../byte/byte-reader.class";
3
3
  import { ChunkCompressionInfo } from "../../file.types";
4
- import { SaveComponent } from "../objects/SaveComponent";
5
- import { SaveEntity } from "../objects/SaveEntity";
4
+ import { SaveComponent } from "../types/objects/SaveComponent";
5
+ import { SaveEntity } from "../types/objects/SaveEntity";
6
6
  import { BlueprintConfig, BlueprintHeader } from "./blueprint.types";
7
7
  export declare class BlueprintReader extends ByteReader {
8
8
  compressionInfo: ChunkCompressionInfo;
@@ -8,11 +8,12 @@ const pako_1 = __importDefault(require("pako"));
8
8
  const alignment_enum_1 = require("../../byte/alignment.enum");
9
9
  const byte_reader_class_1 = require("../../byte/byte-reader.class");
10
10
  const parser_error_1 = require("../../error/parser.error");
11
- const SaveComponent_1 = require("../objects/SaveComponent");
12
- const SaveEntity_1 = require("../objects/SaveEntity");
13
11
  const level_class_1 = require("../save/level.class");
14
12
  const save_reader_1 = require("../save/save-reader");
15
- const util_types_1 = require("../structs/util.types");
13
+ const SaveComponent_1 = require("../types/objects/SaveComponent");
14
+ const SaveEntity_1 = require("../types/objects/SaveEntity");
15
+ const col4_1 = require("../types/structs/col4");
16
+ const vec3_1 = require("../types/structs/vec3");
16
17
  class BlueprintReader extends byte_reader_class_1.ByteReader {
17
18
  constructor(bluePrintBuffer) {
18
19
  super(bluePrintBuffer, alignment_enum_1.Alignment.LITTLE_ENDIAN);
@@ -25,7 +26,7 @@ class BlueprintReader extends byte_reader_class_1.ByteReader {
25
26
  static ReadHeader(reader) {
26
27
  const alwaysTwo = reader.readBytes(4);
27
28
  const objectVersion = reader.readBytes(2 * 4);
28
- const dimensions = util_types_1.vec3.ParseInt(reader);
29
+ const dimensions = vec3_1.vec3.ParseInt(reader);
29
30
  let itemTypeCount = reader.readInt32();
30
31
  const itemCosts = new Array(itemTypeCount).fill(['', 0]);
31
32
  for (let i = 0; i < itemTypeCount; i++) {
@@ -136,16 +137,17 @@ class BlueprintConfigReader extends byte_reader_class_1.ByteReader {
136
137
  const alwaysTwo = reader.readInt32();
137
138
  const description = reader.readString();
138
139
  const iconID = reader.readInt32();
139
- const color = util_types_1.col4.ParseRGBA(reader);
140
- const referencedIconLibrary = reader.readString();
141
- const iconLibraryType = reader.readString();
142
- return {
140
+ const color = col4_1.col4.ParseRGBA(reader);
141
+ const config = {
143
142
  description,
144
143
  color,
145
144
  iconID,
146
- referencedIconLibrary,
147
- iconLibraryType
148
145
  };
146
+ if (reader.getBufferPosition() < reader.getBufferLength()) {
147
+ config.referencedIconLibrary = reader.readString();
148
+ config.iconLibraryType = reader.readString();
149
+ }
150
+ return config;
149
151
  }
150
152
  }
151
153
  exports.BlueprintConfigReader = BlueprintConfigReader;
@@ -1,7 +1,7 @@
1
1
  import { ByteWriter } from "../../byte/byte-writer.class";
2
2
  import { ChunkCompressionInfo, ChunkSummary } from "../../file.types";
3
- import { SaveComponent } from "../objects/SaveComponent";
4
- import { SaveEntity } from "../objects/SaveEntity";
3
+ import { SaveComponent } from "../types/objects/SaveComponent";
4
+ import { SaveEntity } from "../types/objects/SaveEntity";
5
5
  import { BlueprintConfig, BlueprintHeader } from "./blueprint.types";
6
6
  export declare class BlueprintWriter extends ByteWriter {
7
7
  constructor();
@@ -4,11 +4,11 @@ exports.BlueprintConfigWriter = exports.BlueprintWriter = void 0;
4
4
  const alignment_enum_1 = require("../../byte/alignment.enum");
5
5
  const byte_writer_class_1 = require("../../byte/byte-writer.class");
6
6
  const parser_error_1 = require("../../error/parser.error");
7
- const SaveComponent_1 = require("../objects/SaveComponent");
8
- const SaveEntity_1 = require("../objects/SaveEntity");
9
7
  const level_class_1 = require("../save/level.class");
10
8
  const save_writer_1 = require("../save/save-writer");
11
- const util_types_1 = require("../structs/util.types");
9
+ const SaveComponent_1 = require("../types/objects/SaveComponent");
10
+ const SaveEntity_1 = require("../types/objects/SaveEntity");
11
+ const col4_1 = require("../types/structs/col4");
12
12
  class BlueprintWriter extends byte_writer_class_1.ByteWriter {
13
13
  constructor() {
14
14
  super(alignment_enum_1.Alignment.LITTLE_ENDIAN);
@@ -81,9 +81,9 @@ class BlueprintConfigWriter extends byte_writer_class_1.ByteWriter {
81
81
  writer.writeInt32(2);
82
82
  writer.writeString(config.description);
83
83
  writer.writeInt32(config.iconID);
84
- util_types_1.col4.SerializeRGBA(writer, config.color);
85
- writer.writeString(config.referencedIconLibrary);
86
- writer.writeString(config.iconLibraryType);
84
+ col4_1.col4.SerializeRGBA(writer, config.color);
85
+ writer.writeString(config.referencedIconLibrary ?? '');
86
+ writer.writeString(config.iconLibraryType ?? '');
87
87
  }
88
88
  }
89
89
  exports.BlueprintConfigWriter = BlueprintConfigWriter;
@@ -1,13 +1,14 @@
1
1
  import { ChunkCompressionInfo } from "../../file.types";
2
- import { SaveComponent } from "../objects/SaveComponent";
3
- import { SaveEntity } from "../objects/SaveEntity";
4
- import { col4, vec3 } from "../structs/util.types";
2
+ import { SaveComponent } from "../types/objects/SaveComponent";
3
+ import { SaveEntity } from "../types/objects/SaveEntity";
4
+ import { col4 } from '../types/structs/col4';
5
+ import { vec3 } from '../types/structs/vec3';
5
6
  export interface BlueprintConfig {
6
7
  description: string;
7
8
  color: col4;
8
9
  iconID: number;
9
- referencedIconLibrary: string;
10
- iconLibraryType: string;
10
+ referencedIconLibrary?: string;
11
+ iconLibraryType?: string;
11
12
  }
12
13
  export type BlueprintHeader = {
13
14
  designerDimension?: vec3;
@@ -1,18 +1,18 @@
1
1
  import { BinaryReadable } from "../../byte/binary-readable.interface";
2
2
  import { ByteWriter } from "../../byte/byte-writer.class";
3
- import { SaveComponent } from "../objects/SaveComponent";
4
- import { SaveEntity } from "../objects/SaveEntity";
5
- import { SaveObject } from "../objects/SaveObject";
6
- import { ObjectReference } from "../objects/values/ObjectReference";
3
+ import { SaveComponent } from "../types/objects/SaveComponent";
4
+ import { SaveEntity } from "../types/objects/SaveEntity";
5
+ import { SaveObject } from "../types/objects/SaveObject";
6
+ import { ObjectReference } from "../types/structs/ObjectReference";
7
7
  export declare class Level {
8
8
  name: string;
9
9
  objects: (SaveEntity | SaveComponent)[];
10
10
  collectables: ObjectReference[];
11
11
  constructor(name: string);
12
- static SerializeObjectHeaders(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[]): void;
13
- static WriteLevel(writer: ByteWriter, level: Level, buildVersion: number): void;
12
+ static SerializeLevel(writer: ByteWriter, level: Level, buildVersion: number): void;
14
13
  static SerializeObjectContents(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[], buildVersion: number, levelName: string): void;
15
14
  static ReadObjectHeaders(reader: BinaryReadable, objectsList: SaveObject[], onProgressCallback: (progress: number, msg?: string) => void): void;
15
+ static SerializeObjectHeaders(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[]): void;
16
16
  static SerializeCollectablesList(writer: ByteWriter, collectables: ObjectReference[]): void;
17
17
  static ReadCollectablesList(reader: BinaryReadable): ObjectReference[];
18
18
  }
@@ -1,34 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Level = void 0;
4
- const SaveComponent_1 = require("../objects/SaveComponent");
5
- const SaveEntity_1 = require("../objects/SaveEntity");
6
- const ObjectReference_1 = require("../objects/values/ObjectReference");
4
+ const SaveComponent_1 = require("../types/objects/SaveComponent");
5
+ const SaveEntity_1 = require("../types/objects/SaveEntity");
6
+ const ObjectReference_1 = require("../types/structs/ObjectReference");
7
7
  class Level {
8
8
  constructor(name) {
9
9
  this.name = name;
10
10
  this.objects = [];
11
11
  this.collectables = [];
12
12
  }
13
- static SerializeObjectHeaders(writer, objects) {
14
- writer.writeInt32(objects.length);
15
- for (const obj of objects) {
16
- switch (obj.type) {
17
- case 'SaveEntity':
18
- writer.writeInt32(SaveEntity_1.SaveEntity.TypeID);
19
- SaveEntity_1.SaveEntity.SerializeHeader(writer, obj);
20
- break;
21
- case 'SaveComponent':
22
- writer.writeInt32(SaveComponent_1.SaveComponent.TypeID);
23
- SaveComponent_1.SaveComponent.SerializeHeader(writer, obj);
24
- break;
25
- default:
26
- console.log('Unknown object type', obj);
27
- break;
28
- }
29
- }
30
- }
31
- static WriteLevel(writer, level, buildVersion) {
13
+ static SerializeLevel(writer, level, buildVersion) {
32
14
  const lenIndicatorHeaderAndDestroyedEntitiesSize = writer.getBufferPosition();
33
15
  writer.writeInt32(0);
34
16
  writer.writeInt32(0);
@@ -82,6 +64,24 @@ class Level {
82
64
  }
83
65
  }
84
66
  }
67
+ static SerializeObjectHeaders(writer, objects) {
68
+ writer.writeInt32(objects.length);
69
+ for (const obj of objects) {
70
+ switch (obj.type) {
71
+ case 'SaveEntity':
72
+ writer.writeInt32(SaveEntity_1.SaveEntity.TypeID);
73
+ SaveEntity_1.SaveEntity.SerializeHeader(writer, obj);
74
+ break;
75
+ case 'SaveComponent':
76
+ writer.writeInt32(SaveComponent_1.SaveComponent.TypeID);
77
+ SaveComponent_1.SaveComponent.SerializeHeader(writer, obj);
78
+ break;
79
+ default:
80
+ console.log('Unknown object type', obj);
81
+ break;
82
+ }
83
+ }
84
+ }
85
85
  static SerializeCollectablesList(writer, collectables) {
86
86
  writer.writeInt32(collectables.length);
87
87
  for (const collectable of collectables) {
@@ -8,7 +8,7 @@ const pako_1 = __importDefault(require("pako"));
8
8
  const alignment_enum_1 = require("../../byte/alignment.enum");
9
9
  const byte_reader_class_1 = require("../../byte/byte-reader.class");
10
10
  const parser_error_1 = require("../../error/parser.error");
11
- const MD5Hash_1 = require("../objects/ue/MD5Hash");
11
+ const MD5Hash_1 = require("../types/structs/MD5Hash");
12
12
  exports.DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE = 49;
13
13
  class SaveReader extends byte_reader_class_1.ByteReader {
14
14
  constructor(fileBuffer, onProgressCallback = () => { }) {
@@ -9,7 +9,7 @@ const alignment_enum_1 = require("../../byte/alignment.enum");
9
9
  const byte_writer_class_1 = require("../../byte/byte-writer.class");
10
10
  const parser_error_1 = require("../../error/parser.error");
11
11
  const file_types_1 = require("../../file.types");
12
- const MD5Hash_1 = require("../objects/ue/MD5Hash");
12
+ const MD5Hash_1 = require("../types/structs/MD5Hash");
13
13
  const level_class_1 = require("./level.class");
14
14
  const save_reader_1 = require("./save-reader");
15
15
  class SaveWriter extends byte_writer_class_1.ByteWriter {
@@ -62,7 +62,7 @@ class SaveWriter extends byte_writer_class_1.ByteWriter {
62
62
  if (level.name !== save.header.mapName) {
63
63
  writer.writeString(level.name);
64
64
  }
65
- level_class_1.Level.WriteLevel(writer, level, buildVersion);
65
+ level_class_1.Level.SerializeLevel(writer, level, buildVersion);
66
66
  }
67
67
  }
68
68
  static GenerateCompressedChunksFromData(bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, alignment = alignment_enum_1.Alignment.LITTLE_ENDIAN) {
@@ -1,4 +1,4 @@
1
- import { MD5Hash } from '../objects/ue/MD5Hash';
1
+ import { MD5Hash } from '../types/structs/MD5Hash';
2
2
  export interface ModData {
3
3
  Reference: string;
4
4
  Name: string;
@@ -0,0 +1,19 @@
1
+ import { BinaryReadable } from "../../../byte/binary-readable.interface";
2
+ import { ByteWriter } from "../../../byte/byte-writer.class";
3
+ import { SaveObject, SaveObjectHeader } from "./SaveObject";
4
+ export declare const isSaveComponent: (obj: any) => obj is SaveComponent;
5
+ export interface SaveComponentHeader extends SaveObjectHeader {
6
+ parentEntityName: string;
7
+ }
8
+ export declare class SaveComponent extends SaveObject implements SaveComponentHeader {
9
+ typePath: string;
10
+ rootObject: string;
11
+ instanceName: string;
12
+ parentEntityName: string;
13
+ static readonly TypeID = 0;
14
+ readonly type = "SaveComponent";
15
+ constructor(typePath: string, rootObject: string, instanceName: string, parentEntityName?: string);
16
+ static ParseHeader(reader: BinaryReadable, obj: SaveComponent): void;
17
+ static SerializeHeader(writer: ByteWriter, component: SaveComponent): void;
18
+ static ParseData(component: SaveComponent, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void;
19
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SaveComponent = exports.isSaveComponent = void 0;
4
+ const SaveObject_1 = require("./SaveObject");
5
+ const isSaveComponent = (obj) => {
6
+ return obj.type === 'SaveComponent';
7
+ };
8
+ exports.isSaveComponent = isSaveComponent;
9
+ class SaveComponent extends SaveObject_1.SaveObject {
10
+ constructor(typePath, rootObject, instanceName, parentEntityName = '') {
11
+ super(typePath, rootObject, instanceName);
12
+ this.typePath = typePath;
13
+ this.rootObject = rootObject;
14
+ this.instanceName = instanceName;
15
+ this.parentEntityName = parentEntityName;
16
+ this.type = 'SaveComponent';
17
+ }
18
+ static ParseHeader(reader, obj) {
19
+ SaveObject_1.SaveObject.ParseHeader(reader, obj);
20
+ obj.parentEntityName = reader.readString();
21
+ }
22
+ static SerializeHeader(writer, component) {
23
+ SaveObject_1.SaveObject.SerializeHeader(writer, component);
24
+ writer.writeString(component.parentEntityName);
25
+ }
26
+ static ParseData(component, length, reader, buildVersion, typePath) {
27
+ SaveObject_1.SaveObject.ParseData(component, length, reader, buildVersion, typePath);
28
+ }
29
+ }
30
+ exports.SaveComponent = SaveComponent;
31
+ SaveComponent.TypeID = 0;
@@ -0,0 +1,30 @@
1
+ import { BinaryReadable } from "../../../byte/binary-readable.interface";
2
+ import { ByteWriter } from "../../../byte/byte-writer.class";
3
+ import { ObjectReference } from "../structs/ObjectReference";
4
+ import { Transform } from '../structs/Transform';
5
+ import { SaveObject, SaveObjectHeader } from "./SaveObject";
6
+ export declare const isSaveEntity: (obj: any) => obj is SaveEntity;
7
+ export interface SaveEntityHeader extends SaveObjectHeader {
8
+ needTransform: boolean;
9
+ transform: Transform;
10
+ wasPlacedInLevel: boolean;
11
+ }
12
+ export declare class SaveEntity extends SaveObject {
13
+ typePath: string;
14
+ rootObject: string;
15
+ instanceName: string;
16
+ parentEntityName: string;
17
+ static readonly TypeID = 1;
18
+ readonly type = "SaveEntity";
19
+ needTransform: boolean;
20
+ transform: Transform;
21
+ wasPlacedInLevel: boolean;
22
+ parentObjectRoot: string;
23
+ parentObjectName: string;
24
+ components: ObjectReference[];
25
+ constructor(typePath: string, rootObject: string, instanceName: string, parentEntityName?: string, needsTransform?: boolean);
26
+ static ParseHeader(reader: BinaryReadable, obj: SaveEntity): void;
27
+ static ParseData(entity: SaveEntity, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void;
28
+ static SerializeHeader(writer: ByteWriter, entity: SaveEntity): void;
29
+ static SerializeData(writer: ByteWriter, entity: SaveEntity, buildVersion: number): void;
30
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SaveEntity = exports.isSaveEntity = void 0;
4
+ const ObjectReference_1 = require("../structs/ObjectReference");
5
+ const Transform_1 = require("../structs/Transform");
6
+ const SaveObject_1 = require("./SaveObject");
7
+ const isSaveEntity = (obj) => {
8
+ return obj.type === 'SaveEntity';
9
+ };
10
+ exports.isSaveEntity = isSaveEntity;
11
+ class SaveEntity extends SaveObject_1.SaveObject {
12
+ constructor(typePath, rootObject, instanceName, parentEntityName = '', needsTransform = false) {
13
+ super(typePath, rootObject, instanceName);
14
+ this.typePath = typePath;
15
+ this.rootObject = rootObject;
16
+ this.instanceName = instanceName;
17
+ this.parentEntityName = parentEntityName;
18
+ this.type = 'SaveEntity';
19
+ this.needTransform = needsTransform;
20
+ this.wasPlacedInLevel = false;
21
+ this.parentObjectRoot = '';
22
+ this.parentObjectName = '';
23
+ this.transform = {
24
+ rotation: { x: 0, y: 0, z: 0, w: 1 },
25
+ translation: { x: 0, y: 0, z: 0 },
26
+ scale3d: { x: 1, y: 1, z: 1 }
27
+ };
28
+ this.components = [];
29
+ }
30
+ static ParseHeader(reader, obj) {
31
+ SaveObject_1.SaveObject.ParseHeader(reader, obj);
32
+ obj.needTransform = reader.readInt32() == 1;
33
+ obj.transform = Transform_1.Transform.ParseF(reader);
34
+ obj.wasPlacedInLevel = reader.readInt32() == 1;
35
+ }
36
+ static ParseData(entity, length, reader, buildVersion, typePath) {
37
+ const afterSizeIndicator = reader.getBufferPosition();
38
+ entity.parentObjectRoot = reader.readString();
39
+ entity.parentObjectName = reader.readString();
40
+ var componentCount = reader.readInt32();
41
+ for (let i = 0; i < componentCount; i++) {
42
+ var componentRef = ObjectReference_1.ObjectReference.read(reader);
43
+ entity.components.push(componentRef);
44
+ }
45
+ const remainingSize = length - (reader.getBufferPosition() - afterSizeIndicator);
46
+ return SaveObject_1.SaveObject.ParseData(entity, remainingSize, reader, buildVersion, typePath);
47
+ }
48
+ static SerializeHeader(writer, entity) {
49
+ SaveObject_1.SaveObject.SerializeHeader(writer, entity);
50
+ writer.writeInt32(entity.needTransform ? 1 : 0);
51
+ Transform_1.Transform.SerializeF(writer, entity.transform);
52
+ writer.writeInt32(entity.wasPlacedInLevel ? 1 : 0);
53
+ }
54
+ static SerializeData(writer, entity, buildVersion) {
55
+ writer.writeString(entity.parentObjectRoot);
56
+ writer.writeString(entity.parentObjectName);
57
+ writer.writeInt32(entity.components.length);
58
+ for (const com of entity.components) {
59
+ writer.writeString(com.levelName);
60
+ writer.writeString(com.pathName);
61
+ }
62
+ SaveObject_1.SaveObject.SerializeData(writer, entity, buildVersion);
63
+ }
64
+ }
65
+ exports.SaveEntity = SaveEntity;
66
+ SaveEntity.TypeID = 1;