@etothepii/satisfactory-file-parser 2.1.2 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (796) hide show
  1. package/CHANGELOG.md +125 -99
  2. package/LICENCE.md +1 -1
  3. package/README.md +36 -18
  4. package/build/index.d.ts +12 -1
  5. package/build/index.d.ts.map +1 -1
  6. package/build/index.js +13 -3
  7. package/build/index.js.map +1 -1
  8. package/build/parser/byte/byte-reader.class.d.ts +7 -5
  9. package/build/parser/byte/byte-reader.class.d.ts.map +1 -1
  10. package/build/parser/byte/byte-reader.class.js +6 -4
  11. package/build/parser/byte/byte-reader.class.js.map +1 -1
  12. package/build/parser/byte/byte-writer.class.d.ts +1 -0
  13. package/build/parser/byte/byte-writer.class.d.ts.map +1 -1
  14. package/build/parser/byte/byte-writer.class.js +3 -0
  15. package/build/parser/byte/byte-writer.class.js.map +1 -1
  16. package/build/parser/context/context-reader.d.ts +6 -0
  17. package/build/parser/context/context-reader.d.ts.map +1 -0
  18. package/build/parser/context/context-reader.js +13 -0
  19. package/build/parser/context/context-reader.js.map +1 -0
  20. package/build/parser/context/context-writer.d.ts +6 -0
  21. package/build/parser/context/context-writer.d.ts.map +1 -0
  22. package/build/parser/context/context-writer.js +13 -0
  23. package/build/parser/context/context-writer.js.map +1 -0
  24. package/build/parser/context/context.d.ts +16 -0
  25. package/build/parser/context/context.d.ts.map +1 -0
  26. package/build/parser/context/context.js +3 -0
  27. package/build/parser/context/context.js.map +1 -0
  28. package/build/parser/error/parser.error.d.ts +3 -0
  29. package/build/parser/error/parser.error.d.ts.map +1 -1
  30. package/build/parser/error/parser.error.js +7 -1
  31. package/build/parser/error/parser.error.js.map +1 -1
  32. package/build/parser/parser.d.ts +5 -5
  33. package/build/parser/parser.d.ts.map +1 -1
  34. package/build/parser/parser.js +48 -22
  35. package/build/parser/parser.js.map +1 -1
  36. package/build/parser/satisfactory/blueprint/blueprint-config-version.d.ts +10 -0
  37. package/build/parser/satisfactory/blueprint/blueprint-config-version.d.ts.map +1 -0
  38. package/build/parser/satisfactory/blueprint/blueprint-config-version.js +14 -0
  39. package/build/parser/satisfactory/blueprint/blueprint-config-version.js.map +1 -0
  40. package/build/parser/satisfactory/blueprint/blueprint-config.d.ts +21 -0
  41. package/build/parser/satisfactory/blueprint/blueprint-config.d.ts.map +1 -0
  42. package/build/parser/satisfactory/blueprint/blueprint-config.js +56 -0
  43. package/build/parser/satisfactory/blueprint/blueprint-config.js.map +1 -0
  44. package/build/parser/satisfactory/blueprint/blueprint-header.d.ts +24 -0
  45. package/build/parser/satisfactory/blueprint/blueprint-header.d.ts.map +1 -0
  46. package/build/parser/satisfactory/blueprint/blueprint-header.js +61 -0
  47. package/build/parser/satisfactory/blueprint/blueprint-header.js.map +1 -0
  48. package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts +11 -14
  49. package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts.map +1 -1
  50. package/build/parser/satisfactory/blueprint/blueprint-reader.js +15 -99
  51. package/build/parser/satisfactory/blueprint/blueprint-reader.js.map +1 -1
  52. package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts +6 -9
  53. package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts.map +1 -1
  54. package/build/parser/satisfactory/blueprint/blueprint-writer.js +7 -39
  55. package/build/parser/satisfactory/blueprint/blueprint-writer.js.map +1 -1
  56. package/build/parser/satisfactory/blueprint/blueprint.types.d.ts +3 -16
  57. package/build/parser/satisfactory/blueprint/blueprint.types.d.ts.map +1 -1
  58. package/build/parser/satisfactory/blueprint/blueprint.types.js.map +1 -1
  59. package/build/parser/satisfactory/edit/edit-constants.d.ts +18 -0
  60. package/build/parser/satisfactory/edit/edit-constants.d.ts.map +1 -1
  61. package/build/parser/satisfactory/edit/edit-constants.js +18 -0
  62. package/build/parser/satisfactory/edit/edit-constants.js.map +1 -1
  63. package/build/parser/satisfactory/save/factory-game-custom-version.d.ts +34 -0
  64. package/build/parser/satisfactory/save/factory-game-custom-version.d.ts.map +1 -0
  65. package/build/parser/satisfactory/save/factory-game-custom-version.js +39 -0
  66. package/build/parser/satisfactory/save/factory-game-custom-version.js.map +1 -0
  67. package/build/parser/satisfactory/save/level.class.d.ts +17 -10
  68. package/build/parser/satisfactory/save/level.class.d.ts.map +1 -1
  69. package/build/parser/satisfactory/save/level.class.js +77 -21
  70. package/build/parser/satisfactory/save/level.class.js.map +1 -1
  71. package/build/parser/satisfactory/save/object-references-list.d.ts +4 -4
  72. package/build/parser/satisfactory/save/object-references-list.d.ts.map +1 -1
  73. package/build/parser/satisfactory/save/object-references-list.js.map +1 -1
  74. package/build/parser/satisfactory/save/satisfactory-save-header.d.ts +29 -0
  75. package/build/parser/satisfactory/save/satisfactory-save-header.d.ts.map +1 -0
  76. package/build/parser/satisfactory/save/satisfactory-save-header.js +111 -0
  77. package/build/parser/satisfactory/save/satisfactory-save-header.js.map +1 -0
  78. package/build/parser/satisfactory/save/satisfactory-save.d.ts +6 -4
  79. package/build/parser/satisfactory/save/satisfactory-save.d.ts.map +1 -1
  80. package/build/parser/satisfactory/save/satisfactory-save.js +4 -1
  81. package/build/parser/satisfactory/save/satisfactory-save.js.map +1 -1
  82. package/build/parser/satisfactory/save/save-body-chunks.d.ts +25 -0
  83. package/build/parser/satisfactory/save/save-body-chunks.d.ts.map +1 -0
  84. package/build/parser/satisfactory/save/save-body-chunks.js +118 -0
  85. package/build/parser/satisfactory/save/save-body-chunks.js.map +1 -0
  86. package/build/parser/satisfactory/save/save-custom-version.d.ts +57 -0
  87. package/build/parser/satisfactory/save/save-custom-version.d.ts.map +1 -0
  88. package/build/parser/satisfactory/save/save-custom-version.js +62 -0
  89. package/build/parser/satisfactory/save/save-custom-version.js.map +1 -0
  90. package/build/parser/satisfactory/save/save-header-type.d.ts +18 -0
  91. package/build/parser/satisfactory/save/save-header-type.d.ts.map +1 -0
  92. package/build/parser/satisfactory/save/save-header-type.js +22 -0
  93. package/build/parser/satisfactory/save/save-header-type.js.map +1 -0
  94. package/build/parser/satisfactory/save/save-reader.d.ts +14 -12
  95. package/build/parser/satisfactory/save/save-reader.d.ts.map +1 -1
  96. package/build/parser/satisfactory/save/save-reader.js +32 -134
  97. package/build/parser/satisfactory/save/save-reader.js.map +1 -1
  98. package/build/parser/satisfactory/save/save-writer.d.ts +7 -9
  99. package/build/parser/satisfactory/save/save-writer.d.ts.map +1 -1
  100. package/build/parser/satisfactory/save/save-writer.js +8 -95
  101. package/build/parser/satisfactory/save/save-writer.js.map +1 -1
  102. package/build/parser/satisfactory/save/save.types.d.ts +5 -25
  103. package/build/parser/satisfactory/save/save.types.d.ts.map +1 -1
  104. package/build/parser/satisfactory/save/save.types.js.map +1 -1
  105. package/build/parser/satisfactory/types/objects/SaveComponent.d.ts +6 -5
  106. package/build/parser/satisfactory/types/objects/SaveComponent.d.ts.map +1 -1
  107. package/build/parser/satisfactory/types/objects/SaveComponent.js +2 -2
  108. package/build/parser/satisfactory/types/objects/SaveComponent.js.map +1 -1
  109. package/build/parser/satisfactory/types/objects/SaveEntity.d.ts +7 -8
  110. package/build/parser/satisfactory/types/objects/SaveEntity.d.ts.map +1 -1
  111. package/build/parser/satisfactory/types/objects/SaveEntity.js +7 -10
  112. package/build/parser/satisfactory/types/objects/SaveEntity.js.map +1 -1
  113. package/build/parser/satisfactory/types/objects/SaveObject.d.ts +11 -9
  114. package/build/parser/satisfactory/types/objects/SaveObject.d.ts.map +1 -1
  115. package/build/parser/satisfactory/types/objects/SaveObject.js +17 -9
  116. package/build/parser/satisfactory/types/objects/SaveObject.js.map +1 -1
  117. package/build/parser/satisfactory/types/property/PropertiesList.d.ts +6 -6
  118. package/build/parser/satisfactory/types/property/PropertiesList.d.ts.map +1 -1
  119. package/build/parser/satisfactory/types/property/PropertiesList.js +7 -7
  120. package/build/parser/satisfactory/types/property/PropertiesList.js.map +1 -1
  121. package/build/parser/satisfactory/types/property/generic/AbstractBaseProperty.js.map +1 -1
  122. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ArrayProperty.d.ts +4 -4
  123. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ArrayProperty.d.ts.map +1 -1
  124. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ArrayProperty.js.map +1 -1
  125. package/build/parser/satisfactory/types/property/generic/ArrayProperty/BoolArrayProperty.d.ts +4 -4
  126. package/build/parser/satisfactory/types/property/generic/ArrayProperty/BoolArrayProperty.d.ts.map +1 -1
  127. package/build/parser/satisfactory/types/property/generic/ArrayProperty/BoolArrayProperty.js.map +1 -1
  128. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ByteArrayProperty.d.ts +4 -4
  129. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ByteArrayProperty.d.ts.map +1 -1
  130. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ByteArrayProperty.js.map +1 -1
  131. package/build/parser/satisfactory/types/property/generic/ArrayProperty/DoubleArrayProperty.d.ts +4 -4
  132. package/build/parser/satisfactory/types/property/generic/ArrayProperty/DoubleArrayProperty.d.ts.map +1 -1
  133. package/build/parser/satisfactory/types/property/generic/ArrayProperty/DoubleArrayProperty.js.map +1 -1
  134. package/build/parser/satisfactory/types/property/generic/ArrayProperty/EnumArrayProperty.d.ts +4 -4
  135. package/build/parser/satisfactory/types/property/generic/ArrayProperty/EnumArrayProperty.d.ts.map +1 -1
  136. package/build/parser/satisfactory/types/property/generic/ArrayProperty/EnumArrayProperty.js.map +1 -1
  137. package/build/parser/satisfactory/types/property/generic/ArrayProperty/FloatArrayProperty.d.ts +4 -4
  138. package/build/parser/satisfactory/types/property/generic/ArrayProperty/FloatArrayProperty.d.ts.map +1 -1
  139. package/build/parser/satisfactory/types/property/generic/ArrayProperty/FloatArrayProperty.js.map +1 -1
  140. package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int32ArrayProperty.d.ts +4 -4
  141. package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int32ArrayProperty.d.ts.map +1 -1
  142. package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int32ArrayProperty.js.map +1 -1
  143. package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int64ArrayProperty.d.ts +4 -4
  144. package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int64ArrayProperty.d.ts.map +1 -1
  145. package/build/parser/satisfactory/types/property/generic/ArrayProperty/Int64ArrayProperty.js.map +1 -1
  146. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ObjectArrayProperty.d.ts +4 -4
  147. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ObjectArrayProperty.d.ts.map +1 -1
  148. package/build/parser/satisfactory/types/property/generic/ArrayProperty/ObjectArrayProperty.js.map +1 -1
  149. package/build/parser/satisfactory/types/property/generic/ArrayProperty/SoftObjectArrayProperty.d.ts +4 -4
  150. package/build/parser/satisfactory/types/property/generic/ArrayProperty/SoftObjectArrayProperty.d.ts.map +1 -1
  151. package/build/parser/satisfactory/types/property/generic/ArrayProperty/SoftObjectArrayProperty.js.map +1 -1
  152. package/build/parser/satisfactory/types/property/generic/ArrayProperty/StrArrayProperty.d.ts +4 -4
  153. package/build/parser/satisfactory/types/property/generic/ArrayProperty/StrArrayProperty.d.ts.map +1 -1
  154. package/build/parser/satisfactory/types/property/generic/ArrayProperty/StrArrayProperty.js.map +1 -1
  155. package/build/parser/satisfactory/types/property/generic/ArrayProperty/StructArrayProperty.d.ts +4 -4
  156. package/build/parser/satisfactory/types/property/generic/ArrayProperty/StructArrayProperty.d.ts.map +1 -1
  157. package/build/parser/satisfactory/types/property/generic/ArrayProperty/StructArrayProperty.js.map +1 -1
  158. package/build/parser/satisfactory/types/property/generic/ArrayProperty/TextArrayProperty.d.ts +4 -4
  159. package/build/parser/satisfactory/types/property/generic/ArrayProperty/TextArrayProperty.d.ts.map +1 -1
  160. package/build/parser/satisfactory/types/property/generic/ArrayProperty/TextArrayProperty.js.map +1 -1
  161. package/build/parser/satisfactory/types/property/generic/BoolProperty.d.ts +6 -6
  162. package/build/parser/satisfactory/types/property/generic/BoolProperty.d.ts.map +1 -1
  163. package/build/parser/satisfactory/types/property/generic/BoolProperty.js.map +1 -1
  164. package/build/parser/satisfactory/types/property/generic/ByteProperty.d.ts +6 -6
  165. package/build/parser/satisfactory/types/property/generic/ByteProperty.d.ts.map +1 -1
  166. package/build/parser/satisfactory/types/property/generic/ByteProperty.js.map +1 -1
  167. package/build/parser/satisfactory/types/property/generic/DoubleProperty.d.ts +6 -6
  168. package/build/parser/satisfactory/types/property/generic/DoubleProperty.d.ts.map +1 -1
  169. package/build/parser/satisfactory/types/property/generic/DoubleProperty.js.map +1 -1
  170. package/build/parser/satisfactory/types/property/generic/EnumProperty.d.ts +6 -6
  171. package/build/parser/satisfactory/types/property/generic/EnumProperty.d.ts.map +1 -1
  172. package/build/parser/satisfactory/types/property/generic/EnumProperty.js.map +1 -1
  173. package/build/parser/satisfactory/types/property/generic/FloatProperty.d.ts +6 -6
  174. package/build/parser/satisfactory/types/property/generic/FloatProperty.d.ts.map +1 -1
  175. package/build/parser/satisfactory/types/property/generic/FloatProperty.js.map +1 -1
  176. package/build/parser/satisfactory/types/property/generic/Int32Property.d.ts +6 -6
  177. package/build/parser/satisfactory/types/property/generic/Int32Property.d.ts.map +1 -1
  178. package/build/parser/satisfactory/types/property/generic/Int32Property.js.map +1 -1
  179. package/build/parser/satisfactory/types/property/generic/Int64Property.d.ts +6 -6
  180. package/build/parser/satisfactory/types/property/generic/Int64Property.d.ts.map +1 -1
  181. package/build/parser/satisfactory/types/property/generic/Int64Property.js.map +1 -1
  182. package/build/parser/satisfactory/types/property/generic/Int8Property.d.ts +6 -6
  183. package/build/parser/satisfactory/types/property/generic/Int8Property.d.ts.map +1 -1
  184. package/build/parser/satisfactory/types/property/generic/Int8Property.js.map +1 -1
  185. package/build/parser/satisfactory/types/property/generic/MapProperty.d.ts +4 -4
  186. package/build/parser/satisfactory/types/property/generic/MapProperty.d.ts.map +1 -1
  187. package/build/parser/satisfactory/types/property/generic/MapProperty.js +5 -5
  188. package/build/parser/satisfactory/types/property/generic/MapProperty.js.map +1 -1
  189. package/build/parser/satisfactory/types/property/generic/ObjectProperty.d.ts +6 -6
  190. package/build/parser/satisfactory/types/property/generic/ObjectProperty.d.ts.map +1 -1
  191. package/build/parser/satisfactory/types/property/generic/ObjectProperty.js.map +1 -1
  192. package/build/parser/satisfactory/types/property/generic/SetProperty/Int32SetProperty.d.ts +4 -4
  193. package/build/parser/satisfactory/types/property/generic/SetProperty/Int32SetProperty.d.ts.map +1 -1
  194. package/build/parser/satisfactory/types/property/generic/SetProperty/Int32SetProperty.js.map +1 -1
  195. package/build/parser/satisfactory/types/property/generic/SetProperty/ObjectSetProperty.d.ts +4 -4
  196. package/build/parser/satisfactory/types/property/generic/SetProperty/ObjectSetProperty.d.ts.map +1 -1
  197. package/build/parser/satisfactory/types/property/generic/SetProperty/ObjectSetProperty.js.map +1 -1
  198. package/build/parser/satisfactory/types/property/generic/SetProperty/SetProperty.d.ts +4 -4
  199. package/build/parser/satisfactory/types/property/generic/SetProperty/SetProperty.d.ts.map +1 -1
  200. package/build/parser/satisfactory/types/property/generic/SetProperty/SetProperty.js +4 -1
  201. package/build/parser/satisfactory/types/property/generic/SetProperty/SetProperty.js.map +1 -1
  202. package/build/parser/satisfactory/types/property/generic/SetProperty/StrSetProperty.d.ts +4 -4
  203. package/build/parser/satisfactory/types/property/generic/SetProperty/StrSetProperty.d.ts.map +1 -1
  204. package/build/parser/satisfactory/types/property/generic/SetProperty/StrSetProperty.js.map +1 -1
  205. package/build/parser/satisfactory/types/property/generic/SetProperty/StructSetProperty.d.ts +4 -4
  206. package/build/parser/satisfactory/types/property/generic/SetProperty/StructSetProperty.d.ts.map +1 -1
  207. package/build/parser/satisfactory/types/property/generic/SetProperty/StructSetProperty.js +1 -2
  208. package/build/parser/satisfactory/types/property/generic/SetProperty/StructSetProperty.js.map +1 -1
  209. package/build/parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty.d.ts +4 -4
  210. package/build/parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty.d.ts.map +1 -1
  211. package/build/parser/satisfactory/types/property/generic/SetProperty/Uint32SetProperty.js.map +1 -1
  212. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.d.ts +6 -6
  213. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.d.ts.map +1 -1
  214. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.js.map +1 -1
  215. package/build/parser/satisfactory/types/property/generic/StrProperty.d.ts +6 -6
  216. package/build/parser/satisfactory/types/property/generic/StrProperty.d.ts.map +1 -1
  217. package/build/parser/satisfactory/types/property/generic/StrProperty.js.map +1 -1
  218. package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts +11 -15
  219. package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts.map +1 -1
  220. package/build/parser/satisfactory/types/property/generic/StructProperty.js +29 -33
  221. package/build/parser/satisfactory/types/property/generic/StructProperty.js.map +1 -1
  222. package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts +6 -6
  223. package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts.map +1 -1
  224. package/build/parser/satisfactory/types/property/generic/TextProperty.js.map +1 -1
  225. package/build/parser/satisfactory/types/property/generic/Uint32Property.d.ts +6 -6
  226. package/build/parser/satisfactory/types/property/generic/Uint32Property.d.ts.map +1 -1
  227. package/build/parser/satisfactory/types/property/generic/Uint32Property.js.map +1 -1
  228. package/build/parser/satisfactory/types/property/generic/Uint64Property.d.ts +6 -6
  229. package/build/parser/satisfactory/types/property/generic/Uint64Property.d.ts.map +1 -1
  230. package/build/parser/satisfactory/types/property/generic/Uint64Property.js.map +1 -1
  231. package/build/parser/satisfactory/types/property/generic/Uint8Property.d.ts +6 -6
  232. package/build/parser/satisfactory/types/property/generic/Uint8Property.d.ts.map +1 -1
  233. package/build/parser/satisfactory/types/property/generic/Uint8Property.js.map +1 -1
  234. package/build/parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties.d.ts +25 -5
  235. package/build/parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties.d.ts.map +1 -1
  236. package/build/parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties.js +70 -44
  237. package/build/parser/satisfactory/types/property/special/BuildableSubsystemSpecialProperties.js.map +1 -1
  238. package/build/parser/satisfactory/types/property/special/CircuitSpecialProperties.d.ts +4 -4
  239. package/build/parser/satisfactory/types/property/special/CircuitSpecialProperties.d.ts.map +1 -1
  240. package/build/parser/satisfactory/types/property/special/CircuitSpecialProperties.js.map +1 -1
  241. package/build/parser/satisfactory/types/property/special/ConveyorChainActorSpecialProperties.d.ts +4 -4
  242. package/build/parser/satisfactory/types/property/special/ConveyorChainActorSpecialProperties.d.ts.map +1 -1
  243. package/build/parser/satisfactory/types/property/special/ConveyorChainActorSpecialProperties.js.map +1 -1
  244. package/build/parser/satisfactory/types/property/special/ConveyorSpecialProperties.d.ts +4 -4
  245. package/build/parser/satisfactory/types/property/special/ConveyorSpecialProperties.d.ts.map +1 -1
  246. package/build/parser/satisfactory/types/property/special/ConveyorSpecialProperties.js +2 -2
  247. package/build/parser/satisfactory/types/property/special/ConveyorSpecialProperties.js.map +1 -1
  248. package/build/parser/satisfactory/types/property/special/EmptySpecialProperties.d.ts +4 -4
  249. package/build/parser/satisfactory/types/property/special/EmptySpecialProperties.d.ts.map +1 -1
  250. package/build/parser/satisfactory/types/property/special/EmptySpecialProperties.js.map +1 -1
  251. package/build/parser/satisfactory/types/property/special/ObjectsListSpecialProperties.d.ts +4 -4
  252. package/build/parser/satisfactory/types/property/special/ObjectsListSpecialProperties.d.ts.map +1 -1
  253. package/build/parser/satisfactory/types/property/special/ObjectsListSpecialProperties.js.map +1 -1
  254. package/build/parser/satisfactory/types/property/special/PlayerSpecialProperties.d.ts +4 -4
  255. package/build/parser/satisfactory/types/property/special/PlayerSpecialProperties.d.ts.map +1 -1
  256. package/build/parser/satisfactory/types/property/special/PlayerSpecialProperties.js.map +1 -1
  257. package/build/parser/satisfactory/types/property/special/PowerLineSpecialProperties.d.ts +4 -4
  258. package/build/parser/satisfactory/types/property/special/PowerLineSpecialProperties.d.ts.map +1 -1
  259. package/build/parser/satisfactory/types/property/special/PowerLineSpecialProperties.js +12 -3
  260. package/build/parser/satisfactory/types/property/special/PowerLineSpecialProperties.js.map +1 -1
  261. package/build/parser/satisfactory/types/property/special/SpecialDroneActionProperties.d.ts +4 -4
  262. package/build/parser/satisfactory/types/property/special/SpecialDroneActionProperties.d.ts.map +1 -1
  263. package/build/parser/satisfactory/types/property/special/SpecialDroneActionProperties.js +4 -4
  264. package/build/parser/satisfactory/types/property/special/SpecialDroneActionProperties.js.map +1 -1
  265. package/build/parser/satisfactory/types/property/special/SpecialProperties.d.ts +4 -4
  266. package/build/parser/satisfactory/types/property/special/SpecialProperties.d.ts.map +1 -1
  267. package/build/parser/satisfactory/types/property/special/SpecialProperties.js.map +1 -1
  268. package/build/parser/satisfactory/types/property/special/VehicleSpecialProperties.d.ts +6 -9
  269. package/build/parser/satisfactory/types/property/special/VehicleSpecialProperties.d.ts.map +1 -1
  270. package/build/parser/satisfactory/types/property/special/VehicleSpecialProperties.js +3 -8
  271. package/build/parser/satisfactory/types/property/special/VehicleSpecialProperties.js.map +1 -1
  272. package/build/parser/satisfactory/types/property/special/runtime-buildable-instance-data-version.d.ts +8 -0
  273. package/build/parser/satisfactory/types/property/special/runtime-buildable-instance-data-version.d.ts.map +1 -0
  274. package/build/parser/satisfactory/types/property/special/runtime-buildable-instance-data-version.js +12 -0
  275. package/build/parser/satisfactory/types/property/special/runtime-buildable-instance-data-version.js.map +1 -0
  276. package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.d.ts +4 -4
  277. package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.d.ts.map +1 -1
  278. package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.js +4 -4
  279. package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.js.map +1 -1
  280. package/build/parser/satisfactory/types/structs/FGDynamicStruct.d.ts +14 -0
  281. package/build/parser/satisfactory/types/structs/FGDynamicStruct.d.ts.map +1 -0
  282. package/build/parser/satisfactory/types/structs/FGDynamicStruct.js +34 -0
  283. package/build/parser/satisfactory/types/structs/FGDynamicStruct.js.map +1 -0
  284. package/build/parser/satisfactory/types/structs/GUID.d.ts +4 -4
  285. package/build/parser/satisfactory/types/structs/GUID.d.ts.map +1 -1
  286. package/build/parser/satisfactory/types/structs/GUID.js.map +1 -1
  287. package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts +4 -4
  288. package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts.map +1 -1
  289. package/build/parser/satisfactory/types/structs/GUIDInfo.js.map +1 -1
  290. package/build/parser/satisfactory/types/structs/MD5Hash.d.ts +4 -4
  291. package/build/parser/satisfactory/types/structs/MD5Hash.d.ts.map +1 -1
  292. package/build/parser/satisfactory/types/structs/MD5Hash.js.map +1 -1
  293. package/build/parser/satisfactory/types/structs/ObjectReference.d.ts +5 -4
  294. package/build/parser/satisfactory/types/structs/ObjectReference.d.ts.map +1 -1
  295. package/build/parser/satisfactory/types/structs/ObjectReference.js +1 -0
  296. package/build/parser/satisfactory/types/structs/ObjectReference.js.map +1 -1
  297. package/build/parser/satisfactory/types/structs/SoftObjectReference.d.ts +4 -4
  298. package/build/parser/satisfactory/types/structs/SoftObjectReference.d.ts.map +1 -1
  299. package/build/parser/satisfactory/types/structs/SoftObjectReference.js.map +1 -1
  300. package/build/parser/satisfactory/types/structs/Transform.d.ts +6 -6
  301. package/build/parser/satisfactory/types/structs/Transform.d.ts.map +1 -1
  302. package/build/parser/satisfactory/types/structs/Transform.js.map +1 -1
  303. package/build/parser/satisfactory/types/structs/VehiclePhysicsData.d.ts +17 -0
  304. package/build/parser/satisfactory/types/structs/VehiclePhysicsData.d.ts.map +1 -0
  305. package/build/parser/satisfactory/types/structs/VehiclePhysicsData.js +26 -0
  306. package/build/parser/satisfactory/types/structs/VehiclePhysicsData.js.map +1 -0
  307. package/build/parser/satisfactory/types/structs/col4.d.ts +6 -6
  308. package/build/parser/satisfactory/types/structs/col4.d.ts.map +1 -1
  309. package/build/parser/satisfactory/types/structs/col4.js.map +1 -1
  310. package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.d.ts +4 -4
  311. package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.d.ts.map +1 -1
  312. package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.js.map +1 -1
  313. package/build/parser/satisfactory/types/structs/vec2.d.ts +6 -6
  314. package/build/parser/satisfactory/types/structs/vec2.d.ts.map +1 -1
  315. package/build/parser/satisfactory/types/structs/vec2.js.map +1 -1
  316. package/build/parser/satisfactory/types/structs/vec3.d.ts +8 -8
  317. package/build/parser/satisfactory/types/structs/vec3.d.ts.map +1 -1
  318. package/build/parser/satisfactory/types/structs/vec3.js.map +1 -1
  319. package/build/parser/satisfactory/types/structs/vec4.d.ts +6 -6
  320. package/build/parser/satisfactory/types/structs/vec4.d.ts.map +1 -1
  321. package/build/parser/satisfactory/types/structs/vec4.js.map +1 -1
  322. package/build/parser/stream/reworked/readable-stream-parser.d.ts +2 -2
  323. package/build/parser/stream/reworked/readable-stream-parser.d.ts.map +1 -1
  324. package/build/parser/stream/reworked/readable-stream-parser.js +62 -20
  325. package/build/parser/stream/reworked/readable-stream-parser.js.map +1 -1
  326. package/build/parser/stream/reworked/save-stream-json-stringifier.js +1 -1
  327. package/build/parser/stream/reworked/save-stream-json-stringifier.js.map +1 -1
  328. package/build/parser/stream/reworked/save-stream-writer.class.d.ts +2 -2
  329. package/build/parser/stream/reworked/save-stream-writer.class.d.ts.map +1 -1
  330. package/build/parser/stream/reworked/save-stream-writer.class.js.map +1 -1
  331. package/docs/assets/highlight.css +4 -4
  332. package/docs/assets/navigation.js +1 -1
  333. package/docs/assets/search.js +1 -1
  334. package/docs/classes/BlueprintConfigReader.html +7 -6
  335. package/docs/classes/BlueprintConfigWriter.html +6 -4
  336. package/docs/classes/BlueprintReader.html +7 -5
  337. package/docs/classes/BlueprintWriter.html +6 -4
  338. package/docs/classes/CompressionLibraryError.html +2 -2
  339. package/docs/classes/CorruptBlueprintError.html +11 -0
  340. package/docs/classes/CorruptSaveError.html +2 -2
  341. package/docs/classes/Parser.html +13 -13
  342. package/docs/classes/ParserError.html +2 -2
  343. package/docs/classes/ReadableStreamParser.html +4 -4
  344. package/docs/classes/SatisfactorySave.html +3 -2
  345. package/docs/classes/SaveComponent.html +6 -5
  346. package/docs/classes/SaveEntity.html +6 -6
  347. package/docs/classes/SaveObject.html +6 -5
  348. package/docs/classes/SaveReader.html +11 -7
  349. package/docs/classes/SaveStreamJsonStringifier.html +2 -2
  350. package/docs/classes/SaveStreamWriter.html +2 -2
  351. package/docs/classes/SaveWriter.html +6 -4
  352. package/docs/classes/TimeoutError.html +2 -2
  353. package/docs/classes/UnimplementedError.html +2 -2
  354. package/docs/classes/UnsupportedVersionError.html +2 -2
  355. package/docs/enums/BlueprintConfigVersion.html +9 -0
  356. package/docs/enums/CompressionAlgorithmCode.html +2 -0
  357. package/docs/enums/FactoryGameCustomVersion.html +33 -0
  358. package/docs/enums/RuntimeBuildableInstanceDataVersion.html +7 -0
  359. package/docs/enums/SaveCustomVersion.html +64 -0
  360. package/docs/enums/SaveHeaderType.html +17 -0
  361. package/docs/functions/AbstractBaseProperty.Create.html +1 -1
  362. package/docs/functions/ArrayProperty.CalcOverhead.html +1 -1
  363. package/docs/functions/ArrayProperty.Parse.html +1 -1
  364. package/docs/functions/ArrayProperty.Serialize.html +1 -1
  365. package/docs/functions/BlueprintConfig.Parse.html +1 -0
  366. package/docs/functions/BlueprintConfig.Serialize.html +1 -0
  367. package/docs/functions/BlueprintHeader.Parse.html +1 -0
  368. package/docs/functions/BlueprintHeader.Serialize.html +1 -0
  369. package/docs/functions/BoolArrayProperty.Parse.html +1 -1
  370. package/docs/functions/BoolArrayProperty.Serialize.html +1 -1
  371. package/docs/functions/BoolProperty.CalcOverhead.html +1 -1
  372. package/docs/functions/BoolProperty.Parse.html +1 -1
  373. package/docs/functions/BoolProperty.ReadValue.html +1 -1
  374. package/docs/functions/BoolProperty.Serialize.html +1 -1
  375. package/docs/functions/BoolProperty.SerializeValue.html +1 -1
  376. package/docs/functions/BuildableSubsystemSpecialProperties.Parse.html +1 -1
  377. package/docs/functions/BuildableSubsystemSpecialProperties.Serialize.html +1 -1
  378. package/docs/functions/BuildableTypeInstance.Parse.html +1 -0
  379. package/docs/functions/BuildableTypeInstance.Serialize.html +1 -0
  380. package/docs/functions/ByteArrayProperty.Parse.html +1 -1
  381. package/docs/functions/ByteArrayProperty.Serialize.html +1 -1
  382. package/docs/functions/ByteProperty.CalcOverhead.html +1 -1
  383. package/docs/functions/ByteProperty.Parse.html +1 -1
  384. package/docs/functions/ByteProperty.ReadValue.html +1 -1
  385. package/docs/functions/ByteProperty.Serialize.html +1 -1
  386. package/docs/functions/ByteProperty.SerializeValue.html +1 -1
  387. package/docs/functions/CircuitSpecialProperties.Parse.html +1 -1
  388. package/docs/functions/CircuitSpecialProperties.Serialize.html +1 -1
  389. package/docs/functions/ConveyorChainActorSpecialProperties.Parse.html +1 -1
  390. package/docs/functions/ConveyorChainActorSpecialProperties.Serialize.html +1 -1
  391. package/docs/functions/ConveyorSpecialProperties.Parse.html +1 -1
  392. package/docs/functions/ConveyorSpecialProperties.Serialize.html +1 -1
  393. package/docs/functions/DoubleArrayProperty.Parse.html +1 -1
  394. package/docs/functions/DoubleArrayProperty.Serialize.html +1 -1
  395. package/docs/functions/DoubleProperty.CalcOverhead.html +1 -1
  396. package/docs/functions/DoubleProperty.Parse.html +1 -1
  397. package/docs/functions/DoubleProperty.ReadValue.html +1 -1
  398. package/docs/functions/DoubleProperty.Serialize.html +1 -1
  399. package/docs/functions/DoubleProperty.SerializeValue.html +1 -1
  400. package/docs/functions/DynamicStructPropertyValue.read.html +1 -1
  401. package/docs/functions/DynamicStructPropertyValue.write.html +1 -1
  402. package/docs/functions/EmptySpecialProperties.Parse.html +1 -1
  403. package/docs/functions/EmptySpecialProperties.Serialize.html +1 -1
  404. package/docs/functions/EnumArrayProperty.Parse.html +1 -1
  405. package/docs/functions/EnumArrayProperty.Serialize.html +1 -1
  406. package/docs/functions/EnumProperty.CalcOverhead.html +1 -1
  407. package/docs/functions/EnumProperty.Parse.html +1 -1
  408. package/docs/functions/EnumProperty.ReadValue.html +1 -1
  409. package/docs/functions/EnumProperty.Serialize.html +1 -1
  410. package/docs/functions/EnumProperty.SerializeValue.html +1 -1
  411. package/docs/functions/FGDynamicStruct.Parse.html +1 -0
  412. package/docs/functions/FGDynamicStruct.Serialize.html +1 -0
  413. package/docs/functions/FICFrameRange.Parse.html +1 -1
  414. package/docs/functions/FICFrameRange.Serialize.html +1 -1
  415. package/docs/functions/FloatArrayProperty.Parse.html +1 -1
  416. package/docs/functions/FloatArrayProperty.Serialize.html +1 -1
  417. package/docs/functions/FloatProperty.CalcOverhead.html +1 -1
  418. package/docs/functions/FloatProperty.Parse.html +1 -1
  419. package/docs/functions/FloatProperty.ReadValue.html +1 -1
  420. package/docs/functions/FloatProperty.Serialize.html +1 -1
  421. package/docs/functions/FloatProperty.SerializeValue.html +1 -1
  422. package/docs/functions/GUID.read.html +1 -1
  423. package/docs/functions/GUID.write.html +1 -1
  424. package/docs/functions/GUIDInfo.read.html +1 -1
  425. package/docs/functions/GUIDInfo.write.html +1 -1
  426. package/docs/functions/Int32ArrayProperty.Parse.html +1 -1
  427. package/docs/functions/Int32ArrayProperty.Serialize.html +1 -1
  428. package/docs/functions/Int32Property.CalcOverhead.html +1 -1
  429. package/docs/functions/Int32Property.Parse.html +1 -1
  430. package/docs/functions/Int32Property.ReadValue.html +1 -1
  431. package/docs/functions/Int32Property.Serialize.html +1 -1
  432. package/docs/functions/Int32Property.SerializeValue.html +1 -1
  433. package/docs/functions/Int32SetProperty.Parse.html +1 -1
  434. package/docs/functions/Int32SetProperty.Serialize.html +1 -1
  435. package/docs/functions/Int64ArrayProperty.Parse.html +1 -1
  436. package/docs/functions/Int64ArrayProperty.Serialize.html +1 -1
  437. package/docs/functions/Int64Property.CalcOverhead.html +1 -1
  438. package/docs/functions/Int64Property.Parse.html +1 -1
  439. package/docs/functions/Int64Property.ReadValue.html +1 -1
  440. package/docs/functions/Int64Property.Serialize.html +1 -1
  441. package/docs/functions/Int64Property.SerializeValue.html +1 -1
  442. package/docs/functions/Int8Property.CalcOverhead.html +1 -1
  443. package/docs/functions/Int8Property.Parse.html +1 -1
  444. package/docs/functions/Int8Property.ReadValue.html +1 -1
  445. package/docs/functions/Int8Property.Serialize.html +1 -1
  446. package/docs/functions/Int8Property.SerializeValue.html +1 -1
  447. package/docs/functions/Level.ReadAllObjectContents.html +1 -1
  448. package/docs/functions/Level.ReadAllObjectHeaders.html +1 -1
  449. package/docs/functions/Level.ReadLevel.html +1 -1
  450. package/docs/functions/Level.ReadNObjectContents.html +1 -1
  451. package/docs/functions/Level.ReadNObjectHeaders.html +1 -1
  452. package/docs/functions/Level.SerializeAllObjectContents.html +1 -1
  453. package/docs/functions/Level.SerializeAllObjectHeaders.html +1 -1
  454. package/docs/functions/Level.SerializeLevel.html +1 -1
  455. package/docs/functions/MD5Hash.read.html +1 -1
  456. package/docs/functions/MD5Hash.write.html +1 -1
  457. package/docs/functions/MapProperty.CalcOverhead.html +1 -1
  458. package/docs/functions/MapProperty.Parse.html +1 -1
  459. package/docs/functions/MapProperty.Serialize.html +1 -1
  460. package/docs/functions/ObjectArrayProperty.Parse.html +1 -1
  461. package/docs/functions/ObjectArrayProperty.Serialize.html +1 -1
  462. package/docs/functions/ObjectProperty.CalcOverhead.html +1 -1
  463. package/docs/functions/ObjectProperty.Parse.html +1 -1
  464. package/docs/functions/ObjectProperty.ReadValue.html +1 -1
  465. package/docs/functions/ObjectProperty.Serialize.html +1 -1
  466. package/docs/functions/ObjectProperty.SerializeValue.html +1 -1
  467. package/docs/functions/ObjectReference.IsEqual.html +1 -0
  468. package/docs/functions/ObjectReference.read.html +1 -1
  469. package/docs/functions/ObjectReference.write.html +1 -1
  470. package/docs/functions/ObjectSetProperty.Parse.html +1 -1
  471. package/docs/functions/ObjectSetProperty.Serialize.html +1 -1
  472. package/docs/functions/ObjectsListSpecialProperties.Parse.html +1 -1
  473. package/docs/functions/ObjectsListSpecialProperties.Serialize.html +1 -1
  474. package/docs/functions/PlayerSpecialProperties.Parse.html +1 -1
  475. package/docs/functions/PlayerSpecialProperties.Serialize.html +1 -1
  476. package/docs/functions/PowerLineSpecialProperties.Parse.html +1 -1
  477. package/docs/functions/PowerLineSpecialProperties.Serialize.html +1 -1
  478. package/docs/functions/PropertiesList.ParseList.html +1 -1
  479. package/docs/functions/PropertiesList.ParseSingleProperty.html +1 -1
  480. package/docs/functions/PropertiesList.SerializeList.html +1 -1
  481. package/docs/functions/PropertiesList.SerializeSingleProperty.html +1 -1
  482. package/docs/functions/SatisfactorySaveHeader.Parse.html +1 -0
  483. package/docs/functions/SatisfactorySaveHeader.Serialize.html +1 -0
  484. package/docs/functions/SaveBodyChunks.CompressDataIntoChunks.html +1 -0
  485. package/docs/functions/SaveBodyChunks.DecompressChunks.html +1 -0
  486. package/docs/functions/SetProperty.CalcOverhead.html +1 -1
  487. package/docs/functions/SetProperty.Parse.html +1 -1
  488. package/docs/functions/SetProperty.Serialize.html +1 -1
  489. package/docs/functions/SoftObjectArrayProperty.Parse.html +1 -1
  490. package/docs/functions/SoftObjectArrayProperty.Serialize.html +1 -1
  491. package/docs/functions/SoftObjectReference.read.html +1 -1
  492. package/docs/functions/SoftObjectReference.write.html +1 -1
  493. package/docs/functions/SpecialDroneActionProperties.Parse.html +1 -1
  494. package/docs/functions/SpecialDroneActionProperties.Serialize.html +1 -1
  495. package/docs/functions/SpecialProperties.ParseClassSpecificSpecialProperties.html +1 -1
  496. package/docs/functions/SpecialProperties.SerializeClassSpecificSpecialProperties.html +1 -1
  497. package/docs/functions/StrArrayProperty.Parse.html +1 -1
  498. package/docs/functions/StrArrayProperty.Serialize.html +1 -1
  499. package/docs/functions/StrProperty.CalcOverhead.html +1 -1
  500. package/docs/functions/StrProperty.Parse.html +1 -1
  501. package/docs/functions/StrProperty.ReadValue.html +1 -1
  502. package/docs/functions/StrProperty.Serialize.html +1 -1
  503. package/docs/functions/StrProperty.SerializeValue.html +1 -1
  504. package/docs/functions/StrSetProperty.Parse.html +1 -1
  505. package/docs/functions/StrSetProperty.Serialize.html +1 -1
  506. package/docs/functions/StructArrayProperty.Parse.html +1 -1
  507. package/docs/functions/StructArrayProperty.Serialize.html +1 -1
  508. package/docs/functions/StructProperty.CalcOverhead.html +1 -1
  509. package/docs/functions/StructProperty.Parse.html +1 -1
  510. package/docs/functions/StructProperty.ParseValue.html +1 -1
  511. package/docs/functions/StructProperty.Serialize.html +1 -1
  512. package/docs/functions/StructProperty.SerializeValue.html +1 -1
  513. package/docs/functions/StructSetProperty.Parse.html +1 -1
  514. package/docs/functions/StructSetProperty.Serialize.html +1 -1
  515. package/docs/functions/TextArrayProperty.Parse.html +1 -1
  516. package/docs/functions/TextArrayProperty.Serialize.html +1 -1
  517. package/docs/functions/TextProperty.CalcOverhead.html +1 -1
  518. package/docs/functions/TextProperty.Parse.html +1 -1
  519. package/docs/functions/TextProperty.ReadValue.html +1 -1
  520. package/docs/functions/TextProperty.Serialize.html +1 -1
  521. package/docs/functions/TextProperty.SerializeValue.html +1 -1
  522. package/docs/functions/Transform.Parse.html +1 -1
  523. package/docs/functions/Transform.ParseF.html +1 -1
  524. package/docs/functions/Transform.Serialize.html +1 -1
  525. package/docs/functions/Transform.SerializeF.html +1 -1
  526. package/docs/functions/Uint32Property.CalcOverhead.html +1 -1
  527. package/docs/functions/Uint32Property.Parse.html +1 -1
  528. package/docs/functions/Uint32Property.ReadValue.html +1 -1
  529. package/docs/functions/Uint32Property.Serialize.html +1 -1
  530. package/docs/functions/Uint32Property.SerializeValue.html +1 -1
  531. package/docs/functions/Uint32SetProperty.Parse.html +1 -1
  532. package/docs/functions/Uint32SetProperty.Serialize.html +1 -1
  533. package/docs/functions/Uint64Property.CalcOverhead.html +1 -1
  534. package/docs/functions/Uint64Property.Parse.html +1 -1
  535. package/docs/functions/Uint64Property.ReadValue.html +1 -1
  536. package/docs/functions/Uint64Property.Serialize.html +1 -1
  537. package/docs/functions/Uint64Property.SerializeValue.html +1 -1
  538. package/docs/functions/Uint8Property.CalcOverhead.html +1 -1
  539. package/docs/functions/Uint8Property.Parse.html +1 -1
  540. package/docs/functions/Uint8Property.ReadValue.html +1 -1
  541. package/docs/functions/Uint8Property.Serialize.html +1 -1
  542. package/docs/functions/Uint8Property.SerializeValue.html +1 -1
  543. package/docs/functions/VehiclePhysicsData.Parse.html +1 -0
  544. package/docs/functions/VehiclePhysicsData.Serialize.html +1 -0
  545. package/docs/functions/VehicleSpecialProperties.Parse.html +1 -1
  546. package/docs/functions/VehicleSpecialProperties.Serialize.html +1 -1
  547. package/docs/functions/col4.ParseBGRA.html +1 -1
  548. package/docs/functions/col4.ParseRGBA.html +1 -1
  549. package/docs/functions/col4.SerializeBGRA.html +1 -1
  550. package/docs/functions/col4.SerializeRGBA.html +1 -1
  551. package/docs/functions/isArrayProperty.html +1 -1
  552. package/docs/functions/isBoolArrayProperty.html +1 -1
  553. package/docs/functions/isBoolProperty.html +1 -1
  554. package/docs/functions/isBuildableSubsystemSpecialProperties.html +1 -1
  555. package/docs/functions/isByteArrayProperty.html +1 -1
  556. package/docs/functions/isByteProperty.html +1 -1
  557. package/docs/functions/isCircuitSpecialProperties.html +1 -1
  558. package/docs/functions/isConveyorChainActorSpecialProperties.html +1 -1
  559. package/docs/functions/isConveyorSpecialProperties.html +1 -1
  560. package/docs/functions/isDoubleArrayProperty.html +1 -1
  561. package/docs/functions/isDoubleProperty.html +1 -1
  562. package/docs/functions/isEmptySpecialProperties.html +1 -1
  563. package/docs/functions/isEnumArrayProperty.html +1 -1
  564. package/docs/functions/isEnumProperty.html +1 -1
  565. package/docs/functions/isFloatArrayProperty.html +1 -1
  566. package/docs/functions/isFloatProperty.html +1 -1
  567. package/docs/functions/isInt32ArrayProperty.html +1 -1
  568. package/docs/functions/isInt32Property.html +1 -1
  569. package/docs/functions/isInt32SetProperty.html +1 -1
  570. package/docs/functions/isInt64ArrayProperty.html +1 -1
  571. package/docs/functions/isInt64Property.html +1 -1
  572. package/docs/functions/isInt8Property.html +1 -1
  573. package/docs/functions/isMapProperty.html +1 -1
  574. package/docs/functions/isObjectArrayProperty.html +1 -1
  575. package/docs/functions/isObjectProperty.html +1 -1
  576. package/docs/functions/isObjectSetProperty.html +1 -1
  577. package/docs/functions/isObjectsListSpecialProperties.html +1 -1
  578. package/docs/functions/isPlayerSpecialProperties.html +1 -1
  579. package/docs/functions/isPowerLineSpecialProperties.html +1 -1
  580. package/docs/functions/isSaveComponent.html +1 -1
  581. package/docs/functions/isSaveEntity.html +1 -1
  582. package/docs/functions/isSetProperty.html +1 -1
  583. package/docs/functions/isSoftObjectArrayProperty.html +1 -1
  584. package/docs/functions/isSpecialDroneActionProperties.html +1 -1
  585. package/docs/functions/isStrArrayProperty.html +1 -1
  586. package/docs/functions/isStrProperty.html +1 -1
  587. package/docs/functions/isStrSetProperty.html +1 -1
  588. package/docs/functions/isStructArrayProperty.html +1 -1
  589. package/docs/functions/isStructProperty.html +1 -1
  590. package/docs/functions/isStructSetProperty.html +1 -1
  591. package/docs/functions/isTextArrayProperty.html +1 -1
  592. package/docs/functions/isTextProperty.html +1 -1
  593. package/docs/functions/isUInt64Property.html +1 -1
  594. package/docs/functions/isUint32Property.html +1 -1
  595. package/docs/functions/isUint32SetProperty.html +1 -1
  596. package/docs/functions/isUint8Property.html +1 -1
  597. package/docs/functions/isVehicleSpecialProperties.html +1 -1
  598. package/docs/functions/vec2.Parse.html +1 -1
  599. package/docs/functions/vec2.ParseF.html +1 -1
  600. package/docs/functions/vec2.Serialize.html +1 -1
  601. package/docs/functions/vec2.SerializeF.html +1 -1
  602. package/docs/functions/vec3.Parse.html +1 -1
  603. package/docs/functions/vec3.ParseF.html +1 -1
  604. package/docs/functions/vec3.ParseInt.html +1 -1
  605. package/docs/functions/vec3.Serialize.html +1 -1
  606. package/docs/functions/vec3.SerializeF.html +1 -1
  607. package/docs/functions/vec3.SerializeInt.html +1 -1
  608. package/docs/functions/vec3.add.html +1 -1
  609. package/docs/functions/vec3.length.html +1 -1
  610. package/docs/functions/vec3.mult.html +1 -1
  611. package/docs/functions/vec3.norm.html +1 -1
  612. package/docs/functions/vec3.sub.html +1 -1
  613. package/docs/functions/vec4.Parse.html +1 -1
  614. package/docs/functions/vec4.ParseF.html +1 -1
  615. package/docs/functions/vec4.Serialize.html +1 -1
  616. package/docs/functions/vec4.SerializeF.html +1 -1
  617. package/docs/hierarchy.html +1 -1
  618. package/docs/index.html +34 -21
  619. package/docs/interfaces/Blueprint.html +2 -2
  620. package/docs/interfaces/BlueprintConfig-1.html +8 -0
  621. package/docs/interfaces/SaveComponentHeader.html +3 -2
  622. package/docs/interfaces/SaveEntityHeader.html +3 -2
  623. package/docs/interfaces/SaveObjectHeader.html +3 -2
  624. package/docs/modules/AbstractBaseProperty.html +1 -1
  625. package/docs/modules/ArrayProperty.html +1 -1
  626. package/docs/modules/BlueprintConfig.html +3 -0
  627. package/docs/modules/BlueprintHeader.html +3 -0
  628. package/docs/modules/BoolArrayProperty.html +1 -1
  629. package/docs/modules/BoolProperty.html +1 -1
  630. package/docs/modules/BuildableSubsystemSpecialProperties.html +1 -1
  631. package/docs/modules/BuildableTypeInstance.html +3 -0
  632. package/docs/modules/ByteArrayProperty.html +1 -1
  633. package/docs/modules/ByteProperty.html +1 -1
  634. package/docs/modules/CircuitSpecialProperties.html +1 -1
  635. package/docs/modules/ConveyorChainActorSpecialProperties.html +1 -1
  636. package/docs/modules/ConveyorSpecialProperties.html +1 -1
  637. package/docs/modules/DoubleArrayProperty.html +1 -1
  638. package/docs/modules/DoubleProperty.html +1 -1
  639. package/docs/modules/DynamicStructPropertyValue.html +1 -1
  640. package/docs/modules/EmptySpecialProperties.html +1 -1
  641. package/docs/modules/EnumArrayProperty.html +1 -1
  642. package/docs/modules/EnumProperty.html +1 -1
  643. package/docs/modules/FGDynamicStruct.html +3 -0
  644. package/docs/modules/FICFrameRange.html +1 -1
  645. package/docs/modules/FloatArrayProperty.html +1 -1
  646. package/docs/modules/FloatProperty.html +1 -1
  647. package/docs/modules/GUID.html +1 -1
  648. package/docs/modules/GUIDInfo.html +1 -1
  649. package/docs/modules/Int32ArrayProperty.html +1 -1
  650. package/docs/modules/Int32Property.html +1 -1
  651. package/docs/modules/Int32SetProperty.html +1 -1
  652. package/docs/modules/Int64ArrayProperty.html +1 -1
  653. package/docs/modules/Int64Property.html +1 -1
  654. package/docs/modules/Int8Property.html +1 -1
  655. package/docs/modules/Level.html +1 -1
  656. package/docs/modules/MD5Hash.html +1 -1
  657. package/docs/modules/MapProperty.html +1 -1
  658. package/docs/modules/ObjectArrayProperty.html +1 -1
  659. package/docs/modules/ObjectProperty.html +1 -1
  660. package/docs/modules/ObjectReference.html +2 -1
  661. package/docs/modules/ObjectSetProperty.html +1 -1
  662. package/docs/modules/ObjectsListSpecialProperties.html +1 -1
  663. package/docs/modules/PlayerSpecialProperties.html +1 -1
  664. package/docs/modules/PowerLineSpecialProperties.html +1 -1
  665. package/docs/modules/PropertiesList.html +1 -1
  666. package/docs/modules/SatisfactorySaveHeader.html +3 -0
  667. package/docs/modules/SaveBodyChunks.html +5 -0
  668. package/docs/modules/SetProperty.html +1 -1
  669. package/docs/modules/SoftObjectArrayProperty.html +1 -1
  670. package/docs/modules/SoftObjectReference.html +1 -1
  671. package/docs/modules/SpecialDroneActionProperties.html +1 -1
  672. package/docs/modules/SpecialProperties.html +1 -1
  673. package/docs/modules/StrArrayProperty.html +1 -1
  674. package/docs/modules/StrProperty.html +1 -1
  675. package/docs/modules/StrSetProperty.html +1 -1
  676. package/docs/modules/StructArrayProperty.html +1 -1
  677. package/docs/modules/StructProperty.html +1 -1
  678. package/docs/modules/StructSetProperty.html +1 -1
  679. package/docs/modules/TextArrayProperty.html +1 -1
  680. package/docs/modules/TextProperty.html +1 -1
  681. package/docs/modules/Transform.html +1 -1
  682. package/docs/modules/Uint32Property.html +1 -1
  683. package/docs/modules/Uint32SetProperty.html +1 -1
  684. package/docs/modules/Uint64Property.html +1 -1
  685. package/docs/modules/Uint8Property.html +1 -1
  686. package/docs/modules/VehiclePhysicsData.html +3 -0
  687. package/docs/modules/VehicleSpecialProperties.html +1 -1
  688. package/docs/modules/col4.html +1 -1
  689. package/docs/modules/vec2.html +1 -1
  690. package/docs/modules/vec3.html +1 -1
  691. package/docs/modules/vec4.html +1 -1
  692. package/docs/modules.html +31 -7
  693. package/docs/types/AbstractBaseProperty-1.html +1 -1
  694. package/docs/types/ArrayProperty.AvailableArrayPropertyTypes.html +1 -1
  695. package/docs/types/ArrayPropertyStructValueFields.html +1 -1
  696. package/docs/types/BasicMultipleStructPropertyValue.html +1 -1
  697. package/docs/types/BasicStructPropertyValue.html +1 -1
  698. package/docs/types/BlueprintHeader-1.html +1 -0
  699. package/docs/types/BoolArrayProperty-1.html +1 -1
  700. package/docs/types/BoolProperty-1.html +1 -1
  701. package/docs/types/BoxStructPropertyValue.html +1 -1
  702. package/docs/types/BuildableSubsystemSpecialProperties-1.html +1 -1
  703. package/docs/types/BuildableTypeInstance-1.html +1 -0
  704. package/docs/types/ByteArray4.html +1 -0
  705. package/docs/types/ByteArrayProperty-1.html +1 -1
  706. package/docs/types/ByteProperty-1.html +1 -1
  707. package/docs/types/BytePropertyValue.html +1 -1
  708. package/docs/types/ChunkCompressionInfo.html +1 -0
  709. package/docs/types/ChunkSummary.html +1 -0
  710. package/docs/types/CircuitSpecialProperties-1.html +1 -1
  711. package/docs/types/ClientIdentityInfo.html +1 -1
  712. package/docs/types/ConveyorChainActorSpecialProperties-1.html +1 -1
  713. package/docs/types/ConveyorChainSegmentSpecialProperties.html +1 -1
  714. package/docs/types/ConveyorItemSpecialProperties.html +1 -1
  715. package/docs/types/ConveyorSpecialProperties-1.html +1 -1
  716. package/docs/types/DoubleArrayProperty-1.html +1 -1
  717. package/docs/types/DoubleProperty-1.html +1 -1
  718. package/docs/types/DynamicStructPropertyValue-1.html +1 -1
  719. package/docs/types/EmptySpecialProperties-1.html +1 -1
  720. package/docs/types/EnumArrayProperty-1.html +1 -1
  721. package/docs/types/EnumProperty-1.html +1 -1
  722. package/docs/types/FGDynamicStruct-1.html +1 -0
  723. package/docs/types/FICFrameRange-1.html +1 -1
  724. package/docs/types/FICFrameRangeStructPropertyValue.html +1 -1
  725. package/docs/types/FloatArrayProperty-1.html +1 -1
  726. package/docs/types/FloatProperty-1.html +1 -1
  727. package/docs/types/GENERIC_MAP_KEY_TYPE.html +1 -1
  728. package/docs/types/GENERIC_MAP_VALUE_TYPE.html +1 -1
  729. package/docs/types/GENERIC_STRUCT_PROPERTY_VALUE.html +1 -1
  730. package/docs/types/GUID-1.html +1 -1
  731. package/docs/types/GUIDInfo-1.html +1 -1
  732. package/docs/types/Grids.html +1 -0
  733. package/docs/types/Int32ArrayProperty-1.html +1 -1
  734. package/docs/types/Int32Property-1.html +1 -1
  735. package/docs/types/Int32SetProperty-1.html +1 -1
  736. package/docs/types/Int64ArrayProperty-1.html +1 -1
  737. package/docs/types/Int64Property-1.html +1 -1
  738. package/docs/types/Int8Property-1.html +1 -1
  739. package/docs/types/InventoryItemStructPropertyValue.html +1 -1
  740. package/docs/types/Level-1.html +3 -1
  741. package/docs/types/Levels.html +1 -0
  742. package/docs/types/MAP_STRUCT_KEY_PROXY.html +1 -1
  743. package/docs/types/MD5Hash-1.html +1 -1
  744. package/docs/types/MapProperty-1.html +1 -1
  745. package/docs/types/ModData.html +1 -0
  746. package/docs/types/ObjectArrayProperty-1.html +1 -1
  747. package/docs/types/ObjectProperty-1.html +1 -1
  748. package/docs/types/ObjectReference-1.html +1 -1
  749. package/docs/types/ObjectSetProperty-1.html +1 -1
  750. package/docs/types/ObjectsListSpecialProperties-1.html +1 -1
  751. package/docs/types/PlayerSpecialProperties-1.html +1 -1
  752. package/docs/types/PowerLineSpecialProperties-1.html +1 -1
  753. package/docs/types/PropertiesMap.html +1 -1
  754. package/docs/types/RailroadTrackPositionStructPropertyValue.html +1 -1
  755. package/docs/types/RoughSaveVersion.html +1 -1
  756. package/docs/types/SatisfactoryModMetadata.html +1 -0
  757. package/docs/types/SatisfactorySaveHeader-1.html +1 -0
  758. package/docs/types/SaveBodyChunks-1.html +1 -0
  759. package/docs/types/SaveBodyValidation.html +1 -0
  760. package/docs/types/SetProperty.AvailableSetPropertyTypes.html +1 -1
  761. package/docs/types/SoftObjectArrayProperty-1.html +1 -1
  762. package/docs/types/SoftObjectReference-1.html +1 -1
  763. package/docs/types/SpecialDroneAction.html +1 -1
  764. package/docs/types/SpecialDroneActionProperties-1.html +1 -1
  765. package/docs/types/SpecialProperties.AvailableSpecialPropertiesTypes.html +1 -1
  766. package/docs/types/StrArrayProperty-1.html +1 -1
  767. package/docs/types/StrProperty-1.html +1 -1
  768. package/docs/types/StrSetProperty-1.html +1 -1
  769. package/docs/types/StructArrayProperty-1.html +1 -1
  770. package/docs/types/StructProperty-1.html +1 -1
  771. package/docs/types/StructSetProperty-1.html +1 -1
  772. package/docs/types/TextArrayProperty-1.html +1 -1
  773. package/docs/types/TextProperty-1.html +1 -1
  774. package/docs/types/TextPropertyValue.html +1 -1
  775. package/docs/types/Transform-1.html +1 -1
  776. package/docs/types/Uint32Property-1.html +1 -1
  777. package/docs/types/Uint32SetProperty-1.html +1 -1
  778. package/docs/types/Uint64Property-1.html +1 -1
  779. package/docs/types/Uint8Property-1.html +1 -1
  780. package/docs/types/VehiclePhysicsData-1.html +1 -0
  781. package/docs/types/VehicleSpecialProperties-1.html +1 -1
  782. package/docs/types/col4-1.html +1 -1
  783. package/docs/types/vec2-1.html +1 -1
  784. package/docs/types/vec3-1.html +1 -1
  785. package/docs/types/vec4-1.html +1 -1
  786. package/docs/variables/DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE.html +1 -0
  787. package/docs/variables/EDIT.html +1 -1
  788. package/docs/variables/SaveBodyChunks.HEADER_V1.html +1 -0
  789. package/docs/variables/SaveBodyChunks.HEADER_V2.html +1 -0
  790. package/package.json +3 -1
  791. package/docs/interfaces/BlueprintConfig.html +0 -6
  792. package/docs/interfaces/ModData.html +0 -4
  793. package/docs/interfaces/SatisfactoryModMetadata.html +0 -4
  794. package/docs/interfaces/SatisfactorySaveHeader.html +0 -18
  795. package/docs/types/BlueprintHeader.html +0 -1
  796. package/docs/types/BuildableTypeInstance.html +0 -1
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlueprintConfig = void 0;
4
+ const col4_1 = require("../types/structs/col4");
5
+ const blueprint_config_version_1 = require("./blueprint-config-version");
6
+ var BlueprintConfig;
7
+ (function (BlueprintConfig) {
8
+ BlueprintConfig.Parse = (reader) => {
9
+ const configVersion = reader.readInt32();
10
+ const description = reader.readString();
11
+ const iconID = reader.readInt32();
12
+ const color = col4_1.col4.ParseRGBA(reader);
13
+ reader.context.blueprintConfigVersion = configVersion;
14
+ const config = {
15
+ configVersion,
16
+ description,
17
+ color,
18
+ iconID,
19
+ };
20
+ if (configVersion >= blueprint_config_version_1.BlueprintConfigVersion.AddedIconLibraryPath) {
21
+ config.referencedIconLibrary = reader.readString();
22
+ config.iconLibraryType = reader.readString();
23
+ }
24
+ if (configVersion >= blueprint_config_version_1.BlueprintConfigVersion.AddedLastEditedBy) {
25
+ const count = reader.readInt32();
26
+ config.lastEditedBy = [];
27
+ for (let i = 0; i < count; i++) {
28
+ config.lastEditedBy?.push({
29
+ accountId: reader.readString(),
30
+ displayName: reader.readString(),
31
+ platformName: reader.readString()
32
+ });
33
+ }
34
+ }
35
+ return config;
36
+ };
37
+ BlueprintConfig.Serialize = (writer, config) => {
38
+ writer.writeInt32(config.configVersion);
39
+ writer.writeString(config.description);
40
+ writer.writeInt32(config.iconID);
41
+ col4_1.col4.SerializeRGBA(writer, config.color);
42
+ if (config.configVersion >= blueprint_config_version_1.BlueprintConfigVersion.AddedIconLibraryPath) {
43
+ writer.writeString(config.referencedIconLibrary ?? '');
44
+ writer.writeString(config.iconLibraryType ?? '');
45
+ }
46
+ if (config.configVersion >= blueprint_config_version_1.BlueprintConfigVersion.AddedLastEditedBy) {
47
+ writer.writeInt32(config.lastEditedBy.length);
48
+ for (const account of config.lastEditedBy) {
49
+ writer.writeString(account.accountId);
50
+ writer.writeString(account.displayName);
51
+ writer.writeString(account.platformName);
52
+ }
53
+ }
54
+ };
55
+ })(BlueprintConfig || (exports.BlueprintConfig = BlueprintConfig = {}));
56
+ //# sourceMappingURL=blueprint-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint-config.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-config.ts"],"names":[],"mappings":";;;AAEA,gDAA6C;AAC7C,yEAAoE;AAkBpE,IAAiB,eAAe,CAuD/B;AAvDD,WAAiB,eAAe;IACf,qBAAK,GAAG,CAAC,MAAqB,EAAE,EAAE;QAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,WAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,sBAAsB,GAAG,aAAa,CAAC;QAEtD,MAAM,MAAM,GAAoB;YAC5B,aAAa;YACb,WAAW;YACX,KAAK;YACL,MAAM;SACT,CAAC;QAEF,IAAI,aAAa,IAAI,iDAAsB,CAAC,oBAAoB,EAAE,CAAC;YAC/D,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,aAAa,IAAI,iDAAsB,CAAC,iBAAiB,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC;oBACtB,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;oBAC9B,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE;oBAChC,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE;iBACpC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAEW,yBAAS,GAAG,CAAC,MAAqB,EAAE,MAAuB,EAAE,EAAE;QACxE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,WAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,aAAa,IAAI,iDAAsB,CAAC,oBAAoB,EAAE,CAAC;YACtE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,IAAI,iDAAsB,CAAC,iBAAiB,EAAE,CAAC;YACnE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,YAAa,EAAE,CAAC;gBACzC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC,CAAA;AACL,CAAC,EAvDgB,eAAe,+BAAf,eAAe,QAuD/B","sourcesContent":["import { ContextReader } from '../../context/context-reader';\nimport { ContextWriter } from '../../context/context-writer';\nimport { col4 } from '../types/structs/col4';\nimport { BlueprintConfigVersion } from './blueprint-config-version';\n\n\n/** @public */\nexport interface BlueprintConfig {\n configVersion: number;\n description: string;\n color: col4;\n iconID: number;\n referencedIconLibrary?: string;\n iconLibraryType?: string;\n lastEditedBy?: {\n accountId: string;\n displayName: string;\n platformName: string;\n }[];\n}\n\nexport namespace BlueprintConfig {\n export const Parse = (reader: ContextReader) => {\n const configVersion = reader.readInt32();\n const description = reader.readString();\n const iconID = reader.readInt32();\n const color = col4.ParseRGBA(reader);\n reader.context.blueprintConfigVersion = configVersion;\n\n const config: BlueprintConfig = {\n configVersion,\n description,\n color,\n iconID,\n };\n\n if (configVersion >= BlueprintConfigVersion.AddedIconLibraryPath) {\n config.referencedIconLibrary = reader.readString();\n config.iconLibraryType = reader.readString();\n }\n\n if (configVersion >= BlueprintConfigVersion.AddedLastEditedBy) {\n const count = reader.readInt32();\n config.lastEditedBy = [];\n for (let i = 0; i < count; i++) {\n config.lastEditedBy?.push({\n accountId: reader.readString(),\n displayName: reader.readString(),\n platformName: reader.readString()\n });\n }\n }\n\n return config;\n };\n\n export const Serialize = (writer: ContextWriter, config: BlueprintConfig) => {\n writer.writeInt32(config.configVersion);\n writer.writeString(config.description);\n writer.writeInt32(config.iconID);\n col4.SerializeRGBA(writer, config.color);\n\n if (config.configVersion >= BlueprintConfigVersion.AddedIconLibraryPath) {\n writer.writeString(config.referencedIconLibrary ?? '');\n writer.writeString(config.iconLibraryType ?? '');\n }\n\n if (config.configVersion >= BlueprintConfigVersion.AddedLastEditedBy) {\n writer.writeInt32(config.lastEditedBy!.length);\n for (const account of config.lastEditedBy!) {\n writer.writeString(account.accountId);\n writer.writeString(account.displayName);\n writer.writeString(account.platformName);\n }\n }\n }\n}"]}
@@ -0,0 +1,24 @@
1
+ import { ContextReader } from '../../context/context-reader';
2
+ import { ContextWriter } from '../../context/context-writer';
3
+ import { ObjectReference } from '../types/structs/ObjectReference';
4
+ import { vec3 } from '../types/structs/vec3';
5
+ export type BlueprintHeader = {
6
+ headerVersion: number;
7
+ saveVersion: number;
8
+ buildVersion: number;
9
+ designerDimension?: vec3;
10
+ itemCosts: [ObjectReference, number][];
11
+ recipeReferences: ObjectReference[];
12
+ };
13
+ export declare namespace BlueprintHeader {
14
+ const Parse: (reader: ContextReader) => {
15
+ headerVersion: number;
16
+ saveVersion: number;
17
+ buildVersion: number;
18
+ designerDimension: vec3;
19
+ recipeReferences: ObjectReference[];
20
+ itemCosts: [ObjectReference, number][];
21
+ };
22
+ const Serialize: (writer: ContextWriter, header: BlueprintHeader) => void;
23
+ }
24
+ //# sourceMappingURL=blueprint-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint-header.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,MAAM,MAAM,eAAe,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;IACvC,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACvC,CAAA;AAED,yBAAiB,eAAe,CAAC;IAEtB,MAAM,KAAK,WAAY,aAAa;;;;;;;KAwC1C,CAAA;IAEM,MAAM,SAAS,WAAY,aAAa,UAAU,eAAe,SA4BvE,CAAA;CACJ"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlueprintHeader = void 0;
4
+ const ObjectReference_1 = require("../types/structs/ObjectReference");
5
+ const vec3_1 = require("../types/structs/vec3");
6
+ var BlueprintHeader;
7
+ (function (BlueprintHeader) {
8
+ BlueprintHeader.Parse = (reader) => {
9
+ const headerVersion = reader.readInt32();
10
+ const saveVersion = reader.readInt32();
11
+ const buildVersion = reader.readInt32();
12
+ const dimensions = vec3_1.vec3.ParseInt(reader);
13
+ reader.context.headerVersion = headerVersion;
14
+ reader.context.saveVersion = saveVersion;
15
+ reader.context.buildVersion = buildVersion;
16
+ let itemTypeCount = reader.readInt32();
17
+ const itemCosts = new Array(itemTypeCount).fill([{ levelName: '', pathName: '' }, 0]);
18
+ for (let i = 0; i < itemTypeCount; i++) {
19
+ let itemPathName = ObjectReference_1.ObjectReference.read(reader);
20
+ let itemCount = reader.readInt32();
21
+ itemCosts[i] = [itemPathName, itemCount];
22
+ }
23
+ let recipeCount = reader.readInt32();
24
+ const recipeRefs = new Array(recipeCount).fill({ levelName: '', pathName: '' });
25
+ for (let i = 0; i < recipeCount; i++) {
26
+ const recipeName = ObjectReference_1.ObjectReference.read(reader);
27
+ recipeRefs[i] = recipeName;
28
+ }
29
+ return {
30
+ headerVersion,
31
+ saveVersion,
32
+ buildVersion,
33
+ designerDimension: dimensions,
34
+ recipeReferences: recipeRefs,
35
+ itemCosts
36
+ };
37
+ };
38
+ BlueprintHeader.Serialize = (writer, header) => {
39
+ writer.writeInt32(header.headerVersion);
40
+ writer.writeInt32(header.saveVersion);
41
+ writer.writeInt32(header.buildVersion);
42
+ let dimensions = [
43
+ header.designerDimension?.x ?? 4,
44
+ header.designerDimension?.y ?? 4,
45
+ header.designerDimension?.z ?? 4,
46
+ ].map(dim => dim < 4 ? 4 : dim);
47
+ writer.writeInt32(dimensions[0]);
48
+ writer.writeInt32(dimensions[1]);
49
+ writer.writeInt32(dimensions[2]);
50
+ writer.writeInt32(header.itemCosts.length);
51
+ for (const itemCost of header.itemCosts) {
52
+ ObjectReference_1.ObjectReference.write(writer, itemCost[0]);
53
+ writer.writeInt32(itemCost[1]);
54
+ }
55
+ writer.writeInt32(header.recipeReferences.length);
56
+ for (const recipeReference of header.recipeReferences) {
57
+ ObjectReference_1.ObjectReference.write(writer, recipeReference);
58
+ }
59
+ };
60
+ })(BlueprintHeader || (exports.BlueprintHeader = BlueprintHeader = {}));
61
+ //# sourceMappingURL=blueprint-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint-header.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-header.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextReader } from '../../context/context-reader';\nimport { ContextWriter } from '../../context/context-writer';\nimport { ObjectReference } from '../types/structs/ObjectReference';\nimport { vec3 } from '../types/structs/vec3';\n\n/** @public */\nexport type BlueprintHeader = {\n headerVersion: number,\n saveVersion: number,\n buildVersion: number,\n designerDimension?: vec3;\n itemCosts: [ObjectReference, number][];\n recipeReferences: ObjectReference[];\n}\n\nexport namespace BlueprintHeader {\n\n export const Parse = (reader: ContextReader) => {\n\n const headerVersion = reader.readInt32();\n const saveVersion = reader.readInt32();\n const buildVersion = reader.readInt32();\n const dimensions = vec3.ParseInt(reader); // e.g. 4,4,4 - dimensions in foundation size\n\n // set context\n reader.context.headerVersion = headerVersion;\n reader.context.saveVersion = saveVersion;\n reader.context.buildVersion = buildVersion;\n\n\n // list of item costs.\n let itemTypeCount = reader.readInt32();\n const itemCosts = new Array<[ObjectReference, number]>(itemTypeCount).fill([{ levelName: '', pathName: '' }, 0]);\n for (let i = 0; i < itemTypeCount; i++) {\n let itemPathName = ObjectReference.read(reader);\n let itemCount = reader.readInt32();\n\n itemCosts[i] = [itemPathName, itemCount];\n }\n\n // list of recipes\n let recipeCount = reader.readInt32();\n const recipeRefs = new Array<ObjectReference>(recipeCount).fill({ levelName: '', pathName: '' });\n for (let i = 0; i < recipeCount; i++) {\n const recipeName = ObjectReference.read(reader);\n recipeRefs[i] = recipeName;\n }\n\n return {\n headerVersion,\n saveVersion,\n buildVersion,\n designerDimension: dimensions,\n recipeReferences: recipeRefs,\n itemCosts\n } satisfies BlueprintHeader;\n\n }\n\n export const Serialize = (writer: ContextWriter, header: BlueprintHeader) => {\n\n writer.writeInt32(header.headerVersion);\n writer.writeInt32(header.saveVersion);\n writer.writeInt32(header.buildVersion);\n\n // we assume a minimum of 4 foundations dimensions, standard blueprint designer.\n let dimensions = [\n header.designerDimension?.x ?? 4,\n header.designerDimension?.y ?? 4,\n header.designerDimension?.z ?? 4,\n ].map(dim => dim < 4 ? 4 : dim);\n writer.writeInt32(dimensions[0]);\n writer.writeInt32(dimensions[1]);\n writer.writeInt32(dimensions[2]);\n\n // list of item costs.\n writer.writeInt32(header.itemCosts.length);\n for (const itemCost of header.itemCosts) {\n ObjectReference.write(writer, itemCost[0])\n writer.writeInt32(itemCost[1]);\n }\n\n // list of recipes.\n writer.writeInt32(header.recipeReferences.length);\n for (const recipeReference of header.recipeReferences) {\n ObjectReference.write(writer, recipeReference);\n }\n }\n}"]}
@@ -1,21 +1,18 @@
1
- import { BinaryReadable } from "../../byte/binary-readable.interface";
2
- import { ByteReader } from "../../byte/byte-reader.class";
3
- import { ChunkCompressionInfo } from "../../file.types";
1
+ import { ContextReader } from '../../context/context-reader';
2
+ import { ChunkCompressionInfo } from '../save/save-body-chunks';
4
3
  import { SaveComponent } from "../types/objects/SaveComponent";
5
4
  import { SaveEntity } from "../types/objects/SaveEntity";
6
- import { BlueprintConfig, BlueprintHeader } from "./blueprint.types";
7
- export declare class BlueprintReader extends ByteReader {
5
+ export declare class BlueprintReader extends ContextReader {
8
6
  compressionInfo: ChunkCompressionInfo;
9
- constructor(bluePrintBuffer: ArrayBuffer);
10
- static ReadHeader(reader: BinaryReadable): BlueprintHeader;
11
- inflateChunks(): any;
12
- static ParseObjects(reader: ByteReader): (SaveEntity | SaveComponent)[];
7
+ constructor(bluePrintBuffer: ArrayBufferLike);
8
+ inflateChunks(): {
9
+ inflatedData: ArrayBufferLike;
10
+ };
11
+ static ParseObjects(reader: ContextReader): (SaveEntity | SaveComponent)[];
13
12
  private static ReadBlueprintObjectContents;
14
13
  }
15
- export declare class BlueprintConfigReader extends ByteReader {
16
- bluePrintConfigBuffer: ArrayBuffer;
17
- constructor(bluePrintConfigBuffer: ArrayBuffer);
18
- parse: () => BlueprintConfig;
19
- static ParseConfig(reader: BinaryReadable): BlueprintConfig;
14
+ export declare class BlueprintConfigReader extends ContextReader {
15
+ bluePrintConfigBuffer: ArrayBufferLike;
16
+ constructor(bluePrintConfigBuffer: ArrayBufferLike);
20
17
  }
21
18
  //# sourceMappingURL=blueprint-reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint-reader.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-reader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAmB,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAKvE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAErE,qBAAa,eAAgB,SAAQ,UAAU;IAEvC,eAAe,EAAE,oBAAoB,CAI1C;gBAEU,eAAe,EAAE,WAAW;WAI1B,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe;IA+B1D,aAAa,IAAI,GAAG;WA6Eb,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE;IAmB9E,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAmB1C;AAED,qBAAa,qBAAsB,SAAQ,UAAU;IAEjC,qBAAqB,EAAE,WAAW;gBAAlC,qBAAqB,EAAE,WAAW;IAI9C,KAAK,QAAO,eAAe,CAA4C;WAEhE,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe;CAoBlE"}
1
+ {"version":3,"file":"blueprint-reader.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAkB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAmB,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAIvE,qBAAa,eAAgB,SAAQ,aAAa;IAE1C,eAAe,EAAE,oBAAoB,CAI1C;gBAEU,eAAe,EAAE,eAAe;IAIrC,aAAa,IAAI;QAAE,YAAY,EAAE,eAAe,CAAA;KAAE;WAqB3C,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE;IAiBjF,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAmB1C;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IAEpC,qBAAqB,EAAE,eAAe;gBAAtC,qBAAqB,EAAE,eAAe;CAGzD"}
@@ -1,105 +1,38 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.BlueprintConfigReader = exports.BlueprintReader = void 0;
7
- const pako_1 = __importDefault(require("pako"));
8
4
  const alignment_enum_1 = require("../../byte/alignment.enum");
9
- const byte_reader_class_1 = require("../../byte/byte-reader.class");
5
+ const context_reader_1 = require("../../context/context-reader");
10
6
  const parser_error_1 = require("../../error/parser.error");
11
7
  const level_class_1 = require("../save/level.class");
12
- const save_reader_1 = require("../save/save-reader");
8
+ const save_body_chunks_1 = require("../save/save-body-chunks");
13
9
  const SaveComponent_1 = require("../types/objects/SaveComponent");
14
10
  const SaveEntity_1 = require("../types/objects/SaveEntity");
15
- const col4_1 = require("../types/structs/col4");
16
- const ObjectReference_1 = require("../types/structs/ObjectReference");
17
- const vec3_1 = require("../types/structs/vec3");
18
- class BlueprintReader extends byte_reader_class_1.ByteReader {
11
+ class BlueprintReader extends context_reader_1.ContextReader {
19
12
  constructor(bluePrintBuffer) {
20
13
  super(bluePrintBuffer, alignment_enum_1.Alignment.LITTLE_ENDIAN);
21
14
  this.compressionInfo = {
22
15
  packageFileTag: 0,
23
16
  maxUncompressedChunkContentSize: 0,
24
- chunkHeaderSize: save_reader_1.DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE
25
- };
26
- }
27
- static ReadHeader(reader) {
28
- const alwaysTwo = reader.readBytes(4);
29
- const objectVersion = reader.readBytes(2 * 4);
30
- const dimensions = vec3_1.vec3.ParseInt(reader);
31
- let itemTypeCount = reader.readInt32();
32
- const itemCosts = new Array(itemTypeCount).fill([{ levelName: '', pathName: '' }, 0]);
33
- for (let i = 0; i < itemTypeCount; i++) {
34
- let itemPathName = ObjectReference_1.ObjectReference.read(reader);
35
- let itemCount = reader.readInt32();
36
- itemCosts[i] = [itemPathName, itemCount];
37
- }
38
- let recipeCount = reader.readInt32();
39
- const recipeRefs = new Array(recipeCount).fill({ levelName: '', pathName: '' });
40
- for (let i = 0; i < recipeCount; i++) {
41
- const recipeName = ObjectReference_1.ObjectReference.read(reader);
42
- recipeRefs[i] = recipeName;
43
- }
44
- return {
45
- designerDimension: dimensions,
46
- recipeReferences: recipeRefs,
47
- itemCosts
17
+ chunkHeaderVersion: save_body_chunks_1.SaveBodyChunks.HEADER_V2
48
18
  };
49
19
  }
50
20
  inflateChunks() {
51
- this.fileBuffer = this.fileBuffer.slice(this.currentByte);
52
- this.handledByte = 0;
21
+ const result = save_body_chunks_1.SaveBodyChunks.DecompressChunks(this.fileBuffer.slice(this.currentByte), this.alignment);
22
+ this.compressionInfo = result.compressionInfo;
53
23
  this.currentByte = 0;
24
+ this.fileBuffer = result.uncompressedData.buffer;
54
25
  this.maxByte = this.fileBuffer.byteLength;
55
- let currentChunks = [];
56
- let totalUncompressedBodySize = 0;
57
- while (this.handledByte < this.maxByte) {
58
- let chunkHeader = new DataView(this.fileBuffer.slice(0, this.compressionInfo.chunkHeaderSize));
59
- this.currentByte = this.compressionInfo.chunkHeaderSize;
60
- this.handledByte += this.compressionInfo.chunkHeaderSize;
61
- if (this.compressionInfo.packageFileTag <= 0) {
62
- this.compressionInfo.packageFileTag = chunkHeader.getUint32(0, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
63
- }
64
- if (this.compressionInfo.maxUncompressedChunkContentSize <= 0) {
65
- this.compressionInfo.maxUncompressedChunkContentSize = chunkHeader.getInt32(8, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
66
- }
67
- const chunkCompressedLength = chunkHeader.getInt32(33, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
68
- const chunkUncompressedLength = chunkHeader.getInt32(25, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
69
- totalUncompressedBodySize += chunkUncompressedLength;
70
- const currentChunkSize = chunkCompressedLength;
71
- let currentChunk = this.fileBuffer.slice(this.currentByte, this.currentByte + currentChunkSize);
72
- this.handledByte += currentChunkSize;
73
- this.currentByte += currentChunkSize;
74
- this.fileBuffer = this.fileBuffer.slice(this.currentByte);
75
- this.currentByte = 0;
76
- try {
77
- let currentInflatedChunk = null;
78
- currentInflatedChunk = pako_1.default.inflate(currentChunk);
79
- currentChunks.push(currentInflatedChunk);
80
- }
81
- catch (err) {
82
- throw new parser_error_1.ParserError('ParserError', 'An error occurred while calling pako inflate.' + err);
83
- }
26
+ this.bufferView = new DataView(this.fileBuffer);
27
+ const totalBodyRestSize = this.readInt32();
28
+ if (result.uncompressedData.byteLength !== totalBodyRestSize + 4) {
29
+ throw new parser_error_1.CorruptBlueprintError(`Possibly corrupt. Indicated size of total blueprint body (${totalBodyRestSize + 4}) does not match the uncompressed real size of ${result.uncompressedData.byteLength}.`);
84
30
  }
85
- let newChunkLength = currentChunks.map(cc => cc.length).reduce((prev, cur) => prev + cur);
86
- const bigWholeChunk = new Uint8Array(newChunkLength);
87
- let currentLength = 0;
88
- for (let i = 0; i < currentChunks.length; i++) {
89
- bigWholeChunk.set(currentChunks[i], currentLength);
90
- currentLength += currentChunks[i].length;
91
- }
92
- this.currentByte = 0;
93
- this.maxByte = bigWholeChunk.buffer.byteLength;
94
- this.bufferView = new DataView(bigWholeChunk.buffer);
95
31
  return {
96
- newChunkLength,
97
- numChunks: currentChunks.length,
98
- inflatedData: bigWholeChunk
32
+ inflatedData: this.fileBuffer
99
33
  };
100
34
  }
101
35
  static ParseObjects(reader) {
102
- const totalBodyRestSize = reader.readInt32();
103
36
  const objectHeadersBinarySize = reader.readInt32();
104
37
  let objects = [];
105
38
  level_class_1.Level.ReadAllObjectHeaders(reader, objects);
@@ -117,36 +50,19 @@ class BlueprintReader extends byte_reader_class_1.ByteReader {
117
50
  }
118
51
  const obj = objectsList[i];
119
52
  if ((0, SaveEntity_1.isSaveEntity)(obj)) {
120
- SaveEntity_1.SaveEntity.ParseData(obj, len, reader, buildVersion, obj.typePath);
53
+ SaveEntity_1.SaveEntity.ParseData(obj, len, reader, obj.typePath);
121
54
  }
122
55
  else if ((0, SaveComponent_1.isSaveComponent)(obj)) {
123
- SaveComponent_1.SaveComponent.ParseData(obj, len, reader, buildVersion, obj.typePath);
56
+ SaveComponent_1.SaveComponent.ParseData(obj, len, reader, obj.typePath);
124
57
  }
125
58
  }
126
59
  }
127
60
  }
128
61
  exports.BlueprintReader = BlueprintReader;
129
- class BlueprintConfigReader extends byte_reader_class_1.ByteReader {
62
+ class BlueprintConfigReader extends context_reader_1.ContextReader {
130
63
  constructor(bluePrintConfigBuffer) {
131
64
  super(bluePrintConfigBuffer, alignment_enum_1.Alignment.LITTLE_ENDIAN);
132
65
  this.bluePrintConfigBuffer = bluePrintConfigBuffer;
133
- this.parse = () => BlueprintConfigReader.ParseConfig(this);
134
- }
135
- static ParseConfig(reader) {
136
- const alwaysTwo = reader.readInt32();
137
- const description = reader.readString();
138
- const iconID = reader.readInt32();
139
- const color = col4_1.col4.ParseRGBA(reader);
140
- const config = {
141
- description,
142
- color,
143
- iconID,
144
- };
145
- if (reader.getBufferPosition() < reader.getBufferLength()) {
146
- config.referencedIconLibrary = reader.readString();
147
- config.iconLibraryType = reader.readString();
148
- }
149
- return config;
150
66
  }
151
67
  }
152
68
  exports.BlueprintConfigReader = BlueprintConfigReader;
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint-reader.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-reader.ts"],"names":[],"mappings":"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","sourcesContent":["import Pako from \"pako\";\nimport { Alignment } from \"../../byte/alignment.enum\";\nimport { BinaryReadable } from \"../../byte/binary-readable.interface\";\nimport { ByteReader } from \"../../byte/byte-reader.class\";\nimport { CorruptSaveError, ParserError } from \"../../error/parser.error\";\nimport { ChunkCompressionInfo } from \"../../file.types\";\nimport { Level } from '../save/level.class';\nimport { DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE } from \"../save/save-reader\";\nimport { SaveComponent, isSaveComponent } from \"../types/objects/SaveComponent\";\nimport { SaveEntity, isSaveEntity } from \"../types/objects/SaveEntity\";\nimport { SaveObject } from \"../types/objects/SaveObject\";\nimport { col4 } from '../types/structs/col4';\nimport { ObjectReference } from '../types/structs/ObjectReference';\nimport { vec3 } from '../types/structs/vec3';\nimport { BlueprintConfig, BlueprintHeader } from \"./blueprint.types\";\n\nexport class BlueprintReader extends ByteReader {\n\n\tpublic compressionInfo: ChunkCompressionInfo = {\n\t\tpackageFileTag: 0,\n\t\tmaxUncompressedChunkContentSize: 0,\n\t\tchunkHeaderSize: DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE\n\t};\n\n\tconstructor(bluePrintBuffer: ArrayBuffer) {\n\t\tsuper(bluePrintBuffer, Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic static ReadHeader(reader: BinaryReadable): BlueprintHeader {\n\t\tconst alwaysTwo = reader.readBytes(4); // 02 00 00 00 - always\n\t\tconst objectVersion = reader.readBytes(2 * 4); // 24 00 00 00, 7F 3B 03 00 - varies over updates - in 1.0 it's 46 and 0x7A960500.\n\t\tconst dimensions = vec3.ParseInt(reader); // 04 00 00 00, 04 00 00 00, 04 00 00 00 - dimensions in foundation size\n\n\n\t\t// list of item costs.\n\t\tlet itemTypeCount = reader.readInt32();\n\t\tconst itemCosts = new Array<[ObjectReference, number]>(itemTypeCount).fill([{ levelName: '', pathName: '' }, 0]);\n\t\tfor (let i = 0; i < itemTypeCount; i++) {\n\t\t\tlet itemPathName = ObjectReference.read(reader);\n\t\t\tlet itemCount = reader.readInt32();\n\n\t\t\titemCosts[i] = [itemPathName, itemCount];\n\t\t}\n\n\t\t// list of recipes\n\t\tlet recipeCount = reader.readInt32();\n\t\tconst recipeRefs = new Array<ObjectReference>(recipeCount).fill({ levelName: '', pathName: '' });\n\t\tfor (let i = 0; i < recipeCount; i++) {\n\t\t\tconst recipeName = ObjectReference.read(reader);\n\t\t\trecipeRefs[i] = recipeName;\n\t\t}\n\n\t\treturn {\n\t\t\tdesignerDimension: dimensions,\n\t\t\trecipeReferences: recipeRefs,\n\t\t\titemCosts\n\t\t};\n\t}\n\n\tpublic inflateChunks(): any {\n\n\t\t// free memory\n\t\tthis.fileBuffer = this.fileBuffer.slice(this.currentByte);\n\n\t\tthis.handledByte = 0;\n\t\tthis.currentByte = 0;\n\t\tthis.maxByte = this.fileBuffer.byteLength;\n\n\t\tlet currentChunks = [];\n\t\tlet totalUncompressedBodySize = 0;\n\n\t\t// read while we can handle\n\t\twhile (this.handledByte < this.maxByte) {\n\n\t\t\t// Read chunk info size...\n\t\t\tlet chunkHeader = new DataView(this.fileBuffer.slice(0, this.compressionInfo.chunkHeaderSize));\n\t\t\tthis.currentByte = this.compressionInfo.chunkHeaderSize;\n\t\t\tthis.handledByte += this.compressionInfo.chunkHeaderSize;\n\n\t\t\tif (this.compressionInfo.packageFileTag <= 0) {\n\t\t\t\tthis.compressionInfo.packageFileTag = chunkHeader.getUint32(0, this.alignment === Alignment.LITTLE_ENDIAN);\n\t\t\t}\n\t\t\tif (this.compressionInfo.maxUncompressedChunkContentSize <= 0) {\n\t\t\t\tthis.compressionInfo.maxUncompressedChunkContentSize = chunkHeader.getInt32(8, this.alignment === Alignment.LITTLE_ENDIAN); //00 00 02 00 = 131072\n\t\t\t}\n\n\t\t\tconst chunkCompressedLength = chunkHeader.getInt32(33, this.alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tconst chunkUncompressedLength = chunkHeader.getInt32(25, this.alignment === Alignment.LITTLE_ENDIAN);\n\t\t\ttotalUncompressedBodySize += chunkUncompressedLength;\n\n\n\t\t\tconst currentChunkSize = chunkCompressedLength;\n\t\t\tlet currentChunk = this.fileBuffer.slice(this.currentByte, this.currentByte + currentChunkSize);\n\t\t\tthis.handledByte += currentChunkSize;\n\t\t\tthis.currentByte += currentChunkSize;\n\n\n\t\t\t// Free memory from previous chunk...\n\t\t\tthis.fileBuffer = this.fileBuffer.slice(this.currentByte);\n\t\t\tthis.currentByte = 0;\n\n\t\t\ttry {\n\t\t\t\t// Inflate current chunk\n\t\t\t\tlet currentInflatedChunk = null;\n\t\t\t\tcurrentInflatedChunk = Pako.inflate(currentChunk);\n\t\t\t\tcurrentChunks.push(currentInflatedChunk);\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tthrow new ParserError('ParserError', 'An error occurred while calling pako inflate.' + err);\n\t\t\t}\n\t\t}\n\n\n\t\t//TODO we can get rid of file buffer here.\n\n\t\t// Create one big chunk out of the little chunks\n\t\tlet newChunkLength = currentChunks.map<number>(cc => cc.length).reduce((prev, cur) => prev + cur);\n\t\tconst bigWholeChunk = new Uint8Array(newChunkLength);\n\t\tlet currentLength = 0;\n\t\tfor (let i = 0; i < currentChunks.length; i++) {\n\t\t\tbigWholeChunk.set(currentChunks[i], currentLength);\n\t\t\tcurrentLength += currentChunks[i].length;\n\t\t}\n\n\t\t// reset reader on this body content.\n\t\tthis.currentByte = 0;\n\t\tthis.maxByte = bigWholeChunk.buffer.byteLength;\n\t\tthis.bufferView = new DataView(bigWholeChunk.buffer);\n\n\t\treturn {\n\t\t\tnewChunkLength,\n\t\t\tnumChunks: currentChunks.length,\n\t\t\tinflatedData: bigWholeChunk\n\t\t};\n\t}\n\n\tpublic static ParseObjects(reader: ByteReader): (SaveEntity | SaveComponent)[] {\n\n\t\tconst totalBodyRestSize = reader.readInt32();\n\n\t\t// object headers\n\t\tconst objectHeadersBinarySize = reader.readInt32();\n\t\tlet objects: (SaveEntity | SaveComponent)[] = [];\n\t\tLevel.ReadAllObjectHeaders(reader, objects);\n\n\t\tconst someChecksumThing = reader.readInt32();\n\n\t\t// objects contents\n\t\tBlueprintReader.ReadBlueprintObjectContents(reader, objects, 0);\n\n\t\treader.getBufferPosition();\n\n\t\treturn objects;\n\t}\n\n\tprivate static ReadBlueprintObjectContents(reader: BinaryReadable, objectsList: SaveObject[], buildVersion: number): void {\n\t\tconst countEntities = reader.readInt32();\n\t\tfor (let i = 0; i < countEntities; i++) {\n\n\t\t\t// binary length\n\t\t\tconst len = reader.readInt32();\n\t\t\tif (len === 0) {\n\t\t\t\tthrow new CorruptSaveError(`check number is a wrong value (${len}). This normally indicates a corrupt entity or blueprint.`);\n\t\t\t}\n\n\t\t\tconst obj = objectsList[i];\n\t\t\tif (isSaveEntity(obj)) {\n\t\t\t\tSaveEntity.ParseData(obj, len, reader, buildVersion, obj.typePath);\n\t\t\t} else if (isSaveComponent(obj)) {\n\t\t\t\tSaveComponent.ParseData(obj, len, reader, buildVersion, obj.typePath);\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nexport class BlueprintConfigReader extends ByteReader {\n\n\tconstructor(public bluePrintConfigBuffer: ArrayBuffer) {\n\t\tsuper(bluePrintConfigBuffer, Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic parse = (): BlueprintConfig => BlueprintConfigReader.ParseConfig(this);\n\n\tpublic static ParseConfig(reader: BinaryReadable): BlueprintConfig {\n\t\tconst alwaysTwo = reader.readInt32();\n\t\tconst description = reader.readString();\n\t\tconst iconID = reader.readInt32();\n\t\tconst color = col4.ParseRGBA(reader);\n\n\t\tconst config: BlueprintConfig = {\n\t\t\tdescription,\n\t\t\tcolor,\n\t\t\ticonID,\n\t\t};\n\n\t\t// since 1.0, created blueprints have those two strings\n\t\tif (reader.getBufferPosition() < reader.getBufferLength()) {\n\t\t\tconfig.referencedIconLibrary = reader.readString();\n\t\t\tconfig.iconLibraryType = reader.readString();\n\t\t}\n\n\t\treturn config;\n\t}\n}\n"]}
1
+ {"version":3,"file":"blueprint-reader.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-reader.ts"],"names":[],"mappings":"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","sourcesContent":["import { Alignment } from \"../../byte/alignment.enum\";\nimport { ContextReader } from '../../context/context-reader';\nimport { CorruptBlueprintError, CorruptSaveError } from \"../../error/parser.error\";\nimport { Level } from '../save/level.class';\nimport { ChunkCompressionInfo, SaveBodyChunks } from '../save/save-body-chunks';\nimport { SaveComponent, isSaveComponent } from \"../types/objects/SaveComponent\";\nimport { SaveEntity, isSaveEntity } from \"../types/objects/SaveEntity\";\nimport { SaveObject } from \"../types/objects/SaveObject\";\n\n\nexport class BlueprintReader extends ContextReader {\n\n\tpublic compressionInfo: ChunkCompressionInfo = {\n\t\tpackageFileTag: 0,\n\t\tmaxUncompressedChunkContentSize: 0,\n\t\tchunkHeaderVersion: SaveBodyChunks.HEADER_V2\n\t};\n\n\tconstructor(bluePrintBuffer: ArrayBufferLike) {\n\t\tsuper(bluePrintBuffer, Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic inflateChunks(): { inflatedData: ArrayBufferLike } {\n\n\t\tconst result = SaveBodyChunks.DecompressChunks(this.fileBuffer.slice(this.currentByte), this.alignment);\n\t\tthis.compressionInfo = result.compressionInfo;\n\n\t\t// reset on decompressed data.\n\t\tthis.currentByte = 0;\n\t\tthis.fileBuffer = result.uncompressedData.buffer;\n\t\tthis.maxByte = this.fileBuffer.byteLength;\n\t\tthis.bufferView = new DataView(this.fileBuffer);\n\n\t\tconst totalBodyRestSize = this.readInt32();\n\t\tif (result.uncompressedData.byteLength !== totalBodyRestSize + 4) {\n\t\t\tthrow new CorruptBlueprintError(`Possibly corrupt. Indicated size of total blueprint body (${totalBodyRestSize + 4}) does not match the uncompressed real size of ${result.uncompressedData.byteLength}.`);\n\t\t}\n\n\t\treturn {\n\t\t\tinflatedData: this.fileBuffer\n\t\t};\n\t}\n\n\tpublic static ParseObjects(reader: ContextReader): (SaveEntity | SaveComponent)[] {\n\n\t\t// object headers\n\t\tconst objectHeadersBinarySize = reader.readInt32();\n\t\tlet objects: (SaveEntity | SaveComponent)[] = [];\n\t\tLevel.ReadAllObjectHeaders(reader, objects);\n\n\t\tconst someChecksumThing = reader.readInt32();\n\n\t\t// objects contents\n\t\tBlueprintReader.ReadBlueprintObjectContents(reader, objects, 0);\n\n\t\treader.getBufferPosition();\n\n\t\treturn objects;\n\t}\n\n\tprivate static ReadBlueprintObjectContents(reader: ContextReader, objectsList: SaveObject[], buildVersion: number): void {\n\t\tconst countEntities = reader.readInt32();\n\t\tfor (let i = 0; i < countEntities; i++) {\n\n\t\t\t// binary length\n\t\t\tconst len = reader.readInt32();\n\t\t\tif (len === 0) {\n\t\t\t\tthrow new CorruptSaveError(`check number is a wrong value (${len}). This normally indicates a corrupt entity or blueprint.`);\n\t\t\t}\n\n\t\t\tconst obj = objectsList[i];\n\t\t\tif (isSaveEntity(obj)) {\n\t\t\t\tSaveEntity.ParseData(obj, len, reader, obj.typePath);\n\t\t\t} else if (isSaveComponent(obj)) {\n\t\t\t\tSaveComponent.ParseData(obj, len, reader, obj.typePath);\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nexport class BlueprintConfigReader extends ContextReader {\n\n\tconstructor(public bluePrintConfigBuffer: ArrayBufferLike) {\n\t\tsuper(bluePrintConfigBuffer, Alignment.LITTLE_ENDIAN);\n\t}\n}\n"]}
@@ -1,21 +1,18 @@
1
- import { ByteWriter } from "../../byte/byte-writer.class";
2
- import { ChunkCompressionInfo, ChunkSummary } from "../../file.types";
1
+ import { ContextWriter } from '../../context/context-writer';
2
+ import { ChunkCompressionInfo, ChunkSummary } from "../save/save-body-chunks";
3
3
  import { SaveComponent } from "../types/objects/SaveComponent";
4
4
  import { SaveEntity } from "../types/objects/SaveEntity";
5
- import { BlueprintConfig, BlueprintHeader } from "./blueprint.types";
6
- export declare class BlueprintWriter extends ByteWriter {
5
+ export declare class BlueprintWriter extends ContextWriter {
7
6
  constructor();
8
- static SerializeHeader(writer: ByteWriter, header: BlueprintHeader): void;
9
7
  generateChunks(compressionInfo: ChunkCompressionInfo, posAfterHeader: number, options: Partial<{
10
8
  onBinaryBeforeCompressing: (binary: ArrayBuffer) => void;
11
9
  onHeader: (header: Uint8Array) => void;
12
10
  onChunk: (chunk: Uint8Array) => void;
13
11
  }>): ChunkSummary[];
14
- static SerializeObjects(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[]): void;
15
- static SerializeObjectContents(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[], buildVersion: number, levelName: string): void;
12
+ static SerializeObjects(writer: ContextWriter, objects: (SaveEntity | SaveComponent)[]): void;
13
+ static SerializeObjectContents(writer: ContextWriter, objects: (SaveEntity | SaveComponent)[]): void;
16
14
  }
17
- export declare class BlueprintConfigWriter extends ByteWriter {
15
+ export declare class BlueprintConfigWriter extends ContextWriter {
18
16
  constructor();
19
- static SerializeConfig(writer: ByteWriter, config: BlueprintConfig): void;
20
17
  }
21
18
  //# sourceMappingURL=blueprint-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint-writer.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-writer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAmB,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIrE,qBAAa,eAAgB,SAAQ,UAAU;;WAMhC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IA8BzE,cAAc,CACpB,eAAe,EAAE,oBAAoB,EACrC,cAAc,EAAE,MAAM,EAEtB,OAAO,EAAE,OAAO,CAAC;QAChB,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;QACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;QACvC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACrC,CAAC,GACA,YAAY,EAAE;WAkBH,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI;WAYnF,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAoBjJ;AAED,qBAAa,qBAAsB,SAAQ,UAAU;;WAMtC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;CAQhF"}
1
+ {"version":3,"file":"blueprint-writer.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-writer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAmB,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAIvE,qBAAa,eAAgB,SAAQ,aAAa;;IAM1C,cAAc,CACpB,eAAe,EAAE,oBAAoB,EACrC,cAAc,EAAE,MAAM,EAEtB,OAAO,EAAE,OAAO,CAAC;QAChB,yBAAyB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;QACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;QACvC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACrC,CAAC,GACA,YAAY,EAAE;WAkBH,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI;WAYtF,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI;CAoB3G;AAED,qBAAa,qBAAsB,SAAQ,aAAa;;CAIvD"}
@@ -2,40 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BlueprintConfigWriter = exports.BlueprintWriter = void 0;
4
4
  const alignment_enum_1 = require("../../byte/alignment.enum");
5
- const byte_writer_class_1 = require("../../byte/byte-writer.class");
5
+ const context_writer_1 = require("../../context/context-writer");
6
6
  const parser_error_1 = require("../../error/parser.error");
7
7
  const level_class_1 = require("../save/level.class");
8
8
  const save_writer_1 = require("../save/save-writer");
9
9
  const SaveComponent_1 = require("../types/objects/SaveComponent");
10
10
  const SaveEntity_1 = require("../types/objects/SaveEntity");
11
- const col4_1 = require("../types/structs/col4");
12
- const ObjectReference_1 = require("../types/structs/ObjectReference");
13
- class BlueprintWriter extends byte_writer_class_1.ByteWriter {
11
+ class BlueprintWriter extends context_writer_1.ContextWriter {
14
12
  constructor() {
15
13
  super(alignment_enum_1.Alignment.LITTLE_ENDIAN);
16
14
  }
17
- static SerializeHeader(writer, header) {
18
- writer.writeInt32(2);
19
- writer.writeInt32(46);
20
- writer.writeInt32(366202);
21
- let dimensions = [
22
- header.designerDimension?.x ?? 4,
23
- header.designerDimension?.y ?? 4,
24
- header.designerDimension?.z ?? 4,
25
- ].map(dim => dim < 4 ? 4 : dim);
26
- writer.writeInt32(dimensions[0]);
27
- writer.writeInt32(dimensions[1]);
28
- writer.writeInt32(dimensions[2]);
29
- writer.writeInt32(header.itemCosts.length);
30
- for (const itemCost of header.itemCosts) {
31
- ObjectReference_1.ObjectReference.write(writer, itemCost[0]);
32
- writer.writeInt32(itemCost[1]);
33
- }
34
- writer.writeInt32(header.recipeReferences.length);
35
- for (const recipeReference of header.recipeReferences) {
36
- ObjectReference_1.ObjectReference.write(writer, recipeReference);
37
- }
38
- }
39
15
  generateChunks(compressionInfo, posAfterHeader, options) {
40
16
  if (posAfterHeader <= 0) {
41
17
  throw new parser_error_1.ParserError('ParserError', 'seems like this buffer has no header. Please write the header first before you can generate chunks.');
@@ -53,9 +29,9 @@ class BlueprintWriter extends byte_writer_class_1.ByteWriter {
53
29
  writer.writeInt32(0);
54
30
  level_class_1.Level.SerializeAllObjectHeaders(writer, objects);
55
31
  writer.writeBinarySizeFromPosition(headersLenIndicator, headersLenIndicator + 4);
56
- BlueprintWriter.SerializeObjectContents(writer, objects, 0, '');
32
+ BlueprintWriter.SerializeObjectContents(writer, objects);
57
33
  }
58
- static SerializeObjectContents(writer, objects, buildVersion, levelName) {
34
+ static SerializeObjectContents(writer, objects) {
59
35
  const lenIndicatorEntities = writer.getBufferPosition();
60
36
  writer.writeInt32(0);
61
37
  writer.writeInt32(objects.length);
@@ -63,10 +39,10 @@ class BlueprintWriter extends byte_writer_class_1.ByteWriter {
63
39
  const lenReplacementPosition = writer.getBufferPosition();
64
40
  writer.writeInt32(0);
65
41
  if ((0, SaveEntity_1.isSaveEntity)(obj)) {
66
- SaveEntity_1.SaveEntity.SerializeData(writer, obj, buildVersion);
42
+ SaveEntity_1.SaveEntity.SerializeData(writer, obj);
67
43
  }
68
44
  else if ((0, SaveComponent_1.isSaveComponent)(obj)) {
69
- SaveComponent_1.SaveComponent.SerializeData(writer, obj, buildVersion);
45
+ SaveComponent_1.SaveComponent.SerializeData(writer, obj);
70
46
  }
71
47
  writer.writeBinarySizeFromPosition(lenReplacementPosition, lenReplacementPosition + 4);
72
48
  }
@@ -74,18 +50,10 @@ class BlueprintWriter extends byte_writer_class_1.ByteWriter {
74
50
  }
75
51
  }
76
52
  exports.BlueprintWriter = BlueprintWriter;
77
- class BlueprintConfigWriter extends byte_writer_class_1.ByteWriter {
53
+ class BlueprintConfigWriter extends context_writer_1.ContextWriter {
78
54
  constructor() {
79
55
  super(alignment_enum_1.Alignment.LITTLE_ENDIAN);
80
56
  }
81
- static SerializeConfig(writer, config) {
82
- writer.writeInt32(2);
83
- writer.writeString(config.description);
84
- writer.writeInt32(config.iconID);
85
- col4_1.col4.SerializeRGBA(writer, config.color);
86
- writer.writeString(config.referencedIconLibrary ?? '');
87
- writer.writeString(config.iconLibraryType ?? '');
88
- }
89
57
  }
90
58
  exports.BlueprintConfigWriter = BlueprintConfigWriter;
91
59
  //# sourceMappingURL=blueprint-writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint-writer.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-writer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Alignment } from \"../../byte/alignment.enum\";\nimport { ByteWriter } from \"../../byte/byte-writer.class\";\nimport { ParserError } from \"../../error/parser.error\";\nimport { ChunkCompressionInfo, ChunkSummary } from \"../../file.types\";\nimport { Level } from '../save/level.class';\nimport { SaveWriter } from \"../save/save-writer\";\nimport { SaveComponent, isSaveComponent } from \"../types/objects/SaveComponent\";\nimport { SaveEntity, isSaveEntity } from \"../types/objects/SaveEntity\";\nimport { col4 } from '../types/structs/col4';\nimport { ObjectReference } from '../types/structs/ObjectReference';\nimport { BlueprintConfig, BlueprintHeader } from \"./blueprint.types\";\n\n\n\nexport class BlueprintWriter extends ByteWriter {\n\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic static SerializeHeader(writer: ByteWriter, header: BlueprintHeader): void {\n\t\twriter.writeInt32(2); // 2\n\t\twriter.writeInt32(46); // TODO - changes with game updates. object version. - 46 in 1.0\n\t\twriter.writeInt32(366202); // TODO - some header build version? changes with game updates. // 0xECCF0300 // 0xE6060400 //0x7A960500 in 1.0\n\n\t\tlet dimensions = [\n\t\t\theader.designerDimension?.x ?? 4,\n\t\t\theader.designerDimension?.y ?? 4,\n\t\t\theader.designerDimension?.z ?? 4,\n\t\t].map(dim => dim < 4 ? 4 : dim); // dont let smaller values than 4 slip through.\n\n\t\t// designer dimensions in foundations.\n\t\twriter.writeInt32(dimensions[0]);\n\t\twriter.writeInt32(dimensions[1]);\n\t\twriter.writeInt32(dimensions[2]);\n\n\t\t// list of item costs.\n\t\twriter.writeInt32(header.itemCosts.length);\n\t\tfor (const itemCost of header.itemCosts) {\n\t\t\tObjectReference.write(writer, itemCost[0])\n\t\t\twriter.writeInt32(itemCost[1]);\n\t\t}\n\n\t\t// list of recipes.\n\t\twriter.writeInt32(header.recipeReferences.length);\n\t\tfor (const recipeReference of header.recipeReferences) {\n\t\t\tObjectReference.write(writer, recipeReference);\n\t\t}\n\t}\n\n\tpublic generateChunks(\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tposAfterHeader: number,\n\n\t\toptions: Partial<{\n\t\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\t\tonHeader: (header: Uint8Array) => void,\n\t\t\tonChunk: (chunk: Uint8Array) => void,\n\t\t}>\n\t): ChunkSummary[] {\n\n\t\tif (posAfterHeader <= 0) {\n\t\t\tthrow new ParserError('ParserError', 'seems like this buffer has no header. Please write the header first before you can generate chunks.');\n\t\t}\n\n\t\t// send plain header first.\n\t\tconst header = new Uint8Array(this.bufferArray.slice(0, posAfterHeader));\n\t\tif (options.onHeader !== undefined) {\n\t\t\toptions.onHeader(header);\n\t\t}\n\n\t\t// create save body\n\t\tthis.bufferArray = this.bufferArray.slice(posAfterHeader);\n\t\tconst chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, options.onBinaryBeforeCompressing ?? (() => { }), options.onChunk ?? (() => { }), this.alignment);\n\t\treturn chunkSummary;\n\t}\n\n\tpublic static SerializeObjects(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[]): void {\n\n\t\t// object headers\n\t\tconst headersLenIndicator = writer.getBufferPosition();\n\t\twriter.writeInt32(0);\n\t\tLevel.SerializeAllObjectHeaders(writer, objects);\n\t\twriter.writeBinarySizeFromPosition(headersLenIndicator, headersLenIndicator + 4);\n\n\t\t// objects contents\n\t\tBlueprintWriter.SerializeObjectContents(writer, objects, 0, '');\n\t}\n\n\tpublic static SerializeObjectContents(writer: ByteWriter, objects: (SaveEntity | SaveComponent)[], buildVersion: number, levelName: string): void {\n\t\tconst lenIndicatorEntities = writer.getBufferPosition();\n\t\twriter.writeInt32(0);\n\n\t\twriter.writeInt32(objects.length);\n\t\tfor (const obj of objects) {\n\n\t\t\tconst lenReplacementPosition = writer.getBufferPosition();\n\t\t\twriter.writeInt32(0);\n\n\t\t\tif (isSaveEntity(obj)) {\n\t\t\t\tSaveEntity.SerializeData(writer, obj, buildVersion);\n\t\t\t} else if (isSaveComponent(obj)) {\n\t\t\t\tSaveComponent.SerializeData(writer, obj, buildVersion);\n\t\t\t}\n\n\t\t\twriter.writeBinarySizeFromPosition(lenReplacementPosition, lenReplacementPosition + 4);\n\t\t}\n\t\twriter.writeBinarySizeFromPosition(lenIndicatorEntities, lenIndicatorEntities + 4);\n\t}\n}\n\nexport class BlueprintConfigWriter extends ByteWriter {\n\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic static SerializeConfig(writer: ByteWriter, config: BlueprintConfig): void {\n\t\twriter.writeInt32(2); // unknown, seems to always be 02.\n\t\twriter.writeString(config.description);\n\t\twriter.writeInt32(config.iconID);\n\t\tcol4.SerializeRGBA(writer, config.color);\n\t\twriter.writeString(config.referencedIconLibrary ?? '');\n\t\twriter.writeString(config.iconLibraryType ?? '');\n\t}\n}"]}
1
+ {"version":3,"file":"blueprint-writer.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint-writer.ts"],"names":[],"mappings":";;;AAAA,8DAAsD;AACtD,iEAA6D;AAC7D,2DAAuD;AACvD,qDAA4C;AAE5C,qDAAiD;AACjD,kEAAgF;AAChF,4DAAuE;AAIvE,MAAa,eAAgB,SAAQ,8BAAa;IAEjD;QACC,KAAK,CAAC,0BAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAEM,cAAc,CACpB,eAAqC,EACrC,cAAsB,EAEtB,OAIE;QAGF,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,0BAAW,CAAC,aAAa,EAAE,qGAAqG,CAAC,CAAC;QAC7I,CAAC;QAGD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QACzE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAGD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,wBAAU,CAAC,gCAAgC,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,yBAAyB,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtM,OAAO,YAAY,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,MAAqB,EAAE,OAAuC;QAG5F,MAAM,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACvD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,mBAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,CAAC,CAAC,CAAC;QAGjF,eAAe,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,MAAqB,EAAE,OAAuC;QACnG,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAErB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAE3B,MAAM,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAErB,IAAI,IAAA,yBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,uBAAU,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,IAAA,+BAAe,EAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,6BAAa,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,CAAC,2BAA2B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;CACD;AAjED,0CAiEC;AAED,MAAa,qBAAsB,SAAQ,8BAAa;IACvD;QACC,KAAK,CAAC,0BAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;CACD;AAJD,sDAIC","sourcesContent":["import { Alignment } from \"../../byte/alignment.enum\";\nimport { ContextWriter } from '../../context/context-writer';\nimport { ParserError } from \"../../error/parser.error\";\nimport { Level } from '../save/level.class';\nimport { ChunkCompressionInfo, ChunkSummary } from \"../save/save-body-chunks\";\nimport { SaveWriter } from \"../save/save-writer\";\nimport { SaveComponent, isSaveComponent } from \"../types/objects/SaveComponent\";\nimport { SaveEntity, isSaveEntity } from \"../types/objects/SaveEntity\";\n\n\n\nexport class BlueprintWriter extends ContextWriter {\n\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic generateChunks(\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tposAfterHeader: number,\n\n\t\toptions: Partial<{\n\t\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\t\tonHeader: (header: Uint8Array) => void,\n\t\t\tonChunk: (chunk: Uint8Array) => void,\n\t\t}>\n\t): ChunkSummary[] {\n\n\t\tif (posAfterHeader <= 0) {\n\t\t\tthrow new ParserError('ParserError', 'seems like this buffer has no header. Please write the header first before you can generate chunks.');\n\t\t}\n\n\t\t// send plain header first.\n\t\tconst header = new Uint8Array(this.bufferArray.slice(0, posAfterHeader));\n\t\tif (options.onHeader !== undefined) {\n\t\t\toptions.onHeader(header);\n\t\t}\n\n\t\t// create save body\n\t\tthis.bufferArray = this.bufferArray.slice(posAfterHeader);\n\t\tconst chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, options.onBinaryBeforeCompressing ?? (() => { }), options.onChunk ?? (() => { }), this.alignment);\n\t\treturn chunkSummary;\n\t}\n\n\tpublic static SerializeObjects(writer: ContextWriter, objects: (SaveEntity | SaveComponent)[]): void {\n\n\t\t// object headers\n\t\tconst headersLenIndicator = writer.getBufferPosition();\n\t\twriter.writeInt32(0);\n\t\tLevel.SerializeAllObjectHeaders(writer, objects);\n\t\twriter.writeBinarySizeFromPosition(headersLenIndicator, headersLenIndicator + 4);\n\n\t\t// objects contents\n\t\tBlueprintWriter.SerializeObjectContents(writer, objects);\n\t}\n\n\tpublic static SerializeObjectContents(writer: ContextWriter, objects: (SaveEntity | SaveComponent)[]): void {\n\t\tconst lenIndicatorEntities = writer.getBufferPosition();\n\t\twriter.writeInt32(0);\n\n\t\twriter.writeInt32(objects.length);\n\t\tfor (const obj of objects) {\n\n\t\t\tconst lenReplacementPosition = writer.getBufferPosition();\n\t\t\twriter.writeInt32(0);\n\n\t\t\tif (isSaveEntity(obj)) {\n\t\t\t\tSaveEntity.SerializeData(writer, obj);\n\t\t\t} else if (isSaveComponent(obj)) {\n\t\t\t\tSaveComponent.SerializeData(writer, obj);\n\t\t\t}\n\n\t\t\twriter.writeBinarySizeFromPosition(lenReplacementPosition, lenReplacementPosition + 4);\n\t\t}\n\t\twriter.writeBinarySizeFromPosition(lenIndicatorEntities, lenIndicatorEntities + 4);\n\t}\n}\n\nexport class BlueprintConfigWriter extends ContextWriter {\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n}"]}
@@ -1,21 +1,8 @@
1
- import { ChunkCompressionInfo } from "../../file.types";
1
+ import { ChunkCompressionInfo } from "../save/save-body-chunks";
2
2
  import { SaveComponent } from "../types/objects/SaveComponent";
3
3
  import { SaveEntity } from "../types/objects/SaveEntity";
4
- import { col4 } from '../types/structs/col4';
5
- import { ObjectReference } from '../types/structs/ObjectReference';
6
- import { vec3 } from '../types/structs/vec3';
7
- export interface BlueprintConfig {
8
- description: string;
9
- color: col4;
10
- iconID: number;
11
- referencedIconLibrary?: string;
12
- iconLibraryType?: string;
13
- }
14
- export type BlueprintHeader = {
15
- designerDimension?: vec3;
16
- itemCosts: [ObjectReference, number][];
17
- recipeReferences: ObjectReference[];
18
- };
4
+ import { BlueprintConfig } from './blueprint-config';
5
+ import { BlueprintHeader } from './blueprint-header';
19
6
  export interface Blueprint {
20
7
  name: string;
21
8
  compressionInfo: ChunkCompressionInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint.types.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,MAAM,eAAe,GAAG;IAC1B,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;IACvC,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACvC,CAAA;AAGD,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,oBAAoB,CAAC;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC;CAC3C"}
1
+ {"version":3,"file":"blueprint.types.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/blueprint/blueprint.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,oBAAoB,CAAC;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC;CAC3C"}