@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.
@@ -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 "../structs/util.types";
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.Parse(reader);
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.Serialize(writer, entity.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.Parse = (reader) => {
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.3",
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",