@etothepii/satisfactory-file-parser 0.4.19 → 0.4.21

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.
Files changed (86) hide show
  1. package/README.md +16 -6
  2. package/build/index.d.ts +35 -36
  3. package/build/index.js +36 -40
  4. package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts +2 -2
  5. package/build/parser/satisfactory/blueprint/blueprint-reader.js +10 -5
  6. package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts +2 -2
  7. package/build/parser/satisfactory/blueprint/blueprint-writer.js +6 -4
  8. package/build/parser/satisfactory/blueprint/blueprint.types.d.ts +6 -3
  9. package/build/parser/satisfactory/save/level.class.d.ts +6 -6
  10. package/build/parser/satisfactory/save/level.class.js +22 -22
  11. package/build/parser/satisfactory/save/save-reader.js +1 -1
  12. package/build/parser/satisfactory/save/save-writer.js +2 -2
  13. package/build/parser/satisfactory/save/save.types.d.ts +1 -1
  14. package/build/parser/satisfactory/types/objects/SaveComponent.d.ts +19 -0
  15. package/build/parser/satisfactory/types/objects/SaveComponent.js +31 -0
  16. package/build/parser/satisfactory/types/objects/SaveEntity.d.ts +30 -0
  17. package/build/parser/satisfactory/types/objects/SaveEntity.js +66 -0
  18. package/build/parser/satisfactory/types/objects/SaveObject.d.ts +24 -0
  19. package/build/parser/satisfactory/types/objects/SaveObject.js +33 -0
  20. package/build/parser/satisfactory/types/property/DataFields.d.ts +15 -0
  21. package/build/parser/satisfactory/types/property/DataFields.js +493 -0
  22. package/build/parser/satisfactory/types/property/generic/ArrayProperty.d.ts +22 -0
  23. package/build/parser/satisfactory/types/property/generic/ArrayProperty.js +171 -0
  24. package/build/parser/satisfactory/types/property/generic/BasicProperty.d.ts +25 -0
  25. package/build/parser/satisfactory/types/property/generic/BasicProperty.js +28 -0
  26. package/build/parser/satisfactory/types/property/generic/BoolProperty.d.ts +14 -0
  27. package/build/parser/satisfactory/types/property/generic/BoolProperty.js +32 -0
  28. package/build/parser/satisfactory/types/property/generic/ByteProperty.d.ts +18 -0
  29. package/build/parser/satisfactory/types/property/generic/ByteProperty.js +52 -0
  30. package/build/parser/satisfactory/types/property/generic/DoubleProperty.d.ts +14 -0
  31. package/build/parser/satisfactory/types/property/generic/DoubleProperty.js +32 -0
  32. package/build/parser/satisfactory/types/property/generic/EnumProperty.d.ts +20 -0
  33. package/build/parser/satisfactory/types/property/generic/EnumProperty.js +35 -0
  34. package/build/parser/satisfactory/types/property/generic/FloatProperty.d.ts +14 -0
  35. package/build/parser/satisfactory/types/property/generic/FloatProperty.js +32 -0
  36. package/build/parser/satisfactory/types/property/generic/Int32Property.d.ts +14 -0
  37. package/build/parser/satisfactory/types/property/generic/Int32Property.js +32 -0
  38. package/build/parser/satisfactory/types/property/generic/Int64Property.d.ts +14 -0
  39. package/build/parser/satisfactory/types/property/generic/Int64Property.js +32 -0
  40. package/build/parser/satisfactory/types/property/generic/Int8Property.d.ts +14 -0
  41. package/build/parser/satisfactory/types/property/generic/Int8Property.js +32 -0
  42. package/build/parser/satisfactory/types/property/generic/MapProperty.d.ts +22 -0
  43. package/build/parser/satisfactory/types/property/generic/MapProperty.js +162 -0
  44. package/build/parser/satisfactory/types/property/generic/ObjectProperty.d.ts +15 -0
  45. package/build/parser/satisfactory/types/property/generic/ObjectProperty.js +37 -0
  46. package/build/parser/satisfactory/types/property/generic/SetProperty.d.ts +12 -0
  47. package/build/parser/satisfactory/types/property/generic/SetProperty.js +94 -0
  48. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.d.ts +13 -0
  49. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.js +27 -0
  50. package/build/parser/satisfactory/types/property/generic/StrProperty.d.ts +14 -0
  51. package/build/parser/satisfactory/types/property/generic/StrProperty.js +32 -0
  52. package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts +69 -0
  53. package/build/parser/satisfactory/types/property/generic/StructProperty.js +365 -0
  54. package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts +30 -0
  55. package/build/parser/satisfactory/types/property/generic/TextProperty.js +111 -0
  56. package/build/parser/satisfactory/types/property/generic/Uint32Property.d.ts +14 -0
  57. package/build/parser/satisfactory/types/property/generic/Uint32Property.js +32 -0
  58. package/build/parser/satisfactory/types/property/generic/Uint64Property.d.ts +14 -0
  59. package/build/parser/satisfactory/types/property/generic/Uint64Property.js +32 -0
  60. package/build/parser/satisfactory/types/property/generic/Uint8Property.d.ts +14 -0
  61. package/build/parser/satisfactory/types/property/generic/Uint8Property.js +32 -0
  62. package/build/parser/satisfactory/types/property/special/SpecialAnyProperty.d.ts +54 -0
  63. package/build/parser/satisfactory/types/property/special/SpecialAnyProperty.js +2 -0
  64. package/build/parser/satisfactory/types/structs/GUID.d.ts +7 -0
  65. package/build/parser/satisfactory/types/structs/GUID.js +21 -0
  66. package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts +8 -0
  67. package/build/parser/satisfactory/types/structs/GUIDInfo.js +26 -0
  68. package/build/parser/satisfactory/types/structs/MD5Hash.d.ts +10 -0
  69. package/build/parser/satisfactory/types/structs/MD5Hash.js +21 -0
  70. package/build/parser/satisfactory/types/structs/ObjectReference.d.ts +10 -0
  71. package/build/parser/satisfactory/types/structs/ObjectReference.js +17 -0
  72. package/build/parser/satisfactory/types/structs/SoftObjectReference.d.ts +11 -0
  73. package/build/parser/satisfactory/types/structs/SoftObjectReference.js +19 -0
  74. package/build/parser/satisfactory/types/structs/Transform.d.ts +15 -0
  75. package/build/parser/satisfactory/types/structs/Transform.js +32 -0
  76. package/build/parser/satisfactory/types/structs/col4.d.ts +14 -0
  77. package/build/parser/satisfactory/types/structs/col4.js +34 -0
  78. package/build/parser/satisfactory/types/structs/vec2.d.ts +12 -0
  79. package/build/parser/satisfactory/types/structs/vec2.js +26 -0
  80. package/build/parser/satisfactory/types/structs/vec3.d.ts +19 -0
  81. package/build/parser/satisfactory/types/structs/vec3.js +44 -0
  82. package/build/parser/satisfactory/types/structs/vec4.d.ts +12 -0
  83. package/build/parser/satisfactory/types/structs/vec4.js +27 -0
  84. package/build/parser/stream/reworked/readable-stream-parser.js +3 -3
  85. package/build/parser/stream/reworked/save-stream-writer.class.d.ts +2 -2
  86. package/package.json +1 -1
@@ -0,0 +1,54 @@
1
+ import { ObjectReference } from '../../structs/ObjectReference';
2
+ import { Transform } from '../../structs/Transform';
3
+ import { vec2 } from '../../structs/vec2';
4
+ import { vec3 } from '../../structs/vec3';
5
+ export type SpecialAnyProperty = EmptySpecialProperty | PowerLineSpecialProperty | PlayerSpecialProperty | ConveyorChainActorSpecialProperty | BuildableSubsystemSpecialProperty;
6
+ export type EmptySpecialProperty = {};
7
+ export type PowerLineSpecialProperty = {
8
+ source: ObjectReference;
9
+ target: ObjectReference;
10
+ sourceTranslation?: vec3;
11
+ targetTranslation?: vec3;
12
+ };
13
+ export type PlayerSpecialProperty = {
14
+ flag: number;
15
+ eosData?: string;
16
+ steamPlayerData?: string;
17
+ };
18
+ export type ConveyorItemSpecialProperty = {
19
+ position: number;
20
+ itemName: string;
21
+ };
22
+ export type ConveyorChainSegmentSpecialProperty = {
23
+ chainActorRef: ObjectReference;
24
+ beltRef: ObjectReference;
25
+ someCount: number;
26
+ unknownUseBytes: number[];
27
+ firstItemIndex: number;
28
+ lastItemIndex: number;
29
+ beltIndexInChain: number;
30
+ };
31
+ export type ConveyorChainActorSpecialProperty = {
32
+ firstBelt: ObjectReference;
33
+ lastBelt: ObjectReference;
34
+ beltsInChain: ConveyorChainSegmentSpecialProperty[];
35
+ unknownInts: [number, number];
36
+ firstChainItemIndex: number;
37
+ lastChainItemIndex: number;
38
+ items: ConveyorItemSpecialProperty[];
39
+ };
40
+ export type BuildableTypeInstance = {
41
+ transform: Transform;
42
+ unknownUseNumbers: [vec2, vec3];
43
+ swatchSlotTypePath: string;
44
+ paintFinishPath: string;
45
+ recipeTypePath: string;
46
+ patternPath: string;
47
+ blueprintProxy: ObjectReference;
48
+ };
49
+ export type BuildableSubsystemSpecialProperty = {
50
+ buildables: {
51
+ typePath: string;
52
+ instances: BuildableTypeInstance[];
53
+ }[];
54
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import { BinaryReadable } from '../../../byte/binary-readable.interface';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ export type GUID = [number, number, number, number];
4
+ export declare namespace GUID {
5
+ const read: (reader: BinaryReadable) => GUID;
6
+ const write: (writer: ByteWriter, guid: GUID) => void;
7
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GUID = void 0;
4
+ var GUID;
5
+ (function (GUID) {
6
+ GUID.read = (reader) => {
7
+ return [
8
+ reader.readUint32(),
9
+ reader.readUint32(),
10
+ reader.readUint32(),
11
+ reader.readUint32(),
12
+ ];
13
+ };
14
+ GUID.write = (writer, guid) => {
15
+ writer.writeUint32(guid[0]);
16
+ writer.writeUint32(guid[1]);
17
+ writer.writeUint32(guid[2]);
18
+ writer.writeUint32(guid[3]);
19
+ };
20
+ })(GUID || (exports.GUID = GUID = {}));
21
+ ;
@@ -0,0 +1,8 @@
1
+ import { BinaryReadable } from '../../../byte/binary-readable.interface';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ import { GUID } from './GUID';
4
+ export type GUIDInfo = undefined | GUID;
5
+ export declare namespace GUIDInfo {
6
+ const read: (reader: BinaryReadable) => GUIDInfo;
7
+ const write: (writer: ByteWriter, guid: GUIDInfo) => void;
8
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GUIDInfo = void 0;
4
+ const GUID_1 = require("./GUID");
5
+ var GUIDInfo;
6
+ (function (GUIDInfo) {
7
+ GUIDInfo.read = (reader) => {
8
+ if (reader.readByte() === 1) {
9
+ return GUID_1.GUID.read(reader);
10
+ }
11
+ else {
12
+ return undefined;
13
+ }
14
+ };
15
+ GUIDInfo.write = (writer, guid) => {
16
+ if (guid === undefined) {
17
+ writer.writeByte(0);
18
+ return;
19
+ }
20
+ else {
21
+ writer.writeByte(1);
22
+ GUID_1.GUID.write(writer, guid);
23
+ }
24
+ };
25
+ })(GUIDInfo || (exports.GUIDInfo = GUIDInfo = {}));
26
+ ;
@@ -0,0 +1,10 @@
1
+ import { ByteReader } from '../../../byte/byte-reader.class';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ export type MD5Hash = {
4
+ isValid: boolean;
5
+ hash?: number[];
6
+ };
7
+ export declare namespace MD5Hash {
8
+ const read: (reader: ByteReader) => MD5Hash;
9
+ const write: (writer: ByteWriter, md5Hash: MD5Hash) => void;
10
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MD5Hash = void 0;
4
+ var MD5Hash;
5
+ (function (MD5Hash) {
6
+ MD5Hash.read = (reader) => {
7
+ const md5Hash = { isValid: false };
8
+ md5Hash.isValid = reader.readInt32() === 1;
9
+ if (md5Hash.isValid) {
10
+ md5Hash.hash = Array.from(reader.readBytes(16));
11
+ }
12
+ return md5Hash;
13
+ };
14
+ MD5Hash.write = (writer, md5Hash) => {
15
+ writer.writeInt32(md5Hash.isValid ? 1 : 0);
16
+ if (md5Hash.isValid) {
17
+ writer.writeBytesArray(md5Hash.hash);
18
+ }
19
+ };
20
+ })(MD5Hash || (exports.MD5Hash = MD5Hash = {}));
21
+ ;
@@ -0,0 +1,10 @@
1
+ import { BinaryReadable } from "../../../byte/binary-readable.interface";
2
+ import { ByteWriter } from "../../../byte/byte-writer.class";
3
+ export type ObjectReference = {
4
+ levelName: string;
5
+ pathName: string;
6
+ };
7
+ export declare namespace ObjectReference {
8
+ const read: (reader: BinaryReadable) => ObjectReference;
9
+ const write: (writer: ByteWriter, ref: ObjectReference) => void;
10
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectReference = void 0;
4
+ var ObjectReference;
5
+ (function (ObjectReference) {
6
+ ObjectReference.read = (reader) => {
7
+ return {
8
+ levelName: reader.readString(),
9
+ pathName: reader.readString()
10
+ };
11
+ };
12
+ ObjectReference.write = (writer, ref) => {
13
+ writer.writeString(ref.levelName);
14
+ writer.writeString(ref.pathName);
15
+ };
16
+ })(ObjectReference || (exports.ObjectReference = ObjectReference = {}));
17
+ ;
@@ -0,0 +1,11 @@
1
+ import { BinaryReadable } from "../../../byte/binary-readable.interface";
2
+ import { ByteWriter } from "../../../byte/byte-writer.class";
3
+ export type SoftObjectReference = {
4
+ instanceName: string;
5
+ pathName: string;
6
+ unk: number;
7
+ };
8
+ export declare namespace SoftObjectReference {
9
+ const read: (reader: BinaryReadable) => SoftObjectReference;
10
+ const write: (writer: ByteWriter, ref: SoftObjectReference) => void;
11
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SoftObjectReference = void 0;
4
+ var SoftObjectReference;
5
+ (function (SoftObjectReference) {
6
+ SoftObjectReference.read = (reader) => {
7
+ return {
8
+ pathName: reader.readString(),
9
+ instanceName: reader.readString(),
10
+ unk: reader.readInt32()
11
+ };
12
+ };
13
+ SoftObjectReference.write = (writer, ref) => {
14
+ writer.writeString(ref.pathName);
15
+ writer.writeString(ref.instanceName);
16
+ writer.writeInt32(ref.unk);
17
+ };
18
+ })(SoftObjectReference || (exports.SoftObjectReference = SoftObjectReference = {}));
19
+ ;
@@ -0,0 +1,15 @@
1
+ import { BinaryReadable } from '../../../byte/binary-readable.interface';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ import { vec3 } from './vec3';
4
+ import { vec4 } from './vec4';
5
+ export type Transform = {
6
+ rotation: vec4;
7
+ translation: vec3;
8
+ scale3d: vec3;
9
+ };
10
+ export declare namespace Transform {
11
+ const ParseF: (reader: BinaryReadable) => Transform;
12
+ const Parse: (reader: BinaryReadable) => Transform;
13
+ const Serialize: (writer: ByteWriter, transform: Transform) => void;
14
+ const SerializeF: (writer: ByteWriter, transform: Transform) => void;
15
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Transform = void 0;
4
+ const vec3_1 = require("./vec3");
5
+ const vec4_1 = require("./vec4");
6
+ var Transform;
7
+ (function (Transform) {
8
+ Transform.ParseF = (reader) => {
9
+ return {
10
+ rotation: vec4_1.vec4.ParseF(reader),
11
+ translation: vec3_1.vec3.ParseF(reader),
12
+ scale3d: vec3_1.vec3.ParseF(reader),
13
+ };
14
+ };
15
+ Transform.Parse = (reader) => {
16
+ return {
17
+ rotation: vec4_1.vec4.Parse(reader),
18
+ translation: vec3_1.vec3.Parse(reader),
19
+ scale3d: vec3_1.vec3.Parse(reader),
20
+ };
21
+ };
22
+ Transform.Serialize = (writer, transform) => {
23
+ vec4_1.vec4.Serialize(writer, transform.rotation);
24
+ vec3_1.vec3.Serialize(writer, transform.translation);
25
+ vec3_1.vec3.Serialize(writer, transform.scale3d);
26
+ };
27
+ Transform.SerializeF = (writer, transform) => {
28
+ vec4_1.vec4.SerializeF(writer, transform.rotation);
29
+ vec3_1.vec3.SerializeF(writer, transform.translation);
30
+ vec3_1.vec3.SerializeF(writer, transform.scale3d);
31
+ };
32
+ })(Transform || (exports.Transform = Transform = {}));
@@ -0,0 +1,14 @@
1
+ import { BinaryReadable } from '../../../byte/binary-readable.interface';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ export type col4 = {
4
+ r: number;
5
+ g: number;
6
+ b: number;
7
+ a: number;
8
+ };
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
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.col4 = void 0;
4
+ var col4;
5
+ (function (col4) {
6
+ col4.SerializeRGBA = (writer, value) => {
7
+ writer.writeFloat32(value.r);
8
+ writer.writeFloat32(value.g);
9
+ writer.writeFloat32(value.b);
10
+ writer.writeFloat32(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 = {}));
@@ -0,0 +1,12 @@
1
+ import { BinaryReadable } from '../../../byte/binary-readable.interface';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ export type vec2 = {
4
+ x: number;
5
+ y: number;
6
+ };
7
+ export declare namespace vec2 {
8
+ const Parse: (reader: BinaryReadable) => vec2;
9
+ const Serialize: (writer: ByteWriter, vec: vec2) => void;
10
+ const ParseF: (reader: BinaryReadable) => vec2;
11
+ const SerializeF: (writer: ByteWriter, vec: vec2) => void;
12
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vec2 = void 0;
4
+ var vec2;
5
+ (function (vec2) {
6
+ vec2.Parse = (reader) => {
7
+ return {
8
+ x: reader.readDouble(),
9
+ y: reader.readDouble(),
10
+ };
11
+ };
12
+ vec2.Serialize = (writer, vec) => {
13
+ writer.writeDouble(vec.x);
14
+ writer.writeDouble(vec.y);
15
+ };
16
+ vec2.ParseF = (reader) => {
17
+ return {
18
+ x: reader.readFloat32(),
19
+ y: reader.readFloat32(),
20
+ };
21
+ };
22
+ vec2.SerializeF = (writer, vec) => {
23
+ writer.writeFloat32(vec.x);
24
+ writer.writeFloat32(vec.y);
25
+ };
26
+ })(vec2 || (exports.vec2 = vec2 = {}));
@@ -0,0 +1,19 @@
1
+ import { BinaryReadable } from '../../../byte/binary-readable.interface';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ import { vec2 } from './vec2';
4
+ export type vec3 = vec2 & {
5
+ z: number;
6
+ };
7
+ export declare namespace vec3 {
8
+ const Parse: (reader: BinaryReadable) => vec3;
9
+ const Serialize: (writer: ByteWriter, vec: vec3) => void;
10
+ const ParseInt: (reader: BinaryReadable) => vec3;
11
+ const SerializeInt: (writer: ByteWriter, vec: vec3) => void;
12
+ const ParseF: (reader: BinaryReadable) => vec3;
13
+ const SerializeF: (writer: ByteWriter, vec: vec3) => void;
14
+ const sub: (other: vec3, vec: vec3) => vec3;
15
+ const add: (vec: vec3, other: vec3) => vec3;
16
+ const length: (vec: vec3) => number;
17
+ const mult: (vec: vec3, scale: number) => vec3;
18
+ const norm: (vec: vec3) => vec3;
19
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vec3 = void 0;
4
+ const vec2_1 = require("./vec2");
5
+ var vec3;
6
+ (function (vec3) {
7
+ vec3.Parse = (reader) => {
8
+ return {
9
+ ...(vec2_1.vec2.Parse(reader)),
10
+ z: reader.readDouble()
11
+ };
12
+ };
13
+ vec3.Serialize = (writer, vec) => {
14
+ vec2_1.vec2.Serialize(writer, vec);
15
+ writer.writeDouble(vec.z);
16
+ };
17
+ vec3.ParseInt = (reader) => {
18
+ return {
19
+ x: reader.readInt32(),
20
+ y: reader.readInt32(),
21
+ z: reader.readInt32()
22
+ };
23
+ };
24
+ vec3.SerializeInt = (writer, vec) => {
25
+ writer.writeInt32(vec.x);
26
+ writer.writeInt32(vec.y);
27
+ writer.writeInt32(vec.z);
28
+ };
29
+ vec3.ParseF = (reader) => {
30
+ return {
31
+ ...(vec2_1.vec2.ParseF(reader)),
32
+ z: reader.readFloat32()
33
+ };
34
+ };
35
+ vec3.SerializeF = (writer, vec) => {
36
+ vec2_1.vec2.SerializeF(writer, vec);
37
+ writer.writeFloat32(vec.z);
38
+ };
39
+ vec3.sub = (other, vec) => ({ x: other.x - vec.x, y: other.y - vec.y, z: other.z - vec.z });
40
+ vec3.add = (vec, other) => ({ x: vec.x + other.x, y: vec.y + other.y, z: vec.z + other.z });
41
+ vec3.length = (vec) => Math.sqrt(vec.x ** 2 + vec.y ** 2 + vec.z ** 2);
42
+ vec3.mult = (vec, scale) => ({ x: vec.x * scale, y: vec.y * scale, z: vec.z * scale });
43
+ vec3.norm = (vec) => vec3.mult(vec, 1. / vec3.length(vec));
44
+ })(vec3 || (exports.vec3 = vec3 = {}));
@@ -0,0 +1,12 @@
1
+ import { BinaryReadable } from '../../../byte/binary-readable.interface';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ import { vec3 } from './vec3';
4
+ export type vec4 = vec3 & {
5
+ w: number;
6
+ };
7
+ export declare namespace vec4 {
8
+ const Parse: (reader: BinaryReadable) => vec4;
9
+ const Serialize: (writer: ByteWriter, vec: vec4) => void;
10
+ const ParseF: (reader: BinaryReadable) => vec4;
11
+ const SerializeF: (writer: ByteWriter, vec: vec4) => void;
12
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vec4 = void 0;
4
+ const vec3_1 = require("./vec3");
5
+ var vec4;
6
+ (function (vec4) {
7
+ vec4.Parse = (reader) => {
8
+ return {
9
+ ...(vec3_1.vec3.Parse(reader)),
10
+ w: reader.readDouble()
11
+ };
12
+ };
13
+ vec4.Serialize = (writer, vec) => {
14
+ vec3_1.vec3.Serialize(writer, vec);
15
+ writer.writeDouble(vec.w);
16
+ };
17
+ vec4.ParseF = (reader) => {
18
+ return {
19
+ ...(vec3_1.vec3.ParseF(reader)),
20
+ w: reader.readFloat32()
21
+ };
22
+ };
23
+ vec4.SerializeF = (writer, vec) => {
24
+ vec3_1.vec3.SerializeF(writer, vec);
25
+ writer.writeFloat32(vec.w);
26
+ };
27
+ })(vec4 || (exports.vec4 = vec4 = {}));
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ReadableStreamParser = void 0;
5
5
  const web_1 = require("stream/web");
6
6
  const parser_error_1 = require("../../error/parser.error");
7
- const SaveComponent_1 = require("../../satisfactory/objects/SaveComponent");
8
- const SaveEntity_1 = require("../../satisfactory/objects/SaveEntity");
9
- const ObjectReference_1 = require("../../satisfactory/objects/values/ObjectReference");
10
7
  const level_class_1 = require("../../satisfactory/save/level.class");
11
8
  const satisfactory_save_1 = require("../../satisfactory/save/satisfactory-save");
12
9
  const save_reader_1 = require("../../satisfactory/save/save-reader");
10
+ const SaveComponent_1 = require("../../satisfactory/types/objects/SaveComponent");
11
+ const SaveEntity_1 = require("../../satisfactory/types/objects/SaveEntity");
12
+ const ObjectReference_1 = require("../../satisfactory/types/structs/ObjectReference");
13
13
  const DEFAULT_BYTE_HIGHWATERMARK = 1024 * 1024 * 200;
14
14
  const createStringLengthQueuingStrategy = (highWaterMark = DEFAULT_BYTE_HIGHWATERMARK / 4) => ({
15
15
  highWaterMark,
@@ -1,9 +1,9 @@
1
1
  import { WritableStreamDefaultWriter } from "stream/web";
2
2
  import { ChunkCompressionInfo } from '../../file.types';
3
- import { SaveObject } from "../../satisfactory/objects/SaveObject";
4
- import { ObjectReference } from '../../satisfactory/objects/values/ObjectReference';
5
3
  import { ByteArray4, Grids } from '../../satisfactory/save/save-reader';
6
4
  import { SatisfactorySaveHeader } from '../../satisfactory/save/save.types';
5
+ import { SaveObject } from "../../satisfactory/types/objects/SaveObject";
6
+ import { ObjectReference } from '../../satisfactory/types/structs/ObjectReference';
7
7
  export declare class SaveStreamWriter {
8
8
  private writer;
9
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.19",
4
+ "version": "0.4.21",
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",