@etothepii/satisfactory-file-parser 0.4.11 → 0.4.13
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 +14 -12
- package/build/parser/satisfactory/blueprint/blueprint-reader.js +2 -2
- package/build/parser/satisfactory/edit/edit-constants.d.ts +155 -3
- package/build/parser/satisfactory/edit/edit-constants.js +155 -3
- package/build/parser/satisfactory/objects/property/generic/SetProperty.js +5 -2
- package/build/parser/satisfactory/objects/property/generic/StructProperty.js +6 -1
- package/build/parser/satisfactory/save/level.class.js +0 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,25 +18,15 @@ 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.
|
|
21
|
+
| U1.0 | ✅ >= 0.4.13 |
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
## Installation via npm
|
|
25
25
|
`npm install @etothepii/satisfactory-file-parser`
|
|
26
26
|
|
|
27
27
|
## Usage of Save Parsing
|
|
28
|
-
For reading a save file (`.sav`), just pass a Buffer to the parser with the file content.
|
|
29
|
-
```js
|
|
30
|
-
import * as fs from 'fs';
|
|
31
|
-
import { Parser } from "@etothepii/satisfactory-file-parser";
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
const parsedSave = Parser.ParseSaveFile(file);
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Save Parsing via Stream
|
|
38
|
-
|
|
39
|
-
You can parse via stream, to save RAM. The binary data will still be in memory, but the converted JSON won't.
|
|
29
|
+
I recommend parsing via stream, to save RAM. The binary data of the whole save will still be in memory, but the converted JSON won't.
|
|
40
30
|
The returned `stream` is a readable WHATWG stream of type string.
|
|
41
31
|
WHATWG is used by default by browsers. Node js can use them using `Writable.toWeb()` and `Writable.fromWeb()` for example.
|
|
42
32
|
|
|
@@ -82,6 +72,18 @@ Parser.WriteSave(save, binaryBeforeCompressed => {
|
|
|
82
72
|
fs.writeFileSync('./MyModifiedSave.sav', Buffer.concat([header!, ...bodyChunks]));
|
|
83
73
|
```
|
|
84
74
|
|
|
75
|
+
|
|
76
|
+
### Old Usage of Save Parsing. Deprecated.
|
|
77
|
+
For reading a save file (`.sav`) and parse In-Memory, just pass a Buffer to the parser with the file content.
|
|
78
|
+
```js
|
|
79
|
+
import * as fs from 'fs';
|
|
80
|
+
import { Parser } from "@etothepii/satisfactory-file-parser";
|
|
81
|
+
|
|
82
|
+
const file = fs.readFileSync('./MySave.sav') as Buffer;
|
|
83
|
+
const parsedSave = Parser.ParseSaveFile(file);
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
|
|
85
87
|
## Usage of Blueprint Parsing
|
|
86
88
|
Blueprint parsing works very similiar. Note, that blueprints consist of 2 files. The `.sbp` main file and the config file `.sbpcfg`.
|
|
87
89
|
|
|
@@ -23,8 +23,8 @@ class BlueprintReader extends byte_reader_class_1.ByteReader {
|
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
static ReadHeader(reader) {
|
|
26
|
-
const
|
|
27
|
-
const
|
|
26
|
+
const alwaysTwo = reader.readBytes(4);
|
|
27
|
+
const objectVersion = reader.readBytes(2 * 4);
|
|
28
28
|
const dimensions = util_types_1.vec3.ParseInt(reader);
|
|
29
29
|
let itemTypeCount = reader.readInt32();
|
|
30
30
|
const itemCosts = new Array(itemTypeCount).fill(['', 0]);
|
|
@@ -870,6 +870,68 @@ export declare const EDIT: {
|
|
|
870
870
|
readonly CLASS_NAME: "Build_Ramp_Frame_Inverted_01_C";
|
|
871
871
|
};
|
|
872
872
|
};
|
|
873
|
+
readonly STAIRS: {
|
|
874
|
+
readonly NORMAL_8x1: {
|
|
875
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/FicsitSet/Build_Stair_FicsitSet_8x1_01.Build_Stair_FicsitSet_8x1_01_C";
|
|
876
|
+
readonly CLASS_NAME: "Build_Stair_FicsitSet_8x1_01_C";
|
|
877
|
+
};
|
|
878
|
+
readonly NORMAL_8x2: {
|
|
879
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/FicsitSet/Build_Stair_FicsitSet_8x2_01.Build_Stair_FicsitSet_8x2_01_C";
|
|
880
|
+
readonly CLASS_NAME: "Build_Stair_FicsitSet_8x2_01_C";
|
|
881
|
+
};
|
|
882
|
+
readonly NORMAL_8x4: {
|
|
883
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/FicsitSet/Build_Stair_FicsitSet_8x4_01.Build_Stair_FicsitSet_8x4_01_C";
|
|
884
|
+
readonly CLASS_NAME: "Build_Stair_FicsitSet_8x4_01_C";
|
|
885
|
+
};
|
|
886
|
+
readonly CONCRETE_8x1: {
|
|
887
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/ConcreteSet/Build_Stair_Concrete_8x1.Build_Stair_Concrete_8x1_C";
|
|
888
|
+
readonly CLASS_NAME: "Build_Stair_Concrete_8x1_C";
|
|
889
|
+
};
|
|
890
|
+
readonly CONCRETE_8x2: {
|
|
891
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/ConcreteSet/Build_Stair_Concrete_8x2.Build_Stair_Concrete_8x2_C";
|
|
892
|
+
readonly CLASS_NAME: "Build_Stair_Concrete_8x2_C";
|
|
893
|
+
};
|
|
894
|
+
readonly CONCRETE_8x4: {
|
|
895
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/ConcreteSet/Build_Stair_Concrete_8x4.Build_Stair_Concrete_8x4_C";
|
|
896
|
+
readonly CLASS_NAME: "Build_Stair_Concrete_8x4_C";
|
|
897
|
+
};
|
|
898
|
+
readonly CONCRETE_POLISHED_8x1: {
|
|
899
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/PolishedConcreteSet/Build_Stair_PolishedConcrete_8x1.Build_Stair_PolishedConcrete_8x1_C";
|
|
900
|
+
readonly CLASS_NAME: "Build_Stair_PolishedConcrete_8x1_C";
|
|
901
|
+
};
|
|
902
|
+
readonly CONCRETE_POLISHED_8x2: {
|
|
903
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/PolishedConcreteSet/Build_Stair_PolishedConcrete_8x2.Build_Stair_PolishedConcrete_8x2_C";
|
|
904
|
+
readonly CLASS_NAME: "Build_Stair_PolishedConcrete_8x2_C";
|
|
905
|
+
};
|
|
906
|
+
readonly CONCRETE_POLISHED_8x4: {
|
|
907
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/PolishedConcreteSet/Build_Stair_PolishedConcrete_8x4.Build_Stair_PolishedConcrete_8x4_C";
|
|
908
|
+
readonly CLASS_NAME: "Build_Stair_PolishedConcrete_8x4_C";
|
|
909
|
+
};
|
|
910
|
+
readonly ASPHALT_8x1: {
|
|
911
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/AsphaltSet/Build_Stair_Asphalt_8x1.Build_Stair_Asphalt_8x1_C";
|
|
912
|
+
readonly CLASS_NAME: "Build_Stair_Asphalt_8x1_C";
|
|
913
|
+
};
|
|
914
|
+
readonly ASPHALT_8x2: {
|
|
915
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/AsphaltSet/Build_Stair_Asphalt_8x2.Build_Stair_Asphalt_8x2_C";
|
|
916
|
+
readonly CLASS_NAME: "Build_Stair_Asphalt_8x2_C";
|
|
917
|
+
};
|
|
918
|
+
readonly ASPHALT_8x4: {
|
|
919
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/AsphaltSet/Build_Stair_Asphalt_8x4.Build_Stair_Asphalt_8x4_C";
|
|
920
|
+
readonly CLASS_NAME: "Build_Stair_Asphalt_8x4_C";
|
|
921
|
+
};
|
|
922
|
+
readonly METAL_8x1: {
|
|
923
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/GripMetal/Build_Stair_GripMetal_8x1.Build_Stair_GripMetal_8x1_C";
|
|
924
|
+
readonly CLASS_NAME: "Build_Stair_GripMetal_8x1_C";
|
|
925
|
+
};
|
|
926
|
+
readonly METAL_8x2: {
|
|
927
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/GripMetal/Build_Stair_GripMetal_8x2.Build_Stair_GripMetal_8x2_C";
|
|
928
|
+
readonly CLASS_NAME: "Build_Stair_GripMetal_8x2_C";
|
|
929
|
+
};
|
|
930
|
+
readonly METAL_8x4: {
|
|
931
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Foundation/GripMetal/Build_Stair_GripMetal_8x4.Build_Stair_GripMetal_8x4_C";
|
|
932
|
+
readonly CLASS_NAME: "Build_Stair_GripMetal_8x4_C";
|
|
933
|
+
};
|
|
934
|
+
};
|
|
873
935
|
};
|
|
874
936
|
readonly WALL: {
|
|
875
937
|
readonly SOLID: {
|
|
@@ -1065,6 +1127,18 @@ export declare const EDIT: {
|
|
|
1065
1127
|
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Wall/Build_Wall_Window_8x4_04.Build_Wall_Window_8x4_04_C";
|
|
1066
1128
|
readonly CLASS_NAME: "Build_Wall_Window_8x4_04_C";
|
|
1067
1129
|
};
|
|
1130
|
+
readonly NORMAL_8x4_05: {
|
|
1131
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Wall/Build_Wall_Window_8x4_05.Build_Wall_Window_8x4_05_C";
|
|
1132
|
+
readonly CLASS_NAME: "Build_Wall_Window_8x4_05_C";
|
|
1133
|
+
};
|
|
1134
|
+
readonly NORMAL_8x4_06: {
|
|
1135
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Wall/Build_Wall_Window_8x4_06.Build_Wall_Window_8x4_06_C";
|
|
1136
|
+
readonly CLASS_NAME: "Build_Wall_Window_8x4_06_C";
|
|
1137
|
+
};
|
|
1138
|
+
readonly NORMAL_8x4_07: {
|
|
1139
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Wall/Build_Wall_Window_8x4_07.Build_Wall_Window_8x4_07_C";
|
|
1140
|
+
readonly CLASS_NAME: "Build_Wall_Window_8x4_07_C";
|
|
1141
|
+
};
|
|
1068
1142
|
readonly CONCRETE_8x4_01: {
|
|
1069
1143
|
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Wall/ConcreteWallSet/Build_Wall_Concrete_8x4_Window_01.Build_Wall_Concrete_8x4_Window_01_C";
|
|
1070
1144
|
readonly CLASS_NAME: "Build_Wall_Concrete_8x4_Window_01_C";
|
|
@@ -1458,6 +1532,22 @@ export declare const EDIT: {
|
|
|
1458
1532
|
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Fence/Build_Concrete_Barrier_01.Build_Concrete_Barrier_01_C";
|
|
1459
1533
|
readonly CLASS_NAME: "Build_Concrete_Barrier_01_C";
|
|
1460
1534
|
};
|
|
1535
|
+
readonly BARRIER_LOW: {
|
|
1536
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Barrier/Build_Barrier_Low_01.Build_Barrier_Low_01_C";
|
|
1537
|
+
readonly CLASS_NAME: "Build_Barrier_Low_01_C";
|
|
1538
|
+
};
|
|
1539
|
+
readonly BARRIER_TALL: {
|
|
1540
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/Barrier/Build_Barrier_Tall_01.Build_Barrier_Tall_01_C";
|
|
1541
|
+
readonly CLASS_NAME: "Build_Barrier_Tall_01_C";
|
|
1542
|
+
};
|
|
1543
|
+
readonly TARPFENCE: {
|
|
1544
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/TarpFence/Build_TarpFence.Build_TarpFence_C";
|
|
1545
|
+
readonly CLASS_NAME: "Build_TarpFence_C";
|
|
1546
|
+
};
|
|
1547
|
+
readonly CHAIN_LINK_FENCE: {
|
|
1548
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Building/TarpFence/Build_ChainLinkFence.Build_ChainLinkFence_C";
|
|
1549
|
+
readonly CLASS_NAME: "Build_ChainLinkFence_C";
|
|
1550
|
+
};
|
|
1461
1551
|
};
|
|
1462
1552
|
readonly WORKSHOP: {
|
|
1463
1553
|
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/Workshop/Build_Workshop.Build_Workshop_C";
|
|
@@ -1777,9 +1867,35 @@ export declare const EDIT: {
|
|
|
1777
1867
|
readonly CLASS_NAME: "Build_QuantumEncoder_C";
|
|
1778
1868
|
};
|
|
1779
1869
|
};
|
|
1780
|
-
readonly
|
|
1781
|
-
readonly
|
|
1782
|
-
|
|
1870
|
+
readonly POWER_GENERATORS: {
|
|
1871
|
+
readonly COAL: {
|
|
1872
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/GeneratorCoal/Build_GeneratorCoal.Build_GeneratorCoal_C";
|
|
1873
|
+
readonly CLASS_NAME: "Build_GeneratorCoal_C";
|
|
1874
|
+
};
|
|
1875
|
+
readonly FUEL: {
|
|
1876
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/GeneratorFuel/Build_GeneratorFuel.Build_GeneratorFuel_C";
|
|
1877
|
+
readonly CLASS_NAME: "Build_GeneratorFuel_C";
|
|
1878
|
+
};
|
|
1879
|
+
readonly BIOMASS_AUTOMATED: {
|
|
1880
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/GeneratorBiomass/Build_GeneratorBiomass_Automated.Build_GeneratorBiomass_Automated_C";
|
|
1881
|
+
readonly CLASS_NAME: "Build_GeneratorBiomass_Automated_C";
|
|
1882
|
+
};
|
|
1883
|
+
readonly BIOMASS_INTEGRATED: {
|
|
1884
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/GeneratorBiomass/Build_GeneratorIntegratedBiomass.Build_GeneratorIntegratedBiomass_C";
|
|
1885
|
+
readonly CLASS_NAME: "Build_GeneratorIntegratedBiomass_C";
|
|
1886
|
+
};
|
|
1887
|
+
readonly POWER_STORAGE: {
|
|
1888
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/PowerStorage/Build_PowerStorageMk1.Build_PowerStorageMk1_C";
|
|
1889
|
+
readonly CLASS_NAME: "Build_PowerStorageMk1_C";
|
|
1890
|
+
};
|
|
1891
|
+
readonly NUCLEAR: {
|
|
1892
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/GeneratorNuclear/Build_GeneratorNuclear.Build_GeneratorNuclear_C";
|
|
1893
|
+
readonly CLASS_NAME: "Build_GeneratorNuclear_C";
|
|
1894
|
+
};
|
|
1895
|
+
readonly ALIEN_POWER_BUILDING: {
|
|
1896
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/AlienPower/Build_AlienPowerBuilding.Build_AlienPowerBuilding_C";
|
|
1897
|
+
readonly CLASS_NAME: "Build_AlienPowerBuilding_C";
|
|
1898
|
+
};
|
|
1783
1899
|
};
|
|
1784
1900
|
readonly STORAGE: {
|
|
1785
1901
|
readonly CONTAINER_MK_1: {
|
|
@@ -1831,6 +1947,14 @@ export declare const EDIT: {
|
|
|
1831
1947
|
readonly CLASS_NAME: "BUILD_Potty_mk1_C";
|
|
1832
1948
|
};
|
|
1833
1949
|
readonly SIGN: {
|
|
1950
|
+
readonly LARGE: {
|
|
1951
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Large.Build_StandaloneWidgetSign_Large_C";
|
|
1952
|
+
readonly CLASS_NAME: "Build_StandaloneWidgetSign_Large_C";
|
|
1953
|
+
};
|
|
1954
|
+
readonly HUGE: {
|
|
1955
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Huge.Build_StandaloneWidgetSign_Huge_C";
|
|
1956
|
+
readonly CLASS_NAME: "Build_StandaloneWidgetSign_Huge_C";
|
|
1957
|
+
};
|
|
1834
1958
|
readonly SMALL: {
|
|
1835
1959
|
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Small.Build_StandaloneWidgetSign_Small_C";
|
|
1836
1960
|
readonly CLASS_NAME: "Build_StandaloneWidgetSign_Small_C";
|
|
@@ -1843,6 +1967,26 @@ export declare const EDIT: {
|
|
|
1843
1967
|
readonly RECIPE: "/Game/FactoryGame/Recipes/Buildings/Recipe_StandaloneWidgetSign_SmallWide.Recipe_StandaloneWidgetSign_SmallWide_C";
|
|
1844
1968
|
readonly PREFAB_LAYOUT: "/Game/FactoryGame/Interface/UI/InGame/Signs/SignLayouts/BPW_Sign4x1_1.BPW_Sign4x1_1_C";
|
|
1845
1969
|
};
|
|
1970
|
+
readonly SMALL_VERY_WIDE: {
|
|
1971
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_SmallVeryWide.Build_StandaloneWidgetSign_SmallVeryWide_C";
|
|
1972
|
+
readonly CLASS_NAME: "Build_StandaloneWidgetSign_SmallVeryWide_C";
|
|
1973
|
+
};
|
|
1974
|
+
readonly SQUARE_TINY: {
|
|
1975
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Square_Tiny.Build_StandaloneWidgetSign_Square_Tiny_C";
|
|
1976
|
+
readonly CLASS_NAME: "Build_StandaloneWidgetSign_Square_Tiny_C";
|
|
1977
|
+
};
|
|
1978
|
+
readonly SQUARE_SMALL: {
|
|
1979
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Square_Small.Build_StandaloneWidgetSign_Square_Small_C";
|
|
1980
|
+
readonly CLASS_NAME: "Build_StandaloneWidgetSign_Square_Small_C";
|
|
1981
|
+
};
|
|
1982
|
+
readonly SQUARE: {
|
|
1983
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Square.Build_StandaloneWidgetSign_Square_C";
|
|
1984
|
+
readonly CLASS_NAME: "Build_StandaloneWidgetSign_Square_C";
|
|
1985
|
+
};
|
|
1986
|
+
readonly MEDIUM: {
|
|
1987
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Medium.Build_StandaloneWidgetSign_Medium_C";
|
|
1988
|
+
readonly CLASS_NAME: "Build_StandaloneWidgetSign_Medium_C";
|
|
1989
|
+
};
|
|
1846
1990
|
readonly PORTRAIT: {
|
|
1847
1991
|
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Portrait.Build_StandaloneWidgetSign_Portrait_C";
|
|
1848
1992
|
readonly CLASS_NAME: "Build_StandaloneWidgetSign_Portrait_C";
|
|
@@ -1857,6 +2001,14 @@ export declare const EDIT: {
|
|
|
1857
2001
|
readonly PLAYER_STATE: {
|
|
1858
2002
|
readonly TYPE_PATH: "/Game/FactoryGame/Character/Player/BP_PlayerState.BP_PlayerState_C";
|
|
1859
2003
|
};
|
|
2004
|
+
readonly PORTAL: {
|
|
2005
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/Portal/Build_Portal.Build_Portal_C";
|
|
2006
|
+
readonly CLASS_NAME: "Build_Portal_C";
|
|
2007
|
+
};
|
|
2008
|
+
readonly PORTAL_SATELLITE: {
|
|
2009
|
+
readonly TYPE_PATH: "/Game/FactoryGame/Buildable/Factory/Portal/Build_PortalSatellite.Build_PortalSatellite_C";
|
|
2010
|
+
readonly CLASS_NAME: "Build_PortalSatellite_C";
|
|
2011
|
+
};
|
|
1860
2012
|
readonly CREATURE: {
|
|
1861
2013
|
readonly ELITE_STINGER: {
|
|
1862
2014
|
readonly TYPE_PATH: "/Game/FactoryGame/Character/Creature/Enemy/Stinger/BigStinger/Char_EliteStinger.Char_EliteStinger_C";
|
|
@@ -953,6 +953,68 @@ exports.EDIT = {
|
|
|
953
953
|
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Ramp/Build_Ramp_Frame_Inverted_01.Build_Ramp_Frame_Inverted_01_C',
|
|
954
954
|
CLASS_NAME: 'Build_Ramp_Frame_Inverted_01_C'
|
|
955
955
|
}
|
|
956
|
+
},
|
|
957
|
+
STAIRS: {
|
|
958
|
+
NORMAL_8x1: {
|
|
959
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/FicsitSet/Build_Stair_FicsitSet_8x1_01.Build_Stair_FicsitSet_8x1_01_C',
|
|
960
|
+
CLASS_NAME: 'Build_Stair_FicsitSet_8x1_01_C'
|
|
961
|
+
},
|
|
962
|
+
NORMAL_8x2: {
|
|
963
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/FicsitSet/Build_Stair_FicsitSet_8x2_01.Build_Stair_FicsitSet_8x2_01_C',
|
|
964
|
+
CLASS_NAME: 'Build_Stair_FicsitSet_8x2_01_C'
|
|
965
|
+
},
|
|
966
|
+
NORMAL_8x4: {
|
|
967
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/FicsitSet/Build_Stair_FicsitSet_8x4_01.Build_Stair_FicsitSet_8x4_01_C',
|
|
968
|
+
CLASS_NAME: 'Build_Stair_FicsitSet_8x4_01_C'
|
|
969
|
+
},
|
|
970
|
+
CONCRETE_8x1: {
|
|
971
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/ConcreteSet/Build_Stair_Concrete_8x1.Build_Stair_Concrete_8x1_C',
|
|
972
|
+
CLASS_NAME: 'Build_Stair_Concrete_8x1_C'
|
|
973
|
+
},
|
|
974
|
+
CONCRETE_8x2: {
|
|
975
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/ConcreteSet/Build_Stair_Concrete_8x2.Build_Stair_Concrete_8x2_C',
|
|
976
|
+
CLASS_NAME: 'Build_Stair_Concrete_8x2_C'
|
|
977
|
+
},
|
|
978
|
+
CONCRETE_8x4: {
|
|
979
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/ConcreteSet/Build_Stair_Concrete_8x4.Build_Stair_Concrete_8x4_C',
|
|
980
|
+
CLASS_NAME: 'Build_Stair_Concrete_8x4_C'
|
|
981
|
+
},
|
|
982
|
+
CONCRETE_POLISHED_8x1: {
|
|
983
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/PolishedConcreteSet/Build_Stair_PolishedConcrete_8x1.Build_Stair_PolishedConcrete_8x1_C',
|
|
984
|
+
CLASS_NAME: 'Build_Stair_PolishedConcrete_8x1_C'
|
|
985
|
+
},
|
|
986
|
+
CONCRETE_POLISHED_8x2: {
|
|
987
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/PolishedConcreteSet/Build_Stair_PolishedConcrete_8x2.Build_Stair_PolishedConcrete_8x2_C',
|
|
988
|
+
CLASS_NAME: 'Build_Stair_PolishedConcrete_8x2_C'
|
|
989
|
+
},
|
|
990
|
+
CONCRETE_POLISHED_8x4: {
|
|
991
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/PolishedConcreteSet/Build_Stair_PolishedConcrete_8x4.Build_Stair_PolishedConcrete_8x4_C',
|
|
992
|
+
CLASS_NAME: 'Build_Stair_PolishedConcrete_8x4_C'
|
|
993
|
+
},
|
|
994
|
+
ASPHALT_8x1: {
|
|
995
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/AsphaltSet/Build_Stair_Asphalt_8x1.Build_Stair_Asphalt_8x1_C',
|
|
996
|
+
CLASS_NAME: 'Build_Stair_Asphalt_8x1_C'
|
|
997
|
+
},
|
|
998
|
+
ASPHALT_8x2: {
|
|
999
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/AsphaltSet/Build_Stair_Asphalt_8x2.Build_Stair_Asphalt_8x2_C',
|
|
1000
|
+
CLASS_NAME: 'Build_Stair_Asphalt_8x2_C'
|
|
1001
|
+
},
|
|
1002
|
+
ASPHALT_8x4: {
|
|
1003
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/AsphaltSet/Build_Stair_Asphalt_8x4.Build_Stair_Asphalt_8x4_C',
|
|
1004
|
+
CLASS_NAME: 'Build_Stair_Asphalt_8x4_C'
|
|
1005
|
+
},
|
|
1006
|
+
METAL_8x1: {
|
|
1007
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/GripMetal/Build_Stair_GripMetal_8x1.Build_Stair_GripMetal_8x1_C',
|
|
1008
|
+
CLASS_NAME: 'Build_Stair_GripMetal_8x1_C'
|
|
1009
|
+
},
|
|
1010
|
+
METAL_8x2: {
|
|
1011
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/GripMetal/Build_Stair_GripMetal_8x2.Build_Stair_GripMetal_8x2_C',
|
|
1012
|
+
CLASS_NAME: 'Build_Stair_GripMetal_8x2_C'
|
|
1013
|
+
},
|
|
1014
|
+
METAL_8x4: {
|
|
1015
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Foundation/GripMetal/Build_Stair_GripMetal_8x4.Build_Stair_GripMetal_8x4_C',
|
|
1016
|
+
CLASS_NAME: 'Build_Stair_GripMetal_8x4_C'
|
|
1017
|
+
},
|
|
956
1018
|
}
|
|
957
1019
|
},
|
|
958
1020
|
WALL: {
|
|
@@ -1149,6 +1211,18 @@ exports.EDIT = {
|
|
|
1149
1211
|
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Wall/Build_Wall_Window_8x4_04.Build_Wall_Window_8x4_04_C',
|
|
1150
1212
|
CLASS_NAME: 'Build_Wall_Window_8x4_04_C'
|
|
1151
1213
|
},
|
|
1214
|
+
NORMAL_8x4_05: {
|
|
1215
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Wall/Build_Wall_Window_8x4_05.Build_Wall_Window_8x4_05_C',
|
|
1216
|
+
CLASS_NAME: 'Build_Wall_Window_8x4_05_C'
|
|
1217
|
+
},
|
|
1218
|
+
NORMAL_8x4_06: {
|
|
1219
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Wall/Build_Wall_Window_8x4_06.Build_Wall_Window_8x4_06_C',
|
|
1220
|
+
CLASS_NAME: 'Build_Wall_Window_8x4_06_C'
|
|
1221
|
+
},
|
|
1222
|
+
NORMAL_8x4_07: {
|
|
1223
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Wall/Build_Wall_Window_8x4_07.Build_Wall_Window_8x4_07_C',
|
|
1224
|
+
CLASS_NAME: 'Build_Wall_Window_8x4_07_C'
|
|
1225
|
+
},
|
|
1152
1226
|
CONCRETE_8x4_01: {
|
|
1153
1227
|
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Wall/ConcreteWallSet/Build_Wall_Concrete_8x4_Window_01.Build_Wall_Concrete_8x4_Window_01_C',
|
|
1154
1228
|
CLASS_NAME: 'Build_Wall_Concrete_8x4_Window_01_C'
|
|
@@ -1541,6 +1615,22 @@ exports.EDIT = {
|
|
|
1541
1615
|
BARRIER: {
|
|
1542
1616
|
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Fence/Build_Concrete_Barrier_01.Build_Concrete_Barrier_01_C',
|
|
1543
1617
|
CLASS_NAME: 'Build_Concrete_Barrier_01_C'
|
|
1618
|
+
},
|
|
1619
|
+
BARRIER_LOW: {
|
|
1620
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Barrier/Build_Barrier_Low_01.Build_Barrier_Low_01_C',
|
|
1621
|
+
CLASS_NAME: 'Build_Barrier_Low_01_C'
|
|
1622
|
+
},
|
|
1623
|
+
BARRIER_TALL: {
|
|
1624
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/Barrier/Build_Barrier_Tall_01.Build_Barrier_Tall_01_C',
|
|
1625
|
+
CLASS_NAME: 'Build_Barrier_Tall_01_C'
|
|
1626
|
+
},
|
|
1627
|
+
TARPFENCE: {
|
|
1628
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/TarpFence/Build_TarpFence.Build_TarpFence_C',
|
|
1629
|
+
CLASS_NAME: 'Build_TarpFence_C'
|
|
1630
|
+
},
|
|
1631
|
+
CHAIN_LINK_FENCE: {
|
|
1632
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Building/TarpFence/Build_ChainLinkFence.Build_ChainLinkFence_C',
|
|
1633
|
+
CLASS_NAME: 'Build_ChainLinkFence_C'
|
|
1544
1634
|
}
|
|
1545
1635
|
},
|
|
1546
1636
|
WORKSHOP: {
|
|
@@ -1861,9 +1951,35 @@ exports.EDIT = {
|
|
|
1861
1951
|
CLASS_NAME: 'Build_QuantumEncoder_C'
|
|
1862
1952
|
},
|
|
1863
1953
|
},
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1954
|
+
POWER_GENERATORS: {
|
|
1955
|
+
COAL: {
|
|
1956
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/GeneratorCoal/Build_GeneratorCoal.Build_GeneratorCoal_C',
|
|
1957
|
+
CLASS_NAME: 'Build_GeneratorCoal_C'
|
|
1958
|
+
},
|
|
1959
|
+
FUEL: {
|
|
1960
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/GeneratorFuel/Build_GeneratorFuel.Build_GeneratorFuel_C',
|
|
1961
|
+
CLASS_NAME: 'Build_GeneratorFuel_C'
|
|
1962
|
+
},
|
|
1963
|
+
BIOMASS_AUTOMATED: {
|
|
1964
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/GeneratorBiomass/Build_GeneratorBiomass_Automated.Build_GeneratorBiomass_Automated_C',
|
|
1965
|
+
CLASS_NAME: 'Build_GeneratorBiomass_Automated_C'
|
|
1966
|
+
},
|
|
1967
|
+
BIOMASS_INTEGRATED: {
|
|
1968
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/GeneratorBiomass/Build_GeneratorIntegratedBiomass.Build_GeneratorIntegratedBiomass_C',
|
|
1969
|
+
CLASS_NAME: 'Build_GeneratorIntegratedBiomass_C'
|
|
1970
|
+
},
|
|
1971
|
+
POWER_STORAGE: {
|
|
1972
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/PowerStorage/Build_PowerStorageMk1.Build_PowerStorageMk1_C',
|
|
1973
|
+
CLASS_NAME: 'Build_PowerStorageMk1_C'
|
|
1974
|
+
},
|
|
1975
|
+
NUCLEAR: {
|
|
1976
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/GeneratorNuclear/Build_GeneratorNuclear.Build_GeneratorNuclear_C',
|
|
1977
|
+
CLASS_NAME: 'Build_GeneratorNuclear_C'
|
|
1978
|
+
},
|
|
1979
|
+
ALIEN_POWER_BUILDING: {
|
|
1980
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/AlienPower/Build_AlienPowerBuilding.Build_AlienPowerBuilding_C',
|
|
1981
|
+
CLASS_NAME: 'Build_AlienPowerBuilding_C'
|
|
1982
|
+
},
|
|
1867
1983
|
},
|
|
1868
1984
|
STORAGE: {
|
|
1869
1985
|
CONTAINER_MK_1: {
|
|
@@ -1915,6 +2031,14 @@ exports.EDIT = {
|
|
|
1915
2031
|
CLASS_NAME: 'BUILD_Potty_mk1_C'
|
|
1916
2032
|
},
|
|
1917
2033
|
SIGN: {
|
|
2034
|
+
LARGE: {
|
|
2035
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Large.Build_StandaloneWidgetSign_Large_C',
|
|
2036
|
+
CLASS_NAME: 'Build_StandaloneWidgetSign_Large_C'
|
|
2037
|
+
},
|
|
2038
|
+
HUGE: {
|
|
2039
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Huge.Build_StandaloneWidgetSign_Huge_C',
|
|
2040
|
+
CLASS_NAME: 'Build_StandaloneWidgetSign_Huge_C'
|
|
2041
|
+
},
|
|
1918
2042
|
SMALL: {
|
|
1919
2043
|
TYPE_PATH: TYPE_PATH_SIGN_SMALL,
|
|
1920
2044
|
CLASS_NAME: CLASS_NAME_SIGN_SMALL,
|
|
@@ -1927,6 +2051,26 @@ exports.EDIT = {
|
|
|
1927
2051
|
RECIPE: RECIPE_SIGN_SMALL_WIDE,
|
|
1928
2052
|
PREFAB_LAYOUT: PREFAB_LAYOUT_SIGN_4x1_1
|
|
1929
2053
|
},
|
|
2054
|
+
SMALL_VERY_WIDE: {
|
|
2055
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_SmallVeryWide.Build_StandaloneWidgetSign_SmallVeryWide_C',
|
|
2056
|
+
CLASS_NAME: 'Build_StandaloneWidgetSign_SmallVeryWide_C',
|
|
2057
|
+
},
|
|
2058
|
+
SQUARE_TINY: {
|
|
2059
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Square_Tiny.Build_StandaloneWidgetSign_Square_Tiny_C',
|
|
2060
|
+
CLASS_NAME: 'Build_StandaloneWidgetSign_Square_Tiny_C',
|
|
2061
|
+
},
|
|
2062
|
+
SQUARE_SMALL: {
|
|
2063
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Square_Small.Build_StandaloneWidgetSign_Square_Small_C',
|
|
2064
|
+
CLASS_NAME: 'Build_StandaloneWidgetSign_Square_Small_C',
|
|
2065
|
+
},
|
|
2066
|
+
SQUARE: {
|
|
2067
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Square.Build_StandaloneWidgetSign_Square_C',
|
|
2068
|
+
CLASS_NAME: 'Build_StandaloneWidgetSign_Square_C',
|
|
2069
|
+
},
|
|
2070
|
+
MEDIUM: {
|
|
2071
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/SignDigital/Build_StandaloneWidgetSign_Medium.Build_StandaloneWidgetSign_Medium_C',
|
|
2072
|
+
CLASS_NAME: 'Build_StandaloneWidgetSign_Medium_C',
|
|
2073
|
+
},
|
|
1930
2074
|
PORTRAIT: {
|
|
1931
2075
|
TYPE_PATH: TYPE_PATH_SIGN_PORTRAIT,
|
|
1932
2076
|
CLASS_NAME: CLASS_NAME_SIGN_PORTRAIT,
|
|
@@ -1941,6 +2085,14 @@ exports.EDIT = {
|
|
|
1941
2085
|
PLAYER_STATE: {
|
|
1942
2086
|
TYPE_PATH: '/Game/FactoryGame/Character/Player/BP_PlayerState.BP_PlayerState_C'
|
|
1943
2087
|
},
|
|
2088
|
+
PORTAL: {
|
|
2089
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/Portal/Build_Portal.Build_Portal_C',
|
|
2090
|
+
CLASS_NAME: 'Build_Portal_C'
|
|
2091
|
+
},
|
|
2092
|
+
PORTAL_SATELLITE: {
|
|
2093
|
+
TYPE_PATH: '/Game/FactoryGame/Buildable/Factory/Portal/Build_PortalSatellite.Build_PortalSatellite_C',
|
|
2094
|
+
CLASS_NAME: 'Build_PortalSatellite_C'
|
|
2095
|
+
},
|
|
1944
2096
|
CREATURE: {
|
|
1945
2097
|
ELITE_STINGER: {
|
|
1946
2098
|
TYPE_PATH: '/Game/FactoryGame/Character/Creature/Enemy/Stinger/BigStinger/Char_EliteStinger.Char_EliteStinger_C',
|
|
@@ -34,7 +34,10 @@ class SetProperty extends BasicProperty_1.BasicProperty {
|
|
|
34
34
|
property = new SetProperty(subtype, new Array(elementCount).fill(0).map(() => StrProperty_1.StrProperty.ReadValue(reader)), ueType, index);
|
|
35
35
|
break;
|
|
36
36
|
case "StructProperty":
|
|
37
|
-
if (propertyName === '
|
|
37
|
+
if (propertyName === 'mRemovalLocations') {
|
|
38
|
+
property = new SetProperty(subtype, new Array(elementCount).fill(0).map(() => util_types_1.vec3.ParseF(reader)), ueType, index);
|
|
39
|
+
}
|
|
40
|
+
if (propertyName === 'mDestroyedPickups' || propertyName === 'mLootedDropPods') {
|
|
38
41
|
property = new SetProperty(subtype, new Array(elementCount).fill(0).map(() => GUID_1.GUID.read(reader)), ueType, index);
|
|
39
42
|
}
|
|
40
43
|
else {
|
|
@@ -74,7 +77,7 @@ class SetProperty extends BasicProperty_1.BasicProperty {
|
|
|
74
77
|
console.warn('serializing mRemovalLocations, this is still under investigation.');
|
|
75
78
|
property.values.forEach(v => util_types_1.vec3.SerializeF(writer, v));
|
|
76
79
|
}
|
|
77
|
-
else if (property.name === 'mDestroyedPickups') {
|
|
80
|
+
else if (property.name === 'mDestroyedPickups' || property.name === 'mLootedDropPods') {
|
|
78
81
|
property.values.forEach(v => GUID_1.GUID.write(writer, v));
|
|
79
82
|
}
|
|
80
83
|
else {
|
|
@@ -34,7 +34,12 @@ class StructProperty extends BasicProperty_1.AbstractBaseProperty {
|
|
|
34
34
|
struct.value = StructProperty.ParseValue(reader, struct.subtype, size);
|
|
35
35
|
const readBytes = reader.getBufferPosition() - before;
|
|
36
36
|
if (readBytes !== size) {
|
|
37
|
-
|
|
37
|
+
if (size - readBytes === 4 || struct.subtype === 'ClientIdentityInfo') {
|
|
38
|
+
reader.skipBytes(size - readBytes);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
throw new Error(`possibly corrupt. Read ${readBytes} for StructProperty Content of ${struct.subtype}, but ${size} were indicated.`);
|
|
42
|
+
}
|
|
38
43
|
}
|
|
39
44
|
return struct;
|
|
40
45
|
}
|
|
@@ -152,9 +152,6 @@ class Level {
|
|
|
152
152
|
const collectable = ObjectReference_1.ObjectReference.read(reader);
|
|
153
153
|
collected.push(collectable);
|
|
154
154
|
}
|
|
155
|
-
if (process.env.NODE_ENV === 'debug' && countSmthing > 0) {
|
|
156
|
-
console.log(printSmthWhenItsCollectables, countSmthing, collected.map(coll => coll.pathName).join(', '));
|
|
157
|
-
}
|
|
158
155
|
}
|
|
159
156
|
return collected;
|
|
160
157
|
}
|
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.
|
|
4
|
+
"version": "0.4.13",
|
|
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",
|