@etothepii/satisfactory-file-parser 0.1.25 → 0.1.26
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/build/index.js +25 -60
- package/build/parser/byte/alignment.enum.js +2 -5
- package/build/parser/byte/binary-operable.interface.js +1 -2
- package/build/parser/byte/binary-readable.interface.js +1 -2
- package/build/parser/byte/byte-reader.class.js +10 -14
- package/build/parser/byte/byte-writer.class.js +10 -13
- package/build/parser/error/parser.error.js +6 -15
- package/build/parser/file.types.js +2 -5
- package/build/parser/parser.js +23 -26
- package/build/parser/satisfactory/blueprint/blueprint-reader.js +28 -36
- package/build/parser/satisfactory/blueprint/blueprint-writer.js +20 -25
- package/build/parser/satisfactory/blueprint/blueprint.types.js +1 -2
- package/build/parser/satisfactory/objects/DataFields.js +79 -83
- package/build/parser/satisfactory/objects/GUIDInfo.js +5 -8
- package/build/parser/satisfactory/objects/ObjectReference.js +2 -5
- package/build/parser/satisfactory/objects/Property.js +91 -120
- package/build/parser/satisfactory/objects/SaveComponent.js +7 -11
- package/build/parser/satisfactory/objects/SaveEntity.js +13 -17
- package/build/parser/satisfactory/objects/SaveObject.js +4 -8
- package/build/parser/satisfactory/objects/ue/GUID.js +2 -5
- package/build/parser/satisfactory/objects/ue/MD5Hash.js +2 -5
- package/build/parser/satisfactory/save/asynchronous-level.class.js +12 -16
- package/build/parser/satisfactory/save/level.class.js +24 -28
- package/build/parser/satisfactory/save/satisfactory-save.js +1 -5
- package/build/parser/satisfactory/save/save-reader.js +28 -34
- package/build/parser/satisfactory/save/save-writer.js +34 -40
- package/build/parser/satisfactory/save/save.types.js +1 -2
- package/build/parser/satisfactory/structs/util.types.js +37 -63
- package/build/parser/stream/byte-stream-reader.class.js +17 -21
- package/build/parser/stream/json-stream-state-writer.js +2 -6
- package/build/parser/stream/json-stream-writable.js +1 -5
- package/build/parser/stream/json-stream-writer.js +2 -6
- package/build/parser/stream/reworked/readable-stream-parser.d.ts +1 -1
- package/build/parser/stream/reworked/readable-stream-parser.js +21 -24
- package/build/parser/stream/reworked/stream-parser.js +17 -20
- package/build/parser/stream/save-stream-json-stringifier.js +3 -7
- package/build/parser/stream/save-stream-reader.class.js +18 -24
- package/build/parser/stream/save-stream-writer.class.js +1 -5
- package/build/parser/stream/stream-level.class.js +11 -15
- package/build/parser/stream/stream-parser.js +11 -15
- package/package.json +4 -2
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const SaveComponent_1 = require("../satisfactory/objects/SaveComponent");
|
|
6
|
-
const SaveEntity_1 = require("../satisfactory/objects/SaveEntity");
|
|
7
|
-
class StreamLevel {
|
|
1
|
+
import { Level, ParseTransform } from "../..";
|
|
2
|
+
import { SaveComponent } from "../satisfactory/objects/SaveComponent";
|
|
3
|
+
import { SaveEntity } from "../satisfactory/objects/SaveEntity";
|
|
4
|
+
export class StreamLevel {
|
|
8
5
|
constructor(name) {
|
|
9
6
|
this.name = name;
|
|
10
7
|
}
|
|
@@ -12,13 +9,13 @@ class StreamLevel {
|
|
|
12
9
|
const binaryLength = reader.readInt32();
|
|
13
10
|
await reader.allocate(binaryLength);
|
|
14
11
|
const objectHeaders = StreamLevel.ReadObjectHeaders(reader);
|
|
15
|
-
const collectables =
|
|
12
|
+
const collectables = Level.ReadCollectablesList(reader);
|
|
16
13
|
await writer.openLevel(levelName);
|
|
17
14
|
await StreamLevel.StreamObjectContentsAsync(reader, writer, objectHeaders, buildVersion);
|
|
18
15
|
await writer.switchInLevelToCollectables();
|
|
19
16
|
await writer.writeCollectables(...collectables);
|
|
20
17
|
await writer.endLevel();
|
|
21
|
-
|
|
18
|
+
Level.ReadCollectablesList(reader);
|
|
22
19
|
return;
|
|
23
20
|
}
|
|
24
21
|
static ReadObjectHeaders(reader) {
|
|
@@ -33,7 +30,7 @@ class StreamLevel {
|
|
|
33
30
|
rootObject: reader.readString(),
|
|
34
31
|
instanceName: reader.readString(),
|
|
35
32
|
needTransform: reader.readInt32() == 1,
|
|
36
|
-
transform:
|
|
33
|
+
transform: ParseTransform(reader),
|
|
37
34
|
wasPlacedInLevel: reader.readInt32() == 1
|
|
38
35
|
});
|
|
39
36
|
break;
|
|
@@ -78,13 +75,13 @@ class StreamLevel {
|
|
|
78
75
|
}
|
|
79
76
|
const isComponent = obj.parentEntityName !== undefined;
|
|
80
77
|
if (!isComponent) {
|
|
81
|
-
const entity = new
|
|
82
|
-
|
|
78
|
+
const entity = new SaveEntity(obj.typePath, obj.rootObject, obj.instanceName, '', obj.needTransform);
|
|
79
|
+
SaveEntity.ParseData(entity, len, reader, buildVersion, obj.typePath);
|
|
83
80
|
bufferedObjects.push(entity);
|
|
84
81
|
}
|
|
85
82
|
else if (isComponent) {
|
|
86
|
-
const component = new
|
|
87
|
-
|
|
83
|
+
const component = new SaveComponent(obj.typePath, obj.rootObject, obj.instanceName, obj.parentEntityName);
|
|
84
|
+
SaveComponent.ParseData(component, len, reader, buildVersion, obj.typePath);
|
|
88
85
|
bufferedObjects.push(component);
|
|
89
86
|
}
|
|
90
87
|
const after = reader.getBufferPosition();
|
|
@@ -100,4 +97,3 @@ class StreamLevel {
|
|
|
100
97
|
}
|
|
101
98
|
}
|
|
102
99
|
}
|
|
103
|
-
exports.StreamLevel = StreamLevel;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.StreamParserReader = void 0;
|
|
4
|
-
const alignment_enum_1 = require("../byte/alignment.enum");
|
|
5
|
-
class StreamParserReader {
|
|
1
|
+
import { Alignment } from "../byte/alignment.enum";
|
|
2
|
+
export class StreamParserReader {
|
|
6
3
|
constructor(minBufferSize) {
|
|
7
4
|
this.minBufferSize = minBufferSize;
|
|
8
|
-
this.alignment =
|
|
5
|
+
this.alignment = Alignment.LITTLE_ENDIAN;
|
|
9
6
|
this.getAmountLeftToRead = () => {
|
|
10
7
|
return this.view.byteLength - this.currentByte;
|
|
11
8
|
};
|
|
@@ -154,27 +151,27 @@ class StreamParserReader {
|
|
|
154
151
|
return data;
|
|
155
152
|
}
|
|
156
153
|
readInt16() {
|
|
157
|
-
let data = this.view.getInt16(this.currentByte, this.alignment ===
|
|
154
|
+
let data = this.view.getInt16(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
|
|
158
155
|
this.currentByte += 2;
|
|
159
156
|
return data;
|
|
160
157
|
}
|
|
161
158
|
readUint16() {
|
|
162
|
-
let data = this.view.getUint16(this.currentByte, this.alignment ===
|
|
159
|
+
let data = this.view.getUint16(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
|
|
163
160
|
this.currentByte += 2;
|
|
164
161
|
return data;
|
|
165
162
|
}
|
|
166
163
|
readInt32() {
|
|
167
|
-
let data = this.view.getInt32(this.currentByte, this.alignment ===
|
|
164
|
+
let data = this.view.getInt32(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
|
|
168
165
|
this.currentByte += 4;
|
|
169
166
|
return data;
|
|
170
167
|
}
|
|
171
168
|
readUint32() {
|
|
172
|
-
let data = this.view.getUint32(this.currentByte, this.alignment ===
|
|
169
|
+
let data = this.view.getUint32(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
|
|
173
170
|
this.currentByte += 4;
|
|
174
171
|
return data;
|
|
175
172
|
}
|
|
176
173
|
readLong() {
|
|
177
|
-
let data = this.view.getBigInt64(this.currentByte, this.alignment ===
|
|
174
|
+
let data = this.view.getBigInt64(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
|
|
178
175
|
this.currentByte += 8;
|
|
179
176
|
return data;
|
|
180
177
|
}
|
|
@@ -182,17 +179,17 @@ class StreamParserReader {
|
|
|
182
179
|
return this.readLong();
|
|
183
180
|
}
|
|
184
181
|
readUint64() {
|
|
185
|
-
let data = this.view.getBigUint64(this.currentByte, this.alignment ===
|
|
182
|
+
let data = this.view.getBigUint64(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
|
|
186
183
|
this.currentByte += 8;
|
|
187
184
|
return data;
|
|
188
185
|
}
|
|
189
186
|
readFloat32() {
|
|
190
|
-
let data = this.view.getFloat32(this.currentByte, this.alignment ===
|
|
187
|
+
let data = this.view.getFloat32(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
|
|
191
188
|
this.currentByte += 4;
|
|
192
189
|
return data;
|
|
193
190
|
}
|
|
194
191
|
readDouble() {
|
|
195
|
-
let data = this.view.getFloat64(this.currentByte, this.alignment ===
|
|
192
|
+
let data = this.view.getFloat64(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
|
|
196
193
|
this.currentByte += 8;
|
|
197
194
|
return data;
|
|
198
195
|
}
|
|
@@ -222,4 +219,3 @@ class StreamParserReader {
|
|
|
222
219
|
}
|
|
223
220
|
}
|
|
224
221
|
}
|
|
225
|
-
exports.StreamParserReader = StreamParserReader;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etothepii/satisfactory-file-parser",
|
|
3
3
|
"author": "etothepii",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.26",
|
|
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",
|
|
@@ -45,6 +45,8 @@
|
|
|
45
45
|
"webpack-cli": "^5.0.1"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"pako": "^2.1.0"
|
|
48
|
+
"pako": "^2.1.0",
|
|
49
|
+
"stream-browserify": "^3.0.0",
|
|
50
|
+
"web-streams-polyfill": "^4.0.0"
|
|
49
51
|
}
|
|
50
52
|
}
|