isaacscript-common 2.3.0 → 3.0.0

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 (1035) hide show
  1. package/cachedClasses.d.ts +37 -0
  2. package/cachedClasses.lua +30 -0
  3. package/callbacks/customRevive.d.ts +1 -0
  4. package/callbacks/customRevive.lua +147 -0
  5. package/callbacks/itemPickup.d.ts +1 -0
  6. package/callbacks/itemPickup.lua +66 -0
  7. package/callbacks/postBombInitLate.d.ts +1 -0
  8. package/callbacks/postBombInitLate.lua +33 -0
  9. package/callbacks/postBoneSwing.d.ts +1 -0
  10. package/callbacks/postBoneSwing.lua +50 -0
  11. package/callbacks/postCollectibleInitFirst.d.ts +1 -0
  12. package/callbacks/postCollectibleInitFirst.lua +34 -0
  13. package/callbacks/postCursedTeleport.d.ts +1 -0
  14. package/callbacks/postCursedTeleport.lua +121 -0
  15. package/callbacks/postCustomDoorEnter.d.ts +50 -0
  16. package/callbacks/postCustomDoorEnter.lua +247 -0
  17. package/callbacks/postDoorRender.d.ts +1 -0
  18. package/callbacks/postDoorRender.lua +26 -0
  19. package/callbacks/postDoorUpdate.d.ts +1 -0
  20. package/callbacks/postDoorUpdate.lua +26 -0
  21. package/callbacks/postEffectInitLate.d.ts +1 -0
  22. package/callbacks/postEffectInitLate.lua +33 -0
  23. package/callbacks/postEffectStateChanged.d.ts +1 -0
  24. package/callbacks/postEffectStateChanged.lua +39 -0
  25. package/callbacks/postEsauJr.d.ts +1 -0
  26. package/callbacks/postEsauJr.lua +69 -0
  27. package/callbacks/postFamiliarInitLate.d.ts +1 -0
  28. package/callbacks/postFamiliarInitLate.lua +33 -0
  29. package/callbacks/postFamiliarStateChanged.d.ts +1 -0
  30. package/callbacks/postFamiliarStateChanged.lua +39 -0
  31. package/callbacks/postFlip.d.ts +1 -0
  32. package/callbacks/postFlip.lua +63 -0
  33. package/callbacks/postGreedModeWave.d.ts +1 -0
  34. package/callbacks/postGreedModeWave.lua +34 -0
  35. package/callbacks/postGridEntity.d.ts +1 -0
  36. package/callbacks/postGridEntity.lua +107 -0
  37. package/callbacks/postGridEntityCollision.d.ts +1 -0
  38. package/callbacks/postGridEntityCollision.lua +67 -0
  39. package/callbacks/postGridEntityRender.d.ts +1 -0
  40. package/callbacks/postGridEntityRender.lua +26 -0
  41. package/callbacks/postHolyMantleRemoved.d.ts +1 -0
  42. package/callbacks/postHolyMantleRemoved.lua +41 -0
  43. package/callbacks/postItemDischarged.d.ts +2 -0
  44. package/callbacks/postItemDischarged.lua +104 -0
  45. package/callbacks/postKnifeInitLate.d.ts +1 -0
  46. package/callbacks/postKnifeInitLate.lua +33 -0
  47. package/callbacks/postLaserInitLate.d.ts +1 -0
  48. package/callbacks/postLaserInitLate.lua +33 -0
  49. package/callbacks/postNPCInitLate.d.ts +1 -0
  50. package/callbacks/postNPCInitLate.lua +33 -0
  51. package/callbacks/postNPCStateChanged.d.ts +1 -0
  52. package/callbacks/postNPCStateChanged.lua +39 -0
  53. package/callbacks/postNewRoomEarly.d.ts +1 -0
  54. package/callbacks/postNewRoomEarly.lua +67 -0
  55. package/callbacks/postPickupCollect.d.ts +1 -0
  56. package/callbacks/postPickupCollect.lua +41 -0
  57. package/callbacks/postPickupInitLate.d.ts +1 -0
  58. package/callbacks/postPickupInitLate.lua +33 -0
  59. package/callbacks/postPickupStateChanged.d.ts +1 -0
  60. package/callbacks/postPickupStateChanged.lua +39 -0
  61. package/callbacks/postPitRender.d.ts +1 -0
  62. package/callbacks/postPitRender.lua +26 -0
  63. package/callbacks/postPitUpdate.d.ts +1 -0
  64. package/callbacks/postPitUpdate.lua +26 -0
  65. package/callbacks/postPlayerChangeHealth.d.ts +1 -0
  66. package/callbacks/postPlayerChangeHealth.lua +52 -0
  67. package/callbacks/postPlayerChangeType.d.ts +1 -0
  68. package/callbacks/postPlayerChangeType.lua +41 -0
  69. package/callbacks/postPlayerFatalDamage.d.ts +1 -0
  70. package/callbacks/postPlayerFatalDamage.lua +73 -0
  71. package/callbacks/postPlayerInitLate.d.ts +1 -0
  72. package/callbacks/postPlayerInitLate.lua +35 -0
  73. package/callbacks/postPlayerReordered.d.ts +1 -0
  74. package/callbacks/postPlayerReordered.lua +114 -0
  75. package/callbacks/postPoopRender.d.ts +1 -0
  76. package/callbacks/postPoopRender.lua +26 -0
  77. package/callbacks/postPoopUpdate.d.ts +1 -0
  78. package/callbacks/postPoopUpdate.lua +26 -0
  79. package/callbacks/postPressurePlateRender.d.ts +1 -0
  80. package/callbacks/postPressurePlateRender.lua +26 -0
  81. package/callbacks/postPressurePlateUpdate.d.ts +1 -0
  82. package/callbacks/postPressurePlateUpdate.lua +26 -0
  83. package/callbacks/postProjectileInitLate.d.ts +1 -0
  84. package/callbacks/postProjectileInitLate.lua +33 -0
  85. package/callbacks/postPurchase.d.ts +1 -0
  86. package/callbacks/postPurchase.lua +51 -0
  87. package/callbacks/postRockRender.d.ts +1 -0
  88. package/callbacks/postRockRender.lua +26 -0
  89. package/callbacks/postRockUpdate.d.ts +1 -0
  90. package/callbacks/postRockUpdate.lua +26 -0
  91. package/callbacks/postRoomClearChanged.d.ts +1 -0
  92. package/callbacks/postRoomClearChanged.lua +42 -0
  93. package/callbacks/postSacrifice.d.ts +1 -0
  94. package/callbacks/postSacrifice.lua +44 -0
  95. package/callbacks/postSlotInitUpdate.d.ts +1 -0
  96. package/callbacks/postSlotInitUpdate.lua +53 -0
  97. package/callbacks/postSlotRender.d.ts +1 -0
  98. package/callbacks/postSlotRender.lua +76 -0
  99. package/callbacks/postSpikesRender.d.ts +1 -0
  100. package/callbacks/postSpikesRender.lua +26 -0
  101. package/callbacks/postSpikesUpdate.d.ts +1 -0
  102. package/callbacks/postSpikesUpdate.lua +26 -0
  103. package/callbacks/postTNTRender.d.ts +1 -0
  104. package/callbacks/postTNTRender.lua +26 -0
  105. package/callbacks/postTNTUpdate.d.ts +1 -0
  106. package/callbacks/postTNTUpdate.lua +26 -0
  107. package/callbacks/postTearInitLate.d.ts +1 -0
  108. package/callbacks/postTearInitLate.lua +33 -0
  109. package/callbacks/postTearInitVeryLate.d.ts +1 -0
  110. package/callbacks/postTearInitVeryLate.lua +36 -0
  111. package/callbacks/postTransformation.d.ts +1 -0
  112. package/callbacks/postTransformation.lua +48 -0
  113. package/callbacks/postTrinketBreak.d.ts +1 -0
  114. package/callbacks/postTrinketBreak.lua +72 -0
  115. package/callbacks/preBerserkDeath.d.ts +1 -0
  116. package/callbacks/preBerserkDeath.lua +38 -0
  117. package/callbacks/preNewLevel.d.ts +1 -0
  118. package/callbacks/preNewLevel.lua +45 -0
  119. package/callbacks/reorderedCallbacks.d.ts +20 -0
  120. package/callbacks/reorderedCallbacks.lua +108 -0
  121. package/callbacks/subscriptions/postBombInitLate.d.ts +5 -0
  122. package/callbacks/subscriptions/postBombInitLate.lua +29 -0
  123. package/callbacks/subscriptions/postBoneSwing.d.ts +4 -0
  124. package/callbacks/subscriptions/postBoneSwing.lua +22 -0
  125. package/callbacks/subscriptions/postCollectibleInitFirst.d.ts +5 -0
  126. package/callbacks/subscriptions/postCollectibleInitFirst.lua +29 -0
  127. package/callbacks/subscriptions/postCursedTeleport.d.ts +4 -0
  128. package/callbacks/subscriptions/postCursedTeleport.lua +22 -0
  129. package/callbacks/subscriptions/postCustomDoorEnter.d.ts +5 -0
  130. package/callbacks/subscriptions/postCustomDoorEnter.lua +35 -0
  131. package/callbacks/subscriptions/postCustomRevive.d.ts +5 -0
  132. package/callbacks/subscriptions/postCustomRevive.lua +29 -0
  133. package/callbacks/subscriptions/postDoorRender.d.ts +5 -0
  134. package/callbacks/subscriptions/postDoorRender.lua +30 -0
  135. package/callbacks/subscriptions/postDoorUpdate.d.ts +5 -0
  136. package/callbacks/subscriptions/postDoorUpdate.lua +30 -0
  137. package/callbacks/subscriptions/postEffectInitLate.d.ts +5 -0
  138. package/callbacks/subscriptions/postEffectInitLate.lua +29 -0
  139. package/callbacks/subscriptions/postEffectStateChanged.d.ts +5 -0
  140. package/callbacks/subscriptions/postEffectStateChanged.lua +29 -0
  141. package/callbacks/subscriptions/postEsauJr.d.ts +4 -0
  142. package/callbacks/subscriptions/postEsauJr.lua +22 -0
  143. package/callbacks/subscriptions/postFamiliarInitLate.d.ts +5 -0
  144. package/callbacks/subscriptions/postFamiliarInitLate.lua +29 -0
  145. package/callbacks/subscriptions/postFamiliarStateChanged.d.ts +5 -0
  146. package/callbacks/subscriptions/postFamiliarStateChanged.lua +29 -0
  147. package/callbacks/subscriptions/postFirstEsauJr.d.ts +4 -0
  148. package/callbacks/subscriptions/postFirstEsauJr.lua +22 -0
  149. package/callbacks/subscriptions/postFirstFlip.d.ts +4 -0
  150. package/callbacks/subscriptions/postFirstFlip.lua +22 -0
  151. package/callbacks/subscriptions/postFlip.d.ts +4 -0
  152. package/callbacks/subscriptions/postFlip.lua +22 -0
  153. package/callbacks/subscriptions/postGameStartedReordered.d.ts +3 -0
  154. package/callbacks/subscriptions/postGameStartedReordered.lua +22 -0
  155. package/callbacks/subscriptions/postGreedModeWave.d.ts +4 -0
  156. package/callbacks/subscriptions/postGreedModeWave.lua +22 -0
  157. package/callbacks/subscriptions/postGridEntityBroken.d.ts +6 -0
  158. package/callbacks/subscriptions/postGridEntityBroken.lua +35 -0
  159. package/callbacks/subscriptions/postGridEntityCollision.d.ts +6 -0
  160. package/callbacks/subscriptions/postGridEntityCollision.lua +35 -0
  161. package/callbacks/subscriptions/postGridEntityInit.d.ts +6 -0
  162. package/callbacks/subscriptions/postGridEntityInit.lua +35 -0
  163. package/callbacks/subscriptions/postGridEntityRemove.d.ts +6 -0
  164. package/callbacks/subscriptions/postGridEntityRemove.lua +33 -0
  165. package/callbacks/subscriptions/postGridEntityRender.d.ts +6 -0
  166. package/callbacks/subscriptions/postGridEntityRender.lua +35 -0
  167. package/callbacks/subscriptions/postGridEntityStateChanged.d.ts +6 -0
  168. package/callbacks/subscriptions/postGridEntityStateChanged.lua +35 -0
  169. package/callbacks/subscriptions/postGridEntityUpdate.d.ts +6 -0
  170. package/callbacks/subscriptions/postGridEntityUpdate.lua +35 -0
  171. package/callbacks/subscriptions/postHolyMantleRemoved.d.ts +6 -0
  172. package/callbacks/subscriptions/postHolyMantleRemoved.lua +34 -0
  173. package/callbacks/subscriptions/postItemDischarged.d.ts +5 -0
  174. package/callbacks/subscriptions/postItemDischarged.lua +29 -0
  175. package/callbacks/subscriptions/postItemPickup.d.ts +11 -0
  176. package/callbacks/subscriptions/postItemPickup.lua +33 -0
  177. package/callbacks/subscriptions/postKnifeInitLate.d.ts +5 -0
  178. package/callbacks/subscriptions/postKnifeInitLate.lua +29 -0
  179. package/callbacks/subscriptions/postLaserInitLate.d.ts +5 -0
  180. package/callbacks/subscriptions/postLaserInitLate.lua +29 -0
  181. package/callbacks/subscriptions/postNPCInitLate.d.ts +5 -0
  182. package/callbacks/subscriptions/postNPCInitLate.lua +29 -0
  183. package/callbacks/subscriptions/postNPCStateChanged.d.ts +6 -0
  184. package/callbacks/subscriptions/postNPCStateChanged.lua +33 -0
  185. package/callbacks/subscriptions/postNewLevelReordered.d.ts +1 -0
  186. package/callbacks/subscriptions/postNewLevelReordered.lua +22 -0
  187. package/callbacks/subscriptions/postNewRoomEarly.d.ts +1 -0
  188. package/callbacks/subscriptions/postNewRoomEarly.lua +22 -0
  189. package/callbacks/subscriptions/postNewRoomReordered.d.ts +1 -0
  190. package/callbacks/subscriptions/postNewRoomReordered.lua +22 -0
  191. package/callbacks/subscriptions/postPEffectUpdateReordered.d.ts +6 -0
  192. package/callbacks/subscriptions/postPEffectUpdateReordered.lua +34 -0
  193. package/callbacks/subscriptions/postPickupCollect.d.ts +4 -0
  194. package/callbacks/subscriptions/postPickupCollect.lua +29 -0
  195. package/callbacks/subscriptions/postPickupInitLate.d.ts +3 -0
  196. package/callbacks/subscriptions/postPickupInitLate.lua +29 -0
  197. package/callbacks/subscriptions/postPickupStateChanged.d.ts +5 -0
  198. package/callbacks/subscriptions/postPickupStateChanged.lua +29 -0
  199. package/callbacks/subscriptions/postPitRender.d.ts +5 -0
  200. package/callbacks/subscriptions/postPitRender.lua +30 -0
  201. package/callbacks/subscriptions/postPitUpdate.d.ts +5 -0
  202. package/callbacks/subscriptions/postPitUpdate.lua +30 -0
  203. package/callbacks/subscriptions/postPlayerChangeHealth.d.ts +7 -0
  204. package/callbacks/subscriptions/postPlayerChangeHealth.lua +34 -0
  205. package/callbacks/subscriptions/postPlayerChangeType.d.ts +5 -0
  206. package/callbacks/subscriptions/postPlayerChangeType.lua +29 -0
  207. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +6 -0
  208. package/callbacks/subscriptions/postPlayerFatalDamage.lua +45 -0
  209. package/callbacks/subscriptions/postPlayerInitLate.d.ts +6 -0
  210. package/callbacks/subscriptions/postPlayerInitLate.lua +34 -0
  211. package/callbacks/subscriptions/postPlayerInitReordered.d.ts +6 -0
  212. package/callbacks/subscriptions/postPlayerInitReordered.lua +34 -0
  213. package/callbacks/subscriptions/postPlayerRenderReordered.d.ts +6 -0
  214. package/callbacks/subscriptions/postPlayerRenderReordered.lua +34 -0
  215. package/callbacks/subscriptions/postPlayerUpdateReordered.d.ts +6 -0
  216. package/callbacks/subscriptions/postPlayerUpdateReordered.lua +34 -0
  217. package/callbacks/subscriptions/postPoopRender.d.ts +5 -0
  218. package/callbacks/subscriptions/postPoopRender.lua +30 -0
  219. package/callbacks/subscriptions/postPoopUpdate.d.ts +5 -0
  220. package/callbacks/subscriptions/postPoopUpdate.lua +30 -0
  221. package/callbacks/subscriptions/postPressurePlateRender.d.ts +5 -0
  222. package/callbacks/subscriptions/postPressurePlateRender.lua +30 -0
  223. package/callbacks/subscriptions/postPressurePlateUpdate.d.ts +5 -0
  224. package/callbacks/subscriptions/postPressurePlateUpdate.lua +30 -0
  225. package/callbacks/subscriptions/postProjectileInitLate.d.ts +5 -0
  226. package/callbacks/subscriptions/postProjectileInitLate.lua +29 -0
  227. package/callbacks/subscriptions/postPurchase.d.ts +6 -0
  228. package/callbacks/subscriptions/postPurchase.lua +22 -0
  229. package/callbacks/subscriptions/postRockRender.d.ts +5 -0
  230. package/callbacks/subscriptions/postRockRender.lua +30 -0
  231. package/callbacks/subscriptions/postRockUpdate.d.ts +5 -0
  232. package/callbacks/subscriptions/postRockUpdate.lua +30 -0
  233. package/callbacks/subscriptions/postRoomClearChanged.d.ts +3 -0
  234. package/callbacks/subscriptions/postRoomClearChanged.lua +22 -0
  235. package/callbacks/subscriptions/postSacrifice.d.ts +6 -0
  236. package/callbacks/subscriptions/postSacrifice.lua +34 -0
  237. package/callbacks/subscriptions/postSlotAnimationChanged.d.ts +5 -0
  238. package/callbacks/subscriptions/postSlotAnimationChanged.lua +29 -0
  239. package/callbacks/subscriptions/postSlotDestroyed.d.ts +5 -0
  240. package/callbacks/subscriptions/postSlotDestroyed.lua +29 -0
  241. package/callbacks/subscriptions/postSlotInit.d.ts +5 -0
  242. package/callbacks/subscriptions/postSlotInit.lua +29 -0
  243. package/callbacks/subscriptions/postSlotRender.d.ts +5 -0
  244. package/callbacks/subscriptions/postSlotRender.lua +29 -0
  245. package/callbacks/subscriptions/postSlotUpdate.d.ts +5 -0
  246. package/callbacks/subscriptions/postSlotUpdate.lua +29 -0
  247. package/callbacks/subscriptions/postSpikesRender.d.ts +5 -0
  248. package/callbacks/subscriptions/postSpikesRender.lua +30 -0
  249. package/callbacks/subscriptions/postSpikesUpdate.d.ts +5 -0
  250. package/callbacks/subscriptions/postSpikesUpdate.lua +30 -0
  251. package/callbacks/subscriptions/postTNTRender.d.ts +5 -0
  252. package/callbacks/subscriptions/postTNTRender.lua +30 -0
  253. package/callbacks/subscriptions/postTNTUpdate.d.ts +5 -0
  254. package/callbacks/subscriptions/postTNTUpdate.lua +30 -0
  255. package/callbacks/subscriptions/postTearInitLate.d.ts +5 -0
  256. package/callbacks/subscriptions/postTearInitLate.lua +29 -0
  257. package/callbacks/subscriptions/postTearInitVeryLate.d.ts +5 -0
  258. package/callbacks/subscriptions/postTearInitVeryLate.lua +29 -0
  259. package/callbacks/subscriptions/postTransformation.d.ts +5 -0
  260. package/callbacks/subscriptions/postTransformation.lua +29 -0
  261. package/callbacks/subscriptions/postTrinketBreak.d.ts +5 -0
  262. package/callbacks/subscriptions/postTrinketBreak.lua +29 -0
  263. package/callbacks/subscriptions/preBerserkDeath.d.ts +6 -0
  264. package/callbacks/subscriptions/preBerserkDeath.lua +35 -0
  265. package/callbacks/subscriptions/preCustomRevive.d.ts +6 -0
  266. package/callbacks/subscriptions/preCustomRevive.lua +38 -0
  267. package/callbacks/subscriptions/preItemPickup.d.ts +11 -0
  268. package/callbacks/subscriptions/preItemPickup.lua +33 -0
  269. package/callbacks/subscriptions/preNewLevel.d.ts +4 -0
  270. package/callbacks/subscriptions/preNewLevel.lua +22 -0
  271. package/classes/DefaultMap.d.ts +110 -0
  272. package/classes/DefaultMap.lua +135 -0
  273. package/classes/ModUpgraded.d.ts +23 -0
  274. package/classes/ModUpgraded.lua +43 -0
  275. package/constants.d.ts +104 -0
  276. package/constants.lua +86 -0
  277. package/constantsFirstLast.d.ts +130 -0
  278. package/constantsFirstLast.lua +113 -0
  279. package/enums/HealthType.d.ts +16 -0
  280. package/enums/HealthType.lua +24 -0
  281. package/enums/ModCallbackCustom.d.ts +860 -0
  282. package/enums/ModCallbackCustom.lua +159 -0
  283. package/enums/PocketItemType.d.ts +8 -0
  284. package/enums/PocketItemType.lua +15 -0
  285. package/enums/SerializationType.d.ts +5 -0
  286. package/enums/SerializationType.lua +9 -0
  287. package/enums/private/CopyableIsaacAPIClassType.d.ts +7 -0
  288. package/enums/private/CopyableIsaacAPIClassType.lua +8 -0
  289. package/enums/private/SaveDataKey.d.ts +7 -0
  290. package/enums/private/SaveDataKey.lua +11 -0
  291. package/enums/private/SerializationBrand.d.ts +37 -0
  292. package/enums/private/SerializationBrand.lua +17 -0
  293. package/features/characterHealthConversion.d.ts +9 -0
  294. package/features/characterHealthConversion.lua +91 -0
  295. package/features/characterStats.d.ts +19 -0
  296. package/features/characterStats.lua +54 -0
  297. package/features/debugDisplay/debugDisplay.d.ts +2 -0
  298. package/features/debugDisplay/debugDisplay.lua +181 -0
  299. package/features/debugDisplay/exports.d.ts +199 -0
  300. package/features/debugDisplay/exports.lua +223 -0
  301. package/features/debugDisplay/v.d.ts +44 -0
  302. package/features/debugDisplay/v.lua +54 -0
  303. package/features/deployJSONRoom.d.ts +65 -0
  304. package/features/deployJSONRoom.lua +519 -0
  305. package/features/disableInputs.d.ts +62 -0
  306. package/features/disableInputs.lua +134 -0
  307. package/features/disableSound.d.ts +18 -0
  308. package/features/disableSound.lua +62 -0
  309. package/features/extraConsoleCommands/commandsDisplay.d.ts +162 -0
  310. package/features/extraConsoleCommands/commandsDisplay.lua +219 -0
  311. package/features/extraConsoleCommands/commandsSubroutines.d.ts +9 -0
  312. package/features/extraConsoleCommands/commandsSubroutines.lua +129 -0
  313. package/features/extraConsoleCommands/init.d.ts +26 -0
  314. package/features/extraConsoleCommands/init.lua +265 -0
  315. package/features/extraConsoleCommands/listCommands.d.ts +349 -0
  316. package/features/extraConsoleCommands/listCommands.lua +1094 -0
  317. package/features/extraConsoleCommands/v.d.ts +13 -0
  318. package/features/extraConsoleCommands/v.lua +10 -0
  319. package/features/fadeInRemover.d.ts +14 -0
  320. package/features/fadeInRemover.lua +55 -0
  321. package/features/fastReset.d.ts +14 -0
  322. package/features/fastReset.lua +59 -0
  323. package/features/forgottenSwitch.d.ts +5 -0
  324. package/features/forgottenSwitch.lua +32 -0
  325. package/features/getCollectibleItemPoolType.d.ts +7 -0
  326. package/features/getCollectibleItemPoolType.lua +48 -0
  327. package/features/playerInventory.d.ts +23 -0
  328. package/features/playerInventory.lua +147 -0
  329. package/features/ponyDetection.d.ts +6 -0
  330. package/features/ponyDetection.lua +53 -0
  331. package/features/preventCollectibleRotation.d.ts +11 -0
  332. package/features/preventCollectibleRotation.lua +67 -0
  333. package/features/runInNFrames.d.ts +61 -0
  334. package/features/runInNFrames.lua +128 -0
  335. package/features/saveDataManager/constants.d.ts +3 -0
  336. package/features/saveDataManager/constants.lua +5 -0
  337. package/features/saveDataManager/exports.d.ts +131 -0
  338. package/features/saveDataManager/exports.lua +181 -0
  339. package/features/saveDataManager/load.d.ts +4 -0
  340. package/features/saveDataManager/load.lua +66 -0
  341. package/features/saveDataManager/main.d.ts +3 -0
  342. package/features/saveDataManager/main.lua +125 -0
  343. package/features/saveDataManager/maps.d.ts +10 -0
  344. package/features/saveDataManager/maps.lua +11 -0
  345. package/features/saveDataManager/merge.d.ts +24 -0
  346. package/features/saveDataManager/merge.lua +144 -0
  347. package/features/saveDataManager/save.d.ts +4 -0
  348. package/features/saveDataManager/save.lua +44 -0
  349. package/features/saveDataManager/serializationBrand.d.ts +1 -0
  350. package/features/saveDataManager/serializationBrand.lua +17 -0
  351. package/features/sirenHelpers.d.ts +18 -0
  352. package/features/sirenHelpers.lua +82 -0
  353. package/features/taintedLazarusPlayers.d.ts +13 -0
  354. package/features/taintedLazarusPlayers.lua +85 -0
  355. package/featuresInitialized.d.ts +1 -0
  356. package/featuresInitialized.lua +20 -0
  357. package/functions/array.d.ts +141 -0
  358. package/functions/array.lua +354 -0
  359. package/functions/benchmark.d.ts +10 -0
  360. package/functions/benchmark.lua +38 -0
  361. package/functions/bitwise.d.ts +4 -0
  362. package/functions/bitwise.lua +21 -0
  363. package/functions/boss.d.ts +56 -0
  364. package/functions/boss.lua +218 -0
  365. package/functions/cacheFlag.d.ts +8 -0
  366. package/functions/cacheFlag.lua +11 -0
  367. package/functions/cards.d.ts +95 -0
  368. package/functions/cards.lua +234 -0
  369. package/functions/challenges.d.ts +3 -0
  370. package/functions/challenges.lua +10 -0
  371. package/functions/character.d.ts +48 -0
  372. package/functions/character.lua +96 -0
  373. package/functions/charge.d.ts +54 -0
  374. package/functions/charge.lua +162 -0
  375. package/functions/chargeBar.d.ts +12 -0
  376. package/functions/chargeBar.lua +47 -0
  377. package/functions/collectibleCacheFlag.d.ts +23 -0
  378. package/functions/collectibleCacheFlag.lua +80 -0
  379. package/functions/collectibleSet.d.ts +9 -0
  380. package/functions/collectibleSet.lua +54 -0
  381. package/functions/collectibleTag.d.ts +16 -0
  382. package/functions/collectibleTag.lua +83 -0
  383. package/functions/collectibles.d.ts +211 -0
  384. package/functions/collectibles.lua +412 -0
  385. package/functions/color.d.ts +45 -0
  386. package/functions/color.lua +140 -0
  387. package/functions/debug.d.ts +27 -0
  388. package/functions/debug.lua +49 -0
  389. package/functions/deepCopy.d.ts +29 -0
  390. package/functions/deepCopy.lua +382 -0
  391. package/functions/deepCopyTests.d.ts +1 -0
  392. package/functions/deepCopyTests.lua +316 -0
  393. package/functions/direction.d.ts +4 -0
  394. package/functions/direction.lua +17 -0
  395. package/functions/doors.d.ts +117 -0
  396. package/functions/doors.lua +284 -0
  397. package/functions/easing.d.ts +30 -0
  398. package/functions/easing.lua +115 -0
  399. package/functions/eden.d.ts +3 -0
  400. package/functions/eden.lua +47 -0
  401. package/functions/entity.d.ts +131 -0
  402. package/functions/entity.lua +321 -0
  403. package/functions/entitySpecific.d.ts +264 -0
  404. package/functions/entitySpecific.lua +832 -0
  405. package/functions/entityTypes.d.ts +3 -0
  406. package/functions/entityTypes.lua +8 -0
  407. package/functions/enums.d.ts +80 -0
  408. package/functions/enums.lua +147 -0
  409. package/functions/familiars.d.ts +60 -0
  410. package/functions/familiars.lua +85 -0
  411. package/functions/flag.d.ts +99 -0
  412. package/functions/flag.lua +124 -0
  413. package/functions/flying.d.ts +19 -0
  414. package/functions/flying.lua +77 -0
  415. package/functions/globals.d.ts +14 -0
  416. package/functions/globals.lua +236 -0
  417. package/functions/gridEntity.d.ts +155 -0
  418. package/functions/gridEntity.lua +368 -0
  419. package/functions/gridEntitySpecific.d.ts +18 -0
  420. package/functions/gridEntitySpecific.lua +96 -0
  421. package/functions/input.d.ts +32 -0
  422. package/functions/input.lua +117 -0
  423. package/functions/isaacAPIClass.d.ts +23 -0
  424. package/functions/isaacAPIClass.lua +47 -0
  425. package/functions/jsonHelpers.d.ts +18 -0
  426. package/functions/jsonHelpers.lua +37 -0
  427. package/functions/jsonRoom.d.ts +12 -0
  428. package/functions/jsonRoom.lua +91 -0
  429. package/functions/kColor.d.ts +31 -0
  430. package/functions/kColor.lua +110 -0
  431. package/functions/language.d.ts +8 -0
  432. package/functions/language.lua +13 -0
  433. package/functions/level.d.ts +1 -0
  434. package/functions/level.lua +29 -0
  435. package/functions/log.d.ts +78 -0
  436. package/functions/log.lua +547 -0
  437. package/functions/map.d.ts +22 -0
  438. package/functions/map.lua +61 -0
  439. package/functions/math.d.ts +50 -0
  440. package/functions/math.lua +118 -0
  441. package/functions/mergeTests.d.ts +1 -0
  442. package/functions/mergeTests.lua +182 -0
  443. package/functions/npc.d.ts +40 -0
  444. package/functions/npc.lua +128 -0
  445. package/functions/pickupVariants.d.ts +23 -0
  446. package/functions/pickupVariants.lua +48 -0
  447. package/functions/pickups.d.ts +132 -0
  448. package/functions/pickups.lua +474 -0
  449. package/functions/pills.d.ts +69 -0
  450. package/functions/pills.lua +128 -0
  451. package/functions/player.d.ts +296 -0
  452. package/functions/player.lua +777 -0
  453. package/functions/playerDataStructures.d.ts +92 -0
  454. package/functions/playerDataStructures.lua +103 -0
  455. package/functions/playerHealth.d.ts +22 -0
  456. package/functions/playerHealth.lua +296 -0
  457. package/functions/playerIndex.d.ts +68 -0
  458. package/functions/playerIndex.lua +174 -0
  459. package/functions/pocketItems.d.ts +33 -0
  460. package/functions/pocketItems.lua +104 -0
  461. package/functions/positionVelocity.d.ts +64 -0
  462. package/functions/positionVelocity.lua +154 -0
  463. package/functions/random.d.ts +42 -0
  464. package/functions/random.lua +70 -0
  465. package/functions/revive.d.ts +31 -0
  466. package/functions/revive.lua +117 -0
  467. package/functions/rng.d.ts +53 -0
  468. package/functions/rng.lua +148 -0
  469. package/functions/roomData.d.ts +108 -0
  470. package/functions/roomData.lua +160 -0
  471. package/functions/roomGrid.d.ts +40 -0
  472. package/functions/roomGrid.lua +80 -0
  473. package/functions/roomShape.d.ts +43 -0
  474. package/functions/roomShape.lua +67 -0
  475. package/functions/rooms.d.ts +194 -0
  476. package/functions/rooms.lua +482 -0
  477. package/functions/run.d.ts +12 -0
  478. package/functions/run.lua +33 -0
  479. package/functions/seeds.d.ts +9 -0
  480. package/functions/seeds.lua +19 -0
  481. package/functions/serialization.d.ts +11 -0
  482. package/functions/serialization.lua +69 -0
  483. package/functions/set.d.ts +39 -0
  484. package/functions/set.lua +83 -0
  485. package/functions/sound.d.ts +1 -0
  486. package/functions/sound.lua +13 -0
  487. package/functions/spawnCollectible.d.ts +31 -0
  488. package/functions/spawnCollectible.lua +94 -0
  489. package/functions/sprite.d.ts +36 -0
  490. package/functions/sprite.lua +89 -0
  491. package/functions/stage.d.ts +35 -0
  492. package/functions/stage.lua +86 -0
  493. package/functions/string.d.ts +13 -0
  494. package/functions/string.lua +42 -0
  495. package/functions/table.d.ts +36 -0
  496. package/functions/table.lua +98 -0
  497. package/functions/tears.d.ts +22 -0
  498. package/functions/tears.lua +26 -0
  499. package/functions/transformations.d.ts +30 -0
  500. package/functions/transformations.lua +114 -0
  501. package/functions/trinketCacheFlag.d.ts +10 -0
  502. package/functions/trinketCacheFlag.lua +53 -0
  503. package/functions/trinketGive.d.ts +38 -0
  504. package/functions/trinketGive.lua +114 -0
  505. package/functions/trinkets.d.ts +73 -0
  506. package/functions/trinkets.lua +167 -0
  507. package/functions/tstlClass.d.ts +20 -0
  508. package/functions/tstlClass.lua +65 -0
  509. package/functions/ui.d.ts +34 -0
  510. package/functions/ui.lua +111 -0
  511. package/functions/utils.d.ts +113 -0
  512. package/functions/utils.lua +182 -0
  513. package/functions/vector.d.ts +32 -0
  514. package/functions/vector.lua +127 -0
  515. package/index.d.ts +129 -0
  516. package/index.lua +900 -0
  517. package/initCustomCallbacks.d.ts +2 -0
  518. package/initCustomCallbacks.lua +178 -0
  519. package/initFeatures.d.ts +3 -0
  520. package/initFeatures.lua +51 -0
  521. package/interfaces/AddCallbackParameterCustom.d.ts +153 -0
  522. package/interfaces/AddCallbackParameterCustom.lua +4 -0
  523. package/interfaces/ChargeBarSprites.d.ts +13 -0
  524. package/interfaces/ChargeBarSprites.lua +2 -0
  525. package/interfaces/JSONDoor.d.ts +11 -0
  526. package/interfaces/JSONDoor.lua +2 -0
  527. package/interfaces/JSONEntity.d.ts +13 -0
  528. package/interfaces/JSONEntity.lua +2 -0
  529. package/interfaces/JSONRoom.d.ts +26 -0
  530. package/interfaces/JSONRoom.lua +2 -0
  531. package/interfaces/JSONRooms.d.ts +11 -0
  532. package/interfaces/JSONRooms.lua +2 -0
  533. package/interfaces/JSONSpawn.d.ts +11 -0
  534. package/interfaces/JSONSpawn.lua +2 -0
  535. package/interfaces/PlayerHealth.d.ts +15 -0
  536. package/interfaces/PlayerHealth.lua +2 -0
  537. package/interfaces/PocketItemDescription.d.ts +8 -0
  538. package/interfaces/PocketItemDescription.lua +2 -0
  539. package/interfaces/SaveData.d.ts +29 -0
  540. package/interfaces/SaveData.lua +2 -0
  541. package/interfaces/TrinketSituation.d.ts +8 -0
  542. package/interfaces/TrinketSituation.lua +2 -0
  543. package/interfaces/private/TSTLClassMetatable.d.ts +10 -0
  544. package/interfaces/private/TSTLClassMetatable.lua +2 -0
  545. package/lualib_bundle.lua +2475 -0
  546. package/maps/cardMap.d.ts +3 -0
  547. package/maps/cardMap.lua +212 -0
  548. package/maps/characterMap.d.ts +3 -0
  549. package/maps/characterMap.lua +90 -0
  550. package/maps/collectibleDescriptionMap.d.ts +3 -0
  551. package/maps/collectibleDescriptionMap.lua +728 -0
  552. package/maps/collectibleNameMap.d.ts +3 -0
  553. package/maps/collectibleNameMap.lua +728 -0
  554. package/maps/defaultPlayerStatMap.d.ts +3 -0
  555. package/maps/defaultPlayerStatMap.lua +25 -0
  556. package/maps/gridEntityTypeToBrokenStateMap.d.ts +2 -0
  557. package/maps/gridEntityTypeToBrokenStateMap.lua +26 -0
  558. package/maps/gridEntityXMLMap.d.ts +9 -0
  559. package/maps/gridEntityXMLMap.lua +53 -0
  560. package/maps/pillEffectMap.d.ts +3 -0
  561. package/maps/pillEffectMap.lua +90 -0
  562. package/maps/roomShapeToTopLeftWallGridIndexMap.d.ts +7 -0
  563. package/maps/roomShapeToTopLeftWallGridIndexMap.lua +17 -0
  564. package/maps/roomTypeMap.d.ts +3 -0
  565. package/maps/roomTypeMap.lua +45 -0
  566. package/maps/trinketDescriptionMap.d.ts +3 -0
  567. package/maps/trinketDescriptionMap.lua +196 -0
  568. package/maps/trinketNameMap.d.ts +3 -0
  569. package/maps/trinketNameMap.lua +196 -0
  570. package/objects/LRoomShapeToRectangles.d.ts +13 -0
  571. package/objects/LRoomShapeToRectangles.lua +35 -0
  572. package/objects/callbackRegisterFunctions.d.ts +5 -0
  573. package/objects/callbackRegisterFunctions.lua +231 -0
  574. package/objects/cardDescriptions.d.ts +5 -0
  575. package/objects/cardDescriptions.lua +105 -0
  576. package/objects/cardNames.d.ts +5 -0
  577. package/objects/cardNames.lua +105 -0
  578. package/objects/cardTypes.d.ts +5 -0
  579. package/objects/cardTypes.lua +106 -0
  580. package/objects/challengeNames.d.ts +5 -0
  581. package/objects/challengeNames.lua +53 -0
  582. package/objects/characterNames.d.ts +5 -0
  583. package/objects/characterNames.lua +49 -0
  584. package/objects/coinSubTypeToValue.d.ts +5 -0
  585. package/objects/coinSubTypeToValue.lua +15 -0
  586. package/objects/colors.d.ts +17 -0
  587. package/objects/colors.lua +16 -0
  588. package/objects/directionNames.d.ts +4 -0
  589. package/objects/directionNames.lua +11 -0
  590. package/objects/directionToDegrees.d.ts +4 -0
  591. package/objects/directionToDegrees.lua +11 -0
  592. package/objects/directionToVector.d.ts +4 -0
  593. package/objects/directionToVector.lua +13 -0
  594. package/objects/doorSlotFlagToDoorSlot.d.ts +5 -0
  595. package/objects/doorSlotFlagToDoorSlot.lua +16 -0
  596. package/objects/doorSlotToDirection.d.ts +4 -0
  597. package/objects/doorSlotToDirection.lua +16 -0
  598. package/objects/isaacAPIClassTypeToBrand.d.ts +5 -0
  599. package/objects/isaacAPIClassTypeToBrand.lua +7 -0
  600. package/objects/isaacAPIClassTypeToCopyFunction.d.ts +5 -0
  601. package/objects/isaacAPIClassTypeToCopyFunction.lua +13 -0
  602. package/objects/languageNames.d.ts +4 -0
  603. package/objects/languageNames.lua +13 -0
  604. package/objects/pillEffectClasses.d.ts +5 -0
  605. package/objects/pillEffectClasses.lua +59 -0
  606. package/objects/pillEffectNames.d.ts +5 -0
  607. package/objects/pillEffectNames.lua +57 -0
  608. package/objects/pillEffectTypes.d.ts +5 -0
  609. package/objects/pillEffectTypes.lua +58 -0
  610. package/objects/roomShapeBounds.d.ts +8 -0
  611. package/objects/roomShapeBounds.lua +26 -0
  612. package/objects/roomShapeLayoutSizes.d.ts +10 -0
  613. package/objects/roomShapeLayoutSizes.lua +29 -0
  614. package/objects/roomShapeToBottomRightPosition.d.ts +8 -0
  615. package/objects/roomShapeToBottomRightPosition.lua +22 -0
  616. package/objects/roomShapeToDoorSlots.d.ts +4 -0
  617. package/objects/roomShapeToDoorSlots.lua +46 -0
  618. package/objects/roomShapeToDoorSlotsToGridIndexDelta.d.ts +8 -0
  619. package/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +89 -0
  620. package/objects/roomShapeToGridWidth.d.ts +4 -0
  621. package/objects/roomShapeToGridWidth.lua +20 -0
  622. package/objects/roomShapeToTopLeftPosition.d.ts +8 -0
  623. package/objects/roomShapeToTopLeftPosition.lua +24 -0
  624. package/objects/roomShapeVolumes.d.ts +13 -0
  625. package/objects/roomShapeVolumes.lua +30 -0
  626. package/objects/roomTypeNames.d.ts +5 -0
  627. package/objects/roomTypeNames.lua +37 -0
  628. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.d.ts +4 -0
  629. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.lua +13 -0
  630. package/objects/stageTypeToLetter.d.ts +4 -0
  631. package/objects/stageTypeToLetter.lua +12 -0
  632. package/objects/transformationNames.d.ts +5 -0
  633. package/objects/transformationNames.lua +21 -0
  634. package/package.json +3 -4
  635. package/patchErrorFunctions.d.ts +1 -0
  636. package/patchErrorFunctions.lua +58 -0
  637. package/sets/LRoomShapesSet.d.ts +2 -0
  638. package/sets/LRoomShapesSet.lua +8 -0
  639. package/sets/bossSets.d.ts +4 -0
  640. package/sets/bossSets.lua +554 -0
  641. package/sets/charactersThatStartWithAnActiveItemSet.d.ts +2 -0
  642. package/sets/charactersThatStartWithAnActiveItemSet.lua +20 -0
  643. package/sets/charactersWithBlackHeartFromEternalHeartSet.d.ts +2 -0
  644. package/sets/charactersWithBlackHeartFromEternalHeartSet.lua +8 -0
  645. package/sets/charactersWithFreeDevilDealsSet.d.ts +2 -0
  646. package/sets/charactersWithFreeDevilDealsSet.lua +8 -0
  647. package/sets/charactersWithNoRedHeartsSet.d.ts +6 -0
  648. package/sets/charactersWithNoRedHeartsSet.lua +19 -0
  649. package/sets/charactersWithNoSoulHeartsSet.d.ts +6 -0
  650. package/sets/charactersWithNoSoulHeartsSet.lua +16 -0
  651. package/sets/chestPickupVariantsSet.d.ts +2 -0
  652. package/sets/chestPickupVariantsSet.lua +21 -0
  653. package/sets/familiarsThatShootPlayerTearsSet.d.ts +2 -0
  654. package/sets/familiarsThatShootPlayerTearsSet.lua +17 -0
  655. package/sets/lostStyleCharactersSet.d.ts +6 -0
  656. package/sets/lostStyleCharactersSet.lua +16 -0
  657. package/sets/mineShaftRoomSubTypesSet.d.ts +2 -0
  658. package/sets/mineShaftRoomSubTypesSet.lua +14 -0
  659. package/sets/redHeartSubTypesSet.d.ts +2 -0
  660. package/sets/redHeartSubTypesSet.lua +8 -0
  661. package/sets/sinEntityTypesSet.d.ts +2 -0
  662. package/sets/sinEntityTypesSet.lua +16 -0
  663. package/sets/singleUseActiveCollectibleTypesSet.d.ts +2 -0
  664. package/sets/singleUseActiveCollectibleTypesSet.lua +17 -0
  665. package/sets/storyBossesSet.d.ts +2 -0
  666. package/sets/storyBossesSet.lua +22 -0
  667. package/types/AnyEntity.d.ts +2 -0
  668. package/types/AnyEntity.lua +2 -0
  669. package/types/CollectibleIndex.d.ts +16 -0
  670. package/types/CollectibleIndex.lua +2 -0
  671. package/types/PickingUpItem.d.ts +34 -0
  672. package/types/PickingUpItem.lua +34 -0
  673. package/types/PlayerIndex.d.ts +16 -0
  674. package/types/PlayerIndex.lua +2 -0
  675. package/types/private/IsaacAPIClass.d.ts +4 -0
  676. package/types/private/IsaacAPIClass.lua +2 -0
  677. package/types/private/SerializedIsaacAPIClass.d.ts +4 -0
  678. package/types/private/SerializedIsaacAPIClass.lua +2 -0
  679. package/types/private/TSTLClass.d.ts +4 -0
  680. package/types/private/TSTLClass.lua +2 -0
  681. package/upgradeMod.d.ts +23 -0
  682. package/upgradeMod.lua +51 -0
  683. package/.eslintrc.js +0 -70
  684. package/build.sh +0 -27
  685. package/docs.sh +0 -21
  686. package/lint.sh +0 -34
  687. package/project.json +0 -37
  688. package/release.sh +0 -16
  689. package/scripts/.eslintrc.js +0 -21
  690. package/scripts/docsEntryPointLint.ts +0 -135
  691. package/scripts/tsconfig.json +0 -5
  692. package/src/cachedClasses.ts +0 -39
  693. package/src/callbacks/customRevive.ts +0 -206
  694. package/src/callbacks/itemPickup.ts +0 -101
  695. package/src/callbacks/postBombInitLate.ts +0 -36
  696. package/src/callbacks/postBoneSwing.ts +0 -64
  697. package/src/callbacks/postCollectibleInitFirst.ts +0 -39
  698. package/src/callbacks/postCursedTeleport.ts +0 -183
  699. package/src/callbacks/postCustomDoorEnter.ts +0 -297
  700. package/src/callbacks/postDoorRender.ts +0 -26
  701. package/src/callbacks/postDoorUpdate.ts +0 -26
  702. package/src/callbacks/postEffectInitLate.ts +0 -36
  703. package/src/callbacks/postEffectStateChanged.ts +0 -43
  704. package/src/callbacks/postEsauJr.ts +0 -107
  705. package/src/callbacks/postFamiliarInitLate.ts +0 -36
  706. package/src/callbacks/postFamiliarStateChanged.ts +0 -43
  707. package/src/callbacks/postFlip.ts +0 -88
  708. package/src/callbacks/postGreedModeWave.ts +0 -41
  709. package/src/callbacks/postGridEntity.ts +0 -159
  710. package/src/callbacks/postGridEntityCollision.ts +0 -69
  711. package/src/callbacks/postGridEntityRender.ts +0 -26
  712. package/src/callbacks/postHolyMantleRemoved.ts +0 -55
  713. package/src/callbacks/postItemDischarged.ts +0 -149
  714. package/src/callbacks/postKnifeInitLate.ts +0 -36
  715. package/src/callbacks/postLaserInitLate.ts +0 -36
  716. package/src/callbacks/postNPCInitLate.ts +0 -36
  717. package/src/callbacks/postNPCStateChanged.ts +0 -42
  718. package/src/callbacks/postNewRoomEarly.ts +0 -90
  719. package/src/callbacks/postPickupCollect.ts +0 -48
  720. package/src/callbacks/postPickupInitLate.ts +0 -36
  721. package/src/callbacks/postPickupStateChanged.ts +0 -43
  722. package/src/callbacks/postPitRender.ts +0 -26
  723. package/src/callbacks/postPitUpdate.ts +0 -26
  724. package/src/callbacks/postPlayerChangeHealth.ts +0 -62
  725. package/src/callbacks/postPlayerChangeType.ts +0 -56
  726. package/src/callbacks/postPlayerFatalDamage.ts +0 -98
  727. package/src/callbacks/postPlayerInitLate.ts +0 -37
  728. package/src/callbacks/postPlayerReordered.ts +0 -142
  729. package/src/callbacks/postPoopRender.ts +0 -26
  730. package/src/callbacks/postPoopUpdate.ts +0 -26
  731. package/src/callbacks/postPressurePlateRender.ts +0 -26
  732. package/src/callbacks/postPressurePlateUpdate.ts +0 -26
  733. package/src/callbacks/postProjectileInitLate.ts +0 -36
  734. package/src/callbacks/postPurchase.ts +0 -64
  735. package/src/callbacks/postRockRender.ts +0 -26
  736. package/src/callbacks/postRockUpdate.ts +0 -26
  737. package/src/callbacks/postRoomClearChanged.ts +0 -52
  738. package/src/callbacks/postSacrifice.ts +0 -62
  739. package/src/callbacks/postSlotInitUpdate.ts +0 -63
  740. package/src/callbacks/postSlotRender.ts +0 -96
  741. package/src/callbacks/postSpikesRender.ts +0 -26
  742. package/src/callbacks/postSpikesUpdate.ts +0 -26
  743. package/src/callbacks/postTNTRender.ts +0 -26
  744. package/src/callbacks/postTNTUpdate.ts +0 -26
  745. package/src/callbacks/postTearInitLate.ts +0 -36
  746. package/src/callbacks/postTearInitVeryLate.ts +0 -41
  747. package/src/callbacks/postTransformation.ts +0 -59
  748. package/src/callbacks/postTrinketBreak.ts +0 -110
  749. package/src/callbacks/preBerserkDeath.ts +0 -49
  750. package/src/callbacks/preNewLevel.ts +0 -55
  751. package/src/callbacks/reorderedCallbacks.ts +0 -166
  752. package/src/callbacks/subscriptions/postBombInitLate.ts +0 -32
  753. package/src/callbacks/subscriptions/postBoneSwing.ts +0 -24
  754. package/src/callbacks/subscriptions/postCollectibleInitFirst.ts +0 -37
  755. package/src/callbacks/subscriptions/postCursedTeleport.ts +0 -24
  756. package/src/callbacks/subscriptions/postCustomDoorEnter.ts +0 -45
  757. package/src/callbacks/subscriptions/postCustomRevive.ts +0 -36
  758. package/src/callbacks/subscriptions/postDoorRender.ts +0 -35
  759. package/src/callbacks/subscriptions/postDoorUpdate.ts +0 -35
  760. package/src/callbacks/subscriptions/postEffectInitLate.ts +0 -32
  761. package/src/callbacks/subscriptions/postEffectStateChanged.ts +0 -40
  762. package/src/callbacks/subscriptions/postEsauJr.ts +0 -24
  763. package/src/callbacks/subscriptions/postFamiliarInitLate.ts +0 -32
  764. package/src/callbacks/subscriptions/postFamiliarStateChanged.ts +0 -40
  765. package/src/callbacks/subscriptions/postFirstEsauJr.ts +0 -24
  766. package/src/callbacks/subscriptions/postFirstFlip.ts +0 -24
  767. package/src/callbacks/subscriptions/postFlip.ts +0 -22
  768. package/src/callbacks/subscriptions/postGameStartedReordered.ts +0 -24
  769. package/src/callbacks/subscriptions/postGreedModeWave.ts +0 -24
  770. package/src/callbacks/subscriptions/postGridEntityBroken.ts +0 -51
  771. package/src/callbacks/subscriptions/postGridEntityCollision.ts +0 -54
  772. package/src/callbacks/subscriptions/postGridEntityInit.ts +0 -51
  773. package/src/callbacks/subscriptions/postGridEntityRemove.ts +0 -52
  774. package/src/callbacks/subscriptions/postGridEntityRender.ts +0 -51
  775. package/src/callbacks/subscriptions/postGridEntityStateChanged.ts +0 -55
  776. package/src/callbacks/subscriptions/postGridEntityUpdate.ts +0 -51
  777. package/src/callbacks/subscriptions/postHolyMantleRemoved.ts +0 -48
  778. package/src/callbacks/subscriptions/postItemDischarged.ts +0 -43
  779. package/src/callbacks/subscriptions/postItemPickup.ts +0 -64
  780. package/src/callbacks/subscriptions/postKnifeInitLate.ts +0 -32
  781. package/src/callbacks/subscriptions/postLaserInitLate.ts +0 -32
  782. package/src/callbacks/subscriptions/postNPCInitLate.ts +0 -32
  783. package/src/callbacks/subscriptions/postNPCStateChanged.ts +0 -42
  784. package/src/callbacks/subscriptions/postNewLevelReordered.ts +0 -22
  785. package/src/callbacks/subscriptions/postNewRoomEarly.ts +0 -22
  786. package/src/callbacks/subscriptions/postNewRoomReordered.ts +0 -22
  787. package/src/callbacks/subscriptions/postPEffectUpdateReordered.ts +0 -40
  788. package/src/callbacks/subscriptions/postPickupCollect.ts +0 -34
  789. package/src/callbacks/subscriptions/postPickupInitLate.ts +0 -31
  790. package/src/callbacks/subscriptions/postPickupStateChanged.ts +0 -35
  791. package/src/callbacks/subscriptions/postPitRender.ts +0 -35
  792. package/src/callbacks/subscriptions/postPitUpdate.ts +0 -35
  793. package/src/callbacks/subscriptions/postPlayerChangeHealth.ts +0 -45
  794. package/src/callbacks/subscriptions/postPlayerChangeType.ts +0 -40
  795. package/src/callbacks/subscriptions/postPlayerFatalDamage.ts +0 -67
  796. package/src/callbacks/subscriptions/postPlayerInitLate.ts +0 -40
  797. package/src/callbacks/subscriptions/postPlayerInitReordered.ts +0 -40
  798. package/src/callbacks/subscriptions/postPlayerRenderReordered.ts +0 -40
  799. package/src/callbacks/subscriptions/postPlayerUpdateReordered.ts +0 -40
  800. package/src/callbacks/subscriptions/postPoopRender.ts +0 -35
  801. package/src/callbacks/subscriptions/postPoopUpdate.ts +0 -35
  802. package/src/callbacks/subscriptions/postPressurePlateRender.ts +0 -37
  803. package/src/callbacks/subscriptions/postPressurePlateUpdate.ts +0 -37
  804. package/src/callbacks/subscriptions/postProjectileInitLate.ts +0 -35
  805. package/src/callbacks/subscriptions/postPurchase.ts +0 -31
  806. package/src/callbacks/subscriptions/postRockRender.ts +0 -35
  807. package/src/callbacks/subscriptions/postRockUpdate.ts +0 -35
  808. package/src/callbacks/subscriptions/postRoomClearChanged.ts +0 -24
  809. package/src/callbacks/subscriptions/postSacrifice.ts +0 -43
  810. package/src/callbacks/subscriptions/postSlotAnimationChanged.ts +0 -40
  811. package/src/callbacks/subscriptions/postSlotDestroyed.ts +0 -32
  812. package/src/callbacks/subscriptions/postSlotInit.ts +0 -32
  813. package/src/callbacks/subscriptions/postSlotRender.ts +0 -32
  814. package/src/callbacks/subscriptions/postSlotUpdate.ts +0 -32
  815. package/src/callbacks/subscriptions/postSpikesRender.ts +0 -35
  816. package/src/callbacks/subscriptions/postSpikesUpdate.ts +0 -35
  817. package/src/callbacks/subscriptions/postTNTRender.ts +0 -35
  818. package/src/callbacks/subscriptions/postTNTUpdate.ts +0 -35
  819. package/src/callbacks/subscriptions/postTearInitLate.ts +0 -32
  820. package/src/callbacks/subscriptions/postTearInitVeryLate.ts +0 -32
  821. package/src/callbacks/subscriptions/postTransformation.ts +0 -40
  822. package/src/callbacks/subscriptions/postTrinketBreak.ts +0 -38
  823. package/src/callbacks/subscriptions/preBerserkDeath.ts +0 -42
  824. package/src/callbacks/subscriptions/preCustomRevive.ts +0 -45
  825. package/src/callbacks/subscriptions/preItemPickup.ts +0 -64
  826. package/src/callbacks/subscriptions/preNewLevel.ts +0 -24
  827. package/src/classes/DefaultMap.ts +0 -220
  828. package/src/classes/ModUpgraded.ts +0 -83
  829. package/src/constants.ts +0 -140
  830. package/src/constantsFirstLast.ts +0 -212
  831. package/src/enums/HealthType.ts +0 -16
  832. package/src/enums/ModCallbackCustom.ts +0 -943
  833. package/src/enums/PocketItemType.ts +0 -8
  834. package/src/enums/SerializationType.ts +0 -5
  835. package/src/enums/private/CopyableIsaacAPIClassType.ts +0 -7
  836. package/src/enums/private/SaveDataKey.ts +0 -14
  837. package/src/enums/private/SerializationBrand.ts +0 -42
  838. package/src/features/characterHealthConversion.ts +0 -116
  839. package/src/features/characterStats.ts +0 -61
  840. package/src/features/debugDisplay/debugDisplay.ts +0 -221
  841. package/src/features/debugDisplay/exports.ts +0 -368
  842. package/src/features/debugDisplay/v.ts +0 -65
  843. package/src/features/deployJSONRoom.ts +0 -672
  844. package/src/features/disableInputs.ts +0 -193
  845. package/src/features/disableSound.ts +0 -77
  846. package/src/features/extraConsoleCommands/commandsDisplay.ts +0 -290
  847. package/src/features/extraConsoleCommands/commandsSubroutines.ts +0 -139
  848. package/src/features/extraConsoleCommands/init.ts +0 -334
  849. package/src/features/extraConsoleCommands/listCommands.ts +0 -1298
  850. package/src/features/extraConsoleCommands/v.ts +0 -14
  851. package/src/features/fadeInRemover.ts +0 -60
  852. package/src/features/fastReset.ts +0 -75
  853. package/src/features/forgottenSwitch.ts +0 -50
  854. package/src/features/getCollectibleItemPoolType.ts +0 -66
  855. package/src/features/playerInventory.ts +0 -187
  856. package/src/features/ponyDetection.ts +0 -74
  857. package/src/features/preventCollectibleRotation.ts +0 -113
  858. package/src/features/runInNFrames.ts +0 -148
  859. package/src/features/saveDataManager/constants.ts +0 -4
  860. package/src/features/saveDataManager/exports.ts +0 -230
  861. package/src/features/saveDataManager/load.ts +0 -90
  862. package/src/features/saveDataManager/main.ts +0 -187
  863. package/src/features/saveDataManager/maps.ts +0 -13
  864. package/src/features/saveDataManager/merge.ts +0 -182
  865. package/src/features/saveDataManager/save.ts +0 -66
  866. package/src/features/saveDataManager/serializationBrand.ts +0 -15
  867. package/src/features/sirenHelpers.ts +0 -129
  868. package/src/features/taintedLazarusPlayers.ts +0 -113
  869. package/src/featuresInitialized.ts +0 -20
  870. package/src/functions/array.ts +0 -412
  871. package/src/functions/benchmark.ts +0 -36
  872. package/src/functions/bitwise.ts +0 -24
  873. package/src/functions/boss.ts +0 -227
  874. package/src/functions/cacheFlag.ts +0 -12
  875. package/src/functions/cards.ts +0 -267
  876. package/src/functions/challenges.ts +0 -11
  877. package/src/functions/character.ts +0 -124
  878. package/src/functions/charge.ts +0 -237
  879. package/src/functions/chargeBar.ts +0 -67
  880. package/src/functions/collectibleCacheFlag.ts +0 -90
  881. package/src/functions/collectibleSet.ts +0 -57
  882. package/src/functions/collectibleTag.ts +0 -89
  883. package/src/functions/collectibles.ts +0 -610
  884. package/src/functions/color.ts +0 -149
  885. package/src/functions/debug.ts +0 -65
  886. package/src/functions/deepCopy.ts +0 -508
  887. package/src/functions/deepCopyTests.ts +0 -390
  888. package/src/functions/direction.ts +0 -16
  889. package/src/functions/doors.ts +0 -343
  890. package/src/functions/easing.ts +0 -182
  891. package/src/functions/eden.ts +0 -47
  892. package/src/functions/entity.ts +0 -352
  893. package/src/functions/entitySpecific.ts +0 -889
  894. package/src/functions/entityTypes.ts +0 -6
  895. package/src/functions/enums.ts +0 -145
  896. package/src/functions/familiars.ts +0 -106
  897. package/src/functions/flag.ts +0 -165
  898. package/src/functions/flying.ts +0 -117
  899. package/src/functions/globals.ts +0 -249
  900. package/src/functions/gridEntity.ts +0 -511
  901. package/src/functions/gridEntitySpecific.ts +0 -112
  902. package/src/functions/input.ts +0 -139
  903. package/src/functions/isaacAPIClass.ts +0 -65
  904. package/src/functions/jsonHelpers.ts +0 -45
  905. package/src/functions/jsonRoom.ts +0 -100
  906. package/src/functions/kColor.ts +0 -130
  907. package/src/functions/language.ts +0 -13
  908. package/src/functions/level.ts +0 -31
  909. package/src/functions/log.ts +0 -660
  910. package/src/functions/map.ts +0 -56
  911. package/src/functions/math.ts +0 -149
  912. package/src/functions/mergeTests.ts +0 -288
  913. package/src/functions/npc.ts +0 -148
  914. package/src/functions/pickupVariants.ts +0 -60
  915. package/src/functions/pickups.ts +0 -449
  916. package/src/functions/pills.ts +0 -182
  917. package/src/functions/player.ts +0 -975
  918. package/src/functions/playerDataStructures.ts +0 -150
  919. package/src/functions/playerHealth.ts +0 -318
  920. package/src/functions/playerIndex.ts +0 -195
  921. package/src/functions/pocketItems.ts +0 -149
  922. package/src/functions/positionVelocity.ts +0 -188
  923. package/src/functions/random.ts +0 -77
  924. package/src/functions/revive.ts +0 -201
  925. package/src/functions/rng.ts +0 -177
  926. package/src/functions/roomData.ts +0 -199
  927. package/src/functions/roomGrid.ts +0 -109
  928. package/src/functions/roomShape.ts +0 -80
  929. package/src/functions/rooms.ts +0 -667
  930. package/src/functions/run.ts +0 -36
  931. package/src/functions/seeds.ts +0 -19
  932. package/src/functions/serialization.ts +0 -97
  933. package/src/functions/set.ts +0 -95
  934. package/src/functions/sound.ts +0 -9
  935. package/src/functions/spawnCollectible.ts +0 -104
  936. package/src/functions/sprite.ts +0 -107
  937. package/src/functions/stage.ts +0 -125
  938. package/src/functions/string.ts +0 -47
  939. package/src/functions/table.ts +0 -139
  940. package/src/functions/tears.ts +0 -32
  941. package/src/functions/transformations.ts +0 -137
  942. package/src/functions/trinketCacheFlag.ts +0 -60
  943. package/src/functions/trinketGive.ts +0 -157
  944. package/src/functions/trinkets.ts +0 -215
  945. package/src/functions/tstlClass.ts +0 -91
  946. package/src/functions/ui.ts +0 -138
  947. package/src/functions/utils.ts +0 -200
  948. package/src/functions/vector.ts +0 -145
  949. package/src/index.ts +0 -162
  950. package/src/initCustomCallbacks.ts +0 -120
  951. package/src/initFeatures.ts +0 -37
  952. package/src/interfaces/AddCallbackParameterCustom.ts +0 -174
  953. package/src/interfaces/ChargeBarSprites.ts +0 -12
  954. package/src/interfaces/JSONDoor.ts +0 -13
  955. package/src/interfaces/JSONEntity.ts +0 -16
  956. package/src/interfaces/JSONRoom.ts +0 -36
  957. package/src/interfaces/JSONRooms.ts +0 -12
  958. package/src/interfaces/JSONSpawn.ts +0 -14
  959. package/src/interfaces/PlayerHealth.ts +0 -16
  960. package/src/interfaces/PocketItemDescription.ts +0 -9
  961. package/src/interfaces/SaveData.ts +0 -29
  962. package/src/interfaces/TrinketSituation.ts +0 -9
  963. package/src/interfaces/private/TSTLClassMetatable.ts +0 -8
  964. package/src/maps/cardMap.ts +0 -209
  965. package/src/maps/characterMap.ts +0 -87
  966. package/src/maps/collectibleDescriptionMap.ts +0 -732
  967. package/src/maps/collectibleNameMap.ts +0 -731
  968. package/src/maps/defaultPlayerStatMap.ts +0 -17
  969. package/src/maps/gridEntityTypeToBrokenStateMap.ts +0 -50
  970. package/src/maps/gridEntityXMLMap.ts +0 -176
  971. package/src/maps/pillEffectMap.ts +0 -88
  972. package/src/maps/roomShapeToTopLeftWallGridIndexMap.ts +0 -18
  973. package/src/maps/roomTypeMap.ts +0 -40
  974. package/src/maps/trinketDescriptionMap.ts +0 -200
  975. package/src/maps/trinketNameMap.ts +0 -198
  976. package/src/objects/LRoomShapeToRectangles.ts +0 -44
  977. package/src/objects/callbackRegisterFunctions.ts +0 -171
  978. package/src/objects/cardDescriptions.ts +0 -105
  979. package/src/objects/cardNames.ts +0 -105
  980. package/src/objects/cardTypes.ts +0 -104
  981. package/src/objects/challengeNames.ts +0 -52
  982. package/src/objects/characterNames.ts +0 -48
  983. package/src/objects/coinSubTypeToValue.ts +0 -14
  984. package/src/objects/colors.ts +0 -16
  985. package/src/objects/directionNames.ts +0 -11
  986. package/src/objects/directionToDegrees.ts +0 -11
  987. package/src/objects/directionToVector.ts +0 -12
  988. package/src/objects/doorSlotFlagToDoorSlot.ts +0 -16
  989. package/src/objects/doorSlotToDirection.ts +0 -14
  990. package/src/objects/isaacAPIClassTypeToBrand.ts +0 -11
  991. package/src/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
  992. package/src/objects/languageNames.ts +0 -13
  993. package/src/objects/pillEffectClasses.ts +0 -63
  994. package/src/objects/pillEffectNames.ts +0 -57
  995. package/src/objects/pillEffectTypes.ts +0 -62
  996. package/src/objects/roomShapeBounds.ts +0 -71
  997. package/src/objects/roomShapeLayoutSizes.ts +0 -45
  998. package/src/objects/roomShapeToBottomRightPosition.ts +0 -25
  999. package/src/objects/roomShapeToDoorSlots.ts +0 -83
  1000. package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +0 -127
  1001. package/src/objects/roomShapeToGridWidth.ts +0 -21
  1002. package/src/objects/roomShapeToTopLeftPosition.ts +0 -26
  1003. package/src/objects/roomShapeVolumes.ts +0 -38
  1004. package/src/objects/roomTypeNames.ts +0 -36
  1005. package/src/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
  1006. package/src/objects/stageTypeToLetter.ts +0 -15
  1007. package/src/objects/transformationNames.ts +0 -20
  1008. package/src/patchErrorFunctions.ts +0 -92
  1009. package/src/sets/LRoomShapesSet.ts +0 -8
  1010. package/src/sets/bossSets.ts +0 -470
  1011. package/src/sets/charactersThatStartWithAnActiveItemSet.ts +0 -16
  1012. package/src/sets/charactersWithBlackHeartFromEternalHeartSet.ts +0 -7
  1013. package/src/sets/charactersWithFreeDevilDealsSet.ts +0 -4
  1014. package/src/sets/charactersWithNoRedHeartsSet.ts +0 -17
  1015. package/src/sets/charactersWithNoSoulHeartsSet.ts +0 -14
  1016. package/src/sets/chestPickupVariantsSet.ts +0 -16
  1017. package/src/sets/familiarsThatShootPlayerTearsSet.ts +0 -13
  1018. package/src/sets/lostStyleCharactersSet.ts +0 -13
  1019. package/src/sets/mineShaftRoomSubTypesSet.ts +0 -10
  1020. package/src/sets/redHeartSubTypesSet.ts +0 -7
  1021. package/src/sets/sinEntityTypesSet.ts +0 -11
  1022. package/src/sets/singleUseActiveCollectibleTypesSet.ts +0 -13
  1023. package/src/sets/storyBossesSet.ts +0 -17
  1024. package/src/types/AnyEntity.ts +0 -12
  1025. package/src/types/AwaitingTextInput.d.ts +0 -2
  1026. package/src/types/CollectibleIndex.ts +0 -14
  1027. package/src/types/PickingUpItem.ts +0 -89
  1028. package/src/types/PlayerIndex.ts +0 -13
  1029. package/src/types/private/IsaacAPIClass.ts +0 -3
  1030. package/src/types/private/SerializedIsaacAPIClass.ts +0 -3
  1031. package/src/types/private/TSTLClass.ts +0 -3
  1032. package/src/upgradeMod.ts +0 -55
  1033. package/tsconfig.json +0 -42
  1034. package/typedoc.json +0 -158
  1035. package/website-root.md +0 -11
@@ -0,0 +1,128 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ArrayForEach = ____lualib.__TS__ArrayForEach
3
+ local __TS__ArraySplice = ____lualib.__TS__ArraySplice
4
+ local ____exports = {}
5
+ local postUpdate, postRender, checkExecuteQueuedFunctions, v
6
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
7
+ local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
8
+ local ____cachedClasses = require("cachedClasses")
9
+ local game = ____cachedClasses.game
10
+ local ____featuresInitialized = require("featuresInitialized")
11
+ local errorIfFeaturesNotInitialized = ____featuresInitialized.errorIfFeaturesNotInitialized
12
+ local ____exports = require("features.saveDataManager.exports")
13
+ local saveDataManager = ____exports.saveDataManager
14
+ function postUpdate(self)
15
+ local gameFrameCount = game:GetFrameCount()
16
+ checkExecuteQueuedFunctions(nil, gameFrameCount, v.run.queuedGameFunctionTuples)
17
+ end
18
+ function postRender(self)
19
+ local renderFrameCount = Isaac.GetFrameCount()
20
+ checkExecuteQueuedFunctions(nil, renderFrameCount, v.run.queuedRenderFunctionTuples)
21
+ end
22
+ function checkExecuteQueuedFunctions(self, frameCount, functionTuples)
23
+ local functionsToFire = {}
24
+ local indexesToRemove = {}
25
+ __TS__ArrayForEach(
26
+ functionTuples,
27
+ function(____, functionTuple, i)
28
+ local frame, func = table.unpack(functionTuple)
29
+ if frameCount >= frame then
30
+ functionsToFire[#functionsToFire + 1] = func
31
+ indexesToRemove[#indexesToRemove + 1] = i
32
+ end
33
+ end
34
+ )
35
+ for ____, indexToRemove in ipairs(indexesToRemove) do
36
+ __TS__ArraySplice(functionTuples, indexToRemove, 1)
37
+ end
38
+ for ____, func in ipairs(functionsToFire) do
39
+ func(nil)
40
+ end
41
+ end
42
+ local FEATURE_NAME = "run in N frames"
43
+ v = {run = {queuedGameFunctionTuples = {}, queuedRenderFunctionTuples = {}}}
44
+ ---
45
+ -- @internal
46
+ function ____exports.runInNFramesInit(self, mod)
47
+ saveDataManager(
48
+ nil,
49
+ "runInNFrames",
50
+ v,
51
+ function() return false end
52
+ )
53
+ mod:AddCallback(ModCallback.POST_UPDATE, postUpdate)
54
+ mod:AddCallback(ModCallback.POST_RENDER, postRender)
55
+ end
56
+ --- Supply a function to run N game frames from now in the PostUpdate callback.
57
+ --
58
+ -- For a usage example, see the documentation for the `runNextGameFrame`, which is used in a similar
59
+ -- way.
60
+ --
61
+ -- Note that this function will not handle saving and quitting. If a player saving and quitting
62
+ -- before the deferred function fires would cause a bug in your mod, then you should handle deferred
63
+ -- functions manually using serializable data.
64
+ function ____exports.runInNGameFrames(self, func, gameFrames)
65
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
66
+ local gameFrameCount = game:GetFrameCount()
67
+ local functionFireFrame = gameFrameCount + gameFrames
68
+ local tuple = {functionFireFrame, func}
69
+ local ____v_run_queuedGameFunctionTuples_0 = v.run.queuedGameFunctionTuples
70
+ ____v_run_queuedGameFunctionTuples_0[#____v_run_queuedGameFunctionTuples_0 + 1] = tuple
71
+ end
72
+ --- Supply a function to run N render frames from now in the PostRender callback.
73
+ --
74
+ -- For a usage example, see the documentation for the `runNextGameFrame`, which is used in a similar
75
+ -- way.
76
+ --
77
+ -- Note that this function will not handle saving and quitting. If a player saving and quitting
78
+ -- before the deferred function fires would cause a bug in your mod, then you should handle deferred
79
+ -- functions manually using serializable data.
80
+ function ____exports.runInNRenderFrames(self, func, renderFrames)
81
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
82
+ local renderFrameCount = Isaac.GetFrameCount()
83
+ local functionFireFrame = renderFrameCount + renderFrames
84
+ local tuple = {functionFireFrame, func}
85
+ local ____v_run_queuedRenderFunctionTuples_1 = v.run.queuedRenderFunctionTuples
86
+ ____v_run_queuedRenderFunctionTuples_1[#____v_run_queuedRenderFunctionTuples_1 + 1] = tuple
87
+ end
88
+ --- Supply a function to run on the next PostUpdate callback.
89
+ --
90
+ -- For example:
91
+ --
92
+ -- ```ts
93
+ -- const NUM_EXPLODER_EXPLOSIONS = 5;
94
+ --
95
+ -- function useItemExploder(player: EntityPlayer) {
96
+ -- playSound("exploderBegin");
97
+ -- explode(player, NUM_EXPLODER_EXPLOSIONS);
98
+ -- }
99
+ --
100
+ -- function explode(player: EntityPlayer, numFramesLeft: int) {
101
+ -- Isaac.Explode(player, undefined, 1);
102
+ -- numFramesLeft -= 1;
103
+ -- if (numFramesLeft === 0) {
104
+ -- runNextFrame(() => {
105
+ -- explode(player, numFramesLeft);
106
+ -- });
107
+ -- }
108
+ -- }
109
+ -- ```
110
+ --
111
+ -- Note that this function will not handle saving and quitting. If a player saving and quitting
112
+ -- before the deferred function fires would cause a bug in your mod, then you should handle deferred
113
+ -- functions manually using serializable data.
114
+ function ____exports.runNextGameFrame(self, func)
115
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
116
+ ____exports.runInNGameFrames(nil, func, 1)
117
+ end
118
+ --- Supply a function to run on the next PostRender callback.
119
+ --
120
+ -- For a usage example, see the documentation for the `runNextGameFrame`, which is used in a similar
121
+ -- way.
122
+ --
123
+ -- Note that this function will not handle saving and quitting.
124
+ function ____exports.runNextRenderFrame(self, func)
125
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
126
+ ____exports.runInNRenderFrames(nil, func, 1)
127
+ end
128
+ return ____exports
@@ -0,0 +1,3 @@
1
+ /** Set this to true to enable more verbosity in the save data manger. */
2
+ export declare const SAVE_DATA_MANAGER_DEBUG = false;
3
+ export declare const SAVE_DATA_MANAGER_FEATURE_NAME = "save data manager";
@@ -0,0 +1,5 @@
1
+ local ____exports = {}
2
+ --- Set this to true to enable more verbosity in the save data manger.
3
+ ____exports.SAVE_DATA_MANAGER_DEBUG = false
4
+ ____exports.SAVE_DATA_MANAGER_FEATURE_NAME = "save data manager"
5
+ return ____exports
@@ -0,0 +1,131 @@
1
+ import { SaveData } from "../../interfaces/SaveData";
2
+ /**
3
+ * This is the entry point to the save data manager, a system which provides two major features:
4
+ *
5
+ * 1. automatic resetting of variables on a new run, on a new level, or on a new room (as desired)
6
+ * 2. automatic saving and loading of all tracked data to the "save#.dat" file
7
+ *
8
+ * You feed this function with an anonymous object containing your variables, and then it will
9
+ * automatically manage them for you. (See below for an example.)
10
+ *
11
+ * The save data manager is meant to be called once for each feature of your mod. In other words,
12
+ * you should not put all of the data for your mod on the same object. Instead, scope your variables
13
+ * locally to a single file that contains a mod feature, and then call this function to register
14
+ * them. For example:
15
+ *
16
+ * ```ts
17
+ * // in file: feature1.ts
18
+ * import { saveDataManager } from "isaacscript-common";
19
+ *
20
+ * // Declare local variables for this file or feature.
21
+ * const v = {
22
+ * // These variables are never reset; manage them yourself at will.
23
+ * persistent: {
24
+ * foo1: 0,
25
+ * },
26
+ *
27
+ * // These variables are reset at the beginning of every run.
28
+ * run: {
29
+ * foo2: 0,
30
+ * },
31
+ *
32
+ * // These variables are reset at the beginning of every level.
33
+ * level: {
34
+ * foo3: 0,
35
+ * },
36
+ *
37
+ * // These variables are reset at the beginning of every room.
38
+ * room: {
39
+ * foo4: 0,
40
+ * },
41
+ * };
42
+ * // Every child object is optional; only create the ones that you need.
43
+ *
44
+ * // Register the variables with the save data manager. (We need to provide a string key that
45
+ * // matches the name of this file.)
46
+ * function feature1Init() {
47
+ * saveDataManager("feature1", v);
48
+ * }
49
+ *
50
+ * // Elsewhere in the file, use your variables.
51
+ * function feature1Function() {
52
+ * if (v.run.foo1 > 0) {
53
+ * // Insert code here.
54
+ * }
55
+ * }
56
+ * ```
57
+ *
58
+ * - Save data is loaded from disk in the `POST_PLAYER_INIT` callback (i.e. the first callback that
59
+ * can possibly run).
60
+ * - Save data is recorded to disk in the `PRE_GAME_EXIT` callback.
61
+ *
62
+ * Note that before using the save data manager, you must call the `upgradeMod` function. (Upgrade
63
+ * your mod before registering any of your own callbacks so that the save data manager will run
64
+ * before any of your code does.)
65
+ *
66
+ * If you want the save data manager to load data before the `POST_PLAYER_INIT` callback (i.e. in
67
+ * the main menu), then you should explicitly call the `saveDataManagerLoad` function. (The save
68
+ * data manager cannot do this on its own because it cannot know when your mod features are finished
69
+ * initializing.)
70
+ *
71
+ * Finally, some features may have variables that need to be automatically reset per run/level, but
72
+ * not saved to disk on game exit. (For example, if they contain functions or other non-serializable
73
+ * data.) For these cases, set the second argument to `() => false`.
74
+ *
75
+ * @param key The name of the file or feature that is submitting data to be managed by the save data
76
+ * manager. The save data manager will throw an error if the key is already registered.
77
+ * @param v An object that corresponds to the `SaveData` interface. The object is conventionally
78
+ * called "v" for brevity. ("v" is short for "local variables").
79
+ * @param conditionalFunc An optional function to run upon saving this key to disk. For example,
80
+ * this allows features to only save data to disk if the feature is enabled.
81
+ * Specify a value of `() => false` to completely disable saving this feature
82
+ * to disk. Disabling saving to disk is useful if you are using data that is
83
+ * not serializable. Alternatively, it could be useful if you want to use the
84
+ * save data manager to automatically reset variables on run/level/room, but
85
+ * not clutter the the "save#.dat" file with unnecessary keys.
86
+ */
87
+ export declare function saveDataManager(key: string, v: SaveData, conditionalFunc?: () => boolean): void;
88
+ /**
89
+ * The save data manager will automatically load variables from disk at the appropriate times (i.e.
90
+ * when a new run is started). Use this function to explicitly force the save data manager to load
91
+ * all of its variables from disk immediately.
92
+ *
93
+ * Obviously, doing this will overwrite the current data, so using this function can potentially
94
+ * result in lost state.
95
+ */
96
+ export declare function saveDataManagerLoad(): void;
97
+ /**
98
+ * The save data manager will automatically save variables to disk at the appropriate times (i.e.
99
+ * when the run is exited). Use this function to explicitly force the save data manager to write all
100
+ * of its variables to disk immediately.
101
+ */
102
+ export declare function saveDataManagerSave(): void;
103
+ /**
104
+ * - Sets the global variable of "g" equal to all of the save data variables for this mod.
105
+ * - Sets the global variable of "gd" equal to all of the save data default variables for this mod.
106
+ *
107
+ * This can make debugging easier, as you can access the variables from the game's debug console.
108
+ * e.g. `l print(g.feature1.foo)`
109
+ */
110
+ export declare function saveDataManagerSetGlobal(): void;
111
+ /**
112
+ * The save data manager will automatically reset variables at the appropriate times (i.e. when a
113
+ * player enters a new room). Use this function to explicitly force the save data manager to reset a
114
+ * specific variable group.
115
+ *
116
+ * For example:
117
+ *
118
+ * ```ts
119
+ * const v = {
120
+ * room: {
121
+ * foo: 123,
122
+ * },
123
+ * };
124
+ *
125
+ * saveDataManager("file1", v);
126
+ *
127
+ * // Then, later on, to explicit reset all of the "room" variables:
128
+ * saveDataManagerReset("file1", "room");
129
+ * ```
130
+ */
131
+ export declare function saveDataManagerReset(key: string, childObjectKey: string): void;
@@ -0,0 +1,181 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local Map = ____lualib.Map
3
+ local __TS__ObjectKeys = ____lualib.__TS__ObjectKeys
4
+ local ____exports = {}
5
+ local ____SerializationType = require("enums.SerializationType")
6
+ local SerializationType = ____SerializationType.SerializationType
7
+ local ____featuresInitialized = require("featuresInitialized")
8
+ local errorIfFeaturesNotInitialized = ____featuresInitialized.errorIfFeaturesNotInitialized
9
+ local ____deepCopy = require("functions.deepCopy")
10
+ local deepCopy = ____deepCopy.deepCopy
11
+ local ____constants = require("features.saveDataManager.constants")
12
+ local SAVE_DATA_MANAGER_FEATURE_NAME = ____constants.SAVE_DATA_MANAGER_FEATURE_NAME
13
+ local ____main = require("features.saveDataManager.main")
14
+ local forceSaveDataManagerLoad = ____main.forceSaveDataManagerLoad
15
+ local forceSaveDataManagerSave = ____main.forceSaveDataManagerSave
16
+ local restoreDefaultSaveData = ____main.restoreDefaultSaveData
17
+ local ____maps = require("features.saveDataManager.maps")
18
+ local saveDataConditionalFuncMap = ____maps.saveDataConditionalFuncMap
19
+ local saveDataDefaultsMap = ____maps.saveDataDefaultsMap
20
+ local saveDataMap = ____maps.saveDataMap
21
+ --- This is the entry point to the save data manager, a system which provides two major features:
22
+ --
23
+ -- 1. automatic resetting of variables on a new run, on a new level, or on a new room (as desired)
24
+ -- 2. automatic saving and loading of all tracked data to the "save#.dat" file
25
+ --
26
+ -- You feed this function with an anonymous object containing your variables, and then it will
27
+ -- automatically manage them for you. (See below for an example.)
28
+ --
29
+ -- The save data manager is meant to be called once for each feature of your mod. In other words,
30
+ -- you should not put all of the data for your mod on the same object. Instead, scope your variables
31
+ -- locally to a single file that contains a mod feature, and then call this function to register
32
+ -- them. For example:
33
+ --
34
+ -- ```ts
35
+ -- // in file: feature1.ts
36
+ -- import { saveDataManager } from "isaacscript-common";
37
+ --
38
+ -- // Declare local variables for this file or feature.
39
+ -- const v = {
40
+ -- // These variables are never reset; manage them yourself at will.
41
+ -- persistent: {
42
+ -- foo1: 0,
43
+ -- },
44
+ --
45
+ -- // These variables are reset at the beginning of every run.
46
+ -- run: {
47
+ -- foo2: 0,
48
+ -- },
49
+ --
50
+ -- // These variables are reset at the beginning of every level.
51
+ -- level: {
52
+ -- foo3: 0,
53
+ -- },
54
+ --
55
+ -- // These variables are reset at the beginning of every room.
56
+ -- room: {
57
+ -- foo4: 0,
58
+ -- },
59
+ -- };
60
+ -- // Every child object is optional; only create the ones that you need.
61
+ --
62
+ -- // Register the variables with the save data manager. (We need to provide a string key that
63
+ -- // matches the name of this file.)
64
+ -- function feature1Init() {
65
+ -- saveDataManager("feature1", v);
66
+ -- }
67
+ --
68
+ -- // Elsewhere in the file, use your variables.
69
+ -- function feature1Function() {
70
+ -- if (v.run.foo1 > 0) {
71
+ -- // Insert code here.
72
+ -- }
73
+ -- }
74
+ -- ```
75
+ --
76
+ -- - Save data is loaded from disk in the `POST_PLAYER_INIT` callback (i.e. the first callback that
77
+ -- can possibly run).
78
+ -- - Save data is recorded to disk in the `PRE_GAME_EXIT` callback.
79
+ --
80
+ -- Note that before using the save data manager, you must call the `upgradeMod` function. (Upgrade
81
+ -- your mod before registering any of your own callbacks so that the save data manager will run
82
+ -- before any of your code does.)
83
+ --
84
+ -- If you want the save data manager to load data before the `POST_PLAYER_INIT` callback (i.e. in
85
+ -- the main menu), then you should explicitly call the `saveDataManagerLoad` function. (The save
86
+ -- data manager cannot do this on its own because it cannot know when your mod features are finished
87
+ -- initializing.)
88
+ --
89
+ -- Finally, some features may have variables that need to be automatically reset per run/level, but
90
+ -- not saved to disk on game exit. (For example, if they contain functions or other non-serializable
91
+ -- data.) For these cases, set the second argument to `() => false`.
92
+ --
93
+ -- @param key The name of the file or feature that is submitting data to be managed by the save data
94
+ -- manager. The save data manager will throw an error if the key is already registered.
95
+ -- @param v An object that corresponds to the `SaveData` interface. The object is conventionally
96
+ -- called "v" for brevity. ("v" is short for "local variables").
97
+ -- @param conditionalFunc An optional function to run upon saving this key to disk. For example,
98
+ -- this allows features to only save data to disk if the feature is enabled.
99
+ -- Specify a value of `() => false` to completely disable saving this feature
100
+ -- to disk. Disabling saving to disk is useful if you are using data that is
101
+ -- not serializable. Alternatively, it could be useful if you want to use the
102
+ -- save data manager to automatically reset variables on run/level/room, but
103
+ -- not clutter the the "save#.dat" file with unnecessary keys.
104
+ function ____exports.saveDataManager(self, key, v, conditionalFunc)
105
+ errorIfFeaturesNotInitialized(nil, SAVE_DATA_MANAGER_FEATURE_NAME)
106
+ local keyType = type(key)
107
+ if keyType ~= "string" then
108
+ error((("The " .. SAVE_DATA_MANAGER_FEATURE_NAME) .. " requires that keys are strings. You tried to use a key of type: ") .. keyType)
109
+ end
110
+ if saveDataMap[key] ~= nil then
111
+ error((("The " .. SAVE_DATA_MANAGER_FEATURE_NAME) .. " is already managing save data for a key of: ") .. key)
112
+ end
113
+ saveDataMap[key] = v
114
+ local saveDataKeys = __TS__ObjectKeys(v)
115
+ if #saveDataKeys == 1 and saveDataKeys[1] == "room" then
116
+ conditionalFunc = function() return false end
117
+ end
118
+ local saveDataTable = v
119
+ local saveDataCopy = deepCopy(nil, saveDataTable, SerializationType.NONE, key)
120
+ saveDataDefaultsMap[key] = saveDataCopy
121
+ if conditionalFunc ~= nil then
122
+ saveDataConditionalFuncMap:set(key, conditionalFunc)
123
+ end
124
+ end
125
+ --- The save data manager will automatically load variables from disk at the appropriate times (i.e.
126
+ -- when a new run is started). Use this function to explicitly force the save data manager to load
127
+ -- all of its variables from disk immediately.
128
+ --
129
+ -- Obviously, doing this will overwrite the current data, so using this function can potentially
130
+ -- result in lost state.
131
+ function ____exports.saveDataManagerLoad(self)
132
+ errorIfFeaturesNotInitialized(nil, SAVE_DATA_MANAGER_FEATURE_NAME)
133
+ forceSaveDataManagerLoad(nil)
134
+ end
135
+ --- The save data manager will automatically save variables to disk at the appropriate times (i.e.
136
+ -- when the run is exited). Use this function to explicitly force the save data manager to write all
137
+ -- of its variables to disk immediately.
138
+ function ____exports.saveDataManagerSave(self)
139
+ errorIfFeaturesNotInitialized(nil, SAVE_DATA_MANAGER_FEATURE_NAME)
140
+ forceSaveDataManagerSave(nil)
141
+ end
142
+ --- - Sets the global variable of "g" equal to all of the save data variables for this mod.
143
+ -- - Sets the global variable of "gd" equal to all of the save data default variables for this mod.
144
+ --
145
+ -- This can make debugging easier, as you can access the variables from the game's debug console.
146
+ -- e.g. `l print(g.feature1.foo)`
147
+ function ____exports.saveDataManagerSetGlobal(self)
148
+ g = saveDataMap
149
+ gd = saveDataDefaultsMap
150
+ end
151
+ --- The save data manager will automatically reset variables at the appropriate times (i.e. when a
152
+ -- player enters a new room). Use this function to explicitly force the save data manager to reset a
153
+ -- specific variable group.
154
+ --
155
+ -- For example:
156
+ --
157
+ -- ```ts
158
+ -- const v = {
159
+ -- room: {
160
+ -- foo: 123,
161
+ -- },
162
+ -- };
163
+ --
164
+ -- saveDataManager("file1", v);
165
+ --
166
+ -- // Then, later on, to explicit reset all of the "room" variables:
167
+ -- saveDataManagerReset("file1", "room");
168
+ -- ```
169
+ function ____exports.saveDataManagerReset(self, key, childObjectKey)
170
+ errorIfFeaturesNotInitialized(nil, SAVE_DATA_MANAGER_FEATURE_NAME)
171
+ local keyType = type(key)
172
+ if keyType ~= "string" then
173
+ error((("The " .. SAVE_DATA_MANAGER_FEATURE_NAME) .. " requires that keys are strings. You tried to use a key of type: ") .. keyType)
174
+ end
175
+ local saveData = saveDataMap[key]
176
+ if saveData == nil then
177
+ error((("The " .. SAVE_DATA_MANAGER_FEATURE_NAME) .. " is not managing save data for a key of: ") .. key)
178
+ end
179
+ restoreDefaultSaveData(nil, key, saveData, childObjectKey)
180
+ end
181
+ return ____exports
@@ -0,0 +1,4 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ /// <reference types="typescript-to-lua/language-extensions" />
3
+ import { SaveData } from "../../interfaces/SaveData";
4
+ export declare function loadFromDisk(mod: Mod, oldSaveData: LuaTable<string, SaveData>): void;
@@ -0,0 +1,66 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__StringTrim = ____lualib.__TS__StringTrim
3
+ local ____exports = {}
4
+ local readSaveDatFile, tryLoadModData, DEFAULT_MOD_DATA
5
+ local ____jsonHelpers = require("functions.jsonHelpers")
6
+ local jsonDecode = ____jsonHelpers.jsonDecode
7
+ local ____log = require("functions.log")
8
+ local log = ____log.log
9
+ local logError = ____log.logError
10
+ local ____constants = require("features.saveDataManager.constants")
11
+ local SAVE_DATA_MANAGER_DEBUG = ____constants.SAVE_DATA_MANAGER_DEBUG
12
+ local SAVE_DATA_MANAGER_FEATURE_NAME = ____constants.SAVE_DATA_MANAGER_FEATURE_NAME
13
+ local ____merge = require("features.saveDataManager.merge")
14
+ local merge = ____merge.merge
15
+ function readSaveDatFile(self, mod)
16
+ local renderFrameCount = Isaac.GetFrameCount()
17
+ local ok, jsonStringOrErrMsg = pcall(tryLoadModData, mod)
18
+ if not ok then
19
+ logError((("Failed to read from the \"save#.dat\" file on render frame " .. tostring(renderFrameCount)) .. ": ") .. jsonStringOrErrMsg)
20
+ return DEFAULT_MOD_DATA
21
+ end
22
+ if jsonStringOrErrMsg == nil then
23
+ return DEFAULT_MOD_DATA
24
+ end
25
+ local jsonStringTrimmed = __TS__StringTrim(jsonStringOrErrMsg)
26
+ if jsonStringTrimmed == "" then
27
+ return DEFAULT_MOD_DATA
28
+ end
29
+ return jsonStringTrimmed
30
+ end
31
+ function tryLoadModData(mod)
32
+ return mod:LoadData()
33
+ end
34
+ DEFAULT_MOD_DATA = "{}"
35
+ function ____exports.loadFromDisk(self, mod, oldSaveData)
36
+ if not mod:HasData() then
37
+ return
38
+ end
39
+ local jsonString = readSaveDatFile(nil, mod)
40
+ local newSaveData = jsonDecode(nil, jsonString)
41
+ if SAVE_DATA_MANAGER_DEBUG then
42
+ log("Converted data from the \"save#.dat\" to a Lua table.")
43
+ end
44
+ for key, value in pairs(newSaveData) do
45
+ do
46
+ if type(key) ~= "string" then
47
+ goto __continue5
48
+ end
49
+ local valueType = type(value)
50
+ if valueType ~= "table" then
51
+ goto __continue5
52
+ end
53
+ local oldSaveDataForSubscriber = oldSaveData[key]
54
+ if oldSaveDataForSubscriber == nil then
55
+ goto __continue5
56
+ end
57
+ if SAVE_DATA_MANAGER_DEBUG then
58
+ log("Merging in stored data for feature: " .. key)
59
+ end
60
+ merge(nil, oldSaveDataForSubscriber, value, key)
61
+ end
62
+ ::__continue5::
63
+ end
64
+ log(("The " .. SAVE_DATA_MANAGER_FEATURE_NAME) .. " loaded data from the \"save#.dat\" file.")
65
+ end
66
+ return ____exports
@@ -0,0 +1,3 @@
1
+ import { SaveDataKey } from "../../enums/private/SaveDataKey";
2
+ import { SaveData } from "../../interfaces/SaveData";
3
+ export declare function restoreDefaultSaveData(subscriberName: string, saveData: SaveData, saveDataKey: SaveDataKey): void;
@@ -0,0 +1,125 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local Map = ____lualib.Map
3
+ local ____exports = {}
4
+ local postPlayerInit, preGameExit, postNewLevel, postNewRoomEarly, restoreDefaultsAll, restoreDefaults, clearAndCopyAllElements, mod, loadedDataOnThisRun
5
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
+ local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
7
+ local ____cachedClasses = require("cachedClasses")
8
+ local game = ____cachedClasses.game
9
+ local ____ModCallbackCustom = require("enums.ModCallbackCustom")
10
+ local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
11
+ local ____SaveDataKey = require("enums.private.SaveDataKey")
12
+ local RESETTABLE_SAVE_DATA_KEYS = ____SaveDataKey.RESETTABLE_SAVE_DATA_KEYS
13
+ local SaveDataKey = ____SaveDataKey.SaveDataKey
14
+ local ____SerializationType = require("enums.SerializationType")
15
+ local SerializationType = ____SerializationType.SerializationType
16
+ local ____deepCopy = require("functions.deepCopy")
17
+ local deepCopy = ____deepCopy.deepCopy
18
+ local ____log = require("functions.log")
19
+ local logError = ____log.logError
20
+ local ____table = require("functions.table")
21
+ local clearTable = ____table.clearTable
22
+ local ____constants = require("features.saveDataManager.constants")
23
+ local SAVE_DATA_MANAGER_FEATURE_NAME = ____constants.SAVE_DATA_MANAGER_FEATURE_NAME
24
+ local ____load = require("features.saveDataManager.load")
25
+ local loadFromDisk = ____load.loadFromDisk
26
+ local ____maps = require("features.saveDataManager.maps")
27
+ local saveDataConditionalFuncMap = ____maps.saveDataConditionalFuncMap
28
+ local saveDataDefaultsMap = ____maps.saveDataDefaultsMap
29
+ local saveDataMap = ____maps.saveDataMap
30
+ local ____save = require("features.saveDataManager.save")
31
+ local saveToDisk = ____save.saveToDisk
32
+ function postPlayerInit(self)
33
+ if mod == nil then
34
+ error(("The mod for the " .. SAVE_DATA_MANAGER_FEATURE_NAME) .. " was not initialized.")
35
+ end
36
+ if loadedDataOnThisRun then
37
+ return
38
+ end
39
+ loadedDataOnThisRun = true
40
+ loadFromDisk(nil, mod, saveDataMap)
41
+ local gameFrameCount = game:GetFrameCount()
42
+ local isContinued = gameFrameCount ~= 0
43
+ if not isContinued then
44
+ restoreDefaultsAll(nil)
45
+ end
46
+ end
47
+ function preGameExit(self)
48
+ if mod == nil then
49
+ error(("The mod for the " .. SAVE_DATA_MANAGER_FEATURE_NAME) .. " was not initialized.")
50
+ end
51
+ saveToDisk(nil, mod, saveDataMap, saveDataConditionalFuncMap)
52
+ restoreDefaultsAll(nil)
53
+ loadedDataOnThisRun = false
54
+ end
55
+ function postNewLevel(self)
56
+ restoreDefaults(nil, SaveDataKey.LEVEL)
57
+ end
58
+ function postNewRoomEarly(self)
59
+ restoreDefaults(nil, SaveDataKey.ROOM)
60
+ end
61
+ function restoreDefaultsAll(self)
62
+ restoreDefaults(nil, SaveDataKey.RUN)
63
+ restoreDefaults(nil, SaveDataKey.LEVEL)
64
+ restoreDefaults(nil, SaveDataKey.ROOM)
65
+ end
66
+ function restoreDefaults(self, saveDataKey)
67
+ for subscriberName, saveData in pairs(saveDataMap) do
68
+ ____exports.restoreDefaultSaveData(nil, subscriberName, saveData, saveDataKey)
69
+ end
70
+ end
71
+ function ____exports.restoreDefaultSaveData(self, subscriberName, saveData, saveDataKey)
72
+ if not RESETTABLE_SAVE_DATA_KEYS:has(saveDataKey) then
73
+ error("Unknown save data key name of: " .. saveDataKey)
74
+ end
75
+ local childTable = saveData[saveDataKey]
76
+ if childTable == nil then
77
+ return
78
+ end
79
+ local saveDataDefaults = saveDataDefaultsMap[subscriberName]
80
+ if saveDataDefaults == nil then
81
+ logError("Failed to find the default copy of the save data for subscriber: " .. subscriberName)
82
+ return
83
+ end
84
+ local childTableDefaults = saveDataDefaults[saveDataKey]
85
+ if childTableDefaults == nil then
86
+ logError(((("Failed to find the default copy of the child table \"" .. saveDataKey) .. "\" for subscriber \"") .. subscriberName) .. "\". This error usually means that your save data is out of date. You can try purging all of your save data by deleting the following directory: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\data")
87
+ return
88
+ end
89
+ local childTableDefaultsCopy = deepCopy(nil, childTableDefaults, SerializationType.NONE, (subscriberName .. " --> ") .. saveDataKey)
90
+ clearAndCopyAllElements(nil, childTable, childTableDefaultsCopy)
91
+ end
92
+ function clearAndCopyAllElements(self, oldTable, newTable)
93
+ clearTable(nil, oldTable)
94
+ for key, value in pairs(newTable) do
95
+ oldTable[key] = value
96
+ end
97
+ end
98
+ mod = nil
99
+ loadedDataOnThisRun = false
100
+ ---
101
+ -- @internal
102
+ function ____exports.saveDataManagerInit(self, incomingMod)
103
+ mod = incomingMod
104
+ mod:AddCallback(ModCallback.POST_PLAYER_INIT, postPlayerInit)
105
+ mod:AddCallback(ModCallback.PRE_GAME_EXIT, preGameExit)
106
+ mod:AddCallback(ModCallback.POST_NEW_LEVEL, postNewLevel)
107
+ mod:AddCallbackCustom(ModCallbackCustom.POST_NEW_ROOM_EARLY, postNewRoomEarly)
108
+ end
109
+ ---
110
+ -- @internal
111
+ function ____exports.forceSaveDataManagerSave(self)
112
+ if mod == nil then
113
+ return
114
+ end
115
+ saveToDisk(nil, mod, saveDataMap, saveDataConditionalFuncMap)
116
+ end
117
+ ---
118
+ -- @internal
119
+ function ____exports.forceSaveDataManagerLoad(self)
120
+ if mod == nil then
121
+ return
122
+ end
123
+ loadFromDisk(nil, mod, saveDataMap)
124
+ end
125
+ return ____exports
@@ -0,0 +1,10 @@
1
+ /// <reference types="typescript-to-lua/language-extensions" />
2
+ import { SaveData } from "../../interfaces/SaveData";
3
+ /**
4
+ * The save data map is indexed by subscriber name. We use Lua tables instead of TypeScriptToLua
5
+ * Maps for the master map so that we can access the variables via the in-game console when
6
+ * debugging. (TSTL Maps don't expose the map keys as normal keys.)
7
+ */
8
+ export declare const saveDataMap: LuaTable<string, SaveData>;
9
+ export declare const saveDataDefaultsMap: LuaTable<string, SaveData>;
10
+ export declare const saveDataConditionalFuncMap: Map<string, () => boolean>;
@@ -0,0 +1,11 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local Map = ____lualib.Map
3
+ local __TS__New = ____lualib.__TS__New
4
+ local ____exports = {}
5
+ --- The save data map is indexed by subscriber name. We use Lua tables instead of TypeScriptToLua
6
+ -- Maps for the master map so that we can access the variables via the in-game console when
7
+ -- debugging. (TSTL Maps don't expose the map keys as normal keys.)
8
+ ____exports.saveDataMap = {}
9
+ ____exports.saveDataDefaultsMap = {}
10
+ ____exports.saveDataConditionalFuncMap = __TS__New(Map)
11
+ return ____exports