@etothepii/satisfactory-file-parser 2.1.3 → 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 -103
  2. package/LICENCE.md +1 -1
  3. package/README.md +35 -17
  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
package/docs/index.html CHANGED
@@ -1,5 +1,6 @@
1
1
  <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@etothepii/satisfactory-file-parser</title><meta name="description" content="Documentation for @etothepii/satisfactory-file-parser"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">@etothepii/satisfactory-file-parser</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>@etothepii/satisfactory-file-parser</h1></div><div class="tsd-panel tsd-typography"><a id="md:satisfactory-file-parser" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Satisfactory File Parser<a href="#md:satisfactory-file-parser" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>This is a TypeScript <a href="https://github.com/etothepii4/satisfactory-file-parser" target="_blank" class="external">github project</a> to parse Satisfactory Saves/Blueprints. Satisfactory is a game released by Coffee Stain Studios.
2
- The reporitory is written entirely in TypeScript and is bundled on <a href="https://www.npmjs.com/package/@etothepii/satisfactory-file-parser" target="_blank" class="external">NPM</a>.</p>
2
+ The reporitory is written entirely in TypeScript and is bundled on <a href="https://www.npmjs.com/package/@etothepii/satisfactory-file-parser" target="_blank" class="external">NPM</a>.
3
+ The examples listed here are Node.js. Should work in browser as well.</p>
3
4
  <p>This parser can read, modify and write:</p>
4
5
  <ul>
5
6
  <li>Save Files <code>.sav</code></li>
@@ -8,34 +9,46 @@ The reporitory is written entirely in TypeScript and is bundled on <a href="http
8
9
  <p>The parser is for deep save editing, since it just parses to JSON and back.
9
10
  The purpose to have an editable structure, game logic is not known.
10
11
  It is recommended that you look at the parsed save/blueprint to get an idea what you want to edit.</p>
11
- <a id="md:supported-versions" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Supported Versions<a href="#md:supported-versions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>The version support of the packages is indicated below. Some bugs might still be present, see Bug Reporting further down.</p>
12
- <p>Game Version Files of U5 and below are NOT supported.</p>
12
+ <a id="md:supported-versions" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Supported Versions<a href="#md:supported-versions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>The version support of the Game Updates is indicated below.
13
+ The parser is pretty compatible with older saves and blueprints alike (for example from U8).
14
+ If you still run into errors, let me know or raise an issue.
15
+ Game Version Files of U5 and below are NOT supported.</p>
13
16
  <table>
14
17
  <thead>
15
18
  <tr>
16
19
  <th style="text-align:center">Game Version</th>
17
- <th style="text-align:left">Package</th>
20
+ <th style="text-align:left">Support</th>
18
21
  </tr>
19
22
  </thead>
20
23
  <tbody>
21
24
  <tr>
22
25
  <td style="text-align:center">&lt;= U5</td>
23
- <td style="text-align:left">❌</td>
26
+ <td style="text-align:left">❌ not compatible</td>
24
27
  </tr>
25
28
  <tr>
26
- <td style="text-align:center">U6 + U7</td>
27
- <td style="text-align:left">✅ 0.0.1 - 0.0.34</td>
29
+ <td style="text-align:center">U6</td>
30
+ <td style="text-align:left">⚠️ mostly compatible</td>
31
+ </tr>
32
+ <tr>
33
+ <td style="text-align:center">U7</td>
34
+ <td style="text-align:left">⚠️ mostly compatible</td>
28
35
  </tr>
29
36
  <tr>
30
37
  <td style="text-align:center">U8</td>
31
- <td style="text-align:left">✅ 0.1.20 - 0.3.7</td>
38
+ <td style="text-align:left">✅ compatible</td>
32
39
  </tr>
33
40
  <tr>
34
41
  <td style="text-align:center">U1.0</td>
35
- <td style="text-align:left">✅ &gt;= 0.4.20</td>
42
+ <td style="text-align:left">✅ compatible</td>
43
+ </tr>
44
+ <tr>
45
+ <td style="text-align:center">U1.1</td>
46
+ <td style="text-align:left">✅ compatible</td>
36
47
  </tr>
37
48
  </tbody>
38
49
  </table>
50
+ <a id="md:version-migration" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Version Migration<a href="#md:version-migration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>The parser will NOT MIGRATE from one game version to another, for compatibility reasons.
51
+ If you parse a U8 save/blueprint, the parser will also serialize it back to a U8 save/blueprint.</p>
39
52
  <a id="md:installation" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Installation<a href="#md:installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><a id="md:npm" class="tsd-anchor"></a><h4 class="tsd-anchor-link">npm<a href="#md:npm" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><p><code>npm install @etothepii/satisfactory-file-parser</code></p>
40
53
  <a id="md:yarn" class="tsd-anchor"></a><h4 class="tsd-anchor-link">yarn<a href="#md:yarn" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><p><code>yarn add @etothepii/satisfactory-file-parser</code></p>
41
54
  <a id="md:bug-reports-or-feedback" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Bug Reports or Feedback<a href="#md:bug-reports-or-feedback" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>You can always raise an issue on the linked <a href="https://github.com/etothepii4/satisfactory-file-parser" target="_blank" class="external">github project</a> or hit me up on the satisfactory discord <code>etothepii</code>.</p>
@@ -44,29 +57,29 @@ If however a Mod should not be working or have just objects with a lot of traili
44
57
  <p>Some explicitly tested mods include:
45
58
  Ficsit-Cam, Structural Solutions, Linear Motion, Container Screens, Conveyor Wall Hole, X3-Signs, X3-Roads</p>
46
59
  <a id="md:reading-a-save" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Reading a Save<a href="#md:reading-a-save" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Reading a Save in Memory.</p>
47
- <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Parser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;@etothepii/satisfactory-file-parser&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">file</span><span class="hl-1"> = </span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">readFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MySave.sav&#39;</span><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">save</span><span class="hl-1"> = </span><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">ParseSave</span><span class="hl-1">(</span><span class="hl-4">&#39;MySave&#39;</span><span class="hl-1">, </span><span class="hl-3">file</span><span class="hl-1">.</span><span class="hl-3">buffer</span><span class="hl-1">);</span>
60
+ <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Parser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;@etothepii/satisfactory-file-parser&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">file</span><span class="hl-1"> = </span><span class="hl-2">new</span><span class="hl-1"> </span><span class="hl-6">Uint8Array</span><span class="hl-1">(</span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">readFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MySave.sav&#39;</span><span class="hl-1">)).</span><span class="hl-3">buffer</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">save</span><span class="hl-1"> = </span><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">ParseSave</span><span class="hl-1">(</span><span class="hl-4">&#39;MySave&#39;</span><span class="hl-1">, </span><span class="hl-3">file</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// write to json file</span><br/><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">writeFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;MySave.json&#39;</span><span class="hl-1">, </span><span class="hl-5">JSON</span><span class="hl-1">.</span><span class="hl-6">stringify</span><span class="hl-1">(</span><span class="hl-3">save</span><span class="hl-1">));</span>
48
61
  </code><button type="button">Copy</button></pre>
49
62
 
50
63
  <p>You can also read a Save via stream, to save RAM.
51
64
  The binary data of the whole save will still be in memory, but the converted JSON can be streamed. (You can of course keep reading the stream in memory).
52
65
  The returned <code>stream</code> is a readable WHATWG stream of type string and represents a <code>SatisfactorySave</code> object. this object can be serialized again.
53
66
  WHATWG is used by default by browsers. Node js can use them using <code>Writable.toWeb()</code> and <code>Writable.fromWeb()</code> for example.</p>
54
- <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Writable</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;stream&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">WritableStream</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;stream/web&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">ReadableStreamParser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;@etothepii/satisfactory-file-parser&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">file</span><span class="hl-1"> = </span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">readFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MySave.sav&#39;</span><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">jsonFileStream</span><span class="hl-1"> = </span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">createWriteStream</span><span class="hl-1">(</span><span class="hl-4">&#39;./MySave.json&#39;</span><span class="hl-1">, { </span><span class="hl-3">highWaterMark:</span><span class="hl-1"> </span><span class="hl-7">1024</span><span class="hl-1"> * </span><span class="hl-7">1024</span><span class="hl-1"> * </span><span class="hl-7">200</span><span class="hl-1"> }); </span><span class="hl-8">// your outgoing JSON stream. In this case directly to file. </span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">whatwgWriteStream</span><span class="hl-1"> = </span><span class="hl-3">Writable</span><span class="hl-1">.</span><span class="hl-6">toWeb</span><span class="hl-1">(</span><span class="hl-3">jsonFileStream</span><span class="hl-1">) </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">WritableStream</span><span class="hl-1">&lt;</span><span class="hl-9">string</span><span class="hl-1">&gt;; </span><span class="hl-8">// convert the file stream to WHATWG-compliant stream</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> { </span><span class="hl-5">stream</span><span class="hl-1">, </span><span class="hl-5">startStreaming</span><span class="hl-1"> } = </span><span class="hl-3">ReadableStreamParser</span><span class="hl-1">.</span><span class="hl-6">CreateReadableStreamFromSaveToJson</span><span class="hl-1">(</span><span class="hl-4">&#39;MySave&#39;</span><span class="hl-1">, </span><span class="hl-3">file</span><span class="hl-1">);</span><br/><br/><span class="hl-3">stream</span><span class="hl-1">.</span><span class="hl-6">pipeTo</span><span class="hl-1">(</span><span class="hl-3">whatwgWriteStream</span><span class="hl-1">);</span><br/><span class="hl-3">jsonFileStream</span><span class="hl-1">.</span><span class="hl-6">on</span><span class="hl-1">(</span><span class="hl-4">&#39;close&#39;</span><span class="hl-1">, () </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// write stream finished</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-6">startStreaming</span><span class="hl-1">();</span>
67
+ <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Writable</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;stream&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">WritableStream</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;stream/web&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">ReadableStreamParser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;@etothepii/satisfactory-file-parser&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">file</span><span class="hl-1"> = </span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">readFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MySave.sav&#39;</span><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">jsonFileStream</span><span class="hl-1"> = </span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">createWriteStream</span><span class="hl-1">(</span><span class="hl-4">&#39;./MySave.json&#39;</span><span class="hl-1">, { </span><span class="hl-3">highWaterMark:</span><span class="hl-1"> </span><span class="hl-8">1024</span><span class="hl-1"> * </span><span class="hl-8">1024</span><span class="hl-1"> * </span><span class="hl-8">200</span><span class="hl-1"> }); </span><span class="hl-7">// your outgoing JSON stream. In this case directly to file. </span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">whatwgWriteStream</span><span class="hl-1"> = </span><span class="hl-3">Writable</span><span class="hl-1">.</span><span class="hl-6">toWeb</span><span class="hl-1">(</span><span class="hl-3">jsonFileStream</span><span class="hl-1">) </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">WritableStream</span><span class="hl-1">&lt;</span><span class="hl-9">string</span><span class="hl-1">&gt;; </span><span class="hl-7">// convert the file stream to WHATWG-compliant stream</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> { </span><span class="hl-5">stream</span><span class="hl-1">, </span><span class="hl-5">startStreaming</span><span class="hl-1"> } = </span><span class="hl-3">ReadableStreamParser</span><span class="hl-1">.</span><span class="hl-6">CreateReadableStreamFromSaveToJson</span><span class="hl-1">(</span><span class="hl-4">&#39;MySave&#39;</span><span class="hl-1">, </span><span class="hl-3">file</span><span class="hl-1">);</span><br/><br/><span class="hl-3">stream</span><span class="hl-1">.</span><span class="hl-6">pipeTo</span><span class="hl-1">(</span><span class="hl-3">whatwgWriteStream</span><span class="hl-1">);</span><br/><span class="hl-3">jsonFileStream</span><span class="hl-1">.</span><span class="hl-6">on</span><span class="hl-1">(</span><span class="hl-4">&#39;close&#39;</span><span class="hl-1">, () </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">// write stream finished</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-6">startStreaming</span><span class="hl-1">();</span>
55
68
  </code><button type="button">Copy</button></pre>
56
69
 
57
70
  <a id="md:writing-a-save" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Writing a Save<a href="#md:writing-a-save" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Consequently, writing a parsed save file back is just as easy.
58
71
  The SaveParser has callbacks to assist during syncing on different occasions during the process.
59
72
  For example, when writing the header or when writing a chunk of the save body.
60
73
  The splitting in individual chunks enables you to more easily stream the binary data to somewhere else.</p>
61
- <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Parser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&quot;@etothepii/satisfactory-file-parser&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">let</span><span class="hl-1"> </span><span class="hl-3">fileHeader</span><span class="hl-1">: </span><span class="hl-9">Uint8Array</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">bodyChunks</span><span class="hl-1">: </span><span class="hl-9">Uint8Array</span><span class="hl-1">[] = [];</span><br/><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">WriteSave</span><span class="hl-1">(</span><span class="hl-3">save</span><span class="hl-1">, </span><span class="hl-3">header</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on save header.&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">fileHeader</span><span class="hl-1"> = </span><span class="hl-3">header</span><span class="hl-1">;</span><br/><span class="hl-1">}, </span><span class="hl-3">chunk</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on save body chunk.&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">bodyChunks</span><span class="hl-1">.</span><span class="hl-6">push</span><span class="hl-1">(</span><span class="hl-3">chunk</span><span class="hl-1">);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// write complete sav file back to disk</span><br/><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">writeFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyModifiedSave.sav&#39;</span><span class="hl-1">, </span><span class="hl-3">Buffer</span><span class="hl-1">.</span><span class="hl-6">concat</span><span class="hl-1">([</span><span class="hl-3">fileHeader</span><span class="hl-1">!, ...</span><span class="hl-3">bodyChunks</span><span class="hl-1">]));</span>
74
+ <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Parser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&quot;@etothepii/satisfactory-file-parser&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">let</span><span class="hl-1"> </span><span class="hl-3">fileHeader</span><span class="hl-1">: </span><span class="hl-9">Uint8Array</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">bodyChunks</span><span class="hl-1">: </span><span class="hl-9">Uint8Array</span><span class="hl-1">[] = [];</span><br/><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">WriteSave</span><span class="hl-1">(</span><span class="hl-3">save</span><span class="hl-1">, </span><span class="hl-3">header</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on save header.&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">fileHeader</span><span class="hl-1"> = </span><span class="hl-3">header</span><span class="hl-1">;</span><br/><span class="hl-1">}, </span><span class="hl-3">chunk</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on save body chunk.&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">bodyChunks</span><span class="hl-1">.</span><span class="hl-6">push</span><span class="hl-1">(</span><span class="hl-3">chunk</span><span class="hl-1">);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// write complete sav file back to disk</span><br/><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">writeFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyModifiedSave.sav&#39;</span><span class="hl-1">, </span><span class="hl-3">Buffer</span><span class="hl-1">.</span><span class="hl-6">concat</span><span class="hl-1">([</span><span class="hl-3">fileHeader</span><span class="hl-1">!, ...</span><span class="hl-3">bodyChunks</span><span class="hl-1">]));</span>
62
75
  </code><button type="button">Copy</button></pre>
63
76
 
64
- <a id="md:reading-blueprints" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Reading Blueprints<a href="#md:reading-blueprints" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Note, that blueprints consist of 2 files. The <code>.sbp</code> main file and the config file <code>.sbpcfg</code>.</p>
65
- <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Parser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&quot;@etothepii/satisfactory-file-parser&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">mainFile</span><span class="hl-1"> = </span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">readFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyBlueprint.sbp&#39;</span><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">configFile</span><span class="hl-1"> = </span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">readFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyBlueprint.sbpcfg&#39;</span><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">blueprint</span><span class="hl-1"> = </span><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">ParseBlueprintFiles</span><span class="hl-1">(</span><span class="hl-4">&#39;Myblueprint&#39;</span><span class="hl-1">, </span><span class="hl-3">mainFile</span><span class="hl-1">, </span><span class="hl-3">configFile</span><span class="hl-1">);</span>
77
+ <a id="md:reading-blueprints" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Reading Blueprints<a href="#md:reading-blueprints" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Blueprints consist of 2 files. The <code>.sbp</code> main file and the config file <code>.sbpcfg</code>.</p>
78
+ <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Parser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&quot;@etothepii/satisfactory-file-parser&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">file</span><span class="hl-1"> = </span><span class="hl-2">new</span><span class="hl-1"> </span><span class="hl-6">Uint8Array</span><span class="hl-1">(</span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">readFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyBlueprint.sbp&#39;</span><span class="hl-1">)).</span><span class="hl-3">buffer</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">configFile</span><span class="hl-1"> = </span><span class="hl-2">new</span><span class="hl-1"> </span><span class="hl-6">Uint8Array</span><span class="hl-1">(</span><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">readFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyBlueprint.sbpcfg&#39;</span><span class="hl-1">)).</span><span class="hl-3">buffer</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">blueprint</span><span class="hl-1"> = </span><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">ParseBlueprintFiles</span><span class="hl-1">(</span><span class="hl-4">&#39;Myblueprint&#39;</span><span class="hl-1">, </span><span class="hl-3">mainFile</span><span class="hl-1">, </span><span class="hl-3">configFile</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// write to json file</span><br/><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">writeFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;Myblueprint.json&#39;</span><span class="hl-1">, </span><span class="hl-5">JSON</span><span class="hl-1">.</span><span class="hl-6">stringify</span><span class="hl-1">(</span><span class="hl-3">blueprint</span><span class="hl-1">));</span>
66
79
  </code><button type="button">Copy</button></pre>
67
80
 
68
81
  <a id="md:writing-blueprints" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Writing Blueprints<a href="#md:writing-blueprints" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Consequently, writing a blueprint into binary data works the same way with getting callbacks in the same style as the save parsing.</p>
69
- <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Parser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&quot;@etothepii/satisfactory-file-parser&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">let</span><span class="hl-1"> </span><span class="hl-3">mainFileHeader</span><span class="hl-1">: </span><span class="hl-9">Uint8Array</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">mainFileBodyChunks</span><span class="hl-1">: </span><span class="hl-9">Uint8Array</span><span class="hl-1">[] = [];</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">summary</span><span class="hl-1"> = </span><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">WriteBlueprintFiles</span><span class="hl-1">(</span><span class="hl-3">blueprint</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-3">header</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on main file header.&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">mainFileHeader</span><span class="hl-1"> = </span><span class="hl-3">header</span><span class="hl-1">;</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-3">chunk</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on main file body chunk.&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">mainFileBodyChunks</span><span class="hl-1">.</span><span class="hl-6">push</span><span class="hl-1">(</span><span class="hl-3">chunk</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">);</span><br/><br/><span class="hl-8">// write complete .sbp file back to disk</span><br/><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">writeFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyBlueprint.sbp&#39;</span><span class="hl-1">, </span><span class="hl-3">Buffer</span><span class="hl-1">.</span><span class="hl-6">concat</span><span class="hl-1">([</span><span class="hl-3">mainFileHeader</span><span class="hl-1">!, ...</span><span class="hl-3">mainFileBodyChunks</span><span class="hl-1">]));</span><br/><br/><span class="hl-8">// write .sbpcfg file back to disk, we get that data from the result of WriteBlueprintFiles</span><br/><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">writeFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyBlueprint.sbpcfg&#39;</span><span class="hl-1">, </span><span class="hl-3">Buffer</span><span class="hl-1">.</span><span class="hl-6">from</span><span class="hl-1">(</span><span class="hl-3">summary</span><span class="hl-1">.</span><span class="hl-3">configFileBinary</span><span class="hl-1">));</span>
82
+ <pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-2">*</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-3">fs</span><span class="hl-1"> </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;fs&#39;</span><span class="hl-1">;</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">Parser</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&quot;@etothepii/satisfactory-file-parser&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-2">let</span><span class="hl-1"> </span><span class="hl-3">mainFileHeader</span><span class="hl-1">: </span><span class="hl-9">Uint8Array</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">mainFileBodyChunks</span><span class="hl-1">: </span><span class="hl-9">Uint8Array</span><span class="hl-1">[] = [];</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">summary</span><span class="hl-1"> = </span><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">WriteBlueprintFiles</span><span class="hl-1">(</span><span class="hl-3">blueprint</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-3">header</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on main file header.&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">mainFileHeader</span><span class="hl-1"> = </span><span class="hl-3">header</span><span class="hl-1">;</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-3">chunk</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on main file body chunk.&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">mainFileBodyChunks</span><span class="hl-1">.</span><span class="hl-6">push</span><span class="hl-1">(</span><span class="hl-3">chunk</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">);</span><br/><br/><span class="hl-7">// write complete .sbp file back to disk</span><br/><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">writeFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyBlueprint.sbp&#39;</span><span class="hl-1">, </span><span class="hl-3">Buffer</span><span class="hl-1">.</span><span class="hl-6">concat</span><span class="hl-1">([</span><span class="hl-3">mainFileHeader</span><span class="hl-1">!, ...</span><span class="hl-3">mainFileBodyChunks</span><span class="hl-1">]));</span><br/><br/><span class="hl-7">// write .sbpcfg file back to disk, we get that data from the result of WriteBlueprintFiles</span><br/><span class="hl-3">fs</span><span class="hl-1">.</span><span class="hl-6">writeFileSync</span><span class="hl-1">(</span><span class="hl-4">&#39;./MyBlueprint.sbpcfg&#39;</span><span class="hl-1">, </span><span class="hl-3">Buffer</span><span class="hl-1">.</span><span class="hl-6">from</span><span class="hl-1">(</span><span class="hl-3">summary</span><span class="hl-1">.</span><span class="hl-3">configFileBinary</span><span class="hl-1">));</span>
70
83
  </code><button type="button">Copy</button></pre>
71
84
 
72
85
  <a id="md:additional-options-on-the-parser-methods" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Additional Options on the Parser Methods<a href="#md:additional-options-on-the-parser-methods" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>For every parser call, you can pass optional callbacks to receive additional info.
@@ -80,17 +93,17 @@ Like a callback on the decompressed save body. Parsing saves provides a callback
80
93
  <pre><code class="js"><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">blueprint</span><span class="hl-1"> = </span><span class="hl-3">Parser</span><span class="hl-1">.</span><span class="hl-6">ParseBlueprintFiles</span><span class="hl-1">(</span><span class="hl-4">&#39;Myblueprint&#39;</span><span class="hl-1">, </span><span class="hl-3">file</span><span class="hl-1">, </span><span class="hl-3">configFile</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-6">onDecompressedBlueprintBody</span><span class="hl-3">:</span><span class="hl-1"> (</span><span class="hl-3">body</span><span class="hl-1">) </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">&#39;on decompressed body&#39;</span><span class="hl-1">, </span><span class="hl-3">body</span><span class="hl-1">.</span><span class="hl-3">byteLength</span><span class="hl-1">),</span><br/><span class="hl-1">});</span>
81
94
  </code><button type="button">Copy</button></pre>
82
95
 
83
- <a id="md:save-editing-examples-in-jsts" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Save Editing Examples (in JS/TS)<a href="#md:save-editing-examples-in-jsts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">SaveComponent</span><span class="hl-1">, </span><span class="hl-3">SaveEntity</span><span class="hl-1">, </span><span class="hl-3">StructArrayProperty</span><span class="hl-1">, </span><span class="hl-3">Int32Property</span><span class="hl-1">, </span><span class="hl-3">ObjectProperty</span><span class="hl-1">, </span><span class="hl-3">StrProperty</span><span class="hl-1">, </span><span class="hl-3">StructProperty</span><span class="hl-1">, </span><span class="hl-3">InventoryItemStructPropertyValue</span><span class="hl-1">, </span><span class="hl-3">DynamicStructPropertyValue</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;@etothepii/satisfactory-file-parser&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// method to overwrite save objects</span><br/><span class="hl-8">// currently quite inefficient to loop through everything, so theres room to improve in a future version. Feel free to raise an issue.</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-6">modifyObjects</span><span class="hl-1"> = (...</span><span class="hl-3">modifiedObjects</span><span class="hl-1">: (</span><span class="hl-9">SaveEntity</span><span class="hl-1"> | </span><span class="hl-9">SaveComponent</span><span class="hl-1">)[]) </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-0">for</span><span class="hl-1"> (</span><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">modifiedObject</span><span class="hl-1"> </span><span class="hl-2">of</span><span class="hl-1"> </span><span class="hl-3">modifiedObjects</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-0">for</span><span class="hl-1"> (</span><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">level</span><span class="hl-1"> </span><span class="hl-2">of</span><span class="hl-1"> </span><span class="hl-3">save</span><span class="hl-1">.</span><span class="hl-3">levels</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-0">for</span><span class="hl-1"> (</span><span class="hl-2">let</span><span class="hl-1"> </span><span class="hl-3">i</span><span class="hl-1"> = </span><span class="hl-7">0</span><span class="hl-1">; </span><span class="hl-3">i</span><span class="hl-1"> &lt; </span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-3">length</span><span class="hl-1">; </span><span class="hl-3">i</span><span class="hl-1">++) {</span><br/><span class="hl-1"> </span><span class="hl-0">if</span><span class="hl-1"> (</span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">objects</span><span class="hl-1">[</span><span class="hl-3">i</span><span class="hl-1">].</span><span class="hl-3">instanceName</span><span class="hl-1"> === </span><span class="hl-3">modifiedObject</span><span class="hl-1">.</span><span class="hl-3">instanceName</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">objects</span><span class="hl-1">[</span><span class="hl-3">i</span><span class="hl-1">] = </span><span class="hl-3">modifiedObject</span><span class="hl-1">;</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">objects</span><span class="hl-1"> = </span><span class="hl-3">save</span><span class="hl-1">.</span><span class="hl-3">levels</span><span class="hl-1">.</span><span class="hl-6">flatMap</span><span class="hl-1">(</span><span class="hl-3">level</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">objects</span><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">collectables</span><span class="hl-1"> = </span><span class="hl-3">save</span><span class="hl-1">.</span><span class="hl-3">levels</span><span class="hl-1">.</span><span class="hl-6">flatMap</span><span class="hl-1">(</span><span class="hl-3">level</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">collectables</span><span class="hl-1">);</span>
96
+ <a id="md:save-editing-examples-in-jsts" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Save Editing Examples (in JS/TS)<a href="#md:save-editing-examples-in-jsts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><pre><code class="js"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-3">SaveComponent</span><span class="hl-1">, </span><span class="hl-3">SaveEntity</span><span class="hl-1">, </span><span class="hl-3">StructArrayProperty</span><span class="hl-1">, </span><span class="hl-3">Int32Property</span><span class="hl-1">, </span><span class="hl-3">ObjectProperty</span><span class="hl-1">, </span><span class="hl-3">StrProperty</span><span class="hl-1">, </span><span class="hl-3">StructProperty</span><span class="hl-1">, </span><span class="hl-3">InventoryItemStructPropertyValue</span><span class="hl-1">, </span><span class="hl-3">DynamicStructPropertyValue</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-4">&#39;@etothepii/satisfactory-file-parser&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// method to overwrite save objects</span><br/><span class="hl-7">// currently quite inefficient to loop through everything, so theres room to improve in a future version. Feel free to raise an issue.</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-6">modifyObjects</span><span class="hl-1"> = (...</span><span class="hl-3">modifiedObjects</span><span class="hl-1">: (</span><span class="hl-9">SaveEntity</span><span class="hl-1"> | </span><span class="hl-9">SaveComponent</span><span class="hl-1">)[]) </span><span class="hl-2">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-0">for</span><span class="hl-1"> (</span><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">modifiedObject</span><span class="hl-1"> </span><span class="hl-2">of</span><span class="hl-1"> </span><span class="hl-3">modifiedObjects</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-0">for</span><span class="hl-1"> (</span><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">level</span><span class="hl-1"> </span><span class="hl-2">of</span><span class="hl-1"> </span><span class="hl-3">Object</span><span class="hl-1">.</span><span class="hl-6">values</span><span class="hl-1">(</span><span class="hl-3">save</span><span class="hl-1">.</span><span class="hl-3">levels</span><span class="hl-1">)) {</span><br/><span class="hl-1"> </span><span class="hl-0">for</span><span class="hl-1"> (</span><span class="hl-2">let</span><span class="hl-1"> </span><span class="hl-3">i</span><span class="hl-1"> = </span><span class="hl-8">0</span><span class="hl-1">; </span><span class="hl-3">i</span><span class="hl-1"> &lt; </span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-3">length</span><span class="hl-1">; </span><span class="hl-3">i</span><span class="hl-1">++) {</span><br/><span class="hl-1"> </span><span class="hl-0">if</span><span class="hl-1"> (</span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">objects</span><span class="hl-1">[</span><span class="hl-3">i</span><span class="hl-1">].</span><span class="hl-3">instanceName</span><span class="hl-1"> === </span><span class="hl-3">modifiedObject</span><span class="hl-1">.</span><span class="hl-3">instanceName</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">objects</span><span class="hl-1">[</span><span class="hl-3">i</span><span class="hl-1">] = </span><span class="hl-3">modifiedObject</span><span class="hl-1">;</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">objects</span><span class="hl-1"> = </span><span class="hl-3">Object</span><span class="hl-1">.</span><span class="hl-6">values</span><span class="hl-1">(</span><span class="hl-3">save</span><span class="hl-1">.</span><span class="hl-3">levels</span><span class="hl-1">).</span><span class="hl-6">flatMap</span><span class="hl-1">(</span><span class="hl-3">level</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">objects</span><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">collectables</span><span class="hl-1"> = </span><span class="hl-3">Object</span><span class="hl-1">.</span><span class="hl-6">values</span><span class="hl-1">(</span><span class="hl-3">save</span><span class="hl-1">.</span><span class="hl-3">levels</span><span class="hl-1">).</span><span class="hl-6">flatMap</span><span class="hl-1">(</span><span class="hl-3">level</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">level</span><span class="hl-1">.</span><span class="hl-3">collectables</span><span class="hl-1">);</span>
84
97
  </code><button type="button">Copy</button></pre>
85
98
 
86
- <a id="md:example-print-hub-terminal-location" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Example Print Hub Terminal Location<a href="#md:example-print-hub-terminal-location" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="js"><span class="hl-8">// get hub terminals. Beware that filter returns a COPIED array and not the original objects.</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">hubTerminals</span><span class="hl-1"> = </span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-6">filter</span><span class="hl-1">(</span><span class="hl-3">obj</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">typePath</span><span class="hl-1"> === </span><span class="hl-4">&#39;/Game/FactoryGame/Buildable/Factory/HubTerminal/Build_HubTerminal.Build_HubTerminal_C&#39;</span><span class="hl-1">) </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">SaveEntity</span><span class="hl-1">[];</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">firstHubPosition</span><span class="hl-1"> = </span><span class="hl-3">hubTerminals</span><span class="hl-1">[</span><span class="hl-7">0</span><span class="hl-1">].</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1">;</span><br/><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">`Hub terminal is located at </span><span class="hl-2">${</span><span class="hl-3">firstHubPosition</span><span class="hl-10">.</span><span class="hl-3">x</span><span class="hl-2">}</span><span class="hl-4">, </span><span class="hl-2">${</span><span class="hl-3">firstHubPosition</span><span class="hl-10">.</span><span class="hl-3">y</span><span class="hl-2">}</span><span class="hl-4">, </span><span class="hl-2">${</span><span class="hl-3">firstHubPosition</span><span class="hl-10">.</span><span class="hl-3">z</span><span class="hl-2">}</span><span class="hl-4">`</span><span class="hl-1">);</span>
99
+ <a id="md:example-print-hub-terminal-location" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Example Print Hub Terminal Location<a href="#md:example-print-hub-terminal-location" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="js"><span class="hl-7">// get hub terminals. Beware that filter returns a COPIED array and not the original objects.</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">hubTerminals</span><span class="hl-1"> = </span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-6">filter</span><span class="hl-1">(</span><span class="hl-3">obj</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">typePath</span><span class="hl-1"> === </span><span class="hl-4">&#39;/Game/FactoryGame/Buildable/Factory/HubTerminal/Build_HubTerminal.Build_HubTerminal_C&#39;</span><span class="hl-1">) </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">SaveEntity</span><span class="hl-1">[];</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">firstHubPosition</span><span class="hl-1"> = </span><span class="hl-3">hubTerminals</span><span class="hl-1">[</span><span class="hl-8">0</span><span class="hl-1">].</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1">;</span><br/><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">`Hub terminal is located at </span><span class="hl-2">${</span><span class="hl-3">firstHubPosition</span><span class="hl-10">.</span><span class="hl-3">x</span><span class="hl-2">}</span><span class="hl-4">, </span><span class="hl-2">${</span><span class="hl-3">firstHubPosition</span><span class="hl-10">.</span><span class="hl-3">y</span><span class="hl-2">}</span><span class="hl-4">, </span><span class="hl-2">${</span><span class="hl-3">firstHubPosition</span><span class="hl-10">.</span><span class="hl-3">z</span><span class="hl-2">}</span><span class="hl-4">`</span><span class="hl-1">);</span>
87
100
  </code><button type="button">Copy</button></pre>
88
101
 
89
- <a id="md:example-modify-player-locations" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Example Modify Player Locations<a href="#md:example-modify-player-locations" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="js"><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">players</span><span class="hl-1"> = </span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-6">filter</span><span class="hl-1">(</span><span class="hl-3">obj</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">typePath</span><span class="hl-1"> === </span><span class="hl-4">&#39;/Game/FactoryGame/Character/Player/Char_Player.Char_Player_C&#39;</span><span class="hl-1">) </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">SaveEntity</span><span class="hl-1">[];</span><br/><span class="hl-0">for</span><span class="hl-1"> (</span><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">player</span><span class="hl-1"> </span><span class="hl-2">of</span><span class="hl-1"> </span><span class="hl-3">players</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">name</span><span class="hl-1"> = (</span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">mCachedPlayerName</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">StrProperty</span><span class="hl-1">).</span><span class="hl-3">value</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-3">x:</span><span class="hl-1"> </span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1">.</span><span class="hl-3">x</span><span class="hl-1"> + </span><span class="hl-7">5000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-3">y:</span><span class="hl-1"> </span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1">.</span><span class="hl-3">y</span><span class="hl-1"> + </span><span class="hl-7">5000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-3">z:</span><span class="hl-1"> </span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1">.</span><span class="hl-3">z</span><span class="hl-1">,</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">`Player </span><span class="hl-2">${</span><span class="hl-3">name</span><span class="hl-2">}</span><span class="hl-4"> is now located at </span><span class="hl-2">${</span><span class="hl-3">player</span><span class="hl-10">.</span><span class="hl-3">transform</span><span class="hl-10">.</span><span class="hl-3">translation</span><span class="hl-10">.</span><span class="hl-3">x</span><span class="hl-2">}</span><span class="hl-4">, </span><span class="hl-2">${</span><span class="hl-3">player</span><span class="hl-10">.</span><span class="hl-3">transform</span><span class="hl-10">.</span><span class="hl-3">translation</span><span class="hl-10">.</span><span class="hl-3">y</span><span class="hl-2">}</span><span class="hl-4">, </span><span class="hl-2">${</span><span class="hl-3">player</span><span class="hl-10">.</span><span class="hl-3">transform</span><span class="hl-10">.</span><span class="hl-3">translation</span><span class="hl-10">.</span><span class="hl-3">z</span><span class="hl-2">}</span><span class="hl-4">`</span><span class="hl-1">);</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">// modify original save objects</span><br/><span class="hl-6">modifyObjects</span><span class="hl-1">(...</span><span class="hl-3">players</span><span class="hl-1">);</span>
102
+ <a id="md:example-modify-player-locations" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Example Modify Player Locations<a href="#md:example-modify-player-locations" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="js"><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">players</span><span class="hl-1"> = </span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-6">filter</span><span class="hl-1">(</span><span class="hl-3">obj</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">typePath</span><span class="hl-1"> === </span><span class="hl-4">&#39;/Game/FactoryGame/Character/Player/Char_Player.Char_Player_C&#39;</span><span class="hl-1">) </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">SaveEntity</span><span class="hl-1">[];</span><br/><span class="hl-0">for</span><span class="hl-1"> (</span><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">player</span><span class="hl-1"> </span><span class="hl-2">of</span><span class="hl-1"> </span><span class="hl-3">players</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">name</span><span class="hl-1"> = (</span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">mCachedPlayerName</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">StrProperty</span><span class="hl-1">).</span><span class="hl-3">value</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-3">x:</span><span class="hl-1"> </span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1">.</span><span class="hl-3">x</span><span class="hl-1"> + </span><span class="hl-8">5000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-3">y:</span><span class="hl-1"> </span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1">.</span><span class="hl-3">y</span><span class="hl-1"> + </span><span class="hl-8">5000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-3">z:</span><span class="hl-1"> </span><span class="hl-3">player</span><span class="hl-1">.</span><span class="hl-3">transform</span><span class="hl-1">.</span><span class="hl-3">translation</span><span class="hl-1">.</span><span class="hl-3">z</span><span class="hl-1">,</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> </span><span class="hl-3">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-4">`Player </span><span class="hl-2">${</span><span class="hl-3">name</span><span class="hl-2">}</span><span class="hl-4"> is now located at </span><span class="hl-2">${</span><span class="hl-3">player</span><span class="hl-10">.</span><span class="hl-3">transform</span><span class="hl-10">.</span><span class="hl-3">translation</span><span class="hl-10">.</span><span class="hl-3">x</span><span class="hl-2">}</span><span class="hl-4">, </span><span class="hl-2">${</span><span class="hl-3">player</span><span class="hl-10">.</span><span class="hl-3">transform</span><span class="hl-10">.</span><span class="hl-3">translation</span><span class="hl-10">.</span><span class="hl-3">y</span><span class="hl-2">}</span><span class="hl-4">, </span><span class="hl-2">${</span><span class="hl-3">player</span><span class="hl-10">.</span><span class="hl-3">transform</span><span class="hl-10">.</span><span class="hl-3">translation</span><span class="hl-10">.</span><span class="hl-3">z</span><span class="hl-2">}</span><span class="hl-4">`</span><span class="hl-1">);</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-7">// modify original save objects</span><br/><span class="hl-6">modifyObjects</span><span class="hl-1">(...</span><span class="hl-3">players</span><span class="hl-1">);</span>
90
103
  </code><button type="button">Copy</button></pre>
91
104
 
92
- <a id="md:example-overwrite-item-stack-in-a-storage-container" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Example Overwrite Item Stack in a Storage Container<a href="#md:example-overwrite-item-stack-in-a-storage-container" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="js"><span class="hl-8">// get the first storage container, either mk1 or mk2.</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">storageContainers</span><span class="hl-1"> = </span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-6">filter</span><span class="hl-1">(</span><span class="hl-3">obj</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><br/><span class="hl-1"> </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">typePath</span><span class="hl-1"> === </span><span class="hl-4">&#39;/Game/FactoryGame/Buildable/Factory/StorageContainerMk1/Build_StorageContainerMk1.Build_StorageContainerMk1_C&#39;</span><br/><span class="hl-1"> || </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">typePath</span><span class="hl-1"> === </span><span class="hl-4">&#39;/Game/FactoryGame/Buildable/Factory/StorageContainerMk2/Build_StorageContainerMk2.Build_StorageContainerMk2_C&#39;</span><br/><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">firstContainer</span><span class="hl-1"> = </span><span class="hl-3">storageContainers</span><span class="hl-1">[</span><span class="hl-7">0</span><span class="hl-1">];</span><br/><br/><span class="hl-8">// the container has a reference name to an inventory component.</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">inventoryReference</span><span class="hl-1"> = </span><span class="hl-3">firstContainer</span><span class="hl-1">.</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">mStorageInventory</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">ObjectProperty</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">inventory</span><span class="hl-1"> = </span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-6">find</span><span class="hl-1">(</span><span class="hl-3">obj</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">instanceName</span><span class="hl-1"> === </span><span class="hl-3">inventoryReference</span><span class="hl-1">.</span><span class="hl-3">value</span><span class="hl-1">.</span><span class="hl-3">pathName</span><span class="hl-1">) </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">SaveComponent</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">inventoryStacks</span><span class="hl-1"> = </span><span class="hl-3">inventory</span><span class="hl-1">.</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">mInventoryStacks</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">StructArrayProperty</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">firstStack</span><span class="hl-1"> = </span><span class="hl-3">inventoryStacks</span><span class="hl-1">.</span><span class="hl-3">values</span><span class="hl-1">[</span><span class="hl-7">0</span><span class="hl-1">];</span><br/><br/><span class="hl-8">// Items within ItemStacks are quite nested. And StructProperties can basically be anything.</span><br/><span class="hl-8">// overwrite first item stack with 5 Rotors.</span><br/><span class="hl-1">(((</span><span class="hl-3">firstStack</span><span class="hl-1">.</span><span class="hl-3">value</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">DynamicStructPropertyValue</span><span class="hl-1">).</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">Item</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">StructProperty</span><span class="hl-1">).</span><span class="hl-3">value</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">InventoryItemStructPropertyValue</span><span class="hl-1">).</span><span class="hl-3">itemName</span><span class="hl-1"> = </span><span class="hl-4">&#39;/Game/FactoryGame/Resource/Parts/Rotor/Desc_Rotor.Desc_Rotor_C&#39;</span><span class="hl-1">;</span><br/><span class="hl-1">((</span><span class="hl-3">firstStack</span><span class="hl-1">.</span><span class="hl-3">value</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">DynamicStructPropertyValue</span><span class="hl-1">).</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">NumItems</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">Int32Property</span><span class="hl-1">).</span><span class="hl-3">value</span><span class="hl-1"> = </span><span class="hl-7">5</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// modify original save object</span><br/><span class="hl-6">modifyObjects</span><span class="hl-1">(</span><span class="hl-3">firstContainer</span><span class="hl-1">);</span>
105
+ <a id="md:example-overwrite-item-stack-in-a-storage-container" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Example Overwrite Item Stack in a Storage Container<a href="#md:example-overwrite-item-stack-in-a-storage-container" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="js"><span class="hl-7">// get the first storage container, either mk1 or mk2.</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">storageContainers</span><span class="hl-1"> = </span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-6">filter</span><span class="hl-1">(</span><span class="hl-3">obj</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><br/><span class="hl-1"> </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">typePath</span><span class="hl-1"> === </span><span class="hl-4">&#39;/Game/FactoryGame/Buildable/Factory/StorageContainerMk1/Build_StorageContainerMk1.Build_StorageContainerMk1_C&#39;</span><br/><span class="hl-1"> || </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">typePath</span><span class="hl-1"> === </span><span class="hl-4">&#39;/Game/FactoryGame/Buildable/Factory/StorageContainerMk2/Build_StorageContainerMk2.Build_StorageContainerMk2_C&#39;</span><br/><span class="hl-1">);</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">firstContainer</span><span class="hl-1"> = </span><span class="hl-3">storageContainers</span><span class="hl-1">[</span><span class="hl-8">0</span><span class="hl-1">];</span><br/><br/><span class="hl-7">// the container has a reference name to an inventory component.</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">inventoryReference</span><span class="hl-1"> = </span><span class="hl-3">firstContainer</span><span class="hl-1">.</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">mStorageInventory</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">ObjectProperty</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">inventory</span><span class="hl-1"> = </span><span class="hl-3">objects</span><span class="hl-1">.</span><span class="hl-6">find</span><span class="hl-1">(</span><span class="hl-3">obj</span><span class="hl-1"> </span><span class="hl-2">=&gt;</span><span class="hl-1"> </span><span class="hl-3">obj</span><span class="hl-1">.</span><span class="hl-3">instanceName</span><span class="hl-1"> === </span><span class="hl-3">inventoryReference</span><span class="hl-1">.</span><span class="hl-3">value</span><span class="hl-1">.</span><span class="hl-3">pathName</span><span class="hl-1">) </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">SaveComponent</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">inventoryStacks</span><span class="hl-1"> = </span><span class="hl-3">inventory</span><span class="hl-1">.</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">mInventoryStacks</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">StructArrayProperty</span><span class="hl-1">;</span><br/><span class="hl-2">const</span><span class="hl-1"> </span><span class="hl-5">firstStack</span><span class="hl-1"> = </span><span class="hl-3">inventoryStacks</span><span class="hl-1">.</span><span class="hl-3">values</span><span class="hl-1">[</span><span class="hl-8">0</span><span class="hl-1">];</span><br/><br/><span class="hl-7">// Items within ItemStacks are quite nested. And StructProperties can basically be anything.</span><br/><span class="hl-7">// overwrite first item stack with 5 Rotors.</span><br/><span class="hl-1">(((</span><span class="hl-3">firstStack</span><span class="hl-1">.</span><span class="hl-3">value</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">DynamicStructPropertyValue</span><span class="hl-1">).</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">Item</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">StructProperty</span><span class="hl-1">).</span><span class="hl-3">value</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">InventoryItemStructPropertyValue</span><span class="hl-1">).</span><span class="hl-3">itemReference</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-3">levelName:</span><span class="hl-1"> </span><span class="hl-4">&#39;&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-3">pathName:</span><span class="hl-1"> </span><span class="hl-4">&#39;/Game/FactoryGame/Resource/Parts/Rotor/Desc_Rotor.Desc_Rotor_C&#39;</span><br/><span class="hl-1">};</span><br/><span class="hl-1">((</span><span class="hl-3">firstStack</span><span class="hl-1">.</span><span class="hl-3">value</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">DynamicStructPropertyValue</span><span class="hl-1">).</span><span class="hl-3">properties</span><span class="hl-1">.</span><span class="hl-3">NumItems</span><span class="hl-1"> </span><span class="hl-0">as</span><span class="hl-1"> </span><span class="hl-9">Int32Property</span><span class="hl-1">).</span><span class="hl-3">value</span><span class="hl-1"> = </span><span class="hl-8">5</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// modify original save object</span><br/><span class="hl-6">modifyObjects</span><span class="hl-1">(</span><span class="hl-3">firstContainer</span><span class="hl-1">);</span>
93
106
  </code><button type="button">Copy</button></pre>
94
107
 
95
- <a id="md:auto-generated-typedoc-reference" class="tsd-anchor"></a><h1 class="tsd-anchor-link"><a href="https://rawcdn.githack.com/etothepii4/satisfactory-file-parser/blob/main/docs/index.html" target="_blank" class="external">Auto-Generated TypeDoc Reference</a>.<a href="#md:auto-generated-typedoc-reference" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><a id="md:basic-guide" class="tsd-anchor"></a><h1 class="tsd-anchor-link"><a href="https://github.com/etothepii4/satisfactory-file-parser/blob/main/GUIDE.md" target="_blank" class="external">Basic Guide</a>.<a href="#md:basic-guide" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>More detailed explanation of some basic things in the parser.</p>
96
- <a id="md:changelog" class="tsd-anchor"></a><h1 class="tsd-anchor-link"><a href="https://github.com/etothepii4/satisfactory-file-parser/blob/main/CHANGELOG.md" target="_blank" class="external">Changelog</a><a href="#md:changelog" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><a id="md:licence" class="tsd-anchor"></a><h1 class="tsd-anchor-link"><a href="https://github.com/etothepii4/satisfactory-file-parser/blob/main/LICENCE.md" target="_blank" class="external">Licence</a><a href="#md:licence" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#md:satisfactory-file-parser"><span>Satisfactory <wbr/>File <wbr/>Parser</span></a><a href="#md:supported-versions"><span>Supported <wbr/>Versions</span></a><a href="#md:installation"><span>Installation</span></a><ul><li><ul><li><ul><li><a href="#md:npm"><span>npm</span></a></li><li><a href="#md:yarn"><span>yarn</span></a></li></ul></li></ul></li></ul><a href="#md:bug-reports-or-feedback"><span>Bug <wbr/>Reports or <wbr/>Feedback</span></a><a href="#md:mod-support-✅"><span>Mod <wbr/>Support ✅</span></a><a href="#md:reading-a-save"><span>Reading a <wbr/>Save</span></a><a href="#md:writing-a-save"><span>Writing a <wbr/>Save</span></a><a href="#md:reading-blueprints"><span>Reading <wbr/>Blueprints</span></a><a href="#md:writing-blueprints"><span>Writing <wbr/>Blueprints</span></a><ul><li><a href="#md:additional-options-on-the-parser-methods"><span>Additional <wbr/>Options on the <wbr/>Parser <wbr/>Methods</span></a></li></ul><a href="#md:save-editing-examples-in-jsts"><span>Save <wbr/>Editing <wbr/>Examples (in JS/TS)</span></a><ul><li><a href="#md:example-print-hub-terminal-location"><span>Example <wbr/>Print <wbr/>Hub <wbr/>Terminal <wbr/>Location</span></a></li><li><a href="#md:example-modify-player-locations"><span>Example <wbr/>Modify <wbr/>Player <wbr/>Locations</span></a></li><li><a href="#md:example-overwrite-item-stack-in-a-storage-container"><span>Example <wbr/>Overwrite <wbr/>Item <wbr/>Stack in a <wbr/>Storage <wbr/>Container</span></a></li></ul><a href="#md:auto-generated-typedoc-reference"><span>Auto-<wbr/>Generated <wbr/>Type<wbr/>Doc <wbr/>Reference.</span></a><a href="#md:basic-guide"><span>Basic <wbr/>Guide.</span></a><a href="#md:changelog"><span>Changelog</span></a><a href="#md:licence"><span>Licence</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>@etothepii/satisfactory-file-parser</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
108
+ <a id="md:auto-generated-typedoc-reference" class="tsd-anchor"></a><h1 class="tsd-anchor-link"><a href="https://raw.githack.com/etothepii4/satisfactory-file-parser/main/docs/index.html" target="_blank" class="external">Auto-Generated TypeDoc Reference</a>.<a href="#md:auto-generated-typedoc-reference" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><a id="md:basic-guide" class="tsd-anchor"></a><h1 class="tsd-anchor-link"><a href="https://github.com/etothepii4/satisfactory-file-parser/blob/main/GUIDE.md" target="_blank" class="external">Basic Guide</a>.<a href="#md:basic-guide" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>More detailed explanation of some basic things in the parser.</p>
109
+ <a id="md:changelog" class="tsd-anchor"></a><h1 class="tsd-anchor-link"><a href="https://github.com/etothepii4/satisfactory-file-parser/blob/main/CHANGELOG.md" target="_blank" class="external">Changelog</a><a href="#md:changelog" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><a id="md:licence" class="tsd-anchor"></a><h1 class="tsd-anchor-link"><a href="https://github.com/etothepii4/satisfactory-file-parser/blob/main/LICENCE.md" target="_blank" class="external">Licence</a><a href="#md:licence" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#md:satisfactory-file-parser"><span>Satisfactory <wbr/>File <wbr/>Parser</span></a><a href="#md:supported-versions"><span>Supported <wbr/>Versions</span></a><a href="#md:version-migration"><span>Version <wbr/>Migration</span></a><a href="#md:installation"><span>Installation</span></a><ul><li><ul><li><ul><li><a href="#md:npm"><span>npm</span></a></li><li><a href="#md:yarn"><span>yarn</span></a></li></ul></li></ul></li></ul><a href="#md:bug-reports-or-feedback"><span>Bug <wbr/>Reports or <wbr/>Feedback</span></a><a href="#md:mod-support-✅"><span>Mod <wbr/>Support ✅</span></a><a href="#md:reading-a-save"><span>Reading a <wbr/>Save</span></a><a href="#md:writing-a-save"><span>Writing a <wbr/>Save</span></a><a href="#md:reading-blueprints"><span>Reading <wbr/>Blueprints</span></a><a href="#md:writing-blueprints"><span>Writing <wbr/>Blueprints</span></a><ul><li><a href="#md:additional-options-on-the-parser-methods"><span>Additional <wbr/>Options on the <wbr/>Parser <wbr/>Methods</span></a></li></ul><a href="#md:save-editing-examples-in-jsts"><span>Save <wbr/>Editing <wbr/>Examples (in JS/TS)</span></a><ul><li><a href="#md:example-print-hub-terminal-location"><span>Example <wbr/>Print <wbr/>Hub <wbr/>Terminal <wbr/>Location</span></a></li><li><a href="#md:example-modify-player-locations"><span>Example <wbr/>Modify <wbr/>Player <wbr/>Locations</span></a></li><li><a href="#md:example-overwrite-item-stack-in-a-storage-container"><span>Example <wbr/>Overwrite <wbr/>Item <wbr/>Stack in a <wbr/>Storage <wbr/>Container</span></a></li></ul><a href="#md:auto-generated-typedoc-reference"><span>Auto-<wbr/>Generated <wbr/>Type<wbr/>Doc <wbr/>Reference.</span></a><a href="#md:basic-guide"><span>Basic <wbr/>Guide.</span></a><a href="#md:changelog"><span>Changelog</span></a><a href="#md:licence"><span>Licence</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>@etothepii/satisfactory-file-parser</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1,6 +1,6 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Blueprint | @etothepii/satisfactory-file-parser</title><meta name="description" content="Documentation for @etothepii/satisfactory-file-parser"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@etothepii/satisfactory-file-parser</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@etothepii/satisfactory-file-parser</a></li><li><a href="Blueprint.html">Blueprint</a></li></ul><h1>Interface Blueprint</h1></div><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">Blueprint</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#compressionInfo">compressionInfo</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ChunkCompressionInfo</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#config">config</a><span class="tsd-signature-symbol">: </span><a href="BlueprintConfig.html" class="tsd-signature-type tsd-kind-interface">BlueprintConfig</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#header">header</a><span class="tsd-signature-symbol">: </span><a href="../types/BlueprintHeader.html" class="tsd-signature-type tsd-kind-type-alias">BlueprintHeader</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#name">name</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#objects">objects</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><a href="../classes/SaveComponent.html" class="tsd-signature-type tsd-kind-class">SaveComponent</a><span class="tsd-signature-symbol"> | </span><a href="../classes/SaveEntity.html" class="tsd-signature-type tsd-kind-class">SaveEntity</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/f842d23760f2867da8bd86a834db5cc1b0fe5706/src/parser/satisfactory/blueprint/blueprint.types.ts#L25">src/parser/satisfactory/blueprint/blueprint.types.ts:25</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="Blueprint.html#compressionInfo" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>compression<wbr/>Info</span></a>
1
+ <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Blueprint | @etothepii/satisfactory-file-parser</title><meta name="description" content="Documentation for @etothepii/satisfactory-file-parser"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@etothepii/satisfactory-file-parser</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@etothepii/satisfactory-file-parser</a></li><li><a href="Blueprint.html">Blueprint</a></li></ul><h1>Interface Blueprint</h1></div><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">Blueprint</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#compressionInfo">compressionInfo</a><span class="tsd-signature-symbol">: </span><a href="../types/ChunkCompressionInfo.html" class="tsd-signature-type tsd-kind-type-alias">ChunkCompressionInfo</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#config">config</a><span class="tsd-signature-symbol">: </span><a href="BlueprintConfig-1.html" class="tsd-signature-type tsd-kind-interface">BlueprintConfig</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#header">header</a><span class="tsd-signature-symbol">: </span><a href="../types/BlueprintHeader-1.html" class="tsd-signature-type tsd-kind-type-alias">BlueprintHeader</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#name">name</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-property" href="Blueprint.html#objects">objects</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><a href="../classes/SaveComponent.html" class="tsd-signature-type tsd-kind-class">SaveComponent</a><span class="tsd-signature-symbol"> | </span><a href="../classes/SaveEntity.html" class="tsd-signature-type tsd-kind-class">SaveEntity</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/0de1b4bfd6c3ef436665babd41772cd80cd733bc/src/parser/satisfactory/blueprint/blueprint.types.ts#L8">src/parser/satisfactory/blueprint/blueprint.types.ts:8</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="Blueprint.html#compressionInfo" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>compression<wbr/>Info</span></a>
2
2
  <a href="Blueprint.html#config" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>config</span></a>
3
3
  <a href="Blueprint.html#header" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>header</span></a>
4
4
  <a href="Blueprint.html#name" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a>
5
5
  <a href="Blueprint.html#objects" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>objects</span></a>
6
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Properties</h2></summary><section><section class="tsd-panel tsd-member"><a id="compressionInfo" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>compression<wbr/>Info</span><a href="#compressionInfo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">compression<wbr/>Info</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ChunkCompressionInfo</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/f842d23760f2867da8bd86a834db5cc1b0fe5706/src/parser/satisfactory/blueprint/blueprint.types.ts#L27">src/parser/satisfactory/blueprint/blueprint.types.ts:27</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="config" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>config</span><a href="#config" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">config</span><span class="tsd-signature-symbol">:</span> <a href="BlueprintConfig.html" class="tsd-signature-type tsd-kind-interface">BlueprintConfig</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/f842d23760f2867da8bd86a834db5cc1b0fe5706/src/parser/satisfactory/blueprint/blueprint.types.ts#L29">src/parser/satisfactory/blueprint/blueprint.types.ts:29</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="header" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>header</span><a href="#header" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">header</span><span class="tsd-signature-symbol">:</span> <a href="../types/BlueprintHeader.html" class="tsd-signature-type tsd-kind-type-alias">BlueprintHeader</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/f842d23760f2867da8bd86a834db5cc1b0fe5706/src/parser/satisfactory/blueprint/blueprint.types.ts#L28">src/parser/satisfactory/blueprint/blueprint.types.ts:28</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="name" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>name</span><a href="#name" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/f842d23760f2867da8bd86a834db5cc1b0fe5706/src/parser/satisfactory/blueprint/blueprint.types.ts#L26">src/parser/satisfactory/blueprint/blueprint.types.ts:26</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="objects" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>objects</span><a href="#objects" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">objects</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><a href="../classes/SaveComponent.html" class="tsd-signature-type tsd-kind-class">SaveComponent</a><span class="tsd-signature-symbol"> | </span><a href="../classes/SaveEntity.html" class="tsd-signature-type tsd-kind-class">SaveEntity</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/f842d23760f2867da8bd86a834db5cc1b0fe5706/src/parser/satisfactory/blueprint/blueprint.types.ts#L30">src/parser/satisfactory/blueprint/blueprint.types.ts:30</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#compressionInfo" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>compression<wbr/>Info</span></a><a href="#config" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>config</span></a><a href="#header" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>header</span></a><a href="#name" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a><a href="#objects" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>objects</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@etothepii/satisfactory-file-parser</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
6
+ </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Properties</h2></summary><section><section class="tsd-panel tsd-member"><a id="compressionInfo" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>compression<wbr/>Info</span><a href="#compressionInfo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">compression<wbr/>Info</span><span class="tsd-signature-symbol">:</span> <a href="../types/ChunkCompressionInfo.html" class="tsd-signature-type tsd-kind-type-alias">ChunkCompressionInfo</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/0de1b4bfd6c3ef436665babd41772cd80cd733bc/src/parser/satisfactory/blueprint/blueprint.types.ts#L10">src/parser/satisfactory/blueprint/blueprint.types.ts:10</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="config" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>config</span><a href="#config" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">config</span><span class="tsd-signature-symbol">:</span> <a href="BlueprintConfig-1.html" class="tsd-signature-type tsd-kind-interface">BlueprintConfig</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/0de1b4bfd6c3ef436665babd41772cd80cd733bc/src/parser/satisfactory/blueprint/blueprint.types.ts#L12">src/parser/satisfactory/blueprint/blueprint.types.ts:12</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="header" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>header</span><a href="#header" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">header</span><span class="tsd-signature-symbol">:</span> <a href="../types/BlueprintHeader-1.html" class="tsd-signature-type tsd-kind-type-alias">BlueprintHeader</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/0de1b4bfd6c3ef436665babd41772cd80cd733bc/src/parser/satisfactory/blueprint/blueprint.types.ts#L11">src/parser/satisfactory/blueprint/blueprint.types.ts:11</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="name" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>name</span><a href="#name" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/0de1b4bfd6c3ef436665babd41772cd80cd733bc/src/parser/satisfactory/blueprint/blueprint.types.ts#L9">src/parser/satisfactory/blueprint/blueprint.types.ts:9</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="objects" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>objects</span><a href="#objects" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">objects</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><a href="../classes/SaveComponent.html" class="tsd-signature-type tsd-kind-class">SaveComponent</a><span class="tsd-signature-symbol"> | </span><a href="../classes/SaveEntity.html" class="tsd-signature-type tsd-kind-class">SaveEntity</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/etothepii4/satisfactory-file-parser/blob/0de1b4bfd6c3ef436665babd41772cd80cd733bc/src/parser/satisfactory/blueprint/blueprint.types.ts#L13">src/parser/satisfactory/blueprint/blueprint.types.ts:13</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#compressionInfo" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>compression<wbr/>Info</span></a><a href="#config" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>config</span></a><a href="#header" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>header</span></a><a href="#name" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a><a href="#objects" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>objects</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@etothepii/satisfactory-file-parser</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>