@etothepii/satisfactory-file-parser 0.3.7 → 0.4.4
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 +2 -1
- package/build/index.d.ts +2 -2
- package/build/index.js +4 -4
- package/build/parser/byte/alignment.enum.js +1 -1
- package/build/parser/byte/byte-writer.class.js +1 -1
- package/build/parser/file.types.js +1 -1
- package/build/parser/parser.d.ts +0 -1
- package/build/parser/parser.js +1 -1
- package/build/parser/satisfactory/blueprint/blueprint-reader.js +2 -2
- package/build/parser/satisfactory/blueprint/blueprint-writer.js +1 -1
- package/build/parser/satisfactory/edit/edit-constants.d.ts +729 -23
- package/build/parser/satisfactory/edit/edit-constants.js +743 -53
- package/build/parser/satisfactory/objects/DataFields.d.ts +13 -3
- package/build/parser/satisfactory/objects/DataFields.js +51 -2
- package/build/parser/satisfactory/objects/GUIDInfo.d.ts +3 -2
- package/build/parser/satisfactory/objects/GUIDInfo.js +2 -2
- package/build/parser/satisfactory/objects/Property.d.ts +17 -10
- package/build/parser/satisfactory/objects/Property.js +87 -26
- package/build/parser/satisfactory/objects/SaveComponent.js +1 -1
- package/build/parser/satisfactory/objects/SaveEntity.d.ts +1 -1
- package/build/parser/satisfactory/objects/SaveEntity.js +4 -4
- package/build/parser/satisfactory/objects/ue/MD5Hash.d.ts +2 -1
- package/build/parser/satisfactory/objects/ue/MD5Hash.js +1 -1
- package/build/parser/satisfactory/objects/values/GUID.d.ts +7 -0
- package/build/parser/satisfactory/objects/values/GUID.js +21 -0
- package/build/parser/satisfactory/objects/values/ObjectReference.d.ts +10 -0
- package/build/parser/satisfactory/objects/values/ObjectReference.js +17 -0
- package/build/parser/satisfactory/objects/values/SoftObjectReference.d.ts +11 -0
- package/build/parser/satisfactory/objects/values/SoftObjectReference.js +19 -0
- package/build/parser/satisfactory/save/level.class.d.ts +1 -1
- package/build/parser/satisfactory/save/level.class.js +1 -1
- package/build/parser/satisfactory/save/satisfactory-save.d.ts +1 -1
- package/build/parser/satisfactory/save/save-reader.d.ts +1 -1
- package/build/parser/satisfactory/save/save-reader.js +10 -7
- package/build/parser/satisfactory/save/save-writer.js +1 -2
- package/build/parser/satisfactory/save/save.types.d.ts +1 -1
- package/build/parser/satisfactory/structs/util.types.d.ts +37 -25
- package/build/parser/satisfactory/structs/util.types.js +145 -143
- package/build/parser/stream/reworked/readable-stream-parser.js +6 -6
- package/build/parser/stream/reworked/save-stream-json-stringifier.d.ts +1 -2
- package/build/parser/stream/reworked/save-stream-writer.class.d.ts +3 -2
- package/package.json +1 -1
|
@@ -41,14 +41,14 @@ class SaveReader extends byte_reader_class_1.ByteReader {
|
|
|
41
41
|
const gridHash = this.readUint32();
|
|
42
42
|
grids[parentName] = { checksum: parentChecksumIdOrSmth, children: {}, cellSize, gridHash };
|
|
43
43
|
for (let i = 0; i < childrenCount; i++) {
|
|
44
|
-
const
|
|
44
|
+
const cellBinSizeMaybe = this.readUint32();
|
|
45
45
|
const levelInstanceName = this.readString();
|
|
46
|
-
grids[parentName].children[levelInstanceName] =
|
|
46
|
+
grids[parentName].children[levelInstanceName] = cellBinSizeMaybe;
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
readGrid(
|
|
49
|
+
readGrid(1289);
|
|
50
50
|
readGrid(0);
|
|
51
|
-
readGrid(
|
|
51
|
+
readGrid(758);
|
|
52
52
|
readGrid(0);
|
|
53
53
|
readGrid(0);
|
|
54
54
|
const unk5 = this.readInt32();
|
|
@@ -189,10 +189,14 @@ class SaveReader extends byte_reader_class_1.ByteReader {
|
|
|
189
189
|
return levels;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
+
exports.SaveReader = SaveReader;
|
|
192
193
|
SaveReader.EPOCH_TICKS = 621355968000000000n;
|
|
193
194
|
SaveReader.getRoughSaveVersion = (saveVersion, headerTypeVersion) => {
|
|
194
|
-
if (
|
|
195
|
-
return '
|
|
195
|
+
if (saveVersion >= 46) {
|
|
196
|
+
return 'U1.0+';
|
|
197
|
+
}
|
|
198
|
+
else if (headerTypeVersion >= 13) {
|
|
199
|
+
return 'U8';
|
|
196
200
|
}
|
|
197
201
|
else if (saveVersion >= 29) {
|
|
198
202
|
return 'U6/U7';
|
|
@@ -201,4 +205,3 @@ SaveReader.getRoughSaveVersion = (saveVersion, headerTypeVersion) => {
|
|
|
201
205
|
return '<U6';
|
|
202
206
|
}
|
|
203
207
|
};
|
|
204
|
-
exports.SaveReader = SaveReader;
|
|
@@ -64,7 +64,6 @@ class SaveWriter extends byte_writer_class_1.ByteWriter {
|
|
|
64
64
|
}
|
|
65
65
|
level_class_1.Level.WriteLevel(writer, level, buildVersion);
|
|
66
66
|
}
|
|
67
|
-
level_class_1.Level.SerializeCollectablesList(writer, save.trailingCollectedObjects ?? []);
|
|
68
67
|
}
|
|
69
68
|
static GenerateCompressedChunksFromData(bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, alignment = alignment_enum_1.Alignment.LITTLE_ENDIAN) {
|
|
70
69
|
const errors = [];
|
|
@@ -122,6 +121,7 @@ class SaveWriter extends byte_writer_class_1.ByteWriter {
|
|
|
122
121
|
return chunkSummary;
|
|
123
122
|
}
|
|
124
123
|
}
|
|
124
|
+
exports.SaveWriter = SaveWriter;
|
|
125
125
|
SaveWriter.WriteSaveBodyHash = (writer, hash) => {
|
|
126
126
|
writer.writeInt32(0);
|
|
127
127
|
writer.writeInt32(6);
|
|
@@ -144,4 +144,3 @@ SaveWriter.WriteGrids = (writer, grids) => {
|
|
|
144
144
|
}
|
|
145
145
|
writer.writeInt32(0);
|
|
146
146
|
};
|
|
147
|
-
exports.SaveWriter = SaveWriter;
|
|
@@ -28,7 +28,7 @@ export interface SatisfactorySaveHeader {
|
|
|
28
28
|
consistencyHashBytes?: MD5Hash;
|
|
29
29
|
creativeModeEnabled?: boolean;
|
|
30
30
|
}
|
|
31
|
-
export type RoughSaveVersion = '<U6' | 'U6/U7' | 'U8+';
|
|
31
|
+
export type RoughSaveVersion = '<U6' | 'U6/U7' | 'U8' | 'U1.0+';
|
|
32
32
|
export type ResourceNodeEntry = {
|
|
33
33
|
purity: string;
|
|
34
34
|
pathName: string;
|
|
@@ -6,43 +6,55 @@ export type col4 = {
|
|
|
6
6
|
b: number;
|
|
7
7
|
a: number;
|
|
8
8
|
};
|
|
9
|
-
export declare
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
export declare namespace col4 {
|
|
10
|
+
const SerializeRGBA: (writer: ByteWriter, value: col4) => void;
|
|
11
|
+
const ParseRGBA: (reader: BinaryReadable) => col4;
|
|
12
|
+
const SerializeBGRA: (writer: ByteWriter, value: col4) => void;
|
|
13
|
+
const ParseBGRA: (reader: BinaryReadable) => col4;
|
|
14
|
+
}
|
|
13
15
|
export type vec4 = vec3 & {
|
|
14
16
|
w: number;
|
|
15
17
|
};
|
|
16
|
-
export declare
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
export declare const length: (vec: vec3) => number;
|
|
23
|
-
export declare const mult: (vec: vec3, scale: number) => vec3;
|
|
24
|
-
export declare const norm: (vec: vec3) => vec3;
|
|
18
|
+
export declare namespace vec4 {
|
|
19
|
+
const Parse: (reader: BinaryReadable) => vec4;
|
|
20
|
+
const Serialize: (writer: ByteWriter, vec: vec4) => void;
|
|
21
|
+
const ParseF: (reader: BinaryReadable) => vec4;
|
|
22
|
+
const SerializeF: (writer: ByteWriter, vec: vec4) => void;
|
|
23
|
+
}
|
|
25
24
|
export type vec3 = vec2 & {
|
|
26
25
|
z: number;
|
|
27
26
|
};
|
|
28
|
-
export declare
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
export declare namespace vec3 {
|
|
28
|
+
const Parse: (reader: BinaryReadable) => vec3;
|
|
29
|
+
const Serialize: (writer: ByteWriter, vec: vec3) => void;
|
|
30
|
+
const ParseInt: (reader: BinaryReadable) => vec3;
|
|
31
|
+
const SerializeInt: (writer: ByteWriter, vec: vec3) => void;
|
|
32
|
+
const ParseF: (reader: BinaryReadable) => vec3;
|
|
33
|
+
const SerializeF: (writer: ByteWriter, vec: vec3) => void;
|
|
34
|
+
const sub: (other: vec3, vec: vec3) => vec3;
|
|
35
|
+
const add: (vec: vec3, other: vec3) => vec3;
|
|
36
|
+
const length: (vec: vec3) => number;
|
|
37
|
+
const mult: (vec: vec3, scale: number) => vec3;
|
|
38
|
+
const norm: (vec: vec3) => vec3;
|
|
39
|
+
}
|
|
34
40
|
export type vec2 = {
|
|
35
41
|
x: number;
|
|
36
42
|
y: number;
|
|
37
43
|
};
|
|
38
|
-
export declare
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
export declare namespace vec2 {
|
|
45
|
+
const Parse: (reader: BinaryReadable) => vec2;
|
|
46
|
+
const Serialize: (writer: ByteWriter, vec: vec2) => void;
|
|
47
|
+
const ParseF: (reader: BinaryReadable) => vec2;
|
|
48
|
+
const SerializeF: (writer: ByteWriter, vec: vec2) => void;
|
|
49
|
+
}
|
|
42
50
|
export type Transform = {
|
|
43
51
|
rotation: vec4;
|
|
44
52
|
translation: vec3;
|
|
45
53
|
scale3d: vec3;
|
|
46
54
|
};
|
|
47
|
-
export declare
|
|
48
|
-
|
|
55
|
+
export declare namespace Transform {
|
|
56
|
+
const ParseF: (reader: BinaryReadable) => Transform;
|
|
57
|
+
const Parse: (reader: BinaryReadable) => Transform;
|
|
58
|
+
const Serialize: (writer: ByteWriter, transform: Transform) => void;
|
|
59
|
+
const SerializeF: (writer: ByteWriter, transform: Transform) => void;
|
|
60
|
+
}
|
|
@@ -1,145 +1,147 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
3
|
+
exports.Transform = exports.vec2 = exports.vec3 = exports.vec4 = exports.col4 = void 0;
|
|
4
|
+
var col4;
|
|
5
|
+
(function (col4) {
|
|
6
|
+
col4.SerializeRGBA = (writer, value) => {
|
|
7
|
+
writer.writeFloat(value.r);
|
|
8
|
+
writer.writeFloat(value.g);
|
|
9
|
+
writer.writeFloat(value.b);
|
|
10
|
+
writer.writeFloat(value.a);
|
|
11
|
+
};
|
|
12
|
+
col4.ParseRGBA = (reader) => {
|
|
13
|
+
return {
|
|
14
|
+
r: reader.readFloat32(),
|
|
15
|
+
g: reader.readFloat32(),
|
|
16
|
+
b: reader.readFloat32(),
|
|
17
|
+
a: reader.readFloat32(),
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
col4.SerializeBGRA = (writer, value) => {
|
|
21
|
+
writer.writeByte(value.b);
|
|
22
|
+
writer.writeByte(value.g);
|
|
23
|
+
writer.writeByte(value.r);
|
|
24
|
+
writer.writeByte(value.a);
|
|
25
|
+
};
|
|
26
|
+
col4.ParseBGRA = (reader) => {
|
|
27
|
+
return {
|
|
28
|
+
b: reader.readByte(),
|
|
29
|
+
g: reader.readByte(),
|
|
30
|
+
r: reader.readByte(),
|
|
31
|
+
a: reader.readByte(),
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
})(col4 || (exports.col4 = col4 = {}));
|
|
35
|
+
var vec4;
|
|
36
|
+
(function (vec4) {
|
|
37
|
+
vec4.Parse = (reader) => {
|
|
38
|
+
return {
|
|
39
|
+
...(vec3.Parse(reader)),
|
|
40
|
+
w: reader.readDouble()
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
vec4.Serialize = (writer, vec) => {
|
|
44
|
+
vec3.Serialize(writer, vec);
|
|
45
|
+
writer.writeDouble(vec.w);
|
|
46
|
+
};
|
|
47
|
+
vec4.ParseF = (reader) => {
|
|
48
|
+
return {
|
|
49
|
+
...(vec3.ParseF(reader)),
|
|
50
|
+
w: reader.readFloat32()
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
vec4.SerializeF = (writer, vec) => {
|
|
54
|
+
vec3.SerializeF(writer, vec);
|
|
55
|
+
writer.writeFloat(vec.w);
|
|
56
|
+
};
|
|
57
|
+
})(vec4 || (exports.vec4 = vec4 = {}));
|
|
58
|
+
var vec3;
|
|
59
|
+
(function (vec3) {
|
|
60
|
+
vec3.Parse = (reader) => {
|
|
61
|
+
return {
|
|
62
|
+
...(vec2.Parse(reader)),
|
|
63
|
+
z: reader.readDouble()
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
vec3.Serialize = (writer, vec) => {
|
|
67
|
+
vec2.Serialize(writer, vec);
|
|
68
|
+
writer.writeDouble(vec.z);
|
|
69
|
+
};
|
|
70
|
+
vec3.ParseInt = (reader) => {
|
|
71
|
+
return {
|
|
72
|
+
x: reader.readInt32(),
|
|
73
|
+
y: reader.readInt32(),
|
|
74
|
+
z: reader.readInt32()
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
vec3.SerializeInt = (writer, vec) => {
|
|
78
|
+
writer.writeInt32(vec.x);
|
|
79
|
+
writer.writeInt32(vec.y);
|
|
80
|
+
writer.writeInt32(vec.z);
|
|
81
|
+
};
|
|
82
|
+
vec3.ParseF = (reader) => {
|
|
83
|
+
return {
|
|
84
|
+
...(vec2.ParseF(reader)),
|
|
85
|
+
z: reader.readFloat32()
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
vec3.SerializeF = (writer, vec) => {
|
|
89
|
+
vec2.SerializeF(writer, vec);
|
|
90
|
+
writer.writeFloat(vec.z);
|
|
91
|
+
};
|
|
92
|
+
vec3.sub = (other, vec) => ({ x: other.x - vec.x, y: other.y - vec.y, z: other.z - vec.z });
|
|
93
|
+
vec3.add = (vec, other) => ({ x: vec.x + other.x, y: vec.y + other.y, z: vec.z + other.z });
|
|
94
|
+
vec3.length = (vec) => Math.sqrt(vec.x ** 2 + vec.y ** 2 + vec.z ** 2);
|
|
95
|
+
vec3.mult = (vec, scale) => ({ x: vec.x * scale, y: vec.y * scale, z: vec.z * scale });
|
|
96
|
+
vec3.norm = (vec) => vec3.mult(vec, 1. / vec3.length(vec));
|
|
97
|
+
})(vec3 || (exports.vec3 = vec3 = {}));
|
|
98
|
+
var vec2;
|
|
99
|
+
(function (vec2) {
|
|
100
|
+
vec2.Parse = (reader) => {
|
|
101
|
+
return {
|
|
102
|
+
x: reader.readDouble(),
|
|
103
|
+
y: reader.readDouble(),
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
vec2.Serialize = (writer, vec) => {
|
|
107
|
+
writer.writeDouble(vec.x);
|
|
108
|
+
writer.writeDouble(vec.y);
|
|
109
|
+
};
|
|
110
|
+
vec2.ParseF = (reader) => {
|
|
111
|
+
return {
|
|
112
|
+
x: reader.readFloat32(),
|
|
113
|
+
y: reader.readFloat32(),
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
vec2.SerializeF = (writer, vec) => {
|
|
117
|
+
writer.writeFloat(vec.x);
|
|
118
|
+
writer.writeFloat(vec.y);
|
|
119
|
+
};
|
|
120
|
+
})(vec2 || (exports.vec2 = vec2 = {}));
|
|
121
|
+
var Transform;
|
|
122
|
+
(function (Transform) {
|
|
123
|
+
Transform.ParseF = (reader) => {
|
|
124
|
+
return {
|
|
125
|
+
rotation: vec4.ParseF(reader),
|
|
126
|
+
translation: vec3.ParseF(reader),
|
|
127
|
+
scale3d: vec3.ParseF(reader),
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
Transform.Parse = (reader) => {
|
|
131
|
+
return {
|
|
132
|
+
rotation: vec4.Parse(reader),
|
|
133
|
+
translation: vec3.Parse(reader),
|
|
134
|
+
scale3d: vec3.Parse(reader),
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
Transform.Serialize = (writer, transform) => {
|
|
138
|
+
vec4.Serialize(writer, transform.rotation);
|
|
139
|
+
vec3.Serialize(writer, transform.translation);
|
|
140
|
+
vec3.Serialize(writer, transform.scale3d);
|
|
141
|
+
};
|
|
142
|
+
Transform.SerializeF = (writer, transform) => {
|
|
143
|
+
vec4.SerializeF(writer, transform.rotation);
|
|
144
|
+
vec3.SerializeF(writer, transform.translation);
|
|
145
|
+
vec3.SerializeF(writer, transform.scale3d);
|
|
146
|
+
};
|
|
147
|
+
})(Transform || (exports.Transform = Transform = {}));
|
|
@@ -68,7 +68,7 @@ class ReadableStreamParser {
|
|
|
68
68
|
do {
|
|
69
69
|
reader.skipBytes(afterHeadersOfBatch - reader.getBufferPosition());
|
|
70
70
|
const objectCountToRead = Math.min(countObjectHeaders - totalReadObjectsInLevel, batchingSizeOfObjects);
|
|
71
|
-
const objects =
|
|
71
|
+
const objects = _a.ReadNObjectHeaders(reader, objectCountToRead);
|
|
72
72
|
afterHeadersOfBatch = reader.getBufferPosition();
|
|
73
73
|
if (totalReadObjectsInLevel === 0) {
|
|
74
74
|
reader.skipBytes(afterAllHeaders - reader.getBufferPosition());
|
|
@@ -81,7 +81,7 @@ class ReadableStreamParser {
|
|
|
81
81
|
else {
|
|
82
82
|
reader.skipBytes(afterObjectsOfBatch - reader.getBufferPosition());
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
_a.ReadNObjects(reader, objectCountToRead, objects, buildVersion);
|
|
85
85
|
afterObjectsOfBatch = reader.getBufferPosition();
|
|
86
86
|
totalReadObjectsInLevel += objectCountToRead;
|
|
87
87
|
if (countObjectHeaders > 10000 && totalReadObjectsInLevel % 10000 === 0) {
|
|
@@ -104,6 +104,7 @@ class ReadableStreamParser {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
+
exports.ReadableStreamParser = ReadableStreamParser;
|
|
107
108
|
_a = ReadableStreamParser;
|
|
108
109
|
ReadableStreamParser.CreateReadableStreamForParsingSave = (onStart, onCancel, onPullRequest, highWaterMark = DEFAULT_BYTE_HIGHWATERMARK / 4) => {
|
|
109
110
|
let ourController = null;
|
|
@@ -137,7 +138,7 @@ ReadableStreamParser.CreateReadableStreamFromSaveToJson = (name, bytes, onDecomp
|
|
|
137
138
|
waitForConsumerLock.lock(resolve);
|
|
138
139
|
});
|
|
139
140
|
};
|
|
140
|
-
const { stream, controller, finish } =
|
|
141
|
+
const { stream, controller, finish } = _a.CreateReadableStreamForParsingSave((controller) => {
|
|
141
142
|
}, (reason) => { }, (desiredSize) => {
|
|
142
143
|
waitForConsumerLock.unlock();
|
|
143
144
|
});
|
|
@@ -155,8 +156,8 @@ ReadableStreamParser.CreateReadableStreamFromSaveToJson = (name, bytes, onDecomp
|
|
|
155
156
|
onDecompressedSaveBody(reader.getBuffer());
|
|
156
157
|
const gridHash = reader.readSaveBodyHash();
|
|
157
158
|
const grids = reader.readGrids();
|
|
158
|
-
await
|
|
159
|
-
await
|
|
159
|
+
await _a.WriteHeaderAndGrids(write, reader.compressionInfo, header, grids, gridHash);
|
|
160
|
+
await _a.WriteLevels(write, reader, save.header.mapName, save.header.buildVersion);
|
|
160
161
|
await write(`]}`);
|
|
161
162
|
finish();
|
|
162
163
|
};
|
|
@@ -201,4 +202,3 @@ ReadableStreamParser.ReadNObjects = (reader, count, objects, buildVersion) => {
|
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
204
|
};
|
|
204
|
-
exports.ReadableStreamParser = ReadableStreamParser;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { WritableStream } from "stream/web";
|
|
3
|
-
import { SatisfactorySave } from
|
|
2
|
+
import { SatisfactorySave } from '../../satisfactory/save/satisfactory-save';
|
|
4
3
|
export declare class SaveStreamJsonStringifier {
|
|
5
4
|
static StreamStringifySave(save: SatisfactorySave, output: WritableStream<string>): Promise<void>;
|
|
6
5
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { WritableStreamDefaultWriter } from "stream/web";
|
|
3
|
-
import { ChunkCompressionInfo
|
|
2
|
+
import { ChunkCompressionInfo } from '../../file.types';
|
|
4
3
|
import { SaveObject } from "../../satisfactory/objects/SaveObject";
|
|
4
|
+
import { ObjectReference } from '../../satisfactory/objects/values/ObjectReference';
|
|
5
5
|
import { ByteArray4, Grids } from '../../satisfactory/save/save-reader';
|
|
6
|
+
import { SatisfactorySaveHeader } from '../../satisfactory/save/save.types';
|
|
6
7
|
export declare class SaveStreamWriter {
|
|
7
8
|
private writer;
|
|
8
9
|
private mode;
|
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
|
+
"version": "0.4.4",
|
|
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",
|