@etothepii/satisfactory-file-parser 0.4.3 → 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/build/parser/satisfactory/objects/DataFields.d.ts +11 -1
- package/build/parser/satisfactory/objects/DataFields.js +49 -0
- package/build/parser/satisfactory/objects/Property.d.ts +0 -3
- package/build/parser/satisfactory/objects/SaveEntity.js +2 -2
- package/build/parser/satisfactory/structs/util.types.d.ts +2 -0
- package/build/parser/satisfactory/structs/util.types.js +13 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
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 { vec3 } from
|
|
4
|
+
import { Transform, vec3 } from '../structs/util.types';
|
|
5
5
|
import { AbstractBaseProperty } from "./Property";
|
|
6
6
|
import { SaveObject } from "./SaveObject";
|
|
7
7
|
import { ObjectReference } from "./values/ObjectReference";
|
|
@@ -27,6 +27,16 @@ export type ItemSpecialProperty = {
|
|
|
27
27
|
export type ConveyorSpecialProperty = {
|
|
28
28
|
items: ItemSpecialProperty[];
|
|
29
29
|
};
|
|
30
|
+
export type BuildableSubsystemSpecialProperty = {
|
|
31
|
+
buildables: {
|
|
32
|
+
typePath: string;
|
|
33
|
+
instances: {
|
|
34
|
+
transform: Transform;
|
|
35
|
+
swatchSlotTypePath: string;
|
|
36
|
+
recipeTypePath: string;
|
|
37
|
+
}[];
|
|
38
|
+
}[];
|
|
39
|
+
};
|
|
30
40
|
export declare class DataFields {
|
|
31
41
|
constructor();
|
|
32
42
|
static ParseProperties(obj: SaveObject, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void;
|
|
@@ -81,6 +81,36 @@ class DataFields {
|
|
|
81
81
|
break;
|
|
82
82
|
}
|
|
83
83
|
break;
|
|
84
|
+
case '/Script/FactoryGame.FGLightweightBuildableSubsystem':
|
|
85
|
+
property = { buildables: [] };
|
|
86
|
+
const entriesCount = reader.readInt32();
|
|
87
|
+
if (entriesCount > 0) {
|
|
88
|
+
for (let i = 0; i < entriesCount; i++) {
|
|
89
|
+
reader.readInt32();
|
|
90
|
+
const typePath = reader.readString();
|
|
91
|
+
const count = reader.readInt32();
|
|
92
|
+
const instances = [];
|
|
93
|
+
for (let j = 0; j < count; j++) {
|
|
94
|
+
const transform = util_types_1.Transform.Parse(reader);
|
|
95
|
+
reader.readInt32();
|
|
96
|
+
const swatchSlotTypePath = reader.readString();
|
|
97
|
+
reader.readBytes(69);
|
|
98
|
+
const recipeTypePath = reader.readString();
|
|
99
|
+
reader.readInt32();
|
|
100
|
+
reader.readInt32();
|
|
101
|
+
instances.push({
|
|
102
|
+
transform,
|
|
103
|
+
swatchSlotTypePath,
|
|
104
|
+
recipeTypePath,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
property.buildables.push({
|
|
108
|
+
typePath,
|
|
109
|
+
instances
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
84
114
|
default:
|
|
85
115
|
property = {};
|
|
86
116
|
break;
|
|
@@ -219,6 +249,25 @@ class DataFields {
|
|
|
219
249
|
break;
|
|
220
250
|
}
|
|
221
251
|
break;
|
|
252
|
+
case '/Script/FactoryGame.FGLightweightBuildableSubsystem':
|
|
253
|
+
writer.writeInt32(property.buildables.length);
|
|
254
|
+
if (property.buildables.length > 0) {
|
|
255
|
+
for (const buildable of property.buildables) {
|
|
256
|
+
writer.writeInt32(0);
|
|
257
|
+
writer.writeString(buildable.typePath);
|
|
258
|
+
writer.writeInt32(buildable.instances.length);
|
|
259
|
+
for (const instance of buildable.instances) {
|
|
260
|
+
util_types_1.Transform.Serialize(writer, instance.transform);
|
|
261
|
+
writer.writeInt32(0);
|
|
262
|
+
writer.writeString(instance.swatchSlotTypePath);
|
|
263
|
+
writer.writeBytesArray(new Array(69).fill(0));
|
|
264
|
+
writer.writeString(instance.recipeTypePath);
|
|
265
|
+
writer.writeInt32(0);
|
|
266
|
+
writer.writeInt32(0);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
break;
|
|
222
271
|
}
|
|
223
272
|
}
|
|
224
273
|
static SerializeProperty(writer, property, propertyName, buildVersion) {
|
|
@@ -20,9 +20,6 @@ export declare abstract class BasicProperty extends AbstractBaseProperty {
|
|
|
20
20
|
guidInfo: GUIDInfo;
|
|
21
21
|
constructor(type: string, ueType: string, guidInfo: GUIDInfo, index?: number);
|
|
22
22
|
}
|
|
23
|
-
export type OverheadResult = {
|
|
24
|
-
overhead: number;
|
|
25
|
-
};
|
|
26
23
|
export declare class BoolProperty extends BasicProperty {
|
|
27
24
|
value: boolean;
|
|
28
25
|
constructor(value: boolean, ueType?: string, guidInfo?: GUIDInfo, index?: number);
|
|
@@ -30,7 +30,7 @@ class SaveEntity extends SaveObject_1.SaveObject {
|
|
|
30
30
|
static ParseHeader(reader, obj) {
|
|
31
31
|
SaveObject_1.SaveObject.ParseHeader(reader, obj);
|
|
32
32
|
obj.needTransform = reader.readInt32() == 1;
|
|
33
|
-
obj.transform = util_types_1.Transform.
|
|
33
|
+
obj.transform = util_types_1.Transform.ParseF(reader);
|
|
34
34
|
obj.wasPlacedInLevel = reader.readInt32() == 1;
|
|
35
35
|
}
|
|
36
36
|
static ParseData(entity, length, reader, buildVersion, typePath) {
|
|
@@ -48,7 +48,7 @@ class SaveEntity extends SaveObject_1.SaveObject {
|
|
|
48
48
|
static SerializeHeader(writer, entity) {
|
|
49
49
|
SaveObject_1.SaveObject.SerializeHeader(writer, entity);
|
|
50
50
|
writer.writeInt32(entity.needTransform ? 1 : 0);
|
|
51
|
-
util_types_1.Transform.
|
|
51
|
+
util_types_1.Transform.SerializeF(writer, entity.transform);
|
|
52
52
|
writer.writeInt32(entity.wasPlacedInLevel ? 1 : 0);
|
|
53
53
|
}
|
|
54
54
|
static SerializeData(writer, entity, buildVersion) {
|
|
@@ -53,6 +53,8 @@ export type Transform = {
|
|
|
53
53
|
scale3d: vec3;
|
|
54
54
|
};
|
|
55
55
|
export declare namespace Transform {
|
|
56
|
+
const ParseF: (reader: BinaryReadable) => Transform;
|
|
56
57
|
const Parse: (reader: BinaryReadable) => Transform;
|
|
57
58
|
const Serialize: (writer: ByteWriter, transform: Transform) => void;
|
|
59
|
+
const SerializeF: (writer: ByteWriter, transform: Transform) => void;
|
|
58
60
|
}
|
|
@@ -120,14 +120,26 @@ var vec2;
|
|
|
120
120
|
})(vec2 || (exports.vec2 = vec2 = {}));
|
|
121
121
|
var Transform;
|
|
122
122
|
(function (Transform) {
|
|
123
|
-
Transform.
|
|
123
|
+
Transform.ParseF = (reader) => {
|
|
124
124
|
return {
|
|
125
125
|
rotation: vec4.ParseF(reader),
|
|
126
126
|
translation: vec3.ParseF(reader),
|
|
127
127
|
scale3d: vec3.ParseF(reader),
|
|
128
128
|
};
|
|
129
129
|
};
|
|
130
|
+
Transform.Parse = (reader) => {
|
|
131
|
+
return {
|
|
132
|
+
rotation: vec4.Parse(reader),
|
|
133
|
+
translation: vec3.Parse(reader),
|
|
134
|
+
scale3d: vec3.Parse(reader),
|
|
135
|
+
};
|
|
136
|
+
};
|
|
130
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) => {
|
|
131
143
|
vec4.SerializeF(writer, transform.rotation);
|
|
132
144
|
vec3.SerializeF(writer, transform.translation);
|
|
133
145
|
vec3.SerializeF(writer, transform.scale3d);
|
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.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",
|