@etothepii/satisfactory-file-parser 0.4.4 → 0.4.6

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 (49) hide show
  1. package/README.md +1 -1
  2. package/build/index.d.ts +23 -3
  3. package/build/index.js +24 -5
  4. package/build/parser/satisfactory/edit/edit-constants.d.ts +21 -0
  5. package/build/parser/satisfactory/edit/edit-constants.js +21 -0
  6. package/build/parser/satisfactory/objects/DataFields.d.ts +2 -35
  7. package/build/parser/satisfactory/objects/DataFields.js +121 -80
  8. package/build/parser/satisfactory/objects/SaveObject.d.ts +2 -2
  9. package/build/parser/satisfactory/objects/property/generic/ArrayProperty.d.ts +21 -0
  10. package/build/parser/satisfactory/objects/property/generic/ArrayProperty.js +169 -0
  11. package/build/parser/satisfactory/objects/property/generic/BasicProperty.d.ts +18 -0
  12. package/build/parser/satisfactory/objects/property/generic/BasicProperty.js +25 -0
  13. package/build/parser/satisfactory/objects/property/generic/BoolProperty.d.ts +13 -0
  14. package/build/parser/satisfactory/objects/property/generic/BoolProperty.js +30 -0
  15. package/build/parser/satisfactory/objects/property/generic/ByteProperty.d.ts +17 -0
  16. package/build/parser/satisfactory/objects/property/generic/ByteProperty.js +50 -0
  17. package/build/parser/satisfactory/objects/property/generic/DoubleProperty.d.ts +13 -0
  18. package/build/parser/satisfactory/objects/property/generic/DoubleProperty.js +30 -0
  19. package/build/parser/satisfactory/objects/property/generic/EnumProperty.d.ts +19 -0
  20. package/build/parser/satisfactory/objects/property/generic/EnumProperty.js +33 -0
  21. package/build/parser/satisfactory/objects/property/generic/FloatProperty.d.ts +13 -0
  22. package/build/parser/satisfactory/objects/property/generic/FloatProperty.js +30 -0
  23. package/build/parser/satisfactory/objects/property/generic/Int32Property.d.ts +13 -0
  24. package/build/parser/satisfactory/objects/property/generic/Int32Property.js +30 -0
  25. package/build/parser/satisfactory/objects/property/generic/Int64Property.d.ts +13 -0
  26. package/build/parser/satisfactory/objects/property/generic/Int64Property.js +30 -0
  27. package/build/parser/satisfactory/objects/property/generic/Int8Property.d.ts +13 -0
  28. package/build/parser/satisfactory/objects/property/generic/Int8Property.js +30 -0
  29. package/build/parser/satisfactory/objects/property/generic/MapProperty.d.ts +21 -0
  30. package/build/parser/satisfactory/objects/property/generic/MapProperty.js +160 -0
  31. package/build/parser/satisfactory/objects/property/generic/ObjectProperty.d.ts +14 -0
  32. package/build/parser/satisfactory/objects/property/generic/ObjectProperty.js +35 -0
  33. package/build/parser/satisfactory/objects/property/generic/SetProperty.d.ts +11 -0
  34. package/build/parser/satisfactory/objects/property/generic/SetProperty.js +89 -0
  35. package/build/parser/satisfactory/objects/property/generic/StrProperty.d.ts +13 -0
  36. package/build/parser/satisfactory/objects/property/generic/StrProperty.js +30 -0
  37. package/build/parser/satisfactory/objects/property/generic/StructProperty.d.ts +69 -0
  38. package/build/parser/satisfactory/objects/property/generic/StructProperty.js +340 -0
  39. package/build/parser/satisfactory/objects/property/generic/TextProperty.d.ts +29 -0
  40. package/build/parser/satisfactory/objects/property/generic/TextProperty.js +109 -0
  41. package/build/parser/satisfactory/objects/property/generic/Uint32Property.d.ts +13 -0
  42. package/build/parser/satisfactory/objects/property/generic/Uint32Property.js +30 -0
  43. package/build/parser/satisfactory/objects/property/generic/Uint64Property.d.ts +13 -0
  44. package/build/parser/satisfactory/objects/property/generic/Uint64Property.js +30 -0
  45. package/build/parser/satisfactory/objects/property/generic/Uint8Property.d.ts +13 -0
  46. package/build/parser/satisfactory/objects/property/generic/Uint8Property.js +30 -0
  47. package/build/parser/satisfactory/objects/property/special/SpecialAnyProperty.d.ts +36 -0
  48. package/build/parser/satisfactory/objects/property/special/SpecialAnyProperty.js +2 -0
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -18,7 +18,7 @@ Game Version Files of U5 and below are NOT supported.
18
18
  | <= U5 | ❌ |
19
19
  | U6 + U7 | ✅ 0.0.1 - 0.0.34 |
20
20
  | U8 | ✅ 0.1.20 - 0.3.7 |
21
- | U1.0 | ✅ >= 0.4.2 (Work in Progress)|
21
+ | U1.0 | ✅ >= 0.4.6 |
22
22
 
23
23
 
24
24
  ## Installation via npm
package/build/index.d.ts CHANGED
@@ -1,15 +1,36 @@
1
1
  export * from './parser/satisfactory/blueprint/blueprint.types';
2
2
  export { DataFields } from './parser/satisfactory/objects/DataFields';
3
3
  export * from './parser/satisfactory/objects/GUIDInfo';
4
- export * from './parser/satisfactory/objects/Property';
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';
5
24
  export { SaveComponent } from './parser/satisfactory/objects/SaveComponent';
6
25
  export { SaveEntity } from './parser/satisfactory/objects/SaveEntity';
7
26
  export * from './parser/satisfactory/objects/ue/MD5Hash';
8
27
  export * from './parser/satisfactory/objects/values/GUID';
9
- export { ObjectReference } from './parser/satisfactory/objects/values/ObjectReference';
28
+ export * from './parser/satisfactory/objects/values/ObjectReference';
29
+ export * from './parser/satisfactory/objects/values/SoftObjectReference';
10
30
  export { Level } from './parser/satisfactory/save/level.class';
11
31
  export { SatisfactorySave } from './parser/satisfactory/save/satisfactory-save';
12
32
  export * from './parser/satisfactory/save/save.types';
33
+ export * from './parser/satisfactory/structs/util.types';
13
34
  export { BinaryOperable } from './parser/byte/binary-operable.interface';
14
35
  export { BinaryReadable } from './parser/byte/binary-readable.interface';
15
36
  export { ByteReader } from './parser/byte/byte-reader.class';
@@ -18,7 +39,6 @@ export { BlueprintConfigReader, BlueprintReader } from './parser/satisfactory/bl
18
39
  export { BlueprintConfigWriter, BlueprintWriter } from './parser/satisfactory/blueprint/blueprint-writer';
19
40
  export { SaveReader } from './parser/satisfactory/save/save-reader';
20
41
  export { SaveWriter } from './parser/satisfactory/save/save-writer';
21
- export * from './parser/satisfactory/structs/util.types';
22
42
  export { SaveStreamJsonStringifier } from './parser/stream/reworked/save-stream-json-stringifier';
23
43
  export { SaveStreamWriter } from './parser/stream/reworked/save-stream-writer.class';
24
44
  export * from './parser/error/parser.error';
package/build/index.js CHANGED
@@ -14,25 +14,45 @@ 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.ObjectReference = exports.SaveEntity = exports.SaveComponent = 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 = exports.ByteWriter = exports.ByteReader = exports.SatisfactorySave = exports.Level = exports.SaveEntity = exports.SaveComponent = exports.DataFields = void 0;
18
18
  __exportStar(require("./parser/satisfactory/blueprint/blueprint.types"), exports);
19
19
  var DataFields_1 = require("./parser/satisfactory/objects/DataFields");
20
20
  Object.defineProperty(exports, "DataFields", { enumerable: true, get: function () { return DataFields_1.DataFields; } });
21
21
  __exportStar(require("./parser/satisfactory/objects/GUIDInfo"), exports);
22
- __exportStar(require("./parser/satisfactory/objects/Property"), 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);
23
42
  var SaveComponent_1 = require("./parser/satisfactory/objects/SaveComponent");
24
43
  Object.defineProperty(exports, "SaveComponent", { enumerable: true, get: function () { return SaveComponent_1.SaveComponent; } });
25
44
  var SaveEntity_1 = require("./parser/satisfactory/objects/SaveEntity");
26
45
  Object.defineProperty(exports, "SaveEntity", { enumerable: true, get: function () { return SaveEntity_1.SaveEntity; } });
27
46
  __exportStar(require("./parser/satisfactory/objects/ue/MD5Hash"), exports);
28
47
  __exportStar(require("./parser/satisfactory/objects/values/GUID"), exports);
29
- var ObjectReference_1 = require("./parser/satisfactory/objects/values/ObjectReference");
30
- Object.defineProperty(exports, "ObjectReference", { enumerable: true, get: function () { return ObjectReference_1.ObjectReference; } });
48
+ __exportStar(require("./parser/satisfactory/objects/values/ObjectReference"), exports);
49
+ __exportStar(require("./parser/satisfactory/objects/values/SoftObjectReference"), exports);
31
50
  var level_class_1 = require("./parser/satisfactory/save/level.class");
32
51
  Object.defineProperty(exports, "Level", { enumerable: true, get: function () { return level_class_1.Level; } });
33
52
  var satisfactory_save_1 = require("./parser/satisfactory/save/satisfactory-save");
34
53
  Object.defineProperty(exports, "SatisfactorySave", { enumerable: true, get: function () { return satisfactory_save_1.SatisfactorySave; } });
35
54
  __exportStar(require("./parser/satisfactory/save/save.types"), exports);
55
+ __exportStar(require("./parser/satisfactory/structs/util.types"), exports);
36
56
  var byte_reader_class_1 = require("./parser/byte/byte-reader.class");
37
57
  Object.defineProperty(exports, "ByteReader", { enumerable: true, get: function () { return byte_reader_class_1.ByteReader; } });
38
58
  var byte_writer_class_1 = require("./parser/byte/byte-writer.class");
@@ -47,7 +67,6 @@ var save_reader_1 = require("./parser/satisfactory/save/save-reader");
47
67
  Object.defineProperty(exports, "SaveReader", { enumerable: true, get: function () { return save_reader_1.SaveReader; } });
48
68
  var save_writer_1 = require("./parser/satisfactory/save/save-writer");
49
69
  Object.defineProperty(exports, "SaveWriter", { enumerable: true, get: function () { return save_writer_1.SaveWriter; } });
50
- __exportStar(require("./parser/satisfactory/structs/util.types"), exports);
51
70
  var save_stream_json_stringifier_1 = require("./parser/stream/reworked/save-stream-json-stringifier");
52
71
  Object.defineProperty(exports, "SaveStreamJsonStringifier", { enumerable: true, get: function () { return save_stream_json_stringifier_1.SaveStreamJsonStringifier; } });
53
72
  var save_stream_writer_class_1 = require("./parser/stream/reworked/save-stream-writer.class");
@@ -1667,6 +1667,10 @@ export declare const EDIT: {
1667
1667
  readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/ConveyorBeltMk5/Build_ConveyorBeltMk5.Build_ConveyorBeltMk5_C";
1668
1668
  readonly CLASS_NAME: "Build_ConveyorBeltMk5_C";
1669
1669
  };
1670
+ readonly BELT_MK6: {
1671
+ readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/ConveyorBeltMk6/Build_ConveyorBeltMk6.Build_ConveyorBeltMk6_C";
1672
+ readonly CLASS_NAME: "Build_ConveyorBeltMk6_C";
1673
+ };
1670
1674
  readonly LIFT_MK1: {
1671
1675
  readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk1/Build_ConveyorLiftMk1.Build_ConveyorLiftMk1_C";
1672
1676
  readonly CLASS_NAME: "Build_ConveyorLiftMk1_C";
@@ -1687,6 +1691,10 @@ export declare const EDIT: {
1687
1691
  readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk5/Build_ConveyorLiftMk5.Build_ConveyorLiftMk5_C";
1688
1692
  readonly CLASS_NAME: "Build_ConveyorLiftMk5_C";
1689
1693
  };
1694
+ readonly LIFT_MK6: {
1695
+ readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk6/Build_ConveyorLiftMk6.Build_ConveyorLiftMk6_C";
1696
+ readonly CLASS_NAME: "Build_ConveyorLiftMk6_C";
1697
+ };
1690
1698
  };
1691
1699
  readonly PIPELINE: {
1692
1700
  readonly PIPELINE_MK1: {
@@ -1767,6 +1775,10 @@ export declare const EDIT: {
1767
1775
  readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/StorageContainerMk2/Build_StorageContainerMk2.Build_StorageContainerMk2_C";
1768
1776
  readonly CLASS_NAME: "Build_StorageContainerMk2_C";
1769
1777
  };
1778
+ readonly CENTRAL_STORAGE: {
1779
+ readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/CentralStorage/Build_CentralStorage.Build_CentralStorage_C";
1780
+ readonly CLASS_NAME: "Build_CentralStorage_C";
1781
+ };
1770
1782
  readonly FLUID_BUFFER_MK_1: {
1771
1783
  readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/StorageTank/Build_PipeStorageTank.Build_PipeStorageTank_C";
1772
1784
  readonly CLASS_NAME: "Build_PipeStorageTank_C";
@@ -1885,6 +1897,15 @@ export declare const EDIT: {
1885
1897
  };
1886
1898
  };
1887
1899
  readonly SUBSYSTEMS_AND_MANAGERS: {
1900
+ readonly WORLD_SETTINGS: {
1901
+ readonly TYPE_PATH: "/Script/FactoryGame.FGWorldSettings";
1902
+ };
1903
+ readonly LIGHTWEIGHT_BUILDABLE_SUBSYSTEM: {
1904
+ readonly TYPE_PATH: "/Script/FactoryGame.FGLightweightBuildableSubsystem";
1905
+ };
1906
+ readonly BUILDABLE_SUBSYSTEM: {
1907
+ readonly TYPE_PATH: "/Game/FactoryGame/-Shared/Blueprint/BP_BuildableSubsystem.BP_BuildableSubsystem_C";
1908
+ };
1888
1909
  readonly FOLIAGE_REMOVAL_SUBSYSTEM: {
1889
1910
  readonly TYPE_PATH: "/Script/FactoryGame.FGFoliageRemovalSubsystem";
1890
1911
  };
@@ -1751,6 +1751,10 @@ exports.EDIT = {
1751
1751
  TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/ConveyorBeltMk5/Build_ConveyorBeltMk5.Build_ConveyorBeltMk5_C',
1752
1752
  CLASS_NAME: 'Build_ConveyorBeltMk5_C'
1753
1753
  },
1754
+ BELT_MK6: {
1755
+ TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/ConveyorBeltMk6/Build_ConveyorBeltMk6.Build_ConveyorBeltMk6_C',
1756
+ CLASS_NAME: 'Build_ConveyorBeltMk6_C'
1757
+ },
1754
1758
  LIFT_MK1: {
1755
1759
  TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk1/Build_ConveyorLiftMk1.Build_ConveyorLiftMk1_C',
1756
1760
  CLASS_NAME: 'Build_ConveyorLiftMk1_C'
@@ -1771,6 +1775,10 @@ exports.EDIT = {
1771
1775
  TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk5/Build_ConveyorLiftMk5.Build_ConveyorLiftMk5_C',
1772
1776
  CLASS_NAME: 'Build_ConveyorLiftMk5_C'
1773
1777
  },
1778
+ LIFT_MK6: {
1779
+ TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk6/Build_ConveyorLiftMk6.Build_ConveyorLiftMk6_C',
1780
+ CLASS_NAME: 'Build_ConveyorLiftMk6_C'
1781
+ },
1774
1782
  },
1775
1783
  PIPELINE: {
1776
1784
  PIPELINE_MK1: {
@@ -1851,6 +1859,10 @@ exports.EDIT = {
1851
1859
  TYPE_PATH: TYPE_PATH_CONTAINER_MK2,
1852
1860
  CLASS_NAME: CLASS_NAME_CONTAINER_MK2
1853
1861
  },
1862
+ CENTRAL_STORAGE: {
1863
+ TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/CentralStorage/Build_CentralStorage.Build_CentralStorage_C',
1864
+ CLASS_NAME: 'Build_CentralStorage_C'
1865
+ },
1854
1866
  FLUID_BUFFER_MK_1: {
1855
1867
  TYPE_PATH: TYPE_PATH_FLUID_BUFFER_MK1,
1856
1868
  CLASS_NAME: CLASS_NAME_FLUID_BUFFER_MK1,
@@ -1969,6 +1981,15 @@ exports.EDIT = {
1969
1981
  }
1970
1982
  },
1971
1983
  SUBSYSTEMS_AND_MANAGERS: {
1984
+ WORLD_SETTINGS: {
1985
+ TYPE_PATH: '/Script/FactoryGame.FGWorldSettings',
1986
+ },
1987
+ LIGHTWEIGHT_BUILDABLE_SUBSYSTEM: {
1988
+ TYPE_PATH: '/Script/FactoryGame.FGLightweightBuildableSubsystem'
1989
+ },
1990
+ BUILDABLE_SUBSYSTEM: {
1991
+ TYPE_PATH: '/Game/FactoryGame/-Shared/Blueprint/BP_BuildableSubsystem.BP_BuildableSubsystem_C'
1992
+ },
1972
1993
  FOLIAGE_REMOVAL_SUBSYSTEM: {
1973
1994
  TYPE_PATH: '/Script/FactoryGame.FGFoliageRemovalSubsystem'
1974
1995
  },
@@ -1,42 +1,9 @@
1
1
  import { BinaryReadable } from "../../byte/binary-readable.interface";
2
2
  import { ByteWriter } from '../../byte/byte-writer.class';
3
3
  import { SaveWriter } from "../save/save-writer";
4
- import { Transform, vec3 } from '../structs/util.types';
5
- import { AbstractBaseProperty } from "./Property";
4
+ import { AbstractBaseProperty } from "./property/generic/BasicProperty";
5
+ import { SpecialAnyProperty } from './property/special/SpecialAnyProperty';
6
6
  import { SaveObject } from "./SaveObject";
7
- import { ObjectReference } from "./values/ObjectReference";
8
- export type SpecialAnyProperty = {} | PowerLineSpecialProperty | PlayerSpecialProperty;
9
- export type PowerLineSpecialProperty = {
10
- num: number;
11
- source: ObjectReference;
12
- target: ObjectReference;
13
- sourceTranslation?: vec3;
14
- targetTranslation?: vec3;
15
- };
16
- export type PlayerSpecialProperty = {
17
- flag: number;
18
- eosData?: string;
19
- steamPlayerData?: string;
20
- };
21
- export type ItemSpecialProperty = {
22
- length: number;
23
- name: string;
24
- position: number;
25
- pathName: string;
26
- };
27
- export type ConveyorSpecialProperty = {
28
- items: ItemSpecialProperty[];
29
- };
30
- export type BuildableSubsystemSpecialProperty = {
31
- buildables: {
32
- typePath: string;
33
- instances: {
34
- transform: Transform;
35
- swatchSlotTypePath: string;
36
- recipeTypePath: string;
37
- }[];
38
- }[];
39
- };
40
7
  export declare class DataFields {
41
8
  constructor();
42
9
  static ParseProperties(obj: SaveObject, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void;
@@ -2,7 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DataFields = void 0;
4
4
  const util_types_1 = require("../structs/util.types");
5
- const Property_1 = require("./Property");
5
+ const ArrayProperty_1 = require("./property/generic/ArrayProperty");
6
+ const BoolProperty_1 = require("./property/generic/BoolProperty");
7
+ const ByteProperty_1 = require("./property/generic/ByteProperty");
8
+ const DoubleProperty_1 = require("./property/generic/DoubleProperty");
9
+ const EnumProperty_1 = require("./property/generic/EnumProperty");
10
+ const FloatProperty_1 = require("./property/generic/FloatProperty");
11
+ const Int32Property_1 = require("./property/generic/Int32Property");
12
+ const Int64Property_1 = require("./property/generic/Int64Property");
13
+ const Int8Property_1 = require("./property/generic/Int8Property");
14
+ const MapProperty_1 = require("./property/generic/MapProperty");
15
+ const ObjectProperty_1 = require("./property/generic/ObjectProperty");
16
+ const SetProperty_1 = require("./property/generic/SetProperty");
17
+ const StrProperty_1 = require("./property/generic/StrProperty");
18
+ const StructProperty_1 = require("./property/generic/StructProperty");
19
+ const TextProperty_1 = require("./property/generic/TextProperty");
20
+ const Uint32Property_1 = require("./property/generic/Uint32Property");
21
+ const Uint64Property_1 = require("./property/generic/Uint64Property");
22
+ const Uint8Property_1 = require("./property/generic/Uint8Property");
6
23
  class DataFields {
7
24
  constructor() {
8
25
  }
@@ -49,18 +66,23 @@ class DataFields {
49
66
  case '/Game/FactoryGame/Buildable/Factory/ConveyorBeltMk3/Build_ConveyorBeltMk3.Build_ConveyorBeltMk3_C':
50
67
  case '/Game/FactoryGame/Buildable/Factory/ConveyorBeltMk4/Build_ConveyorBeltMk4.Build_ConveyorBeltMk4_C':
51
68
  case '/Game/FactoryGame/Buildable/Factory/ConveyorBeltMk5/Build_ConveyorBeltMk5.Build_ConveyorBeltMk5_C':
69
+ case '/Game/FactoryGame/Buildable/Factory/ConveyorBeltMk6/Build_ConveyorBeltMk6.Build_ConveyorBeltMk6_C':
52
70
  case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk1/Build_ConveyorLiftMk1.Build_ConveyorLiftMk1_C':
53
71
  case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk2/Build_ConveyorLiftMk2.Build_ConveyorLiftMk2_C':
54
72
  case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk3/Build_ConveyorLiftMk3.Build_ConveyorLiftMk3_C':
55
73
  case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk4/Build_ConveyorLiftMk4.Build_ConveyorLiftMk4_C':
56
74
  case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk5/Build_ConveyorLiftMk5.Build_ConveyorLiftMk5_C':
57
- property = {};
75
+ case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk6/Build_ConveyorLiftMk6.Build_ConveyorLiftMk6_C':
76
+ const count = reader.readInt32();
77
+ property = {
78
+ items: []
79
+ };
58
80
  break;
59
81
  case '/Game/FactoryGame/Buildable/Factory/PowerLine/Build_PowerLine.Build_PowerLine_C':
60
82
  case '/Game/FactoryGame/Events/Christmas/Buildings/PowerLineLights/Build_XmassLightsLine.Build_XmassLightsLine_C':
61
83
  property = {
62
- source: Property_1.ObjectProperty.ReadValue(reader),
63
- target: Property_1.ObjectProperty.ReadValue(reader)
84
+ source: ObjectProperty_1.ObjectProperty.ReadValue(reader),
85
+ target: ObjectProperty_1.ObjectProperty.ReadValue(reader)
64
86
  };
65
87
  if (remainingLen - (reader.getBufferPosition() - start) >= 24) {
66
88
  property.sourceTranslation = util_types_1.vec3.ParseF(reader);
@@ -94,13 +116,20 @@ class DataFields {
94
116
  const transform = util_types_1.Transform.Parse(reader);
95
117
  reader.readInt32();
96
118
  const swatchSlotTypePath = reader.readString();
97
- reader.readBytes(69);
98
- const recipeTypePath = reader.readString();
119
+ const zeroes = util_types_1.vec4.Parse(reader);
120
+ const oneZeroOne = util_types_1.vec3.Parse(reader);
121
+ const unknownUseNumbers = [zeroes, oneZeroOne];
99
122
  reader.readInt32();
123
+ const paintFinishPath = reader.readString();
100
124
  reader.readInt32();
125
+ reader.readBytes(1);
126
+ const recipeTypePath = reader.readString();
127
+ reader.readInt64();
101
128
  instances.push({
102
129
  transform,
130
+ unknownUseNumbers,
103
131
  swatchSlotTypePath,
132
+ paintFinishPath,
104
133
  recipeTypePath,
105
134
  });
106
135
  }
@@ -126,76 +155,79 @@ class DataFields {
126
155
  let overhead = 0;
127
156
  switch (propertyType) {
128
157
  case 'BoolProperty':
129
- currentProperty = Property_1.BoolProperty.Parse(reader, propertyType, index);
130
- overhead = Property_1.BoolProperty.CalcOverhead(currentProperty);
158
+ currentProperty = BoolProperty_1.BoolProperty.Parse(reader, propertyType, index);
159
+ overhead = BoolProperty_1.BoolProperty.CalcOverhead(currentProperty);
131
160
  break;
132
161
  case 'ByteProperty':
133
- currentProperty = Property_1.ByteProperty.Parse(reader, propertyType, index);
134
- overhead = Property_1.ByteProperty.CalcOverhead(currentProperty);
162
+ currentProperty = ByteProperty_1.ByteProperty.Parse(reader, propertyType, index);
163
+ overhead = ByteProperty_1.ByteProperty.CalcOverhead(currentProperty);
135
164
  break;
136
165
  case 'Int8Property':
137
- currentProperty = Property_1.Int8Property.Parse(reader, propertyType, index);
138
- overhead = Property_1.Int8Property.CalcOverhead(currentProperty);
166
+ currentProperty = Int8Property_1.Int8Property.Parse(reader, propertyType, index);
167
+ overhead = Int8Property_1.Int8Property.CalcOverhead(currentProperty);
139
168
  break;
140
169
  case 'UInt8Property':
141
- currentProperty = Property_1.Uint8Property.Parse(reader, propertyType, index);
142
- overhead = Property_1.Uint8Property.CalcOverhead(currentProperty);
170
+ currentProperty = Uint8Property_1.Uint8Property.Parse(reader, propertyType, index);
171
+ overhead = Uint8Property_1.Uint8Property.CalcOverhead(currentProperty);
143
172
  break;
144
173
  case 'IntProperty':
145
174
  case 'Int32Property':
146
- currentProperty = Property_1.Int32Property.Parse(reader, propertyType, index);
147
- overhead = Property_1.Int32Property.CalcOverhead(currentProperty);
175
+ currentProperty = Int32Property_1.Int32Property.Parse(reader, propertyType, index);
176
+ overhead = Int32Property_1.Int32Property.CalcOverhead(currentProperty);
148
177
  break;
149
178
  case 'UInt32Property':
150
- currentProperty = Property_1.Uint32Property.Parse(reader, propertyType, index);
151
- overhead = Property_1.Uint32Property.CalcOverhead(currentProperty);
179
+ currentProperty = Uint32Property_1.Uint32Property.Parse(reader, propertyType, index);
180
+ overhead = Uint32Property_1.Uint32Property.CalcOverhead(currentProperty);
152
181
  break;
153
182
  case 'Int64Property':
154
- currentProperty = Property_1.Int64Property.Parse(reader, propertyType, index);
155
- overhead = Property_1.Int64Property.CalcOverhead(currentProperty);
183
+ currentProperty = Int64Property_1.Int64Property.Parse(reader, propertyType, index);
184
+ overhead = Int64Property_1.Int64Property.CalcOverhead(currentProperty);
185
+ break;
186
+ case 'UInt64Property':
187
+ currentProperty = Uint64Property_1.UInt64Property.Parse(reader, propertyType, index);
156
188
  break;
157
189
  case 'SingleProperty':
158
190
  case 'FloatProperty':
159
- currentProperty = Property_1.FloatProperty.Parse(reader, propertyType, index);
160
- overhead = Property_1.FloatProperty.CalcOverhead(currentProperty);
191
+ currentProperty = FloatProperty_1.FloatProperty.Parse(reader, propertyType, index);
192
+ overhead = FloatProperty_1.FloatProperty.CalcOverhead(currentProperty);
161
193
  break;
162
194
  case 'DoubleProperty':
163
- currentProperty = Property_1.DoubleProperty.Parse(reader, propertyType, index);
164
- overhead = Property_1.DoubleProperty.CalcOverhead(currentProperty);
195
+ currentProperty = DoubleProperty_1.DoubleProperty.Parse(reader, propertyType, index);
196
+ overhead = DoubleProperty_1.DoubleProperty.CalcOverhead(currentProperty);
165
197
  break;
166
198
  case 'StrProperty':
167
199
  case 'NameProperty':
168
- currentProperty = Property_1.StrProperty.Parse(reader, propertyType, index);
169
- overhead = Property_1.StrProperty.CalcOverhead(currentProperty);
200
+ currentProperty = StrProperty_1.StrProperty.Parse(reader, propertyType, index);
201
+ overhead = StrProperty_1.StrProperty.CalcOverhead(currentProperty);
170
202
  break;
171
203
  case 'ObjectProperty':
172
204
  case 'InterfaceProperty':
173
- currentProperty = Property_1.ObjectProperty.Parse(reader, propertyType, index);
174
- overhead = Property_1.ObjectProperty.CalcOverhead(currentProperty);
205
+ currentProperty = ObjectProperty_1.ObjectProperty.Parse(reader, propertyType, index);
206
+ overhead = ObjectProperty_1.ObjectProperty.CalcOverhead(currentProperty);
175
207
  break;
176
208
  case 'EnumProperty':
177
- currentProperty = Property_1.EnumProperty.Parse(reader, propertyType, index);
178
- overhead = Property_1.EnumProperty.CalcOverhead(currentProperty);
209
+ currentProperty = EnumProperty_1.EnumProperty.Parse(reader, propertyType, index);
210
+ overhead = EnumProperty_1.EnumProperty.CalcOverhead(currentProperty);
179
211
  break;
180
212
  case 'StructProperty':
181
- currentProperty = Property_1.StructProperty.Parse(reader, propertyType, index, binarySize);
182
- overhead = Property_1.StructProperty.CalcOverhead(currentProperty);
213
+ currentProperty = StructProperty_1.StructProperty.Parse(reader, propertyType, index, binarySize);
214
+ overhead = StructProperty_1.StructProperty.CalcOverhead(currentProperty);
183
215
  break;
184
216
  case 'ArrayProperty':
185
- currentProperty = Property_1.ArrayProperty.Parse(reader, propertyType, index, propertyName);
186
- overhead = Property_1.ArrayProperty.CalcOverhead(currentProperty);
217
+ currentProperty = ArrayProperty_1.ArrayProperty.Parse(reader, propertyType, index, propertyName);
218
+ overhead = ArrayProperty_1.ArrayProperty.CalcOverhead(currentProperty);
187
219
  break;
188
220
  case 'MapProperty':
189
- currentProperty = Property_1.MapProperty.Parse(reader, propertyName, buildVersion, binarySize);
190
- overhead = Property_1.MapProperty.CalcOverhead(currentProperty);
221
+ currentProperty = MapProperty_1.MapProperty.Parse(reader, propertyName, buildVersion, binarySize);
222
+ overhead = MapProperty_1.MapProperty.CalcOverhead(currentProperty);
191
223
  break;
192
224
  case 'TextProperty':
193
- currentProperty = Property_1.TextProperty.Parse(reader, propertyType, index);
194
- overhead = Property_1.TextProperty.CalcOverhead(currentProperty);
225
+ currentProperty = TextProperty_1.TextProperty.Parse(reader, propertyType, index);
226
+ overhead = TextProperty_1.TextProperty.CalcOverhead(currentProperty);
195
227
  break;
196
228
  case 'SetProperty':
197
- currentProperty = Property_1.SetProperty.Parse(reader, propertyType, index, propertyName);
198
- overhead = Property_1.SetProperty.CalcOverhead(currentProperty);
229
+ currentProperty = SetProperty_1.SetProperty.Parse(reader, propertyType, index, propertyName);
230
+ overhead = SetProperty_1.SetProperty.CalcOverhead(currentProperty);
199
231
  break;
200
232
  default:
201
233
  throw new Error(`Unimplemented type ${propertyType}`);
@@ -230,11 +262,12 @@ class DataFields {
230
262
  case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk3/Build_ConveyorLiftMk3.Build_ConveyorLiftMk3_C':
231
263
  case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk4/Build_ConveyorLiftMk4.Build_ConveyorLiftMk4_C':
232
264
  case '/Game/FactoryGame/Buildable/Factory/ConveyorLiftMk5/Build_ConveyorLiftMk5.Build_ConveyorLiftMk5_C':
265
+ writer.writeInt32(property.items.length);
233
266
  break;
234
267
  case '/Game/FactoryGame/Buildable/Factory/PowerLine/Build_PowerLine.Build_PowerLine_C':
235
268
  case '/Game/FactoryGame/Events/Christmas/Buildings/PowerLineLights/Build_XmassLightsLine.Build_XmassLightsLine_C':
236
- Property_1.ObjectProperty.SerializeValue(writer, property.source);
237
- Property_1.ObjectProperty.SerializeValue(writer, property.target);
269
+ ObjectProperty_1.ObjectProperty.SerializeValue(writer, property.source);
270
+ ObjectProperty_1.ObjectProperty.SerializeValue(writer, property.target);
238
271
  break;
239
272
  case '/Game/FactoryGame/Character/Player/BP_PlayerState.BP_PlayerState_C':
240
273
  writer.writeByte(property.flag);
@@ -260,10 +293,14 @@ class DataFields {
260
293
  util_types_1.Transform.Serialize(writer, instance.transform);
261
294
  writer.writeInt32(0);
262
295
  writer.writeString(instance.swatchSlotTypePath);
263
- writer.writeBytesArray(new Array(69).fill(0));
264
- writer.writeString(instance.recipeTypePath);
296
+ util_types_1.vec4.Serialize(writer, instance.unknownUseNumbers[0]);
297
+ util_types_1.vec3.Serialize(writer, instance.unknownUseNumbers[1]);
265
298
  writer.writeInt32(0);
299
+ writer.writeString(instance.paintFinishPath);
266
300
  writer.writeInt32(0);
301
+ writer.writeByte(0);
302
+ writer.writeString(instance.recipeTypePath);
303
+ writer.writeInt64(0n);
267
304
  }
268
305
  }
269
306
  }
@@ -279,80 +316,84 @@ class DataFields {
279
316
  let overhead = 0;
280
317
  switch (property.ueType) {
281
318
  case 'BoolProperty':
282
- overhead = Property_1.BoolProperty.CalcOverhead(property);
283
- Property_1.BoolProperty.Serialize(writer, property);
319
+ overhead = BoolProperty_1.BoolProperty.CalcOverhead(property);
320
+ BoolProperty_1.BoolProperty.Serialize(writer, property);
284
321
  break;
285
322
  case 'ByteProperty':
286
- overhead = Property_1.ByteProperty.CalcOverhead(property);
287
- Property_1.ByteProperty.Serialize(writer, property);
323
+ overhead = ByteProperty_1.ByteProperty.CalcOverhead(property);
324
+ ByteProperty_1.ByteProperty.Serialize(writer, property);
288
325
  break;
289
326
  case 'Int8Property':
290
- overhead = Property_1.Int8Property.CalcOverhead(property);
291
- Property_1.Int8Property.Serialize(writer, property);
327
+ overhead = Int8Property_1.Int8Property.CalcOverhead(property);
328
+ Int8Property_1.Int8Property.Serialize(writer, property);
292
329
  break;
293
330
  case 'UInt8Property':
294
- overhead = Property_1.Uint8Property.CalcOverhead(property);
295
- Property_1.Uint8Property.Serialize(writer, property);
331
+ overhead = Uint8Property_1.Uint8Property.CalcOverhead(property);
332
+ Uint8Property_1.Uint8Property.Serialize(writer, property);
296
333
  break;
297
334
  case 'IntProperty':
298
335
  case 'Int32Property':
299
- overhead = Property_1.Int32Property.CalcOverhead(property);
300
- Property_1.Int32Property.Serialize(writer, property);
336
+ overhead = Int32Property_1.Int32Property.CalcOverhead(property);
337
+ Int32Property_1.Int32Property.Serialize(writer, property);
301
338
  break;
302
339
  case 'UInt32Property':
303
- overhead = Property_1.Uint32Property.CalcOverhead(property);
304
- Property_1.Uint32Property.Serialize(writer, property);
340
+ overhead = Uint32Property_1.Uint32Property.CalcOverhead(property);
341
+ Uint32Property_1.Uint32Property.Serialize(writer, property);
305
342
  break;
306
343
  case 'Int64Property':
307
- overhead = Property_1.Int64Property.CalcOverhead(property);
308
- Property_1.Int64Property.Serialize(writer, property);
344
+ overhead = Int64Property_1.Int64Property.CalcOverhead(property);
345
+ Int64Property_1.Int64Property.Serialize(writer, property);
346
+ break;
347
+ case 'UInt64PRoperty':
348
+ overhead = Uint64Property_1.UInt64Property.CalcOverhead(property);
349
+ Uint64Property_1.UInt64Property.Serialize(writer, property);
309
350
  break;
310
351
  case 'SingleProperty':
311
352
  case 'FloatProperty':
312
- overhead = Property_1.FloatProperty.CalcOverhead(property);
313
- Property_1.FloatProperty.Serialize(writer, property);
353
+ overhead = FloatProperty_1.FloatProperty.CalcOverhead(property);
354
+ FloatProperty_1.FloatProperty.Serialize(writer, property);
314
355
  break;
315
356
  case 'DoubleProperty':
316
- overhead = Property_1.DoubleProperty.CalcOverhead(property);
317
- Property_1.DoubleProperty.Serialize(writer, property);
357
+ overhead = DoubleProperty_1.DoubleProperty.CalcOverhead(property);
358
+ DoubleProperty_1.DoubleProperty.Serialize(writer, property);
318
359
  break;
319
360
  case 'StrProperty':
320
361
  case 'NameProperty':
321
- overhead = Property_1.StrProperty.CalcOverhead(property);
322
- Property_1.StrProperty.Serialize(writer, property);
362
+ overhead = StrProperty_1.StrProperty.CalcOverhead(property);
363
+ StrProperty_1.StrProperty.Serialize(writer, property);
323
364
  break;
324
365
  case 'ObjectProperty':
325
366
  case 'InterfaceProperty':
326
- overhead = Property_1.ObjectProperty.CalcOverhead(property);
327
- Property_1.ObjectProperty.Serialize(writer, property);
367
+ overhead = ObjectProperty_1.ObjectProperty.CalcOverhead(property);
368
+ ObjectProperty_1.ObjectProperty.Serialize(writer, property);
328
369
  break;
329
370
  case 'EnumProperty':
330
- overhead = Property_1.EnumProperty.CalcOverhead(property);
331
- Property_1.EnumProperty.Serialize(writer, property);
371
+ overhead = EnumProperty_1.EnumProperty.CalcOverhead(property);
372
+ EnumProperty_1.EnumProperty.Serialize(writer, property);
332
373
  break;
333
374
  case 'ByteProperty':
334
- overhead = Property_1.ByteProperty.CalcOverhead(property);
335
- Property_1.ByteProperty.Serialize(writer, property);
375
+ overhead = ByteProperty_1.ByteProperty.CalcOverhead(property);
376
+ ByteProperty_1.ByteProperty.Serialize(writer, property);
336
377
  break;
337
378
  case 'StructProperty':
338
- overhead = Property_1.StructProperty.CalcOverhead(property);
339
- Property_1.StructProperty.Serialize(writer, property);
379
+ overhead = StructProperty_1.StructProperty.CalcOverhead(property);
380
+ StructProperty_1.StructProperty.Serialize(writer, property);
340
381
  break;
341
382
  case 'ArrayProperty':
342
- overhead = Property_1.ArrayProperty.CalcOverhead(property);
343
- Property_1.ArrayProperty.Serialize(writer, property, propertyName);
383
+ overhead = ArrayProperty_1.ArrayProperty.CalcOverhead(property);
384
+ ArrayProperty_1.ArrayProperty.Serialize(writer, property, propertyName);
344
385
  break;
345
386
  case 'MapProperty':
346
- overhead = Property_1.MapProperty.CalcOverhead(property);
347
- Property_1.MapProperty.Serialize(writer, property);
387
+ overhead = MapProperty_1.MapProperty.CalcOverhead(property);
388
+ MapProperty_1.MapProperty.Serialize(writer, property);
348
389
  break;
349
390
  case 'TextProperty':
350
- overhead = Property_1.TextProperty.CalcOverhead(property);
351
- Property_1.TextProperty.Serialize(writer, property);
391
+ overhead = TextProperty_1.TextProperty.CalcOverhead(property);
392
+ TextProperty_1.TextProperty.Serialize(writer, property);
352
393
  break;
353
394
  case 'SetProperty':
354
- overhead = Property_1.SetProperty.CalcOverhead(property);
355
- Property_1.SetProperty.Serialize(writer, property);
395
+ overhead = SetProperty_1.SetProperty.CalcOverhead(property);
396
+ SetProperty_1.SetProperty.Serialize(writer, property);
356
397
  break;
357
398
  default:
358
399
  throw new Error(`Unimplemented type ${property.type}`);
@@ -1,7 +1,7 @@
1
1
  import { BinaryReadable } from "../../byte/binary-readable.interface";
2
2
  import { ByteWriter } from "../../byte/byte-writer.class";
3
- import { SpecialAnyProperty } from "./DataFields";
4
- import { PropertiesMap } from "./Property";
3
+ import { PropertiesMap } from "./property/generic/BasicProperty";
4
+ import { SpecialAnyProperty } from './property/special/SpecialAnyProperty';
5
5
  export interface SaveObjectHeader {
6
6
  typePath: string;
7
7
  rootObject: string;