@etothepii/satisfactory-file-parser 0.3.7 → 0.4.3
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 +2 -2
- package/build/parser/satisfactory/objects/DataFields.js +2 -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 -7
- 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 +35 -25
- package/build/parser/satisfactory/structs/util.types.js +133 -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
|
@@ -6,43 +6,53 @@ 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 Parse: (reader: BinaryReadable) => Transform;
|
|
57
|
+
const Serialize: (writer: ByteWriter, transform: Transform) => void;
|
|
58
|
+
}
|
|
@@ -1,145 +1,135 @@
|
|
|
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
|
-
scale3d: (0, exports.ParseVec3f)(reader),
|
|
137
|
-
};
|
|
138
|
-
};
|
|
139
|
-
exports.ParseTransform = ParseTransform;
|
|
140
|
-
const SerializeTransform = (writer, transform) => {
|
|
141
|
-
(0, exports.SerializeVec4f)(writer, transform.rotation);
|
|
142
|
-
(0, exports.SerializeVec3f)(writer, transform.translation);
|
|
143
|
-
(0, exports.SerializeVec3f)(writer, transform.scale3d);
|
|
144
|
-
};
|
|
145
|
-
exports.SerializeTransform = SerializeTransform;
|
|
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.Parse = (reader) => {
|
|
124
|
+
return {
|
|
125
|
+
rotation: vec4.ParseF(reader),
|
|
126
|
+
translation: vec3.ParseF(reader),
|
|
127
|
+
scale3d: vec3.ParseF(reader),
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
Transform.Serialize = (writer, transform) => {
|
|
131
|
+
vec4.SerializeF(writer, transform.rotation);
|
|
132
|
+
vec3.SerializeF(writer, transform.translation);
|
|
133
|
+
vec3.SerializeF(writer, transform.scale3d);
|
|
134
|
+
};
|
|
135
|
+
})(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.3
|
|
4
|
+
"version": "0.4.3",
|
|
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",
|