@etothepii/satisfactory-file-parser 3.3.0 → 3.3.1
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/.vscode/settings.json +6 -0
- package/CHANGELOG.md +9 -3
- package/README.md +4 -2
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/parser/parser.d.ts.map +1 -1
- package/build/parser/parser.js +9 -7
- package/build/parser/parser.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts +2 -1
- package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/StructProperty.js +10 -0
- package/build/parser/satisfactory/types/property/generic/StructProperty.js.map +1 -1
- package/build/parser/satisfactory/types/structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState.d.ts +22 -0
- package/build/parser/satisfactory/types/structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState.d.ts.map +1 -0
- package/build/parser/satisfactory/types/structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState.js +40 -0
- package/build/parser/satisfactory/types/structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState.js.map +1 -0
- package/build/parser/stream/reworked/readable-stream-parser.d.ts.map +1 -1
- package/build/parser/stream/reworked/readable-stream-parser.js +8 -6
- package/build/parser/stream/reworked/readable-stream-parser.js.map +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/BlueprintConfigReader.html +4 -4
- package/docs/classes/BlueprintReader.html +4 -4
- package/docs/classes/CompressionLibraryError.html +27 -6
- package/docs/classes/ContextReader.html +4 -4
- package/docs/classes/ContextWriter.html +4 -4
- package/docs/classes/CorruptBlueprintError.html +27 -6
- package/docs/classes/CorruptSaveError.html +27 -6
- package/docs/classes/Parser.html +6 -6
- package/docs/classes/ParserError.html +27 -6
- package/docs/classes/ReadableStreamParser.html +2 -2
- package/docs/classes/SatisfactorySave.html +2 -2
- package/docs/classes/SaveComponent.html +2 -2
- package/docs/classes/SaveEntity.html +2 -2
- package/docs/classes/SaveObject.html +2 -2
- package/docs/classes/SaveReader.html +4 -4
- package/docs/classes/SaveStreamJsonStringifier.html +2 -2
- package/docs/classes/SaveStreamWriter.html +2 -2
- package/docs/classes/SaveWriter.html +4 -4
- package/docs/classes/TimeoutError.html +27 -6
- package/docs/classes/UnimplementedError.html +27 -6
- package/docs/classes/UnsupportedVersionError.html +27 -6
- package/docs/enums/Alignment.html +2 -2
- package/docs/enums/BlueprintConfigVersion.html +2 -2
- package/docs/enums/BlueprintHeaderVersion.html +2 -2
- package/docs/enums/CompressionAlgorithmCode.html +2 -2
- package/docs/enums/FactoryGameCustomVersion.html +2 -2
- package/docs/enums/RuntimeBuildableInstanceDataVersion.html +2 -2
- package/docs/enums/SaveCustomVersion.html +10 -10
- package/docs/enums/SaveHeaderType.html +2 -2
- package/docs/functions/AbstractBaseProperty.Create.html +1 -1
- package/docs/functions/ArrayProperty.CalcOverhead.html +1 -1
- package/docs/functions/ArrayProperty.Parse.html +1 -1
- package/docs/functions/ArrayProperty.Serialize.html +1 -1
- package/docs/functions/BlueprintConfig.Parse.html +1 -1
- package/docs/functions/BlueprintConfig.Serialize.html +1 -1
- package/docs/functions/BlueprintHeader.Parse.html +1 -1
- package/docs/functions/BlueprintHeader.Serialize.html +1 -1
- package/docs/functions/BoolArrayProperty.Parse.html +1 -1
- package/docs/functions/BoolArrayProperty.Serialize.html +1 -1
- package/docs/functions/BoolProperty.CalcOverhead.html +1 -1
- package/docs/functions/BoolProperty.Parse.html +1 -1
- package/docs/functions/BoolProperty.ReadValue.html +1 -1
- package/docs/functions/BoolProperty.Serialize.html +1 -1
- package/docs/functions/BoolProperty.SerializeValue.html +1 -1
- package/docs/functions/BuildableSubsystemSpecialProperties.Parse.html +1 -1
- package/docs/functions/BuildableSubsystemSpecialProperties.Serialize.html +1 -1
- package/docs/functions/BuildableTypeInstance.Parse.html +1 -1
- package/docs/functions/BuildableTypeInstance.Serialize.html +1 -1
- package/docs/functions/ByteArrayProperty.Parse.html +1 -1
- package/docs/functions/ByteArrayProperty.Serialize.html +1 -1
- package/docs/functions/ByteProperty.CalcOverhead.html +1 -1
- package/docs/functions/ByteProperty.Parse.html +1 -1
- package/docs/functions/ByteProperty.ReadValue.html +1 -1
- package/docs/functions/ByteProperty.Serialize.html +1 -1
- package/docs/functions/ByteProperty.SerializeValue.html +1 -1
- package/docs/functions/CircuitSpecialProperties.Parse.html +1 -1
- package/docs/functions/CircuitSpecialProperties.Serialize.html +1 -1
- package/docs/functions/ConveyorChainActorSpecialProperties.Parse.html +1 -1
- package/docs/functions/ConveyorChainActorSpecialProperties.Serialize.html +1 -1
- package/docs/functions/ConveyorSpecialProperties.Parse.html +1 -1
- package/docs/functions/ConveyorSpecialProperties.Serialize.html +1 -1
- package/docs/functions/DoubleArrayProperty.Parse.html +1 -1
- package/docs/functions/DoubleArrayProperty.Serialize.html +1 -1
- package/docs/functions/DoubleProperty.CalcOverhead.html +1 -1
- package/docs/functions/DoubleProperty.Parse.html +1 -1
- package/docs/functions/DoubleProperty.ReadValue.html +1 -1
- package/docs/functions/DoubleProperty.Serialize.html +1 -1
- package/docs/functions/DoubleProperty.SerializeValue.html +1 -1
- package/docs/functions/DynamicStructPropertyValue.read.html +1 -1
- package/docs/functions/DynamicStructPropertyValue.write.html +1 -1
- package/docs/functions/EmptySpecialProperties.Parse.html +1 -1
- package/docs/functions/EmptySpecialProperties.Serialize.html +1 -1
- package/docs/functions/EnumArrayProperty.Parse.html +1 -1
- package/docs/functions/EnumArrayProperty.Serialize.html +1 -1
- package/docs/functions/EnumProperty.CalcOverhead.html +1 -1
- package/docs/functions/EnumProperty.Parse.html +1 -1
- package/docs/functions/EnumProperty.ReadValue.html +1 -1
- package/docs/functions/EnumProperty.Serialize.html +1 -1
- package/docs/functions/EnumProperty.SerializeValue.html +1 -1
- package/docs/functions/FClientIdentityInfo.read.html +1 -1
- package/docs/functions/FClientIdentityInfo.write.html +1 -1
- package/docs/functions/FColor.read.html +1 -1
- package/docs/functions/FColor.write.html +1 -1
- package/docs/functions/FGDynamicStruct.Parse.html +1 -1
- package/docs/functions/FGDynamicStruct.Serialize.html +1 -1
- package/docs/functions/FICFrameRange.read.html +1 -1
- package/docs/functions/FICFrameRange.write.html +1 -1
- package/docs/functions/FINGPUT1BufferPixel.read.html +1 -1
- package/docs/functions/FINGPUT1BufferPixel.write.html +1 -1
- package/docs/functions/FINItemStateFileSystem.IsFINItemStateFileSystem.html +1 -1
- package/docs/functions/FINItemStateFileSystem.read.html +1 -1
- package/docs/functions/FINItemStateFileSystem.write.html +1 -1
- package/docs/functions/FINNetworkTrace.read.html +1 -1
- package/docs/functions/FINNetworkTrace.write.html +1 -1
- package/docs/functions/FLBBalancerIndexing.read.html +1 -1
- package/docs/functions/FLBBalancerIndexing.write.html +1 -1
- package/docs/functions/FLinearColor.read.html +1 -1
- package/docs/functions/FLinearColor.write.html +1 -1
- package/docs/functions/FloatArrayProperty.Parse.html +1 -1
- package/docs/functions/FloatArrayProperty.Serialize.html +1 -1
- package/docs/functions/FloatProperty.CalcOverhead.html +1 -1
- package/docs/functions/FloatProperty.Parse.html +1 -1
- package/docs/functions/FloatProperty.ReadValue.html +1 -1
- package/docs/functions/FloatProperty.Serialize.html +1 -1
- package/docs/functions/FloatProperty.SerializeValue.html +1 -1
- package/docs/functions/GUID.read.html +1 -1
- package/docs/functions/GUID.write.html +1 -1
- package/docs/functions/GUIDInfo.read.html +1 -1
- package/docs/functions/GUIDInfo.write.html +1 -1
- package/docs/functions/Int32ArrayProperty.Parse.html +1 -1
- package/docs/functions/Int32ArrayProperty.Serialize.html +1 -1
- package/docs/functions/Int32Property.CalcOverhead.html +1 -1
- package/docs/functions/Int32Property.Parse.html +1 -1
- package/docs/functions/Int32Property.ReadValue.html +1 -1
- package/docs/functions/Int32Property.Serialize.html +1 -1
- package/docs/functions/Int32Property.SerializeValue.html +1 -1
- package/docs/functions/Int32SetProperty.Parse.html +1 -1
- package/docs/functions/Int32SetProperty.Serialize.html +1 -1
- package/docs/functions/Int64ArrayProperty.Parse.html +1 -1
- package/docs/functions/Int64ArrayProperty.Serialize.html +1 -1
- package/docs/functions/Int64Property.CalcOverhead.html +1 -1
- package/docs/functions/Int64Property.Parse.html +1 -1
- package/docs/functions/Int64Property.ReadValue.html +1 -1
- package/docs/functions/Int64Property.Serialize.html +1 -1
- package/docs/functions/Int64Property.SerializeValue.html +1 -1
- package/docs/functions/Int8Property.CalcOverhead.html +1 -1
- package/docs/functions/Int8Property.Parse.html +1 -1
- package/docs/functions/Int8Property.ReadValue.html +1 -1
- package/docs/functions/Int8Property.Serialize.html +1 -1
- package/docs/functions/Int8Property.SerializeValue.html +1 -1
- package/docs/functions/Level.ReadAllObjectContents.html +1 -1
- package/docs/functions/Level.ReadAllObjectHeaders.html +1 -1
- package/docs/functions/Level.ReadLevel.html +1 -1
- package/docs/functions/Level.ReadNObjectContents.html +1 -1
- package/docs/functions/Level.ReadNObjectHeaders.html +1 -1
- package/docs/functions/Level.SerializeAllObjectContents.html +1 -1
- package/docs/functions/Level.SerializeAllObjectHeaders.html +1 -1
- package/docs/functions/Level.SerializeLevel.html +1 -1
- package/docs/functions/LevelToDestroyedActorsMap.read.html +1 -1
- package/docs/functions/LevelToDestroyedActorsMap.write.html +1 -1
- package/docs/functions/MD5Hash.read.html +1 -1
- package/docs/functions/MD5Hash.write.html +1 -1
- package/docs/functions/MapProperty.CalcOverhead.html +1 -1
- package/docs/functions/MapProperty.Parse.html +1 -1
- package/docs/functions/MapProperty.Serialize.html +1 -1
- package/docs/functions/ObjectArrayProperty.Parse.html +1 -1
- package/docs/functions/ObjectArrayProperty.Serialize.html +1 -1
- package/docs/functions/ObjectProperty.CalcOverhead.html +1 -1
- package/docs/functions/ObjectProperty.Parse.html +1 -1
- package/docs/functions/ObjectProperty.ReadValue.html +1 -1
- package/docs/functions/ObjectProperty.Serialize.html +1 -1
- package/docs/functions/ObjectProperty.SerializeValue.html +1 -1
- package/docs/functions/ObjectReference.IsEqual.html +1 -1
- package/docs/functions/ObjectReference.read.html +1 -1
- package/docs/functions/ObjectReference.write.html +1 -1
- package/docs/functions/ObjectSetProperty.Parse.html +1 -1
- package/docs/functions/ObjectSetProperty.Serialize.html +1 -1
- package/docs/functions/ObjectsListSpecialProperties.Parse.html +1 -1
- package/docs/functions/ObjectsListSpecialProperties.Serialize.html +1 -1
- package/docs/functions/PlayerSpecialProperties.Parse.html +1 -1
- package/docs/functions/PlayerSpecialProperties.Serialize.html +1 -1
- package/docs/functions/PowerLineSpecialProperties.Parse.html +1 -1
- package/docs/functions/PowerLineSpecialProperties.Serialize.html +1 -1
- package/docs/functions/PropertiesList.ParseList.html +1 -1
- package/docs/functions/PropertiesList.ParseSingleProperty.html +1 -1
- package/docs/functions/PropertiesList.SerializeList.html +1 -1
- package/docs/functions/PropertiesList.SerializeSingleProperty.html +1 -1
- package/docs/functions/SatisfactorySaveHeader.Parse.html +1 -1
- package/docs/functions/SatisfactorySaveHeader.Serialize.html +1 -1
- package/docs/functions/SaveBodyChunks.CompressDataIntoChunks.html +1 -1
- package/docs/functions/SaveBodyChunks.DecompressChunks.html +1 -1
- package/docs/functions/SaveBodyValidation.Parse.html +1 -1
- package/docs/functions/SaveBodyValidation.Serialize.html +1 -1
- package/docs/functions/SetProperty.CalcOverhead.html +1 -1
- package/docs/functions/SetProperty.Parse.html +1 -1
- package/docs/functions/SetProperty.Serialize.html +1 -1
- package/docs/functions/SoftObjectArrayProperty.Parse.html +1 -1
- package/docs/functions/SoftObjectArrayProperty.Serialize.html +1 -1
- package/docs/functions/SoftObjectProperty.CalcOverhead.html +1 -0
- package/docs/functions/SoftObjectProperty.Parse.html +1 -0
- package/docs/functions/SoftObjectProperty.ReadValue.html +1 -0
- package/docs/functions/SoftObjectProperty.Serialize.html +1 -0
- package/docs/functions/SoftObjectProperty.SerializeValue.html +1 -0
- package/docs/functions/SoftObjectReference.read.html +1 -1
- package/docs/functions/SoftObjectReference.write.html +1 -1
- package/docs/functions/SpecialDroneActionProperties.Parse.html +1 -1
- package/docs/functions/SpecialDroneActionProperties.Serialize.html +1 -1
- package/docs/functions/SpecialProperties.ParseClassSpecificSpecialProperties.html +1 -1
- package/docs/functions/SpecialProperties.SerializeClassSpecificSpecialProperties.html +1 -1
- package/docs/functions/StrArrayProperty.Parse.html +1 -1
- package/docs/functions/StrArrayProperty.Serialize.html +1 -1
- package/docs/functions/StrProperty.CalcOverhead.html +1 -1
- package/docs/functions/StrProperty.Parse.html +1 -1
- package/docs/functions/StrProperty.ReadValue.html +1 -1
- package/docs/functions/StrProperty.Serialize.html +1 -1
- package/docs/functions/StrProperty.SerializeValue.html +1 -1
- package/docs/functions/StrSetProperty.Parse.html +1 -1
- package/docs/functions/StrSetProperty.Serialize.html +1 -1
- package/docs/functions/StructArrayProperty.Parse.html +1 -1
- package/docs/functions/StructArrayProperty.Serialize.html +1 -1
- package/docs/functions/StructProperty.CalcOverhead.html +1 -1
- package/docs/functions/StructProperty.Parse.html +1 -1
- package/docs/functions/StructProperty.ParseValue.html +1 -1
- package/docs/functions/StructProperty.Serialize.html +1 -1
- package/docs/functions/StructProperty.SerializeValue.html +1 -1
- package/docs/functions/StructSetProperty.Parse.html +1 -1
- package/docs/functions/StructSetProperty.Serialize.html +1 -1
- package/docs/functions/TextArrayProperty.Parse.html +1 -1
- package/docs/functions/TextArrayProperty.Serialize.html +1 -1
- package/docs/functions/TextProperty.CalcOverhead.html +1 -1
- package/docs/functions/TextProperty.Parse.html +1 -1
- package/docs/functions/TextProperty.ReadValue.html +1 -1
- package/docs/functions/TextProperty.Serialize.html +1 -1
- package/docs/functions/TextProperty.SerializeValue.html +1 -1
- package/docs/functions/Transform.Parse.html +1 -1
- package/docs/functions/Transform.ParseF.html +1 -1
- package/docs/functions/Transform.Serialize.html +1 -1
- package/docs/functions/Transform.SerializeF.html +1 -1
- package/docs/functions/Uint32Property.CalcOverhead.html +1 -1
- package/docs/functions/Uint32Property.Parse.html +1 -1
- package/docs/functions/Uint32Property.ReadValue.html +1 -1
- package/docs/functions/Uint32Property.Serialize.html +1 -1
- package/docs/functions/Uint32Property.SerializeValue.html +1 -1
- package/docs/functions/Uint32SetProperty.Parse.html +1 -1
- package/docs/functions/Uint32SetProperty.Serialize.html +1 -1
- package/docs/functions/Uint64Property.CalcOverhead.html +1 -1
- package/docs/functions/Uint64Property.Parse.html +1 -1
- package/docs/functions/Uint64Property.ReadValue.html +1 -1
- package/docs/functions/Uint64Property.Serialize.html +1 -1
- package/docs/functions/Uint64Property.SerializeValue.html +1 -1
- package/docs/functions/Uint8Property.CalcOverhead.html +1 -1
- package/docs/functions/Uint8Property.Parse.html +1 -1
- package/docs/functions/Uint8Property.ReadValue.html +1 -1
- package/docs/functions/Uint8Property.Serialize.html +1 -1
- package/docs/functions/Uint8Property.SerializeValue.html +1 -1
- package/docs/functions/VehiclePhysicsData.Parse.html +1 -1
- package/docs/functions/VehiclePhysicsData.Serialize.html +1 -1
- package/docs/functions/VehicleSpecialProperties.Parse.html +1 -1
- package/docs/functions/VehicleSpecialProperties.Serialize.html +1 -1
- package/docs/functions/col4.ParseBGRA.html +1 -1
- package/docs/functions/col4.ParseRGBA.html +1 -1
- package/docs/functions/col4.SerializeBGRA.html +1 -1
- package/docs/functions/col4.SerializeRGBA.html +1 -1
- package/docs/functions/isArrayProperty.html +1 -1
- package/docs/functions/isBoolArrayProperty.html +1 -1
- package/docs/functions/isBoolProperty.html +1 -1
- package/docs/functions/isBuildableSubsystemSpecialProperties.html +1 -1
- package/docs/functions/isByteArrayProperty.html +1 -1
- package/docs/functions/isByteProperty.html +1 -1
- package/docs/functions/isCircuitSpecialProperties.html +1 -1
- package/docs/functions/isConveyorChainActorSpecialProperties.html +1 -1
- package/docs/functions/isConveyorSpecialProperties.html +1 -1
- package/docs/functions/isDoubleArrayProperty.html +1 -1
- package/docs/functions/isDoubleProperty.html +1 -1
- package/docs/functions/isEmptySpecialProperties.html +1 -1
- package/docs/functions/isEnumArrayProperty.html +1 -1
- package/docs/functions/isEnumProperty.html +1 -1
- package/docs/functions/isFloatArrayProperty.html +1 -1
- package/docs/functions/isFloatProperty.html +1 -1
- package/docs/functions/isInt32ArrayProperty.html +1 -1
- package/docs/functions/isInt32Property.html +1 -1
- package/docs/functions/isInt32SetProperty.html +1 -1
- package/docs/functions/isInt64ArrayProperty.html +1 -1
- package/docs/functions/isInt64Property.html +1 -1
- package/docs/functions/isInt8Property.html +1 -1
- package/docs/functions/isMapProperty.html +1 -1
- package/docs/functions/isObjectArrayProperty.html +1 -1
- package/docs/functions/isObjectProperty.html +1 -1
- package/docs/functions/isObjectSetProperty.html +1 -1
- package/docs/functions/isObjectsListSpecialProperties.html +1 -1
- package/docs/functions/isPlayerSpecialProperties.html +1 -1
- package/docs/functions/isPowerLineSpecialProperties.html +1 -1
- package/docs/functions/isSaveComponent.html +1 -1
- package/docs/functions/isSaveEntity.html +1 -1
- package/docs/functions/isSetProperty.html +1 -1
- package/docs/functions/isSoftObjectArrayProperty.html +1 -1
- package/docs/functions/isSoftObjectProperty.html +1 -0
- package/docs/functions/isSpecialDroneActionProperties.html +1 -1
- package/docs/functions/isStrArrayProperty.html +1 -1
- package/docs/functions/isStrProperty.html +1 -1
- package/docs/functions/isStrSetProperty.html +1 -1
- package/docs/functions/isStructArrayProperty.html +1 -1
- package/docs/functions/isStructProperty.html +1 -1
- package/docs/functions/isStructSetProperty.html +1 -1
- package/docs/functions/isTextArrayProperty.html +1 -1
- package/docs/functions/isTextProperty.html +1 -1
- package/docs/functions/isUInt64Property.html +1 -1
- package/docs/functions/isUint32Property.html +1 -1
- package/docs/functions/isUint32SetProperty.html +1 -1
- package/docs/functions/isUint8Property.html +1 -1
- package/docs/functions/isVehicleSpecialProperties.html +1 -1
- package/docs/functions/vec2.Parse.html +1 -1
- package/docs/functions/vec2.ParseF.html +1 -1
- package/docs/functions/vec2.Serialize.html +1 -1
- package/docs/functions/vec2.SerializeF.html +1 -1
- package/docs/functions/vec3.Parse.html +1 -1
- package/docs/functions/vec3.ParseF.html +1 -1
- package/docs/functions/vec3.ParseInt.html +1 -1
- package/docs/functions/vec3.Serialize.html +1 -1
- package/docs/functions/vec3.SerializeF.html +1 -1
- package/docs/functions/vec3.SerializeInt.html +1 -1
- package/docs/functions/vec3.add.html +1 -1
- package/docs/functions/vec3.length.html +1 -1
- package/docs/functions/vec3.mult.html +1 -1
- package/docs/functions/vec3.norm.html +1 -1
- package/docs/functions/vec3.sub.html +1 -1
- package/docs/functions/vec4.Parse.html +1 -1
- package/docs/functions/vec4.ParseF.html +1 -1
- package/docs/functions/vec4.Serialize.html +1 -1
- package/docs/functions/vec4.SerializeF.html +1 -1
- package/docs/index.html +3 -2
- package/docs/interfaces/Blueprint.html +2 -2
- package/docs/interfaces/BlueprintConfig-1.html +2 -2
- package/docs/interfaces/SaveComponentHeader.html +2 -2
- package/docs/interfaces/SaveEntityHeader.html +2 -2
- package/docs/interfaces/SaveObjectHeader.html +2 -2
- package/docs/modules/AbstractBaseProperty.html +1 -1
- package/docs/modules/ArrayProperty.html +1 -1
- package/docs/modules/BlueprintConfig.html +1 -1
- package/docs/modules/BlueprintHeader.html +1 -1
- package/docs/modules/BoolArrayProperty.html +1 -1
- package/docs/modules/BoolProperty.html +1 -1
- package/docs/modules/BuildableSubsystemSpecialProperties.html +1 -1
- package/docs/modules/BuildableTypeInstance.html +1 -1
- package/docs/modules/ByteArrayProperty.html +1 -1
- package/docs/modules/ByteProperty.html +1 -1
- package/docs/modules/CircuitSpecialProperties.html +1 -1
- package/docs/modules/ConveyorChainActorSpecialProperties.html +1 -1
- package/docs/modules/ConveyorSpecialProperties.html +1 -1
- package/docs/modules/DoubleArrayProperty.html +1 -1
- package/docs/modules/DoubleProperty.html +1 -1
- package/docs/modules/DynamicStructPropertyValue.html +1 -1
- package/docs/modules/EmptySpecialProperties.html +1 -1
- package/docs/modules/EnumArrayProperty.html +1 -1
- package/docs/modules/EnumProperty.html +1 -1
- package/docs/modules/FClientIdentityInfo.html +1 -1
- package/docs/modules/FColor.html +1 -1
- package/docs/modules/FGDynamicStruct.html +1 -1
- package/docs/modules/FICFrameRange.html +1 -1
- package/docs/modules/FINGPUT1BufferPixel.html +1 -1
- package/docs/modules/FINItemStateFileSystem.html +1 -1
- package/docs/modules/FINNetworkTrace.html +1 -1
- package/docs/modules/FLBBalancerIndexing.html +1 -1
- package/docs/modules/FLinearColor.html +1 -1
- package/docs/modules/FloatArrayProperty.html +1 -1
- package/docs/modules/FloatProperty.html +1 -1
- package/docs/modules/GUID.html +1 -1
- package/docs/modules/GUIDInfo.html +1 -1
- package/docs/modules/Int32ArrayProperty.html +1 -1
- package/docs/modules/Int32Property.html +1 -1
- package/docs/modules/Int32SetProperty.html +1 -1
- package/docs/modules/Int64ArrayProperty.html +1 -1
- package/docs/modules/Int64Property.html +1 -1
- package/docs/modules/Int8Property.html +1 -1
- package/docs/modules/Level.html +1 -1
- package/docs/modules/LevelToDestroyedActorsMap.html +1 -1
- package/docs/modules/MD5Hash.html +1 -1
- package/docs/modules/MapProperty.html +1 -1
- package/docs/modules/ObjectArrayProperty.html +1 -1
- package/docs/modules/ObjectProperty.html +1 -1
- package/docs/modules/ObjectReference.html +1 -1
- package/docs/modules/ObjectSetProperty.html +1 -1
- package/docs/modules/ObjectsListSpecialProperties.html +1 -1
- package/docs/modules/PlayerSpecialProperties.html +1 -1
- package/docs/modules/PowerLineSpecialProperties.html +1 -1
- package/docs/modules/PropertiesList.html +1 -1
- package/docs/modules/SatisfactorySaveHeader.html +1 -1
- package/docs/modules/SaveBodyChunks.html +1 -1
- package/docs/modules/SaveBodyValidation.html +1 -1
- package/docs/modules/SetProperty.html +1 -1
- package/docs/modules/SoftObjectArrayProperty.html +1 -1
- package/docs/modules/SoftObjectProperty.html +6 -0
- package/docs/modules/SoftObjectReference.html +1 -1
- package/docs/modules/SpecialDroneActionProperties.html +1 -1
- package/docs/modules/SpecialProperties.html +1 -1
- package/docs/modules/StrArrayProperty.html +1 -1
- package/docs/modules/StrProperty.html +1 -1
- package/docs/modules/StrSetProperty.html +1 -1
- package/docs/modules/StructArrayProperty.html +1 -1
- package/docs/modules/StructProperty.html +1 -1
- package/docs/modules/StructSetProperty.html +1 -1
- package/docs/modules/TextArrayProperty.html +1 -1
- package/docs/modules/TextProperty.html +1 -1
- package/docs/modules/Transform.html +1 -1
- package/docs/modules/Uint32Property.html +1 -1
- package/docs/modules/Uint32SetProperty.html +1 -1
- package/docs/modules/Uint64Property.html +1 -1
- package/docs/modules/Uint8Property.html +1 -1
- package/docs/modules/VehiclePhysicsData.html +1 -1
- package/docs/modules/VehicleSpecialProperties.html +1 -1
- package/docs/modules/col4.html +1 -1
- package/docs/modules/vec2.html +1 -1
- package/docs/modules/vec3.html +1 -1
- package/docs/modules/vec4.html +1 -1
- package/docs/modules.html +3 -0
- package/docs/types/AbstractBaseProperty-1.html +1 -1
- package/docs/types/ArrayProperty.AvailableArrayPropertyTypes.html +1 -1
- package/docs/types/ArrayPropertyStructValueFields.html +1 -1
- package/docs/types/BasicMultipleStructPropertyValue.html +1 -1
- package/docs/types/BasicStructPropertyValue.html +1 -1
- package/docs/types/BlueprintHeader-1.html +1 -1
- package/docs/types/BlueprintReaderWriterContext.html +1 -1
- package/docs/types/BoolArrayProperty-1.html +1 -1
- package/docs/types/BoolProperty-1.html +1 -1
- package/docs/types/BoxStructPropertyValue.html +1 -1
- package/docs/types/BuildableSubsystemSpecialProperties-1.html +1 -1
- package/docs/types/BuildableTypeInstance-1.html +1 -1
- package/docs/types/ByteArrayProperty-1.html +1 -1
- package/docs/types/ByteProperty-1.html +1 -1
- package/docs/types/BytePropertyValue.html +1 -1
- package/docs/types/ChunkCompressionInfo.html +1 -1
- package/docs/types/ChunkSummary.html +1 -1
- package/docs/types/CircuitSpecialProperties-1.html +1 -1
- package/docs/types/ConveyorChainActorSpecialProperties-1.html +1 -1
- package/docs/types/ConveyorChainSegmentSpecialProperties.html +1 -1
- package/docs/types/ConveyorItemSpecialProperties.html +1 -1
- package/docs/types/ConveyorSpecialProperties-1.html +1 -1
- package/docs/types/DoubleArrayProperty-1.html +1 -1
- package/docs/types/DoubleProperty-1.html +1 -1
- package/docs/types/DynamicStructPropertyValue-1.html +1 -1
- package/docs/types/EmptySpecialProperties-1.html +1 -1
- package/docs/types/EnumArrayProperty-1.html +1 -1
- package/docs/types/EnumProperty-1.html +1 -1
- package/docs/types/FClientIdentityInfo-1.html +1 -1
- package/docs/types/FColor-1.html +1 -1
- package/docs/types/FGDynamicStruct-1.html +1 -1
- package/docs/types/FICFrameRange-1.html +1 -1
- package/docs/types/FICFrameRangeStructPropertyValue.html +1 -1
- package/docs/types/FINGPUT1BufferPixel-1.html +1 -1
- package/docs/types/FINItemStateFileSystem-1.html +1 -1
- package/docs/types/FINNetworkTrace-1.html +1 -1
- package/docs/types/FLBBalancerIndexing-1.html +1 -1
- package/docs/types/FLinearColor-1.html +1 -1
- package/docs/types/FloatArrayProperty-1.html +1 -1
- package/docs/types/FloatProperty-1.html +1 -1
- package/docs/types/GENERIC_MAP_KEY_TYPE.html +1 -1
- package/docs/types/GENERIC_MAP_VALUE_TYPE.html +1 -1
- package/docs/types/GENERIC_STRUCT_PROPERTY_VALUE.html +1 -1
- package/docs/types/GUID-1.html +1 -1
- package/docs/types/GUIDInfo-1.html +1 -1
- package/docs/types/Grids.html +1 -1
- package/docs/types/Int32ArrayProperty-1.html +1 -1
- package/docs/types/Int32Property-1.html +1 -1
- package/docs/types/Int32SetProperty-1.html +1 -1
- package/docs/types/Int64ArrayProperty-1.html +1 -1
- package/docs/types/Int64Property-1.html +1 -1
- package/docs/types/Int8Property-1.html +1 -1
- package/docs/types/InventoryItemStructPropertyValue.html +1 -1
- package/docs/types/Level-1.html +1 -1
- package/docs/types/LevelToDestroyedActorsMap-1.html +1 -1
- package/docs/types/Levels.html +1 -1
- package/docs/types/MAP_STRUCT_PROXY.html +1 -1
- package/docs/types/MD5Hash-1.html +1 -1
- package/docs/types/MapProperty-1.html +1 -1
- package/docs/types/ModData.html +1 -1
- package/docs/types/ObjectArrayProperty-1.html +1 -1
- package/docs/types/ObjectProperty-1.html +1 -1
- package/docs/types/ObjectReference-1.html +1 -1
- package/docs/types/ObjectSetProperty-1.html +1 -1
- package/docs/types/ObjectsListSpecialProperties-1.html +1 -1
- package/docs/types/PlayerSpecialProperties-1.html +1 -1
- package/docs/types/PowerLineSpecialProperties-1.html +1 -1
- package/docs/types/PropertiesMap.html +1 -1
- package/docs/types/RailroadTrackPositionStructPropertyValue.html +1 -1
- package/docs/types/ReaderWriterContext.html +1 -1
- package/docs/types/RoughSaveVersion.html +1 -1
- package/docs/types/SatisfactoryModMetadata.html +1 -1
- package/docs/types/SatisfactorySaveHeader-1.html +1 -1
- package/docs/types/SaveBodyChunks-1.html +1 -1
- package/docs/types/SaveBodyValidation-1.html +1 -1
- package/docs/types/SaveReaderWriterContext.html +1 -1
- package/docs/types/SetProperty.AvailableSetPropertyTypes.html +1 -1
- package/docs/types/SoftObjectArrayProperty-1.html +1 -1
- package/docs/types/SoftObjectProperty-1.html +1 -0
- package/docs/types/SoftObjectReference-1.html +1 -1
- package/docs/types/SpecialDroneAction.html +1 -1
- package/docs/types/SpecialDroneActionProperties-1.html +1 -1
- package/docs/types/SpecialProperties.AvailableSpecialPropertiesTypes.html +1 -1
- package/docs/types/StrArrayProperty-1.html +1 -1
- package/docs/types/StrProperty-1.html +1 -1
- package/docs/types/StrSetProperty-1.html +1 -1
- package/docs/types/StructArrayProperty-1.html +1 -1
- package/docs/types/StructProperty-1.html +1 -1
- package/docs/types/StructSetProperty-1.html +1 -1
- package/docs/types/TextArrayProperty-1.html +1 -1
- package/docs/types/TextProperty-1.html +1 -1
- package/docs/types/TextPropertyValue.html +1 -1
- package/docs/types/Transform-1.html +1 -1
- package/docs/types/Uint32Property-1.html +1 -1
- package/docs/types/Uint32SetProperty-1.html +1 -1
- package/docs/types/Uint64Property-1.html +1 -1
- package/docs/types/Uint8Property-1.html +1 -1
- package/docs/types/VehiclePhysicsData-1.html +1 -1
- package/docs/types/VehicleSpecialProperties-1.html +1 -1
- package/docs/types/col4-1.html +1 -1
- package/docs/types/vec2-1.html +1 -1
- package/docs/types/vec3-1.html +1 -1
- package/docs/types/vec4-1.html +1 -1
- package/docs/variables/DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE.html +1 -1
- package/docs/variables/EDIT.html +1 -1
- package/docs/variables/FINItemStateFileSystem.ExactStructReference.html +1 -1
- package/docs/variables/SaveBodyChunks.HEADER_V1.html +1 -1
- package/docs/variables/SaveBodyChunks.HEADER_V2.html +1 -1
- package/jsr.json +1 -1
- package/package.json +4 -3
- package/tsconfig.test.json +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
-
Make sure to use the same version
|
|
2
|
+
Make sure to use the same version for parsing and serializing saves, if possible.
|
|
3
3
|
|
|
4
|
-
### [3.3.1] (
|
|
5
|
-
####
|
|
4
|
+
### [3.3.1] (2026-02-08)
|
|
5
|
+
#### Quick Bugfixes
|
|
6
|
+
* Fix parsing a bit more of Mod FicsItNetworks.
|
|
7
|
+
* Fixed a bug where the parser would expect a list of unresolved save data at the end of the save, even though there is none.
|
|
8
|
+
* Fix exporting SoftObjectProperty
|
|
9
|
+
|
|
10
|
+
### [3.3.0] (2025-12-17)
|
|
11
|
+
#### Changed Behavior on Errors! see ([README.md](https://github.com/etothepii4/satisfactory-file-parser?tab=readme-ov-file#error-handling-from-331-on))
|
|
6
12
|
* The parser will no longer throw errors on encountering unknown properties or objects. Only if you explicitly specify `throwErrors: true` when calling the parser. Major errors on the overall save structure still get thrown.
|
|
7
13
|
* Made `AbstractBaseProperty` include `rawBytes`, in case properties can not be parsed. When you specify `throwErrors: false` when calling the parser, unparsed property data lands in there.
|
|
8
14
|
#### Bugfix
|
package/README.md
CHANGED
|
@@ -52,6 +52,8 @@ If however a Mod should not be working or have just objects with a lot of traili
|
|
|
52
52
|
Some explicitly tested mods include:
|
|
53
53
|
Ficsit-Cam, Structural Solutions, Linear Motion, Container Screens, Conveyor Wall Hole, X3-Signs, X3-Roads
|
|
54
54
|
|
|
55
|
+
⚠️ Exception: `Ficsit Networks` is more complex and not everything is mapped out yet. The data is saved as raw bytes array. if you want, i can have a look at your save.
|
|
56
|
+
|
|
55
57
|
# Reading a Save
|
|
56
58
|
Reading a Save in Memory.
|
|
57
59
|
|
|
@@ -253,8 +255,8 @@ const firstStack = inventoryStacks.values[0];
|
|
|
253
255
|
modifyObjects(inventory);
|
|
254
256
|
```
|
|
255
257
|
|
|
256
|
-
# Error Handling (From 3.3.
|
|
257
|
-
From version `3.3.
|
|
258
|
+
# Error Handling (From 3.3.0 on)
|
|
259
|
+
From version `3.3.0`, the parser will no longer throw every error by default.
|
|
258
260
|
Only if you explicitly specify `throwErrors: true` when calling the parser on saves/blueprints, the parser will immediately abort when unparseable data is encountered.
|
|
259
261
|
Else, `throwErrors: false` is the default.
|
|
260
262
|
|
package/build/index.d.ts
CHANGED
|
@@ -49,6 +49,7 @@ export * from './parser/satisfactory/types/property/generic/SetProperty/SetPrope
|
|
|
49
49
|
export * from './parser/satisfactory/types/property/generic/SetProperty/StrSetProperty';
|
|
50
50
|
export * from './parser/satisfactory/types/property/generic/SetProperty/StructSetProperty';
|
|
51
51
|
export * from './parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty';
|
|
52
|
+
export * from './parser/satisfactory/types/property/generic/SoftObjectProperty';
|
|
52
53
|
export * from './parser/satisfactory/types/property/generic/StrProperty';
|
|
53
54
|
export * from './parser/satisfactory/types/property/generic/StructProperty';
|
|
54
55
|
export * from './parser/satisfactory/types/property/generic/TextProperty';
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -66,6 +66,7 @@ __exportStar(require("./parser/satisfactory/types/property/generic/SetProperty/S
|
|
|
66
66
|
__exportStar(require("./parser/satisfactory/types/property/generic/SetProperty/StrSetProperty"), exports);
|
|
67
67
|
__exportStar(require("./parser/satisfactory/types/property/generic/SetProperty/StructSetProperty"), exports);
|
|
68
68
|
__exportStar(require("./parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty"), exports);
|
|
69
|
+
__exportStar(require("./parser/satisfactory/types/property/generic/SoftObjectProperty"), exports);
|
|
69
70
|
__exportStar(require("./parser/satisfactory/types/property/generic/StrProperty"), exports);
|
|
70
71
|
__exportStar(require("./parser/satisfactory/types/property/generic/StructProperty"), exports);
|
|
71
72
|
__exportStar(require("./parser/satisfactory/types/property/generic/TextProperty"), exports);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+DAA6C;AAC7C,2DAAyC;AACzC,kEAAgD;AAChD,kEAAgD;AAChD,mFAAiE;AACjE,2FAAyE;AACzE,mFAAiE;AACjE,2FAAyE;AACzE,kFAAgE;AAChE,yFAAuE;AACvE,mEAAiD;AACjD,2FAAyE;AACzE,+EAA6D;AAC7D,sFAAoE;AACpE,8EAA4D;AAC5D,iFAA+D;AAC/D,8EAA4D;AAC5D,wEAAsD;AACtD,oFAAkE;AAClE,iFAA+D;AAC/D,iFAA+D;AAC/D,oGAAkF;AAClF,2GAAyF;AACzF,+GAA6F;AAC7F,+GAA6F;AAC7F,iHAA+F;AAC/F,+GAA6F;AAC7F,gHAA8F;AAC9F,gHAA8F;AAC9F,gHAA8F;AAC9F,iHAA+F;AAC/F,qHAAmG;AACnG,8GAA4F;AAC5F,iHAA+F;AAC/F,+GAA6F;AAC7F,4FAA0E;AAC1E,4FAA0E;AAC1E,8FAA4E;AAC5E,4FAA0E;AAC1E,6FAA2E;AAC3E,6FAA2E;AAC3E,6FAA2E;AAC3E,4FAA0E;AAC1E,2FAAyE;AACzE,8FAA4E;AAC5E,4GAA0F;AAC1F,6GAA2F;AAC3F,uGAAqF;AACrF,0GAAwF;AACxF,6GAA2F;AAC3F,6GAA2F;AAC3F,2FAAyE;AACzE,8FAA4E;AAC5E,4FAA0E;AAC1E,8FAA4E;AAC5E,8FAA4E;AAC5E,6FAA2E;AAC3E,sFAAoE;AACpE,mHAAiG;AACjG,wGAAsF;AACtF,mHAAiG;AACjG,yGAAuF;AACvF,sGAAoF;AACpF,4GAA0F;AAC1F,uGAAqF;AACrF,0GAAwF;AACxF,uHAAqG;AACrG,4GAA0F;AAC1F,iGAA+E;AAC/E,wGAAsF;AACtF,iGAA+E;AAC/E,oFAAkE;AAClE,0FAAwE;AACxE,kFAAgE;AAChE,2EAAyD;AACzD,iGAA+E;AAC/E,sFAAoE;AACpE,+EAA6D;AAC7D,8EAA4D;AAC5D,mGAAiF;AACjF,8GAA4F;AAC5F,iHAA+F;AAC/F,0GAAwF;AACxF,oHAAkG;AAClG,sFAAoE;AACpE,yFAAuE;AACvE,0FAAwE;AACxE,gFAA8D;AAC9D,2EAAyD;AACzD,2EAAyD;AACzD,2EAAyD;AACzD,yFAAuE;AAGvE,qFAA0G;AAAjG,yHAAA,qBAAqB,OAAA;AAAE,mHAAA,eAAe,OAAA;AAC/C,yEAAuD;AACvD,sEAAoE;AAA3D,yGAAA,UAAU,OAAA;AACnB,sGAAkG;AAAzF,yIAAA,yBAAyB,OAAA;AAClC,8FAAqF;AAA5E,4HAAA,gBAAgB,OAAA;AAGzB,8DAA4C;AAG5C,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,0FAAuF;AAA9E,8HAAA,oBAAoB,OAAA;AAG7B,4EAA0D","sourcesContent":["// types & classes for convenience\nexport * from './parser/byte/alignment.enum';\nexport * from './parser/context/context';\nexport * from './parser/context/context-reader';\nexport * from './parser/context/context-writer';\nexport * from './parser/satisfactory/blueprint/blueprint-config';\nexport * from './parser/satisfactory/blueprint/blueprint-config-version';\nexport * from './parser/satisfactory/blueprint/blueprint-header';\nexport * from './parser/satisfactory/blueprint/blueprint-header-version';\nexport * from './parser/satisfactory/blueprint/blueprint.types';\nexport * from './parser/satisfactory/save/factory-game-custom-version';\nexport * from './parser/satisfactory/save/level';\nexport * from './parser/satisfactory/save/level-to-destroyed-actors-map';\nexport * from './parser/satisfactory/save/satisfactory-save';\nexport * from './parser/satisfactory/save/satisfactory-save-header';\nexport * from './parser/satisfactory/save/save-body-chunks';\nexport * from './parser/satisfactory/save/save-custom-version';\nexport * from './parser/satisfactory/save/save-header-type';\nexport * from './parser/satisfactory/save/save.types';\nexport * from './parser/satisfactory/types/objects/SaveComponent';\nexport * from './parser/satisfactory/types/objects/SaveEntity';\nexport * from './parser/satisfactory/types/objects/SaveObject';\nexport * from './parser/satisfactory/types/property/generic/AbstractBaseProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/ArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/BoolArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/ByteArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/DoubleArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/EnumArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/FloatArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/Int32ArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/Int64ArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/ObjectArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/SoftObjectArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/StrArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/StructArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/TextArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/BoolProperty';\nexport * from './parser/satisfactory/types/property/generic/ByteProperty';\nexport * from './parser/satisfactory/types/property/generic/DoubleProperty';\nexport * from './parser/satisfactory/types/property/generic/EnumProperty';\nexport * from './parser/satisfactory/types/property/generic/FloatProperty';\nexport * from './parser/satisfactory/types/property/generic/Int32Property';\nexport * from './parser/satisfactory/types/property/generic/Int64Property';\nexport * from './parser/satisfactory/types/property/generic/Int8Property';\nexport * from './parser/satisfactory/types/property/generic/MapProperty';\nexport * from './parser/satisfactory/types/property/generic/ObjectProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/Int32SetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/ObjectSetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/SetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/StrSetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/StructSetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty';\nexport * from './parser/satisfactory/types/property/generic/StrProperty';\nexport * from './parser/satisfactory/types/property/generic/StructProperty';\nexport * from './parser/satisfactory/types/property/generic/TextProperty';\nexport * from './parser/satisfactory/types/property/generic/Uint32Property';\nexport * from './parser/satisfactory/types/property/generic/Uint64Property';\nexport * from './parser/satisfactory/types/property/generic/Uint8Property';\nexport * from './parser/satisfactory/types/property/PropertiesList';\nexport * from './parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/CircuitSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/ConveyorChainActorSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/ConveyorSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/EmptySpecialProperties';\nexport * from './parser/satisfactory/types/property/special/ObjectsListSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/PlayerSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/PowerLineSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/runtime-buildable-instance-data-version';\nexport * from './parser/satisfactory/types/property/special/SpecialDroneActionProperties';\nexport * from './parser/satisfactory/types/property/special/SpecialProperties';\nexport * from './parser/satisfactory/types/property/special/VehicleSpecialProperties';\nexport * from './parser/satisfactory/types/structs/binary/FClientIdentityInfo';\nexport * from './parser/satisfactory/types/structs/binary/FColor';\nexport * from './parser/satisfactory/types/structs/binary/FLinearColor';\nexport * from './parser/satisfactory/types/structs/binary/GUID';\nexport * from './parser/satisfactory/types/structs/col4';\nexport * from './parser/satisfactory/types/structs/DynamicStructPropertyValue';\nexport * from './parser/satisfactory/types/structs/FGDynamicStruct';\nexport * from './parser/satisfactory/types/structs/GUIDInfo';\nexport * from './parser/satisfactory/types/structs/MD5Hash';\nexport * from './parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange';\nexport * from './parser/satisfactory/types/structs/mods/FicsItNetworks/FINGPUT1BufferPixel';\nexport * from './parser/satisfactory/types/structs/mods/FicsItNetworks/FINItemStateFileSystem';\nexport * from './parser/satisfactory/types/structs/mods/FicsItNetworks/FINNetworkTrace';\nexport * from './parser/satisfactory/types/structs/mods/ModularLoadBalancers/FLBBalancerIndexing';\nexport * from './parser/satisfactory/types/structs/ObjectReference';\nexport * from './parser/satisfactory/types/structs/SaveBodyValidation';\nexport * from './parser/satisfactory/types/structs/SoftObjectReference';\nexport * from './parser/satisfactory/types/structs/Transform';\nexport * from './parser/satisfactory/types/structs/vec2';\nexport * from './parser/satisfactory/types/structs/vec3';\nexport * from './parser/satisfactory/types/structs/vec4';\nexport * from './parser/satisfactory/types/structs/VehiclePhysicsData';\n\n// should better be removed in a future update to prevent shenanigans.\nexport { BlueprintConfigReader, BlueprintReader } from './parser/satisfactory/blueprint/blueprint-reader';\nexport * from './parser/satisfactory/save/save-reader';\nexport { SaveWriter } from './parser/satisfactory/save/save-writer';\nexport { SaveStreamJsonStringifier } from './parser/stream/reworked/save-stream-json-stringifier';\nexport { SaveStreamWriter } from './parser/stream/reworked/save-stream-writer.class';\n\n// errors\nexport * from './parser/error/parser.error';\n\n// facade\nexport { Parser } from './parser/parser';\nexport { ReadableStreamParser } from './parser/stream/reworked/readable-stream-parser';\n\n// edit\nexport * from './parser/satisfactory/edit/edit-constants';\n\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+DAA6C;AAC7C,2DAAyC;AACzC,kEAAgD;AAChD,kEAAgD;AAChD,mFAAiE;AACjE,2FAAyE;AACzE,mFAAiE;AACjE,2FAAyE;AACzE,kFAAgE;AAChE,yFAAuE;AACvE,mEAAiD;AACjD,2FAAyE;AACzE,+EAA6D;AAC7D,sFAAoE;AACpE,8EAA4D;AAC5D,iFAA+D;AAC/D,8EAA4D;AAC5D,wEAAsD;AACtD,oFAAkE;AAClE,iFAA+D;AAC/D,iFAA+D;AAC/D,oGAAkF;AAClF,2GAAyF;AACzF,+GAA6F;AAC7F,+GAA6F;AAC7F,iHAA+F;AAC/F,+GAA6F;AAC7F,gHAA8F;AAC9F,gHAA8F;AAC9F,gHAA8F;AAC9F,iHAA+F;AAC/F,qHAAmG;AACnG,8GAA4F;AAC5F,iHAA+F;AAC/F,+GAA6F;AAC7F,4FAA0E;AAC1E,4FAA0E;AAC1E,8FAA4E;AAC5E,4FAA0E;AAC1E,6FAA2E;AAC3E,6FAA2E;AAC3E,6FAA2E;AAC3E,4FAA0E;AAC1E,2FAAyE;AACzE,8FAA4E;AAC5E,4GAA0F;AAC1F,6GAA2F;AAC3F,uGAAqF;AACrF,0GAAwF;AACxF,6GAA2F;AAC3F,6GAA2F;AAC3F,kGAAgF;AAChF,2FAAyE;AACzE,8FAA4E;AAC5E,4FAA0E;AAC1E,8FAA4E;AAC5E,8FAA4E;AAC5E,6FAA2E;AAC3E,sFAAoE;AACpE,mHAAiG;AACjG,wGAAsF;AACtF,mHAAiG;AACjG,yGAAuF;AACvF,sGAAoF;AACpF,4GAA0F;AAC1F,uGAAqF;AACrF,0GAAwF;AACxF,uHAAqG;AACrG,4GAA0F;AAC1F,iGAA+E;AAC/E,wGAAsF;AACtF,iGAA+E;AAC/E,oFAAkE;AAClE,0FAAwE;AACxE,kFAAgE;AAChE,2EAAyD;AACzD,iGAA+E;AAC/E,sFAAoE;AACpE,+EAA6D;AAC7D,8EAA4D;AAC5D,mGAAiF;AACjF,8GAA4F;AAC5F,iHAA+F;AAC/F,0GAAwF;AACxF,oHAAkG;AAClG,sFAAoE;AACpE,yFAAuE;AACvE,0FAAwE;AACxE,gFAA8D;AAC9D,2EAAyD;AACzD,2EAAyD;AACzD,2EAAyD;AACzD,yFAAuE;AAGvE,qFAA0G;AAAjG,yHAAA,qBAAqB,OAAA;AAAE,mHAAA,eAAe,OAAA;AAC/C,yEAAuD;AACvD,sEAAoE;AAA3D,yGAAA,UAAU,OAAA;AACnB,sGAAkG;AAAzF,yIAAA,yBAAyB,OAAA;AAClC,8FAAqF;AAA5E,4HAAA,gBAAgB,OAAA;AAGzB,8DAA4C;AAG5C,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,0FAAuF;AAA9E,8HAAA,oBAAoB,OAAA;AAG7B,4EAA0D","sourcesContent":["// types & classes for convenience\nexport * from './parser/byte/alignment.enum';\nexport * from './parser/context/context';\nexport * from './parser/context/context-reader';\nexport * from './parser/context/context-writer';\nexport * from './parser/satisfactory/blueprint/blueprint-config';\nexport * from './parser/satisfactory/blueprint/blueprint-config-version';\nexport * from './parser/satisfactory/blueprint/blueprint-header';\nexport * from './parser/satisfactory/blueprint/blueprint-header-version';\nexport * from './parser/satisfactory/blueprint/blueprint.types';\nexport * from './parser/satisfactory/save/factory-game-custom-version';\nexport * from './parser/satisfactory/save/level';\nexport * from './parser/satisfactory/save/level-to-destroyed-actors-map';\nexport * from './parser/satisfactory/save/satisfactory-save';\nexport * from './parser/satisfactory/save/satisfactory-save-header';\nexport * from './parser/satisfactory/save/save-body-chunks';\nexport * from './parser/satisfactory/save/save-custom-version';\nexport * from './parser/satisfactory/save/save-header-type';\nexport * from './parser/satisfactory/save/save.types';\nexport * from './parser/satisfactory/types/objects/SaveComponent';\nexport * from './parser/satisfactory/types/objects/SaveEntity';\nexport * from './parser/satisfactory/types/objects/SaveObject';\nexport * from './parser/satisfactory/types/property/generic/AbstractBaseProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/ArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/BoolArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/ByteArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/DoubleArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/EnumArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/FloatArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/Int32ArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/Int64ArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/ObjectArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/SoftObjectArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/StrArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/StructArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/ArrayProperty/TextArrayProperty';\nexport * from './parser/satisfactory/types/property/generic/BoolProperty';\nexport * from './parser/satisfactory/types/property/generic/ByteProperty';\nexport * from './parser/satisfactory/types/property/generic/DoubleProperty';\nexport * from './parser/satisfactory/types/property/generic/EnumProperty';\nexport * from './parser/satisfactory/types/property/generic/FloatProperty';\nexport * from './parser/satisfactory/types/property/generic/Int32Property';\nexport * from './parser/satisfactory/types/property/generic/Int64Property';\nexport * from './parser/satisfactory/types/property/generic/Int8Property';\nexport * from './parser/satisfactory/types/property/generic/MapProperty';\nexport * from './parser/satisfactory/types/property/generic/ObjectProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/Int32SetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/ObjectSetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/SetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/StrSetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/StructSetProperty';\nexport * from './parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty';\nexport * from './parser/satisfactory/types/property/generic/SoftObjectProperty';\nexport * from './parser/satisfactory/types/property/generic/StrProperty';\nexport * from './parser/satisfactory/types/property/generic/StructProperty';\nexport * from './parser/satisfactory/types/property/generic/TextProperty';\nexport * from './parser/satisfactory/types/property/generic/Uint32Property';\nexport * from './parser/satisfactory/types/property/generic/Uint64Property';\nexport * from './parser/satisfactory/types/property/generic/Uint8Property';\nexport * from './parser/satisfactory/types/property/PropertiesList';\nexport * from './parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/CircuitSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/ConveyorChainActorSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/ConveyorSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/EmptySpecialProperties';\nexport * from './parser/satisfactory/types/property/special/ObjectsListSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/PlayerSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/PowerLineSpecialProperties';\nexport * from './parser/satisfactory/types/property/special/runtime-buildable-instance-data-version';\nexport * from './parser/satisfactory/types/property/special/SpecialDroneActionProperties';\nexport * from './parser/satisfactory/types/property/special/SpecialProperties';\nexport * from './parser/satisfactory/types/property/special/VehicleSpecialProperties';\nexport * from './parser/satisfactory/types/structs/binary/FClientIdentityInfo';\nexport * from './parser/satisfactory/types/structs/binary/FColor';\nexport * from './parser/satisfactory/types/structs/binary/FLinearColor';\nexport * from './parser/satisfactory/types/structs/binary/GUID';\nexport * from './parser/satisfactory/types/structs/col4';\nexport * from './parser/satisfactory/types/structs/DynamicStructPropertyValue';\nexport * from './parser/satisfactory/types/structs/FGDynamicStruct';\nexport * from './parser/satisfactory/types/structs/GUIDInfo';\nexport * from './parser/satisfactory/types/structs/MD5Hash';\nexport * from './parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange';\nexport * from './parser/satisfactory/types/structs/mods/FicsItNetworks/FINGPUT1BufferPixel';\nexport * from './parser/satisfactory/types/structs/mods/FicsItNetworks/FINItemStateFileSystem';\nexport * from './parser/satisfactory/types/structs/mods/FicsItNetworks/FINNetworkTrace';\nexport * from './parser/satisfactory/types/structs/mods/ModularLoadBalancers/FLBBalancerIndexing';\nexport * from './parser/satisfactory/types/structs/ObjectReference';\nexport * from './parser/satisfactory/types/structs/SaveBodyValidation';\nexport * from './parser/satisfactory/types/structs/SoftObjectReference';\nexport * from './parser/satisfactory/types/structs/Transform';\nexport * from './parser/satisfactory/types/structs/vec2';\nexport * from './parser/satisfactory/types/structs/vec3';\nexport * from './parser/satisfactory/types/structs/vec4';\nexport * from './parser/satisfactory/types/structs/VehiclePhysicsData';\n\n// should better be removed in a future update to prevent shenanigans.\nexport { BlueprintConfigReader, BlueprintReader } from './parser/satisfactory/blueprint/blueprint-reader';\nexport * from './parser/satisfactory/save/save-reader';\nexport { SaveWriter } from './parser/satisfactory/save/save-writer';\nexport { SaveStreamJsonStringifier } from './parser/stream/reworked/save-stream-json-stringifier';\nexport { SaveStreamWriter } from './parser/stream/reworked/save-stream-writer.class';\n\n// errors\nexport * from './parser/error/parser.error';\n\n// facade\nexport { Parser } from './parser/parser';\nexport { ReadableStreamParser } from './parser/stream/reworked/readable-stream-parser';\n\n// edit\nexport * from './parser/satisfactory/edit/edit-constants';\n\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AASpE,qBAAa,MAAM;WASJ,SAAS,CACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,OAAO,CAAC;QACjB,sBAAsB,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;QAC1D,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7D,WAAW,EAAE,OAAO,CAAA;KACpB,CAAC,GACA,gBAAgB;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AASpE,qBAAa,MAAM;WASJ,SAAS,CACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,OAAO,CAAC;QACjB,sBAAsB,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;QAC1D,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7D,WAAW,EAAE,OAAO,CAAA;KACpB,CAAC,GACA,gBAAgB;WAwDL,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAC7C,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EACtC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,OAAO,CAAC,EAAE,OAAO,CAAC;QACjB,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;KACzD,CAAC,GACA,YAAY,EAAE;WAuCH,mBAAmB,CAChC,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;QACjB,iCAAiC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;KACjE,CAAC,GACA;QACF,oBAAoB,EAAE,YAAY,EAAE,CAAC;QACrC,gBAAgB,EAAE,WAAW,CAAA;KAC7B;WA+Ca,mBAAmB,CAChC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,eAAe,EAC9B,mBAAmB,EAAE,eAAe,EACpC,OAAO,CAAC,EAAE,OAAO,CAAC;QACjB,2BAA2B,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;QAC/D,WAAW,EAAE,OAAO,CAAC;KACrB,CAAC,GACA,SAAS;IAsCZ,OAAc,qBAAqB,QAAS,GAAG,WAAU,MAAM,KAAO,MAAM,CAQjE;CAEX"}
|
package/build/parser/parser.js
CHANGED
|
@@ -32,11 +32,13 @@ class Parser {
|
|
|
32
32
|
save.saveBodyValidation = SaveBodyValidation_1.SaveBodyValidation.Parse(reader);
|
|
33
33
|
}
|
|
34
34
|
save.levels = reader.readLevels();
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
if (reader.getBufferPosition() < reader.getBufferLength()) {
|
|
36
|
+
const countUnresolvedWorldSaveData = reader.readInt32();
|
|
37
|
+
if (countUnresolvedWorldSaveData) {
|
|
38
|
+
save.unresolvedWorldSaveData = [];
|
|
39
|
+
for (let i = 0; i < countUnresolvedWorldSaveData; i++) {
|
|
40
|
+
save.unresolvedWorldSaveData.push(ObjectReference_1.ObjectReference.read(reader));
|
|
41
|
+
}
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
reader.onProgressCallback(reader.getBufferProgress(), 'finished parsing.');
|
|
@@ -56,8 +58,8 @@ class Parser {
|
|
|
56
58
|
}
|
|
57
59
|
save_writer_1.SaveWriter.WriteLevels(writer, save);
|
|
58
60
|
if (save.unresolvedWorldSaveData && save.unresolvedWorldSaveData.length > 0) {
|
|
59
|
-
writer.writeInt32(save.unresolvedWorldSaveData
|
|
60
|
-
for (const actor of save.unresolvedWorldSaveData
|
|
61
|
+
writer.writeInt32(save.unresolvedWorldSaveData.length);
|
|
62
|
+
for (const actor of save.unresolvedWorldSaveData) {
|
|
61
63
|
ObjectReference_1.ObjectReference.write(writer, actor);
|
|
62
64
|
}
|
|
63
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { UnsupportedVersionError } from './error/parser.error';\nimport { BlueprintConfig } from './satisfactory/blueprint/blueprint-config';\nimport { BlueprintHeader } from './satisfactory/blueprint/blueprint-header';\nimport { BlueprintConfigReader, BlueprintReader } from \"./satisfactory/blueprint/blueprint-reader\";\nimport { BlueprintConfigWriter, BlueprintWriter } from \"./satisfactory/blueprint/blueprint-writer\";\nimport { Blueprint } from \"./satisfactory/blueprint/blueprint.types\";\nimport { SatisfactorySave } from \"./satisfactory/save/satisfactory-save\";\nimport { SatisfactorySaveHeader } from './satisfactory/save/satisfactory-save-header';\nimport { ChunkSummary } from './satisfactory/save/save-body-chunks';\nimport { SaveCustomVersion } from './satisfactory/save/save-custom-version';\nimport { SaveReader } from './satisfactory/save/save-reader';\nimport { SaveWriter } from \"./satisfactory/save/save-writer\";\nimport { ObjectReference } from './satisfactory/types/structs/ObjectReference';\nimport { SaveBodyValidation } from './satisfactory/types/structs/SaveBodyValidation';\n\n\n/** @public */\nexport class Parser {\n\n\t/**\n\t * Parses a given binary buffer as {@link SatisfactorySave}\n\t * @param name the save name. It won't be serialized, so it does not matter how you name it.\n\t * @param bytes the actual binary buffer\n\t * @param options provides callbacks. Either on the decompressed save body or on reported progress as a number [0,1] with an occasional message.\n\t * @returns \n\t */\n\tpublic static ParseSave(\n\t\tname: string,\n\t\tbytes: ArrayBufferLike,\n\t\toptions?: Partial<{\n\t\t\tonDecompressedSaveBody: (buffer: ArrayBufferLike) => void,\n\t\t\tonProgressCallback: (progress: number, msg?: string) => void,\n\t\t\tthrowErrors: boolean\n\t\t}>\n\t): SatisfactorySave {\n\n\t\tconst reader = new SaveReader(bytes, options?.onProgressCallback);\n\t\treader.context.throwErrors = options?.throwErrors !== undefined ? options.throwErrors : false;\n\n\t\tconst header = SatisfactorySaveHeader.Parse(reader);\n\t\tconst save = new SatisfactorySave(name, header);\n\n\t\t// guard save version\n\t\tconst roughSaveVersion = SaveReader.GetRoughSaveVersion(header.saveVersion);\n\t\tif (roughSaveVersion === '<U6') {\n\t\t\tthrow new UnsupportedVersionError('Game Version < U6 is not supported in the parser. Please save the file in a newer game version.');\n\t\t}\n\n\t\t// inflate chunks\n\t\tconst inflateResult = reader.inflateChunks();\n\t\tsave.compressionInfo = inflateResult.compressionInfo;\n\n\t\t// call callback on decompressed save body\n\t\tif (options?.onDecompressedSaveBody !== undefined) {\n\t\t\toptions.onDecompressedSaveBody(reader.getBuffer());\n\t\t}\n\n\t\t// world partition and validation\n\t\tif (reader.context.saveVersion >= SaveCustomVersion.IntroducedWorldPartition) {\n\t\t\tsave.saveBodyValidation = SaveBodyValidation.Parse(reader);\n\t\t}\n\n\n\t\t// parse levels\n\t\tsave.levels = reader.readLevels();\n\n\t\t// unresolved data, probably not even useful.\n\t\tconst countUnresolvedWorldSaveData = reader.readInt32();\n\t\tif (countUnresolvedWorldSaveData) {\n\t\t\tsave.unresolvedWorldSaveData = [];\n\t\t\tfor (let i = 0; i < countUnresolvedWorldSaveData; i++) {\n\t\t\t\tsave.unresolvedWorldSaveData.push(ObjectReference.read(reader));\n\t\t\t}\n\t\t}\n\n\t\treader.onProgressCallback(reader.getBufferProgress(), 'finished parsing.');\n\n\t\treturn save;\n\t}\n\n\t/**\n\t * serializes a {@link SatisfactorySave} into binary and reports back on individual callbacks.\n\t * @param save the {@link SatisfactorySave} to serialize into binary.\n\t * @param options provides callbacks. onBinaryBeforeCompressing gets called on the binary save body before it is compressed.\n\t * onHeader gets called on the binary save header, which is always uncompressed.\n\t * onChunk gets called when a chunk of the compressed save body was generated. Often, files' save bodies consist of multiple chunks.\n\t * @returns a summary of the generated chunks.\n\t */\n\tpublic static WriteSave(save: SatisfactorySave,\n\t\tonHeader: (header: Uint8Array) => void,\n\t\tonChunk: (chunk: Uint8Array) => void,\n\t\toptions?: Partial<{\n\t\t\tonBinaryBeforeCompressing: (buffer: ArrayBuffer) => void,\n\t\t}>\n\t): ChunkSummary[] {\n\n\t\tconst writer = new SaveWriter();\n\t\twriter.context.saveHeaderType = save.header.saveHeaderType;\n\t\twriter.context.saveVersion = save.header.saveVersion;\n\t\twriter.context.buildVersion = save.header.buildVersion;\n\t\twriter.context.mapName = save.header.mapName;\n\t\twriter.context.mods = Object.fromEntries(save.header.modMetadata?.Mods?.map(mod => [mod.Reference, mod.Version]) ?? []);\n\n\t\tSatisfactorySaveHeader.Serialize(writer, save.header);\n\t\tconst posAfterHeader = writer.getBufferPosition();\n\n\t\tif (writer.context.saveVersion >= SaveCustomVersion.IntroducedWorldPartition) {\n\t\t\tSaveBodyValidation.Serialize(writer, save.saveBodyValidation);\n\t\t}\n\n\t\tSaveWriter.WriteLevels(writer, save);\n\n\t\t// unresolved data\n\t\t// TODO: check if we ever encounter it.\n\t\tif (save.unresolvedWorldSaveData && save.unresolvedWorldSaveData.length > 0) {\n\t\t\twriter.writeInt32(save.unresolvedWorldSaveData?.length ?? 0);\n\t\t\tfor (const actor of save.unresolvedWorldSaveData ?? []) {\n\t\t\t\tObjectReference.write(writer, actor);\n\t\t\t}\n\t\t}\n\n\t\twriter.endWriting();\n\t\tconst chunkSummary = writer.generateChunks(save.compressionInfo!, posAfterHeader, options?.onBinaryBeforeCompressing ?? (() => { }), onHeader, onChunk);\n\t\treturn chunkSummary;\n\t}\n\n\t/**\n\t * Writes a {@link Blueprint} object to binary. And reports back on individual callbacks.\n\t * @param blueprint the blueprint to be written\n\t * @param options onMainFileBinaryBeforeCompressing gets called back when the main blueprint file binary is ready before compressing.\n\t * onMainFileHeader gets called back when the main blueprint file header is ready. onMainFileChunk gets called back when a main blueprint file chunk is ready.\n\t * @returns a chunk summary of the main file generated chunks. Plus the binary data of the config file, since it is often very small.\n\t */\n\tpublic static WriteBlueprintFiles(\n\t\tblueprint: Blueprint,\n\t\tonMainFileHeader: (header: Uint8Array) => void,\n\t\tonMainFileChunk: (chunk: Uint8Array) => void,\n\t\toptions?: Partial<{\n\t\t\tonMainFileBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\t}>\n\t): {\n\t\tmainFileChunkSummary: ChunkSummary[],\n\t\tconfigFileBinary: ArrayBuffer\n\t} {\n\n\t\t// write main blueprint file\n\t\tconst blueprintWriter = new BlueprintWriter();\n\t\tblueprintWriter.context.blueprintConfigVersion = blueprint.config.configVersion;\n\t\tblueprintWriter.context.saveVersion = blueprint.header.saveVersion;\n\t\tblueprintWriter.context.buildVersion = blueprint.header.buildVersion;\n\n\t\tBlueprintHeader.Serialize(blueprintWriter, blueprint.header);\n\t\tconst saveBodyPos = blueprintWriter.getBufferPosition();\n\t\tBlueprintWriter.SerializeObjects(blueprintWriter, blueprint.objects);\n\t\tblueprintWriter.endWriting();\n\t\tlet binaryChunks: Uint8Array[] = [];\n\t\tlet binaryHeader: Uint8Array;\n\t\tconst mainFileChunkSummary = blueprintWriter.generateChunks(\n\t\t\tblueprint.compressionInfo,\n\t\t\tsaveBodyPos,\n\t\t\t{\n\t\t\t\tonBinaryBeforeCompressing: options?.onMainFileBinaryBeforeCompressing ?? (() => { }),\n\t\t\t\tonHeader: onMainFileHeader,\n\t\t\t\tonChunk: onMainFileChunk\n\t\t\t}\n\t\t);\n\n\t\t// write config as well.\n\t\tconst configWriter = new BlueprintConfigWriter();\n\t\tconfigWriter.context.blueprintConfigVersion = blueprint.config.configVersion;\n\t\tblueprintWriter.context.saveVersion = blueprint.header.saveVersion;\n\t\tblueprintWriter.context.buildVersion = blueprint.header.buildVersion;\n\n\t\tBlueprintConfig.Serialize(configWriter, blueprint.config);\n\t\tconst configFileBinary = configWriter.endWriting();\n\n\t\treturn {\n\t\t\tmainFileChunkSummary,\n\t\t\tconfigFileBinary\n\t\t}\n\t}\n\n\t/**\n\t * Parses two buffers (main blueprint file + config file) into a {@link Blueprint object}\n\t * @param name the name of the blueprint, since it is not part of the binary data and has to be passed.\n\t * @param blueprintFile the main blueprint file \".sbp\"\n\t * @param blueprintConfigFile the config blueprint file \".sbpcfg\"\n\t * @param options provides callbacks. onDecompressedBlueprintBody gets called when the body of the main blueprint file is decompressed.\n\t * @returns \n\t */\n\tpublic static ParseBlueprintFiles(\n\t\tname: string,\n\t\tblueprintFile: ArrayBufferLike,\n\t\tblueprintConfigFile: ArrayBufferLike,\n\t\toptions?: Partial<{\n\t\t\tonDecompressedBlueprintBody: (buffer: ArrayBufferLike) => void;\n\t\t\tthrowErrors: boolean;\n\t\t}>\n\t): Blueprint {\n\n\t\t// read config file\n\t\tconst blueprintConfigReader = new BlueprintConfigReader(blueprintConfigFile);\n\t\tconst config = BlueprintConfig.Parse(blueprintConfigReader);\n\n\t\t// read actual blueprint file. with context from config\n\t\tconst blueprintReader = new BlueprintReader(blueprintFile);\n\t\tblueprintReader.context.blueprintConfigVersion = config.configVersion;\n\n\t\tblueprintReader.context.throwErrors = options?.throwErrors !== undefined ? options.throwErrors : false;\n\t\tconst header = BlueprintHeader.Parse(blueprintReader);\n\t\tconst inflateResult = blueprintReader.inflateChunks();\n\n\t\t// call back on decompressed body.\n\t\tif (options?.onDecompressedBlueprintBody !== undefined) {\n\t\t\toptions.onDecompressedBlueprintBody(inflateResult.inflatedData);\n\t\t}\n\n\t\tconst blueprintObjects = BlueprintReader.ParseObjects(blueprintReader);\n\t\tconst blueprint: Blueprint = {\n\t\t\tname,\n\t\t\tcompressionInfo: blueprintReader.compressionInfo,\n\t\t\theader: header,\n\t\t\tconfig,\n\t\t\tobjects: blueprintObjects\n\t\t};\n\t\treturn blueprint;\n\t}\n\n\t/**\n\t * It JSON.stringifies any parsed content safely. The original JSON.stringify() has some flaws that get in the way, so it is custom wrapped. The original has some problems:\n\t * 1. it cannot stringify bigints. So we help out by converting it into a string.\n\t * 2. It cannot distinguish between 0 and -0. But a float32 is encoded in a uint8Array for 0 to be [0,0,0,0] (0x00000000) and -0 to be [0,0,0,128] (0x00000080) in little endian.\n\t * @param obj basically anything that can be stringified\n\t * @param indent the indentation, just like with the real JSON stringify.\n\t * @returns a string that is safely stringified.\n\t */\n\tpublic static JSONStringifyModified = (obj: any, indent: number = 0): string =>\n\t\tJSON.stringify(obj, (key, value) => {\n\t\t\tif (typeof value === 'bigint') {\n\t\t\t\treturn value.toString();\n\t\t\t} else if (value === 0 && 1 / value < 0) {\t// -0\n\t\t\t\treturn '-0';\n\t\t\t}\n\t\t\treturn value;\n\t\t}, indent)\n\n}"]}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { UnsupportedVersionError } from './error/parser.error';\nimport { BlueprintConfig } from './satisfactory/blueprint/blueprint-config';\nimport { BlueprintHeader } from './satisfactory/blueprint/blueprint-header';\nimport { BlueprintConfigReader, BlueprintReader } from \"./satisfactory/blueprint/blueprint-reader\";\nimport { BlueprintConfigWriter, BlueprintWriter } from \"./satisfactory/blueprint/blueprint-writer\";\nimport { Blueprint } from \"./satisfactory/blueprint/blueprint.types\";\nimport { SatisfactorySave } from \"./satisfactory/save/satisfactory-save\";\nimport { SatisfactorySaveHeader } from './satisfactory/save/satisfactory-save-header';\nimport { ChunkSummary } from './satisfactory/save/save-body-chunks';\nimport { SaveCustomVersion } from './satisfactory/save/save-custom-version';\nimport { SaveReader } from './satisfactory/save/save-reader';\nimport { SaveWriter } from \"./satisfactory/save/save-writer\";\nimport { ObjectReference } from './satisfactory/types/structs/ObjectReference';\nimport { SaveBodyValidation } from './satisfactory/types/structs/SaveBodyValidation';\n\n\n/** @public */\nexport class Parser {\n\n\t/**\n\t * Parses a given binary buffer as {@link SatisfactorySave}\n\t * @param name the save name. It won't be serialized, so it does not matter how you name it.\n\t * @param bytes the actual binary buffer\n\t * @param options provides callbacks. Either on the decompressed save body or on reported progress as a number [0,1] with an occasional message.\n\t * @returns \n\t */\n\tpublic static ParseSave(\n\t\tname: string,\n\t\tbytes: ArrayBufferLike,\n\t\toptions?: Partial<{\n\t\t\tonDecompressedSaveBody: (buffer: ArrayBufferLike) => void,\n\t\t\tonProgressCallback: (progress: number, msg?: string) => void,\n\t\t\tthrowErrors: boolean\n\t\t}>\n\t): SatisfactorySave {\n\n\t\tconst reader = new SaveReader(bytes, options?.onProgressCallback);\n\t\treader.context.throwErrors = options?.throwErrors !== undefined ? options.throwErrors : false;\n\n\t\tconst header = SatisfactorySaveHeader.Parse(reader);\n\t\tconst save = new SatisfactorySave(name, header);\n\n\t\t// guard save version\n\t\tconst roughSaveVersion = SaveReader.GetRoughSaveVersion(header.saveVersion);\n\t\tif (roughSaveVersion === '<U6') {\n\t\t\tthrow new UnsupportedVersionError('Game Version < U6 is not supported in the parser. Please save the file in a newer game version.');\n\t\t}\n\n\t\t// inflate chunks\n\t\tconst inflateResult = reader.inflateChunks();\n\t\tsave.compressionInfo = inflateResult.compressionInfo;\n\n\t\t// call callback on decompressed save body\n\t\tif (options?.onDecompressedSaveBody !== undefined) {\n\t\t\toptions.onDecompressedSaveBody(reader.getBuffer());\n\t\t}\n\n\t\t// world partition and validation\n\t\tif (reader.context.saveVersion >= SaveCustomVersion.IntroducedWorldPartition) {\n\t\t\tsave.saveBodyValidation = SaveBodyValidation.Parse(reader);\n\t\t}\n\n\n\t\t// parse levels\n\t\tsave.levels = reader.readLevels();\n\n\t\t// unresolved data, probably not even useful.\n\t\tif (reader.getBufferPosition() < reader.getBufferLength()) {\n\t\t\tconst countUnresolvedWorldSaveData = reader.readInt32();\n\t\t\tif (countUnresolvedWorldSaveData) {\n\t\t\t\tsave.unresolvedWorldSaveData = [];\n\t\t\t\tfor (let i = 0; i < countUnresolvedWorldSaveData; i++) {\n\t\t\t\t\tsave.unresolvedWorldSaveData.push(ObjectReference.read(reader));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treader.onProgressCallback(reader.getBufferProgress(), 'finished parsing.');\n\n\t\treturn save;\n\t}\n\n\t/**\n\t * serializes a {@link SatisfactorySave} into binary and reports back on individual callbacks.\n\t * @param save the {@link SatisfactorySave} to serialize into binary.\n\t * @param options provides callbacks. onBinaryBeforeCompressing gets called on the binary save body before it is compressed.\n\t * onHeader gets called on the binary save header, which is always uncompressed.\n\t * onChunk gets called when a chunk of the compressed save body was generated. Often, files' save bodies consist of multiple chunks.\n\t * @returns a summary of the generated chunks.\n\t */\n\tpublic static WriteSave(save: SatisfactorySave,\n\t\tonHeader: (header: Uint8Array) => void,\n\t\tonChunk: (chunk: Uint8Array) => void,\n\t\toptions?: Partial<{\n\t\t\tonBinaryBeforeCompressing: (buffer: ArrayBuffer) => void,\n\t\t}>\n\t): ChunkSummary[] {\n\n\t\tconst writer = new SaveWriter();\n\t\twriter.context.saveHeaderType = save.header.saveHeaderType;\n\t\twriter.context.saveVersion = save.header.saveVersion;\n\t\twriter.context.buildVersion = save.header.buildVersion;\n\t\twriter.context.mapName = save.header.mapName;\n\t\twriter.context.mods = Object.fromEntries(save.header.modMetadata?.Mods?.map(mod => [mod.Reference, mod.Version]) ?? []);\n\n\t\tSatisfactorySaveHeader.Serialize(writer, save.header);\n\t\tconst posAfterHeader = writer.getBufferPosition();\n\n\t\tif (writer.context.saveVersion >= SaveCustomVersion.IntroducedWorldPartition) {\n\t\t\tSaveBodyValidation.Serialize(writer, save.saveBodyValidation);\n\t\t}\n\n\t\tSaveWriter.WriteLevels(writer, save);\n\n\t\t// unresolved data\n\t\t// TODO: check if we ever encounter it.\n\t\tif (save.unresolvedWorldSaveData && save.unresolvedWorldSaveData.length > 0) {\n\t\t\twriter.writeInt32(save.unresolvedWorldSaveData.length);\n\t\t\tfor (const actor of save.unresolvedWorldSaveData) {\n\t\t\t\tObjectReference.write(writer, actor);\n\t\t\t}\n\t\t}\n\n\t\twriter.endWriting();\n\t\tconst chunkSummary = writer.generateChunks(save.compressionInfo!, posAfterHeader, options?.onBinaryBeforeCompressing ?? (() => { }), onHeader, onChunk);\n\t\treturn chunkSummary;\n\t}\n\n\t/**\n\t * Writes a {@link Blueprint} object to binary. And reports back on individual callbacks.\n\t * @param blueprint the blueprint to be written\n\t * @param options onMainFileBinaryBeforeCompressing gets called back when the main blueprint file binary is ready before compressing.\n\t * onMainFileHeader gets called back when the main blueprint file header is ready. onMainFileChunk gets called back when a main blueprint file chunk is ready.\n\t * @returns a chunk summary of the main file generated chunks. Plus the binary data of the config file, since it is often very small.\n\t */\n\tpublic static WriteBlueprintFiles(\n\t\tblueprint: Blueprint,\n\t\tonMainFileHeader: (header: Uint8Array) => void,\n\t\tonMainFileChunk: (chunk: Uint8Array) => void,\n\t\toptions?: Partial<{\n\t\t\tonMainFileBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\t}>\n\t): {\n\t\tmainFileChunkSummary: ChunkSummary[],\n\t\tconfigFileBinary: ArrayBuffer\n\t} {\n\n\t\t// write main blueprint file\n\t\tconst blueprintWriter = new BlueprintWriter();\n\t\tblueprintWriter.context.blueprintConfigVersion = blueprint.config.configVersion;\n\t\tblueprintWriter.context.saveVersion = blueprint.header.saveVersion;\n\t\tblueprintWriter.context.buildVersion = blueprint.header.buildVersion;\n\n\t\tBlueprintHeader.Serialize(blueprintWriter, blueprint.header);\n\t\tconst saveBodyPos = blueprintWriter.getBufferPosition();\n\t\tBlueprintWriter.SerializeObjects(blueprintWriter, blueprint.objects);\n\t\tblueprintWriter.endWriting();\n\t\tlet binaryChunks: Uint8Array[] = [];\n\t\tlet binaryHeader: Uint8Array;\n\t\tconst mainFileChunkSummary = blueprintWriter.generateChunks(\n\t\t\tblueprint.compressionInfo,\n\t\t\tsaveBodyPos,\n\t\t\t{\n\t\t\t\tonBinaryBeforeCompressing: options?.onMainFileBinaryBeforeCompressing ?? (() => { }),\n\t\t\t\tonHeader: onMainFileHeader,\n\t\t\t\tonChunk: onMainFileChunk\n\t\t\t}\n\t\t);\n\n\t\t// write config as well.\n\t\tconst configWriter = new BlueprintConfigWriter();\n\t\tconfigWriter.context.blueprintConfigVersion = blueprint.config.configVersion;\n\t\tblueprintWriter.context.saveVersion = blueprint.header.saveVersion;\n\t\tblueprintWriter.context.buildVersion = blueprint.header.buildVersion;\n\n\t\tBlueprintConfig.Serialize(configWriter, blueprint.config);\n\t\tconst configFileBinary = configWriter.endWriting();\n\n\t\treturn {\n\t\t\tmainFileChunkSummary,\n\t\t\tconfigFileBinary\n\t\t}\n\t}\n\n\t/**\n\t * Parses two buffers (main blueprint file + config file) into a {@link Blueprint object}\n\t * @param name the name of the blueprint, since it is not part of the binary data and has to be passed.\n\t * @param blueprintFile the main blueprint file \".sbp\"\n\t * @param blueprintConfigFile the config blueprint file \".sbpcfg\"\n\t * @param options provides callbacks. onDecompressedBlueprintBody gets called when the body of the main blueprint file is decompressed.\n\t * @returns \n\t */\n\tpublic static ParseBlueprintFiles(\n\t\tname: string,\n\t\tblueprintFile: ArrayBufferLike,\n\t\tblueprintConfigFile: ArrayBufferLike,\n\t\toptions?: Partial<{\n\t\t\tonDecompressedBlueprintBody: (buffer: ArrayBufferLike) => void;\n\t\t\tthrowErrors: boolean;\n\t\t}>\n\t): Blueprint {\n\n\t\t// read config file\n\t\tconst blueprintConfigReader = new BlueprintConfigReader(blueprintConfigFile);\n\t\tconst config = BlueprintConfig.Parse(blueprintConfigReader);\n\n\t\t// read actual blueprint file. with context from config\n\t\tconst blueprintReader = new BlueprintReader(blueprintFile);\n\t\tblueprintReader.context.blueprintConfigVersion = config.configVersion;\n\n\t\tblueprintReader.context.throwErrors = options?.throwErrors !== undefined ? options.throwErrors : false;\n\t\tconst header = BlueprintHeader.Parse(blueprintReader);\n\t\tconst inflateResult = blueprintReader.inflateChunks();\n\n\t\t// call back on decompressed body.\n\t\tif (options?.onDecompressedBlueprintBody !== undefined) {\n\t\t\toptions.onDecompressedBlueprintBody(inflateResult.inflatedData);\n\t\t}\n\n\t\tconst blueprintObjects = BlueprintReader.ParseObjects(blueprintReader);\n\t\tconst blueprint: Blueprint = {\n\t\t\tname,\n\t\t\tcompressionInfo: blueprintReader.compressionInfo,\n\t\t\theader: header,\n\t\t\tconfig,\n\t\t\tobjects: blueprintObjects\n\t\t};\n\t\treturn blueprint;\n\t}\n\n\t/**\n\t * It JSON.stringifies any parsed content safely. The original JSON.stringify() has some flaws that get in the way, so it is custom wrapped. The original has some problems:\n\t * 1. it cannot stringify bigints. So we help out by converting it into a string.\n\t * 2. It cannot distinguish between 0 and -0. But a float32 is encoded in a uint8Array for 0 to be [0,0,0,0] (0x00000000) and -0 to be [0,0,0,128] (0x00000080) in little endian.\n\t * @param obj basically anything that can be stringified\n\t * @param indent the indentation, just like with the real JSON stringify.\n\t * @returns a string that is safely stringified.\n\t */\n\tpublic static JSONStringifyModified = (obj: any, indent: number = 0): string =>\n\t\tJSON.stringify(obj, (key, value) => {\n\t\t\tif (typeof value === 'bigint') {\n\t\t\t\treturn value.toString();\n\t\t\t} else if (value === 0 && 1 / value < 0) {\t// -0\n\t\t\t\treturn '-0';\n\t\t\t}\n\t\t\treturn value;\n\t\t}, indent)\n\n}"]}
|
|
@@ -5,6 +5,7 @@ import { col4 } from '../../structs/col4';
|
|
|
5
5
|
import { DynamicStructPropertyValue } from '../../structs/DynamicStructPropertyValue';
|
|
6
6
|
import { FGDynamicStruct } from '../../structs/FGDynamicStruct';
|
|
7
7
|
import { FINGPUT1BufferPixel } from '../../structs/mods/FicsItNetworks/FINGPUT1BufferPixel';
|
|
8
|
+
import { FINLuaRuntimePersistenceState } from '../../structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState';
|
|
8
9
|
import { FINNetworkTrace } from '../../structs/mods/FicsItNetworks/FINNetworkTrace';
|
|
9
10
|
import { FLBBalancerIndexing } from '../../structs/mods/ModularLoadBalancers/FLBBalancerIndexing';
|
|
10
11
|
import { ObjectReference } from '../../structs/ObjectReference';
|
|
@@ -38,7 +39,7 @@ export type FICFrameRangeStructPropertyValue = {
|
|
|
38
39
|
begin: string;
|
|
39
40
|
end: string;
|
|
40
41
|
};
|
|
41
|
-
export type GENERIC_STRUCT_PROPERTY_VALUE = BasicMultipleStructPropertyValue | BasicStructPropertyValue | BoxStructPropertyValue | RailroadTrackPositionStructPropertyValue | InventoryItemStructPropertyValue | FICFrameRangeStructPropertyValue | FClientIdentityInfo | DynamicStructPropertyValue | col4 | vec2 | vec3 | vec4 | string | FINNetworkTrace | FINGPUT1BufferPixel | FLBBalancerIndexing;
|
|
42
|
+
export type GENERIC_STRUCT_PROPERTY_VALUE = BasicMultipleStructPropertyValue | BasicStructPropertyValue | BoxStructPropertyValue | RailroadTrackPositionStructPropertyValue | InventoryItemStructPropertyValue | FICFrameRangeStructPropertyValue | FClientIdentityInfo | DynamicStructPropertyValue | col4 | vec2 | vec3 | vec4 | string | FINNetworkTrace | FINGPUT1BufferPixel | FLBBalancerIndexing | FINLuaRuntimePersistenceState;
|
|
42
43
|
export declare const isStructProperty: (property: any) => property is StructProperty;
|
|
43
44
|
export type StructProperty = AbstractBaseProperty & {
|
|
44
45
|
type: 'StructProperty';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructProperty.d.ts","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/StructProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAI/E,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,MAAM,gCAAgC,GAAG;IAC3C,MAAM,EAAE,GAAG,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,KAAK,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,IAAI,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC3C,aAAa,EAAE,eAAe,CAAC;IAC/B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,oBAAoB,CAAC,EAAE,eAAe,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,gCAAgC,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,wCAAwC,GACvK,gCAAgC,GAAG,gCAAgC,GAAG,mBAAmB,GAAG,0BAA0B,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAC3J,eAAe,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"StructProperty.d.ts","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/StructProperty.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ const FGDynamicStruct_1 = require("../../structs/FGDynamicStruct");
|
|
|
11
11
|
const GUIDInfo_1 = require("../../structs/GUIDInfo");
|
|
12
12
|
const FICFrameRange_1 = require("../../structs/mods/FicsItCam/FICFrameRange");
|
|
13
13
|
const FINGPUT1BufferPixel_1 = require("../../structs/mods/FicsItNetworks/FINGPUT1BufferPixel");
|
|
14
|
+
const FINLuaRuntimePersistenceState_1 = require("../../structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState");
|
|
14
15
|
const FINNetworkTrace_1 = require("../../structs/mods/FicsItNetworks/FINNetworkTrace");
|
|
15
16
|
const FLBBalancerIndexing_1 = require("../../structs/mods/ModularLoadBalancers/FLBBalancerIndexing");
|
|
16
17
|
const ObjectReference_1 = require("../../structs/ObjectReference");
|
|
@@ -61,6 +62,7 @@ var StructProperty;
|
|
|
61
62
|
};
|
|
62
63
|
StructProperty.ParseValue = (reader, subtype, size) => {
|
|
63
64
|
let value;
|
|
65
|
+
const start = reader.getBufferPosition();
|
|
64
66
|
switch (subtype) {
|
|
65
67
|
case 'Color':
|
|
66
68
|
value = FColor_1.FColor.read(reader);
|
|
@@ -147,6 +149,10 @@ var StructProperty;
|
|
|
147
149
|
case 'FINGPUT1BufferPixel':
|
|
148
150
|
value = FINGPUT1BufferPixel_1.FINGPUT1BufferPixel.read(reader);
|
|
149
151
|
break;
|
|
152
|
+
case 'FINLuaProcessorStateStorage':
|
|
153
|
+
case 'FINLuaRuntimePersistenceState':
|
|
154
|
+
value = FINLuaRuntimePersistenceState_1.FINLuaRuntimePersistenceState.read(reader, size);
|
|
155
|
+
break;
|
|
150
156
|
default:
|
|
151
157
|
value = DynamicStructPropertyValue_1.DynamicStructPropertyValue.read(reader, subtype);
|
|
152
158
|
break;
|
|
@@ -273,6 +279,10 @@ var StructProperty;
|
|
|
273
279
|
value = value;
|
|
274
280
|
FINGPUT1BufferPixel_1.FINGPUT1BufferPixel.write(writer, value);
|
|
275
281
|
break;
|
|
282
|
+
case 'FINLuaProcessorStateStorage':
|
|
283
|
+
case 'FINLuaRuntimePersistenceState':
|
|
284
|
+
FINLuaRuntimePersistenceState_1.FINLuaRuntimePersistenceState.write(writer, value);
|
|
285
|
+
break;
|
|
276
286
|
default:
|
|
277
287
|
value = value;
|
|
278
288
|
DynamicStructPropertyValue_1.DynamicStructPropertyValue.write(writer, value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructProperty.js","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/StructProperty.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextReader } from '../../../../context/context-reader';\nimport { ContextWriter } from '../../../../context/context-writer';\nimport { SaveCustomVersion } from '../../../save/save-custom-version';\nimport { FClientIdentityInfo } from '../../structs/binary/FClientIdentityInfo';\nimport { FColor } from '../../structs/binary/FColor';\nimport { FLinearColor } from '../../structs/binary/FLinearColor';\nimport { GUID } from '../../structs/binary/GUID';\nimport { col4 } from '../../structs/col4';\nimport { DynamicStructPropertyValue } from '../../structs/DynamicStructPropertyValue';\nimport { FGDynamicStruct } from '../../structs/FGDynamicStruct';\nimport { GUIDInfo } from '../../structs/GUIDInfo';\nimport { FICFrameRange } from '../../structs/mods/FicsItCam/FICFrameRange';\nimport { FINGPUT1BufferPixel } from '../../structs/mods/FicsItNetworks/FINGPUT1BufferPixel';\nimport { FINNetworkTrace } from '../../structs/mods/FicsItNetworks/FINNetworkTrace';\nimport { FLBBalancerIndexing } from '../../structs/mods/ModularLoadBalancers/FLBBalancerIndexing';\nimport { ObjectReference } from '../../structs/ObjectReference';\nimport { vec2 } from '../../structs/vec2';\nimport { vec3 } from '../../structs/vec3';\nimport { vec4 } from '../../structs/vec4';\nimport { AbstractBaseProperty } from './AbstractBaseProperty';\n\n\nexport type BasicMultipleStructPropertyValue = {\n values: any;\n};\n\nexport type BasicStructPropertyValue = {\n value: any;\n};\n\nexport type BoxStructPropertyValue = {\n min: vec3;\n max: vec3;\n isValid: boolean;\n};\n\nexport type RailroadTrackPositionStructPropertyValue = {\n root: string;\n instanceName: string;\n offset: number;\n forward: number;\n};\n\nexport type InventoryItemStructPropertyValue = {\n itemReference: ObjectReference;\n itemState?: FGDynamicStruct;\n legacyItemStateActor?: ObjectReference;\n};\n\nexport type FICFrameRangeStructPropertyValue = {\n begin: string;\n end: string;\n};\n\nexport type GENERIC_STRUCT_PROPERTY_VALUE = BasicMultipleStructPropertyValue | BasicStructPropertyValue | BoxStructPropertyValue | RailroadTrackPositionStructPropertyValue |\n InventoryItemStructPropertyValue | FICFrameRangeStructPropertyValue | FClientIdentityInfo | DynamicStructPropertyValue | col4 | vec2 | vec3 | vec4 | string |\n FINNetworkTrace | FINGPUT1BufferPixel | FLBBalancerIndexing;\n\nexport const isStructProperty = (property: any): property is StructProperty => !Array.isArray(property) && property.type === 'StructProperty';\n\nexport type StructProperty = AbstractBaseProperty & {\n type: 'StructProperty';\n subtype: string;\n value: GENERIC_STRUCT_PROPERTY_VALUE;\n unk1?: number;\n unk2?: number;\n unk3?: number;\n unk4?: number;\n};\n\nexport namespace StructProperty {\n\n export const Parse = (reader: ContextReader, ueType: string, index: number, size: number, subtype: string): StructProperty => {\n\n const guidInfo = GUIDInfo.read(reader);\n\n const struct: StructProperty = {\n ...AbstractBaseProperty.Create({ index, ueType, guidInfo, type: '' }),\n type: 'StructProperty',\n value: { values: [] },\n subtype\n };\n\n const unk1 = reader.readInt32();\n if (unk1 !== 0) {\n struct.unk1 = unk1;\n }\n\n const unk2 = reader.readInt32();\n if (unk2 !== 0) {\n struct.unk2 = unk2;\n }\n\n const unk3 = reader.readInt32();\n if (unk3 !== 0) {\n struct.unk3 = unk3;\n }\n\n const unk4 = reader.readInt32();\n if (unk4 !== 0) {\n struct.unk4 = unk4;\n }\n\n const before = reader.getBufferPosition();\n struct.value = ParseValue(reader, struct.subtype, size);\n const readBytes = reader.getBufferPosition() - before;\n if (readBytes !== size) {\n if (size - readBytes === 4) {\n // U8, fine\n reader.skipBytes(size - readBytes);\n } else {\n throw new Error(`possibly corrupt. Read ${readBytes} for StructProperty Content of ${struct.subtype}, but ${size} were indicated.`);\n }\n }\n\n return struct;\n }\n\n export const ParseValue = (reader: ContextReader, subtype: string, size: number): GENERIC_STRUCT_PROPERTY_VALUE => {\n\n let value: GENERIC_STRUCT_PROPERTY_VALUE;\n\n switch (subtype) {\n case 'Color':\n value = FColor.read(reader);\n break;\n\n case 'IntPoint':\n value = reader.readInt64().toString();\n break;\n\n case 'LinearColor':\n value = FLinearColor.read(reader);\n break;\n\n case 'Vector2D':\n value = (reader.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) ? vec2.Parse(reader) : vec2.ParseF(reader);\n break;\n\n case 'Vector':\n case 'Rotator':\n value = (reader.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) ? vec3.Parse(reader) : vec3.ParseF(reader);\n break;\n\n case 'Quat':\n case 'Vector4':\n case 'Vector4D':\n value = (reader.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) ? vec4.Parse(reader) : vec4.ParseF(reader);\n break;\n\n case 'Box':\n value = ((reader.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) ? {\n min: vec3.Parse(reader),\n max: vec3.Parse(reader),\n isValid: reader.readByte() >= 1\n } : {\n min: vec3.ParseF(reader),\n max: vec3.ParseF(reader),\n isValid: reader.readByte() >= 1\n }) satisfies BoxStructPropertyValue;\n break;\n\n case 'RailroadTrackPosition':\n value = {\n root: reader.readString(),\n instanceName: reader.readString(),\n offset: reader.readFloat32(),\n forward: reader.readFloat32()\n };\n break;\n\n case 'TimerHandle':\n value = reader.readString();\n break;\n\n case 'Guid':\n value = GUID.read(reader);\n break;\n\n case 'ClientIdentityInfo':\n value = FClientIdentityInfo.read(reader);\n break;\n\n case 'InventoryItem':\n const before = reader.getBufferPosition();\n\n value = {\n itemReference: ObjectReference.read(reader)\n } satisfies InventoryItemStructPropertyValue;\n\n // inventory items have potentially an item state. but not before explicit version\n if (reader.context.saveVersion >= SaveCustomVersion.RefactoredInventoryItemState) {\n value.itemState = FGDynamicStruct.Parse(reader);\n } else {\n value.legacyItemStateActor = ObjectReference.read(reader);\n }\n\n break;\n\n case 'FluidBox':\n value = {\n value: reader.readFloat32()\n };\n break;\n\n case 'SlateBrush':\n value = reader.readString();\n break;\n\n case 'DateTime':\n value = reader.readInt64().toString();\n break;\n\n // FixsitCamera mod\n case 'FICFrameRange':\n value = FICFrameRange.read(reader);\n break;\n\n // MLB mod\n case 'LBBalancerIndexing':\n value = FLBBalancerIndexing.read(reader);\n break;\n\n // FicsIt-Networks mod\n case 'FINNetworkTrace':\n case 'FIRTrace':\n value = FINNetworkTrace.read(reader);\n break;\n\n case 'FINGPUT1BufferPixel':\n value = FINGPUT1BufferPixel.read(reader);\n break;\n\n default:\n //TODO: use buildversion\n value = DynamicStructPropertyValue.read(reader, subtype);\n break;\n }\n\n return value;\n }\n\n export const CalcOverhead = (property: StructProperty, subtype: string): number => {\n return subtype.length + 5 + 4 + 4 + 4 + 4 + 1;\n }\n\n export const Serialize = (writer: ContextWriter, property: StructProperty): void => {\n writer.writeString(property.subtype);\n GUIDInfo.write(writer, property.guidInfo);\n\n writer.writeInt32(property.unk1 ?? 0);\n writer.writeInt32(property.unk2 ?? 0);\n writer.writeInt32(property.unk3 ?? 0);\n writer.writeInt32(property.unk4 ?? 0);\n\n StructProperty.SerializeValue(writer, property.subtype, property.value);\n }\n\n export const SerializeValue = (writer: ContextWriter, subtype: string, value: GENERIC_STRUCT_PROPERTY_VALUE): void => {\n\n switch (subtype) {\n case 'Color':\n FColor.write(writer, value as FColor);\n break;\n\n case 'IntPoint':\n writer.writeInt64(BigInt(value as string))\n break;\n\n case 'LinearColor':\n FLinearColor.write(writer, value as FLinearColor);\n break;\n\n case 'Vector2D':\n value = value as vec2;\n if (writer.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) {\n vec2.Serialize(writer, value);\n } else {\n vec2.SerializeF(writer, value);\n }\n break;\n\n case 'Vector':\n case 'Rotator':\n value = value as vec3;\n if (writer.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) {\n vec3.Serialize(writer, value as vec3);\n } else {\n vec3.SerializeF(writer, value as vec3);\n }\n break;\n\n case 'Quat':\n case 'Vector4':\n case 'Vector4D':\n value = value as vec4;\n if (writer.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) {\n vec4.Serialize(writer, value as vec4);\n } else {\n vec4.SerializeF(writer, value as vec4);\n }\n break;\n\n case 'Box':\n value = value as BoxStructPropertyValue;\n if (writer.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) {\n vec3.Serialize(writer, value.min);\n vec3.Serialize(writer, value.max);\n } else {\n vec3.SerializeF(writer, value.min);\n vec3.SerializeF(writer, value.max);\n }\n writer.writeByte(value.isValid ? 1 : 0);\n break;\n\n case 'RailroadTrackPosition':\n value = value as RailroadTrackPositionStructPropertyValue;\n writer.writeString(value.root);\n writer.writeString(value.instanceName);\n writer.writeFloat32(value.offset);\n writer.writeFloat32(value.forward);\n break;\n\n case 'TimerHandle':\n value = value as string;\n writer.writeString(value);\n break;\n\n case 'Guid':\n GUID.write(writer, value as GUID);\n break;\n\n case 'ClientIdentityInfo':\n FClientIdentityInfo.write(writer, value as FClientIdentityInfo);\n break;\n\n case 'InventoryItem':\n value = value as InventoryItemStructPropertyValue;\n ObjectReference.write(writer, value.itemReference);\n\n if (writer.context.saveVersion >= SaveCustomVersion.RefactoredInventoryItemState) {\n FGDynamicStruct.Serialize(writer, value.itemState!);\n } else {\n ObjectReference.write(writer, value.legacyItemStateActor!);\n }\n break;\n\n case 'FluidBox':\n value = value as BasicStructPropertyValue;\n writer.writeFloat32(value.value);\n break;\n\n case 'SlateBrush':\n value = value as string;\n writer.writeString(value);\n break;\n\n case 'DateTime':\n value = value as string;\n writer.writeInt64(BigInt(value));\n break;\n\n // MODS\n case 'FICFrameRange':\n value = value as FICFrameRange;\n FICFrameRange.write(writer, value);\n break;\n\n // MLB mod\n case 'LBBalancerIndexing':\n FLBBalancerIndexing.write(writer, value as FLBBalancerIndexing);\n break;\n\n // FicsItNetworks mod\n case 'FINNetworkTrace':\n case 'FIRTrace':\n value = value as FINNetworkTrace;\n FINNetworkTrace.write(writer, value);\n break;\n\n case 'FINGPUT1BufferPixel':\n value = value as FINGPUT1BufferPixel;\n FINGPUT1BufferPixel.write(writer, value);\n break;\n\n default:\n //TODO: use buildversion\n value = value as DynamicStructPropertyValue;\n DynamicStructPropertyValue.write(writer, value);\n break;\n }\n }\n}\n\n\n"]}
|
|
1
|
+
{"version":3,"file":"StructProperty.js","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/StructProperty.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextReader } from '../../../../context/context-reader';\nimport { ContextWriter } from '../../../../context/context-writer';\nimport { SaveCustomVersion } from '../../../save/save-custom-version';\nimport { FClientIdentityInfo } from '../../structs/binary/FClientIdentityInfo';\nimport { FColor } from '../../structs/binary/FColor';\nimport { FLinearColor } from '../../structs/binary/FLinearColor';\nimport { GUID } from '../../structs/binary/GUID';\nimport { col4 } from '../../structs/col4';\nimport { DynamicStructPropertyValue } from '../../structs/DynamicStructPropertyValue';\nimport { FGDynamicStruct } from '../../structs/FGDynamicStruct';\nimport { GUIDInfo } from '../../structs/GUIDInfo';\nimport { FICFrameRange } from '../../structs/mods/FicsItCam/FICFrameRange';\nimport { FINGPUT1BufferPixel } from '../../structs/mods/FicsItNetworks/FINGPUT1BufferPixel';\nimport { FINLuaRuntimePersistenceState } from '../../structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState';\nimport { FINNetworkTrace } from '../../structs/mods/FicsItNetworks/FINNetworkTrace';\nimport { FLBBalancerIndexing } from '../../structs/mods/ModularLoadBalancers/FLBBalancerIndexing';\nimport { ObjectReference } from '../../structs/ObjectReference';\nimport { vec2 } from '../../structs/vec2';\nimport { vec3 } from '../../structs/vec3';\nimport { vec4 } from '../../structs/vec4';\nimport { AbstractBaseProperty } from './AbstractBaseProperty';\n\n\nexport type BasicMultipleStructPropertyValue = {\n values: any;\n};\n\nexport type BasicStructPropertyValue = {\n value: any;\n};\n\nexport type BoxStructPropertyValue = {\n min: vec3;\n max: vec3;\n isValid: boolean;\n};\n\nexport type RailroadTrackPositionStructPropertyValue = {\n root: string;\n instanceName: string;\n offset: number;\n forward: number;\n};\n\nexport type InventoryItemStructPropertyValue = {\n itemReference: ObjectReference;\n itemState?: FGDynamicStruct;\n legacyItemStateActor?: ObjectReference;\n};\n\nexport type FICFrameRangeStructPropertyValue = {\n begin: string;\n end: string;\n};\n\nexport type GENERIC_STRUCT_PROPERTY_VALUE = BasicMultipleStructPropertyValue | BasicStructPropertyValue | BoxStructPropertyValue | RailroadTrackPositionStructPropertyValue |\n InventoryItemStructPropertyValue | FICFrameRangeStructPropertyValue | FClientIdentityInfo | DynamicStructPropertyValue | col4 | vec2 | vec3 | vec4 | string |\n FINNetworkTrace | FINGPUT1BufferPixel | FLBBalancerIndexing | FINLuaRuntimePersistenceState;\n\nexport const isStructProperty = (property: any): property is StructProperty => !Array.isArray(property) && property.type === 'StructProperty';\n\nexport type StructProperty = AbstractBaseProperty & {\n type: 'StructProperty';\n subtype: string;\n value: GENERIC_STRUCT_PROPERTY_VALUE;\n unk1?: number;\n unk2?: number;\n unk3?: number;\n unk4?: number;\n};\n\nexport namespace StructProperty {\n\n export const Parse = (reader: ContextReader, ueType: string, index: number, size: number, subtype: string): StructProperty => {\n\n const guidInfo = GUIDInfo.read(reader);\n\n const struct: StructProperty = {\n ...AbstractBaseProperty.Create({ index, ueType, guidInfo, type: '' }),\n type: 'StructProperty',\n value: { values: [] },\n subtype\n };\n\n const unk1 = reader.readInt32();\n if (unk1 !== 0) {\n struct.unk1 = unk1;\n }\n\n const unk2 = reader.readInt32();\n if (unk2 !== 0) {\n struct.unk2 = unk2;\n }\n\n const unk3 = reader.readInt32();\n if (unk3 !== 0) {\n struct.unk3 = unk3;\n }\n\n const unk4 = reader.readInt32();\n if (unk4 !== 0) {\n struct.unk4 = unk4;\n }\n\n const before = reader.getBufferPosition();\n struct.value = ParseValue(reader, struct.subtype, size);\n const readBytes = reader.getBufferPosition() - before;\n if (readBytes !== size) {\n if (size - readBytes === 4) {\n // U8, fine\n reader.skipBytes(size - readBytes);\n } else {\n throw new Error(`possibly corrupt. Read ${readBytes} for StructProperty Content of ${struct.subtype}, but ${size} were indicated.`);\n }\n }\n\n return struct;\n }\n\n export const ParseValue = (reader: ContextReader, subtype: string, size: number): GENERIC_STRUCT_PROPERTY_VALUE => {\n\n let value: GENERIC_STRUCT_PROPERTY_VALUE;\n const start = reader.getBufferPosition();\n\n switch (subtype) {\n case 'Color':\n value = FColor.read(reader);\n break;\n\n case 'IntPoint':\n value = reader.readInt64().toString();\n break;\n\n case 'LinearColor':\n value = FLinearColor.read(reader);\n break;\n\n case 'Vector2D':\n value = (reader.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) ? vec2.Parse(reader) : vec2.ParseF(reader);\n break;\n\n case 'Vector':\n case 'Rotator':\n value = (reader.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) ? vec3.Parse(reader) : vec3.ParseF(reader);\n break;\n\n case 'Quat':\n case 'Vector4':\n case 'Vector4D':\n value = (reader.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) ? vec4.Parse(reader) : vec4.ParseF(reader);\n break;\n\n case 'Box':\n value = ((reader.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) ? {\n min: vec3.Parse(reader),\n max: vec3.Parse(reader),\n isValid: reader.readByte() >= 1\n } : {\n min: vec3.ParseF(reader),\n max: vec3.ParseF(reader),\n isValid: reader.readByte() >= 1\n }) satisfies BoxStructPropertyValue;\n break;\n\n case 'RailroadTrackPosition':\n value = {\n root: reader.readString(),\n instanceName: reader.readString(),\n offset: reader.readFloat32(),\n forward: reader.readFloat32()\n };\n break;\n\n case 'TimerHandle':\n value = reader.readString();\n break;\n\n case 'Guid':\n value = GUID.read(reader);\n break;\n\n case 'ClientIdentityInfo':\n value = FClientIdentityInfo.read(reader);\n break;\n\n case 'InventoryItem':\n const before = reader.getBufferPosition();\n\n value = {\n itemReference: ObjectReference.read(reader)\n } satisfies InventoryItemStructPropertyValue;\n\n // inventory items have potentially an item state. but not before explicit version\n if (reader.context.saveVersion >= SaveCustomVersion.RefactoredInventoryItemState) {\n value.itemState = FGDynamicStruct.Parse(reader);\n } else {\n value.legacyItemStateActor = ObjectReference.read(reader);\n }\n\n break;\n\n case 'FluidBox':\n value = {\n value: reader.readFloat32()\n };\n break;\n\n case 'SlateBrush':\n value = reader.readString();\n break;\n\n case 'DateTime':\n value = reader.readInt64().toString();\n break;\n\n // FixsitCamera mod\n case 'FICFrameRange':\n value = FICFrameRange.read(reader);\n break;\n\n // MLB mod\n case 'LBBalancerIndexing':\n value = FLBBalancerIndexing.read(reader);\n break;\n\n // FicsIt-Networks mod\n case 'FINNetworkTrace':\n case 'FIRTrace':\n value = FINNetworkTrace.read(reader);\n break;\n\n case 'FINGPUT1BufferPixel':\n value = FINGPUT1BufferPixel.read(reader);\n break;\n\n case 'FINLuaProcessorStateStorage':\n case 'FINLuaRuntimePersistenceState':\n value = FINLuaRuntimePersistenceState.read(reader, size);\n break;\n\n default:\n //TODO: use buildversion\n value = DynamicStructPropertyValue.read(reader, subtype);\n break;\n }\n\n return value;\n }\n\n export const CalcOverhead = (property: StructProperty, subtype: string): number => {\n return subtype.length + 5 + 4 + 4 + 4 + 4 + 1;\n }\n\n export const Serialize = (writer: ContextWriter, property: StructProperty): void => {\n writer.writeString(property.subtype);\n GUIDInfo.write(writer, property.guidInfo);\n\n writer.writeInt32(property.unk1 ?? 0);\n writer.writeInt32(property.unk2 ?? 0);\n writer.writeInt32(property.unk3 ?? 0);\n writer.writeInt32(property.unk4 ?? 0);\n\n StructProperty.SerializeValue(writer, property.subtype, property.value);\n }\n\n export const SerializeValue = (writer: ContextWriter, subtype: string, value: GENERIC_STRUCT_PROPERTY_VALUE): void => {\n\n switch (subtype) {\n case 'Color':\n FColor.write(writer, value as FColor);\n break;\n\n case 'IntPoint':\n writer.writeInt64(BigInt(value as string))\n break;\n\n case 'LinearColor':\n FLinearColor.write(writer, value as FLinearColor);\n break;\n\n case 'Vector2D':\n value = value as vec2;\n if (writer.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) {\n vec2.Serialize(writer, value);\n } else {\n vec2.SerializeF(writer, value);\n }\n break;\n\n case 'Vector':\n case 'Rotator':\n value = value as vec3;\n if (writer.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) {\n vec3.Serialize(writer, value as vec3);\n } else {\n vec3.SerializeF(writer, value as vec3);\n }\n break;\n\n case 'Quat':\n case 'Vector4':\n case 'Vector4D':\n value = value as vec4;\n if (writer.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) {\n vec4.Serialize(writer, value as vec4);\n } else {\n vec4.SerializeF(writer, value as vec4);\n }\n break;\n\n case 'Box':\n value = value as BoxStructPropertyValue;\n if (writer.context.saveVersion >= SaveCustomVersion.SwitchTo64BitSaveArchive) {\n vec3.Serialize(writer, value.min);\n vec3.Serialize(writer, value.max);\n } else {\n vec3.SerializeF(writer, value.min);\n vec3.SerializeF(writer, value.max);\n }\n writer.writeByte(value.isValid ? 1 : 0);\n break;\n\n case 'RailroadTrackPosition':\n value = value as RailroadTrackPositionStructPropertyValue;\n writer.writeString(value.root);\n writer.writeString(value.instanceName);\n writer.writeFloat32(value.offset);\n writer.writeFloat32(value.forward);\n break;\n\n case 'TimerHandle':\n value = value as string;\n writer.writeString(value);\n break;\n\n case 'Guid':\n GUID.write(writer, value as GUID);\n break;\n\n case 'ClientIdentityInfo':\n FClientIdentityInfo.write(writer, value as FClientIdentityInfo);\n break;\n\n case 'InventoryItem':\n value = value as InventoryItemStructPropertyValue;\n ObjectReference.write(writer, value.itemReference);\n\n if (writer.context.saveVersion >= SaveCustomVersion.RefactoredInventoryItemState) {\n FGDynamicStruct.Serialize(writer, value.itemState!);\n } else {\n ObjectReference.write(writer, value.legacyItemStateActor!);\n }\n break;\n\n case 'FluidBox':\n value = value as BasicStructPropertyValue;\n writer.writeFloat32(value.value);\n break;\n\n case 'SlateBrush':\n value = value as string;\n writer.writeString(value);\n break;\n\n case 'DateTime':\n value = value as string;\n writer.writeInt64(BigInt(value));\n break;\n\n // MODS\n case 'FICFrameRange':\n value = value as FICFrameRange;\n FICFrameRange.write(writer, value);\n break;\n\n // MLB mod\n case 'LBBalancerIndexing':\n FLBBalancerIndexing.write(writer, value as FLBBalancerIndexing);\n break;\n\n // FicsItNetworks mod\n case 'FINNetworkTrace':\n case 'FIRTrace':\n value = value as FINNetworkTrace;\n FINNetworkTrace.write(writer, value);\n break;\n\n case 'FINGPUT1BufferPixel':\n value = value as FINGPUT1BufferPixel;\n FINGPUT1BufferPixel.write(writer, value);\n break;\n\n case 'FINLuaProcessorStateStorage':\n case 'FINLuaRuntimePersistenceState':\n FINLuaRuntimePersistenceState.write(writer, value as FINLuaRuntimePersistenceState);\n break;\n\n default:\n //TODO: use buildversion\n value = value as DynamicStructPropertyValue;\n DynamicStructPropertyValue.write(writer, value);\n break;\n }\n }\n}\n\n\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ContextReader } from "../../../../../context/context-reader";
|
|
2
|
+
import { ContextWriter } from "../../../../../context/context-writer";
|
|
3
|
+
import { DynamicStructPropertyValue } from "../../DynamicStructPropertyValue";
|
|
4
|
+
import { ObjectReference } from "../../ObjectReference";
|
|
5
|
+
import { FINNetworkTrace } from "./FINNetworkTrace";
|
|
6
|
+
export type FINLuaRuntimePersistenceState = {
|
|
7
|
+
traces: FINNetworkTrace[];
|
|
8
|
+
references: ObjectReference[];
|
|
9
|
+
thread: string;
|
|
10
|
+
globals: string;
|
|
11
|
+
structs: FIRInstancedStruct[];
|
|
12
|
+
remainingRawData: number[];
|
|
13
|
+
};
|
|
14
|
+
export type FIRInstancedStruct = DynamicStructPropertyValue | {
|
|
15
|
+
[key: string]: any;
|
|
16
|
+
remainingRawBytes: number[];
|
|
17
|
+
};
|
|
18
|
+
export declare namespace FINLuaRuntimePersistenceState {
|
|
19
|
+
const read: (reader: ContextReader, size: number) => FINLuaRuntimePersistenceState;
|
|
20
|
+
const write: (writer: ContextWriter, state: FINLuaRuntimePersistenceState) => void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=FINLuaRuntimePersistenceState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FINLuaRuntimePersistenceState.d.ts","sourceRoot":"","sources":["../../../../../../../src/parser/satisfactory/types/structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,MAAM,6BAA6B,GAAG;IACxC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,0BAA0B,GAAG;IAC1D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAA;AAKD,yBAAiB,6BAA6B,CAAC;IAEpC,MAAM,IAAI,WAAY,aAAa,QAAQ,MAAM,KAAG,6BAmD1D,CAAA;IAEM,MAAM,KAAK,WAAY,aAAa,SAAS,6BAA6B,KAAG,IAYnF,CAAA;CACJ"}
|
package/build/parser/satisfactory/types/structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FINLuaRuntimePersistenceState = void 0;
|
|
4
|
+
const object_references_list_1 = require("../../../../save/object-references-list");
|
|
5
|
+
const FINNetworkTrace_1 = require("./FINNetworkTrace");
|
|
6
|
+
var FINLuaRuntimePersistenceState;
|
|
7
|
+
(function (FINLuaRuntimePersistenceState) {
|
|
8
|
+
FINLuaRuntimePersistenceState.read = (reader, size) => {
|
|
9
|
+
const start = reader.getBufferPosition();
|
|
10
|
+
const state = {
|
|
11
|
+
traces: [],
|
|
12
|
+
references: [],
|
|
13
|
+
thread: '',
|
|
14
|
+
globals: '',
|
|
15
|
+
structs: [],
|
|
16
|
+
remainingRawData: []
|
|
17
|
+
};
|
|
18
|
+
const countTraces = reader.readInt32();
|
|
19
|
+
for (let i = 0; i < countTraces; i++) {
|
|
20
|
+
state.traces.push(FINNetworkTrace_1.FINNetworkTrace.read(reader));
|
|
21
|
+
}
|
|
22
|
+
state.references = object_references_list_1.ObjectReferencesList.ReadList(reader);
|
|
23
|
+
state.thread = reader.readString();
|
|
24
|
+
state.globals = reader.readString();
|
|
25
|
+
const remainingSize = size - (reader.getBufferPosition() - start);
|
|
26
|
+
state.remainingRawData = Array.from(reader.readBytes(remainingSize));
|
|
27
|
+
return state;
|
|
28
|
+
};
|
|
29
|
+
FINLuaRuntimePersistenceState.write = (writer, state) => {
|
|
30
|
+
writer.writeInt32(state.traces.length);
|
|
31
|
+
for (const trace of state.traces) {
|
|
32
|
+
FINNetworkTrace_1.FINNetworkTrace.write(writer, trace);
|
|
33
|
+
}
|
|
34
|
+
object_references_list_1.ObjectReferencesList.SerializeList(writer, state.references);
|
|
35
|
+
writer.writeString(state.thread);
|
|
36
|
+
writer.writeString(state.globals);
|
|
37
|
+
writer.writeBytesArray(state.remainingRawData);
|
|
38
|
+
};
|
|
39
|
+
})(FINLuaRuntimePersistenceState || (exports.FINLuaRuntimePersistenceState = FINLuaRuntimePersistenceState = {}));
|
|
40
|
+
//# sourceMappingURL=FINLuaRuntimePersistenceState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FINLuaRuntimePersistenceState.js","sourceRoot":"","sources":["../../../../../../../src/parser/satisfactory/types/structs/mods/FicsItNetworks/FINLuaRuntimePersistenceState.ts"],"names":[],"mappings":";;;AAEA,oFAA+E;AAG/E,uDAAoD;AAoBpD,IAAiB,6BAA6B,CAoE7C;AApED,WAAiB,6BAA6B;IAE7B,kCAAI,GAAG,CAAC,MAAqB,EAAE,IAAY,EAAiC,EAAE;QAEvF,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAkC;YACzC,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,gBAAgB,EAAE,EAAE;SACvB,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,CAAC,UAAU,GAAG,6CAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEzD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACnC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QA2BpC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC;QAClE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;QAErE,OAAO,KAAK,CAAC;IACjB,CAAC,CAAA;IAEY,mCAAK,GAAG,CAAC,MAAqB,EAAE,KAAoC,EAAQ,EAAE;QAEvF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,iCAAe,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,6CAAoB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC,CAAA;AACL,CAAC,EApEgB,6BAA6B,6CAA7B,6BAA6B,QAoE7C","sourcesContent":["import { ContextReader } from \"../../../../../context/context-reader\";\nimport { ContextWriter } from \"../../../../../context/context-writer\";\nimport { ObjectReferencesList } from \"../../../../save/object-references-list\";\nimport { DynamicStructPropertyValue } from \"../../DynamicStructPropertyValue\";\nimport { ObjectReference } from \"../../ObjectReference\";\nimport { FINNetworkTrace } from \"./FINNetworkTrace\";\n\n\nexport type FINLuaRuntimePersistenceState = {\n traces: FINNetworkTrace[];\n references: ObjectReference[];\n thread: string;\n globals: string;\n structs: FIRInstancedStruct[];\n remainingRawData: number[];\n};\n\nexport type FIRInstancedStruct = DynamicStructPropertyValue | {\n [key: string]: any;\n remainingRawBytes: number[];\n}\n\n/**\n * declared at https://github.com/Panakotta00/FicsIt-Networks/blob/789c32fdc857fc9971f7f73fbbf3789c64f637bc/Source/FicsItNetworksLua/Private/FINLuaRuntimePersistence.cpp#L8\n */\nexport namespace FINLuaRuntimePersistenceState {\n\n export const read = (reader: ContextReader, size: number): FINLuaRuntimePersistenceState => {\n\n const start = reader.getBufferPosition();\n const state: FINLuaRuntimePersistenceState = {\n traces: [],\n references: [],\n thread: '',\n globals: '',\n structs: [],\n remainingRawData: []\n };\n\n const countTraces = reader.readInt32();\n for (let i = 0; i < countTraces; i++) {\n state.traces.push(FINNetworkTrace.read(reader));\n }\n\n state.references = ObjectReferencesList.ReadList(reader);\n\n state.thread = reader.readString();\n state.globals = reader.readString();\n\n // TODO: in a future version map out more of the FicsitNetworks mod.\n // we already know here come the structs. but not every type is clear yet.\n /*\n const countStructs = reader.readInt32();\n for (let i = 0; i < countStructs; i++) {\n\n reader.readInt32();\n const subtype = reader.readString();\n let struct: FIRInstancedStruct = { remainingRawBytes: [] };\n\n switch (subtype) {\n case '/Script/FicsItNetworksLua.FINLuaEventRegistry':\n case '/Script/FicsItNetworksMisc.FINFutureReflection':\n case '/Script/FicsItNetworksLua.FINEventFilterExpression':\n case '/Script/FactoryGame.PrefabSignData':\n if (reader.context.saveVersion >= SaveCustomVersion.Version1) {\n struct = DynamicStructPropertyValue.read(reader, subtype);\n }\n break;\n }\n\n state.structs.push(struct);\n }\n */\n\n const remainingSize = size - (reader.getBufferPosition() - start);\n state.remainingRawData = Array.from(reader.readBytes(remainingSize));\n\n return state;\n }\n\n export const write = (writer: ContextWriter, state: FINLuaRuntimePersistenceState): void => {\n\n writer.writeInt32(state.traces.length);\n for (const trace of state.traces) {\n FINNetworkTrace.write(writer, trace);\n }\n\n ObjectReferencesList.SerializeList(writer, state.references);\n\n writer.writeString(state.thread);\n writer.writeString(state.globals);\n writer.writeBytesArray(state.remainingRawData);\n }\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable-stream-parser.d.ts","sourceRoot":"","sources":["../../../../src/parser/stream/reworked/readable-stream-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,cAAc,EAAmC,MAAM,YAAY,CAAC;AAyD9F,qBAAa,oBAAoB;IAEhC,OAAO,CAAC,MAAM,CAAC,kCAAkC,CAgC/C;IAUF,OAAc,kCAAkC,SACzC,MAAM,SACL,eAAe,YACZ,OAAO,CAAC;QACjB,sBAAsB,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;QAC1D,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KACxD,CAAC,KACA;QAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAAC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,
|
|
1
|
+
{"version":3,"file":"readable-stream-parser.d.ts","sourceRoot":"","sources":["../../../../src/parser/stream/reworked/readable-stream-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,cAAc,EAAmC,MAAM,YAAY,CAAC;AAyD9F,qBAAa,oBAAoB;IAEhC,OAAO,CAAC,MAAM,CAAC,kCAAkC,CAgC/C;IAUF,OAAc,kCAAkC,SACzC,MAAM,SACL,eAAe,YACZ,OAAO,CAAC;QACjB,sBAAsB,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;QAC1D,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KACxD,CAAC,KACA;QAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAAC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CA6FzE;IAGD,OAAO,CAAC,MAAM,CAAC,gCAAgC,CAQ9C;mBAEoB,eAAe;CA0IpC"}
|
|
@@ -204,13 +204,15 @@ ReadableStreamParser.CreateReadableStreamFromSaveToJson = (name, bytes, options)
|
|
|
204
204
|
await _a.WriteHeaderAndSaveBodyValidation(write, name, inflateResult.compressionInfo, header, saveBodyValidation);
|
|
205
205
|
await _a.ReadWriteLevels(write, reader, save.header.mapName, save.header.buildVersion);
|
|
206
206
|
await write(`}`, false);
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
207
|
+
if (reader.getBufferPosition() < reader.getBufferLength()) {
|
|
208
|
+
const countUnresolvedWorldSaveData = reader.readInt32();
|
|
209
|
+
if (countUnresolvedWorldSaveData) {
|
|
210
|
+
save.unresolvedWorldSaveData = [];
|
|
211
|
+
for (let i = 0; i < countUnresolvedWorldSaveData; i++) {
|
|
212
|
+
save.unresolvedWorldSaveData.push(ObjectReference_1.ObjectReference.read(reader));
|
|
213
|
+
}
|
|
214
|
+
await write(`, "unresolvedWorldSaveData": ${JSON.stringify(save.unresolvedWorldSaveData)} `, false);
|
|
212
215
|
}
|
|
213
|
-
await write(`, "unresolvedWorldSaveData": ${JSON.stringify(save.unresolvedWorldSaveData)} `, false);
|
|
214
216
|
}
|
|
215
217
|
if (save.name !== undefined) {
|
|
216
218
|
await write(`, "name": "${save.name}" `, false);
|