@etothepii/satisfactory-file-parser 2.1.3 → 3.0.2
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/CHANGELOG.md +128 -103
- package/LICENCE.md +1 -1
- package/README.md +39 -21
- package/build/index.d.ts +13 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +14 -3
- package/build/index.js.map +1 -1
- package/build/parser/byte/byte-reader.class.d.ts +7 -5
- package/build/parser/byte/byte-reader.class.d.ts.map +1 -1
- package/build/parser/byte/byte-reader.class.js +6 -4
- package/build/parser/byte/byte-reader.class.js.map +1 -1
- package/build/parser/byte/byte-writer.class.d.ts +1 -0
- package/build/parser/byte/byte-writer.class.d.ts.map +1 -1
- package/build/parser/byte/byte-writer.class.js +3 -0
- package/build/parser/byte/byte-writer.class.js.map +1 -1
- package/build/parser/context/context-reader.d.ts +6 -0
- package/build/parser/context/context-reader.d.ts.map +1 -0
- package/build/parser/context/context-reader.js +13 -0
- package/build/parser/context/context-reader.js.map +1 -0
- package/build/parser/context/context-writer.d.ts +6 -0
- package/build/parser/context/context-writer.d.ts.map +1 -0
- package/build/parser/context/context-writer.js +13 -0
- package/build/parser/context/context-writer.js.map +1 -0
- package/build/parser/context/context.d.ts +16 -0
- package/build/parser/context/context.d.ts.map +1 -0
- package/build/parser/context/context.js +3 -0
- package/build/parser/context/context.js.map +1 -0
- package/build/parser/error/parser.error.d.ts +3 -0
- package/build/parser/error/parser.error.d.ts.map +1 -1
- package/build/parser/error/parser.error.js +7 -1
- package/build/parser/error/parser.error.js.map +1 -1
- package/build/parser/parser.d.ts +5 -5
- package/build/parser/parser.d.ts.map +1 -1
- package/build/parser/parser.js +50 -22
- package/build/parser/parser.js.map +1 -1
- package/build/parser/satisfactory/blueprint/blueprint-config-version.d.ts +10 -0
- package/build/parser/satisfactory/blueprint/blueprint-config-version.d.ts.map +1 -0
- package/build/parser/satisfactory/blueprint/blueprint-config-version.js +14 -0
- package/build/parser/satisfactory/blueprint/blueprint-config-version.js.map +1 -0
- package/build/parser/satisfactory/blueprint/blueprint-config.d.ts +21 -0
- package/build/parser/satisfactory/blueprint/blueprint-config.d.ts.map +1 -0
- package/build/parser/satisfactory/blueprint/blueprint-config.js +56 -0
- package/build/parser/satisfactory/blueprint/blueprint-config.js.map +1 -0
- package/build/parser/satisfactory/blueprint/blueprint-header.d.ts +24 -0
- package/build/parser/satisfactory/blueprint/blueprint-header.d.ts.map +1 -0
- package/build/parser/satisfactory/blueprint/blueprint-header.js +61 -0
- package/build/parser/satisfactory/blueprint/blueprint-header.js.map +1 -0
- package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts +11 -14
- package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts.map +1 -1
- package/build/parser/satisfactory/blueprint/blueprint-reader.js +15 -99
- package/build/parser/satisfactory/blueprint/blueprint-reader.js.map +1 -1
- package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts +6 -9
- package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts.map +1 -1
- package/build/parser/satisfactory/blueprint/blueprint-writer.js +7 -39
- package/build/parser/satisfactory/blueprint/blueprint-writer.js.map +1 -1
- package/build/parser/satisfactory/blueprint/blueprint.types.d.ts +3 -16
- package/build/parser/satisfactory/blueprint/blueprint.types.d.ts.map +1 -1
- package/build/parser/satisfactory/blueprint/blueprint.types.js.map +1 -1
- package/build/parser/satisfactory/edit/edit-constants.d.ts +80 -0
- package/build/parser/satisfactory/edit/edit-constants.d.ts.map +1 -1
- package/build/parser/satisfactory/edit/edit-constants.js +80 -0
- package/build/parser/satisfactory/edit/edit-constants.js.map +1 -1
- package/build/parser/satisfactory/save/factory-game-custom-version.d.ts +34 -0
- package/build/parser/satisfactory/save/factory-game-custom-version.d.ts.map +1 -0
- package/build/parser/satisfactory/save/factory-game-custom-version.js +39 -0
- package/build/parser/satisfactory/save/factory-game-custom-version.js.map +1 -0
- package/build/parser/satisfactory/save/level-to-destroyed-actors-map.d.ts +9 -0
- package/build/parser/satisfactory/save/level-to-destroyed-actors-map.d.ts.map +1 -0
- package/build/parser/satisfactory/save/level-to-destroyed-actors-map.js +32 -0
- package/build/parser/satisfactory/save/level-to-destroyed-actors-map.js.map +1 -0
- package/build/parser/satisfactory/save/level.class.d.ts +16 -10
- package/build/parser/satisfactory/save/level.class.d.ts.map +1 -1
- package/build/parser/satisfactory/save/level.class.js +70 -24
- package/build/parser/satisfactory/save/level.class.js.map +1 -1
- package/build/parser/satisfactory/save/object-references-list.d.ts +4 -4
- package/build/parser/satisfactory/save/object-references-list.d.ts.map +1 -1
- package/build/parser/satisfactory/save/object-references-list.js.map +1 -1
- package/build/parser/satisfactory/save/satisfactory-save-header.d.ts +29 -0
- package/build/parser/satisfactory/save/satisfactory-save-header.d.ts.map +1 -0
- package/build/parser/satisfactory/save/satisfactory-save-header.js +111 -0
- package/build/parser/satisfactory/save/satisfactory-save-header.js.map +1 -0
- package/build/parser/satisfactory/save/satisfactory-save.d.ts +6 -4
- package/build/parser/satisfactory/save/satisfactory-save.d.ts.map +1 -1
- package/build/parser/satisfactory/save/satisfactory-save.js +4 -1
- package/build/parser/satisfactory/save/satisfactory-save.js.map +1 -1
- package/build/parser/satisfactory/save/save-body-chunks.d.ts +25 -0
- package/build/parser/satisfactory/save/save-body-chunks.d.ts.map +1 -0
- package/build/parser/satisfactory/save/save-body-chunks.js +118 -0
- package/build/parser/satisfactory/save/save-body-chunks.js.map +1 -0
- package/build/parser/satisfactory/save/save-custom-version.d.ts +57 -0
- package/build/parser/satisfactory/save/save-custom-version.d.ts.map +1 -0
- package/build/parser/satisfactory/save/save-custom-version.js +62 -0
- package/build/parser/satisfactory/save/save-custom-version.js.map +1 -0
- package/build/parser/satisfactory/save/save-header-type.d.ts +18 -0
- package/build/parser/satisfactory/save/save-header-type.d.ts.map +1 -0
- package/build/parser/satisfactory/save/save-header-type.js +22 -0
- package/build/parser/satisfactory/save/save-header-type.js.map +1 -0
- package/build/parser/satisfactory/save/save-reader.d.ts +14 -12
- package/build/parser/satisfactory/save/save-reader.d.ts.map +1 -1
- package/build/parser/satisfactory/save/save-reader.js +32 -134
- package/build/parser/satisfactory/save/save-reader.js.map +1 -1
- package/build/parser/satisfactory/save/save-writer.d.ts +7 -9
- package/build/parser/satisfactory/save/save-writer.d.ts.map +1 -1
- package/build/parser/satisfactory/save/save-writer.js +8 -95
- package/build/parser/satisfactory/save/save-writer.js.map +1 -1
- package/build/parser/satisfactory/save/save.types.d.ts +5 -25
- package/build/parser/satisfactory/save/save.types.d.ts.map +1 -1
- package/build/parser/satisfactory/save/save.types.js.map +1 -1
- package/build/parser/satisfactory/types/objects/SaveComponent.d.ts +6 -5
- package/build/parser/satisfactory/types/objects/SaveComponent.d.ts.map +1 -1
- package/build/parser/satisfactory/types/objects/SaveComponent.js +2 -2
- package/build/parser/satisfactory/types/objects/SaveComponent.js.map +1 -1
- package/build/parser/satisfactory/types/objects/SaveEntity.d.ts +7 -8
- package/build/parser/satisfactory/types/objects/SaveEntity.d.ts.map +1 -1
- package/build/parser/satisfactory/types/objects/SaveEntity.js +7 -10
- package/build/parser/satisfactory/types/objects/SaveEntity.js.map +1 -1
- package/build/parser/satisfactory/types/objects/SaveObject.d.ts +11 -9
- package/build/parser/satisfactory/types/objects/SaveObject.d.ts.map +1 -1
- package/build/parser/satisfactory/types/objects/SaveObject.js +17 -9
- package/build/parser/satisfactory/types/objects/SaveObject.js.map +1 -1
- package/build/parser/satisfactory/types/property/PropertiesList.d.ts +6 -6
- package/build/parser/satisfactory/types/property/PropertiesList.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/PropertiesList.js +7 -7
- package/build/parser/satisfactory/types/property/PropertiesList.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/AbstractBaseProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/BoolArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/BoolArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/BoolArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ByteArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ByteArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ByteArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/DoubleArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/DoubleArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/DoubleArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/EnumArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/EnumArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/EnumArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/FloatArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/FloatArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/FloatArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int32ArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int32ArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int32ArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int64ArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int64ArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int64ArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ObjectArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ObjectArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/ObjectArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/SoftObjectArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/SoftObjectArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/SoftObjectArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/StrArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/StrArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/StrArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/StructArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/StructArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/StructArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/TextArrayProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/TextArrayProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ArrayProperty/TextArrayProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/BoolProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/BoolProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/BoolProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ByteProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/ByteProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ByteProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/DoubleProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/DoubleProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/DoubleProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/EnumProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/EnumProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/EnumProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/FloatProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/FloatProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/FloatProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Int32Property.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/Int32Property.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Int32Property.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Int64Property.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/Int64Property.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Int64Property.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Int8Property.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/Int8Property.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Int8Property.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/MapProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/MapProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/MapProperty.js +5 -5
- package/build/parser/satisfactory/types/property/generic/MapProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ObjectProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/ObjectProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/ObjectProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/Int32SetProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/SetProperty/Int32SetProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/Int32SetProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/ObjectSetProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/SetProperty/ObjectSetProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/ObjectSetProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/SetProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/SetProperty/SetProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/SetProperty.js +4 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/SetProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/StrSetProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/SetProperty/StrSetProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/StrSetProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/StructSetProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/SetProperty/StructSetProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/StructSetProperty.js +1 -2
- package/build/parser/satisfactory/types/property/generic/SetProperty/StructSetProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty.d.ts +4 -4
- package/build/parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/StrProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/StrProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/StrProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts +11 -15
- package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/StructProperty.js +32 -36
- package/build/parser/satisfactory/types/property/generic/StructProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/TextProperty.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Uint32Property.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/Uint32Property.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Uint32Property.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Uint64Property.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/Uint64Property.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Uint64Property.js.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Uint8Property.d.ts +6 -6
- package/build/parser/satisfactory/types/property/generic/Uint8Property.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/generic/Uint8Property.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties.d.ts +25 -5
- package/build/parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties.js +70 -44
- package/build/parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/CircuitSpecialProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/CircuitSpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/CircuitSpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/ConveyorChainActorSpecialProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/ConveyorChainActorSpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/ConveyorChainActorSpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/ConveyorSpecialProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/ConveyorSpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/ConveyorSpecialProperties.js +2 -2
- package/build/parser/satisfactory/types/property/special/ConveyorSpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/EmptySpecialProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/EmptySpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/EmptySpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/ObjectsListSpecialProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/ObjectsListSpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/ObjectsListSpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/PlayerSpecialProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/PlayerSpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/PlayerSpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/PowerLineSpecialProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/PowerLineSpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/PowerLineSpecialProperties.js +12 -3
- package/build/parser/satisfactory/types/property/special/PowerLineSpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/SpecialDroneActionProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/SpecialDroneActionProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/SpecialDroneActionProperties.js +4 -4
- package/build/parser/satisfactory/types/property/special/SpecialDroneActionProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/SpecialProperties.d.ts +4 -4
- package/build/parser/satisfactory/types/property/special/SpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/SpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/VehicleSpecialProperties.d.ts +6 -9
- package/build/parser/satisfactory/types/property/special/VehicleSpecialProperties.d.ts.map +1 -1
- package/build/parser/satisfactory/types/property/special/VehicleSpecialProperties.js +3 -8
- package/build/parser/satisfactory/types/property/special/VehicleSpecialProperties.js.map +1 -1
- package/build/parser/satisfactory/types/property/special/runtime-buildable-instance-data-version.d.ts +8 -0
- package/build/parser/satisfactory/types/property/special/runtime-buildable-instance-data-version.d.ts.map +1 -0
- package/build/parser/satisfactory/types/property/special/runtime-buildable-instance-data-version.js +12 -0
- package/build/parser/satisfactory/types/property/special/runtime-buildable-instance-data-version.js.map +1 -0
- package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.d.ts +4 -4
- package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.js +4 -4
- package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.js.map +1 -1
- package/build/parser/satisfactory/types/structs/FGDynamicStruct.d.ts +14 -0
- package/build/parser/satisfactory/types/structs/FGDynamicStruct.d.ts.map +1 -0
- package/build/parser/satisfactory/types/structs/FGDynamicStruct.js +34 -0
- package/build/parser/satisfactory/types/structs/FGDynamicStruct.js.map +1 -0
- package/build/parser/satisfactory/types/structs/GUID.d.ts +4 -4
- package/build/parser/satisfactory/types/structs/GUID.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/GUID.js.map +1 -1
- package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts +4 -4
- package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/GUIDInfo.js.map +1 -1
- package/build/parser/satisfactory/types/structs/MD5Hash.d.ts +4 -4
- package/build/parser/satisfactory/types/structs/MD5Hash.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/MD5Hash.js.map +1 -1
- package/build/parser/satisfactory/types/structs/ObjectReference.d.ts +5 -4
- package/build/parser/satisfactory/types/structs/ObjectReference.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/ObjectReference.js +1 -0
- package/build/parser/satisfactory/types/structs/ObjectReference.js.map +1 -1
- package/build/parser/satisfactory/types/structs/SoftObjectReference.d.ts +4 -4
- package/build/parser/satisfactory/types/structs/SoftObjectReference.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/SoftObjectReference.js.map +1 -1
- package/build/parser/satisfactory/types/structs/Transform.d.ts +6 -6
- package/build/parser/satisfactory/types/structs/Transform.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/Transform.js.map +1 -1
- package/build/parser/satisfactory/types/structs/VehiclePhysicsData.d.ts +17 -0
- package/build/parser/satisfactory/types/structs/VehiclePhysicsData.d.ts.map +1 -0
- package/build/parser/satisfactory/types/structs/VehiclePhysicsData.js +26 -0
- package/build/parser/satisfactory/types/structs/VehiclePhysicsData.js.map +1 -0
- package/build/parser/satisfactory/types/structs/col4.d.ts +6 -6
- package/build/parser/satisfactory/types/structs/col4.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/col4.js.map +1 -1
- package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.d.ts +4 -4
- package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.js.map +1 -1
- package/build/parser/satisfactory/types/structs/vec2.d.ts +6 -6
- package/build/parser/satisfactory/types/structs/vec2.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/vec2.js.map +1 -1
- package/build/parser/satisfactory/types/structs/vec3.d.ts +8 -8
- package/build/parser/satisfactory/types/structs/vec3.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/vec3.js.map +1 -1
- package/build/parser/satisfactory/types/structs/vec4.d.ts +6 -6
- package/build/parser/satisfactory/types/structs/vec4.d.ts.map +1 -1
- package/build/parser/satisfactory/types/structs/vec4.js.map +1 -1
- package/build/parser/stream/reworked/readable-stream-parser.d.ts +2 -2
- package/build/parser/stream/reworked/readable-stream-parser.d.ts.map +1 -1
- package/build/parser/stream/reworked/readable-stream-parser.js +59 -20
- package/build/parser/stream/reworked/readable-stream-parser.js.map +1 -1
- package/build/parser/stream/reworked/save-stream-json-stringifier.js +1 -1
- package/build/parser/stream/reworked/save-stream-json-stringifier.js.map +1 -1
- package/build/parser/stream/reworked/save-stream-writer.class.d.ts +2 -2
- package/build/parser/stream/reworked/save-stream-writer.class.d.ts.map +1 -1
- package/build/parser/stream/reworked/save-stream-writer.class.js.map +1 -1
- package/docs/assets/highlight.css +4 -4
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/BlueprintConfigReader.html +7 -6
- package/docs/classes/BlueprintConfigWriter.html +6 -4
- package/docs/classes/BlueprintReader.html +7 -5
- package/docs/classes/BlueprintWriter.html +6 -4
- package/docs/classes/CompressionLibraryError.html +2 -2
- package/docs/classes/CorruptBlueprintError.html +11 -0
- package/docs/classes/CorruptSaveError.html +2 -2
- package/docs/classes/Parser.html +13 -13
- package/docs/classes/ParserError.html +2 -2
- package/docs/classes/ReadableStreamParser.html +4 -4
- package/docs/classes/SatisfactorySave.html +3 -2
- package/docs/classes/SaveComponent.html +6 -5
- package/docs/classes/SaveEntity.html +6 -6
- package/docs/classes/SaveObject.html +6 -5
- package/docs/classes/SaveReader.html +11 -7
- package/docs/classes/SaveStreamJsonStringifier.html +2 -2
- package/docs/classes/SaveStreamWriter.html +2 -2
- package/docs/classes/SaveWriter.html +6 -4
- package/docs/classes/TimeoutError.html +2 -2
- package/docs/classes/UnimplementedError.html +2 -2
- package/docs/classes/UnsupportedVersionError.html +2 -2
- package/docs/enums/BlueprintConfigVersion.html +9 -0
- package/docs/enums/CompressionAlgorithmCode.html +2 -0
- package/docs/enums/FactoryGameCustomVersion.html +33 -0
- package/docs/enums/RuntimeBuildableInstanceDataVersion.html +7 -0
- package/docs/enums/SaveCustomVersion.html +64 -0
- package/docs/enums/SaveHeaderType.html +17 -0
- 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 -0
- package/docs/functions/BlueprintConfig.Serialize.html +1 -0
- package/docs/functions/BlueprintHeader.Parse.html +1 -0
- package/docs/functions/BlueprintHeader.Serialize.html +1 -0
- 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 -0
- package/docs/functions/BuildableTypeInstance.Serialize.html +1 -0
- 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/FGDynamicStruct.Parse.html +1 -0
- package/docs/functions/FGDynamicStruct.Serialize.html +1 -0
- package/docs/functions/FICFrameRange.Parse.html +1 -1
- package/docs/functions/FICFrameRange.Serialize.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/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 -0
- 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 -0
- package/docs/functions/SatisfactorySaveHeader.Serialize.html +1 -0
- package/docs/functions/SaveBodyChunks.CompressDataIntoChunks.html +1 -0
- package/docs/functions/SaveBodyChunks.DecompressChunks.html +1 -0
- 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/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 -0
- package/docs/functions/VehiclePhysicsData.Serialize.html +1 -0
- 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/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/hierarchy.html +1 -1
- package/docs/index.html +34 -21
- package/docs/interfaces/Blueprint.html +2 -2
- package/docs/interfaces/BlueprintConfig-1.html +8 -0
- package/docs/interfaces/SaveComponentHeader.html +3 -2
- package/docs/interfaces/SaveEntityHeader.html +3 -2
- package/docs/interfaces/SaveObjectHeader.html +3 -2
- package/docs/modules/AbstractBaseProperty.html +1 -1
- package/docs/modules/ArrayProperty.html +1 -1
- package/docs/modules/BlueprintConfig.html +3 -0
- package/docs/modules/BlueprintHeader.html +3 -0
- 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 +3 -0
- 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/FGDynamicStruct.html +3 -0
- package/docs/modules/FICFrameRange.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/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 +2 -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 +3 -0
- package/docs/modules/SaveBodyChunks.html +5 -0
- package/docs/modules/SetProperty.html +1 -1
- package/docs/modules/SoftObjectArrayProperty.html +1 -1
- 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 +3 -0
- 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 +31 -7
- 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 -0
- 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 -0
- package/docs/types/ByteArray4.html +1 -0
- 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 -0
- package/docs/types/ChunkSummary.html +1 -0
- package/docs/types/CircuitSpecialProperties-1.html +1 -1
- package/docs/types/ClientIdentityInfo.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/FGDynamicStruct-1.html +1 -0
- package/docs/types/FICFrameRange-1.html +1 -1
- package/docs/types/FICFrameRangeStructPropertyValue.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 -0
- 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 +3 -1
- package/docs/types/Levels.html +1 -0
- package/docs/types/MAP_STRUCT_KEY_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 -0
- 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/RoughSaveVersion.html +1 -1
- package/docs/types/SatisfactoryModMetadata.html +1 -0
- package/docs/types/SatisfactorySaveHeader-1.html +1 -0
- package/docs/types/SaveBodyChunks-1.html +1 -0
- package/docs/types/SaveBodyValidation.html +1 -0
- package/docs/types/SetProperty.AvailableSetPropertyTypes.html +1 -1
- package/docs/types/SoftObjectArrayProperty-1.html +1 -1
- 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 -0
- 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 -0
- package/docs/variables/EDIT.html +1 -1
- package/docs/variables/SaveBodyChunks.HEADER_V1.html +1 -0
- package/docs/variables/SaveBodyChunks.HEADER_V2.html +1 -0
- package/package.json +3 -1
- package/docs/interfaces/BlueprintConfig.html +0 -6
- package/docs/interfaces/ModData.html +0 -4
- package/docs/interfaces/SatisfactoryModMetadata.html +0 -4
- package/docs/interfaces/SatisfactorySaveHeader.html +0 -18
- package/docs/types/BlueprintHeader.html +0 -1
- package/docs/types/BuildableTypeInstance.html +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ContextReader } from '../../context/context-reader';
|
|
2
|
+
import { ContextWriter } from '../../context/context-writer';
|
|
3
|
+
import { col4 } from '../types/structs/col4';
|
|
4
|
+
export interface BlueprintConfig {
|
|
5
|
+
configVersion: number;
|
|
6
|
+
description: string;
|
|
7
|
+
color: col4;
|
|
8
|
+
iconID: number;
|
|
9
|
+
referencedIconLibrary?: string;
|
|
10
|
+
iconLibraryType?: string;
|
|
11
|
+
lastEditedBy?: {
|
|
12
|
+
accountId: string;
|
|
13
|
+
displayName: string;
|
|
14
|
+
platformName: string;
|
|
15
|
+
}[];
|
|
16
|
+
}
|
|
17
|
+
export declare namespace BlueprintConfig {
|
|
18
|
+
const Parse: (reader: ContextReader) => BlueprintConfig;
|
|
19
|
+
const Serialize: (writer: ContextWriter, config: BlueprintConfig) => void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=blueprint-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blueprint-config.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAK7C,MAAM,WAAW,eAAe;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;CACP;AAED,yBAAiB,eAAe,CAAC;IACtB,MAAM,KAAK,WAAY,aAAa,oBAgC1C,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,UAAU,eAAe,SAmBvE,CAAA;CACJ"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlueprintConfig = void 0;
|
|
4
|
+
const col4_1 = require("../types/structs/col4");
|
|
5
|
+
const blueprint_config_version_1 = require("./blueprint-config-version");
|
|
6
|
+
var BlueprintConfig;
|
|
7
|
+
(function (BlueprintConfig) {
|
|
8
|
+
BlueprintConfig.Parse = (reader) => {
|
|
9
|
+
const configVersion = reader.readInt32();
|
|
10
|
+
const description = reader.readString();
|
|
11
|
+
const iconID = reader.readInt32();
|
|
12
|
+
const color = col4_1.col4.ParseRGBA(reader);
|
|
13
|
+
reader.context.blueprintConfigVersion = configVersion;
|
|
14
|
+
const config = {
|
|
15
|
+
configVersion,
|
|
16
|
+
description,
|
|
17
|
+
color,
|
|
18
|
+
iconID,
|
|
19
|
+
};
|
|
20
|
+
if (configVersion >= blueprint_config_version_1.BlueprintConfigVersion.AddedIconLibraryPath) {
|
|
21
|
+
config.referencedIconLibrary = reader.readString();
|
|
22
|
+
config.iconLibraryType = reader.readString();
|
|
23
|
+
}
|
|
24
|
+
if (configVersion >= blueprint_config_version_1.BlueprintConfigVersion.AddedLastEditedBy) {
|
|
25
|
+
const count = reader.readInt32();
|
|
26
|
+
config.lastEditedBy = [];
|
|
27
|
+
for (let i = 0; i < count; i++) {
|
|
28
|
+
config.lastEditedBy?.push({
|
|
29
|
+
accountId: reader.readString(),
|
|
30
|
+
displayName: reader.readString(),
|
|
31
|
+
platformName: reader.readString()
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return config;
|
|
36
|
+
};
|
|
37
|
+
BlueprintConfig.Serialize = (writer, config) => {
|
|
38
|
+
writer.writeInt32(config.configVersion);
|
|
39
|
+
writer.writeString(config.description);
|
|
40
|
+
writer.writeInt32(config.iconID);
|
|
41
|
+
col4_1.col4.SerializeRGBA(writer, config.color);
|
|
42
|
+
if (config.configVersion >= blueprint_config_version_1.BlueprintConfigVersion.AddedIconLibraryPath) {
|
|
43
|
+
writer.writeString(config.referencedIconLibrary ?? '');
|
|
44
|
+
writer.writeString(config.iconLibraryType ?? '');
|
|
45
|
+
}
|
|
46
|
+
if (config.configVersion >= blueprint_config_version_1.BlueprintConfigVersion.AddedLastEditedBy) {
|
|
47
|
+
writer.writeInt32(config.lastEditedBy.length);
|
|
48
|
+
for (const account of config.lastEditedBy) {
|
|
49
|
+
writer.writeString(account.accountId);
|
|
50
|
+
writer.writeString(account.displayName);
|
|
51
|
+
writer.writeString(account.platformName);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
})(BlueprintConfig || (exports.BlueprintConfig = BlueprintConfig = {}));
|
|
56
|
+
//# sourceMappingURL=blueprint-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blueprint-config.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-config.ts"],"names":[],"mappings":";;;AAEA,gDAA6C;AAC7C,yEAAoE;AAkBpE,IAAiB,eAAe,CAuD/B;AAvDD,WAAiB,eAAe;IACf,qBAAK,GAAG,CAAC,MAAqB,EAAE,EAAE;QAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,WAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,sBAAsB,GAAG,aAAa,CAAC;QAEtD,MAAM,MAAM,GAAoB;YAC5B,aAAa;YACb,WAAW;YACX,KAAK;YACL,MAAM;SACT,CAAC;QAEF,IAAI,aAAa,IAAI,iDAAsB,CAAC,oBAAoB,EAAE,CAAC;YAC/D,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,aAAa,IAAI,iDAAsB,CAAC,iBAAiB,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC;oBACtB,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;oBAC9B,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE;oBAChC,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE;iBACpC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAEW,yBAAS,GAAG,CAAC,MAAqB,EAAE,MAAuB,EAAE,EAAE;QACxE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,WAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,aAAa,IAAI,iDAAsB,CAAC,oBAAoB,EAAE,CAAC;YACtE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,IAAI,iDAAsB,CAAC,iBAAiB,EAAE,CAAC;YACnE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,YAAa,EAAE,CAAC;gBACzC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC,CAAA;AACL,CAAC,EAvDgB,eAAe,+BAAf,eAAe,QAuD/B","sourcesContent":["import { ContextReader } from '../../context/context-reader';\nimport { ContextWriter } from '../../context/context-writer';\nimport { col4 } from '../types/structs/col4';\nimport { BlueprintConfigVersion } from './blueprint-config-version';\n\n\n/** @public */\nexport interface BlueprintConfig {\n configVersion: number;\n description: string;\n color: col4;\n iconID: number;\n referencedIconLibrary?: string;\n iconLibraryType?: string;\n lastEditedBy?: {\n accountId: string;\n displayName: string;\n platformName: string;\n }[];\n}\n\nexport namespace BlueprintConfig {\n export const Parse = (reader: ContextReader) => {\n const configVersion = reader.readInt32();\n const description = reader.readString();\n const iconID = reader.readInt32();\n const color = col4.ParseRGBA(reader);\n reader.context.blueprintConfigVersion = configVersion;\n\n const config: BlueprintConfig = {\n configVersion,\n description,\n color,\n iconID,\n };\n\n if (configVersion >= BlueprintConfigVersion.AddedIconLibraryPath) {\n config.referencedIconLibrary = reader.readString();\n config.iconLibraryType = reader.readString();\n }\n\n if (configVersion >= BlueprintConfigVersion.AddedLastEditedBy) {\n const count = reader.readInt32();\n config.lastEditedBy = [];\n for (let i = 0; i < count; i++) {\n config.lastEditedBy?.push({\n accountId: reader.readString(),\n displayName: reader.readString(),\n platformName: reader.readString()\n });\n }\n }\n\n return config;\n };\n\n export const Serialize = (writer: ContextWriter, config: BlueprintConfig) => {\n writer.writeInt32(config.configVersion);\n writer.writeString(config.description);\n writer.writeInt32(config.iconID);\n col4.SerializeRGBA(writer, config.color);\n\n if (config.configVersion >= BlueprintConfigVersion.AddedIconLibraryPath) {\n writer.writeString(config.referencedIconLibrary ?? '');\n writer.writeString(config.iconLibraryType ?? '');\n }\n\n if (config.configVersion >= BlueprintConfigVersion.AddedLastEditedBy) {\n writer.writeInt32(config.lastEditedBy!.length);\n for (const account of config.lastEditedBy!) {\n writer.writeString(account.accountId);\n writer.writeString(account.displayName);\n writer.writeString(account.platformName);\n }\n }\n }\n}"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ContextReader } from '../../context/context-reader';
|
|
2
|
+
import { ContextWriter } from '../../context/context-writer';
|
|
3
|
+
import { ObjectReference } from '../types/structs/ObjectReference';
|
|
4
|
+
import { vec3 } from '../types/structs/vec3';
|
|
5
|
+
export type BlueprintHeader = {
|
|
6
|
+
headerVersion: number;
|
|
7
|
+
saveVersion: number;
|
|
8
|
+
buildVersion: number;
|
|
9
|
+
designerDimension?: vec3;
|
|
10
|
+
itemCosts: [ObjectReference, number][];
|
|
11
|
+
recipeReferences: ObjectReference[];
|
|
12
|
+
};
|
|
13
|
+
export declare namespace BlueprintHeader {
|
|
14
|
+
const Parse: (reader: ContextReader) => {
|
|
15
|
+
headerVersion: number;
|
|
16
|
+
saveVersion: number;
|
|
17
|
+
buildVersion: number;
|
|
18
|
+
designerDimension: vec3;
|
|
19
|
+
recipeReferences: ObjectReference[];
|
|
20
|
+
itemCosts: [ObjectReference, number][];
|
|
21
|
+
};
|
|
22
|
+
const Serialize: (writer: ContextWriter, header: BlueprintHeader) => void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=blueprint-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blueprint-header.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,MAAM,MAAM,eAAe,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;IACvC,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACvC,CAAA;AAED,yBAAiB,eAAe,CAAC;IAEtB,MAAM,KAAK,WAAY,aAAa;;;;;;;KAwC1C,CAAA;IAEM,MAAM,SAAS,WAAY,aAAa,UAAU,eAAe,SA4BvE,CAAA;CACJ"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlueprintHeader = void 0;
|
|
4
|
+
const ObjectReference_1 = require("../types/structs/ObjectReference");
|
|
5
|
+
const vec3_1 = require("../types/structs/vec3");
|
|
6
|
+
var BlueprintHeader;
|
|
7
|
+
(function (BlueprintHeader) {
|
|
8
|
+
BlueprintHeader.Parse = (reader) => {
|
|
9
|
+
const headerVersion = reader.readInt32();
|
|
10
|
+
const saveVersion = reader.readInt32();
|
|
11
|
+
const buildVersion = reader.readInt32();
|
|
12
|
+
const dimensions = vec3_1.vec3.ParseInt(reader);
|
|
13
|
+
reader.context.headerVersion = headerVersion;
|
|
14
|
+
reader.context.saveVersion = saveVersion;
|
|
15
|
+
reader.context.buildVersion = buildVersion;
|
|
16
|
+
let itemTypeCount = reader.readInt32();
|
|
17
|
+
const itemCosts = new Array(itemTypeCount).fill([{ levelName: '', pathName: '' }, 0]);
|
|
18
|
+
for (let i = 0; i < itemTypeCount; i++) {
|
|
19
|
+
let itemPathName = ObjectReference_1.ObjectReference.read(reader);
|
|
20
|
+
let itemCount = reader.readInt32();
|
|
21
|
+
itemCosts[i] = [itemPathName, itemCount];
|
|
22
|
+
}
|
|
23
|
+
let recipeCount = reader.readInt32();
|
|
24
|
+
const recipeRefs = new Array(recipeCount).fill({ levelName: '', pathName: '' });
|
|
25
|
+
for (let i = 0; i < recipeCount; i++) {
|
|
26
|
+
const recipeName = ObjectReference_1.ObjectReference.read(reader);
|
|
27
|
+
recipeRefs[i] = recipeName;
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
headerVersion,
|
|
31
|
+
saveVersion,
|
|
32
|
+
buildVersion,
|
|
33
|
+
designerDimension: dimensions,
|
|
34
|
+
recipeReferences: recipeRefs,
|
|
35
|
+
itemCosts
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
BlueprintHeader.Serialize = (writer, header) => {
|
|
39
|
+
writer.writeInt32(header.headerVersion);
|
|
40
|
+
writer.writeInt32(header.saveVersion);
|
|
41
|
+
writer.writeInt32(header.buildVersion);
|
|
42
|
+
let dimensions = [
|
|
43
|
+
header.designerDimension?.x ?? 4,
|
|
44
|
+
header.designerDimension?.y ?? 4,
|
|
45
|
+
header.designerDimension?.z ?? 4,
|
|
46
|
+
].map(dim => dim < 4 ? 4 : dim);
|
|
47
|
+
writer.writeInt32(dimensions[0]);
|
|
48
|
+
writer.writeInt32(dimensions[1]);
|
|
49
|
+
writer.writeInt32(dimensions[2]);
|
|
50
|
+
writer.writeInt32(header.itemCosts.length);
|
|
51
|
+
for (const itemCost of header.itemCosts) {
|
|
52
|
+
ObjectReference_1.ObjectReference.write(writer, itemCost[0]);
|
|
53
|
+
writer.writeInt32(itemCost[1]);
|
|
54
|
+
}
|
|
55
|
+
writer.writeInt32(header.recipeReferences.length);
|
|
56
|
+
for (const recipeReference of header.recipeReferences) {
|
|
57
|
+
ObjectReference_1.ObjectReference.write(writer, recipeReference);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
})(BlueprintHeader || (exports.BlueprintHeader = BlueprintHeader = {}));
|
|
61
|
+
//# sourceMappingURL=blueprint-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blueprint-header.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-header.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextReader } from '../../context/context-reader';\nimport { ContextWriter } from '../../context/context-writer';\nimport { ObjectReference } from '../types/structs/ObjectReference';\nimport { vec3 } from '../types/structs/vec3';\n\n/** @public */\nexport type BlueprintHeader = {\n headerVersion: number,\n saveVersion: number,\n buildVersion: number,\n designerDimension?: vec3;\n itemCosts: [ObjectReference, number][];\n recipeReferences: ObjectReference[];\n}\n\nexport namespace BlueprintHeader {\n\n export const Parse = (reader: ContextReader) => {\n\n const headerVersion = reader.readInt32();\n const saveVersion = reader.readInt32();\n const buildVersion = reader.readInt32();\n const dimensions = vec3.ParseInt(reader); // e.g. 4,4,4 - dimensions in foundation size\n\n // set context\n reader.context.headerVersion = headerVersion;\n reader.context.saveVersion = saveVersion;\n reader.context.buildVersion = buildVersion;\n\n\n // list of item costs.\n let itemTypeCount = reader.readInt32();\n const itemCosts = new Array<[ObjectReference, number]>(itemTypeCount).fill([{ levelName: '', pathName: '' }, 0]);\n for (let i = 0; i < itemTypeCount; i++) {\n let itemPathName = ObjectReference.read(reader);\n let itemCount = reader.readInt32();\n\n itemCosts[i] = [itemPathName, itemCount];\n }\n\n // list of recipes\n let recipeCount = reader.readInt32();\n const recipeRefs = new Array<ObjectReference>(recipeCount).fill({ levelName: '', pathName: '' });\n for (let i = 0; i < recipeCount; i++) {\n const recipeName = ObjectReference.read(reader);\n recipeRefs[i] = recipeName;\n }\n\n return {\n headerVersion,\n saveVersion,\n buildVersion,\n designerDimension: dimensions,\n recipeReferences: recipeRefs,\n itemCosts\n } satisfies BlueprintHeader;\n\n }\n\n export const Serialize = (writer: ContextWriter, header: BlueprintHeader) => {\n\n writer.writeInt32(header.headerVersion);\n writer.writeInt32(header.saveVersion);\n writer.writeInt32(header.buildVersion);\n\n // we assume a minimum of 4 foundations dimensions, standard blueprint designer.\n let dimensions = [\n header.designerDimension?.x ?? 4,\n header.designerDimension?.y ?? 4,\n header.designerDimension?.z ?? 4,\n ].map(dim => dim < 4 ? 4 : dim);\n writer.writeInt32(dimensions[0]);\n writer.writeInt32(dimensions[1]);\n writer.writeInt32(dimensions[2]);\n\n // list of item costs.\n writer.writeInt32(header.itemCosts.length);\n for (const itemCost of header.itemCosts) {\n ObjectReference.write(writer, itemCost[0])\n writer.writeInt32(itemCost[1]);\n }\n\n // list of recipes.\n writer.writeInt32(header.recipeReferences.length);\n for (const recipeReference of header.recipeReferences) {\n ObjectReference.write(writer, recipeReference);\n }\n }\n}"]}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ChunkCompressionInfo } from "../../file.types";
|
|
1
|
+
import { ContextReader } from '../../context/context-reader';
|
|
2
|
+
import { ChunkCompressionInfo } from '../save/save-body-chunks';
|
|
4
3
|
import { SaveComponent } from "../types/objects/SaveComponent";
|
|
5
4
|
import { SaveEntity } from "../types/objects/SaveEntity";
|
|
6
|
-
|
|
7
|
-
export declare class BlueprintReader extends ByteReader {
|
|
5
|
+
export declare class BlueprintReader extends ContextReader {
|
|
8
6
|
compressionInfo: ChunkCompressionInfo;
|
|
9
|
-
constructor(bluePrintBuffer:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
constructor(bluePrintBuffer: ArrayBufferLike);
|
|
8
|
+
inflateChunks(): {
|
|
9
|
+
inflatedData: ArrayBufferLike;
|
|
10
|
+
};
|
|
11
|
+
static ParseObjects(reader: ContextReader): (SaveEntity | SaveComponent)[];
|
|
13
12
|
private static ReadBlueprintObjectContents;
|
|
14
13
|
}
|
|
15
|
-
export declare class BlueprintConfigReader extends
|
|
16
|
-
bluePrintConfigBuffer:
|
|
17
|
-
constructor(bluePrintConfigBuffer:
|
|
18
|
-
parse: () => BlueprintConfig;
|
|
19
|
-
static ParseConfig(reader: BinaryReadable): BlueprintConfig;
|
|
14
|
+
export declare class BlueprintConfigReader extends ContextReader {
|
|
15
|
+
bluePrintConfigBuffer: ArrayBufferLike;
|
|
16
|
+
constructor(bluePrintConfigBuffer: ArrayBufferLike);
|
|
20
17
|
}
|
|
21
18
|
//# sourceMappingURL=blueprint-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprint-reader.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blueprint-reader.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAkB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAmB,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAIvE,qBAAa,eAAgB,SAAQ,aAAa;IAE1C,eAAe,EAAE,oBAAoB,CAI1C;gBAEU,eAAe,EAAE,eAAe;IAIrC,aAAa,IAAI;QAAE,YAAY,EAAE,eAAe,CAAA;KAAE;WAqB3C,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE;IAiBjF,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAmB1C;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IAEpC,qBAAqB,EAAE,eAAe;gBAAtC,qBAAqB,EAAE,eAAe;CAGzD"}
|
|
@@ -1,105 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.BlueprintConfigReader = exports.BlueprintReader = void 0;
|
|
7
|
-
const pako_1 = __importDefault(require("pako"));
|
|
8
4
|
const alignment_enum_1 = require("../../byte/alignment.enum");
|
|
9
|
-
const
|
|
5
|
+
const context_reader_1 = require("../../context/context-reader");
|
|
10
6
|
const parser_error_1 = require("../../error/parser.error");
|
|
11
7
|
const level_class_1 = require("../save/level.class");
|
|
12
|
-
const
|
|
8
|
+
const save_body_chunks_1 = require("../save/save-body-chunks");
|
|
13
9
|
const SaveComponent_1 = require("../types/objects/SaveComponent");
|
|
14
10
|
const SaveEntity_1 = require("../types/objects/SaveEntity");
|
|
15
|
-
|
|
16
|
-
const ObjectReference_1 = require("../types/structs/ObjectReference");
|
|
17
|
-
const vec3_1 = require("../types/structs/vec3");
|
|
18
|
-
class BlueprintReader extends byte_reader_class_1.ByteReader {
|
|
11
|
+
class BlueprintReader extends context_reader_1.ContextReader {
|
|
19
12
|
constructor(bluePrintBuffer) {
|
|
20
13
|
super(bluePrintBuffer, alignment_enum_1.Alignment.LITTLE_ENDIAN);
|
|
21
14
|
this.compressionInfo = {
|
|
22
15
|
packageFileTag: 0,
|
|
23
16
|
maxUncompressedChunkContentSize: 0,
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
static ReadHeader(reader) {
|
|
28
|
-
const alwaysTwo = reader.readBytes(4);
|
|
29
|
-
const objectVersion = reader.readBytes(2 * 4);
|
|
30
|
-
const dimensions = vec3_1.vec3.ParseInt(reader);
|
|
31
|
-
let itemTypeCount = reader.readInt32();
|
|
32
|
-
const itemCosts = new Array(itemTypeCount).fill([{ levelName: '', pathName: '' }, 0]);
|
|
33
|
-
for (let i = 0; i < itemTypeCount; i++) {
|
|
34
|
-
let itemPathName = ObjectReference_1.ObjectReference.read(reader);
|
|
35
|
-
let itemCount = reader.readInt32();
|
|
36
|
-
itemCosts[i] = [itemPathName, itemCount];
|
|
37
|
-
}
|
|
38
|
-
let recipeCount = reader.readInt32();
|
|
39
|
-
const recipeRefs = new Array(recipeCount).fill({ levelName: '', pathName: '' });
|
|
40
|
-
for (let i = 0; i < recipeCount; i++) {
|
|
41
|
-
const recipeName = ObjectReference_1.ObjectReference.read(reader);
|
|
42
|
-
recipeRefs[i] = recipeName;
|
|
43
|
-
}
|
|
44
|
-
return {
|
|
45
|
-
designerDimension: dimensions,
|
|
46
|
-
recipeReferences: recipeRefs,
|
|
47
|
-
itemCosts
|
|
17
|
+
chunkHeaderVersion: save_body_chunks_1.SaveBodyChunks.HEADER_V2
|
|
48
18
|
};
|
|
49
19
|
}
|
|
50
20
|
inflateChunks() {
|
|
51
|
-
|
|
52
|
-
this.
|
|
21
|
+
const result = save_body_chunks_1.SaveBodyChunks.DecompressChunks(this.fileBuffer.slice(this.currentByte), this.alignment);
|
|
22
|
+
this.compressionInfo = result.compressionInfo;
|
|
53
23
|
this.currentByte = 0;
|
|
24
|
+
this.fileBuffer = result.uncompressedData.buffer;
|
|
54
25
|
this.maxByte = this.fileBuffer.byteLength;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this.currentByte = this.compressionInfo.chunkHeaderSize;
|
|
60
|
-
this.handledByte += this.compressionInfo.chunkHeaderSize;
|
|
61
|
-
if (this.compressionInfo.packageFileTag <= 0) {
|
|
62
|
-
this.compressionInfo.packageFileTag = chunkHeader.getUint32(0, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
|
|
63
|
-
}
|
|
64
|
-
if (this.compressionInfo.maxUncompressedChunkContentSize <= 0) {
|
|
65
|
-
this.compressionInfo.maxUncompressedChunkContentSize = chunkHeader.getInt32(8, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
|
|
66
|
-
}
|
|
67
|
-
const chunkCompressedLength = chunkHeader.getInt32(33, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
|
|
68
|
-
const chunkUncompressedLength = chunkHeader.getInt32(25, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
|
|
69
|
-
totalUncompressedBodySize += chunkUncompressedLength;
|
|
70
|
-
const currentChunkSize = chunkCompressedLength;
|
|
71
|
-
let currentChunk = this.fileBuffer.slice(this.currentByte, this.currentByte + currentChunkSize);
|
|
72
|
-
this.handledByte += currentChunkSize;
|
|
73
|
-
this.currentByte += currentChunkSize;
|
|
74
|
-
this.fileBuffer = this.fileBuffer.slice(this.currentByte);
|
|
75
|
-
this.currentByte = 0;
|
|
76
|
-
try {
|
|
77
|
-
let currentInflatedChunk = null;
|
|
78
|
-
currentInflatedChunk = pako_1.default.inflate(currentChunk);
|
|
79
|
-
currentChunks.push(currentInflatedChunk);
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
throw new parser_error_1.ParserError('ParserError', 'An error occurred while calling pako inflate.' + err);
|
|
83
|
-
}
|
|
26
|
+
this.bufferView = new DataView(this.fileBuffer);
|
|
27
|
+
const totalBodyRestSize = this.readInt32();
|
|
28
|
+
if (result.uncompressedData.byteLength !== totalBodyRestSize + 4) {
|
|
29
|
+
throw new parser_error_1.CorruptBlueprintError(`Possibly corrupt. Indicated size of total blueprint body (${totalBodyRestSize + 4}) does not match the uncompressed real size of ${result.uncompressedData.byteLength}.`);
|
|
84
30
|
}
|
|
85
|
-
let newChunkLength = currentChunks.map(cc => cc.length).reduce((prev, cur) => prev + cur);
|
|
86
|
-
const bigWholeChunk = new Uint8Array(newChunkLength);
|
|
87
|
-
let currentLength = 0;
|
|
88
|
-
for (let i = 0; i < currentChunks.length; i++) {
|
|
89
|
-
bigWholeChunk.set(currentChunks[i], currentLength);
|
|
90
|
-
currentLength += currentChunks[i].length;
|
|
91
|
-
}
|
|
92
|
-
this.currentByte = 0;
|
|
93
|
-
this.maxByte = bigWholeChunk.buffer.byteLength;
|
|
94
|
-
this.bufferView = new DataView(bigWholeChunk.buffer);
|
|
95
31
|
return {
|
|
96
|
-
|
|
97
|
-
numChunks: currentChunks.length,
|
|
98
|
-
inflatedData: bigWholeChunk
|
|
32
|
+
inflatedData: this.fileBuffer
|
|
99
33
|
};
|
|
100
34
|
}
|
|
101
35
|
static ParseObjects(reader) {
|
|
102
|
-
const totalBodyRestSize = reader.readInt32();
|
|
103
36
|
const objectHeadersBinarySize = reader.readInt32();
|
|
104
37
|
let objects = [];
|
|
105
38
|
level_class_1.Level.ReadAllObjectHeaders(reader, objects);
|
|
@@ -117,36 +50,19 @@ class BlueprintReader extends byte_reader_class_1.ByteReader {
|
|
|
117
50
|
}
|
|
118
51
|
const obj = objectsList[i];
|
|
119
52
|
if ((0, SaveEntity_1.isSaveEntity)(obj)) {
|
|
120
|
-
SaveEntity_1.SaveEntity.ParseData(obj, len, reader,
|
|
53
|
+
SaveEntity_1.SaveEntity.ParseData(obj, len, reader, obj.typePath);
|
|
121
54
|
}
|
|
122
55
|
else if ((0, SaveComponent_1.isSaveComponent)(obj)) {
|
|
123
|
-
SaveComponent_1.SaveComponent.ParseData(obj, len, reader,
|
|
56
|
+
SaveComponent_1.SaveComponent.ParseData(obj, len, reader, obj.typePath);
|
|
124
57
|
}
|
|
125
58
|
}
|
|
126
59
|
}
|
|
127
60
|
}
|
|
128
61
|
exports.BlueprintReader = BlueprintReader;
|
|
129
|
-
class BlueprintConfigReader extends
|
|
62
|
+
class BlueprintConfigReader extends context_reader_1.ContextReader {
|
|
130
63
|
constructor(bluePrintConfigBuffer) {
|
|
131
64
|
super(bluePrintConfigBuffer, alignment_enum_1.Alignment.LITTLE_ENDIAN);
|
|
132
65
|
this.bluePrintConfigBuffer = bluePrintConfigBuffer;
|
|
133
|
-
this.parse = () => BlueprintConfigReader.ParseConfig(this);
|
|
134
|
-
}
|
|
135
|
-
static ParseConfig(reader) {
|
|
136
|
-
const alwaysTwo = reader.readInt32();
|
|
137
|
-
const description = reader.readString();
|
|
138
|
-
const iconID = reader.readInt32();
|
|
139
|
-
const color = col4_1.col4.ParseRGBA(reader);
|
|
140
|
-
const config = {
|
|
141
|
-
description,
|
|
142
|
-
color,
|
|
143
|
-
iconID,
|
|
144
|
-
};
|
|
145
|
-
if (reader.getBufferPosition() < reader.getBufferLength()) {
|
|
146
|
-
config.referencedIconLibrary = reader.readString();
|
|
147
|
-
config.iconLibraryType = reader.readString();
|
|
148
|
-
}
|
|
149
|
-
return config;
|
|
150
66
|
}
|
|
151
67
|
}
|
|
152
68
|
exports.BlueprintConfigReader = BlueprintConfigReader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprint-reader.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-reader.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,8DAAsD;AAEtD,oEAA0D;AAC1D,2DAAyE;AAEzE,qDAA4C;AAC5C,qDAA6E;AAC7E,kEAAgF;AAChF,4DAAuE;AAEvE,gDAA6C;AAC7C,sEAAmE;AACnE,gDAA6C;AAG7C,MAAa,eAAgB,SAAQ,8BAAU;IAQ9C,YAAY,eAA4B;QACvC,KAAK,CAAC,eAAe,EAAE,0BAAS,CAAC,aAAa,CAAC,CAAC;QAP1C,oBAAe,GAAyB;YAC9C,cAAc,EAAE,CAAC;YACjB,+BAA+B,EAAE,CAAC;YAClC,eAAe,EAAE,oDAAsC;SACvD,CAAC;IAIF,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,MAAsB;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,WAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAIzC,IAAI,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,KAAK,CAA4B,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACjH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,YAAY,GAAG,iCAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAEnC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;QAGD,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,KAAK,CAAkB,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,iCAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QAC5B,CAAC;QAED,OAAO;YACN,iBAAiB,EAAE,UAAU;YAC7B,gBAAgB,EAAE,UAAU;YAC5B,SAAS;SACT,CAAC;IACH,CAAC;IAEM,aAAa;QAGnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAE1C,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,yBAAyB,GAAG,CAAC,CAAC;QAGlC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAGxC,IAAI,WAAW,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;YACxD,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;YAEzD,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,0BAAS,CAAC,aAAa,CAAC,CAAC;YAC5G,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,CAAC,+BAA+B,IAAI,CAAC,EAAE,CAAC;gBAC/D,IAAI,CAAC,eAAe,CAAC,+BAA+B,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,0BAAS,CAAC,aAAa,CAAC,CAAC;YAC5H,CAAC;YAED,MAAM,qBAAqB,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,KAAK,0BAAS,CAAC,aAAa,CAAC,CAAC;YACnG,MAAM,uBAAuB,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,KAAK,0BAAS,CAAC,aAAa,CAAC,CAAC;YACrG,yBAAyB,IAAI,uBAAuB,CAAC;YAGrD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;YAC/C,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC;YAChG,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;YACrC,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;YAIrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YAErB,IAAI,CAAC;gBAEJ,IAAI,oBAAoB,GAAG,IAAI,CAAC;gBAChC,oBAAoB,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAClD,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACZ,MAAM,IAAI,0BAAW,CAAC,aAAa,EAAE,+CAA+C,GAAG,GAAG,CAAC,CAAC;YAC7F,CAAC;QACF,CAAC;QAMD,IAAI,cAAc,GAAG,aAAa,CAAC,GAAG,CAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;QAClG,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YACnD,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1C,CAAC;QAGD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAErD,OAAO;YACN,cAAc;YACd,SAAS,EAAE,aAAa,CAAC,MAAM;YAC/B,YAAY,EAAE,aAAa;SAC3B,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,MAAkB;QAE5C,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAG7C,MAAM,uBAAuB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACnD,IAAI,OAAO,GAAmC,EAAE,CAAC;QACjD,mBAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAG7C,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAEhE,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAE3B,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,2BAA2B,CAAC,MAAsB,EAAE,WAAyB,EAAE,YAAoB;QACjH,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAGxC,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,+BAAgB,CAAC,kCAAkC,GAAG,2DAA2D,CAAC,CAAC;YAC9H,CAAC;YAED,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,IAAA,yBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,uBAAU,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,IAAA,+BAAe,EAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,6BAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvE,CAAC;QACF,CAAC;IACF,CAAC;CAED;AA9JD,0CA8JC;AAED,MAAa,qBAAsB,SAAQ,8BAAU;IAEpD,YAAmB,qBAAkC;QACpD,KAAK,CAAC,qBAAqB,EAAE,0BAAS,CAAC,aAAa,CAAC,CAAC;QADpC,0BAAqB,GAArB,qBAAqB,CAAa;QAI9C,UAAK,GAAG,GAAoB,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAF9E,CAAC;IAIM,MAAM,CAAC,WAAW,CAAC,MAAsB;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,WAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAErC,MAAM,MAAM,GAAoB;YAC/B,WAAW;YACX,KAAK;YACL,MAAM;SACN,CAAC;QAGF,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAC3D,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AA5BD,sDA4BC","sourcesContent":["import Pako from \"pako\";\nimport { Alignment } from \"../../byte/alignment.enum\";\nimport { BinaryReadable } from \"../../byte/binary-readable.interface\";\nimport { ByteReader } from \"../../byte/byte-reader.class\";\nimport { CorruptSaveError, ParserError } from \"../../error/parser.error\";\nimport { ChunkCompressionInfo } from \"../../file.types\";\nimport { Level } from '../save/level.class';\nimport { DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE } from \"../save/save-reader\";\nimport { SaveComponent, isSaveComponent } from \"../types/objects/SaveComponent\";\nimport { SaveEntity, isSaveEntity } from \"../types/objects/SaveEntity\";\nimport { SaveObject } from \"../types/objects/SaveObject\";\nimport { col4 } from '../types/structs/col4';\nimport { ObjectReference } from '../types/structs/ObjectReference';\nimport { vec3 } from '../types/structs/vec3';\nimport { BlueprintConfig, BlueprintHeader } from \"./blueprint.types\";\n\nexport class BlueprintReader extends ByteReader {\n\n\tpublic compressionInfo: ChunkCompressionInfo = {\n\t\tpackageFileTag: 0,\n\t\tmaxUncompressedChunkContentSize: 0,\n\t\tchunkHeaderSize: DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE\n\t};\n\n\tconstructor(bluePrintBuffer: ArrayBuffer) {\n\t\tsuper(bluePrintBuffer, Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic static ReadHeader(reader: BinaryReadable): BlueprintHeader {\n\t\tconst alwaysTwo = reader.readBytes(4); // 02 00 00 00 - always\n\t\tconst objectVersion = reader.readBytes(2 * 4); // 24 00 00 00, 7F 3B 03 00 - varies over updates - in 1.0 it's 46 and 0x7A960500.\n\t\tconst dimensions = vec3.ParseInt(reader); // 04 00 00 00, 04 00 00 00, 04 00 00 00 - dimensions in foundation size\n\n\n\t\t// list of item costs.\n\t\tlet itemTypeCount = reader.readInt32();\n\t\tconst itemCosts = new Array<[ObjectReference, number]>(itemTypeCount).fill([{ levelName: '', pathName: '' }, 0]);\n\t\tfor (let i = 0; i < itemTypeCount; i++) {\n\t\t\tlet itemPathName = ObjectReference.read(reader);\n\t\t\tlet itemCount = reader.readInt32();\n\n\t\t\titemCosts[i] = [itemPathName, itemCount];\n\t\t}\n\n\t\t// list of recipes\n\t\tlet recipeCount = reader.readInt32();\n\t\tconst recipeRefs = new Array<ObjectReference>(recipeCount).fill({ levelName: '', pathName: '' });\n\t\tfor (let i = 0; i < recipeCount; i++) {\n\t\t\tconst recipeName = ObjectReference.read(reader);\n\t\t\trecipeRefs[i] = recipeName;\n\t\t}\n\n\t\treturn {\n\t\t\tdesignerDimension: dimensions,\n\t\t\trecipeReferences: recipeRefs,\n\t\t\titemCosts\n\t\t};\n\t}\n\n\tpublic inflateChunks(): any {\n\n\t\t// free memory\n\t\tthis.fileBuffer = this.fileBuffer.slice(this.currentByte);\n\n\t\tthis.handledByte = 0;\n\t\tthis.currentByte = 0;\n\t\tthis.maxByte = this.fileBuffer.byteLength;\n\n\t\tlet currentChunks = [];\n\t\tlet totalUncompressedBodySize = 0;\n\n\t\t// read while we can handle\n\t\twhile (this.handledByte < this.maxByte) {\n\n\t\t\t// Read chunk info size...\n\t\t\tlet chunkHeader = new DataView(this.fileBuffer.slice(0, this.compressionInfo.chunkHeaderSize));\n\t\t\tthis.currentByte = this.compressionInfo.chunkHeaderSize;\n\t\t\tthis.handledByte += this.compressionInfo.chunkHeaderSize;\n\n\t\t\tif (this.compressionInfo.packageFileTag <= 0) {\n\t\t\t\tthis.compressionInfo.packageFileTag = chunkHeader.getUint32(0, this.alignment === Alignment.LITTLE_ENDIAN);\n\t\t\t}\n\t\t\tif (this.compressionInfo.maxUncompressedChunkContentSize <= 0) {\n\t\t\t\tthis.compressionInfo.maxUncompressedChunkContentSize = chunkHeader.getInt32(8, this.alignment === Alignment.LITTLE_ENDIAN); //00 00 02 00 = 131072\n\t\t\t}\n\n\t\t\tconst chunkCompressedLength = chunkHeader.getInt32(33, this.alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tconst chunkUncompressedLength = chunkHeader.getInt32(25, this.alignment === Alignment.LITTLE_ENDIAN);\n\t\t\ttotalUncompressedBodySize += chunkUncompressedLength;\n\n\n\t\t\tconst currentChunkSize = chunkCompressedLength;\n\t\t\tlet currentChunk = this.fileBuffer.slice(this.currentByte, this.currentByte + currentChunkSize);\n\t\t\tthis.handledByte += currentChunkSize;\n\t\t\tthis.currentByte += currentChunkSize;\n\n\n\t\t\t// Free memory from previous chunk...\n\t\t\tthis.fileBuffer = this.fileBuffer.slice(this.currentByte);\n\t\t\tthis.currentByte = 0;\n\n\t\t\ttry {\n\t\t\t\t// Inflate current chunk\n\t\t\t\tlet currentInflatedChunk = null;\n\t\t\t\tcurrentInflatedChunk = Pako.inflate(currentChunk);\n\t\t\t\tcurrentChunks.push(currentInflatedChunk);\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tthrow new ParserError('ParserError', 'An error occurred while calling pako inflate.' + err);\n\t\t\t}\n\t\t}\n\n\n\t\t//TODO we can get rid of file buffer here.\n\n\t\t// Create one big chunk out of the little chunks\n\t\tlet newChunkLength = currentChunks.map<number>(cc => cc.length).reduce((prev, cur) => prev + cur);\n\t\tconst bigWholeChunk = new Uint8Array(newChunkLength);\n\t\tlet currentLength = 0;\n\t\tfor (let i = 0; i < currentChunks.length; i++) {\n\t\t\tbigWholeChunk.set(currentChunks[i], currentLength);\n\t\t\tcurrentLength += currentChunks[i].length;\n\t\t}\n\n\t\t// reset reader on this body content.\n\t\tthis.currentByte = 0;\n\t\tthis.maxByte = bigWholeChunk.buffer.byteLength;\n\t\tthis.bufferView = new DataView(bigWholeChunk.buffer);\n\n\t\treturn {\n\t\t\tnewChunkLength,\n\t\t\tnumChunks: currentChunks.length,\n\t\t\tinflatedData: bigWholeChunk\n\t\t};\n\t}\n\n\tpublic static ParseObjects(reader: ByteReader): (SaveEntity | SaveComponent)[] {\n\n\t\tconst totalBodyRestSize = reader.readInt32();\n\n\t\t// object headers\n\t\tconst objectHeadersBinarySize = reader.readInt32();\n\t\tlet objects: (SaveEntity | SaveComponent)[] = [];\n\t\tLevel.ReadAllObjectHeaders(reader, objects);\n\n\t\tconst someChecksumThing = reader.readInt32();\n\n\t\t// objects contents\n\t\tBlueprintReader.ReadBlueprintObjectContents(reader, objects, 0);\n\n\t\treader.getBufferPosition();\n\n\t\treturn objects;\n\t}\n\n\tprivate static ReadBlueprintObjectContents(reader: BinaryReadable, objectsList: SaveObject[], buildVersion: number): void {\n\t\tconst countEntities = reader.readInt32();\n\t\tfor (let i = 0; i < countEntities; i++) {\n\n\t\t\t// binary length\n\t\t\tconst len = reader.readInt32();\n\t\t\tif (len === 0) {\n\t\t\t\tthrow new CorruptSaveError(`check number is a wrong value (${len}). This normally indicates a corrupt entity or blueprint.`);\n\t\t\t}\n\n\t\t\tconst obj = objectsList[i];\n\t\t\tif (isSaveEntity(obj)) {\n\t\t\t\tSaveEntity.ParseData(obj, len, reader, buildVersion, obj.typePath);\n\t\t\t} else if (isSaveComponent(obj)) {\n\t\t\t\tSaveComponent.ParseData(obj, len, reader, buildVersion, obj.typePath);\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nexport class BlueprintConfigReader extends ByteReader {\n\n\tconstructor(public bluePrintConfigBuffer: ArrayBuffer) {\n\t\tsuper(bluePrintConfigBuffer, Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic parse = (): BlueprintConfig => BlueprintConfigReader.ParseConfig(this);\n\n\tpublic static ParseConfig(reader: BinaryReadable): BlueprintConfig {\n\t\tconst alwaysTwo = reader.readInt32();\n\t\tconst description = reader.readString();\n\t\tconst iconID = reader.readInt32();\n\t\tconst color = col4.ParseRGBA(reader);\n\n\t\tconst config: BlueprintConfig = {\n\t\t\tdescription,\n\t\t\tcolor,\n\t\t\ticonID,\n\t\t};\n\n\t\t// since 1.0, created blueprints have those two strings\n\t\tif (reader.getBufferPosition() < reader.getBufferLength()) {\n\t\t\tconfig.referencedIconLibrary = reader.readString();\n\t\t\tconfig.iconLibraryType = reader.readString();\n\t\t}\n\n\t\treturn config;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"blueprint-reader.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-reader.ts"],"names":[],"mappings":"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","sourcesContent":["import { Alignment } from \"../../byte/alignment.enum\";\nimport { ContextReader } from '../../context/context-reader';\nimport { CorruptBlueprintError, CorruptSaveError } from \"../../error/parser.error\";\nimport { Level } from '../save/level.class';\nimport { ChunkCompressionInfo, SaveBodyChunks } from '../save/save-body-chunks';\nimport { SaveComponent, isSaveComponent } from \"../types/objects/SaveComponent\";\nimport { SaveEntity, isSaveEntity } from \"../types/objects/SaveEntity\";\nimport { SaveObject } from \"../types/objects/SaveObject\";\n\n\nexport class BlueprintReader extends ContextReader {\n\n\tpublic compressionInfo: ChunkCompressionInfo = {\n\t\tpackageFileTag: 0,\n\t\tmaxUncompressedChunkContentSize: 0,\n\t\tchunkHeaderVersion: SaveBodyChunks.HEADER_V2\n\t};\n\n\tconstructor(bluePrintBuffer: ArrayBufferLike) {\n\t\tsuper(bluePrintBuffer, Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic inflateChunks(): { inflatedData: ArrayBufferLike } {\n\n\t\tconst result = SaveBodyChunks.DecompressChunks(this.fileBuffer.slice(this.currentByte), this.alignment);\n\t\tthis.compressionInfo = result.compressionInfo;\n\n\t\t// reset on decompressed data.\n\t\tthis.currentByte = 0;\n\t\tthis.fileBuffer = result.uncompressedData.buffer;\n\t\tthis.maxByte = this.fileBuffer.byteLength;\n\t\tthis.bufferView = new DataView(this.fileBuffer);\n\n\t\tconst totalBodyRestSize = this.readInt32();\n\t\tif (result.uncompressedData.byteLength !== totalBodyRestSize + 4) {\n\t\t\tthrow new CorruptBlueprintError(`Possibly corrupt. Indicated size of total blueprint body (${totalBodyRestSize + 4}) does not match the uncompressed real size of ${result.uncompressedData.byteLength}.`);\n\t\t}\n\n\t\treturn {\n\t\t\tinflatedData: this.fileBuffer\n\t\t};\n\t}\n\n\tpublic static ParseObjects(reader: ContextReader): (SaveEntity | SaveComponent)[] {\n\n\t\t// object headers\n\t\tconst objectHeadersBinarySize = reader.readInt32();\n\t\tlet objects: (SaveEntity | SaveComponent)[] = [];\n\t\tLevel.ReadAllObjectHeaders(reader, objects);\n\n\t\tconst someChecksumThing = reader.readInt32();\n\n\t\t// objects contents\n\t\tBlueprintReader.ReadBlueprintObjectContents(reader, objects, 0);\n\n\t\treader.getBufferPosition();\n\n\t\treturn objects;\n\t}\n\n\tprivate static ReadBlueprintObjectContents(reader: ContextReader, objectsList: SaveObject[], buildVersion: number): void {\n\t\tconst countEntities = reader.readInt32();\n\t\tfor (let i = 0; i < countEntities; i++) {\n\n\t\t\t// binary length\n\t\t\tconst len = reader.readInt32();\n\t\t\tif (len === 0) {\n\t\t\t\tthrow new CorruptSaveError(`check number is a wrong value (${len}). This normally indicates a corrupt entity or blueprint.`);\n\t\t\t}\n\n\t\t\tconst obj = objectsList[i];\n\t\t\tif (isSaveEntity(obj)) {\n\t\t\t\tSaveEntity.ParseData(obj, len, reader, obj.typePath);\n\t\t\t} else if (isSaveComponent(obj)) {\n\t\t\t\tSaveComponent.ParseData(obj, len, reader, obj.typePath);\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nexport class BlueprintConfigReader extends ContextReader {\n\n\tconstructor(public bluePrintConfigBuffer: ArrayBufferLike) {\n\t\tsuper(bluePrintConfigBuffer, Alignment.LITTLE_ENDIAN);\n\t}\n}\n"]}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ChunkCompressionInfo, ChunkSummary } from "
|
|
1
|
+
import { ContextWriter } from '../../context/context-writer';
|
|
2
|
+
import { ChunkCompressionInfo, ChunkSummary } from "../save/save-body-chunks";
|
|
3
3
|
import { SaveComponent } from "../types/objects/SaveComponent";
|
|
4
4
|
import { SaveEntity } from "../types/objects/SaveEntity";
|
|
5
|
-
|
|
6
|
-
export declare class BlueprintWriter extends ByteWriter {
|
|
5
|
+
export declare class BlueprintWriter extends ContextWriter {
|
|
7
6
|
constructor();
|
|
8
|
-
static SerializeHeader(writer: ByteWriter, header: BlueprintHeader): void;
|
|
9
7
|
generateChunks(compressionInfo: ChunkCompressionInfo, posAfterHeader: number, options: Partial<{
|
|
10
8
|
onBinaryBeforeCompressing: (binary: ArrayBuffer) => void;
|
|
11
9
|
onHeader: (header: Uint8Array) => void;
|
|
12
10
|
onChunk: (chunk: Uint8Array) => void;
|
|
13
11
|
}>): ChunkSummary[];
|
|
14
|
-
static SerializeObjects(writer:
|
|
15
|
-
static SerializeObjectContents(writer:
|
|
12
|
+
static SerializeObjects(writer: ContextWriter, objects: (SaveEntity | SaveComponent)[]): void;
|
|
13
|
+
static SerializeObjectContents(writer: ContextWriter, objects: (SaveEntity | SaveComponent)[]): void;
|
|
16
14
|
}
|
|
17
|
-
export declare class BlueprintConfigWriter extends
|
|
15
|
+
export declare class BlueprintConfigWriter extends ContextWriter {
|
|
18
16
|
constructor();
|
|
19
|
-
static SerializeConfig(writer: ByteWriter, config: BlueprintConfig): void;
|
|
20
17
|
}
|
|
21
18
|
//# sourceMappingURL=blueprint-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprint-writer.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-writer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"blueprint-writer.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-writer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAmB,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAIvE,qBAAa,eAAgB,SAAQ,aAAa;;IAM1C,cAAc,CACpB,eAAe,EAAE,oBAAoB,EACrC,cAAc,EAAE,MAAM,EAEtB,OAAO,EAAE,OAAO,CAAC;QAChB,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;QACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;QACvC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACrC,CAAC,GACA,YAAY,EAAE;WAkBH,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI;WAYtF,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI;CAoB3G;AAED,qBAAa,qBAAsB,SAAQ,aAAa;;CAIvD"}
|
|
@@ -2,40 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BlueprintConfigWriter = exports.BlueprintWriter = void 0;
|
|
4
4
|
const alignment_enum_1 = require("../../byte/alignment.enum");
|
|
5
|
-
const
|
|
5
|
+
const context_writer_1 = require("../../context/context-writer");
|
|
6
6
|
const parser_error_1 = require("../../error/parser.error");
|
|
7
7
|
const level_class_1 = require("../save/level.class");
|
|
8
8
|
const save_writer_1 = require("../save/save-writer");
|
|
9
9
|
const SaveComponent_1 = require("../types/objects/SaveComponent");
|
|
10
10
|
const SaveEntity_1 = require("../types/objects/SaveEntity");
|
|
11
|
-
|
|
12
|
-
const ObjectReference_1 = require("../types/structs/ObjectReference");
|
|
13
|
-
class BlueprintWriter extends byte_writer_class_1.ByteWriter {
|
|
11
|
+
class BlueprintWriter extends context_writer_1.ContextWriter {
|
|
14
12
|
constructor() {
|
|
15
13
|
super(alignment_enum_1.Alignment.LITTLE_ENDIAN);
|
|
16
14
|
}
|
|
17
|
-
static SerializeHeader(writer, header) {
|
|
18
|
-
writer.writeInt32(2);
|
|
19
|
-
writer.writeInt32(46);
|
|
20
|
-
writer.writeInt32(366202);
|
|
21
|
-
let dimensions = [
|
|
22
|
-
header.designerDimension?.x ?? 4,
|
|
23
|
-
header.designerDimension?.y ?? 4,
|
|
24
|
-
header.designerDimension?.z ?? 4,
|
|
25
|
-
].map(dim => dim < 4 ? 4 : dim);
|
|
26
|
-
writer.writeInt32(dimensions[0]);
|
|
27
|
-
writer.writeInt32(dimensions[1]);
|
|
28
|
-
writer.writeInt32(dimensions[2]);
|
|
29
|
-
writer.writeInt32(header.itemCosts.length);
|
|
30
|
-
for (const itemCost of header.itemCosts) {
|
|
31
|
-
ObjectReference_1.ObjectReference.write(writer, itemCost[0]);
|
|
32
|
-
writer.writeInt32(itemCost[1]);
|
|
33
|
-
}
|
|
34
|
-
writer.writeInt32(header.recipeReferences.length);
|
|
35
|
-
for (const recipeReference of header.recipeReferences) {
|
|
36
|
-
ObjectReference_1.ObjectReference.write(writer, recipeReference);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
15
|
generateChunks(compressionInfo, posAfterHeader, options) {
|
|
40
16
|
if (posAfterHeader <= 0) {
|
|
41
17
|
throw new parser_error_1.ParserError('ParserError', 'seems like this buffer has no header. Please write the header first before you can generate chunks.');
|
|
@@ -53,9 +29,9 @@ class BlueprintWriter extends byte_writer_class_1.ByteWriter {
|
|
|
53
29
|
writer.writeInt32(0);
|
|
54
30
|
level_class_1.Level.SerializeAllObjectHeaders(writer, objects);
|
|
55
31
|
writer.writeBinarySizeFromPosition(headersLenIndicator, headersLenIndicator + 4);
|
|
56
|
-
BlueprintWriter.SerializeObjectContents(writer, objects
|
|
32
|
+
BlueprintWriter.SerializeObjectContents(writer, objects);
|
|
57
33
|
}
|
|
58
|
-
static SerializeObjectContents(writer, objects
|
|
34
|
+
static SerializeObjectContents(writer, objects) {
|
|
59
35
|
const lenIndicatorEntities = writer.getBufferPosition();
|
|
60
36
|
writer.writeInt32(0);
|
|
61
37
|
writer.writeInt32(objects.length);
|
|
@@ -63,10 +39,10 @@ class BlueprintWriter extends byte_writer_class_1.ByteWriter {
|
|
|
63
39
|
const lenReplacementPosition = writer.getBufferPosition();
|
|
64
40
|
writer.writeInt32(0);
|
|
65
41
|
if ((0, SaveEntity_1.isSaveEntity)(obj)) {
|
|
66
|
-
SaveEntity_1.SaveEntity.SerializeData(writer, obj
|
|
42
|
+
SaveEntity_1.SaveEntity.SerializeData(writer, obj);
|
|
67
43
|
}
|
|
68
44
|
else if ((0, SaveComponent_1.isSaveComponent)(obj)) {
|
|
69
|
-
SaveComponent_1.SaveComponent.SerializeData(writer, obj
|
|
45
|
+
SaveComponent_1.SaveComponent.SerializeData(writer, obj);
|
|
70
46
|
}
|
|
71
47
|
writer.writeBinarySizeFromPosition(lenReplacementPosition, lenReplacementPosition + 4);
|
|
72
48
|
}
|
|
@@ -74,18 +50,10 @@ class BlueprintWriter extends byte_writer_class_1.ByteWriter {
|
|
|
74
50
|
}
|
|
75
51
|
}
|
|
76
52
|
exports.BlueprintWriter = BlueprintWriter;
|
|
77
|
-
class BlueprintConfigWriter extends
|
|
53
|
+
class BlueprintConfigWriter extends context_writer_1.ContextWriter {
|
|
78
54
|
constructor() {
|
|
79
55
|
super(alignment_enum_1.Alignment.LITTLE_ENDIAN);
|
|
80
56
|
}
|
|
81
|
-
static SerializeConfig(writer, config) {
|
|
82
|
-
writer.writeInt32(2);
|
|
83
|
-
writer.writeString(config.description);
|
|
84
|
-
writer.writeInt32(config.iconID);
|
|
85
|
-
col4_1.col4.SerializeRGBA(writer, config.color);
|
|
86
|
-
writer.writeString(config.referencedIconLibrary ?? '');
|
|
87
|
-
writer.writeString(config.iconLibraryType ?? '');
|
|
88
|
-
}
|
|
89
57
|
}
|
|
90
58
|
exports.BlueprintConfigWriter = BlueprintConfigWriter;
|
|
91
59
|
//# sourceMappingURL=blueprint-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprint-writer.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-writer.ts"],"names":[],"mappings":";;;AAAA,8DAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"blueprint-writer.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-writer.ts"],"names":[],"mappings":";;;AAAA,8DAAsD;AACtD,iEAA6D;AAC7D,2DAAuD;AACvD,qDAA4C;AAE5C,qDAAiD;AACjD,kEAAgF;AAChF,4DAAuE;AAIvE,MAAa,eAAgB,SAAQ,8BAAa;IAEjD;QACC,KAAK,CAAC,0BAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAEM,cAAc,CACpB,eAAqC,EACrC,cAAsB,EAEtB,OAIE;QAGF,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,0BAAW,CAAC,aAAa,EAAE,qGAAqG,CAAC,CAAC;QAC7I,CAAC;QAGD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QACzE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAGD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,wBAAU,CAAC,gCAAgC,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,yBAAyB,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtM,OAAO,YAAY,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,MAAqB,EAAE,OAAuC;QAG5F,MAAM,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACvD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,mBAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,CAAC,CAAC,CAAC;QAGjF,eAAe,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,MAAqB,EAAE,OAAuC;QACnG,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAErB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAE3B,MAAM,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAErB,IAAI,IAAA,yBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,uBAAU,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,IAAA,+BAAe,EAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,6BAAa,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,CAAC,2BAA2B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;CACD;AAjED,0CAiEC;AAED,MAAa,qBAAsB,SAAQ,8BAAa;IACvD;QACC,KAAK,CAAC,0BAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;CACD;AAJD,sDAIC","sourcesContent":["import { Alignment } from \"../../byte/alignment.enum\";\nimport { ContextWriter } from '../../context/context-writer';\nimport { ParserError } from \"../../error/parser.error\";\nimport { Level } from '../save/level.class';\nimport { ChunkCompressionInfo, ChunkSummary } from \"../save/save-body-chunks\";\nimport { SaveWriter } from \"../save/save-writer\";\nimport { SaveComponent, isSaveComponent } from \"../types/objects/SaveComponent\";\nimport { SaveEntity, isSaveEntity } from \"../types/objects/SaveEntity\";\n\n\n\nexport class BlueprintWriter extends ContextWriter {\n\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic generateChunks(\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tposAfterHeader: number,\n\n\t\toptions: Partial<{\n\t\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\t\tonHeader: (header: Uint8Array) => void,\n\t\t\tonChunk: (chunk: Uint8Array) => void,\n\t\t}>\n\t): ChunkSummary[] {\n\n\t\tif (posAfterHeader <= 0) {\n\t\t\tthrow new ParserError('ParserError', 'seems like this buffer has no header. Please write the header first before you can generate chunks.');\n\t\t}\n\n\t\t// send plain header first.\n\t\tconst header = new Uint8Array(this.bufferArray.slice(0, posAfterHeader));\n\t\tif (options.onHeader !== undefined) {\n\t\t\toptions.onHeader(header);\n\t\t}\n\n\t\t// create save body\n\t\tthis.bufferArray = this.bufferArray.slice(posAfterHeader);\n\t\tconst chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, options.onBinaryBeforeCompressing ?? (() => { }), options.onChunk ?? (() => { }), this.alignment);\n\t\treturn chunkSummary;\n\t}\n\n\tpublic static SerializeObjects(writer: ContextWriter, objects: (SaveEntity | SaveComponent)[]): void {\n\n\t\t// object headers\n\t\tconst headersLenIndicator = writer.getBufferPosition();\n\t\twriter.writeInt32(0);\n\t\tLevel.SerializeAllObjectHeaders(writer, objects);\n\t\twriter.writeBinarySizeFromPosition(headersLenIndicator, headersLenIndicator + 4);\n\n\t\t// objects contents\n\t\tBlueprintWriter.SerializeObjectContents(writer, objects);\n\t}\n\n\tpublic static SerializeObjectContents(writer: ContextWriter, objects: (SaveEntity | SaveComponent)[]): void {\n\t\tconst lenIndicatorEntities = writer.getBufferPosition();\n\t\twriter.writeInt32(0);\n\n\t\twriter.writeInt32(objects.length);\n\t\tfor (const obj of objects) {\n\n\t\t\tconst lenReplacementPosition = writer.getBufferPosition();\n\t\t\twriter.writeInt32(0);\n\n\t\t\tif (isSaveEntity(obj)) {\n\t\t\t\tSaveEntity.SerializeData(writer, obj);\n\t\t\t} else if (isSaveComponent(obj)) {\n\t\t\t\tSaveComponent.SerializeData(writer, obj);\n\t\t\t}\n\n\t\t\twriter.writeBinarySizeFromPosition(lenReplacementPosition, lenReplacementPosition + 4);\n\t\t}\n\t\twriter.writeBinarySizeFromPosition(lenIndicatorEntities, lenIndicatorEntities + 4);\n\t}\n}\n\nexport class BlueprintConfigWriter extends ContextWriter {\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n}"]}
|