@etothepii/satisfactory-file-parser 3.0.3 → 3.1.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.
Files changed (518) hide show
  1. package/.github/workflows/publish-jsr.yml +1 -2
  2. package/CHANGELOG.md +11 -0
  3. package/build/index.d.ts +1 -0
  4. package/build/index.d.ts.map +1 -1
  5. package/build/index.js +1 -0
  6. package/build/index.js.map +1 -1
  7. package/build/parser/satisfactory/blueprint/blueprint-header-version.d.ts +8 -0
  8. package/build/parser/satisfactory/blueprint/blueprint-header-version.d.ts.map +1 -0
  9. package/build/parser/satisfactory/blueprint/blueprint-header-version.js +12 -0
  10. package/build/parser/satisfactory/blueprint/blueprint-header-version.js.map +1 -0
  11. package/build/parser/satisfactory/blueprint/blueprint-writer.js +1 -1
  12. package/build/parser/satisfactory/blueprint/blueprint-writer.js.map +1 -1
  13. package/build/parser/satisfactory/edit/edit-constants.d.ts +9 -0
  14. package/build/parser/satisfactory/edit/edit-constants.d.ts.map +1 -1
  15. package/build/parser/satisfactory/edit/edit-constants.js +9 -0
  16. package/build/parser/satisfactory/edit/edit-constants.js.map +1 -1
  17. package/build/parser/satisfactory/save/factory-game-custom-version.js.map +1 -1
  18. package/build/parser/satisfactory/save/save-body-chunks.d.ts +1 -1
  19. package/build/parser/satisfactory/save/save-body-chunks.d.ts.map +1 -1
  20. package/build/parser/satisfactory/save/save-body-chunks.js +2 -2
  21. package/build/parser/satisfactory/save/save-body-chunks.js.map +1 -1
  22. package/build/parser/satisfactory/save/save-custom-version.d.ts +3 -2
  23. package/build/parser/satisfactory/save/save-custom-version.d.ts.map +1 -1
  24. package/build/parser/satisfactory/save/save-custom-version.js +3 -2
  25. package/build/parser/satisfactory/save/save-custom-version.js.map +1 -1
  26. package/build/parser/satisfactory/save/save-header-type.d.ts +3 -1
  27. package/build/parser/satisfactory/save/save-header-type.d.ts.map +1 -1
  28. package/build/parser/satisfactory/save/save-header-type.js +2 -0
  29. package/build/parser/satisfactory/save/save-header-type.js.map +1 -1
  30. package/build/parser/satisfactory/save/save-writer.d.ts +1 -1
  31. package/build/parser/satisfactory/save/save-writer.d.ts.map +1 -1
  32. package/build/parser/satisfactory/save/save-writer.js +3 -3
  33. package/build/parser/satisfactory/save/save-writer.js.map +1 -1
  34. package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts +2 -0
  35. package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts.map +1 -1
  36. package/build/parser/satisfactory/types/property/generic/TextProperty.js +9 -1
  37. package/build/parser/satisfactory/types/property/generic/TextProperty.js.map +1 -1
  38. package/build/parser/satisfactory/types/structs/GUID.d.ts.map +1 -1
  39. package/build/parser/satisfactory/types/structs/GUID.js.map +1 -1
  40. package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts.map +1 -1
  41. package/build/parser/satisfactory/types/structs/GUIDInfo.js.map +1 -1
  42. package/build/parser/satisfactory/types/structs/MD5Hash.d.ts.map +1 -1
  43. package/build/parser/satisfactory/types/structs/MD5Hash.js.map +1 -1
  44. package/build/parser/satisfactory/types/structs/ObjectReference.d.ts.map +1 -1
  45. package/build/parser/satisfactory/types/structs/ObjectReference.js.map +1 -1
  46. package/build/parser/satisfactory/types/structs/Transform.d.ts.map +1 -1
  47. package/build/parser/satisfactory/types/structs/Transform.js.map +1 -1
  48. package/build/parser/satisfactory/types/structs/col4.d.ts.map +1 -1
  49. package/build/parser/satisfactory/types/structs/col4.js.map +1 -1
  50. package/build/parser/satisfactory/types/structs/vec2.d.ts.map +1 -1
  51. package/build/parser/satisfactory/types/structs/vec2.js.map +1 -1
  52. package/build/parser/satisfactory/types/structs/vec3.d.ts.map +1 -1
  53. package/build/parser/satisfactory/types/structs/vec3.js.map +1 -1
  54. package/build/parser/satisfactory/types/structs/vec4.d.ts.map +1 -1
  55. package/build/parser/satisfactory/types/structs/vec4.js.map +1 -1
  56. package/docs/assets/navigation.js +1 -1
  57. package/docs/assets/search.js +1 -1
  58. package/docs/classes/BlueprintConfigReader.html +4 -4
  59. package/docs/classes/BlueprintConfigWriter.html +4 -4
  60. package/docs/classes/BlueprintReader.html +4 -4
  61. package/docs/classes/BlueprintWriter.html +4 -4
  62. package/docs/classes/CompressionLibraryError.html +2 -2
  63. package/docs/classes/CorruptBlueprintError.html +2 -2
  64. package/docs/classes/CorruptSaveError.html +2 -2
  65. package/docs/classes/Parser.html +6 -6
  66. package/docs/classes/ParserError.html +2 -2
  67. package/docs/classes/ReadableStreamParser.html +2 -2
  68. package/docs/classes/SatisfactorySave.html +2 -2
  69. package/docs/classes/SaveComponent.html +2 -2
  70. package/docs/classes/SaveEntity.html +2 -2
  71. package/docs/classes/SaveObject.html +2 -2
  72. package/docs/classes/SaveReader.html +4 -4
  73. package/docs/classes/SaveStreamJsonStringifier.html +2 -2
  74. package/docs/classes/SaveStreamWriter.html +2 -2
  75. package/docs/classes/SaveWriter.html +4 -4
  76. package/docs/classes/TimeoutError.html +2 -2
  77. package/docs/classes/UnimplementedError.html +2 -2
  78. package/docs/classes/UnsupportedVersionError.html +2 -2
  79. package/docs/enums/BlueprintConfigVersion.html +2 -2
  80. package/docs/enums/BlueprintHeaderVersion.html +7 -0
  81. package/docs/enums/CompressionAlgorithmCode.html +2 -2
  82. package/docs/enums/FactoryGameCustomVersion.html +3 -3
  83. package/docs/enums/RuntimeBuildableInstanceDataVersion.html +2 -2
  84. package/docs/enums/SaveCustomVersion.html +11 -10
  85. package/docs/enums/SaveHeaderType.html +4 -2
  86. package/docs/functions/AbstractBaseProperty.Create.html +1 -1
  87. package/docs/functions/ArrayProperty.CalcOverhead.html +1 -1
  88. package/docs/functions/ArrayProperty.Parse.html +1 -1
  89. package/docs/functions/ArrayProperty.Serialize.html +1 -1
  90. package/docs/functions/BlueprintConfig.Parse.html +1 -1
  91. package/docs/functions/BlueprintConfig.Serialize.html +1 -1
  92. package/docs/functions/BlueprintHeader.Parse.html +1 -1
  93. package/docs/functions/BlueprintHeader.Serialize.html +1 -1
  94. package/docs/functions/BoolArrayProperty.Parse.html +1 -1
  95. package/docs/functions/BoolArrayProperty.Serialize.html +1 -1
  96. package/docs/functions/BoolProperty.CalcOverhead.html +1 -1
  97. package/docs/functions/BoolProperty.Parse.html +1 -1
  98. package/docs/functions/BoolProperty.ReadValue.html +1 -1
  99. package/docs/functions/BoolProperty.Serialize.html +1 -1
  100. package/docs/functions/BoolProperty.SerializeValue.html +1 -1
  101. package/docs/functions/BuildableSubsystemSpecialProperties.Parse.html +1 -1
  102. package/docs/functions/BuildableSubsystemSpecialProperties.Serialize.html +1 -1
  103. package/docs/functions/BuildableTypeInstance.Parse.html +1 -1
  104. package/docs/functions/BuildableTypeInstance.Serialize.html +1 -1
  105. package/docs/functions/ByteArrayProperty.Parse.html +1 -1
  106. package/docs/functions/ByteArrayProperty.Serialize.html +1 -1
  107. package/docs/functions/ByteProperty.CalcOverhead.html +1 -1
  108. package/docs/functions/ByteProperty.Parse.html +1 -1
  109. package/docs/functions/ByteProperty.ReadValue.html +1 -1
  110. package/docs/functions/ByteProperty.Serialize.html +1 -1
  111. package/docs/functions/ByteProperty.SerializeValue.html +1 -1
  112. package/docs/functions/CircuitSpecialProperties.Parse.html +1 -1
  113. package/docs/functions/CircuitSpecialProperties.Serialize.html +1 -1
  114. package/docs/functions/ConveyorChainActorSpecialProperties.Parse.html +1 -1
  115. package/docs/functions/ConveyorChainActorSpecialProperties.Serialize.html +1 -1
  116. package/docs/functions/ConveyorSpecialProperties.Parse.html +1 -1
  117. package/docs/functions/ConveyorSpecialProperties.Serialize.html +1 -1
  118. package/docs/functions/DoubleArrayProperty.Parse.html +1 -1
  119. package/docs/functions/DoubleArrayProperty.Serialize.html +1 -1
  120. package/docs/functions/DoubleProperty.CalcOverhead.html +1 -1
  121. package/docs/functions/DoubleProperty.Parse.html +1 -1
  122. package/docs/functions/DoubleProperty.ReadValue.html +1 -1
  123. package/docs/functions/DoubleProperty.Serialize.html +1 -1
  124. package/docs/functions/DoubleProperty.SerializeValue.html +1 -1
  125. package/docs/functions/DynamicStructPropertyValue.read.html +1 -1
  126. package/docs/functions/DynamicStructPropertyValue.write.html +1 -1
  127. package/docs/functions/EmptySpecialProperties.Parse.html +1 -1
  128. package/docs/functions/EmptySpecialProperties.Serialize.html +1 -1
  129. package/docs/functions/EnumArrayProperty.Parse.html +1 -1
  130. package/docs/functions/EnumArrayProperty.Serialize.html +1 -1
  131. package/docs/functions/EnumProperty.CalcOverhead.html +1 -1
  132. package/docs/functions/EnumProperty.Parse.html +1 -1
  133. package/docs/functions/EnumProperty.ReadValue.html +1 -1
  134. package/docs/functions/EnumProperty.Serialize.html +1 -1
  135. package/docs/functions/EnumProperty.SerializeValue.html +1 -1
  136. package/docs/functions/FGDynamicStruct.Parse.html +1 -1
  137. package/docs/functions/FGDynamicStruct.Serialize.html +1 -1
  138. package/docs/functions/FICFrameRange.Parse.html +1 -1
  139. package/docs/functions/FICFrameRange.Serialize.html +1 -1
  140. package/docs/functions/FloatArrayProperty.Parse.html +1 -1
  141. package/docs/functions/FloatArrayProperty.Serialize.html +1 -1
  142. package/docs/functions/FloatProperty.CalcOverhead.html +1 -1
  143. package/docs/functions/FloatProperty.Parse.html +1 -1
  144. package/docs/functions/FloatProperty.ReadValue.html +1 -1
  145. package/docs/functions/FloatProperty.Serialize.html +1 -1
  146. package/docs/functions/FloatProperty.SerializeValue.html +1 -1
  147. package/docs/functions/GUID.read.html +1 -1
  148. package/docs/functions/GUID.write.html +1 -1
  149. package/docs/functions/GUIDInfo.read.html +1 -1
  150. package/docs/functions/GUIDInfo.write.html +1 -1
  151. package/docs/functions/Int32ArrayProperty.Parse.html +1 -1
  152. package/docs/functions/Int32ArrayProperty.Serialize.html +1 -1
  153. package/docs/functions/Int32Property.CalcOverhead.html +1 -1
  154. package/docs/functions/Int32Property.Parse.html +1 -1
  155. package/docs/functions/Int32Property.ReadValue.html +1 -1
  156. package/docs/functions/Int32Property.Serialize.html +1 -1
  157. package/docs/functions/Int32Property.SerializeValue.html +1 -1
  158. package/docs/functions/Int32SetProperty.Parse.html +1 -1
  159. package/docs/functions/Int32SetProperty.Serialize.html +1 -1
  160. package/docs/functions/Int64ArrayProperty.Parse.html +1 -1
  161. package/docs/functions/Int64ArrayProperty.Serialize.html +1 -1
  162. package/docs/functions/Int64Property.CalcOverhead.html +1 -1
  163. package/docs/functions/Int64Property.Parse.html +1 -1
  164. package/docs/functions/Int64Property.ReadValue.html +1 -1
  165. package/docs/functions/Int64Property.Serialize.html +1 -1
  166. package/docs/functions/Int64Property.SerializeValue.html +1 -1
  167. package/docs/functions/Int8Property.CalcOverhead.html +1 -1
  168. package/docs/functions/Int8Property.Parse.html +1 -1
  169. package/docs/functions/Int8Property.ReadValue.html +1 -1
  170. package/docs/functions/Int8Property.Serialize.html +1 -1
  171. package/docs/functions/Int8Property.SerializeValue.html +1 -1
  172. package/docs/functions/Level.ReadAllObjectContents.html +1 -1
  173. package/docs/functions/Level.ReadAllObjectHeaders.html +1 -1
  174. package/docs/functions/Level.ReadLevel.html +1 -1
  175. package/docs/functions/Level.ReadNObjectContents.html +1 -1
  176. package/docs/functions/Level.ReadNObjectHeaders.html +1 -1
  177. package/docs/functions/Level.SerializeAllObjectContents.html +1 -1
  178. package/docs/functions/Level.SerializeAllObjectHeaders.html +1 -1
  179. package/docs/functions/Level.SerializeLevel.html +1 -1
  180. package/docs/functions/LevelToDestroyedActorsMap.read.html +1 -1
  181. package/docs/functions/LevelToDestroyedActorsMap.write.html +1 -1
  182. package/docs/functions/MD5Hash.read.html +1 -1
  183. package/docs/functions/MD5Hash.write.html +1 -1
  184. package/docs/functions/MapProperty.CalcOverhead.html +1 -1
  185. package/docs/functions/MapProperty.Parse.html +1 -1
  186. package/docs/functions/MapProperty.Serialize.html +1 -1
  187. package/docs/functions/ObjectArrayProperty.Parse.html +1 -1
  188. package/docs/functions/ObjectArrayProperty.Serialize.html +1 -1
  189. package/docs/functions/ObjectProperty.CalcOverhead.html +1 -1
  190. package/docs/functions/ObjectProperty.Parse.html +1 -1
  191. package/docs/functions/ObjectProperty.ReadValue.html +1 -1
  192. package/docs/functions/ObjectProperty.Serialize.html +1 -1
  193. package/docs/functions/ObjectProperty.SerializeValue.html +1 -1
  194. package/docs/functions/ObjectReference.IsEqual.html +1 -1
  195. package/docs/functions/ObjectReference.read.html +1 -1
  196. package/docs/functions/ObjectReference.write.html +1 -1
  197. package/docs/functions/ObjectSetProperty.Parse.html +1 -1
  198. package/docs/functions/ObjectSetProperty.Serialize.html +1 -1
  199. package/docs/functions/ObjectsListSpecialProperties.Parse.html +1 -1
  200. package/docs/functions/ObjectsListSpecialProperties.Serialize.html +1 -1
  201. package/docs/functions/PlayerSpecialProperties.Parse.html +1 -1
  202. package/docs/functions/PlayerSpecialProperties.Serialize.html +1 -1
  203. package/docs/functions/PowerLineSpecialProperties.Parse.html +1 -1
  204. package/docs/functions/PowerLineSpecialProperties.Serialize.html +1 -1
  205. package/docs/functions/PropertiesList.ParseList.html +1 -1
  206. package/docs/functions/PropertiesList.ParseSingleProperty.html +1 -1
  207. package/docs/functions/PropertiesList.SerializeList.html +1 -1
  208. package/docs/functions/PropertiesList.SerializeSingleProperty.html +1 -1
  209. package/docs/functions/SatisfactorySaveHeader.Parse.html +1 -1
  210. package/docs/functions/SatisfactorySaveHeader.Serialize.html +1 -1
  211. package/docs/functions/SaveBodyChunks.CompressDataIntoChunks.html +1 -1
  212. package/docs/functions/SaveBodyChunks.DecompressChunks.html +1 -1
  213. package/docs/functions/SetProperty.CalcOverhead.html +1 -1
  214. package/docs/functions/SetProperty.Parse.html +1 -1
  215. package/docs/functions/SetProperty.Serialize.html +1 -1
  216. package/docs/functions/SoftObjectArrayProperty.Parse.html +1 -1
  217. package/docs/functions/SoftObjectArrayProperty.Serialize.html +1 -1
  218. package/docs/functions/SoftObjectReference.read.html +1 -1
  219. package/docs/functions/SoftObjectReference.write.html +1 -1
  220. package/docs/functions/SpecialDroneActionProperties.Parse.html +1 -1
  221. package/docs/functions/SpecialDroneActionProperties.Serialize.html +1 -1
  222. package/docs/functions/SpecialProperties.ParseClassSpecificSpecialProperties.html +1 -1
  223. package/docs/functions/SpecialProperties.SerializeClassSpecificSpecialProperties.html +1 -1
  224. package/docs/functions/StrArrayProperty.Parse.html +1 -1
  225. package/docs/functions/StrArrayProperty.Serialize.html +1 -1
  226. package/docs/functions/StrProperty.CalcOverhead.html +1 -1
  227. package/docs/functions/StrProperty.Parse.html +1 -1
  228. package/docs/functions/StrProperty.ReadValue.html +1 -1
  229. package/docs/functions/StrProperty.Serialize.html +1 -1
  230. package/docs/functions/StrProperty.SerializeValue.html +1 -1
  231. package/docs/functions/StrSetProperty.Parse.html +1 -1
  232. package/docs/functions/StrSetProperty.Serialize.html +1 -1
  233. package/docs/functions/StructArrayProperty.Parse.html +1 -1
  234. package/docs/functions/StructArrayProperty.Serialize.html +1 -1
  235. package/docs/functions/StructProperty.CalcOverhead.html +1 -1
  236. package/docs/functions/StructProperty.Parse.html +1 -1
  237. package/docs/functions/StructProperty.ParseValue.html +1 -1
  238. package/docs/functions/StructProperty.Serialize.html +1 -1
  239. package/docs/functions/StructProperty.SerializeValue.html +1 -1
  240. package/docs/functions/StructSetProperty.Parse.html +1 -1
  241. package/docs/functions/StructSetProperty.Serialize.html +1 -1
  242. package/docs/functions/TextArrayProperty.Parse.html +1 -1
  243. package/docs/functions/TextArrayProperty.Serialize.html +1 -1
  244. package/docs/functions/TextProperty.CalcOverhead.html +1 -1
  245. package/docs/functions/TextProperty.Parse.html +1 -1
  246. package/docs/functions/TextProperty.ReadValue.html +1 -1
  247. package/docs/functions/TextProperty.Serialize.html +1 -1
  248. package/docs/functions/TextProperty.SerializeValue.html +1 -1
  249. package/docs/functions/Transform.Parse.html +1 -1
  250. package/docs/functions/Transform.ParseF.html +1 -1
  251. package/docs/functions/Transform.Serialize.html +1 -1
  252. package/docs/functions/Transform.SerializeF.html +1 -1
  253. package/docs/functions/Uint32Property.CalcOverhead.html +1 -1
  254. package/docs/functions/Uint32Property.Parse.html +1 -1
  255. package/docs/functions/Uint32Property.ReadValue.html +1 -1
  256. package/docs/functions/Uint32Property.Serialize.html +1 -1
  257. package/docs/functions/Uint32Property.SerializeValue.html +1 -1
  258. package/docs/functions/Uint32SetProperty.Parse.html +1 -1
  259. package/docs/functions/Uint32SetProperty.Serialize.html +1 -1
  260. package/docs/functions/Uint64Property.CalcOverhead.html +1 -1
  261. package/docs/functions/Uint64Property.Parse.html +1 -1
  262. package/docs/functions/Uint64Property.ReadValue.html +1 -1
  263. package/docs/functions/Uint64Property.Serialize.html +1 -1
  264. package/docs/functions/Uint64Property.SerializeValue.html +1 -1
  265. package/docs/functions/Uint8Property.CalcOverhead.html +1 -1
  266. package/docs/functions/Uint8Property.Parse.html +1 -1
  267. package/docs/functions/Uint8Property.ReadValue.html +1 -1
  268. package/docs/functions/Uint8Property.Serialize.html +1 -1
  269. package/docs/functions/Uint8Property.SerializeValue.html +1 -1
  270. package/docs/functions/VehiclePhysicsData.Parse.html +1 -1
  271. package/docs/functions/VehiclePhysicsData.Serialize.html +1 -1
  272. package/docs/functions/VehicleSpecialProperties.Parse.html +1 -1
  273. package/docs/functions/VehicleSpecialProperties.Serialize.html +1 -1
  274. package/docs/functions/col4.ParseBGRA.html +1 -1
  275. package/docs/functions/col4.ParseRGBA.html +1 -1
  276. package/docs/functions/col4.SerializeBGRA.html +1 -1
  277. package/docs/functions/col4.SerializeRGBA.html +1 -1
  278. package/docs/functions/isArrayProperty.html +1 -1
  279. package/docs/functions/isBoolArrayProperty.html +1 -1
  280. package/docs/functions/isBoolProperty.html +1 -1
  281. package/docs/functions/isBuildableSubsystemSpecialProperties.html +1 -1
  282. package/docs/functions/isByteArrayProperty.html +1 -1
  283. package/docs/functions/isByteProperty.html +1 -1
  284. package/docs/functions/isCircuitSpecialProperties.html +1 -1
  285. package/docs/functions/isConveyorChainActorSpecialProperties.html +1 -1
  286. package/docs/functions/isConveyorSpecialProperties.html +1 -1
  287. package/docs/functions/isDoubleArrayProperty.html +1 -1
  288. package/docs/functions/isDoubleProperty.html +1 -1
  289. package/docs/functions/isEmptySpecialProperties.html +1 -1
  290. package/docs/functions/isEnumArrayProperty.html +1 -1
  291. package/docs/functions/isEnumProperty.html +1 -1
  292. package/docs/functions/isFloatArrayProperty.html +1 -1
  293. package/docs/functions/isFloatProperty.html +1 -1
  294. package/docs/functions/isInt32ArrayProperty.html +1 -1
  295. package/docs/functions/isInt32Property.html +1 -1
  296. package/docs/functions/isInt32SetProperty.html +1 -1
  297. package/docs/functions/isInt64ArrayProperty.html +1 -1
  298. package/docs/functions/isInt64Property.html +1 -1
  299. package/docs/functions/isInt8Property.html +1 -1
  300. package/docs/functions/isMapProperty.html +1 -1
  301. package/docs/functions/isObjectArrayProperty.html +1 -1
  302. package/docs/functions/isObjectProperty.html +1 -1
  303. package/docs/functions/isObjectSetProperty.html +1 -1
  304. package/docs/functions/isObjectsListSpecialProperties.html +1 -1
  305. package/docs/functions/isPlayerSpecialProperties.html +1 -1
  306. package/docs/functions/isPowerLineSpecialProperties.html +1 -1
  307. package/docs/functions/isSaveComponent.html +1 -1
  308. package/docs/functions/isSaveEntity.html +1 -1
  309. package/docs/functions/isSetProperty.html +1 -1
  310. package/docs/functions/isSoftObjectArrayProperty.html +1 -1
  311. package/docs/functions/isSpecialDroneActionProperties.html +1 -1
  312. package/docs/functions/isStrArrayProperty.html +1 -1
  313. package/docs/functions/isStrProperty.html +1 -1
  314. package/docs/functions/isStrSetProperty.html +1 -1
  315. package/docs/functions/isStructArrayProperty.html +1 -1
  316. package/docs/functions/isStructProperty.html +1 -1
  317. package/docs/functions/isStructSetProperty.html +1 -1
  318. package/docs/functions/isTextArrayProperty.html +1 -1
  319. package/docs/functions/isTextProperty.html +1 -1
  320. package/docs/functions/isUInt64Property.html +1 -1
  321. package/docs/functions/isUint32Property.html +1 -1
  322. package/docs/functions/isUint32SetProperty.html +1 -1
  323. package/docs/functions/isUint8Property.html +1 -1
  324. package/docs/functions/isVehicleSpecialProperties.html +1 -1
  325. package/docs/functions/vec2.Parse.html +1 -1
  326. package/docs/functions/vec2.ParseF.html +1 -1
  327. package/docs/functions/vec2.Serialize.html +1 -1
  328. package/docs/functions/vec2.SerializeF.html +1 -1
  329. package/docs/functions/vec3.Parse.html +1 -1
  330. package/docs/functions/vec3.ParseF.html +1 -1
  331. package/docs/functions/vec3.ParseInt.html +1 -1
  332. package/docs/functions/vec3.Serialize.html +1 -1
  333. package/docs/functions/vec3.SerializeF.html +1 -1
  334. package/docs/functions/vec3.SerializeInt.html +1 -1
  335. package/docs/functions/vec3.add.html +1 -1
  336. package/docs/functions/vec3.length.html +1 -1
  337. package/docs/functions/vec3.mult.html +1 -1
  338. package/docs/functions/vec3.norm.html +1 -1
  339. package/docs/functions/vec3.sub.html +1 -1
  340. package/docs/functions/vec4.Parse.html +1 -1
  341. package/docs/functions/vec4.ParseF.html +1 -1
  342. package/docs/functions/vec4.Serialize.html +1 -1
  343. package/docs/functions/vec4.SerializeF.html +1 -1
  344. package/docs/interfaces/Blueprint.html +2 -2
  345. package/docs/interfaces/BlueprintConfig-1.html +2 -2
  346. package/docs/interfaces/SaveComponentHeader.html +2 -2
  347. package/docs/interfaces/SaveEntityHeader.html +2 -2
  348. package/docs/interfaces/SaveObjectHeader.html +2 -2
  349. package/docs/modules/AbstractBaseProperty.html +1 -1
  350. package/docs/modules/ArrayProperty.html +1 -1
  351. package/docs/modules/BlueprintConfig.html +1 -1
  352. package/docs/modules/BlueprintHeader.html +1 -1
  353. package/docs/modules/BoolArrayProperty.html +1 -1
  354. package/docs/modules/BoolProperty.html +1 -1
  355. package/docs/modules/BuildableSubsystemSpecialProperties.html +1 -1
  356. package/docs/modules/BuildableTypeInstance.html +1 -1
  357. package/docs/modules/ByteArrayProperty.html +1 -1
  358. package/docs/modules/ByteProperty.html +1 -1
  359. package/docs/modules/CircuitSpecialProperties.html +1 -1
  360. package/docs/modules/ConveyorChainActorSpecialProperties.html +1 -1
  361. package/docs/modules/ConveyorSpecialProperties.html +1 -1
  362. package/docs/modules/DoubleArrayProperty.html +1 -1
  363. package/docs/modules/DoubleProperty.html +1 -1
  364. package/docs/modules/DynamicStructPropertyValue.html +1 -1
  365. package/docs/modules/EmptySpecialProperties.html +1 -1
  366. package/docs/modules/EnumArrayProperty.html +1 -1
  367. package/docs/modules/EnumProperty.html +1 -1
  368. package/docs/modules/FGDynamicStruct.html +1 -1
  369. package/docs/modules/FICFrameRange.html +1 -1
  370. package/docs/modules/FloatArrayProperty.html +1 -1
  371. package/docs/modules/FloatProperty.html +1 -1
  372. package/docs/modules/GUID.html +1 -1
  373. package/docs/modules/GUIDInfo.html +1 -1
  374. package/docs/modules/Int32ArrayProperty.html +1 -1
  375. package/docs/modules/Int32Property.html +1 -1
  376. package/docs/modules/Int32SetProperty.html +1 -1
  377. package/docs/modules/Int64ArrayProperty.html +1 -1
  378. package/docs/modules/Int64Property.html +1 -1
  379. package/docs/modules/Int8Property.html +1 -1
  380. package/docs/modules/Level.html +1 -1
  381. package/docs/modules/LevelToDestroyedActorsMap.html +1 -1
  382. package/docs/modules/MD5Hash.html +1 -1
  383. package/docs/modules/MapProperty.html +1 -1
  384. package/docs/modules/ObjectArrayProperty.html +1 -1
  385. package/docs/modules/ObjectProperty.html +1 -1
  386. package/docs/modules/ObjectReference.html +1 -1
  387. package/docs/modules/ObjectSetProperty.html +1 -1
  388. package/docs/modules/ObjectsListSpecialProperties.html +1 -1
  389. package/docs/modules/PlayerSpecialProperties.html +1 -1
  390. package/docs/modules/PowerLineSpecialProperties.html +1 -1
  391. package/docs/modules/PropertiesList.html +1 -1
  392. package/docs/modules/SatisfactorySaveHeader.html +1 -1
  393. package/docs/modules/SaveBodyChunks.html +1 -1
  394. package/docs/modules/SetProperty.html +1 -1
  395. package/docs/modules/SoftObjectArrayProperty.html +1 -1
  396. package/docs/modules/SoftObjectReference.html +1 -1
  397. package/docs/modules/SpecialDroneActionProperties.html +1 -1
  398. package/docs/modules/SpecialProperties.html +1 -1
  399. package/docs/modules/StrArrayProperty.html +1 -1
  400. package/docs/modules/StrProperty.html +1 -1
  401. package/docs/modules/StrSetProperty.html +1 -1
  402. package/docs/modules/StructArrayProperty.html +1 -1
  403. package/docs/modules/StructProperty.html +1 -1
  404. package/docs/modules/StructSetProperty.html +1 -1
  405. package/docs/modules/TextArrayProperty.html +1 -1
  406. package/docs/modules/TextProperty.html +1 -1
  407. package/docs/modules/Transform.html +2 -1
  408. package/docs/modules/Uint32Property.html +1 -1
  409. package/docs/modules/Uint32SetProperty.html +1 -1
  410. package/docs/modules/Uint64Property.html +1 -1
  411. package/docs/modules/Uint8Property.html +1 -1
  412. package/docs/modules/VehiclePhysicsData.html +1 -1
  413. package/docs/modules/VehicleSpecialProperties.html +1 -1
  414. package/docs/modules/col4.html +1 -1
  415. package/docs/modules/vec2.html +1 -1
  416. package/docs/modules/vec3.html +1 -1
  417. package/docs/modules/vec4.html +1 -1
  418. package/docs/modules.html +2 -1
  419. package/docs/types/AbstractBaseProperty-1.html +1 -1
  420. package/docs/types/ArrayProperty.AvailableArrayPropertyTypes.html +1 -1
  421. package/docs/types/ArrayPropertyStructValueFields.html +1 -1
  422. package/docs/types/BasicMultipleStructPropertyValue.html +1 -1
  423. package/docs/types/BasicStructPropertyValue.html +1 -1
  424. package/docs/types/BlueprintHeader-1.html +1 -1
  425. package/docs/types/BoolArrayProperty-1.html +1 -1
  426. package/docs/types/BoolProperty-1.html +1 -1
  427. package/docs/types/BoxStructPropertyValue.html +1 -1
  428. package/docs/types/BuildableSubsystemSpecialProperties-1.html +1 -1
  429. package/docs/types/BuildableTypeInstance-1.html +1 -1
  430. package/docs/types/ByteArray4.html +1 -1
  431. package/docs/types/ByteArrayProperty-1.html +1 -1
  432. package/docs/types/ByteProperty-1.html +1 -1
  433. package/docs/types/BytePropertyValue.html +1 -1
  434. package/docs/types/ChunkCompressionInfo.html +1 -1
  435. package/docs/types/ChunkSummary.html +1 -1
  436. package/docs/types/CircuitSpecialProperties-1.html +1 -1
  437. package/docs/types/ClientIdentityInfo.html +1 -1
  438. package/docs/types/ConveyorChainActorSpecialProperties-1.html +1 -1
  439. package/docs/types/ConveyorChainSegmentSpecialProperties.html +1 -1
  440. package/docs/types/ConveyorItemSpecialProperties.html +1 -1
  441. package/docs/types/ConveyorSpecialProperties-1.html +1 -1
  442. package/docs/types/DoubleArrayProperty-1.html +1 -1
  443. package/docs/types/DoubleProperty-1.html +1 -1
  444. package/docs/types/DynamicStructPropertyValue-1.html +1 -1
  445. package/docs/types/EmptySpecialProperties-1.html +1 -1
  446. package/docs/types/EnumArrayProperty-1.html +1 -1
  447. package/docs/types/EnumProperty-1.html +1 -1
  448. package/docs/types/FGDynamicStruct-1.html +1 -1
  449. package/docs/types/FICFrameRange-1.html +1 -1
  450. package/docs/types/FICFrameRangeStructPropertyValue.html +1 -1
  451. package/docs/types/FloatArrayProperty-1.html +1 -1
  452. package/docs/types/FloatProperty-1.html +1 -1
  453. package/docs/types/GENERIC_MAP_KEY_TYPE.html +1 -1
  454. package/docs/types/GENERIC_MAP_VALUE_TYPE.html +1 -1
  455. package/docs/types/GENERIC_STRUCT_PROPERTY_VALUE.html +1 -1
  456. package/docs/types/GUID-1.html +2 -1
  457. package/docs/types/GUIDInfo-1.html +2 -1
  458. package/docs/types/Grids.html +1 -1
  459. package/docs/types/Int32ArrayProperty-1.html +1 -1
  460. package/docs/types/Int32Property-1.html +1 -1
  461. package/docs/types/Int32SetProperty-1.html +1 -1
  462. package/docs/types/Int64ArrayProperty-1.html +1 -1
  463. package/docs/types/Int64Property-1.html +1 -1
  464. package/docs/types/Int8Property-1.html +1 -1
  465. package/docs/types/InventoryItemStructPropertyValue.html +1 -1
  466. package/docs/types/Level-1.html +1 -1
  467. package/docs/types/LevelToDestroyedActorsMap-1.html +1 -1
  468. package/docs/types/Levels.html +1 -1
  469. package/docs/types/MAP_STRUCT_KEY_PROXY.html +1 -1
  470. package/docs/types/MD5Hash-1.html +2 -1
  471. package/docs/types/MapProperty-1.html +1 -1
  472. package/docs/types/ModData.html +1 -1
  473. package/docs/types/ObjectArrayProperty-1.html +1 -1
  474. package/docs/types/ObjectProperty-1.html +1 -1
  475. package/docs/types/ObjectReference-1.html +2 -1
  476. package/docs/types/ObjectSetProperty-1.html +1 -1
  477. package/docs/types/ObjectsListSpecialProperties-1.html +1 -1
  478. package/docs/types/PlayerSpecialProperties-1.html +1 -1
  479. package/docs/types/PowerLineSpecialProperties-1.html +1 -1
  480. package/docs/types/PropertiesMap.html +1 -1
  481. package/docs/types/RailroadTrackPositionStructPropertyValue.html +1 -1
  482. package/docs/types/RoughSaveVersion.html +1 -1
  483. package/docs/types/SatisfactoryModMetadata.html +1 -1
  484. package/docs/types/SatisfactorySaveHeader-1.html +1 -1
  485. package/docs/types/SaveBodyChunks-1.html +1 -1
  486. package/docs/types/SaveBodyValidation.html +1 -1
  487. package/docs/types/SetProperty.AvailableSetPropertyTypes.html +1 -1
  488. package/docs/types/SoftObjectArrayProperty-1.html +1 -1
  489. package/docs/types/SoftObjectReference-1.html +1 -1
  490. package/docs/types/SpecialDroneAction.html +1 -1
  491. package/docs/types/SpecialDroneActionProperties-1.html +1 -1
  492. package/docs/types/SpecialProperties.AvailableSpecialPropertiesTypes.html +1 -1
  493. package/docs/types/StrArrayProperty-1.html +1 -1
  494. package/docs/types/StrProperty-1.html +1 -1
  495. package/docs/types/StrSetProperty-1.html +1 -1
  496. package/docs/types/StructArrayProperty-1.html +1 -1
  497. package/docs/types/StructProperty-1.html +1 -1
  498. package/docs/types/StructSetProperty-1.html +1 -1
  499. package/docs/types/TextArrayProperty-1.html +1 -1
  500. package/docs/types/TextProperty-1.html +1 -1
  501. package/docs/types/TextPropertyValue.html +1 -1
  502. package/docs/types/Transform-1.html +2 -1
  503. package/docs/types/Uint32Property-1.html +1 -1
  504. package/docs/types/Uint32SetProperty-1.html +1 -1
  505. package/docs/types/Uint64Property-1.html +1 -1
  506. package/docs/types/Uint8Property-1.html +1 -1
  507. package/docs/types/VehiclePhysicsData-1.html +1 -1
  508. package/docs/types/VehicleSpecialProperties-1.html +1 -1
  509. package/docs/types/col4-1.html +2 -1
  510. package/docs/types/vec2-1.html +2 -1
  511. package/docs/types/vec3-1.html +2 -1
  512. package/docs/types/vec4-1.html +2 -1
  513. package/docs/variables/DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE.html +1 -1
  514. package/docs/variables/EDIT.html +2 -1
  515. package/docs/variables/SaveBodyChunks.HEADER_V1.html +1 -1
  516. package/docs/variables/SaveBodyChunks.HEADER_V2.html +1 -1
  517. package/jsr.json +1 -1
  518. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"factory-game-custom-version.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/factory-game-custom-version.ts"],"names":[],"mappings":";;;AAKA,IAAY,wBA2FX;AA3FD,WAAY,wBAAwB;IAEhC,qHAA+B,CAAA;IAG/B,qHAA2B,CAAA;IAG3B,2IAAsC,CAAA;IAGtC,+HAAgC,CAAA;IAGhC,2HAA8B,CAAA;IAG9B,mGAAkB,CAAA;IAGlB,qIAAmC,CAAA;IAGnC,6HAA+B,CAAA;IAG/B,uGAAoB,CAAA;IAGpB,uGAAoB,CAAA;IAGpB,8FAAe,CAAA;IAGf,sGAAmB,CAAA;IAGnB,kHAAyB,CAAA;IAGzB,4GAAsB,CAAA;IAGtB,8HAA+B,CAAA;IAG/B,wIAAoC,CAAA;IAGpC,gGAAgB,CAAA;IAGhB,4HAA8B,CAAA;IAG9B,0HAA6B,CAAA;IAG7B,gIAAgC,CAAA;IAGhC,wGAAoB,CAAA;IAGpB,sGAAmB,CAAA;IAGnB,gGAAgB,CAAA;IAGhB,8GAAuB,CAAA;IAGvB,0IAAqC,CAAA;IAGrC,0GAAqB,CAAA;IAGrB,oIAAkC,CAAA;IAGlC,0IAAqC,CAAA;IAGrC,kGAAiB,CAAA;IAGjB,4FAAc,CAAA;IACd,0FAAkC,CAAA;AACtC,CAAC,EA3FW,wBAAwB,wCAAxB,wBAAwB,QA2FnC;AAAA,CAAC","sourcesContent":["\n\n/***\n * Source: FactoryGame.h\n */\nexport enum FactoryGameCustomVersion {\n // Before any version changes were made\n BeforeCustomVersionWasAdded = 0,\n\n // 2017-06-02: Moved mNumItems and mPickupClass into mPickupItems in FGItemPickup\n ItemPickupGotInventoryStack,\n\n // 2017-06-17: Added persistent serialization to inventory items\n InventoryItemGotPersistantSeralization,\n\n // 2017-08-23: Moved mPreviewDistance from Vehicle and Buildable to FGItemDescriptor\n MovedPreviewDistanceToDescriptor,\n\n // 2017-08-29: Moved mPreviewDistance into FItemView\n MovedPreviewDistanceToItemView,\n\n // 2017-09-08: Moved mBuildCategory from FGBuildingDescriptor to new base FGBuildDescriptor\n MovedBuildCategory,\n\n // 2017-11-09: In FGSchematic renamed mTechOnionRingIndex to mTechTier\n RenamedTechOnionRingIndexToTechTier,\n\n // 2017-11-14: Removed alternative costs that are randomized.\n RemovedRandomizedSchematicCosts,\n\n // 2017-12-12: Renamed ArmsAnimClass in equipment\n RenamedArmsAnimClass,\n\n // 2018-02-23: FItemView changed FocalZOffset to FocalOffset\n ChangedItemViewFocus,\n\n // 2018-09-17: Added support for large icons\n AddedLargeIcons,\n\n // 2019-04-08: Changed ExcludedInBuild to IncludedInBuild with research recipes\n CookResearchRecipes,\n\n // 2019-04-24: Changed so that fuel classes default values are separated from what's replicated to clients\n ChangedFuelClassesStorage,\n\n // 2019-10-02: Refactored unlock system and migrated schematic data to new unlock system\n RefactoredUnlockSystem,\n\n // 2019-11-13: Refactored schematic category type from enum based to object based\n RefactoredSchematicCategoryType,\n\n // 2019-11-18: Renamed members of FGExponentialHeightFog\n RenamedPostProcessMembersOfHeightFog,\n\n // 2020-02-06: Meant to be in save custom version but misplaced it and now assets have been saved with it so don't want to remove it. \n MisplacedVersion,\n\n // 2020-02-21: Renamed mShipTravelTimeAfterPurchase to mTimeToComplete\n RenamedSchematicShipTravelTime,\n\n // 2020-03-24: Migrate the schematic dependencies to use the UFGAvailabilityDependency\n RefactorSchematicDependencies,\n\n // 2020-03-24: Add support for specific resource node types in the FGUnlockableScannableResource\n RefactorUnlockScannableResources,\n\n // 2021-05-05: Expand dialogue data for audio messages \n RefactorDialogueData,\n\n // 2021-08-12: Moved variables and functions from BuildDescriptor to ItemDescriptor\n RefactorDescriptors,\n\n // 2021-12-03: Add support for sublevel saving. World actors are now cached in FGWorldSettings\n CachedSaveActors,\n\n // 2022-12-07: Removed the afore-mentioned cached actors array\n RemovedCachedSaveActors,\n\n // 2023-01-09: Some attributes of Exponential Height Fog were renamed and changes were matched in UFGBiome\n ExponentialHeightFogAttributesRenamed,\n\n // 2023-01-10: Cyclic curves were converted to plain curves in UFGBiome to get rid of the custom UI for the former\n CyclicCurveDeprecated,\n\n // 2023-07-14: Migrated FGUserSetting assets to use the ManagerAvailability UClass*, changed the default to be None instead of Options\n MigratedUserSettingsToManagerClass,\n\n // 2023-07-18: Always serialize FGRailroadTrackPosition, as opposed to only doing it for SaveGames. Fixes it not being serialized in hologram construction message\n AlwaysSerializeRailroadTrackPositions,\n\n // 2023-09-15: Same as MisplacedVersion, meant to place it into the save custom version, but now assets are saved with it.\n MisplacedVersion2,\n\n // -----<new versions can be added above this line>-------------------------------------------------\n VersionPlusOne,\n LatestVersion = VersionPlusOne - 1\n};"]}
1
+ {"version":3,"file":"factory-game-custom-version.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/factory-game-custom-version.ts"],"names":[],"mappings":";;;AAKA,IAAY,wBA2FX;AA3FD,WAAY,wBAAwB;IAEhC,qHAA+B,CAAA;IAG/B,qHAA2B,CAAA;IAG3B,2IAAsC,CAAA;IAGtC,+HAAgC,CAAA;IAGhC,2HAA8B,CAAA;IAG9B,mGAAkB,CAAA;IAGlB,qIAAmC,CAAA;IAGnC,6HAA+B,CAAA;IAG/B,uGAAoB,CAAA;IAGpB,uGAAoB,CAAA;IAGpB,8FAAe,CAAA;IAGf,sGAAmB,CAAA;IAGnB,kHAAyB,CAAA;IAGzB,4GAAsB,CAAA;IAGtB,8HAA+B,CAAA;IAG/B,wIAAoC,CAAA;IAGpC,gGAAgB,CAAA;IAGhB,4HAA8B,CAAA;IAG9B,0HAA6B,CAAA;IAG7B,gIAAgC,CAAA;IAGhC,wGAAoB,CAAA;IAGpB,sGAAmB,CAAA;IAGnB,gGAAgB,CAAA;IAGhB,8GAAuB,CAAA;IAGvB,0IAAqC,CAAA;IAGrC,0GAAqB,CAAA;IAGrB,oIAAkC,CAAA;IAGlC,0IAAqC,CAAA;IAGrC,kGAAiB,CAAA;IAGjB,4FAAc,CAAA;IACd,0FAAkC,CAAA;AACtC,CAAC,EA3FW,wBAAwB,wCAAxB,wBAAwB,QA2FnC;AAAA,CAAC","sourcesContent":["\n\n/***\n * Source: FactoryGameCustomVersion.h\n */\nexport enum FactoryGameCustomVersion {\n // Before any version changes were made\n BeforeCustomVersionWasAdded = 0,\n\n // 2017-06-02: Moved mNumItems and mPickupClass into mPickupItems in FGItemPickup\n ItemPickupGotInventoryStack,\n\n // 2017-06-17: Added persistent serialization to inventory items\n InventoryItemGotPersistantSeralization,\n\n // 2017-08-23: Moved mPreviewDistance from Vehicle and Buildable to FGItemDescriptor\n MovedPreviewDistanceToDescriptor,\n\n // 2017-08-29: Moved mPreviewDistance into FItemView\n MovedPreviewDistanceToItemView,\n\n // 2017-09-08: Moved mBuildCategory from FGBuildingDescriptor to new base FGBuildDescriptor\n MovedBuildCategory,\n\n // 2017-11-09: In FGSchematic renamed mTechOnionRingIndex to mTechTier\n RenamedTechOnionRingIndexToTechTier,\n\n // 2017-11-14: Removed alternative costs that are randomized.\n RemovedRandomizedSchematicCosts,\n\n // 2017-12-12: Renamed ArmsAnimClass in equipment\n RenamedArmsAnimClass,\n\n // 2018-02-23: FItemView changed FocalZOffset to FocalOffset\n ChangedItemViewFocus,\n\n // 2018-09-17: Added support for large icons\n AddedLargeIcons,\n\n // 2019-04-08: Changed ExcludedInBuild to IncludedInBuild with research recipes\n CookResearchRecipes,\n\n // 2019-04-24: Changed so that fuel classes default values are separated from what's replicated to clients\n ChangedFuelClassesStorage,\n\n // 2019-10-02: Refactored unlock system and migrated schematic data to new unlock system\n RefactoredUnlockSystem,\n\n // 2019-11-13: Refactored schematic category type from enum based to object based\n RefactoredSchematicCategoryType,\n\n // 2019-11-18: Renamed members of FGExponentialHeightFog\n RenamedPostProcessMembersOfHeightFog,\n\n // 2020-02-06: Meant to be in save custom version but misplaced it and now assets have been saved with it so don't want to remove it. \n MisplacedVersion,\n\n // 2020-02-21: Renamed mShipTravelTimeAfterPurchase to mTimeToComplete\n RenamedSchematicShipTravelTime,\n\n // 2020-03-24: Migrate the schematic dependencies to use the UFGAvailabilityDependency\n RefactorSchematicDependencies,\n\n // 2020-03-24: Add support for specific resource node types in the FGUnlockableScannableResource\n RefactorUnlockScannableResources,\n\n // 2021-05-05: Expand dialogue data for audio messages \n RefactorDialogueData,\n\n // 2021-08-12: Moved variables and functions from BuildDescriptor to ItemDescriptor\n RefactorDescriptors,\n\n // 2021-12-03: Add support for sublevel saving. World actors are now cached in FGWorldSettings\n CachedSaveActors,\n\n // 2022-12-07: Removed the afore-mentioned cached actors array\n RemovedCachedSaveActors,\n\n // 2023-01-09: Some attributes of Exponential Height Fog were renamed and changes were matched in UFGBiome\n ExponentialHeightFogAttributesRenamed,\n\n // 2023-01-10: Cyclic curves were converted to plain curves in UFGBiome to get rid of the custom UI for the former\n CyclicCurveDeprecated,\n\n // 2023-07-14: Migrated FGUserSetting assets to use the ManagerAvailability UClass*, changed the default to be None instead of Options\n MigratedUserSettingsToManagerClass,\n\n // 2023-07-18: Always serialize FGRailroadTrackPosition, as opposed to only doing it for SaveGames. Fixes it not being serialized in hologram construction message\n AlwaysSerializeRailroadTrackPositions,\n\n // 2023-09-15: Same as MisplacedVersion, meant to place it into the save custom version, but now assets are saved with it.\n MisplacedVersion2,\n\n // -----<new versions can be added above this line>-------------------------------------------------\n VersionPlusOne,\n LatestVersion = VersionPlusOne - 1\n};"]}
@@ -20,6 +20,6 @@ export declare namespace SaveBodyChunks {
20
20
  const HEADER_V1 = 0;
21
21
  const HEADER_V2 = 572662306;
22
22
  const DecompressChunks: (fileBuffer: ArrayBufferLike, alignment?: Alignment) => SaveBodyChunks;
23
- const CompressDataIntoChunks: (bufferArray: ArrayBuffer, compressionInfo: ChunkCompressionInfo, onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onChunk: (chunk: Uint8Array) => void, alignment?: Alignment) => ChunkSummary[];
23
+ const CompressDataIntoChunks: (bufferArray: ArrayBuffer, compressionInfo: ChunkCompressionInfo, blueprintOrSave: "blueprint" | "save", onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onChunk: (chunk: Uint8Array) => void, alignment?: Alignment) => ChunkSummary[];
24
24
  }
25
25
  //# sourceMappingURL=save-body-chunks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-body-chunks.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-body-chunks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,oBAAY,wBAAwB;IAChC,IAAI,IAAI;CACX;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;IAChD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B,EAAE,MAAM,CAAC;CAC3C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAA;CACzB,CAAA;AAGD,MAAM,MAAM,cAAc,GAAG;IACzB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,eAAe,EAAE,oBAAoB,CAAC;CACzC,CAAA;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,SAAS,IAAa,CAAC;IAC7B,MAAM,SAAS,YAAa,CAAC;IAE7B,MAAM,gBAAgB,eAAgB,eAAe,4BAAwC,cAwEnG,CAAA;IAEM,MAAM,sBAAsB,gBAClB,WAAW,mBACP,oBAAoB,6BACV,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,WAC/C,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,cACzB,SAAS,KACrB,YAAY,EA8Dd,CAAA;CACJ"}
1
+ {"version":3,"file":"save-body-chunks.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-body-chunks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,oBAAY,wBAAwB;IAChC,IAAI,IAAI;CACX;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;IAChD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B,EAAE,MAAM,CAAC;CAC3C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAA;CACzB,CAAA;AAGD,MAAM,MAAM,cAAc,GAAG;IACzB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,eAAe,EAAE,oBAAoB,CAAC;CACzC,CAAA;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,SAAS,IAAa,CAAC;IAC7B,MAAM,SAAS,YAAa,CAAC;IAE7B,MAAM,gBAAgB,eAAgB,eAAe,4BAAwC,cAwEnG,CAAA;IAEM,MAAM,sBAAsB,gBAClB,WAAW,mBACP,oBAAoB,mBACpB,WAAW,GAAG,MAAM,6BACV,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,WAC/C,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,cACzB,SAAS,KACrB,YAAY,EA8Dd,CAAA;CACJ"}
@@ -67,10 +67,10 @@ var SaveBodyChunks;
67
67
  }
68
68
  };
69
69
  };
70
- SaveBodyChunks.CompressDataIntoChunks = (bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, alignment = alignment_enum_1.Alignment.LITTLE_ENDIAN) => {
70
+ SaveBodyChunks.CompressDataIntoChunks = (bufferArray, compressionInfo, blueprintOrSave, onBinaryBeforeCompressing, onChunk, alignment = alignment_enum_1.Alignment.LITTLE_ENDIAN) => {
71
71
  const totalUncompressedSize = bufferArray.byteLength;
72
72
  const chunkHeaderSize = compressionInfo.chunkHeaderVersion === SaveBodyChunks.HEADER_V1 ? 48 : 49;
73
- const saveBody = new Uint8Array(bufferArray.byteLength + 8);
73
+ const saveBody = new Uint8Array(bufferArray.byteLength + (blueprintOrSave === 'blueprint' ? 4 : 8));
74
74
  saveBody.set(new Uint8Array(bufferArray), 4);
75
75
  const miniView = new DataView(saveBody.buffer);
76
76
  miniView.setInt32(0, totalUncompressedSize, alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
@@ -1 +1 @@
1
- {"version":3,"file":"save-body-chunks.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-body-chunks.ts"],"names":[],"mappings":"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","sourcesContent":["import Pako from \"pako\";\nimport { Alignment } from \"../../byte/alignment.enum\";\nimport { CompressionLibraryError, ParserError } from \"../../error/parser.error\";\n\nexport enum CompressionAlgorithmCode {\n ZLIB = 3,\n}\n\nexport type ChunkCompressionInfo = {\n compressionAlgorithm?: CompressionAlgorithmCode;\n chunkHeaderVersion: number;\n packageFileTag: number;\n maxUncompressedChunkContentSize: number;\n}\n\nexport type ChunkSummary = {\n uncompressedSize: number,\n compressedSize: number\n}\n\n\nexport type SaveBodyChunks = {\n uncompressedData: Uint8Array;\n compressionInfo: ChunkCompressionInfo;\n}\n\nexport namespace SaveBodyChunks {\n export const HEADER_V1 = 0x00000000;\n export const HEADER_V2 = 0x22222222;\n\n export const DecompressChunks = (fileBuffer: ArrayBufferLike, alignment = Alignment.LITTLE_ENDIAN): SaveBodyChunks => {\n\n // slicing filebuffer has to happen outside\n var array = new DataView(fileBuffer);\n let currentByte = 0;\n\n let maxUncompressedChunkContentSize = 0;\n let packageFileTag = 0;\n let chunkHeaderSize = 0;\n let chunkHeaderVersion = HEADER_V2;\n let compressionAlgorithm = CompressionAlgorithmCode.ZLIB;\n let currentChunks = [];\n\n do {\n\n\n // get chunk header info. We can safely assume it is the same for every chunk\n if (currentChunks.length === 0) {\n packageFileTag = array.getUint32(currentByte, alignment === Alignment.LITTLE_ENDIAN);\n chunkHeaderVersion = array.getUint32(currentByte + 4, alignment === Alignment.LITTLE_ENDIAN);\n chunkHeaderSize = chunkHeaderVersion === HEADER_V1 ? 48 : 49;\n maxUncompressedChunkContentSize = array.getInt32(currentByte + 8, alignment === Alignment.LITTLE_ENDIAN);\n if (chunkHeaderVersion === HEADER_V2) {\n compressionAlgorithm = array.getUint8(currentByte + 16);\n }\n }\n\n // TODO: rather is int64. but in JS we have to use bigint, which is cumbersome. Find a way.\n const chunkUncompressedLength = array.getInt32(currentByte + (chunkHeaderVersion === HEADER_V1 ? 24 : 25), alignment === Alignment.LITTLE_ENDIAN);\n const chunkCompressedLength = array.getInt32(currentByte + (chunkHeaderVersion === HEADER_V1 ? 32 : 33), alignment === Alignment.LITTLE_ENDIAN);\n\n\n // step to chunk body\n currentByte += chunkHeaderSize;\n\n try {\n // Inflate chunk body\n let currentInflatedChunk = null;\n currentInflatedChunk = Pako.inflate(new Uint8Array(fileBuffer.slice(currentByte, currentByte + chunkCompressedLength)));\n currentChunks.push(currentInflatedChunk);\n\n // step to next chunk\n currentByte += chunkCompressedLength;\n fileBuffer = fileBuffer.slice(currentByte);\n array = new DataView(fileBuffer);\n currentByte = 0;\n\n }\n catch (err) {\n throw new ParserError('ParserError', 'An error occurred while calling pako inflate.' + err);\n }\n\n } while (currentByte < fileBuffer.byteLength)\n\n // Create one big chunk out of the little chunks\n let newChunkLength = currentChunks.map<number>(cc => cc.length).reduce((prev, cur) => prev + cur);\n const bigWholeChunk = new Uint8Array(newChunkLength);\n let currentLength = 0;\n for (let i = 0; i < currentChunks.length; i++) {\n bigWholeChunk.set(currentChunks[i], currentLength);\n currentLength += currentChunks[i].length;\n }\n\n return {\n uncompressedData: bigWholeChunk,\n compressionInfo: {\n chunkHeaderVersion,\n packageFileTag,\n maxUncompressedChunkContentSize,\n compressionAlgorithm\n }\n } satisfies SaveBodyChunks;\n }\n\n export const CompressDataIntoChunks = (\n bufferArray: ArrayBuffer,\n compressionInfo: ChunkCompressionInfo,\n onBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n onChunk: (chunk: Uint8Array) => void,\n alignment: Alignment = Alignment.LITTLE_ENDIAN\n ): ChunkSummary[] => {\n\n const totalUncompressedSize = bufferArray.byteLength;\n const chunkHeaderSize = compressionInfo.chunkHeaderVersion === SaveBodyChunks.HEADER_V1 ? 48 : 49;\n\n const saveBody = new Uint8Array(bufferArray.byteLength + 8);\n saveBody.set(new Uint8Array(bufferArray), 4);\n const miniView = new DataView(saveBody.buffer);\n miniView.setInt32(0, totalUncompressedSize, alignment === Alignment.LITTLE_ENDIAN);\n onBinaryBeforeCompressing(saveBody.buffer);\n\n // collect slices of chunks with help of compression info for max chunk size\n let handledByte = 0;\n const chunkSummary: {\n uncompressedSize: number,\n compressedSize: number\n }[] = [];\n while (handledByte < saveBody.byteLength) {\n\n // create uncompressed chunk.\n const uncompressedContentSize = Math.min(compressionInfo.maxUncompressedChunkContentSize, saveBody.byteLength - handledByte);\n const uncompressedChunk = saveBody.buffer.slice(handledByte, handledByte + uncompressedContentSize);\n\n // deflate chunk while we're at it.\n let compressedChunk: Uint8Array = new Uint8Array(0);\n try {\n compressedChunk = Pako.deflate(uncompressedChunk);\n }\n catch (err) {\n throw new CompressionLibraryError(\"Could not compress save data. \" + err);\n }\n\n const chunk = new Uint8Array(chunkHeaderSize + compressedChunk.byteLength);\n chunk.set(compressedChunk, chunkHeaderSize);\n\n // write header\n const view = new DataView(chunk.buffer);\n view.setInt32(0, compressionInfo.packageFileTag, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(4, compressionInfo.chunkHeaderVersion, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(8, compressionInfo.maxUncompressedChunkContentSize, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(12, 0, alignment === Alignment.LITTLE_ENDIAN);\n if (compressionInfo.chunkHeaderVersion === HEADER_V2) {\n view.setUint8(16, CompressionAlgorithmCode.ZLIB);\n }\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 16 : 17, compressedChunk.byteLength, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 20 : 21, 0, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 24 : 25, uncompressedContentSize, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 28 : 29, 0, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 32 : 33, compressedChunk.byteLength, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 36 : 37, 0, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 40 : 41, uncompressedContentSize, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 44 : 45, 0, alignment === Alignment.LITTLE_ENDIAN);\n\n onChunk(chunk);\n chunkSummary.push({\n uncompressedSize: uncompressedContentSize + chunkHeaderSize,\n compressedSize: compressedChunk.byteLength + chunkHeaderSize\n });\n handledByte += uncompressedContentSize;\n }\n\n return chunkSummary;\n }\n}"]}
1
+ {"version":3,"file":"save-body-chunks.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-body-chunks.ts"],"names":[],"mappings":"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","sourcesContent":["import Pako from \"pako\";\nimport { Alignment } from \"../../byte/alignment.enum\";\nimport { CompressionLibraryError, ParserError } from \"../../error/parser.error\";\n\nexport enum CompressionAlgorithmCode {\n ZLIB = 3,\n}\n\nexport type ChunkCompressionInfo = {\n compressionAlgorithm?: CompressionAlgorithmCode;\n chunkHeaderVersion: number;\n packageFileTag: number;\n maxUncompressedChunkContentSize: number;\n}\n\nexport type ChunkSummary = {\n uncompressedSize: number,\n compressedSize: number\n}\n\n\nexport type SaveBodyChunks = {\n uncompressedData: Uint8Array;\n compressionInfo: ChunkCompressionInfo;\n}\n\nexport namespace SaveBodyChunks {\n export const HEADER_V1 = 0x00000000;\n export const HEADER_V2 = 0x22222222;\n\n export const DecompressChunks = (fileBuffer: ArrayBufferLike, alignment = Alignment.LITTLE_ENDIAN): SaveBodyChunks => {\n\n // slicing filebuffer has to happen outside\n var array = new DataView(fileBuffer);\n let currentByte = 0;\n\n let maxUncompressedChunkContentSize = 0;\n let packageFileTag = 0;\n let chunkHeaderSize = 0;\n let chunkHeaderVersion = HEADER_V2;\n let compressionAlgorithm = CompressionAlgorithmCode.ZLIB;\n let currentChunks = [];\n\n do {\n\n\n // get chunk header info. We can safely assume it is the same for every chunk\n if (currentChunks.length === 0) {\n packageFileTag = array.getUint32(currentByte, alignment === Alignment.LITTLE_ENDIAN);\n chunkHeaderVersion = array.getUint32(currentByte + 4, alignment === Alignment.LITTLE_ENDIAN);\n chunkHeaderSize = chunkHeaderVersion === HEADER_V1 ? 48 : 49;\n maxUncompressedChunkContentSize = array.getInt32(currentByte + 8, alignment === Alignment.LITTLE_ENDIAN);\n if (chunkHeaderVersion === HEADER_V2) {\n compressionAlgorithm = array.getUint8(currentByte + 16);\n }\n }\n\n // TODO: rather is int64. but in JS we have to use bigint, which is cumbersome. Find a way.\n const chunkUncompressedLength = array.getInt32(currentByte + (chunkHeaderVersion === HEADER_V1 ? 24 : 25), alignment === Alignment.LITTLE_ENDIAN);\n const chunkCompressedLength = array.getInt32(currentByte + (chunkHeaderVersion === HEADER_V1 ? 32 : 33), alignment === Alignment.LITTLE_ENDIAN);\n\n\n // step to chunk body\n currentByte += chunkHeaderSize;\n\n try {\n // Inflate chunk body\n let currentInflatedChunk = null;\n currentInflatedChunk = Pako.inflate(new Uint8Array(fileBuffer.slice(currentByte, currentByte + chunkCompressedLength)));\n currentChunks.push(currentInflatedChunk);\n\n // step to next chunk\n currentByte += chunkCompressedLength;\n fileBuffer = fileBuffer.slice(currentByte);\n array = new DataView(fileBuffer);\n currentByte = 0;\n\n }\n catch (err) {\n throw new ParserError('ParserError', 'An error occurred while calling pako inflate.' + err);\n }\n\n } while (currentByte < fileBuffer.byteLength)\n\n // Create one big chunk out of the little chunks\n let newChunkLength = currentChunks.map<number>(cc => cc.length).reduce((prev, cur) => prev + cur);\n const bigWholeChunk = new Uint8Array(newChunkLength);\n let currentLength = 0;\n for (let i = 0; i < currentChunks.length; i++) {\n bigWholeChunk.set(currentChunks[i], currentLength);\n currentLength += currentChunks[i].length;\n }\n\n return {\n uncompressedData: bigWholeChunk,\n compressionInfo: {\n chunkHeaderVersion,\n packageFileTag,\n maxUncompressedChunkContentSize,\n compressionAlgorithm\n }\n } satisfies SaveBodyChunks;\n }\n\n export const CompressDataIntoChunks = (\n bufferArray: ArrayBuffer,\n compressionInfo: ChunkCompressionInfo,\n blueprintOrSave: 'blueprint' | 'save',\n onBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n onChunk: (chunk: Uint8Array) => void,\n alignment: Alignment = Alignment.LITTLE_ENDIAN\n ): ChunkSummary[] => {\n\n const totalUncompressedSize = bufferArray.byteLength;\n const chunkHeaderSize = compressionInfo.chunkHeaderVersion === SaveBodyChunks.HEADER_V1 ? 48 : 49;\n\n const saveBody = new Uint8Array(bufferArray.byteLength + (blueprintOrSave === 'blueprint' ? 4 : 8));\n saveBody.set(new Uint8Array(bufferArray), 4);\n const miniView = new DataView(saveBody.buffer);\n miniView.setInt32(0, totalUncompressedSize, alignment === Alignment.LITTLE_ENDIAN);\n onBinaryBeforeCompressing(saveBody.buffer);\n\n // collect slices of chunks with help of compression info for max chunk size\n let handledByte = 0;\n const chunkSummary: {\n uncompressedSize: number,\n compressedSize: number\n }[] = [];\n while (handledByte < saveBody.byteLength) {\n\n // create uncompressed chunk.\n const uncompressedContentSize = Math.min(compressionInfo.maxUncompressedChunkContentSize, saveBody.byteLength - handledByte);\n const uncompressedChunk = saveBody.buffer.slice(handledByte, handledByte + uncompressedContentSize);\n\n // deflate chunk while we're at it.\n let compressedChunk: Uint8Array = new Uint8Array(0);\n try {\n compressedChunk = Pako.deflate(uncompressedChunk);\n }\n catch (err) {\n throw new CompressionLibraryError(\"Could not compress save data. \" + err);\n }\n\n const chunk = new Uint8Array(chunkHeaderSize + compressedChunk.byteLength);\n chunk.set(compressedChunk, chunkHeaderSize);\n\n // write header\n const view = new DataView(chunk.buffer);\n view.setInt32(0, compressionInfo.packageFileTag, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(4, compressionInfo.chunkHeaderVersion, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(8, compressionInfo.maxUncompressedChunkContentSize, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(12, 0, alignment === Alignment.LITTLE_ENDIAN);\n if (compressionInfo.chunkHeaderVersion === HEADER_V2) {\n view.setUint8(16, CompressionAlgorithmCode.ZLIB);\n }\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 16 : 17, compressedChunk.byteLength, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 20 : 21, 0, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 24 : 25, uncompressedContentSize, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 28 : 29, 0, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 32 : 33, compressedChunk.byteLength, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 36 : 37, 0, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 40 : 41, uncompressedContentSize, alignment === Alignment.LITTLE_ENDIAN);\n view.setInt32(compressionInfo.chunkHeaderVersion === HEADER_V1 ? 44 : 45, 0, alignment === Alignment.LITTLE_ENDIAN);\n\n onChunk(chunk);\n chunkSummary.push({\n uncompressedSize: uncompressedContentSize + chunkHeaderSize,\n compressedSize: compressedChunk.byteLength + chunkHeaderSize\n });\n handledByte += uncompressedContentSize;\n }\n\n return chunkSummary;\n }\n}"]}
@@ -51,7 +51,8 @@ export declare enum SaveCustomVersion {
51
51
  SerializeObjectFlags = 49,
52
52
  BackToBackRailroadSwitches = 50,
53
53
  SerializePerStreamableLevelTOCVersion = 51,
54
- VersionPlusOne = 52,
55
- LatestVersion = 51
54
+ RailroadTrackConnectionCleanup = 52,
55
+ VersionPlusOne = 53,
56
+ LatestVersion = 52
56
57
  }
57
58
  //# sourceMappingURL=save-custom-version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-custom-version.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-custom-version.ts"],"names":[],"mappings":"AAIA,oBAAY,iBAAiB;IAEzB,2BAA2B,IAAI;IAG/B,sBAAsB,IAAA;IAGtB,0BAA0B,IAAA;IAG1B,6BAA6B,IAAA;IAG7B,8BAA8B,IAAA;IAG9B,+BAA+B,IAAA;IAG/B,uBAAuB,IAAA;IAGvB,iCAAiC,IAAA;IAGjC,+BAA+B,IAAA;IAG/B,qCAAqC,IAAA;IAGrC,sBAAsB,KAAA;IAGtB,qCAAqC,KAAA;IAGrC,4BAA4B,KAAA;IAG5B,6BAA6B,KAAA;IAG7B,yDAAyD,KAAA;IAGzD,2BAA2B,KAAA;IAG3B,yCAAyC,KAAA;IAGzC,4BAA4B,KAAA;IAG5B,+BAA+B,KAAA;IAG/B,wBAAwB,KAAA;IAGxB,gBAAgB,KAAA;IAGhB,oBAAoB,KAAA;IAIpB,oBAAoB,KAAA;IAGpB,uBAAuB,KAAA;IAGvB,mBAAmB,KAAA;IAGnB,kBAAkB,KAAA;IAGlB,uBAAuB,KAAA;IAGvB,qBAAqB,KAAA;IAGrB,wBAAwB,KAAA;IAGxB,sBAAsB,KAAA;IAGtB,sBAAsB,KAAA;IAGtB,qCAAqC,KAAA;IAGrC,uBAAuB,KAAA;IAGvB,2BAA2B,KAAA;IAG3B,2BAA2B,KAAA;IAG3B,2BAA2B,KAAA;IAG3B,qBAAqB,KAAA;IAGrB,aAAa,KAAA;IAGb,wBAAwB,KAAA;IAGxB,mBAAmB,KAAA;IAGnB,wBAAwB,KAAA;IAGxB,wBAAwB,KAAA;IAGxB,2BAA2B,KAAA;IAG3B,4BAA4B,KAAA;IAG5B,kBAAkB,KAAA;IAGlB,kCAAkC,KAAA;IAGlC,QAAQ,KAAA;IAGR,YAAY,KAAA;IAGZ,iDAAiD,KAAA;IAGjD,oBAAoB,KAAA;IAGpB,0BAA0B,KAAA;IAG1B,qCAAqC,KAAA;IAGrC,cAAc,KAAA;IACd,aAAa,KAAqB;CACrC"}
1
+ {"version":3,"file":"save-custom-version.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-custom-version.ts"],"names":[],"mappings":"AAIA,oBAAY,iBAAiB;IAEzB,2BAA2B,IAAI;IAG/B,sBAAsB,IAAA;IAGtB,0BAA0B,IAAA;IAG1B,6BAA6B,IAAA;IAG7B,8BAA8B,IAAA;IAG9B,+BAA+B,IAAA;IAG/B,uBAAuB,IAAA;IAGvB,iCAAiC,IAAA;IAGjC,+BAA+B,IAAA;IAG/B,qCAAqC,IAAA;IAGrC,sBAAsB,KAAA;IAGtB,qCAAqC,KAAA;IAGrC,4BAA4B,KAAA;IAG5B,6BAA6B,KAAA;IAG7B,yDAAyD,KAAA;IAGzD,2BAA2B,KAAA;IAG3B,yCAAyC,KAAA;IAGzC,4BAA4B,KAAA;IAG5B,+BAA+B,KAAA;IAG/B,wBAAwB,KAAA;IAGxB,gBAAgB,KAAA;IAGhB,oBAAoB,KAAA;IAIpB,oBAAoB,KAAA;IAGpB,uBAAuB,KAAA;IAGvB,mBAAmB,KAAA;IAGnB,kBAAkB,KAAA;IAGlB,uBAAuB,KAAA;IAGvB,qBAAqB,KAAA;IAGrB,wBAAwB,KAAA;IAGxB,sBAAsB,KAAA;IAGtB,sBAAsB,KAAA;IAGtB,qCAAqC,KAAA;IAGrC,uBAAuB,KAAA;IAGvB,2BAA2B,KAAA;IAG3B,2BAA2B,KAAA;IAG3B,2BAA2B,KAAA;IAG3B,qBAAqB,KAAA;IAGrB,aAAa,KAAA;IAGb,wBAAwB,KAAA;IAGxB,mBAAmB,KAAA;IAGnB,wBAAwB,KAAA;IAGxB,wBAAwB,KAAA;IAGxB,2BAA2B,KAAA;IAG3B,4BAA4B,KAAA;IAG5B,kBAAkB,KAAA;IAGlB,kCAAkC,KAAA;IAGlC,QAAQ,KAAA;IAGR,YAAY,KAAA;IAGZ,iDAAiD,KAAA;IAGjD,oBAAoB,KAAA;IAGpB,0BAA0B,KAAA;IAG1B,qCAAqC,KAAA;IAGrC,8BAA8B,KAAA;IAG9B,cAAc,KAAA;IACd,aAAa,KAAqB;CACrC"}
@@ -55,8 +55,9 @@ var SaveCustomVersion;
55
55
  SaveCustomVersion[SaveCustomVersion["SerializeObjectFlags"] = 49] = "SerializeObjectFlags";
56
56
  SaveCustomVersion[SaveCustomVersion["BackToBackRailroadSwitches"] = 50] = "BackToBackRailroadSwitches";
57
57
  SaveCustomVersion[SaveCustomVersion["SerializePerStreamableLevelTOCVersion"] = 51] = "SerializePerStreamableLevelTOCVersion";
58
- SaveCustomVersion[SaveCustomVersion["VersionPlusOne"] = 52] = "VersionPlusOne";
59
- SaveCustomVersion[SaveCustomVersion["LatestVersion"] = 51] = "LatestVersion";
58
+ SaveCustomVersion[SaveCustomVersion["RailroadTrackConnectionCleanup"] = 52] = "RailroadTrackConnectionCleanup";
59
+ SaveCustomVersion[SaveCustomVersion["VersionPlusOne"] = 53] = "VersionPlusOne";
60
+ SaveCustomVersion[SaveCustomVersion["LatestVersion"] = 52] = "LatestVersion";
60
61
  })(SaveCustomVersion || (exports.SaveCustomVersion = SaveCustomVersion = {}));
61
62
  ;
62
63
  //# sourceMappingURL=save-custom-version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-custom-version.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-custom-version.ts"],"names":[],"mappings":";;;AAIA,IAAY,iBAiKX;AAjKD,WAAY,iBAAiB;IAEzB,uGAA+B,CAAA;IAG/B,6FAAsB,CAAA;IAGtB,qGAA0B,CAAA;IAG1B,2GAA6B,CAAA;IAG7B,6GAA8B,CAAA;IAG9B,+GAA+B,CAAA;IAG/B,+FAAuB,CAAA;IAGvB,mHAAiC,CAAA;IAGjC,+GAA+B,CAAA;IAG/B,2HAAqC,CAAA;IAGrC,8FAAsB,CAAA;IAGtB,4HAAqC,CAAA;IAGrC,0GAA4B,CAAA;IAG5B,4GAA6B,CAAA;IAG7B,oKAAyD,CAAA;IAGzD,wGAA2B,CAAA;IAG3B,oIAAyC,CAAA;IAGzC,0GAA4B,CAAA;IAG5B,gHAA+B,CAAA;IAG/B,kGAAwB,CAAA;IAGxB,kFAAgB,CAAA;IAGhB,0FAAoB,CAAA;IAIpB,0FAAoB,CAAA;IAGpB,gGAAuB,CAAA;IAGvB,wFAAmB,CAAA;IAGnB,sFAAkB,CAAA;IAGlB,gGAAuB,CAAA;IAGvB,4FAAqB,CAAA;IAGrB,kGAAwB,CAAA;IAGxB,8FAAsB,CAAA;IAGtB,8FAAsB,CAAA;IAGtB,4HAAqC,CAAA;IAGrC,gGAAuB,CAAA;IAGvB,wGAA2B,CAAA;IAG3B,wGAA2B,CAAA;IAG3B,wGAA2B,CAAA;IAG3B,4FAAqB,CAAA;IAGrB,4EAAa,CAAA;IAGb,kGAAwB,CAAA;IAGxB,wFAAmB,CAAA;IAGnB,kGAAwB,CAAA;IAGxB,kGAAwB,CAAA;IAGxB,wGAA2B,CAAA;IAG3B,0GAA4B,CAAA;IAG5B,sFAAkB,CAAA;IAGlB,sHAAkC,CAAA;IAGlC,kEAAQ,CAAA;IAGR,0EAAY,CAAA;IAGZ,oJAAiD,CAAA;IAGjD,0FAAoB,CAAA;IAGpB,sGAA0B,CAAA;IAG1B,4HAAqC,CAAA;IAGrC,8EAAc,CAAA;IACd,4EAAkC,CAAA;AACtC,CAAC,EAjKW,iBAAiB,iCAAjB,iBAAiB,QAiK5B;AAAA,CAAC","sourcesContent":["\n/**\n * Source: SaveCustomVersion.h\n */\nexport enum SaveCustomVersion {\n /** 2016/12/20 - Initial version of the save system, saves some character stuff like inventory and health */\n BeforeCustomVersionWasAdded = 0,\n\n /** 2017/01/23 - Now storing transform for all saved actors */\n DROPPED_StoreTransform,\n\n /** 2017/01/25 - Change object header, stops storing map name in savefile. Breaks all backward compability */\n DROPPED_ChangeObjectHeader,\n\n /** 2017/01/30 - Changed serialization of property names to strings instead of ints. Breaks all backward compability */\n DROPPED_PropertyTagsAsStrings,\n\n /** 2017/01/31 - Now store the body state of all vehicles */\n DROPPED_StoreVehiclesBodyState,\n\n /** 2017/02/13 - Store if a actor was stored in the level in the actor TOC */\n DROPPED_ActorPlacedInLevelSaved,\n\n /** 2017/05/02 - Removed outer from save in actor header, now it's saved as a part of the actors property set */\n DROPPED_MovedActorOuter,\n\n /** 2017/05/23 - Rewrote power connections to use actor components. */\n DROPPED_PowerConnectionComponents,\n\n // 2017-10-09: Serialize train timetable\n DROPPED_SerializeTrainTimetable,\n\n // 2017-10-27: FactoryConnection transform converted from World to local\n DROPPED_FactoryConnectionWorldToLocal,\n\n // 2017-11-03: Circuits are now objects and not structs.\n DROPPED_CircuitObjects,\n\n // 2018-02-12: DockingStations now only have one inventory\n DROPPED_DockingStationSingleInventory,\n\n // 2018-03-06: Saving build shortcuts\n DROPPED_SavingBuildShortcuts,\n\n // 2018-04-05 Game Phase manager has been added and functionality has been moved from GameState.\n DROPPED_GamePhaseManagerAdded,\n\n // 2018-10-25 No longer save relative transforms for UFGConnectionComponent.\n DROPPED_RemovedRelativeTransformsFromConnectionComponents,\n\n // 2018-11-19 OnlineSubsystemMCP - Restore a lost pawn since we didn't have peoples EpicID\n DROPPED_MCP_RestoreLostPawn,\n\n // 2018-11-19 Wires no longer save locations, they span between connection components instead\n DROPPED_WireSpanFromConnnectionComponents,\n\n // 2019-01-30 Renamed SaveSessionId\n DROPPED_RenamedSaveSessionId,\n\n // 2019-06-20 GeoThermal generators didn't save resource nodes prior to this which results with issues when being dismantled\n ChangedGeoThermalGeneratorSaved,\n\n // 2019-06-24 NewRailroadSerialization to overwrite old railroad data\n OverwriteOldRailroadData,\n\n // 2019-07-24 Due to a bug in the network optimizations the legs data where trashed, reseting the legs to zero is the best option.\n ResetFactoryLegs,\n\n // 2019-08-28 The large portion of the save file is now compressed. The header is still intact at the start of the file but after that it is compressed with ZLIB.\n SaveFileIsCompressed,\n\n // 2020-02-09: This is so we can check if a save is older than BU3 and do certain migrations. \n // For example save old number of inventory and arm slots to new system\n BU3SaveCompatibility,\n\n // 2020-03-19: Factory Colors have been converted to Linear Color. The buildable subsystem needs to convert from FColor to Linear Color overriding the defaults\n BuildingColorConversion,\n\n // 2020-04-21 Lizard doggos that had the friend status set but did not have a valid spawner saved will be recoupled with their spawner so that they are not killed bc of orphan status\n RescuedFriendDoggos,\n\n // 2020-06-02 Check if we have saved items in our inventory that is relevant to know if they are picked up\n CheckPickedUpItems,\n\n // 2021-02-05 Migrate Building Colros to FCustomUserColorData\n PerInstanceCustomColors,\n\n // 2021-09-14 Fix incorrect positioning of double ramp meshes. We then adjust position of double ramps in older saves in order to account for the change.\n DoubleRampPositioning,\n\n // 2021-09-21 Migrate FGTrain from native only to a blueprint class BP_Train.\n TrainBlueprintClassAdded,\n\n // 2021-12-03: Added sublevel streaming support\n AddedSublevelStreaming,\n\n // 2022-08-10: Added additional track progression path to resource sink subsystem\n AddedResourceSinkTrack,\n\n // 2022-07-28: Added Coloring support to concrete pillars, in post load we check if the swatch if the default one, if so we swap it with concrete.\n AddedColoringSupportToConcretePillars,\n\n // 2022-10-24: Readded since AddedColoringSupportToConcretePillars was merged to main\n AddedResourceSinkTrack2,\n\n // 2022-10-18: Added Cached locations for wire locations for use in visualization in blueprint hologram (can't depend on connection components)\n AddedCachedLocationsForWire,\n\n // 2022-11-17: Added migration of inventories from the old splitters and mergers to the new ones that have a smaller inventories.\n ReworkedSplittersAndMergers,\n\n // 2022-11-23: Added new productivity monitor implementation.\n ReworkedProductivityMonitor,\n\n // 2022-11-25: Nativized shopping list and added blueprint support.\n NativizedShoppingList,\n\n // 2022-07-05: Unreal Engine 5 support\n UnrealEngine5,\n\n // 2022-11-10: Added support for partitioned worlds in conjunction to sub-level saving \n IntroducedWorldPartition,\n\n // 2023-01-09: Tobias: Refactored drone actions to no longer be uobjects in order to fix a crash.\n DroneActionRefactor,\n\n // 2023-01-13: Tobias: Refactored wires to support multiple wire meshes.\n MultipleWireMeshRefactor,\n\n // 2023-01-11: Switched FArchive support to be 64bit in SaveSession\n SwitchTo64BitSaveArchive,\n\n // 20223-06-14: Added PostLoad corrections for splines built from Blueprints (they were broken do to them being now rendered by a shader)\n ResetBrokenBlueprintSplines,\n\n // 2023-09-15: Inventory Item State Refactor - now we save ItemState on FInventoryItems as a FGDynamicStruct, as opposed to AActor pointer\n RefactoredInventoryItemState,\n\n // 2024-04-03: Save version to ensure the paint finishes are in the save data.\n AddedPaintFinishes,\n\n // 2024-06-25: Normailzed Arrive / Leave tangents for conveyor chain spline points on load (this is a migration to mimic current spline generation code)\n NormalizeChainSplineArriveAndLeave,\n\n // 2024-06-04: Arbitrary \"1.0\" version\n Version1,\n\n // 2025-03-12: Tobias: I refactored the poles (conveyor / pipe) a while ago, but missed some save migration code necessary for the pipe poles so I'm adding this now\n PoleRefactor,\n\n // 2025-03-18: Lightweight Buildable Subsystem serializes lightweight buildable version now, to avoid having to bump the save version when updating serialization format for lightweights\n LightweightBuildableSubsystemWritesRuntimeVersion,\n\n // 2025-03-24: ObjectFlags are now serialized for objects and actors during saving. NOTE: Versions from this version till SerializePerStreamableLevelTOCVersion are VOLATILE and might lose sublevel data!!\n SerializeObjectFlags,\n\n // 2025-03-26: Back-to-back railroad switches.\n BackToBackRailroadSwitches,\n\n // 2025-03-28: Serialize per Streamable Level TOC version rather than using the persistent level version for all streamable levels TOC serialization\n SerializePerStreamableLevelTOCVersion,\n\n // -----<new versions can be added above this line>-------------------------------------------------\n VersionPlusOne,\n LatestVersion = VersionPlusOne - 1\n};"]}
1
+ {"version":3,"file":"save-custom-version.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-custom-version.ts"],"names":[],"mappings":";;;AAIA,IAAY,iBAoKX;AApKD,WAAY,iBAAiB;IAEzB,uGAA+B,CAAA;IAG/B,6FAAsB,CAAA;IAGtB,qGAA0B,CAAA;IAG1B,2GAA6B,CAAA;IAG7B,6GAA8B,CAAA;IAG9B,+GAA+B,CAAA;IAG/B,+FAAuB,CAAA;IAGvB,mHAAiC,CAAA;IAGjC,+GAA+B,CAAA;IAG/B,2HAAqC,CAAA;IAGrC,8FAAsB,CAAA;IAGtB,4HAAqC,CAAA;IAGrC,0GAA4B,CAAA;IAG5B,4GAA6B,CAAA;IAG7B,oKAAyD,CAAA;IAGzD,wGAA2B,CAAA;IAG3B,oIAAyC,CAAA;IAGzC,0GAA4B,CAAA;IAG5B,gHAA+B,CAAA;IAG/B,kGAAwB,CAAA;IAGxB,kFAAgB,CAAA;IAGhB,0FAAoB,CAAA;IAIpB,0FAAoB,CAAA;IAGpB,gGAAuB,CAAA;IAGvB,wFAAmB,CAAA;IAGnB,sFAAkB,CAAA;IAGlB,gGAAuB,CAAA;IAGvB,4FAAqB,CAAA;IAGrB,kGAAwB,CAAA;IAGxB,8FAAsB,CAAA;IAGtB,8FAAsB,CAAA;IAGtB,4HAAqC,CAAA;IAGrC,gGAAuB,CAAA;IAGvB,wGAA2B,CAAA;IAG3B,wGAA2B,CAAA;IAG3B,wGAA2B,CAAA;IAG3B,4FAAqB,CAAA;IAGrB,4EAAa,CAAA;IAGb,kGAAwB,CAAA;IAGxB,wFAAmB,CAAA;IAGnB,kGAAwB,CAAA;IAGxB,kGAAwB,CAAA;IAGxB,wGAA2B,CAAA;IAG3B,0GAA4B,CAAA;IAG5B,sFAAkB,CAAA;IAGlB,sHAAkC,CAAA;IAGlC,kEAAQ,CAAA;IAGR,0EAAY,CAAA;IAGZ,oJAAiD,CAAA;IAGjD,0FAAoB,CAAA;IAGpB,sGAA0B,CAAA;IAG1B,4HAAqC,CAAA;IAGrC,8GAA8B,CAAA;IAG9B,8EAAc,CAAA;IACd,4EAAkC,CAAA;AACtC,CAAC,EApKW,iBAAiB,iCAAjB,iBAAiB,QAoK5B;AAAA,CAAC","sourcesContent":["\n/**\n * Source: SaveCustomVersion.h\n */\nexport enum SaveCustomVersion {\n /** 2016/12/20 - Initial version of the save system, saves some character stuff like inventory and health */\n BeforeCustomVersionWasAdded = 0,\n\n /** 2017/01/23 - Now storing transform for all saved actors */\n DROPPED_StoreTransform,\n\n /** 2017/01/25 - Change object header, stops storing map name in savefile. Breaks all backward compability */\n DROPPED_ChangeObjectHeader,\n\n /** 2017/01/30 - Changed serialization of property names to strings instead of ints. Breaks all backward compability */\n DROPPED_PropertyTagsAsStrings,\n\n /** 2017/01/31 - Now store the body state of all vehicles */\n DROPPED_StoreVehiclesBodyState,\n\n /** 2017/02/13 - Store if a actor was stored in the level in the actor TOC */\n DROPPED_ActorPlacedInLevelSaved,\n\n /** 2017/05/02 - Removed outer from save in actor header, now it's saved as a part of the actors property set */\n DROPPED_MovedActorOuter,\n\n /** 2017/05/23 - Rewrote power connections to use actor components. */\n DROPPED_PowerConnectionComponents,\n\n // 2017-10-09: Serialize train timetable\n DROPPED_SerializeTrainTimetable,\n\n // 2017-10-27: FactoryConnection transform converted from World to local\n DROPPED_FactoryConnectionWorldToLocal,\n\n // 2017-11-03: Circuits are now objects and not structs.\n DROPPED_CircuitObjects,\n\n // 2018-02-12: DockingStations now only have one inventory\n DROPPED_DockingStationSingleInventory,\n\n // 2018-03-06: Saving build shortcuts\n DROPPED_SavingBuildShortcuts,\n\n // 2018-04-05 Game Phase manager has been added and functionality has been moved from GameState.\n DROPPED_GamePhaseManagerAdded,\n\n // 2018-10-25 No longer save relative transforms for UFGConnectionComponent.\n DROPPED_RemovedRelativeTransformsFromConnectionComponents,\n\n // 2018-11-19 OnlineSubsystemMCP - Restore a lost pawn since we didn't have peoples EpicID\n DROPPED_MCP_RestoreLostPawn,\n\n // 2018-11-19 Wires no longer save locations, they span between connection components instead\n DROPPED_WireSpanFromConnnectionComponents,\n\n // 2019-01-30 Renamed SaveSessionId\n DROPPED_RenamedSaveSessionId,\n\n // 2019-06-20 GeoThermal generators didn't save resource nodes prior to this which results with issues when being dismantled\n ChangedGeoThermalGeneratorSaved,\n\n // 2019-06-24 NewRailroadSerialization to overwrite old railroad data\n OverwriteOldRailroadData,\n\n // 2019-07-24 Due to a bug in the network optimizations the legs data where trashed, reseting the legs to zero is the best option.\n ResetFactoryLegs,\n\n // 2019-08-28 The large portion of the save file is now compressed. The header is still intact at the start of the file but after that it is compressed with ZLIB.\n SaveFileIsCompressed,\n\n // 2020-02-09: This is so we can check if a save is older than BU3 and do certain migrations. \n // For example save old number of inventory and arm slots to new system\n BU3SaveCompatibility,\n\n // 2020-03-19: Factory Colors have been converted to Linear Color. The buildable subsystem needs to convert from FColor to Linear Color overriding the defaults\n BuildingColorConversion,\n\n // 2020-04-21 Lizard doggos that had the friend status set but did not have a valid spawner saved will be recoupled with their spawner so that they are not killed bc of orphan status\n RescuedFriendDoggos,\n\n // 2020-06-02 Check if we have saved items in our inventory that is relevant to know if they are picked up\n CheckPickedUpItems,\n\n // 2021-02-05 Migrate Building Colros to FCustomUserColorData\n PerInstanceCustomColors,\n\n // 2021-09-14 Fix incorrect positioning of double ramp meshes. We then adjust position of double ramps in older saves in order to account for the change.\n DoubleRampPositioning,\n\n // 2021-09-21 Migrate FGTrain from native only to a blueprint class BP_Train.\n TrainBlueprintClassAdded,\n\n // 2021-12-03: Added sublevel streaming support\n AddedSublevelStreaming,\n\n // 2022-08-10: Added additional track progression path to resource sink subsystem\n AddedResourceSinkTrack,\n\n // 2022-07-28: Added Coloring support to concrete pillars, in post load we check if the swatch if the default one, if so we swap it with concrete.\n AddedColoringSupportToConcretePillars,\n\n // 2022-10-24: Readded since AddedColoringSupportToConcretePillars was merged to main\n AddedResourceSinkTrack2,\n\n // 2022-10-18: Added Cached locations for wire locations for use in visualization in blueprint hologram (can't depend on connection components)\n AddedCachedLocationsForWire,\n\n // 2022-11-17: Added migration of inventories from the old splitters and mergers to the new ones that have a smaller inventories.\n ReworkedSplittersAndMergers,\n\n // 2022-11-23: Added new productivity monitor implementation.\n ReworkedProductivityMonitor,\n\n // 2022-11-25: Nativized shopping list and added blueprint support.\n NativizedShoppingList,\n\n // 2022-07-05: Unreal Engine 5 support\n UnrealEngine5,\n\n // 2022-11-10: Added support for partitioned worlds in conjunction to sub-level saving \n IntroducedWorldPartition,\n\n // 2023-01-09: Tobias: Refactored drone actions to no longer be uobjects in order to fix a crash.\n DroneActionRefactor,\n\n // 2023-01-13: Tobias: Refactored wires to support multiple wire meshes.\n MultipleWireMeshRefactor,\n\n // 2023-01-11: Switched FArchive support to be 64bit in SaveSession\n SwitchTo64BitSaveArchive,\n\n // 20223-06-14: Added PostLoad corrections for splines built from Blueprints (they were broken do to them being now rendered by a shader)\n ResetBrokenBlueprintSplines,\n\n // 2023-09-15: Inventory Item State Refactor - now we save ItemState on FInventoryItems as a FGDynamicStruct, as opposed to AActor pointer\n RefactoredInventoryItemState,\n\n // 2024-04-03: Save version to ensure the paint finishes are in the save data.\n AddedPaintFinishes,\n\n // 2024-06-25: Normailzed Arrive / Leave tangents for conveyor chain spline points on load (this is a migration to mimic current spline generation code)\n NormalizeChainSplineArriveAndLeave,\n\n // 2024-06-04: Arbitrary \"1.0\" version\n Version1,\n\n // 2025-03-12: Tobias: I refactored the poles (conveyor / pipe) a while ago, but missed some save migration code necessary for the pipe poles so I'm adding this now\n PoleRefactor,\n\n // 2025-03-18: Lightweight Buildable Subsystem serializes lightweight buildable version now, to avoid having to bump the save version when updating serialization format for lightweights\n LightweightBuildableSubsystemWritesRuntimeVersion,\n\n // 2025-03-24: ObjectFlags are now serialized for objects and actors during saving. NOTE: Versions from this version till SerializePerStreamableLevelTOCVersion are VOLATILE and might lose sublevel data!!\n SerializeObjectFlags,\n\n // 2025-03-26: Back-to-back railroad switches.\n BackToBackRailroadSwitches,\n\n // 2025-03-28: Serialize per Streamable Level TOC version rather than using the persistent level version for all streamable levels TOC serialization\n SerializePerStreamableLevelTOCVersion,\n\n // 2025-04-23: Cleaning up invalid train track connections for saves prior to 1.1. Clears out ghost / teleporting connections and adds railroad switches where needed if there's a junction that doesn't have them.\n RailroadTrackConnectionCleanup,\n\n // -----<new versions can be added above this line>-------------------------------------------------\n VersionPlusOne,\n LatestVersion = VersionPlusOne - 1\n};"]}
@@ -13,6 +13,8 @@ export declare enum SaveHeaderType {
13
13
  AddedWorldPartitionSupport = 11,
14
14
  AddedSaveModificationChecksum = 12,
15
15
  AddedIsCreativeModeEnabled = 13,
16
- AddedSaveName = 14
16
+ AddedSaveName = 14,
17
+ VersionPlusOne = 15,
18
+ LatestVersion = 14
17
19
  }
18
20
  //# sourceMappingURL=save-header-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-header-type.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-header-type.ts"],"names":[],"mappings":"AAIA,oBAAY,cAAc;IACtB,cAAc,IAAI;IAGlB,qBAAqB,IAAA;IAGrB,cAAc,IAAA;IAGd,iBAAiB,IAAA;IAGjB,+BAA+B,IAAA;IAG/B,sBAAsB,IAAA;IAGtB,gBAAgB,IAAA;IAGhB,iBAAiB,IAAA;IAGjB,kBAAkB,IAAA;IAGlB,iBAAiB,IAAA;IAGjB,mBAAmB,KAAA;IAGnB,0BAA0B,KAAA;IAG1B,6BAA6B,KAAA;IAG7B,0BAA0B,KAAA;IAG1B,aAAa,KAAA;CAChB"}
1
+ {"version":3,"file":"save-header-type.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-header-type.ts"],"names":[],"mappings":"AAIA,oBAAY,cAAc;IACtB,cAAc,IAAI;IAGlB,qBAAqB,IAAA;IAGrB,cAAc,IAAA;IAGd,iBAAiB,IAAA;IAGjB,+BAA+B,IAAA;IAG/B,sBAAsB,IAAA;IAGtB,gBAAgB,IAAA;IAGhB,iBAAiB,IAAA;IAGjB,kBAAkB,IAAA;IAGlB,iBAAiB,IAAA;IAGjB,mBAAmB,KAAA;IAGnB,0BAA0B,KAAA;IAG1B,6BAA6B,KAAA;IAG7B,0BAA0B,KAAA;IAG1B,aAAa,KAAA;IAGb,cAAc,KAAA;IACd,aAAa,KAAqB;CACrC"}
@@ -18,5 +18,7 @@ var SaveHeaderType;
18
18
  SaveHeaderType[SaveHeaderType["AddedSaveModificationChecksum"] = 12] = "AddedSaveModificationChecksum";
19
19
  SaveHeaderType[SaveHeaderType["AddedIsCreativeModeEnabled"] = 13] = "AddedIsCreativeModeEnabled";
20
20
  SaveHeaderType[SaveHeaderType["AddedSaveName"] = 14] = "AddedSaveName";
21
+ SaveHeaderType[SaveHeaderType["VersionPlusOne"] = 15] = "VersionPlusOne";
22
+ SaveHeaderType[SaveHeaderType["LatestVersion"] = 14] = "LatestVersion";
21
23
  })(SaveHeaderType || (exports.SaveHeaderType = SaveHeaderType = {}));
22
24
  //# sourceMappingURL=save-header-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-header-type.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-header-type.ts"],"names":[],"mappings":";;;AAIA,IAAY,cA4CX;AA5CD,WAAY,cAAc;IACtB,uEAAkB,CAAA;IAGlB,qFAAqB,CAAA;IAGrB,uEAAc,CAAA;IAGd,6EAAiB,CAAA;IAGjB,yGAA+B,CAAA;IAG/B,uFAAsB,CAAA;IAGtB,2EAAgB,CAAA;IAGhB,6EAAiB,CAAA;IAGjB,+EAAkB,CAAA;IAGlB,6EAAiB,CAAA;IAGjB,kFAAmB,CAAA;IAGnB,gGAA0B,CAAA;IAG1B,sGAA6B,CAAA;IAG7B,gGAA0B,CAAA;IAG1B,sEAAa,CAAA;AACjB,CAAC,EA5CW,cAAc,8BAAd,cAAc,QA4CzB","sourcesContent":["\n/**\n * Source: FGSaveManagerInterface.h\n */\nexport enum SaveHeaderType {\n InitialVersion = 0,\n\n // @2017-01-20: Added BuildVersion, MapName and MapOptions\n PrepareForLoadingMaps,\n\n // @2017-02-07: Added SessionId for autosaves\n AddedSessionId,\n\n // @2018-02-23 Added PlayDuration to header\n AddedPlayDuration,\n\n // @2018-04-10 SessionID from int32 to FString, also added when the save was saved\n SessionIDStringAndSaveTimeAdded,\n\n // @2019-01-15 Added session visibility to the header so we can set it up with the same visibility\n AddedSessionVisibility,\n\n // @2019-06-19 This was put in the wrong save version thingy and is now on experimental so can't remove it.\n LookAtTheComment,\n\n // @2021-01-22 UE4.25 Engine Upgrade. FEditorObjectVersion Changes occurred (notably with FText serialization)\n UE425EngineUpdate,\n\n // @2021-03-24 Added Modding properties and support\n AddedModdingParams,\n\n // @2021-04-15 UE4.26 Engine Upgrade. FEditorObjectVersion Changes occurred\n UE426EngineUpdate,\n\n // @2022-03-22 Added GUID to identify saves, it is for analytics purposes.\n AddedSaveIdentifier,\n\n // @2022-11-14 Added support for partitioned worlds (UE5)\n AddedWorldPartitionSupport,\n\n // @2023-03-08 Added checksum to detect save game modifications.\n AddedSaveModificationChecksum,\n\n // @2023-04-18 Added variable to indicate if creative mode is enabled for this save.\n AddedIsCreativeModeEnabled,\n\n // @2024-09-12 Added saveName to the header to have proper names on Consoles\t<FL> [bgr]\n AddedSaveName,\n}"]}
1
+ {"version":3,"file":"save-header-type.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-header-type.ts"],"names":[],"mappings":";;;AAIA,IAAY,cAgDX;AAhDD,WAAY,cAAc;IACtB,uEAAkB,CAAA;IAGlB,qFAAqB,CAAA;IAGrB,uEAAc,CAAA;IAGd,6EAAiB,CAAA;IAGjB,yGAA+B,CAAA;IAG/B,uFAAsB,CAAA;IAGtB,2EAAgB,CAAA;IAGhB,6EAAiB,CAAA;IAGjB,+EAAkB,CAAA;IAGlB,6EAAiB,CAAA;IAGjB,kFAAmB,CAAA;IAGnB,gGAA0B,CAAA;IAG1B,sGAA6B,CAAA;IAG7B,gGAA0B,CAAA;IAG1B,sEAAa,CAAA;IAGb,wEAAc,CAAA;IACd,sEAAkC,CAAA;AACtC,CAAC,EAhDW,cAAc,8BAAd,cAAc,QAgDzB","sourcesContent":["\n/**\n * Source: FGSaveManagerInterface.h\n */\nexport enum SaveHeaderType {\n InitialVersion = 0,\n\n // @2017-01-20: Added BuildVersion, MapName and MapOptions\n PrepareForLoadingMaps,\n\n // @2017-02-07: Added SessionId for autosaves\n AddedSessionId,\n\n // @2018-02-23 Added PlayDuration to header\n AddedPlayDuration,\n\n // @2018-04-10 SessionID from int32 to FString, also added when the save was saved\n SessionIDStringAndSaveTimeAdded,\n\n // @2019-01-15 Added session visibility to the header so we can set it up with the same visibility\n AddedSessionVisibility,\n\n // @2019-06-19 This was put in the wrong save version thingy and is now on experimental so can't remove it.\n LookAtTheComment,\n\n // @2021-01-22 UE4.25 Engine Upgrade. FEditorObjectVersion Changes occurred (notably with FText serialization)\n UE425EngineUpdate,\n\n // @2021-03-24 Added Modding properties and support\n AddedModdingParams,\n\n // @2021-04-15 UE4.26 Engine Upgrade. FEditorObjectVersion Changes occurred\n UE426EngineUpdate,\n\n // @2022-03-22 Added GUID to identify saves, it is for analytics purposes.\n AddedSaveIdentifier,\n\n // @2022-11-14 Added support for partitioned worlds (UE5)\n AddedWorldPartitionSupport,\n\n // @2023-03-08 Added checksum to detect save game modifications.\n AddedSaveModificationChecksum,\n\n // @2023-04-18 Added variable to indicate if creative mode is enabled for this save.\n AddedIsCreativeModeEnabled,\n\n // @2024-09-12 Added saveName to the header to have proper names on Consoles\t<FL> [bgr]\n AddedSaveName,\n\n // -----<new versions can be added above this line>-----\n VersionPlusOne,\n LatestVersion = VersionPlusOne - 1 // Last version to use\n}"]}
@@ -8,7 +8,7 @@ export declare class SaveWriter extends ContextWriter {
8
8
  static WriteSaveBodyHash: (writer: ContextWriter, saveBodyValidation: SaveBodyValidation) => void;
9
9
  static WriteGrids: (writer: ContextWriter, grids: Grids) => void;
10
10
  static WriteLevels(writer: ContextWriter, save: SatisfactorySave): void;
11
- static GenerateCompressedChunksFromData(bufferArray: ArrayBuffer, compressionInfo: ChunkCompressionInfo, onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onChunk: (chunk: Uint8Array) => void, alignment?: Alignment): ChunkSummary[];
11
+ static GenerateCompressedChunksFromData(bufferArray: ArrayBuffer, compressionInfo: ChunkCompressionInfo, blueprintOrSave: 'blueprint' | 'save', onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onChunk: (chunk: Uint8Array) => void, alignment?: Alignment): ChunkSummary[];
12
12
  generateChunks(compressionInfo: ChunkCompressionInfo, posAfterHeader: number, onBinaryBeforeCompressing: (binary: ArrayBuffer) => void, onHeader: (header: Uint8Array) => void, onChunk: (chunk: Uint8Array) => void): ChunkSummary[];
13
13
  }
14
14
  //# sourceMappingURL=save-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-writer.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG1D,qBAAa,UAAW,SAAQ,aAAa;;IAM5C,OAAc,iBAAiB,WAAY,aAAa,sBAAsB,kBAAkB,KAAG,IAAI,CAStG;IAED,OAAc,UAAU,WAAY,aAAa,SAAS,KAAK,KAAG,IAAI,CAYpE;WAEY,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;WAUhE,gCAAgC,CAC7C,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,oBAAoB,EACrC,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,EACxD,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,SAAS,GAAE,SAAmC,GAC5C,YAAY,EAAE;IAKV,cAAc,CACpB,eAAe,EAAE,oBAAoB,EACrC,cAAc,EAAE,MAAM,EAEtB,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,EACxD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EACtC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAClC,YAAY,EAAE;CAgBjB"}
1
+ {"version":3,"file":"save-writer.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG1D,qBAAa,UAAW,SAAQ,aAAa;;IAM5C,OAAc,iBAAiB,WAAY,aAAa,sBAAsB,kBAAkB,KAAG,IAAI,CAStG;IAED,OAAc,UAAU,WAAY,aAAa,SAAS,KAAK,KAAG,IAAI,CAYpE;WAEY,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;WAUhE,gCAAgC,CAC7C,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,oBAAoB,EACrC,eAAe,EAAE,WAAW,GAAG,MAAM,EACrC,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,EACxD,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,SAAS,GAAE,SAAmC,GAC5C,YAAY,EAAE;IAKV,cAAc,CACpB,eAAe,EAAE,oBAAoB,EACrC,cAAc,EAAE,MAAM,EAEtB,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,EACxD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EACtC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAClC,YAAY,EAAE;CAgBjB"}
@@ -19,8 +19,8 @@ class SaveWriter extends context_writer_1.ContextWriter {
19
19
  level_1.Level.SerializeLevel(writer, level);
20
20
  }
21
21
  }
22
- static GenerateCompressedChunksFromData(bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, alignment = alignment_enum_1.Alignment.LITTLE_ENDIAN) {
23
- return save_body_chunks_1.SaveBodyChunks.CompressDataIntoChunks(bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, alignment);
22
+ static GenerateCompressedChunksFromData(bufferArray, compressionInfo, blueprintOrSave, onBinaryBeforeCompressing, onChunk, alignment = alignment_enum_1.Alignment.LITTLE_ENDIAN) {
23
+ return save_body_chunks_1.SaveBodyChunks.CompressDataIntoChunks(bufferArray, compressionInfo, blueprintOrSave, onBinaryBeforeCompressing, onChunk, alignment);
24
24
  }
25
25
  generateChunks(compressionInfo, posAfterHeader, onBinaryBeforeCompressing, onHeader, onChunk) {
26
26
  if (posAfterHeader <= 0) {
@@ -29,7 +29,7 @@ class SaveWriter extends context_writer_1.ContextWriter {
29
29
  const header = new Uint8Array(this.bufferArray.slice(0, posAfterHeader));
30
30
  onHeader(header);
31
31
  this.bufferArray = this.bufferArray.slice(posAfterHeader);
32
- const chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, this.alignment);
32
+ const chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, 'save', onBinaryBeforeCompressing, onChunk, this.alignment);
33
33
  return chunkSummary;
34
34
  }
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"save-writer.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-writer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Alignment } from \"../../byte/alignment.enum\";\nimport { ContextWriter } from '../../context/context-writer';\nimport { ParserError } from \"../../error/parser.error\";\nimport { Level } from './level';\nimport { SatisfactorySave } from \"./satisfactory-save\";\nimport { ChunkCompressionInfo, ChunkSummary, SaveBodyChunks } from \"./save-body-chunks\";\nimport { Grids, SaveBodyValidation } from './save-reader';\n\n\nexport class SaveWriter extends ContextWriter {\n\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic static WriteSaveBodyHash = (writer: ContextWriter, saveBodyValidation: SaveBodyValidation): void => {\n\t\twriter.writeInt32(0);\n\t\twriter.writeInt32(saveBodyValidation.version);\n\t\twriter.writeString('None');\n\t\twriter.writeInt32(0);\n\t\twriter.writeBytesArray(saveBodyValidation.hash1);\n\t\twriter.writeInt32(1);\n\t\twriter.writeString('None');\n\t\twriter.writeBytesArray(saveBodyValidation.hash2);\n\t}\n\n\tpublic static WriteGrids = (writer: ContextWriter, grids: Grids): void => {\n\t\tfor (const gridEntry of Object.entries(grids)) {\n\t\t\twriter.writeString(gridEntry[0]);\n\t\t\twriter.writeInt32(gridEntry[1].cellSize);\n\t\t\twriter.writeUint32(gridEntry[1].gridHash);\n\n\t\t\twriter.writeUint32(Object.values(gridEntry[1].children).length);\n\t\t\tfor (const child of Object.entries(gridEntry[1].children)) {\n\t\t\t\twriter.writeString(child[0]);\n\t\t\t\twriter.writeUint32(child[1]);\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic static WriteLevels(writer: ContextWriter, save: SatisfactorySave): void {\n\t\twriter.writeInt32(Object.keys(save.levels).length - 1);\n\t\tfor (const level of Object.values(save.levels)) {\n\t\t\tif (level.name !== save.header.mapName) {\n\t\t\t\twriter.writeString(level.name);\n\t\t\t}\n\t\t\tLevel.SerializeLevel(writer, level);\n\t\t}\n\t}\n\n\tpublic static GenerateCompressedChunksFromData(\n\t\tbufferArray: ArrayBuffer,\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\tonChunk: (chunk: Uint8Array) => void,\n\t\talignment: Alignment = Alignment.LITTLE_ENDIAN\n\t): ChunkSummary[] {\n\n\t\treturn SaveBodyChunks.CompressDataIntoChunks(bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, alignment);\n\t}\n\n\tpublic generateChunks(\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tposAfterHeader: number,\n\n\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\tonHeader: (header: Uint8Array) => void,\n\t\tonChunk: (chunk: Uint8Array) => void\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\tonHeader(header);\n\n\t\t// create save body\n\t\tthis.bufferArray = this.bufferArray.slice(posAfterHeader);\n\t\tconst chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, this.alignment);\n\n\t\treturn chunkSummary;\n\t}\n}\n"]}
1
+ {"version":3,"file":"save-writer.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-writer.ts"],"names":[],"mappings":";;;AAAA,8DAAsD;AACtD,iEAA6D;AAC7D,2DAAuD;AACvD,mCAAgC;AAEhC,yDAAwF;AAIxF,MAAa,UAAW,SAAQ,8BAAa;IAE5C;QACC,KAAK,CAAC,0BAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IA2BM,MAAM,CAAC,WAAW,CAAC,MAAqB,EAAE,IAAsB;QACtE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,aAAK,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAEM,MAAM,CAAC,gCAAgC,CAC7C,WAAwB,EACxB,eAAqC,EACrC,eAAqC,EACrC,yBAAwD,EACxD,OAAoC,EACpC,YAAuB,0BAAS,CAAC,aAAa;QAG9C,OAAO,iCAAc,CAAC,sBAAsB,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,yBAAyB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5I,CAAC;IAEM,cAAc,CACpB,eAAqC,EACrC,cAAsB,EAEtB,yBAAwD,EACxD,QAAsC,EACtC,OAAoC;QAGpC,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,QAAQ,CAAC,MAAM,CAAC,CAAC;QAGjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,UAAU,CAAC,gCAAgC,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,yBAAyB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhK,OAAO,YAAY,CAAC;IACrB,CAAC;;AA3EF,gCA4EC;AAtEc,4BAAiB,GAAG,CAAC,MAAqB,EAAE,kBAAsC,EAAQ,EAAE;IACzG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAA;AAEa,qBAAU,GAAG,CAAC,MAAqB,EAAE,KAAY,EAAQ,EAAE;IACxE,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;AACF,CAAC,CAAC","sourcesContent":["import { Alignment } from \"../../byte/alignment.enum\";\nimport { ContextWriter } from '../../context/context-writer';\nimport { ParserError } from \"../../error/parser.error\";\nimport { Level } from './level';\nimport { SatisfactorySave } from \"./satisfactory-save\";\nimport { ChunkCompressionInfo, ChunkSummary, SaveBodyChunks } from \"./save-body-chunks\";\nimport { Grids, SaveBodyValidation } from './save-reader';\n\n\nexport class SaveWriter extends ContextWriter {\n\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic static WriteSaveBodyHash = (writer: ContextWriter, saveBodyValidation: SaveBodyValidation): void => {\n\t\twriter.writeInt32(0);\n\t\twriter.writeInt32(saveBodyValidation.version);\n\t\twriter.writeString('None');\n\t\twriter.writeInt32(0);\n\t\twriter.writeBytesArray(saveBodyValidation.hash1);\n\t\twriter.writeInt32(1);\n\t\twriter.writeString('None');\n\t\twriter.writeBytesArray(saveBodyValidation.hash2);\n\t}\n\n\tpublic static WriteGrids = (writer: ContextWriter, grids: Grids): void => {\n\t\tfor (const gridEntry of Object.entries(grids)) {\n\t\t\twriter.writeString(gridEntry[0]);\n\t\t\twriter.writeInt32(gridEntry[1].cellSize);\n\t\t\twriter.writeUint32(gridEntry[1].gridHash);\n\n\t\t\twriter.writeUint32(Object.values(gridEntry[1].children).length);\n\t\t\tfor (const child of Object.entries(gridEntry[1].children)) {\n\t\t\t\twriter.writeString(child[0]);\n\t\t\t\twriter.writeUint32(child[1]);\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic static WriteLevels(writer: ContextWriter, save: SatisfactorySave): void {\n\t\twriter.writeInt32(Object.keys(save.levels).length - 1);\n\t\tfor (const level of Object.values(save.levels)) {\n\t\t\tif (level.name !== save.header.mapName) {\n\t\t\t\twriter.writeString(level.name);\n\t\t\t}\n\t\t\tLevel.SerializeLevel(writer, level);\n\t\t}\n\t}\n\n\tpublic static GenerateCompressedChunksFromData(\n\t\tbufferArray: ArrayBuffer,\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tblueprintOrSave: 'blueprint' | 'save',\n\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\tonChunk: (chunk: Uint8Array) => void,\n\t\talignment: Alignment = Alignment.LITTLE_ENDIAN\n\t): ChunkSummary[] {\n\n\t\treturn SaveBodyChunks.CompressDataIntoChunks(bufferArray, compressionInfo, blueprintOrSave, onBinaryBeforeCompressing, onChunk, alignment);\n\t}\n\n\tpublic generateChunks(\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tposAfterHeader: number,\n\n\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\tonHeader: (header: Uint8Array) => void,\n\t\tonChunk: (chunk: Uint8Array) => void\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\tonHeader(header);\n\n\t\t// create save body\n\t\tthis.bufferArray = this.bufferArray.slice(posAfterHeader);\n\t\tconst chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, 'save', onBinaryBeforeCompressing, onChunk, this.alignment);\n\n\t\treturn chunkSummary;\n\t}\n}\n"]}
@@ -27,6 +27,8 @@ export type TextPropertyValue = {
27
27
  }[];
28
28
  sourceText?: TextPropertyValue;
29
29
  transformType?: number;
30
+ tableId?: string;
31
+ textKey?: string;
30
32
  hasCultureInvariantString?: boolean;
31
33
  };
32
34
  //# sourceMappingURL=TextProperty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextProperty.d.ts","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/TextProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,cAAc,aAAc,GAAG,KAAG,QAAQ,IAAI,YAA4E,CAAC;AAExI,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG;IAC9C,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF,yBAAiB,YAAY,CAAC;IAEnB,MAAM,KAAK,WAAY,aAAa,UAAU,MAAM,UAAS,MAAM,KAAO,YAShF,CAAA;IAEM,MAAM,SAAS,WAAY,aAAa,KAAG,iBA6DjD,CAAA;IAEM,MAAM,YAAY,aAAc,YAAY,KAAG,MAErD,CAAA;IAEM,MAAM,SAAS,WAAY,aAAa,YAAY,YAAY,KAAG,IAGzE,CAAA;IAEM,MAAM,cAAc,WAAY,aAAa,SAAS,iBAAiB,KAAG,IAsDhF,CAAA;CACJ;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,iBAAiB,CAAC;KAAE,EAAE,CAAC;IAGrF,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC"}
1
+ {"version":3,"file":"TextProperty.d.ts","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/TextProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,cAAc,aAAc,GAAG,KAAG,QAAQ,IAAI,YAA4E,CAAC;AAExI,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG;IAC9C,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF,yBAAiB,YAAY,CAAC;IAEnB,MAAM,KAAK,WAAY,aAAa,UAAU,MAAM,UAAS,MAAM,KAAO,YAShF,CAAA;IAEM,MAAM,SAAS,WAAY,aAAa,KAAG,iBAkEjD,CAAA;IAEM,MAAM,YAAY,aAAc,YAAY,KAAG,MAErD,CAAA;IAEM,MAAM,SAAS,WAAY,aAAa,YAAY,YAAY,KAAG,IAGzE,CAAA;IAEM,MAAM,cAAc,WAAY,aAAa,SAAS,iBAAiB,KAAG,IA2DhF,CAAA;CACJ;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,iBAAiB,CAAC;KAAE,EAAE,CAAC;IAGrF,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC"}
@@ -50,6 +50,10 @@ var TextProperty;
50
50
  prop.sourceText = TextProperty.ReadValue(reader);
51
51
  prop.transformType = reader.readByte();
52
52
  break;
53
+ case 11:
54
+ prop.tableId = reader.readString();
55
+ prop.textKey = reader.readString();
56
+ break;
53
57
  case 255:
54
58
  prop.hasCultureInvariantString = reader.readInt32() === 1;
55
59
  if (prop.hasCultureInvariantString) {
@@ -57,7 +61,7 @@ var TextProperty;
57
61
  }
58
62
  break;
59
63
  default:
60
- throw new Error('Unimplemented historyType `' + prop.historyType);
64
+ throw new Error('Unimplemented TextProperty historyType ' + prop.historyType);
61
65
  }
62
66
  return prop;
63
67
  };
@@ -98,6 +102,10 @@ var TextProperty;
98
102
  TextProperty.SerializeValue(writer, value.sourceText);
99
103
  writer.writeByte(value.transformType);
100
104
  break;
105
+ case 11:
106
+ writer.writeString(value.tableId);
107
+ writer.writeString(value.textKey);
108
+ break;
101
109
  case 255:
102
110
  writer.writeInt32(value.hasCultureInvariantString ? 1 : 0);
103
111
  if (value.hasCultureInvariantString) {
@@ -1 +1 @@
1
- {"version":3,"file":"TextProperty.js","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/TextProperty.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAClD,iEAA8D;AAEvD,MAAM,cAAc,GAAG,CAAC,QAAa,EAA4B,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC;AAA3H,QAAA,cAAc,kBAA6G;AAOxI,IAAiB,YAAY,CA4I5B;AA5ID,WAAiB,YAAY;IAEZ,kBAAK,GAAG,CAAC,MAAqB,EAAE,MAAc,EAAE,QAAgB,CAAC,EAAgB,EAAE;QAC5F,MAAM,QAAQ,GAAG,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO;YACH,GAAG,2CAAoB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACrE,IAAI,EAAE,cAAc;YACpB,KAAK;SACe,CAAC;IAC7B,CAAC,CAAA;IAEY,sBAAS,GAAG,CAAC,MAAqB,EAAqB,EAAE;QAClE,MAAM,IAAI,GAAsB;YAC5B,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE;YACzB,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE;SACjC,CAAC;QAEF,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YAEvB,KAAK,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBACjC,MAAM;YAEV,KAAK,CAAC,CAAC;YAEP,KAAK,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,aAAA,SAAS,CAAC,MAAM,CAAC,CAAC;gBAEnC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC1C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,oBAAoB,GAAQ,EAAE,CAAC;oBACnC,oBAAoB,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;oBAChD,oBAAoB,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAEnD,QAAQ,oBAAoB,CAAC,SAAS,EAAE,CAAC;wBACrC,KAAK,CAAC;4BACF,oBAAoB,CAAC,aAAa,GAAG,aAAA,SAAS,CAAC,MAAM,CAAC,CAAC;4BACvD,MAAM;wBACV;4BAEI,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;oBAC/F,CAAC;oBAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC9C,CAAC;gBACD,MAAM;YAGV,KAAK,EAAE;gBACH,IAAI,CAAC,UAAU,GAAG,aAAA,SAAS,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACvC,MAAM;YAEV,KAAK,GAAG;gBAGJ,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAE1D,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBACjC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBACrC,CAAC;gBACD,MAAM;YAEV;gBACI,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAA;IAEY,yBAAY,GAAG,CAAC,QAAsB,EAAU,EAAE;QAC3D,OAAO,CAAC,CAAC;IACb,CAAC,CAAA;IAEY,sBAAS,GAAG,CAAC,MAAqB,EAAE,QAAsB,EAAQ,EAAE;QAC7E,mBAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,aAAA,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAA;IAEY,2BAAc,GAAG,CAAC,MAAqB,EAAE,KAAwB,EAAQ,EAAE;QACpF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAGpC,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC;YAExB,KAAK,CAAC;gBACF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,SAAU,CAAC,CAAC;gBACrC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC;gBAC/B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;gBACjC,MAAM;YAEV,KAAK,CAAC,CAAC;YAEP,KAAK,CAAC;gBACF,aAAA,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,SAAU,CAAC,CAAC;gBAEzC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,SAAU,CAAC,MAAM,CAAC,CAAC;gBAE3C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,SAAU,EAAE,CAAC;oBACjC,IAAI,oBAAoB,GAAQ,EAAE,CAAC;oBACnC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEhC,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC;wBACpB,KAAK,CAAC;4BACF,aAAA,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,aAAc,CAAC,CAAC;4BAC3C,MAAM;wBACV;4BAEI,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;oBAC/F,CAAC;gBACL,CAAC;gBACD,MAAM;YAGV,KAAK,EAAE;gBACH,aAAA,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,UAAW,CAAC,CAAC;gBAC1C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,aAAc,CAAC,CAAC;gBACvC,MAAM;YAEV,KAAK,GAAG;gBAGJ,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE3D,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAC;oBAClC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC,CAAA;AACL,CAAC,EA5IgB,YAAY,4BAAZ,YAAY,QA4I5B","sourcesContent":["import { ContextReader } from '../../../../context/context-reader';\nimport { ContextWriter } from '../../../../context/context-writer';\nimport { GUIDInfo } from '../../structs/GUIDInfo';\nimport { AbstractBaseProperty } from './AbstractBaseProperty';\n\nexport const isTextProperty = (property: any): property is TextProperty => !Array.isArray(property) && property.type === 'TextProperty';\n\nexport type TextProperty = AbstractBaseProperty & {\n type: 'TextProperty';\n value: TextPropertyValue;\n};\n\nexport namespace TextProperty {\n\n export const Parse = (reader: ContextReader, ueType: string, index: number = 0): TextProperty => {\n const guidInfo = GUIDInfo.read(reader);\n const value = TextProperty.ReadValue(reader);\n\n return {\n ...AbstractBaseProperty.Create({ index, ueType, guidInfo, type: '' }),\n type: 'TextProperty',\n value,\n } satisfies TextProperty;\n }\n\n export const ReadValue = (reader: ContextReader): TextPropertyValue => {\n const prop: TextPropertyValue = {\n flags: reader.readInt32(),\n historyType: reader.readByte()\n };\n\n switch (prop.historyType) {\n // HISTORYTYPE_BASE\n case 0:\n prop.namespace = reader.readString();\n prop.key = reader.readString();\n prop.value = reader.readString();\n break;\n // HISTORYTYPE_NAMEDFORMAT\n case 1:\n // HISTORYTYPE_ARGUMENTFORMAT\n case 3:\n prop.sourceFmt = ReadValue(reader);\n\n const argumentsCount = reader.readInt32();\n prop.arguments = [];\n\n for (let i = 0; i < argumentsCount; i++) {\n let currentArgumentsData: any = {};\n currentArgumentsData.name = reader.readString();\n currentArgumentsData.valueType = reader.readByte();\n\n switch (currentArgumentsData.valueType) {\n case 4:\n currentArgumentsData.argumentValue = ReadValue(reader);\n break;\n default:\n\n throw new Error('Unimplemented FormatArgumentType `' + currentArgumentsData.valueType);\n }\n\n prop.arguments.push(currentArgumentsData);\n }\n break;\n // see https://github.com/EpicGames/UnrealEngine/blob/4.25/Engine/Source/Runtime/Core/Private/Internationalization/TextHistory.cpp#L2268\n // HISTORYTYPE_TRANSFORM\n case 10:\n prop.sourceText = ReadValue(reader);\n prop.transformType = reader.readByte();\n break;\n // HISTORYTYPE_NONE\n case 255:\n // See: https://github.com/EpicGames/UnrealEngine/blob/4.25/Engine/Source/Runtime/Core/Private/Internationalization/Text.cpp#L894\n\n prop.hasCultureInvariantString = reader.readInt32() === 1;\n\n if (prop.hasCultureInvariantString) {\n prop.value = reader.readString();\n }\n break;\n\n default:\n throw new Error('Unimplemented historyType `' + prop.historyType);\n }\n\n return prop;\n }\n\n export const CalcOverhead = (property: TextProperty): number => {\n return 1;\n }\n\n export const Serialize = (writer: ContextWriter, property: TextProperty): void => {\n GUIDInfo.write(writer, property.guidInfo);\n SerializeValue(writer, property.value);\n }\n\n export const SerializeValue = (writer: ContextWriter, value: TextPropertyValue): void => {\n writer.writeInt32(value.flags);\n writer.writeByte(value.historyType);\n\n\n switch (value.historyType) {\n // HISTORYTYPE_BASE\n case 0:\n writer.writeString(value.namespace!);\n writer.writeString(value.key!);\n writer.writeString(value.value!);\n break;\n // HISTORYTYPE_NAMEDFORMAT\n case 1:\n // HISTORYTYPE_ARGUMENTFORMAT\n case 3:\n SerializeValue(writer, value.sourceFmt!);\n\n writer.writeInt32(value.arguments!.length);\n\n for (const arg of value.arguments!) {\n let currentArgumentsData: any = {};\n writer.writeString(arg.name);\n writer.writeByte(arg.valueType);\n\n switch (arg.valueType) {\n case 4:\n SerializeValue(writer, arg.argumentValue!);\n break;\n default:\n\n throw new Error('Unimplemented FormatArgumentType `' + currentArgumentsData.valueType);\n }\n }\n break;\n // see https://github.com/EpicGames/UnrealEngine/blob/4.25/Engine/Source/Runtime/Core/Private/Internationalization/TextHistory.cpp#L2268\n // HISTORYTYPE_TRANSFORM\n case 10:\n SerializeValue(writer, value.sourceText!);\n writer.writeByte(value.transformType!);\n break;\n // HISTORYTYPE_NONE\n case 255:\n // See: https://github.com/EpicGames/UnrealEngine/blob/4.25/Engine/Source/Runtime/Core/Private/Internationalization/Text.cpp#L894\n\n writer.writeInt32(value.hasCultureInvariantString ? 1 : 0);\n\n if (value.hasCultureInvariantString) {\n writer.writeString(value.value!);\n }\n break;\n default:\n throw new Error('Unimplemented historyType `' + value.historyType);\n }\n }\n}\n\nexport type TextPropertyValue = {\n flags: number;\n historyType: number;\n\n // flag 0\n namespace?: string;\n key?: string;\n value?: string;\n\n // flag 1 + 3\n sourceFmt?: TextPropertyValue;\n arguments?: { name: string; valueType: number; argumentValue: TextPropertyValue; }[];\n\n // flag 10\n sourceText?: TextPropertyValue;\n transformType?: number;\n\n // flag 255, reusing value\n hasCultureInvariantString?: boolean;\n};\n\n"]}
1
+ {"version":3,"file":"TextProperty.js","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/TextProperty.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextReader } from '../../../../context/context-reader';\nimport { ContextWriter } from '../../../../context/context-writer';\nimport { GUIDInfo } from '../../structs/GUIDInfo';\nimport { AbstractBaseProperty } from './AbstractBaseProperty';\n\nexport const isTextProperty = (property: any): property is TextProperty => !Array.isArray(property) && property.type === 'TextProperty';\n\nexport type TextProperty = AbstractBaseProperty & {\n type: 'TextProperty';\n value: TextPropertyValue;\n};\n\nexport namespace TextProperty {\n\n export const Parse = (reader: ContextReader, ueType: string, index: number = 0): TextProperty => {\n const guidInfo = GUIDInfo.read(reader);\n const value = TextProperty.ReadValue(reader);\n\n return {\n ...AbstractBaseProperty.Create({ index, ueType, guidInfo, type: '' }),\n type: 'TextProperty',\n value,\n } satisfies TextProperty;\n }\n\n export const ReadValue = (reader: ContextReader): TextPropertyValue => {\n const prop: TextPropertyValue = {\n flags: reader.readInt32(),\n historyType: reader.readByte()\n };\n\n switch (prop.historyType) {\n // HISTORYTYPE_BASE\n case 0:\n prop.namespace = reader.readString();\n prop.key = reader.readString();\n prop.value = reader.readString();\n break;\n // HISTORYTYPE_NAMEDFORMAT\n case 1:\n // HISTORYTYPE_ARGUMENTFORMAT\n case 3:\n prop.sourceFmt = ReadValue(reader);\n\n const argumentsCount = reader.readInt32();\n prop.arguments = [];\n\n for (let i = 0; i < argumentsCount; i++) {\n let currentArgumentsData: any = {};\n currentArgumentsData.name = reader.readString();\n currentArgumentsData.valueType = reader.readByte();\n\n switch (currentArgumentsData.valueType) {\n case 4:\n currentArgumentsData.argumentValue = ReadValue(reader);\n break;\n default:\n\n throw new Error('Unimplemented FormatArgumentType `' + currentArgumentsData.valueType);\n }\n\n prop.arguments.push(currentArgumentsData);\n }\n break;\n // see https://github.com/EpicGames/UnrealEngine/blob/4.25/Engine/Source/Runtime/Core/Private/Internationalization/TextHistory.cpp#L2268\n // HISTORYTYPE_TRANSFORM\n case 10:\n prop.sourceText = ReadValue(reader);\n prop.transformType = reader.readByte();\n break;\n // HISTORYTYPE_STRING_TABLE_ENTRY\n case 11:\n prop.tableId = reader.readString();\n prop.textKey = reader.readString();\n break;\n // HISTORYTYPE_NONE\n case 255:\n // See: https://github.com/EpicGames/UnrealEngine/blob/4.25/Engine/Source/Runtime/Core/Private/Internationalization/Text.cpp#L894\n\n prop.hasCultureInvariantString = reader.readInt32() === 1;\n\n if (prop.hasCultureInvariantString) {\n prop.value = reader.readString();\n }\n break;\n\n default:\n throw new Error('Unimplemented TextProperty historyType ' + prop.historyType);\n }\n\n return prop;\n }\n\n export const CalcOverhead = (property: TextProperty): number => {\n return 1;\n }\n\n export const Serialize = (writer: ContextWriter, property: TextProperty): void => {\n GUIDInfo.write(writer, property.guidInfo);\n SerializeValue(writer, property.value);\n }\n\n export const SerializeValue = (writer: ContextWriter, value: TextPropertyValue): void => {\n writer.writeInt32(value.flags);\n writer.writeByte(value.historyType);\n\n\n switch (value.historyType) {\n // HISTORYTYPE_BASE\n case 0:\n writer.writeString(value.namespace!);\n writer.writeString(value.key!);\n writer.writeString(value.value!);\n break;\n // HISTORYTYPE_NAMEDFORMAT\n case 1:\n // HISTORYTYPE_ARGUMENTFORMAT\n case 3:\n SerializeValue(writer, value.sourceFmt!);\n\n writer.writeInt32(value.arguments!.length);\n\n for (const arg of value.arguments!) {\n let currentArgumentsData: any = {};\n writer.writeString(arg.name);\n writer.writeByte(arg.valueType);\n\n switch (arg.valueType) {\n case 4:\n SerializeValue(writer, arg.argumentValue!);\n break;\n default:\n\n throw new Error('Unimplemented FormatArgumentType `' + currentArgumentsData.valueType);\n }\n }\n break;\n // see https://github.com/EpicGames/UnrealEngine/blob/4.25/Engine/Source/Runtime/Core/Private/Internationalization/TextHistory.cpp#L2268\n // HISTORYTYPE_TRANSFORM\n case 10:\n SerializeValue(writer, value.sourceText!);\n writer.writeByte(value.transformType!);\n break;\n // HISTORYTYPE_STRING_TABLE_ENTRY\n case 11:\n writer.writeString(value.tableId!);\n writer.writeString(value.textKey!);\n break;\n // HISTORYTYPE_NONE\n case 255:\n // See: https://github.com/EpicGames/UnrealEngine/blob/4.25/Engine/Source/Runtime/Core/Private/Internationalization/Text.cpp#L894\n\n writer.writeInt32(value.hasCultureInvariantString ? 1 : 0);\n\n if (value.hasCultureInvariantString) {\n writer.writeString(value.value!);\n }\n break;\n default:\n throw new Error('Unimplemented historyType `' + value.historyType);\n }\n }\n}\n\nexport type TextPropertyValue = {\n flags: number;\n historyType: number;\n\n // flag 0\n namespace?: string;\n key?: string;\n value?: string;\n\n // flag 1 + 3\n sourceFmt?: TextPropertyValue;\n arguments?: { name: string; valueType: number; argumentValue: TextPropertyValue; }[];\n\n // flag 10\n sourceText?: TextPropertyValue;\n transformType?: number;\n\n // flag 11\n tableId?: string;\n textKey?: string;\n\n // flag 255, reusing value\n hasCultureInvariantString?: boolean;\n};\n\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GUID.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/GUID.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,yBAAiB,IAAI,CAAC;IACX,MAAM,IAAI,WAAY,aAAa,KAAG,IAO5C,CAAA;IAEM,MAAM,KAAK,WAAY,aAAa,QAAQ,IAAI,KAAG,IAKzD,CAAA;CACJ"}
1
+ {"version":3,"file":"GUID.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/GUID.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAKhE,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,yBAAiB,IAAI,CAAC;IACX,MAAM,IAAI,WAAY,aAAa,KAAG,IAO5C,CAAA;IAEM,MAAM,KAAK,WAAY,aAAa,QAAQ,IAAI,KAAG,IAKzD,CAAA;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"GUID.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/GUID.ts"],"names":[],"mappings":";;;AAKA,IAAiB,IAAI,CAgBpB;AAhBD,WAAiB,IAAI;IACJ,SAAI,GAAG,CAAC,MAAqB,EAAQ,EAAE;QAChD,OAAO;YACH,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,EAAE;SACtB,CAAC;IACN,CAAC,CAAA;IAEY,UAAK,GAAG,CAAC,MAAqB,EAAE,IAAU,EAAQ,EAAE;QAC7D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAA;AACL,CAAC,EAhBgB,IAAI,oBAAJ,IAAI,QAgBpB;AAAA,CAAC","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\nexport type GUID = [number, number, number, number];\n\nexport namespace GUID {\n export const read = (reader: ContextReader): GUID => {\n return [\n reader.readUint32(),\n reader.readUint32(),\n reader.readUint32(),\n reader.readUint32(),\n ];\n }\n\n export const write = (writer: ContextWriter, guid: GUID): void => {\n writer.writeUint32(guid[0]);\n writer.writeUint32(guid[1]);\n writer.writeUint32(guid[2]);\n writer.writeUint32(guid[3]);\n }\n};"]}
1
+ {"version":3,"file":"GUID.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/GUID.ts"],"names":[],"mappings":";;;AAQA,IAAiB,IAAI,CAgBpB;AAhBD,WAAiB,IAAI;IACJ,SAAI,GAAG,CAAC,MAAqB,EAAQ,EAAE;QAChD,OAAO;YACH,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,EAAE;SACtB,CAAC;IACN,CAAC,CAAA;IAEY,UAAK,GAAG,CAAC,MAAqB,EAAE,IAAU,EAAQ,EAAE;QAC7D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAA;AACL,CAAC,EAhBgB,IAAI,oBAAJ,IAAI,QAgBpB;AAAA,CAAC","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\n/**\n * UE Guid structure, 4 uints.\n */\nexport type GUID = [number, number, number, number];\n\nexport namespace GUID {\n export const read = (reader: ContextReader): GUID => {\n return [\n reader.readUint32(),\n reader.readUint32(),\n reader.readUint32(),\n reader.readUint32(),\n ];\n }\n\n export const write = (writer: ContextWriter, guid: GUID): void => {\n writer.writeUint32(guid[0]);\n writer.writeUint32(guid[1]);\n writer.writeUint32(guid[2]);\n writer.writeUint32(guid[3]);\n }\n};"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GUIDInfo.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/GUIDInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AAExC,yBAAiB,QAAQ,CAAC;IACf,MAAM,IAAI,WAAY,aAAa,KAAG,QAO5C,CAAA;IAEM,MAAM,KAAK,WAAY,aAAa,QAAQ,QAAQ,KAAG,IAQ7D,CAAA;CACJ"}
1
+ {"version":3,"file":"GUIDInfo.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/GUIDInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAM9B,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AAExC,yBAAiB,QAAQ,CAAC;IACf,MAAM,IAAI,WAAY,aAAa,KAAG,QAO5C,CAAA;IAEM,MAAM,KAAK,WAAY,aAAa,QAAQ,QAAQ,KAAG,IAQ7D,CAAA;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"GUIDInfo.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/GUIDInfo.ts"],"names":[],"mappings":";;;AAEA,iCAA8B;AAI9B,IAAiB,QAAQ,CAmBxB;AAnBD,WAAiB,QAAQ;IACR,aAAI,GAAG,CAAC,MAAqB,EAAY,EAAE;QAEpD,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC,CAAA;IAEY,cAAK,GAAG,CAAC,MAAqB,EAAE,IAAc,EAAQ,EAAE;QACjE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpB,OAAO;QACX,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpB,WAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC,CAAA;AACL,CAAC,EAnBgB,QAAQ,wBAAR,QAAQ,QAmBxB;AAAA,CAAC","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\nimport { GUID } from './GUID';\n\nexport type GUIDInfo = undefined | GUID;\n\nexport namespace GUIDInfo {\n export const read = (reader: ContextReader): GUIDInfo => {\n // means whether it has guid.\n if (reader.readByte() === 1) {\n return GUID.read(reader);\n } else {\n return undefined;\n }\n }\n\n export const write = (writer: ContextWriter, guid: GUIDInfo): void => {\n if (guid === undefined) {\n writer.writeByte(0);\n return;\n } else {\n writer.writeByte(1);\n GUID.write(writer, guid);\n }\n }\n};"]}
1
+ {"version":3,"file":"GUIDInfo.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/GUIDInfo.ts"],"names":[],"mappings":";;;AAEA,iCAA8B;AAQ9B,IAAiB,QAAQ,CAmBxB;AAnBD,WAAiB,QAAQ;IACR,aAAI,GAAG,CAAC,MAAqB,EAAY,EAAE;QAEpD,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC,CAAA;IAEY,cAAK,GAAG,CAAC,MAAqB,EAAE,IAAc,EAAQ,EAAE;QACjE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpB,OAAO;QACX,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpB,WAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC,CAAA;AACL,CAAC,EAnBgB,QAAQ,wBAAR,QAAQ,QAmBxB;AAAA,CAAC","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\nimport { GUID } from './GUID';\n\n\n/**\n * contains a flag whether the Guid is valid, and the Guid itself if valid.\n */\nexport type GUIDInfo = undefined | GUID;\n\nexport namespace GUIDInfo {\n export const read = (reader: ContextReader): GUIDInfo => {\n // means whether it has guid.\n if (reader.readByte() === 1) {\n return GUID.read(reader);\n } else {\n return undefined;\n }\n }\n\n export const write = (writer: ContextWriter, guid: GUIDInfo): void => {\n if (guid === undefined) {\n writer.writeByte(0);\n return;\n } else {\n writer.writeByte(1);\n GUID.write(writer, guid);\n }\n }\n};"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MD5Hash.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/MD5Hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,MAAM,MAAM,OAAO,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,yBAAiB,OAAO,CAAC;IACd,MAAM,IAAI,WAAY,aAAa,KAAG,OAO5C,CAAC;IAEK,MAAM,KAAK,WAAY,aAAa,WAAW,OAAO,KAAG,IAK/D,CAAC;CACL"}
1
+ {"version":3,"file":"MD5Hash.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/MD5Hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAKhE,MAAM,MAAM,OAAO,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,yBAAiB,OAAO,CAAC;IACd,MAAM,IAAI,WAAY,aAAa,KAAG,OAO5C,CAAC;IAEK,MAAM,KAAK,WAAY,aAAa,WAAW,OAAO,KAAG,IAK/D,CAAC;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"MD5Hash.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/MD5Hash.ts"],"names":[],"mappings":";;;AASA,IAAiB,OAAO,CAgBvB;AAhBD,WAAiB,OAAO;IACP,YAAI,GAAG,CAAC,MAAqB,EAAW,EAAE;QACnD,MAAM,OAAO,GAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5C,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IAEW,aAAK,GAAG,CAAC,MAAqB,EAAE,OAAgB,EAAQ,EAAE;QACnE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC,CAAC;AACN,CAAC,EAhBgB,OAAO,uBAAP,OAAO,QAgBvB;AAAA,CAAC","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\n\nexport type MD5Hash = {\n isValid: boolean;\n hash?: number[];\n};\n\nexport namespace MD5Hash {\n export const read = (reader: ContextReader): MD5Hash => {\n const md5Hash: MD5Hash = { isValid: false };\n md5Hash.isValid = reader.readInt32() === 1;\n if (md5Hash.isValid) {\n md5Hash.hash = Array.from(reader.readBytes(16));\n }\n return md5Hash;\n };\n\n export const write = (writer: ContextWriter, md5Hash: MD5Hash): void => {\n writer.writeInt32(md5Hash.isValid ? 1 : 0);\n if (md5Hash.isValid) {\n writer.writeBytesArray(md5Hash.hash!);\n }\n };\n};"]}
1
+ {"version":3,"file":"MD5Hash.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/MD5Hash.ts"],"names":[],"mappings":";;;AAWA,IAAiB,OAAO,CAgBvB;AAhBD,WAAiB,OAAO;IACP,YAAI,GAAG,CAAC,MAAqB,EAAW,EAAE;QACnD,MAAM,OAAO,GAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5C,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IAEW,aAAK,GAAG,CAAC,MAAqB,EAAE,OAAgB,EAAQ,EAAE;QACnE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC,CAAC;AACN,CAAC,EAhBgB,OAAO,uBAAP,OAAO,QAgBvB;AAAA,CAAC","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\n/**\n * a UE MD5 hash. consists of 16 bytes and a validity byte.\n */\nexport type MD5Hash = {\n isValid: boolean;\n hash?: number[];\n};\n\nexport namespace MD5Hash {\n export const read = (reader: ContextReader): MD5Hash => {\n const md5Hash: MD5Hash = { isValid: false };\n md5Hash.isValid = reader.readInt32() === 1;\n if (md5Hash.isValid) {\n md5Hash.hash = Array.from(reader.readBytes(16));\n }\n return md5Hash;\n };\n\n export const write = (writer: ContextWriter, md5Hash: MD5Hash): void => {\n writer.writeInt32(md5Hash.isValid ? 1 : 0);\n if (md5Hash.isValid) {\n writer.writeBytesArray(md5Hash.hash!);\n }\n };\n};"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectReference.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/ObjectReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,yBAAiB,eAAe,CAAC;IACzB,MAAM,IAAI,WAAY,aAAa,KAAG,eAK5C,CAAC;IAEK,MAAM,KAAK,WAAY,aAAa,OAAO,eAAe,KAAG,IAGnE,CAAC;IAEK,MAAM,OAAO,SAAU,eAAe,QAAQ,eAAe,YAAyE,CAAC;CAC9I"}
1
+ {"version":3,"file":"ObjectReference.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/ObjectReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAMhE,MAAM,MAAM,eAAe,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,yBAAiB,eAAe,CAAC;IACzB,MAAM,IAAI,WAAY,aAAa,KAAG,eAK5C,CAAC;IAEK,MAAM,KAAK,WAAY,aAAa,OAAO,eAAe,KAAG,IAGnE,CAAC;IAEK,MAAM,OAAO,SAAU,eAAe,QAAQ,eAAe,YAAyE,CAAC;CAC9I"}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectReference.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/ObjectReference.ts"],"names":[],"mappings":";;;AAQA,IAAiB,eAAe,CAc/B;AAdD,WAAiB,eAAe;IAClB,oBAAI,GAAG,CAAC,MAAqB,EAAmB,EAAE;QAC9D,OAAO;YACN,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;YAC9B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE;SAC7B,CAAC;IACH,CAAC,CAAC;IAEW,qBAAK,GAAG,CAAC,MAAqB,EAAE,GAAoB,EAAQ,EAAE;QAC1E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;IAEW,uBAAO,GAAG,CAAC,IAAqB,EAAE,IAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;AAC/I,CAAC,EAdgB,eAAe,+BAAf,eAAe,QAc/B;AAAA,CAAC","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\nexport type ObjectReference = {\n\tlevelName: string;\n\tpathName: string;\n};\n\nexport namespace ObjectReference {\n\texport const read = (reader: ContextReader): ObjectReference => {\n\t\treturn {\n\t\t\tlevelName: reader.readString(),\n\t\t\tpathName: reader.readString()\n\t\t};\n\t};\n\n\texport const write = (writer: ContextWriter, ref: ObjectReference): void => {\n\t\twriter.writeString(ref.levelName);\n\t\twriter.writeString(ref.pathName);\n\t};\n\n\texport const IsEqual = (ref1: ObjectReference, ref2: ObjectReference) => ref1.levelName === ref2.levelName && ref1.pathName === ref2.pathName;\n};\n"]}
1
+ {"version":3,"file":"ObjectReference.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/ObjectReference.ts"],"names":[],"mappings":";;;AAYA,IAAiB,eAAe,CAc/B;AAdD,WAAiB,eAAe;IAClB,oBAAI,GAAG,CAAC,MAAqB,EAAmB,EAAE;QAC9D,OAAO;YACN,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;YAC9B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE;SAC7B,CAAC;IACH,CAAC,CAAC;IAEW,qBAAK,GAAG,CAAC,MAAqB,EAAE,GAAoB,EAAQ,EAAE;QAC1E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;IAEW,uBAAO,GAAG,CAAC,IAAqB,EAAE,IAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;AAC/I,CAAC,EAdgB,eAAe,+BAAf,eAAe,QAc/B;AAAA,CAAC","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\n\n/**\n * Reference to an object in saves/blueprints.\n */\nexport type ObjectReference = {\n\tlevelName: string;\n\tpathName: string;\n};\n\nexport namespace ObjectReference {\n\texport const read = (reader: ContextReader): ObjectReference => {\n\t\treturn {\n\t\t\tlevelName: reader.readString(),\n\t\t\tpathName: reader.readString()\n\t\t};\n\t};\n\n\texport const write = (writer: ContextWriter, ref: ObjectReference): void => {\n\t\twriter.writeString(ref.levelName);\n\t\twriter.writeString(ref.pathName);\n\t};\n\n\texport const IsEqual = (ref1: ObjectReference, ref2: ObjectReference) => ref1.levelName === ref2.levelName && ref1.pathName === ref2.pathName;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/Transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,IAAI,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,yBAAiB,SAAS,CAAC;IAChB,MAAM,MAAM,WAAY,aAAa,KAAG,SAM9C,CAAC;IAEK,MAAM,KAAK,WAAY,aAAa,KAAG,SAM7C,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,aAAa,SAAS,KAAG,IAIvE,CAAC;IAEK,MAAM,UAAU,WAAY,aAAa,aAAa,SAAS,KAAG,IAIxE,CAAC;CACL"}
1
+ {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/Transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK9B,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,IAAI,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC;CACjB,CAAC;AAKF,yBAAiB,SAAS,CAAC;IAChB,MAAM,MAAM,WAAY,aAAa,KAAG,SAM9C,CAAC;IAEK,MAAM,KAAK,WAAY,aAAa,KAAG,SAM7C,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,aAAa,SAAS,KAAG,IAIvE,CAAC;IAEK,MAAM,UAAU,WAAY,aAAa,aAAa,SAAS,KAAG,IAIxE,CAAC;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"Transform.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/Transform.ts"],"names":[],"mappings":";;;AAEA,iCAA8B;AAC9B,iCAA8B;AAS9B,IAAiB,SAAS,CA4BzB;AA5BD,WAAiB,SAAS;IACT,gBAAM,GAAG,CAAC,MAAqB,EAAa,EAAE;QACvD,OAAO;YACH,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,WAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC,MAAM,CAAC;SAC/B,CAAC;IACN,CAAC,CAAC;IAEW,eAAK,GAAG,CAAC,MAAqB,EAAa,EAAE;QACtD,OAAO;YACH,QAAQ,EAAE,WAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5B,WAAW,EAAE,WAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,OAAO,EAAE,WAAI,CAAC,KAAK,CAAC,MAAM,CAAC;SAC9B,CAAC;IACN,CAAC,CAAC;IAEW,mBAAS,GAAG,CAAC,MAAqB,EAAE,SAAoB,EAAQ,EAAE;QAC3E,WAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3C,WAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9C,WAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEW,oBAAU,GAAG,CAAC,MAAqB,EAAE,SAAoB,EAAQ,EAAE;QAC5E,WAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,WAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAC/C,WAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC;AACN,CAAC,EA5BgB,SAAS,yBAAT,SAAS,QA4BzB","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\nimport { vec3 } from './vec3';\nimport { vec4 } from './vec4';\n\n\nexport type Transform = {\n rotation: vec4;\n translation: vec3;\n scale3d: vec3;\n};\n\nexport namespace Transform {\n export const ParseF = (reader: ContextReader): Transform => {\n return {\n rotation: vec4.ParseF(reader),\n translation: vec3.ParseF(reader),\n scale3d: vec3.ParseF(reader),\n };\n };\n\n export const Parse = (reader: ContextReader): Transform => {\n return {\n rotation: vec4.Parse(reader),\n translation: vec3.Parse(reader),\n scale3d: vec3.Parse(reader),\n };\n };\n\n export const Serialize = (writer: ContextWriter, transform: Transform): void => {\n vec4.Serialize(writer, transform.rotation);\n vec3.Serialize(writer, transform.translation);\n vec3.Serialize(writer, transform.scale3d);\n };\n\n export const SerializeF = (writer: ContextWriter, transform: Transform): void => {\n vec4.SerializeF(writer, transform.rotation);\n vec3.SerializeF(writer, transform.translation);\n vec3.SerializeF(writer, transform.scale3d);\n };\n}\n"]}
1
+ {"version":3,"file":"Transform.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/Transform.ts"],"names":[],"mappings":";;;AAEA,iCAA8B;AAC9B,iCAA8B;AAc9B,IAAiB,SAAS,CA4BzB;AA5BD,WAAiB,SAAS;IACT,gBAAM,GAAG,CAAC,MAAqB,EAAa,EAAE;QACvD,OAAO;YACH,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,WAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC,MAAM,CAAC;SAC/B,CAAC;IACN,CAAC,CAAC;IAEW,eAAK,GAAG,CAAC,MAAqB,EAAa,EAAE;QACtD,OAAO;YACH,QAAQ,EAAE,WAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5B,WAAW,EAAE,WAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,OAAO,EAAE,WAAI,CAAC,KAAK,CAAC,MAAM,CAAC;SAC9B,CAAC;IACN,CAAC,CAAC;IAEW,mBAAS,GAAG,CAAC,MAAqB,EAAE,SAAoB,EAAQ,EAAE;QAC3E,WAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3C,WAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9C,WAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEW,oBAAU,GAAG,CAAC,MAAqB,EAAE,SAAoB,EAAQ,EAAE;QAC5E,WAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,WAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAC/C,WAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC;AACN,CAAC,EA5BgB,SAAS,yBAAT,SAAS,QA4BzB","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\nimport { vec3 } from './vec3';\nimport { vec4 } from './vec4';\n\n/**\n * An object's transform in saves/blueprints.\n */\nexport type Transform = {\n rotation: vec4;\n translation: vec3;\n scale3d: vec3;\n};\n\n/**\n * An object's transform in saves/blueprints.\n */\nexport namespace Transform {\n export const ParseF = (reader: ContextReader): Transform => {\n return {\n rotation: vec4.ParseF(reader),\n translation: vec3.ParseF(reader),\n scale3d: vec3.ParseF(reader),\n };\n };\n\n export const Parse = (reader: ContextReader): Transform => {\n return {\n rotation: vec4.Parse(reader),\n translation: vec3.Parse(reader),\n scale3d: vec3.Parse(reader),\n };\n };\n\n export const Serialize = (writer: ContextWriter, transform: Transform): void => {\n vec4.Serialize(writer, transform.rotation);\n vec3.Serialize(writer, transform.translation);\n vec3.Serialize(writer, transform.scale3d);\n };\n\n export const SerializeF = (writer: ContextWriter, transform: Transform): void => {\n vec4.SerializeF(writer, transform.rotation);\n vec3.SerializeF(writer, transform.translation);\n vec3.SerializeF(writer, transform.scale3d);\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"col4.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/col4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,MAAM,MAAM,IAAI,GAAG;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,yBAAiB,IAAI,CAAC;IACX,MAAM,aAAa,WAAY,aAAa,SAAS,IAAI,KAAG,IAKlE,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,KAAG,IAOjD,CAAC;IAEK,MAAM,aAAa,WAAY,aAAa,SAAS,IAAI,KAAG,IAKlE,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,KAAG,IAOjD,CAAC;CACL"}
1
+ {"version":3,"file":"col4.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/col4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAMhE,MAAM,MAAM,IAAI,GAAG;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,yBAAiB,IAAI,CAAC;IACX,MAAM,aAAa,WAAY,aAAa,SAAS,IAAI,KAAG,IAKlE,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,KAAG,IAOjD,CAAC;IAEK,MAAM,aAAa,WAAY,aAAa,SAAS,IAAI,KAAG,IAKlE,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,KAAG,IAOjD,CAAC;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"col4.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/col4.ts"],"names":[],"mappings":";;;AAWA,IAAiB,IAAI,CAgCpB;AAhCD,WAAiB,IAAI;IACJ,kBAAa,GAAG,CAAC,MAAqB,EAAE,KAAW,EAAQ,EAAE;QACtE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC;IAEW,cAAS,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACrD,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;YACvB,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;YACvB,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;YACvB,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;SAC1B,CAAC;IACN,CAAC,CAAC;IAEW,kBAAa,GAAG,CAAC,MAAqB,EAAE,KAAW,EAAQ,EAAE;QACtE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEW,cAAS,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACrD,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;YACpB,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;YACpB,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;YACpB,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;SACvB,CAAC;IACN,CAAC,CAAC;AACN,CAAC,EAhCgB,IAAI,oBAAJ,IAAI,QAgCpB","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\n\nexport type col4 = {\n r: number;\n g: number;\n b: number;\n a: number;\n};\n\nexport namespace col4 {\n export const SerializeRGBA = (writer: ContextWriter, value: col4): void => {\n writer.writeFloat32(value.r);\n writer.writeFloat32(value.g);\n writer.writeFloat32(value.b);\n writer.writeFloat32(value.a);\n };\n\n export const ParseRGBA = (reader: ContextReader): col4 => {\n return {\n r: reader.readFloat32(),\n g: reader.readFloat32(),\n b: reader.readFloat32(),\n a: reader.readFloat32(),\n };\n };\n\n export const SerializeBGRA = (writer: ContextWriter, value: col4): void => {\n writer.writeByte(value.b);\n writer.writeByte(value.g);\n writer.writeByte(value.r);\n writer.writeByte(value.a);\n };\n\n export const ParseBGRA = (reader: ContextReader): col4 => {\n return {\n b: reader.readByte(),\n g: reader.readByte(),\n r: reader.readByte(),\n a: reader.readByte(),\n };\n };\n}\n"]}
1
+ {"version":3,"file":"col4.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/col4.ts"],"names":[],"mappings":";;;AAcA,IAAiB,IAAI,CAgCpB;AAhCD,WAAiB,IAAI;IACJ,kBAAa,GAAG,CAAC,MAAqB,EAAE,KAAW,EAAQ,EAAE;QACtE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC;IAEW,cAAS,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACrD,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;YACvB,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;YACvB,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;YACvB,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;SAC1B,CAAC;IACN,CAAC,CAAC;IAEW,kBAAa,GAAG,CAAC,MAAqB,EAAE,KAAW,EAAQ,EAAE;QACtE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEW,cAAS,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACrD,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;YACpB,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;YACpB,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;YACpB,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;SACvB,CAAC;IACN,CAAC,CAAC;AACN,CAAC,EAhCgB,IAAI,oBAAJ,IAAI,QAgCpB","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\n\n/**\n * a 4-component color. can be encoded as 16 bytes RGBA or 4 bytes BGRA.\n */\nexport type col4 = {\n r: number;\n g: number;\n b: number;\n a: number;\n};\n\nexport namespace col4 {\n export const SerializeRGBA = (writer: ContextWriter, value: col4): void => {\n writer.writeFloat32(value.r);\n writer.writeFloat32(value.g);\n writer.writeFloat32(value.b);\n writer.writeFloat32(value.a);\n };\n\n export const ParseRGBA = (reader: ContextReader): col4 => {\n return {\n r: reader.readFloat32(),\n g: reader.readFloat32(),\n b: reader.readFloat32(),\n a: reader.readFloat32(),\n };\n };\n\n export const SerializeBGRA = (writer: ContextWriter, value: col4): void => {\n writer.writeByte(value.b);\n writer.writeByte(value.g);\n writer.writeByte(value.r);\n writer.writeByte(value.a);\n };\n\n export const ParseBGRA = (reader: ContextReader): col4 => {\n return {\n b: reader.readByte(),\n g: reader.readByte(),\n r: reader.readByte(),\n a: reader.readByte(),\n };\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vec2.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/vec2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,MAAM,MAAM,IAAI,GAAG;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,yBAAiB,IAAI,CAAC;IAEX,MAAM,KAAK,WAAY,aAAa,KAAG,IAK7C,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,OAAO,IAAI,KAAG,IAG5D,CAAC;IAEK,MAAM,MAAM,WAAY,aAAa,KAAG,IAK9C,CAAC;IAEK,MAAM,UAAU,WAAY,aAAa,OAAO,IAAI,KAAG,IAG7D,CAAC;CACL"}
1
+ {"version":3,"file":"vec2.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/vec2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAKhE,MAAM,MAAM,IAAI,GAAG;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,yBAAiB,IAAI,CAAC;IAEX,MAAM,KAAK,WAAY,aAAa,KAAG,IAK7C,CAAC;IAEK,MAAM,SAAS,WAAY,aAAa,OAAO,IAAI,KAAG,IAG5D,CAAC;IAEK,MAAM,MAAM,WAAY,aAAa,KAAG,IAK9C,CAAC;IAEK,MAAM,UAAU,WAAY,aAAa,OAAO,IAAI,KAAG,IAG7D,CAAC;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"vec2.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/vec2.ts"],"names":[],"mappings":";;;AASA,IAAiB,IAAI,CAyBpB;AAzBD,WAAiB,IAAI;IAEJ,UAAK,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACjD,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE;YACtB,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE;SACzB,CAAC;IACN,CAAC,CAAC;IAEW,cAAS,GAAG,CAAC,MAAqB,EAAE,GAAS,EAAQ,EAAE;QAChE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEW,WAAM,GAAG,CAAC,MAAqB,EAAQ,EAAE;QAClD,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;YACvB,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;SAC1B,CAAC;IACN,CAAC,CAAC;IAEW,eAAU,GAAG,CAAC,MAAqB,EAAE,GAAS,EAAQ,EAAE;QACjE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC,EAzBgB,IAAI,oBAAJ,IAAI,QAyBpB","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\n\nexport type vec2 = {\n x: number;\n y: number;\n};\n\nexport namespace vec2 {\n\n export const Parse = (reader: ContextReader): vec2 => {\n return {\n x: reader.readDouble(),\n y: reader.readDouble(),\n };\n };\n\n export const Serialize = (writer: ContextWriter, vec: vec2): void => {\n writer.writeDouble(vec.x);\n writer.writeDouble(vec.y);\n };\n\n export const ParseF = (reader: ContextReader): vec2 => {\n return {\n x: reader.readFloat32(),\n y: reader.readFloat32(),\n };\n };\n\n export const SerializeF = (writer: ContextWriter, vec: vec2): void => {\n writer.writeFloat32(vec.x);\n writer.writeFloat32(vec.y);\n };\n}\n"]}
1
+ {"version":3,"file":"vec2.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/structs/vec2.ts"],"names":[],"mappings":";;;AAWA,IAAiB,IAAI,CAyBpB;AAzBD,WAAiB,IAAI;IAEJ,UAAK,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACjD,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE;YACtB,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE;SACzB,CAAC;IACN,CAAC,CAAC;IAEW,cAAS,GAAG,CAAC,MAAqB,EAAE,GAAS,EAAQ,EAAE;QAChE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEW,WAAM,GAAG,CAAC,MAAqB,EAAQ,EAAE;QAClD,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;YACvB,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;SAC1B,CAAC;IACN,CAAC,CAAC;IAEW,eAAU,GAAG,CAAC,MAAqB,EAAE,GAAS,EAAQ,EAAE;QACjE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC,EAzBgB,IAAI,oBAAJ,IAAI,QAyBpB","sourcesContent":["import { ContextReader } from '../../../context/context-reader';\nimport { ContextWriter } from '../../../context/context-writer';\n\n/**\n * 2D vector.\n */\nexport type vec2 = {\n x: number;\n y: number;\n};\n\nexport namespace vec2 {\n\n export const Parse = (reader: ContextReader): vec2 => {\n return {\n x: reader.readDouble(),\n y: reader.readDouble(),\n };\n };\n\n export const Serialize = (writer: ContextWriter, vec: vec2): void => {\n writer.writeDouble(vec.x);\n writer.writeDouble(vec.y);\n };\n\n export const ParseF = (reader: ContextReader): vec2 => {\n return {\n x: reader.readFloat32(),\n y: reader.readFloat32(),\n };\n };\n\n export const SerializeF = (writer: ContextWriter, vec: vec2): void => {\n writer.writeFloat32(vec.x);\n writer.writeFloat32(vec.y);\n };\n}\n"]}