@etothepii/satisfactory-file-parser 0.0.25 → 0.0.27

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 (47) hide show
  1. package/dist/index.d.ts +774 -0
  2. package/dist/index.js +1 -0
  3. package/package.json +13 -6
  4. package/build/index.d.ts +0 -19
  5. package/build/index.js +0 -52
  6. package/build/parser/byte/alignment.enum.d.ts +0 -4
  7. package/build/parser/byte/alignment.enum.js +0 -8
  8. package/build/parser/byte/byte-reader.class.d.ts +0 -34
  9. package/build/parser/byte/byte-reader.class.js +0 -121
  10. package/build/parser/byte/byte-writer.class.d.ts +0 -33
  11. package/build/parser/byte/byte-writer.class.js +0 -139
  12. package/build/parser/error/parser.error.d.ts +0 -12
  13. package/build/parser/error/parser.error.js +0 -28
  14. package/build/parser/file.types.d.ts +0 -9
  15. package/build/parser/file.types.js +0 -2
  16. package/build/parser/parser.d.ts +0 -16
  17. package/build/parser/parser.js +0 -88
  18. package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts +0 -18
  19. package/build/parser/satisfactory/blueprint/blueprint-reader.js +0 -124
  20. package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts +0 -15
  21. package/build/parser/satisfactory/blueprint/blueprint-writer.js +0 -63
  22. package/build/parser/satisfactory/blueprint/blueprint.types.d.ts +0 -20
  23. package/build/parser/satisfactory/blueprint/blueprint.types.js +0 -2
  24. package/build/parser/satisfactory/objects/DataFields.d.ts +0 -13
  25. package/build/parser/satisfactory/objects/DataFields.js +0 -224
  26. package/build/parser/satisfactory/objects/ObjectReference.d.ts +0 -9
  27. package/build/parser/satisfactory/objects/ObjectReference.js +0 -17
  28. package/build/parser/satisfactory/objects/Property.d.ts +0 -270
  29. package/build/parser/satisfactory/objects/Property.js +0 -1001
  30. package/build/parser/satisfactory/objects/SaveComponent.d.ts +0 -16
  31. package/build/parser/satisfactory/objects/SaveComponent.js +0 -31
  32. package/build/parser/satisfactory/objects/SaveEntity.d.ts +0 -25
  33. package/build/parser/satisfactory/objects/SaveEntity.js +0 -70
  34. package/build/parser/satisfactory/objects/SaveObject.d.ts +0 -14
  35. package/build/parser/satisfactory/objects/SaveObject.js +0 -29
  36. package/build/parser/satisfactory/save/level.class.d.ts +0 -21
  37. package/build/parser/satisfactory/save/level.class.js +0 -138
  38. package/build/parser/satisfactory/save/satisfactory-save.d.ts +0 -11
  39. package/build/parser/satisfactory/save/satisfactory-save.js +0 -11
  40. package/build/parser/satisfactory/save/save-reader.d.ts +0 -44
  41. package/build/parser/satisfactory/save/save-reader.js +0 -233
  42. package/build/parser/satisfactory/save/save-writer.d.ts +0 -12
  43. package/build/parser/satisfactory/save/save-writer.js +0 -112
  44. package/build/parser/satisfactory/save/save.types.d.ts +0 -49
  45. package/build/parser/satisfactory/save/save.types.js +0 -2
  46. package/build/parser/satisfactory/structs/util.types.d.ts +0 -40
  47. package/build/parser/satisfactory/structs/util.types.js +0 -95
@@ -1,12 +0,0 @@
1
- import { Alignment } from "../../byte/alignment.enum";
2
- import { ByteWriter } from "../../byte/byte-writer.class";
3
- import { ChunkCompressionInfo, ChunkSummary } from "../../file.types";
4
- import { SatisfactorySave } from "./satisfactory-save";
5
- import { SatisfactorySaveHeader } from "./save.types";
6
- export declare class SaveWriter extends ByteWriter {
7
- constructor();
8
- static WriteHeader(writer: ByteWriter, header: SatisfactorySaveHeader): void;
9
- static WriteLevels(writer: ByteWriter, save: SatisfactorySave, buildVersion: number): void;
10
- static GenerateCompressedChunksFromData(bufferArray: ArrayBuffer, compressionInfo: ChunkCompressionInfo, onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onChunk: (chunk: Uint8Array) => void, alignment?: Alignment): ChunkSummary[];
11
- generateChunks(compressionInfo: ChunkCompressionInfo, posAfterHeader: number, onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onHeader: (header: Uint8Array) => void, onChunk: (chunk: Uint8Array) => void): ChunkSummary[];
12
- }
@@ -1,112 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SaveWriter = void 0;
7
- const pako_1 = __importDefault(require("pako"));
8
- const alignment_enum_1 = require("../../byte/alignment.enum");
9
- const byte_writer_class_1 = require("../../byte/byte-writer.class");
10
- const parser_error_1 = require("../../error/parser.error");
11
- const level_class_1 = require("./level.class");
12
- class SaveWriter extends byte_writer_class_1.ByteWriter {
13
- constructor() {
14
- super(alignment_enum_1.Alignment.LITTLE_ENDIAN);
15
- }
16
- static WriteHeader(writer, header) {
17
- writer.writeInt32(header.saveHeaderType);
18
- writer.writeInt32(header.saveVersion);
19
- writer.writeInt32(header.buildVersion);
20
- writer.writeString(header.mapName);
21
- writer.writeString(header.mapOptions);
22
- writer.writeString(header.sessionName);
23
- writer.writeInt32(header.playDurationSeconds);
24
- writer.writeInt64(BigInt(header.saveDateTime));
25
- writer.writeByte(header.sessionVisibility);
26
- if (header.saveHeaderType >= 7) {
27
- writer.writeInt32(header.fEditorObjectVersion);
28
- }
29
- if (header.saveHeaderType >= 8) {
30
- if (header.modMetadata) {
31
- writer.writeString(JSON.stringify(header.modMetadata));
32
- }
33
- else {
34
- writer.writeString(header.rawModMetadataString);
35
- }
36
- writer.writeInt32(header.isModdedSave);
37
- }
38
- if (header.saveHeaderType >= 10) {
39
- writer.writeString(header.saveIdentifier);
40
- }
41
- if (header.saveVersion >= 21) {
42
- }
43
- else {
44
- throw new parser_error_1.UnsupportedVersionError("The save version is too old to be supported currently.");
45
- }
46
- }
47
- static WriteLevels(writer, save, buildVersion) {
48
- writer.writeInt32(save.levels.length - 1);
49
- for (const level of save.levels) {
50
- if (level.name !== save.header.mapName) {
51
- writer.writeString(level.name);
52
- }
53
- level_class_1.Level.WriteLevel(writer, level, buildVersion);
54
- }
55
- level_class_1.Level.SerializeCollectablesList(writer, save.trailingCollectedObjects);
56
- }
57
- static GenerateCompressedChunksFromData(bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, alignment = alignment_enum_1.Alignment.LITTLE_ENDIAN) {
58
- const errors = [];
59
- const totalUncompressedSize = bufferArray.byteLength;
60
- const saveBody = new Uint8Array(bufferArray.byteLength + 4);
61
- saveBody.set(new Uint8Array(bufferArray), 4);
62
- const miniView = new DataView(saveBody.buffer);
63
- miniView.setInt32(0, totalUncompressedSize, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
64
- onBinaryBeforeCompressing(saveBody.buffer);
65
- let handledByte = 0;
66
- const chunkSummary = [];
67
- while (handledByte < saveBody.byteLength) {
68
- const uncompressedContentSize = Math.min(compressionInfo.maxChunkContentSize, saveBody.byteLength - handledByte);
69
- const uncompressedChunk = saveBody.buffer.slice(handledByte, handledByte + uncompressedContentSize);
70
- let compressedChunk = new Uint8Array(0);
71
- try {
72
- compressedChunk = pako_1.default.deflate(uncompressedChunk);
73
- }
74
- catch (err) {
75
- throw new parser_error_1.CompressionLibraryError("Could not compress save data. " + err);
76
- }
77
- const chunk = new Uint8Array(compressionInfo.chunkHeaderSize + compressedChunk.byteLength);
78
- chunk.set(compressedChunk, compressionInfo.chunkHeaderSize);
79
- const view = new DataView(chunk.buffer);
80
- view.setInt32(0, compressionInfo.packageFileTag, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
81
- view.setInt32(4, 0, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
82
- view.setInt32(8, compressionInfo.maxChunkContentSize, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
83
- view.setInt32(12, 0, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
84
- view.setInt32(16, compressedChunk.byteLength, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
85
- view.setInt32(20, 0, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
86
- view.setInt32(24, uncompressedContentSize, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
87
- view.setInt32(28, 0, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
88
- view.setInt32(32, compressedChunk.byteLength, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
89
- view.setInt32(36, 0, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
90
- view.setInt32(40, uncompressedContentSize, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
91
- view.setInt32(44, 0, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
92
- onChunk(chunk);
93
- chunkSummary.push({
94
- uncompressedSize: uncompressedContentSize + compressionInfo.chunkHeaderSize,
95
- compressedSize: compressedChunk.byteLength + compressionInfo.chunkHeaderSize
96
- });
97
- handledByte += uncompressedContentSize;
98
- }
99
- return chunkSummary;
100
- }
101
- generateChunks(compressionInfo, posAfterHeader, onBinaryBeforeCompressing, onHeader, onChunk) {
102
- if (posAfterHeader <= 0) {
103
- throw new parser_error_1.ParserError('ParserError', 'Seems like this buffer has no header. Please write the header first before you can generate chunks.');
104
- }
105
- const header = new Uint8Array(this.bufferArray.slice(0, posAfterHeader));
106
- onHeader(header);
107
- this.bufferArray = this.bufferArray.slice(posAfterHeader);
108
- const chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, this.alignment);
109
- return chunkSummary;
110
- }
111
- }
112
- exports.SaveWriter = SaveWriter;
@@ -1,49 +0,0 @@
1
- export interface ModData {
2
- Reference: string;
3
- Name: string;
4
- Version: string;
5
- }
6
- export interface SatisfactoryModMetadata {
7
- Mods: ModData[];
8
- }
9
- export interface SatisfactorySaveHeader {
10
- saveHeaderType: number;
11
- saveVersion: number;
12
- buildVersion: number;
13
- mapName: string;
14
- mapOptions: string;
15
- sessionName: string;
16
- playDurationSeconds: number;
17
- saveDateTime: string;
18
- sessionVisibility: number;
19
- rawModMetadataString?: string;
20
- modMetadata?: SatisfactoryModMetadata;
21
- isModdedSave?: number;
22
- saveIdentifier?: string;
23
- fEditorObjectVersion?: number;
24
- }
25
- export type ResourceNodeEntry = {
26
- purity: string;
27
- pathName: string;
28
- position: {
29
- x: number;
30
- y: number;
31
- z: number;
32
- };
33
- type: string;
34
- };
35
- export type CollectibleEntry = {
36
- pathName: string;
37
- position: {
38
- x: number;
39
- y: number;
40
- z: number;
41
- };
42
- type: string;
43
- };
44
- export type StaticData = {
45
- collectibles: CollectibleEntry[];
46
- artifacts: CollectibleEntry[];
47
- slugs: CollectibleEntry[];
48
- resourceNodes: ResourceNodeEntry[];
49
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,40 +0,0 @@
1
- import { ByteReader } from "../../byte/byte-reader.class";
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 const SerializeCol4RGBA: (writer: ByteWriter, value: col4) => void;
10
- export declare const ParseCol4RGBA: (reader: ByteReader) => col4;
11
- export declare const SerializeCol4BGRA: (writer: ByteWriter, value: col4) => void;
12
- export declare const ParseCol4BGRA: (reader: ByteReader) => col4;
13
- export type vec4 = vec3 & {
14
- w: number;
15
- };
16
- export declare const ParseVec4: (reader: ByteReader) => vec4;
17
- export declare const SerializeVec4: (writer: ByteWriter, vec: vec4) => void;
18
- export declare const sub: (other: vec3, vec: vec3) => vec3;
19
- export declare const add: (vec: vec3, other: vec3) => vec3;
20
- export declare const length: (vec: vec3) => number;
21
- export declare const mult: (vec: vec3, scale: number) => vec3;
22
- export declare const norm: (vec: vec3) => vec3;
23
- export type vec3 = vec2 & {
24
- z: number;
25
- };
26
- export declare const ParseVec3: (reader: ByteReader) => vec3;
27
- export declare const SerializeVec3: (writer: ByteWriter, vec: vec3) => void;
28
- export type vec2 = {
29
- x: number;
30
- y: number;
31
- };
32
- export declare const ParseVec2: (reader: ByteReader) => vec2;
33
- export declare const SerializeVec2: (writer: ByteWriter, vec: vec2) => void;
34
- export type Transform = {
35
- rotation: vec4;
36
- translation: vec3;
37
- scale3d: vec3;
38
- };
39
- export declare const ParseTransform: (reader: ByteReader) => Transform;
40
- export declare const SerializeTransform: (writer: ByteWriter, transform: Transform) => void;
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SerializeTransform = exports.ParseTransform = exports.SerializeVec2 = exports.ParseVec2 = exports.SerializeVec3 = exports.ParseVec3 = exports.norm = exports.mult = exports.length = exports.add = exports.sub = exports.SerializeVec4 = exports.ParseVec4 = exports.ParseCol4BGRA = exports.SerializeCol4BGRA = exports.ParseCol4RGBA = exports.SerializeCol4RGBA = void 0;
4
- const SerializeCol4RGBA = (writer, value) => {
5
- writer.writeFloat(value.r);
6
- writer.writeFloat(value.g);
7
- writer.writeFloat(value.b);
8
- writer.writeFloat(value.a);
9
- };
10
- exports.SerializeCol4RGBA = SerializeCol4RGBA;
11
- const ParseCol4RGBA = (reader) => {
12
- return {
13
- r: reader.readFloat(),
14
- g: reader.readFloat(),
15
- b: reader.readFloat(),
16
- a: reader.readFloat(),
17
- };
18
- };
19
- exports.ParseCol4RGBA = ParseCol4RGBA;
20
- const SerializeCol4BGRA = (writer, value) => {
21
- writer.writeByte(value.b);
22
- writer.writeByte(value.g);
23
- writer.writeByte(value.r);
24
- writer.writeByte(value.a);
25
- };
26
- exports.SerializeCol4BGRA = SerializeCol4BGRA;
27
- const ParseCol4BGRA = (reader) => {
28
- return {
29
- b: reader.readByte(),
30
- g: reader.readByte(),
31
- r: reader.readByte(),
32
- a: reader.readByte(),
33
- };
34
- };
35
- exports.ParseCol4BGRA = ParseCol4BGRA;
36
- const ParseVec4 = (reader) => {
37
- return {
38
- ...(0, exports.ParseVec3)(reader),
39
- w: reader.readFloat()
40
- };
41
- };
42
- exports.ParseVec4 = ParseVec4;
43
- const SerializeVec4 = (writer, vec) => {
44
- (0, exports.SerializeVec3)(writer, vec);
45
- writer.writeFloat(vec.w);
46
- };
47
- exports.SerializeVec4 = SerializeVec4;
48
- const sub = (other, vec) => ({ x: other.x - vec.x, y: other.y - vec.y, z: other.z - vec.z });
49
- exports.sub = sub;
50
- const add = (vec, other) => ({ x: vec.x + other.x, y: vec.y + other.y, z: vec.z + other.z });
51
- exports.add = add;
52
- const length = (vec) => Math.sqrt(vec.x ** 2 + vec.y ** 2 + vec.z ** 2);
53
- exports.length = length;
54
- const mult = (vec, scale) => ({ x: vec.x * scale, y: vec.y * scale, z: vec.z * scale });
55
- exports.mult = mult;
56
- const norm = (vec) => (0, exports.mult)(vec, 1. / (0, exports.length)(vec));
57
- exports.norm = norm;
58
- const ParseVec3 = (reader) => {
59
- return {
60
- ...(0, exports.ParseVec2)(reader),
61
- z: reader.readFloat()
62
- };
63
- };
64
- exports.ParseVec3 = ParseVec3;
65
- const SerializeVec3 = (writer, vec) => {
66
- (0, exports.SerializeVec2)(writer, vec);
67
- writer.writeFloat(vec.z);
68
- };
69
- exports.SerializeVec3 = SerializeVec3;
70
- const ParseVec2 = (reader) => {
71
- return {
72
- x: reader.readFloat(),
73
- y: reader.readFloat(),
74
- };
75
- };
76
- exports.ParseVec2 = ParseVec2;
77
- const SerializeVec2 = (writer, vec) => {
78
- writer.writeFloat(vec.x);
79
- writer.writeFloat(vec.y);
80
- };
81
- exports.SerializeVec2 = SerializeVec2;
82
- const ParseTransform = (reader) => {
83
- return {
84
- rotation: (0, exports.ParseVec4)(reader),
85
- translation: (0, exports.ParseVec3)(reader),
86
- scale3d: (0, exports.ParseVec3)(reader),
87
- };
88
- };
89
- exports.ParseTransform = ParseTransform;
90
- const SerializeTransform = (writer, transform) => {
91
- (0, exports.SerializeVec4)(writer, transform.rotation);
92
- (0, exports.SerializeVec3)(writer, transform.translation);
93
- (0, exports.SerializeVec3)(writer, transform.scale3d);
94
- };
95
- exports.SerializeTransform = SerializeTransform;