isaacscript-common 13.3.4 → 14.1.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 (668) hide show
  1. package/dist/index.d.ts +1644 -441
  2. package/dist/isaacscript-common.lua +19643 -16276
  3. package/dist/src/callbacks/customRevive.lua +10 -1
  4. package/dist/src/callbacks/postAmbush.d.ts.map +1 -1
  5. package/dist/src/callbacks/postAmbush.lua +7 -12
  6. package/dist/src/callbacks/postBombExploded.lua +3 -3
  7. package/dist/src/callbacks/postDoorRender.lua +2 -2
  8. package/dist/src/callbacks/postEffectStateChanged.lua +3 -3
  9. package/dist/src/callbacks/postFamiliarStateChanged.lua +3 -3
  10. package/dist/src/callbacks/postFlip.lua +1 -1
  11. package/dist/src/callbacks/postGridEntity.lua +2 -2
  12. package/dist/src/callbacks/postNPCStateChanged.lua +3 -3
  13. package/dist/src/callbacks/postPickupStateChanged.lua +3 -3
  14. package/dist/src/callbacks/postPlayerCollectible.d.ts.map +1 -1
  15. package/dist/src/callbacks/postPlayerCollectible.lua +5 -9
  16. package/dist/src/callbacks/postRoomClearChanged.d.ts.map +1 -1
  17. package/dist/src/callbacks/postRoomClearChanged.lua +3 -5
  18. package/dist/src/callbacks/reorderedCallbacks.lua +7 -7
  19. package/dist/src/callbacks/subscriptions/{postBoneExploded.d.ts → postBombExploded.d.ts} +1 -1
  20. package/dist/src/callbacks/subscriptions/{postBoneExploded.d.ts.map → postBombExploded.d.ts.map} +1 -1
  21. package/dist/src/callbacks/subscriptions/{postBoneExploded.lua → postBombExploded.lua} +0 -0
  22. package/dist/src/callbacks/subscriptions/postCollectibleEmpty.d.ts +1 -1
  23. package/dist/src/callbacks/subscriptions/postCollectibleEmpty.d.ts.map +1 -1
  24. package/dist/src/callbacks/subscriptions/postCollectibleInitFirst.d.ts +1 -1
  25. package/dist/src/callbacks/subscriptions/postCollectibleInitFirst.d.ts.map +1 -1
  26. package/dist/src/callbacks/subscriptions/postCursedTeleport.d.ts +4 -2
  27. package/dist/src/callbacks/subscriptions/postCursedTeleport.d.ts.map +1 -1
  28. package/dist/src/callbacks/subscriptions/postCursedTeleport.lua +13 -1
  29. package/dist/src/callbacks/subscriptions/postGridEntityBroken.d.ts +1 -1
  30. package/dist/src/callbacks/subscriptions/postGridEntityBroken.d.ts.map +1 -1
  31. package/dist/src/callbacks/subscriptions/postGridEntityBroken.lua +3 -3
  32. package/dist/src/callbacks/subscriptions/postGridEntityInit.d.ts +1 -1
  33. package/dist/src/callbacks/subscriptions/postGridEntityInit.d.ts.map +1 -1
  34. package/dist/src/callbacks/subscriptions/postGridEntityInit.lua +3 -3
  35. package/dist/src/callbacks/subscriptions/postGridEntityRemove.d.ts +3 -3
  36. package/dist/src/callbacks/subscriptions/postGridEntityRemove.d.ts.map +1 -1
  37. package/dist/src/callbacks/subscriptions/postGridEntityRemove.lua +4 -4
  38. package/dist/src/callbacks/subscriptions/postGridEntityRender.d.ts +1 -1
  39. package/dist/src/callbacks/subscriptions/postGridEntityRender.d.ts.map +1 -1
  40. package/dist/src/callbacks/subscriptions/postGridEntityRender.lua +3 -3
  41. package/dist/src/callbacks/subscriptions/postGridEntityStateChanged.d.ts +1 -1
  42. package/dist/src/callbacks/subscriptions/postGridEntityStateChanged.d.ts.map +1 -1
  43. package/dist/src/callbacks/subscriptions/postGridEntityStateChanged.lua +3 -3
  44. package/dist/src/callbacks/subscriptions/postGridEntityUpdate.d.ts +1 -1
  45. package/dist/src/callbacks/subscriptions/postGridEntityUpdate.d.ts.map +1 -1
  46. package/dist/src/callbacks/subscriptions/postGridEntityUpdate.lua +3 -3
  47. package/dist/src/callbacks/subscriptions/postHolyMantleRemoved.d.ts.map +1 -1
  48. package/dist/src/callbacks/subscriptions/postHolyMantleRemoved.lua +2 -2
  49. package/dist/src/callbacks/subscriptions/postPEffectUpdateReordered.d.ts.map +1 -1
  50. package/dist/src/callbacks/subscriptions/postPEffectUpdateReordered.lua +2 -2
  51. package/dist/src/callbacks/subscriptions/postRockRender.d.ts +1 -1
  52. package/dist/src/callbacks/subscriptions/postRockRender.d.ts.map +1 -1
  53. package/dist/src/callbacks/subscriptions/postRockRender.lua +3 -3
  54. package/dist/src/callbacks/subscriptions/postRockUpdate.d.ts +1 -1
  55. package/dist/src/callbacks/subscriptions/postRockUpdate.d.ts.map +1 -1
  56. package/dist/src/callbacks/subscriptions/postRockUpdate.lua +3 -3
  57. package/dist/src/callbacks/subscriptions/postSpikesRender.d.ts +1 -1
  58. package/dist/src/callbacks/subscriptions/postSpikesRender.d.ts.map +1 -1
  59. package/dist/src/callbacks/subscriptions/postSpikesRender.lua +3 -3
  60. package/dist/src/callbacks/subscriptions/postSpikesUpdate.d.ts +1 -1
  61. package/dist/src/callbacks/subscriptions/postSpikesUpdate.d.ts.map +1 -1
  62. package/dist/src/callbacks/subscriptions/postSpikesUpdate.lua +3 -3
  63. package/dist/src/callbacks/subscriptions/postTNTRender.d.ts +1 -1
  64. package/dist/src/callbacks/subscriptions/postTNTRender.d.ts.map +1 -1
  65. package/dist/src/callbacks/subscriptions/postTNTRender.lua +3 -3
  66. package/dist/src/callbacks/subscriptions/postTNTUpdate.d.ts +1 -1
  67. package/dist/src/callbacks/subscriptions/postTNTUpdate.d.ts.map +1 -1
  68. package/dist/src/callbacks/subscriptions/postTNTUpdate.lua +3 -3
  69. package/dist/src/callbacks.d.ts +106 -0
  70. package/dist/src/callbacks.d.ts.map +1 -0
  71. package/dist/src/callbacks.lua +176 -0
  72. package/dist/src/classes/DefaultMap.d.ts.map +1 -1
  73. package/dist/src/classes/ModFeature.d.ts +11 -0
  74. package/dist/src/classes/ModFeature.d.ts.map +1 -0
  75. package/dist/src/classes/ModFeature.lua +13 -0
  76. package/dist/src/classes/ModUpgraded.d.ts +49 -11
  77. package/dist/src/classes/ModUpgraded.d.ts.map +1 -1
  78. package/dist/src/classes/ModUpgraded.lua +118 -16
  79. package/dist/src/classes/callbacks/PostAmbushFinished.d.ts +12 -0
  80. package/dist/src/classes/callbacks/PostAmbushFinished.d.ts.map +1 -0
  81. package/dist/src/classes/callbacks/PostAmbushFinished.lua +37 -0
  82. package/dist/src/classes/callbacks/PostAmbushStarted.d.ts +12 -0
  83. package/dist/src/classes/callbacks/PostAmbushStarted.d.ts.map +1 -0
  84. package/dist/src/classes/callbacks/PostAmbushStarted.lua +37 -0
  85. package/dist/src/classes/callbacks/PostBombExploded.d.ts +7 -0
  86. package/dist/src/classes/callbacks/PostBombExploded.d.ts.map +1 -0
  87. package/dist/src/classes/callbacks/PostBombExploded.lua +24 -0
  88. package/dist/src/classes/callbacks/PostBombInitLate.d.ts +12 -0
  89. package/dist/src/classes/callbacks/PostBombInitLate.d.ts.map +1 -0
  90. package/dist/src/classes/callbacks/PostBombInitLate.lua +27 -0
  91. package/dist/src/classes/callbacks/PostBoneSwing.d.ts +14 -0
  92. package/dist/src/classes/callbacks/PostBoneSwing.d.ts.map +1 -0
  93. package/dist/src/classes/callbacks/PostBoneSwing.lua +43 -0
  94. package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts +17 -0
  95. package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -0
  96. package/dist/src/classes/callbacks/PostCollectibleEmpty.lua +47 -0
  97. package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts +13 -0
  98. package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts.map +1 -0
  99. package/dist/src/classes/callbacks/PostCollectibleInitFirst.lua +32 -0
  100. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts +20 -0
  101. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts.map +1 -0
  102. package/dist/src/classes/callbacks/PostCursedTeleport.lua +113 -0
  103. package/dist/src/classes/callbacks/PostCustomRevive.d.ts +6 -0
  104. package/dist/src/classes/callbacks/PostCustomRevive.d.ts.map +1 -0
  105. package/dist/src/classes/callbacks/PostCustomRevive.lua +17 -0
  106. package/dist/src/classes/callbacks/PostDiceRoomActivated.d.ts +15 -0
  107. package/dist/src/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -0
  108. package/dist/src/classes/callbacks/PostDiceRoomActivated.lua +44 -0
  109. package/dist/src/classes/callbacks/PostDoorRender.d.ts +7 -0
  110. package/dist/src/classes/callbacks/PostDoorRender.d.ts.map +1 -0
  111. package/dist/src/classes/callbacks/PostDoorRender.lua +24 -0
  112. package/dist/src/classes/callbacks/PostDoorUpdate.d.ts +7 -0
  113. package/dist/src/classes/callbacks/PostDoorUpdate.d.ts.map +1 -0
  114. package/dist/src/classes/callbacks/PostDoorUpdate.lua +24 -0
  115. package/dist/src/classes/callbacks/PostEffectInitLate.d.ts +12 -0
  116. package/dist/src/classes/callbacks/PostEffectInitLate.d.ts.map +1 -0
  117. package/dist/src/classes/callbacks/PostEffectInitLate.lua +27 -0
  118. package/dist/src/classes/callbacks/PostEffectStateChanged.d.ts +13 -0
  119. package/dist/src/classes/callbacks/PostEffectStateChanged.d.ts.map +1 -0
  120. package/dist/src/classes/callbacks/PostEffectStateChanged.lua +33 -0
  121. package/dist/src/classes/callbacks/PostEsauJr.d.ts +6 -0
  122. package/dist/src/classes/callbacks/PostEsauJr.d.ts.map +1 -0
  123. package/dist/src/classes/callbacks/PostEsauJr.lua +17 -0
  124. package/dist/src/classes/callbacks/PostFamiliarInitLate.d.ts +12 -0
  125. package/dist/src/classes/callbacks/PostFamiliarInitLate.d.ts.map +1 -0
  126. package/dist/src/classes/callbacks/PostFamiliarInitLate.lua +27 -0
  127. package/dist/src/classes/callbacks/PostFamiliarStateChanged.d.ts +13 -0
  128. package/dist/src/classes/callbacks/PostFamiliarStateChanged.d.ts.map +1 -0
  129. package/dist/src/classes/callbacks/PostFamiliarStateChanged.lua +33 -0
  130. package/dist/src/classes/callbacks/PostFirstEsauJr.d.ts +6 -0
  131. package/dist/src/classes/callbacks/PostFirstEsauJr.d.ts.map +1 -0
  132. package/dist/src/classes/callbacks/PostFirstEsauJr.lua +17 -0
  133. package/dist/src/classes/callbacks/PostFirstFlip.d.ts +6 -0
  134. package/dist/src/classes/callbacks/PostFirstFlip.d.ts.map +1 -0
  135. package/dist/src/classes/callbacks/PostFirstFlip.lua +17 -0
  136. package/dist/src/classes/callbacks/PostFlip.d.ts +6 -0
  137. package/dist/src/classes/callbacks/PostFlip.d.ts.map +1 -0
  138. package/dist/src/classes/callbacks/PostFlip.lua +17 -0
  139. package/dist/src/classes/callbacks/PostGameStartedReordered.d.ts +6 -0
  140. package/dist/src/classes/callbacks/PostGameStartedReordered.d.ts.map +1 -0
  141. package/dist/src/classes/callbacks/PostGameStartedReordered.lua +17 -0
  142. package/dist/src/classes/callbacks/PostGameStartedReorderedLast.d.ts +6 -0
  143. package/dist/src/classes/callbacks/PostGameStartedReorderedLast.d.ts.map +1 -0
  144. package/dist/src/classes/callbacks/PostGameStartedReorderedLast.lua +17 -0
  145. package/dist/src/classes/callbacks/PostGreedModeWave.d.ts +12 -0
  146. package/dist/src/classes/callbacks/PostGreedModeWave.d.ts.map +1 -0
  147. package/dist/src/classes/callbacks/PostGreedModeWave.lua +34 -0
  148. package/dist/src/classes/callbacks/PostGridEntityBroken.d.ts +6 -0
  149. package/dist/src/classes/callbacks/PostGridEntityBroken.d.ts.map +1 -0
  150. package/dist/src/classes/callbacks/PostGridEntityBroken.lua +17 -0
  151. package/dist/src/classes/callbacks/PostGridEntityCollision.d.ts +9 -0
  152. package/dist/src/classes/callbacks/PostGridEntityCollision.d.ts.map +1 -0
  153. package/dist/src/classes/callbacks/PostGridEntityCollision.lua +36 -0
  154. package/dist/src/classes/callbacks/PostGridEntityCustomBroken.d.ts +6 -0
  155. package/dist/src/classes/callbacks/PostGridEntityCustomBroken.d.ts.map +1 -0
  156. package/dist/src/classes/callbacks/PostGridEntityCustomBroken.lua +17 -0
  157. package/dist/src/classes/callbacks/PostGridEntityCustomCollision.d.ts +9 -0
  158. package/dist/src/classes/callbacks/PostGridEntityCustomCollision.d.ts.map +1 -0
  159. package/dist/src/classes/callbacks/PostGridEntityCustomCollision.lua +31 -0
  160. package/dist/src/classes/callbacks/PostGridEntityCustomInit.d.ts +6 -0
  161. package/dist/src/classes/callbacks/PostGridEntityCustomInit.d.ts.map +1 -0
  162. package/dist/src/classes/callbacks/PostGridEntityCustomInit.lua +17 -0
  163. package/dist/src/classes/callbacks/PostGridEntityCustomRemove.d.ts +9 -0
  164. package/dist/src/classes/callbacks/PostGridEntityCustomRemove.d.ts.map +1 -0
  165. package/dist/src/classes/callbacks/PostGridEntityCustomRemove.lua +25 -0
  166. package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.d.ts +6 -0
  167. package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.d.ts.map +1 -0
  168. package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.lua +17 -0
  169. package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.d.ts +6 -0
  170. package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.d.ts.map +1 -0
  171. package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.lua +17 -0
  172. package/dist/src/classes/callbacks/PostGridEntityInit.d.ts +6 -0
  173. package/dist/src/classes/callbacks/PostGridEntityInit.d.ts.map +1 -0
  174. package/dist/src/classes/callbacks/PostGridEntityInit.lua +17 -0
  175. package/dist/src/classes/callbacks/PostGridEntityRemove.d.ts +9 -0
  176. package/dist/src/classes/callbacks/PostGridEntityRemove.d.ts.map +1 -0
  177. package/dist/src/classes/callbacks/PostGridEntityRemove.lua +28 -0
  178. package/dist/src/classes/callbacks/PostGridEntityStateChanged.d.ts +6 -0
  179. package/dist/src/classes/callbacks/PostGridEntityStateChanged.d.ts.map +1 -0
  180. package/dist/src/classes/callbacks/PostGridEntityStateChanged.lua +17 -0
  181. package/dist/src/classes/callbacks/PostGridEntityUpdate.d.ts +6 -0
  182. package/dist/src/classes/callbacks/PostGridEntityUpdate.d.ts.map +1 -0
  183. package/dist/src/classes/callbacks/PostGridEntityUpdate.lua +17 -0
  184. package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts +14 -0
  185. package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts.map +1 -0
  186. package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +35 -0
  187. package/dist/src/classes/callbacks/PostKnifeInitLate.d.ts +12 -0
  188. package/dist/src/classes/callbacks/PostKnifeInitLate.d.ts.map +1 -0
  189. package/dist/src/classes/callbacks/PostKnifeInitLate.lua +27 -0
  190. package/dist/src/classes/callbacks/PostNewLevelReordered.d.ts +6 -0
  191. package/dist/src/classes/callbacks/PostNewLevelReordered.d.ts.map +1 -0
  192. package/dist/src/classes/callbacks/PostNewLevelReordered.lua +17 -0
  193. package/dist/src/classes/callbacks/PostNewRoomEarly.d.ts +13 -0
  194. package/dist/src/classes/callbacks/PostNewRoomEarly.d.ts.map +1 -0
  195. package/dist/src/classes/callbacks/PostNewRoomEarly.lua +65 -0
  196. package/dist/src/classes/callbacks/PostNewRoomReordered.d.ts +6 -0
  197. package/dist/src/classes/callbacks/PostNewRoomReordered.d.ts.map +1 -0
  198. package/dist/src/classes/callbacks/PostNewRoomReordered.lua +17 -0
  199. package/dist/src/classes/callbacks/PostPEffectUpdateReordered.d.ts +6 -0
  200. package/dist/src/classes/callbacks/PostPEffectUpdateReordered.d.ts.map +1 -0
  201. package/dist/src/classes/callbacks/PostPEffectUpdateReordered.lua +17 -0
  202. package/dist/src/classes/callbacks/PostPitRender.d.ts +7 -0
  203. package/dist/src/classes/callbacks/PostPitRender.d.ts.map +1 -0
  204. package/dist/src/classes/callbacks/PostPitRender.lua +24 -0
  205. package/dist/src/classes/callbacks/PostPlayerFatalDamage.d.ts +15 -0
  206. package/dist/src/classes/callbacks/PostPlayerFatalDamage.d.ts.map +1 -0
  207. package/dist/src/classes/callbacks/PostPlayerFatalDamage.lua +87 -0
  208. package/dist/src/classes/callbacks/PostPlayerRenderReordered.d.ts +6 -0
  209. package/dist/src/classes/callbacks/PostPlayerRenderReordered.d.ts.map +1 -0
  210. package/dist/src/classes/callbacks/PostPlayerRenderReordered.lua +17 -0
  211. package/dist/src/classes/callbacks/PostPlayerUpdateReordered.d.ts +6 -0
  212. package/dist/src/classes/callbacks/PostPlayerUpdateReordered.d.ts.map +1 -0
  213. package/dist/src/classes/callbacks/PostPlayerUpdateReordered.lua +17 -0
  214. package/dist/src/classes/callbacks/PostRoomClearChanged.d.ts +13 -0
  215. package/dist/src/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -0
  216. package/dist/src/classes/callbacks/PostRoomClearChanged.lua +33 -0
  217. package/dist/src/classes/callbacks/PostSpikesRender.d.ts +7 -0
  218. package/dist/src/classes/callbacks/PostSpikesRender.d.ts.map +1 -0
  219. package/dist/src/classes/callbacks/PostSpikesRender.lua +24 -0
  220. package/dist/src/classes/callbacks/PreBerserkDeath.d.ts +7 -0
  221. package/dist/src/classes/callbacks/PreBerserkDeath.d.ts.map +1 -0
  222. package/dist/src/classes/callbacks/PreBerserkDeath.lua +36 -0
  223. package/dist/src/classes/callbacks/PreCustomRevive.d.ts +6 -0
  224. package/dist/src/classes/callbacks/PreCustomRevive.d.ts.map +1 -0
  225. package/dist/src/classes/callbacks/PreCustomRevive.lua +17 -0
  226. package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.d.ts +10 -0
  227. package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.d.ts.map +1 -0
  228. package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.lua +19 -0
  229. package/dist/src/classes/callbacks/validation/CustomCallbackBomb.d.ts +10 -0
  230. package/dist/src/classes/callbacks/validation/CustomCallbackBomb.d.ts.map +1 -0
  231. package/dist/src/classes/callbacks/validation/CustomCallbackBomb.lua +19 -0
  232. package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.d.ts +10 -0
  233. package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.d.ts.map +1 -0
  234. package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.lua +19 -0
  235. package/dist/src/classes/callbacks/validation/CustomCallbackDoor.d.ts +10 -0
  236. package/dist/src/classes/callbacks/validation/CustomCallbackDoor.d.ts.map +1 -0
  237. package/dist/src/classes/callbacks/validation/CustomCallbackDoor.lua +20 -0
  238. package/dist/src/classes/callbacks/validation/CustomCallbackEffect.d.ts +11 -0
  239. package/dist/src/classes/callbacks/validation/CustomCallbackEffect.d.ts.map +1 -0
  240. package/dist/src/classes/callbacks/validation/CustomCallbackEffect.lua +19 -0
  241. package/dist/src/classes/callbacks/validation/CustomCallbackFamiliar.d.ts +11 -0
  242. package/dist/src/classes/callbacks/validation/CustomCallbackFamiliar.d.ts.map +1 -0
  243. package/dist/src/classes/callbacks/validation/CustomCallbackFamiliar.lua +19 -0
  244. package/dist/src/classes/callbacks/validation/CustomCallbackGridEntity.d.ts +11 -0
  245. package/dist/src/classes/callbacks/validation/CustomCallbackGridEntity.d.ts.map +1 -0
  246. package/dist/src/classes/callbacks/validation/CustomCallbackGridEntity.lua +24 -0
  247. package/dist/src/classes/callbacks/validation/CustomCallbackGridEntityCustom.d.ts +10 -0
  248. package/dist/src/classes/callbacks/validation/CustomCallbackGridEntityCustom.d.ts.map +1 -0
  249. package/dist/src/classes/callbacks/validation/CustomCallbackGridEntityCustom.lua +19 -0
  250. package/dist/src/classes/callbacks/validation/CustomCallbackKnife.d.ts +10 -0
  251. package/dist/src/classes/callbacks/validation/CustomCallbackKnife.d.ts.map +1 -0
  252. package/dist/src/classes/callbacks/validation/CustomCallbackKnife.lua +19 -0
  253. package/dist/src/classes/callbacks/validation/CustomCallbackPit.d.ts +10 -0
  254. package/dist/src/classes/callbacks/validation/CustomCallbackPit.d.ts.map +1 -0
  255. package/dist/src/classes/callbacks/validation/CustomCallbackPit.lua +20 -0
  256. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts +10 -0
  257. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts.map +1 -0
  258. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.lua +23 -0
  259. package/dist/src/classes/callbacks/validation/CustomCallbackRevive.d.ts +11 -0
  260. package/dist/src/classes/callbacks/validation/CustomCallbackRevive.d.ts.map +1 -0
  261. package/dist/src/classes/callbacks/validation/CustomCallbackRevive.lua +19 -0
  262. package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.d.ts +10 -0
  263. package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.d.ts.map +1 -0
  264. package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.lua +20 -0
  265. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts +134 -0
  266. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -0
  267. package/dist/src/classes/features/callbackLogic/CustomGridEntities.lua +220 -0
  268. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts +39 -0
  269. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -0
  270. package/dist/src/classes/features/callbackLogic/CustomRevive.lua +140 -0
  271. package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts +19 -0
  272. package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -0
  273. package/dist/src/classes/features/callbackLogic/EsauJrDetection.lua +52 -0
  274. package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts +16 -0
  275. package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts.map +1 -0
  276. package/dist/src/classes/features/callbackLogic/FlipDetection.lua +58 -0
  277. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts +27 -0
  278. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -0
  279. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.lua +108 -0
  280. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts +19 -0
  281. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts.map +1 -0
  282. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.lua +69 -0
  283. package/dist/src/classes/features/callbackLogic/GridEntityDetection.d.ts +46 -0
  284. package/dist/src/classes/features/callbackLogic/GridEntityDetection.d.ts.map +1 -0
  285. package/dist/src/classes/features/callbackLogic/GridEntityDetection.lua +126 -0
  286. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts +24 -0
  287. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -0
  288. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.lua +72 -0
  289. package/dist/src/classes/features/other/RunInNFrames.d.ts +123 -0
  290. package/dist/src/classes/features/other/RunInNFrames.d.ts.map +1 -0
  291. package/dist/src/classes/features/other/RunInNFrames.lua +109 -0
  292. package/dist/src/classes/private/CustomCallback.d.ts +26 -0
  293. package/dist/src/classes/private/CustomCallback.d.ts.map +1 -0
  294. package/dist/src/classes/private/CustomCallback.lua +63 -0
  295. package/dist/src/classes/private/Feature.d.ts +19 -0
  296. package/dist/src/classes/private/Feature.d.ts.map +1 -0
  297. package/dist/src/classes/private/Feature.lua +16 -0
  298. package/dist/src/core/upgradeMod.d.ts +18 -1
  299. package/dist/src/core/upgradeMod.d.ts.map +1 -1
  300. package/dist/src/core/upgradeMod.lua +44 -9
  301. package/dist/src/decorators.d.ts +9 -0
  302. package/dist/src/decorators.d.ts.map +1 -0
  303. package/dist/src/decorators.lua +12 -0
  304. package/dist/src/enums/ISCFeature.d.ts +12 -0
  305. package/dist/src/enums/ISCFeature.d.ts.map +1 -0
  306. package/dist/src/enums/ISCFeature.lua +12 -0
  307. package/dist/src/enums/LadderSubTypeCustom.d.ts +17 -0
  308. package/dist/src/enums/LadderSubTypeCustom.d.ts.map +1 -0
  309. package/dist/src/enums/LadderSubTypeCustom.lua +19 -0
  310. package/dist/src/enums/ModCallbackCustom.d.ts +399 -327
  311. package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
  312. package/dist/src/enums/ModCallbackCustom.lua +85 -87
  313. package/dist/src/enums/ModCallbackCustom2.d.ts +53 -0
  314. package/dist/src/enums/ModCallbackCustom2.d.ts.map +1 -0
  315. package/dist/src/enums/ModCallbackCustom2.lua +102 -0
  316. package/dist/src/features/customGridEntity.d.ts.map +1 -1
  317. package/dist/src/features/customGridEntity.lua +6 -8
  318. package/dist/src/features/{setHotkey.d.ts → customHotkeys.d.ts} +1 -1
  319. package/dist/src/features/customHotkeys.d.ts.map +1 -0
  320. package/dist/src/features/{setHotkey.lua → customHotkeys.lua} +2 -2
  321. package/dist/src/features/customPickup.d.ts.map +1 -1
  322. package/dist/src/features/customPickup.lua +6 -2
  323. package/dist/src/features/customStage/backdrop.d.ts.map +1 -1
  324. package/dist/src/features/customStage/backdrop.lua +3 -1
  325. package/dist/src/features/customStage/shadows.d.ts.map +1 -1
  326. package/dist/src/features/customStage/shadows.lua +3 -1
  327. package/dist/src/features/customTrapdoor/init.lua +1 -7
  328. package/dist/src/features/customTrapdoor/touched.lua +1 -1
  329. package/dist/src/features/deployJSONRoom.d.ts.map +1 -1
  330. package/dist/src/features/deployJSONRoom.lua +6 -8
  331. package/dist/src/features/firstLast.d.ts.map +1 -1
  332. package/dist/src/features/firstLast.lua +3 -3
  333. package/dist/src/features/saveDataManager/constants.d.ts +1 -1
  334. package/dist/src/features/saveDataManager/constants.d.ts.map +1 -1
  335. package/dist/src/features/saveDataManager/exports.d.ts +5 -0
  336. package/dist/src/features/saveDataManager/exports.d.ts.map +1 -1
  337. package/dist/src/features/saveDataManager/exports.lua +16 -0
  338. package/dist/src/features/saveDataManager/main.d.ts +8 -2
  339. package/dist/src/features/saveDataManager/main.d.ts.map +1 -1
  340. package/dist/src/features/saveDataManager/main.lua +3 -5
  341. package/dist/src/features/saveDataManager/save.lua +2 -3
  342. package/dist/src/features.d.ts +34 -0
  343. package/dist/src/features.d.ts.map +1 -0
  344. package/dist/src/features.lua +68 -0
  345. package/dist/src/functions/ambush.d.ts +6 -0
  346. package/dist/src/functions/ambush.d.ts.map +1 -1
  347. package/dist/src/functions/ambush.lua +31 -0
  348. package/dist/src/functions/characters.lua +3 -3
  349. package/dist/src/functions/charge.d.ts +30 -8
  350. package/dist/src/functions/charge.d.ts.map +1 -1
  351. package/dist/src/functions/charge.lua +38 -2
  352. package/dist/src/functions/chargeBar.d.ts +6 -0
  353. package/dist/src/functions/chargeBar.d.ts.map +1 -1
  354. package/dist/src/functions/chargeBar.lua +6 -0
  355. package/dist/src/functions/decorators.d.ts +19 -0
  356. package/dist/src/functions/decorators.d.ts.map +1 -0
  357. package/dist/src/functions/decorators.lua +32 -0
  358. package/dist/src/functions/flying.lua +4 -4
  359. package/dist/src/functions/gridEntities.lua +5 -5
  360. package/dist/src/functions/gridEntitiesSpecific.lua +12 -12
  361. package/dist/src/functions/itemPool.lua +2 -2
  362. package/dist/src/functions/minimap.d.ts +4 -0
  363. package/dist/src/functions/minimap.d.ts.map +1 -1
  364. package/dist/src/functions/minimap.lua +4 -0
  365. package/dist/src/functions/playerHealth.lua +6 -6
  366. package/dist/src/functions/playerIndex.lua +2 -2
  367. package/dist/src/functions/players.d.ts +14 -3
  368. package/dist/src/functions/players.d.ts.map +1 -1
  369. package/dist/src/functions/players.lua +35 -16
  370. package/dist/src/functions/pocketItems.lua +1 -1
  371. package/dist/src/functions/roomTransition.d.ts +3 -4
  372. package/dist/src/functions/roomTransition.d.ts.map +1 -1
  373. package/dist/src/functions/roomTransition.lua +4 -32
  374. package/dist/src/functions/rooms.d.ts +1 -1
  375. package/dist/src/functions/rooms.d.ts.map +1 -1
  376. package/dist/src/functions/rooms.lua +1 -1
  377. package/dist/src/functions/run.d.ts +5 -0
  378. package/dist/src/functions/run.d.ts.map +1 -1
  379. package/dist/src/functions/run.lua +6 -0
  380. package/dist/src/functions/spawnCollectible.d.ts +24 -5
  381. package/dist/src/functions/spawnCollectible.d.ts.map +1 -1
  382. package/dist/src/functions/spawnCollectible.lua +44 -4
  383. package/dist/src/functions/table.d.ts +2 -0
  384. package/dist/src/functions/table.d.ts.map +1 -1
  385. package/dist/src/functions/table.lua +7 -0
  386. package/dist/src/functions/trinkets.lua +1 -1
  387. package/dist/src/functions/tstlClass.d.ts +21 -9
  388. package/dist/src/functions/tstlClass.d.ts.map +1 -1
  389. package/dist/src/functions/tstlClass.lua +49 -24
  390. package/dist/src/functions/utils.d.ts +44 -2
  391. package/dist/src/functions/utils.d.ts.map +1 -1
  392. package/dist/src/functions/utils.lua +43 -2
  393. package/dist/src/index.d.ts +15 -2
  394. package/dist/src/index.d.ts.map +1 -1
  395. package/dist/src/index.lua +42 -10
  396. package/dist/src/initCustomCallbacks.d.ts.map +1 -1
  397. package/dist/src/initCustomCallbacks.lua +0 -3
  398. package/dist/src/initFeatures.lua +3 -3
  399. package/dist/src/interfaces/SaveData.d.ts.map +1 -1
  400. package/dist/src/interfaces/{private/TSTLClassMetatable.d.ts → TSTLClassMetatable.d.ts} +0 -0
  401. package/dist/src/interfaces/TSTLClassMetatable.d.ts.map +1 -0
  402. package/dist/src/interfaces/{private/TSTLClassMetatable.lua → TSTLClassMetatable.lua} +0 -0
  403. package/dist/src/interfaces/private/{AddCallbackParameterCustom.d.ts → AddCallbackParametersCustom.d.ts} +3 -5
  404. package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -0
  405. package/dist/src/interfaces/private/{AddCallbackParameterCustom.lua → AddCallbackParametersCustom.lua} +3 -0
  406. package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts +201 -0
  407. package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts.map +1 -0
  408. package/dist/src/interfaces/private/AddCallbackParametersCustom2.lua +7 -0
  409. package/dist/src/maps/characterNameToTypeMap.lua +12 -12
  410. package/dist/src/objects/callbackRegisterFunctions.d.ts +1 -1
  411. package/dist/src/objects/callbackRegisterFunctions.d.ts.map +1 -1
  412. package/dist/src/objects/callbackRegisterFunctions.lua +2 -5
  413. package/dist/src/objects/characterDamageMultipliers.lua +6 -6
  414. package/dist/src/objects/characterNames.lua +6 -6
  415. package/dist/src/objects/playerNamePNGFileNames.lua +6 -6
  416. package/dist/src/objects/playerPortraitPNGFileNames.lua +6 -6
  417. package/dist/src/sets/charactersThatStartWithAnActiveItemSet.lua +1 -1
  418. package/dist/src/sets/charactersWithFreeDevilDealsSet.d.ts.map +1 -1
  419. package/dist/src/sets/charactersWithFreeDevilDealsSet.lua +1 -1
  420. package/dist/src/sets/charactersWithNoRedHeartsSet.lua +3 -3
  421. package/dist/src/sets/charactersWithNoSoulHeartsSet.lua +2 -2
  422. package/dist/src/sets/lostStyleCharactersSet.lua +4 -4
  423. package/dist/src/types/AllButFirst.d.ts +5 -0
  424. package/dist/src/types/AllButFirst.d.ts.map +1 -0
  425. package/dist/src/types/AllButFirst.lua +2 -0
  426. package/dist/src/types/AllButLast.d.ts +2 -0
  427. package/dist/src/types/AllButLast.d.ts.map +1 -0
  428. package/dist/src/types/AllButLast.lua +2 -0
  429. package/dist/src/types/Constructor.d.ts +2 -0
  430. package/dist/src/types/Constructor.d.ts.map +1 -0
  431. package/dist/src/types/Constructor.lua +2 -0
  432. package/dist/src/types/FunctionTuple.d.ts +5 -0
  433. package/dist/src/types/FunctionTuple.d.ts.map +1 -0
  434. package/dist/src/types/FunctionTuple.lua +2 -0
  435. package/dist/src/types/HasAllEnumKeys.d.ts +26 -0
  436. package/dist/src/types/HasAllEnumKeys.d.ts.map +1 -0
  437. package/dist/src/types/HasAllEnumKeys.lua +2 -0
  438. package/dist/src/types/LowercaseKeys.d.ts +3 -0
  439. package/dist/src/types/LowercaseKeys.d.ts.map +1 -0
  440. package/dist/src/types/LowercaseKeys.lua +2 -0
  441. package/dist/src/types/StartsWithLowercase.d.ts +2 -0
  442. package/dist/src/types/StartsWithLowercase.d.ts.map +1 -0
  443. package/dist/src/types/StartsWithLowercase.lua +2 -0
  444. package/dist/src/types/StartsWithUppercase.d.ts +2 -0
  445. package/dist/src/types/StartsWithUppercase.d.ts.map +1 -0
  446. package/dist/src/types/StartsWithUppercase.lua +2 -0
  447. package/dist/src/types/UnionToIntersection.d.ts +3 -0
  448. package/dist/src/types/UnionToIntersection.d.ts.map +1 -0
  449. package/dist/src/types/UnionToIntersection.lua +2 -0
  450. package/dist/src/types/UppercaseKeys.d.ts +3 -0
  451. package/dist/src/types/UppercaseKeys.d.ts.map +1 -0
  452. package/dist/src/types/UppercaseKeys.lua +2 -0
  453. package/dist/src/types/private/AllButFirst.d.ts +5 -0
  454. package/dist/src/types/private/AllButFirst.d.ts.map +1 -0
  455. package/dist/src/types/private/AllButFirst.lua +2 -0
  456. package/dist/src/types/private/CallbackTuple.d.ts +20 -0
  457. package/dist/src/types/private/CallbackTuple.d.ts.map +1 -0
  458. package/dist/src/types/private/CallbackTuple.lua +2 -0
  459. package/dist/src/types/private/MatchingCallbackCustom.d.ts +16 -0
  460. package/dist/src/types/private/MatchingCallbackCustom.d.ts.map +1 -0
  461. package/dist/src/types/private/MatchingCallbackCustom.lua +2 -0
  462. package/package.json +2 -2
  463. package/src/callbacks/customRevive.ts +13 -1
  464. package/src/callbacks/postAmbush.ts +7 -14
  465. package/src/callbacks/postBombExploded.ts +1 -1
  466. package/src/callbacks/postBoneSwing.ts +2 -1
  467. package/src/callbacks/postCollectibleEmpty.ts +2 -0
  468. package/src/callbacks/postCollectibleInitFirst.ts +2 -0
  469. package/src/callbacks/postDoorRender.ts +2 -2
  470. package/src/callbacks/postEffectStateChanged.ts +3 -6
  471. package/src/callbacks/postFamiliarStateChanged.ts +3 -3
  472. package/src/callbacks/postFlip.ts +2 -2
  473. package/src/callbacks/postGridEntity.ts +3 -7
  474. package/src/callbacks/postNPCStateChanged.ts +3 -3
  475. package/src/callbacks/postNewRoomEarly.ts +1 -1
  476. package/src/callbacks/postPickupStateChanged.ts +3 -6
  477. package/src/callbacks/postPlayerCollectible.ts +8 -12
  478. package/src/callbacks/postRoomClearChanged.ts +3 -7
  479. package/src/callbacks/reorderedCallbacks.ts +6 -6
  480. package/src/callbacks/subscriptions/{postBoneExploded.ts → postBombExploded.ts} +0 -0
  481. package/src/callbacks/subscriptions/postCollectibleEmpty.ts +1 -1
  482. package/src/callbacks/subscriptions/postCollectibleInitFirst.ts +1 -1
  483. package/src/callbacks/subscriptions/postCursedTeleport.ts +24 -1
  484. package/src/callbacks/subscriptions/postGridEntityBroken.ts +4 -7
  485. package/src/callbacks/subscriptions/postGridEntityCollision.ts +4 -4
  486. package/src/callbacks/subscriptions/postGridEntityInit.ts +4 -7
  487. package/src/callbacks/subscriptions/postGridEntityRemove.ts +10 -9
  488. package/src/callbacks/subscriptions/postGridEntityRender.ts +4 -7
  489. package/src/callbacks/subscriptions/postGridEntityStateChanged.ts +4 -7
  490. package/src/callbacks/subscriptions/postGridEntityUpdate.ts +4 -7
  491. package/src/callbacks/subscriptions/postHolyMantleRemoved.ts +9 -2
  492. package/src/callbacks/subscriptions/postPEffectUpdateReordered.ts +9 -2
  493. package/src/callbacks/subscriptions/postRockRender.ts +6 -7
  494. package/src/callbacks/subscriptions/postRockUpdate.ts +6 -7
  495. package/src/callbacks/subscriptions/postSpikesRender.ts +4 -7
  496. package/src/callbacks/subscriptions/postSpikesUpdate.ts +4 -7
  497. package/src/callbacks/subscriptions/postTNTRender.ts +4 -7
  498. package/src/callbacks/subscriptions/postTNTUpdate.ts +4 -7
  499. package/src/callbacks.ts +134 -0
  500. package/src/classes/DefaultMap.ts +3 -3
  501. package/src/classes/ModFeature.ts +14 -0
  502. package/src/classes/ModUpgraded.ts +205 -45
  503. package/src/classes/callbacks/PostAmbushFinished.ts +39 -0
  504. package/src/classes/callbacks/PostAmbushStarted.ts +39 -0
  505. package/src/classes/callbacks/PostBombExploded.ts +21 -0
  506. package/src/classes/callbacks/PostBombInitLate.ts +28 -0
  507. package/src/classes/callbacks/PostBoneSwing.ts +61 -0
  508. package/src/classes/callbacks/PostCollectibleEmpty.ts +72 -0
  509. package/src/classes/callbacks/PostCollectibleInitFirst.ts +37 -0
  510. package/src/classes/callbacks/PostCursedTeleport.ts +186 -0
  511. package/src/classes/callbacks/PostCustomRevive.ts +11 -0
  512. package/src/classes/callbacks/PostDiceRoomActivated.ts +68 -0
  513. package/src/classes/callbacks/PostDoorRender.ts +19 -0
  514. package/src/classes/callbacks/PostDoorUpdate.ts +19 -0
  515. package/src/classes/callbacks/PostEffectInitLate.ts +28 -0
  516. package/src/classes/callbacks/PostEffectStateChanged.ts +35 -0
  517. package/src/classes/callbacks/PostEsauJr.ts +11 -0
  518. package/src/classes/callbacks/PostFamiliarInitLate.ts +28 -0
  519. package/src/classes/callbacks/PostFamiliarStateChanged.ts +35 -0
  520. package/src/classes/callbacks/PostFirstEsauJr.ts +11 -0
  521. package/src/classes/callbacks/PostFirstFlip.ts +11 -0
  522. package/src/classes/callbacks/PostFlip.ts +11 -0
  523. package/src/classes/callbacks/PostGameStartedReordered.ts +11 -0
  524. package/src/classes/callbacks/PostGameStartedReorderedLast.ts +11 -0
  525. package/src/classes/callbacks/PostGreedModeWave.ts +37 -0
  526. package/src/classes/callbacks/PostGridEntityBroken.ts +11 -0
  527. package/src/classes/callbacks/PostGridEntityCollision.ts +65 -0
  528. package/src/classes/callbacks/PostGridEntityCustomBroken.ts +11 -0
  529. package/src/classes/callbacks/PostGridEntityCustomCollision.ts +53 -0
  530. package/src/classes/callbacks/PostGridEntityCustomInit.ts +11 -0
  531. package/src/classes/callbacks/PostGridEntityCustomRemove.ts +32 -0
  532. package/src/classes/callbacks/PostGridEntityCustomStateChanged.ts +11 -0
  533. package/src/classes/callbacks/PostGridEntityCustomUpdate.ts +11 -0
  534. package/src/classes/callbacks/PostGridEntityInit.ts +11 -0
  535. package/src/classes/callbacks/PostGridEntityRemove.ts +39 -0
  536. package/src/classes/callbacks/PostGridEntityStateChanged.ts +11 -0
  537. package/src/classes/callbacks/PostGridEntityUpdate.ts +11 -0
  538. package/src/classes/callbacks/PostHolyMantleRemoved.ts +45 -0
  539. package/src/classes/callbacks/PostKnifeInitLate.ts +28 -0
  540. package/src/classes/callbacks/PostNewLevelReordered.ts +11 -0
  541. package/src/classes/callbacks/PostNewRoomEarly.ts +93 -0
  542. package/src/classes/callbacks/PostNewRoomReordered.ts +11 -0
  543. package/src/classes/callbacks/PostPEffectUpdateReordered.ts +11 -0
  544. package/src/classes/callbacks/PostPitRender.ts +21 -0
  545. package/src/classes/callbacks/PostPlayerFatalDamage.ts +127 -0
  546. package/src/classes/callbacks/PostPlayerRenderReordered.ts +11 -0
  547. package/src/classes/callbacks/PostPlayerUpdateReordered.ts +11 -0
  548. package/src/classes/callbacks/PostRoomClearChanged.ts +40 -0
  549. package/src/classes/callbacks/PostSpikesRender.ts +21 -0
  550. package/src/classes/callbacks/PreBerserkDeath.ts +42 -0
  551. package/src/classes/callbacks/PreCustomRevive.ts +11 -0
  552. package/src/classes/callbacks/validation/CustomCallbackAmbush.ts +28 -0
  553. package/src/classes/callbacks/validation/CustomCallbackBomb.ts +27 -0
  554. package/src/classes/callbacks/validation/CustomCallbackCollectible.ts +30 -0
  555. package/src/classes/callbacks/validation/CustomCallbackDoor.ts +28 -0
  556. package/src/classes/callbacks/validation/CustomCallbackEffect.ts +29 -0
  557. package/src/classes/callbacks/validation/CustomCallbackFamiliar.ts +30 -0
  558. package/src/classes/callbacks/validation/CustomCallbackGridEntity.ts +42 -0
  559. package/src/classes/callbacks/validation/CustomCallbackGridEntityCustom.ts +36 -0
  560. package/src/classes/callbacks/validation/CustomCallbackKnife.ts +27 -0
  561. package/src/classes/callbacks/validation/CustomCallbackPit.ts +28 -0
  562. package/src/classes/callbacks/validation/CustomCallbackPlayer.ts +47 -0
  563. package/src/classes/callbacks/validation/CustomCallbackRevive.ts +27 -0
  564. package/src/classes/callbacks/validation/CustomCallbackSpikes.ts +28 -0
  565. package/src/classes/features/callbackLogic/CustomGridEntities.ts +398 -0
  566. package/src/classes/features/callbackLogic/CustomRevive.ts +214 -0
  567. package/src/classes/features/callbackLogic/EsauJrDetection.ts +98 -0
  568. package/src/classes/features/callbackLogic/FlipDetection.ts +82 -0
  569. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +160 -0
  570. package/src/classes/features/callbackLogic/GridEntityCollisionDetection.ts +90 -0
  571. package/src/classes/features/callbackLogic/GridEntityDetection.ts +231 -0
  572. package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +126 -0
  573. package/src/classes/features/other/RunInNFrames.ts +256 -0
  574. package/src/classes/private/CustomCallback.ts +82 -0
  575. package/src/classes/private/Feature.ts +24 -0
  576. package/src/core/upgradeMod.ts +77 -17
  577. package/src/decorators.ts +13 -0
  578. package/src/enums/ISCFeature.ts +47 -0
  579. package/src/enums/LadderSubTypeCustom.ts +17 -0
  580. package/src/enums/ModCallbackCustom.ts +314 -243
  581. package/src/enums/ModCallbackCustom2.ts +57 -0
  582. package/src/features/customGridEntity.ts +3 -7
  583. package/src/features/{setHotkey.ts → customHotkeys.ts} +2 -2
  584. package/src/features/customPickup.ts +4 -2
  585. package/src/features/customStage/backdrop.ts +2 -1
  586. package/src/features/customStage/shadows.ts +2 -1
  587. package/src/features/customTrapdoor/init.ts +0 -1
  588. package/src/features/customTrapdoor/touched.ts +1 -1
  589. package/src/features/deployJSONRoom.ts +3 -7
  590. package/src/features/extraConsoleCommands/listCommands.ts +1 -1
  591. package/src/features/firstLast.ts +3 -7
  592. package/src/features/saveDataManager/constants.ts +1 -1
  593. package/src/features/saveDataManager/exports.ts +27 -0
  594. package/src/features/saveDataManager/main.ts +30 -21
  595. package/src/features/saveDataManager/save.ts +2 -2
  596. package/src/features.ts +90 -0
  597. package/src/functions/ambush.ts +26 -1
  598. package/src/functions/characters.ts +3 -3
  599. package/src/functions/charge.ts +30 -8
  600. package/src/functions/chargeBar.ts +6 -0
  601. package/src/functions/decorators.ts +45 -0
  602. package/src/functions/flying.ts +4 -4
  603. package/src/functions/gridEntities.ts +5 -5
  604. package/src/functions/gridEntitiesSpecific.ts +12 -12
  605. package/src/functions/itemPool.ts +2 -2
  606. package/src/functions/minimap.ts +4 -0
  607. package/src/functions/playerHealth.ts +6 -6
  608. package/src/functions/playerIndex.ts +2 -2
  609. package/src/functions/players.ts +26 -7
  610. package/src/functions/pocketItems.ts +1 -1
  611. package/src/functions/roomTransition.ts +3 -27
  612. package/src/functions/rooms.ts +1 -1
  613. package/src/functions/run.ts +12 -0
  614. package/src/functions/spawnCollectible.ts +44 -4
  615. package/src/functions/table.ts +11 -0
  616. package/src/functions/trinkets.ts +1 -1
  617. package/src/functions/tstlClass.ts +48 -24
  618. package/src/functions/utils.ts +56 -2
  619. package/src/index.ts +15 -2
  620. package/src/initCustomCallbacks.ts +1 -2
  621. package/src/initFeatures.ts +2 -2
  622. package/src/interfaces/SaveData.ts +4 -2
  623. package/src/interfaces/{private/TSTLClassMetatable.ts → TSTLClassMetatable.ts} +0 -0
  624. package/src/interfaces/private/{AddCallbackParameterCustom.ts → AddCallbackParametersCustom.ts} +4 -23
  625. package/src/interfaces/private/AddCallbackParametersCustom2.ts +343 -0
  626. package/src/maps/characterNameToTypeMap.ts +12 -12
  627. package/src/objects/callbackRegisterFunctions.ts +2 -4
  628. package/src/objects/characterDamageMultipliers.ts +6 -6
  629. package/src/objects/characterNames.ts +6 -6
  630. package/src/objects/playerNamePNGFileNames.ts +6 -6
  631. package/src/objects/playerPortraitPNGFileNames.ts +6 -6
  632. package/src/sets/charactersThatStartWithAnActiveItemSet.ts +1 -1
  633. package/src/sets/charactersWithFreeDevilDealsSet.ts +1 -1
  634. package/src/sets/charactersWithNoRedHeartsSet.ts +3 -3
  635. package/src/sets/charactersWithNoSoulHeartsSet.ts +2 -2
  636. package/src/sets/lostStyleCharactersSet.ts +4 -4
  637. package/src/types/AllButFirst.ts +6 -0
  638. package/src/types/AllButLast.ts +3 -0
  639. package/src/types/Constructor.ts +2 -0
  640. package/src/types/FunctionTuple.ts +4 -0
  641. package/src/types/HasAllEnumKeys.ts +25 -0
  642. package/src/types/LowercaseKeys.ts +3 -0
  643. package/src/types/StartsWithLowercase.ts +3 -0
  644. package/src/types/StartsWithUppercase.ts +3 -0
  645. package/src/types/UnionToIntersection.ts +6 -0
  646. package/src/types/UppercaseKeys.ts +3 -0
  647. package/src/types/private/AllButFirst.ts +6 -0
  648. package/src/types/private/CallbackTuple.ts +21 -0
  649. package/src/types/private/MatchingCallbackCustom.ts +32 -0
  650. package/dist/src/callbacks/postCustomDoorEnter.d.ts +0 -6
  651. package/dist/src/callbacks/postCustomDoorEnter.d.ts.map +0 -1
  652. package/dist/src/callbacks/postCustomDoorEnter.lua +0 -199
  653. package/dist/src/callbacks/subscriptions/postCustomDoorEnter.d.ts +0 -9
  654. package/dist/src/callbacks/subscriptions/postCustomDoorEnter.d.ts.map +0 -1
  655. package/dist/src/callbacks/subscriptions/postCustomDoorEnter.lua +0 -29
  656. package/dist/src/classes/CustomCallback.d.ts +0 -8
  657. package/dist/src/classes/CustomCallback.d.ts.map +0 -1
  658. package/dist/src/classes/CustomCallback.lua +0 -28
  659. package/dist/src/features/customDoor.d.ts +0 -51
  660. package/dist/src/features/customDoor.d.ts.map +0 -1
  661. package/dist/src/features/customDoor.lua +0 -53
  662. package/dist/src/features/setHotkey.d.ts.map +0 -1
  663. package/dist/src/interfaces/private/AddCallbackParameterCustom.d.ts.map +0 -1
  664. package/dist/src/interfaces/private/TSTLClassMetatable.d.ts.map +0 -1
  665. package/src/callbacks/postCustomDoorEnter.ts +0 -250
  666. package/src/callbacks/subscriptions/postCustomDoorEnter.ts +0 -42
  667. package/src/classes/CustomCallback.ts +0 -23
  668. package/src/features/customDoor.ts +0 -66
@@ -0,0 +1,123 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ import { Feature } from "../../private/Feature";
3
+ /** Used for `runInNFrames` functions. */
4
+ declare type QueuedFunctionTuple = [frameCountToFire: int, func: () => void];
5
+ /**
6
+ * Used for `setInterval` functions.
7
+ *
8
+ * The return value is whether or not to continue the function from firing.
9
+ */
10
+ declare type IntervalFunctionTuple = [
11
+ frameCountToFire: int,
12
+ func: () => boolean,
13
+ numIntervalFrames: int
14
+ ];
15
+ export declare class RunInNFrames extends Feature {
16
+ v: {
17
+ run: {
18
+ queuedGameFunctionTuples: QueuedFunctionTuple[];
19
+ queuedRenderFunctionTuples: QueuedFunctionTuple[];
20
+ intervalGameFunctionTuples: IntervalFunctionTuple[];
21
+ intervalRenderFunctionTuples: IntervalFunctionTuple[];
22
+ };
23
+ };
24
+ constructor();
25
+ private postUpdate;
26
+ private postRender;
27
+ /**
28
+ * Supply a function to run N game frames from now in the `POST_UPDATE` callback.
29
+ *
30
+ * For a usage example, see the documentation for the `runNextGameFrame`, which is used in a
31
+ * similar way.
32
+ *
33
+ * Note that this function will not handle saving and quitting. If a player saving and quitting
34
+ * before the deferred function fires would cause a bug in your mod, then you should handle
35
+ * deferred functions manually using serializable data.
36
+ */
37
+ runInNGameFrames(func: () => void, gameFrames: int): void;
38
+ /**
39
+ * Supply a function to run N render frames from now in the `POST_RENDER` callback.
40
+ *
41
+ * For a usage example, see the documentation for the `runNextGameFrame`, which is used in a
42
+ * similar way.
43
+ *
44
+ * Note that this function will not handle saving and quitting. If a player saving and quitting
45
+ * before the deferred function fires would cause a bug in your mod, then you should handle
46
+ * deferred functions manually using serializable data.
47
+ */
48
+ runInNRenderFrames(func: () => void, renderFrames: int): void;
49
+ /**
50
+ * Supply a function to run on the next `POST_UPDATE` callback.
51
+ *
52
+ * For example:
53
+ *
54
+ * ```ts
55
+ * const NUM_EXPLODER_EXPLOSIONS = 5;
56
+ *
57
+ * function useItemExploder(player: EntityPlayer) {
58
+ * playSound("exploderBegin");
59
+ * explode(player, NUM_EXPLODER_EXPLOSIONS);
60
+ * }
61
+ *
62
+ * function explode(player: EntityPlayer, numFramesLeft: int) {
63
+ * Isaac.Explode(player, undefined, 1);
64
+ * numFramesLeft -= 1;
65
+ * if (numFramesLeft === 0) {
66
+ * runNextFrame(() => {
67
+ * explode(player, numFramesLeft);
68
+ * });
69
+ * }
70
+ * }
71
+ * ```
72
+ *
73
+ * Note that this function will not handle saving and quitting. If a player saving and quitting
74
+ * before the deferred function fires would cause a bug in your mod, then you should handle
75
+ * deferred functions manually using serializable data.
76
+ */
77
+ runNextGameFrame(func: () => void): void;
78
+ /**
79
+ * Supply a function to run on the next `POST_RENDER` callback.
80
+ *
81
+ * For a usage example, see the documentation for the `runNextGameFrame`, which is used in a
82
+ * similar way.
83
+ *
84
+ * Note that this function will not handle saving and quitting.
85
+ */
86
+ runNextRenderFrame(func: () => void): void;
87
+ /**
88
+ * Supply a function to be repeatedly run on an interval of N game frames in the `POST_UPDATE`
89
+ * callback. The function will continue to be fired until `false` is returned from the function.
90
+ *
91
+ * This is similar to the `setInterval` vanilla JavaScript function, except there is no
92
+ * corresponding `clearInterval` function. (Instead, the return value from the supplied function
93
+ * is used to stop the interval.)
94
+ *
95
+ * Note that this function will not handle saving and quitting. You must manually restart any
96
+ * intervals if the player saves and quits in the middle of a run.
97
+ *
98
+ * @param func The function to repeatedly run on an interval.
99
+ * @param gameFrames The amount of game frames to wait between each run.
100
+ * @param runImmediately Whether or not to execute the function right now before waiting for the
101
+ * interval.
102
+ */
103
+ setIntervalGameFrames(func: () => boolean, gameFrames: int, runImmediately: boolean): void;
104
+ /**
105
+ * Supply a function to be repeatedly run on an interval of N render frames in the `POST_RENDER`
106
+ * callback. The function will continue to be fired until `false` is returned from the function.
107
+ *
108
+ * This is similar to the `setInterval` vanilla JavaScript function, except there is no
109
+ * corresponding `clearInterval` function. (Instead, the return value from the supplied function
110
+ * is used to stop the interval.)
111
+ *
112
+ * Note that this function will not handle saving and quitting. You must manually restart any
113
+ * intervals if the player saves and quits in the middle of a run.
114
+ *
115
+ * @param func The function to repeatedly run on an interval.
116
+ * @param renderFrames The amount of game frames to wait between each run.
117
+ * @param runImmediately Whether or not to execute the function right now before waiting for the
118
+ * interval.
119
+ */
120
+ setIntervalRenderFrames(func: () => boolean, renderFrames: int, runImmediately: boolean): void;
121
+ }
122
+ export {};
123
+ //# sourceMappingURL=RunInNFrames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunInNFrames.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/other/RunInNFrames.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,yCAAyC;AACzC,aAAK,mBAAmB,GAAG,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;AAErE;;;;GAIG;AACH,aAAK,qBAAqB,GAAG;IAC3B,gBAAgB,EAAE,GAAG;IACrB,IAAI,EAAE,MAAM,OAAO;IACnB,iBAAiB,EAAE,GAAG;CACvB,CAAC;AAEF,qBAAa,YAAa,SAAQ,OAAO;IACvB,CAAC;;;;;;;MAQf;;IAYF,OAAO,CAAC,UAAU,CAWhB;IAGF,OAAO,CAAC,UAAU,CAWhB;IAMF;;;;;;;;;OASG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI;IAOhE;;;;;;;;;OASG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,YAAY,EAAE,GAAG,GAAG,IAAI;IAOpE;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAI/C;;;;;;;OAOG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAIjD;;;;;;;;;;;;;;;OAeG;IACI,qBAAqB,CAC1B,IAAI,EAAE,MAAM,OAAO,EACnB,UAAU,EAAE,GAAG,EACf,cAAc,EAAE,OAAO,GACtB,IAAI;IAWP;;;;;;;;;;;;;;;OAeG;IACI,uBAAuB,CAC5B,IAAI,EAAE,MAAM,OAAO,EACnB,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,OAAO,GACtB,IAAI;CAcR"}
@@ -0,0 +1,109 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
5
+ local ____exports = {}
6
+ local checkExecuteQueuedFunctions, checkExecuteIntervalFunctions
7
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
8
+ local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
9
+ local ____cachedClasses = require("src.core.cachedClasses")
10
+ local game = ____cachedClasses.game
11
+ local ____array = require("src.functions.array")
12
+ local arrayRemoveInPlace = ____array.arrayRemoveInPlace
13
+ local ____Feature = require("src.classes.private.Feature")
14
+ local Feature = ____Feature.Feature
15
+ function checkExecuteQueuedFunctions(self, frameCount, functionTuples)
16
+ local firingFunctions = __TS__ArrayFilter(
17
+ functionTuples,
18
+ function(____, ____bindingPattern0)
19
+ local frameCountToFire
20
+ frameCountToFire = ____bindingPattern0[1]
21
+ return frameCount >= frameCountToFire
22
+ end
23
+ )
24
+ for ____, tuple in ipairs(firingFunctions) do
25
+ local _frameCountToFire, func = table.unpack(tuple)
26
+ func(nil)
27
+ arrayRemoveInPlace(nil, functionTuples, tuple)
28
+ end
29
+ end
30
+ function checkExecuteIntervalFunctions(self, frameCount, functionTuples)
31
+ local firingFunctions = __TS__ArrayFilter(
32
+ functionTuples,
33
+ function(____, ____bindingPattern0)
34
+ local frameCountToFire
35
+ frameCountToFire = ____bindingPattern0[1]
36
+ return frameCount >= frameCountToFire
37
+ end
38
+ )
39
+ for ____, tuple in ipairs(firingFunctions) do
40
+ local _frameCountToFire, func, numIntervalFrames = table.unpack(tuple)
41
+ local returnValue = func(nil)
42
+ arrayRemoveInPlace(nil, functionTuples, tuple)
43
+ if returnValue then
44
+ local nextFireFrame = frameCount + numIntervalFrames
45
+ local newTuple = {nextFireFrame, func, numIntervalFrames}
46
+ functionTuples[#functionTuples + 1] = newTuple
47
+ end
48
+ end
49
+ end
50
+ ____exports.RunInNFrames = __TS__Class()
51
+ local RunInNFrames = ____exports.RunInNFrames
52
+ RunInNFrames.name = "RunInNFrames"
53
+ __TS__ClassExtends(RunInNFrames, Feature)
54
+ function RunInNFrames.prototype.____constructor(self)
55
+ Feature.prototype.____constructor(self)
56
+ self.v = {run = {queuedGameFunctionTuples = {}, queuedRenderFunctionTuples = {}, intervalGameFunctionTuples = {}, intervalRenderFunctionTuples = {}}}
57
+ self.postUpdate = function()
58
+ local gameFrameCount = game:GetFrameCount()
59
+ checkExecuteQueuedFunctions(nil, gameFrameCount, self.v.run.queuedGameFunctionTuples)
60
+ checkExecuteIntervalFunctions(nil, gameFrameCount, self.v.run.intervalGameFunctionTuples)
61
+ end
62
+ self.postRender = function()
63
+ local renderFrameCount = Isaac.GetFrameCount()
64
+ checkExecuteQueuedFunctions(nil, renderFrameCount, self.v.run.queuedRenderFunctionTuples)
65
+ checkExecuteIntervalFunctions(nil, renderFrameCount, self.v.run.intervalRenderFunctionTuples)
66
+ end
67
+ self.callbacksUsed = {{ModCallback.POST_UPDATE, {self.postUpdate}}, {ModCallback.POST_RENDER, {self.postRender}}}
68
+ end
69
+ function RunInNFrames.prototype.runInNGameFrames(self, func, gameFrames)
70
+ local gameFrameCount = game:GetFrameCount()
71
+ local functionFireFrame = gameFrameCount + gameFrames
72
+ local tuple = {functionFireFrame, func}
73
+ local ____self_v_run_queuedGameFunctionTuples_0 = self.v.run.queuedGameFunctionTuples
74
+ ____self_v_run_queuedGameFunctionTuples_0[#____self_v_run_queuedGameFunctionTuples_0 + 1] = tuple
75
+ end
76
+ function RunInNFrames.prototype.runInNRenderFrames(self, func, renderFrames)
77
+ local renderFrameCount = Isaac.GetFrameCount()
78
+ local functionFireFrame = renderFrameCount + renderFrames
79
+ local tuple = {functionFireFrame, func}
80
+ local ____self_v_run_queuedRenderFunctionTuples_1 = self.v.run.queuedRenderFunctionTuples
81
+ ____self_v_run_queuedRenderFunctionTuples_1[#____self_v_run_queuedRenderFunctionTuples_1 + 1] = tuple
82
+ end
83
+ function RunInNFrames.prototype.runNextGameFrame(self, func)
84
+ self:runInNGameFrames(func, 1)
85
+ end
86
+ function RunInNFrames.prototype.runNextRenderFrame(self, func)
87
+ self:runInNRenderFrames(func, 1)
88
+ end
89
+ function RunInNFrames.prototype.setIntervalGameFrames(self, func, gameFrames, runImmediately)
90
+ local gameFrameCount = game:GetFrameCount()
91
+ local functionFireFrame = gameFrameCount + gameFrames
92
+ local tuple = {functionFireFrame, func, gameFrames}
93
+ local ____self_v_run_intervalGameFunctionTuples_2 = self.v.run.intervalGameFunctionTuples
94
+ ____self_v_run_intervalGameFunctionTuples_2[#____self_v_run_intervalGameFunctionTuples_2 + 1] = tuple
95
+ if runImmediately then
96
+ func(nil)
97
+ end
98
+ end
99
+ function RunInNFrames.prototype.setIntervalRenderFrames(self, func, renderFrames, runImmediately)
100
+ local renderFrameCount = Isaac.GetFrameCount()
101
+ local functionFireFrame = renderFrameCount + renderFrames
102
+ local tuple = {functionFireFrame, func, renderFrames}
103
+ local ____self_v_run_intervalGameFunctionTuples_3 = self.v.run.intervalGameFunctionTuples
104
+ ____self_v_run_intervalGameFunctionTuples_3[#____self_v_run_intervalGameFunctionTuples_3 + 1] = tuple
105
+ if runImmediately then
106
+ func(nil)
107
+ end
108
+ end
109
+ return ____exports
@@ -0,0 +1,26 @@
1
+ import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
2
+ import { AddCallbackParametersCustom2 } from "../../interfaces/private/AddCallbackParametersCustom2";
3
+ import { AllButFirst } from "../../types/private/AllButFirst";
4
+ import { Feature } from "./Feature";
5
+ export declare type FireArgs<T extends ModCallbackCustom2> = Parameters<AddCallbackParametersCustom2[T][0]>;
6
+ export declare type OptionalArgs<T extends ModCallbackCustom2> = AllButFirst<AddCallbackParametersCustom2[T]>;
7
+ /**
8
+ * The base class for a custom callback. Individual custom callbacks (and validation callbacks) will
9
+ * extend from this class.
10
+ */
11
+ export declare abstract class CustomCallback<T extends ModCallbackCustom2> extends Feature {
12
+ private subscriptions;
13
+ hasSubscriptions(): boolean;
14
+ add(...args: AddCallbackParametersCustom2[T]): void;
15
+ /**
16
+ * If the submitted function does not match any of the existing subscriptions, this method will do
17
+ * nothing.
18
+ */
19
+ remove(callback: AddCallbackParametersCustom2[T][0]): void;
20
+ fire: (...fireArgs: FireArgs<T>) => ReturnType<AddCallbackParametersCustom2[T][0]>;
21
+ /**
22
+ * This method needs to be overwritten for any callback that has optional filtration arguments.
23
+ */
24
+ protected shouldFire(fireArgs: FireArgs<T>, optionalArgs: OptionalArgs<T>): boolean;
25
+ }
26
+ //# sourceMappingURL=CustomCallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomCallback.d.ts","sourceRoot":"","sources":["../../../../src/classes/private/CustomCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,oBAAY,QAAQ,CAAC,CAAC,SAAS,kBAAkB,IAAI,UAAU,CAC7D,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;AACF,oBAAY,YAAY,CAAC,CAAC,SAAS,kBAAkB,IAAI,WAAW,CAClE,4BAA4B,CAAC,CAAC,CAAC,CAChC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,cAAc,CAClC,CAAC,SAAS,kBAAkB,CAC5B,SAAQ,OAAO;IACf,OAAO,CAAC,aAAa,CAA8C;IAE5D,gBAAgB,IAAI,OAAO;IAI3B,GAAG,CAAC,GAAG,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAC,GAAG,IAAI;IAI1D;;;OAGG;IACI,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAY1D,IAAI,gBACI,SAAS,CAAC,CAAC,KACvB,WAAW,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAoB/C;IAEF;;OAEG;IAEH,SAAS,CAAC,UAAU,CAElB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAErB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAC5B,OAAO;CAGX"}
@@ -0,0 +1,63 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__Spread = ____lualib.__TS__Spread
5
+ local __TS__ArraySlice = ____lualib.__TS__ArraySlice
6
+ local __TS__ArrayFindIndex = ____lualib.__TS__ArrayFindIndex
7
+ local __TS__ArraySplice = ____lualib.__TS__ArraySplice
8
+ local ____exports = {}
9
+ local ____Feature = require("src.classes.private.Feature")
10
+ local Feature = ____Feature.Feature
11
+ --- The base class for a custom callback. Individual custom callbacks (and validation callbacks) will
12
+ -- extend from this class.
13
+ ____exports.CustomCallback = __TS__Class()
14
+ local CustomCallback = ____exports.CustomCallback
15
+ CustomCallback.name = "CustomCallback"
16
+ __TS__ClassExtends(CustomCallback, Feature)
17
+ function CustomCallback.prototype.____constructor(self, ...)
18
+ Feature.prototype.____constructor(self, ...)
19
+ self.subscriptions = {}
20
+ self.fire = function(____, ...)
21
+ local fireArgs = {...}
22
+ for ____, ____value in ipairs(self.subscriptions) do
23
+ local callback = ____value[1]
24
+ local optionalArgsArray = __TS__ArraySlice(____value, 1)
25
+ local optionalArgs = optionalArgsArray
26
+ if self:shouldFire(fireArgs, optionalArgs) then
27
+ local callbackCasted = callback
28
+ local value = callbackCasted(
29
+ nil,
30
+ __TS__Spread(fireArgs)
31
+ )
32
+ if value ~= nil then
33
+ return value
34
+ end
35
+ end
36
+ end
37
+ return nil
38
+ end
39
+ end
40
+ function CustomCallback.prototype.hasSubscriptions(self)
41
+ return #self.subscriptions > 0
42
+ end
43
+ function CustomCallback.prototype.add(self, ...)
44
+ local args = {...}
45
+ local ____self_subscriptions_0 = self.subscriptions
46
+ ____self_subscriptions_0[#____self_subscriptions_0 + 1] = args
47
+ end
48
+ function CustomCallback.prototype.remove(self, callback)
49
+ local subscriptionIndexMatchingCallback = __TS__ArrayFindIndex(
50
+ self.subscriptions,
51
+ function(____, subscription)
52
+ local subscriptionCallback = subscription[1]
53
+ return callback == subscriptionCallback
54
+ end
55
+ )
56
+ if subscriptionIndexMatchingCallback ~= -1 then
57
+ __TS__ArraySplice(self.subscriptions, subscriptionIndexMatchingCallback, 1)
58
+ end
59
+ end
60
+ function CustomCallback.prototype.shouldFire(self, fireArgs, optionalArgs)
61
+ return true
62
+ end
63
+ return ____exports
@@ -0,0 +1,19 @@
1
+ import { ISCFeature } from "../../enums/ISCFeature";
2
+ import { SaveData } from "../../interfaces/SaveData";
3
+ import { CallbackTuple, CustomCallbackTuple } from "../../types/private/CallbackTuple";
4
+ /**
5
+ * The IsaacScript standard library contains many optional features, such as the ability to create
6
+ * custom pickups. All features are optional and are only initialized when needed. This class
7
+ * contains elements to facilitate that.
8
+ *
9
+ * Additionally, all custom callbacks extend from this class.
10
+ */
11
+ export declare class Feature {
12
+ initialized: boolean;
13
+ v?: SaveData;
14
+ featuresUsed?: ISCFeature[];
15
+ callbacksUsed?: CallbackTuple[];
16
+ customCallbacksUsed?: CustomCallbackTuple[];
17
+ exportedMethods: string[];
18
+ }
19
+ //# sourceMappingURL=Feature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Feature.d.ts","sourceRoot":"","sources":["../../../../src/classes/private/Feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,aAAa,EACb,mBAAmB,EACpB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,OAAO;IACX,WAAW,UAAS;IAEpB,CAAC,CAAC,EAAE,QAAQ,CAAC;IACb,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAE5C,eAAe,EAAE,MAAM,EAAE,CAAM;CACvC"}
@@ -0,0 +1,16 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local ____exports = {}
4
+ --- The IsaacScript standard library contains many optional features, such as the ability to create
5
+ -- custom pickups. All features are optional and are only initialized when needed. This class
6
+ -- contains elements to facilitate that.
7
+ --
8
+ -- Additionally, all custom callbacks extend from this class.
9
+ ____exports.Feature = __TS__Class()
10
+ local Feature = ____exports.Feature
11
+ Feature.name = "Feature"
12
+ function Feature.prototype.____constructor(self)
13
+ self.initialized = false
14
+ self.exportedMethods = {}
15
+ end
16
+ return ____exports
@@ -1,6 +1,20 @@
1
1
  /// <reference types="isaac-typescript-definitions" />
2
2
  /// <reference types="isaac-typescript-definitions" />
3
3
  import { ModUpgraded } from "../classes/ModUpgraded";
4
+ import { Feature } from "../classes/private/Feature";
5
+ import { ISCFeature } from "../enums/ISCFeature";
6
+ import { ISCFeatureToClass } from "../features";
7
+ import { LowercaseKeys } from "../types/LowercaseKeys";
8
+ import { UnionToIntersection } from "../types/UnionToIntersection";
9
+ /**
10
+ * By specifying one or more optional features, end-users will get a version of `ModUpgraded` that
11
+ * has extra methods corresponding to the features.
12
+ *
13
+ * We have to explicitly account for the empty array case, since `never` will cause mess up the
14
+ * union.
15
+ */
16
+ declare type ModUpgradedWithFeatures<T extends ISCFeature> = [T] extends [never] ? ModUpgraded : Omit<ModUpgraded & UnionToIntersection<ISCFeatureToClass[T]>, KeysToScrubFromModClass>;
17
+ declare type KeysToScrubFromModClass = keyof Feature | LowercaseKeys<ModUpgraded>;
4
18
  /**
5
19
  * Use this function to enable the custom callbacks and other optional features provided by
6
20
  * `isaacscript-common`.
@@ -19,6 +33,8 @@ import { ModUpgraded } from "../classes/ModUpgraded";
19
33
  * ```
20
34
  *
21
35
  * @param modVanilla The mod object returned by the `RegisterMod` function.
36
+ * @param features Optional. An array containing the optional standard library features that you
37
+ * want to enable, if any. Default is an empty array.
22
38
  * @param debug Optional. Whether to log additional output when a callback is fired. Default is
23
39
  * false.
24
40
  * @param timeThreshold Optional. If provided, will only log callbacks that take longer than the
@@ -26,5 +42,6 @@ import { ModUpgraded } from "../classes/ModUpgraded";
26
42
  * or milliseconds (if the "--luadebug" launch flag is turned off).
27
43
  * @returns The upgraded mod object.
28
44
  */
29
- export declare function upgradeMod(modVanilla: Mod, debug?: boolean, timeThreshold?: float): ModUpgraded;
45
+ export declare function upgradeMod<T extends ISCFeature = never>(modVanilla: Mod, features?: T[], debug?: boolean, timeThreshold?: float): ModUpgradedWithFeatures<T>;
46
+ export {};
30
47
  //# sourceMappingURL=upgradeMod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgradeMod.d.ts","sourceRoot":"","sources":["../../../src/core/upgradeMod.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAWrD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,GAAG,EACf,KAAK,UAAQ,EACb,aAAa,CAAC,EAAE,KAAK,GACpB,WAAW,CAwBb"}
1
+ {"version":3,"file":"upgradeMod.d.ts","sourceRoot":"","sources":["../../../src/core/upgradeMod.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAchD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;;;;GAMG;AACH,aAAK,uBAAuB,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpE,WAAW,GACX,IAAI,CACF,WAAW,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EACvD,uBAAuB,CACxB,CAAC;AAEN,aAAK,uBAAuB,GAAG,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,KAAK,EACrD,UAAU,EAAE,GAAG,EACf,QAAQ,GAAE,CAAC,EAAO,EAClB,KAAK,UAAQ,EACb,aAAa,CAAC,EAAE,KAAK,GACpB,uBAAuB,CAAC,CAAC,CAAC,CA8B5B"}
@@ -1,12 +1,15 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__New = ____lualib.__TS__New
3
3
  local ____exports = {}
4
+ local legacyInit
4
5
  local ____postNewRoomEarly = require("src.callbacks.postNewRoomEarly")
5
6
  local postNewRoomEarlyCallbackInit = ____postNewRoomEarly.postNewRoomEarlyCallbackInit
6
7
  local ____ModUpgraded = require("src.classes.ModUpgraded")
7
8
  local ModUpgraded = ____ModUpgraded.ModUpgraded
8
9
  local ____main = require("src.features.saveDataManager.main")
9
10
  local saveDataManagerInit = ____main.saveDataManagerInit
11
+ local SAVE_DATA_MANAGER_CALLBACKS = ____main.SAVE_DATA_MANAGER_CALLBACKS
12
+ local SAVE_DATA_MANAGER_CUSTOM_CALLBACKS = ____main.SAVE_DATA_MANAGER_CUSTOM_CALLBACKS
10
13
  local ____featuresInitialized = require("src.featuresInitialized")
11
14
  local areFeaturesInitialized = ____featuresInitialized.areFeaturesInitialized
12
15
  local setFeaturesInitialized = ____featuresInitialized.setFeaturesInitialized
@@ -18,6 +21,26 @@ local ____patchErrorFunctions = require("src.patchErrorFunctions")
18
21
  local patchErrorFunction = ____patchErrorFunctions.patchErrorFunction
19
22
  local ____shaderCrashFix = require("src.shaderCrashFix")
20
23
  local loadShaderCrashFix = ____shaderCrashFix.loadShaderCrashFix
24
+ function legacyInit(self, mod)
25
+ postNewRoomEarlyCallbackInit(nil, mod)
26
+ saveDataManagerInit(nil, mod)
27
+ for ____, callbackTuple in ipairs(SAVE_DATA_MANAGER_CALLBACKS) do
28
+ local modCallback, callbackArgs = table.unpack(callbackTuple)
29
+ mod:AddCallback(
30
+ modCallback,
31
+ table.unpack(callbackArgs)
32
+ )
33
+ end
34
+ for ____, callbackTuple in ipairs(SAVE_DATA_MANAGER_CUSTOM_CALLBACKS) do
35
+ local modCallback, callbackArgs = table.unpack(callbackTuple)
36
+ mod:AddCallbackCustom(
37
+ modCallback,
38
+ table.unpack(callbackArgs)
39
+ )
40
+ end
41
+ initCustomCallbacks(nil, mod)
42
+ initFeatures(nil, mod)
43
+ end
21
44
  --- Use this function to enable the custom callbacks and other optional features provided by
22
45
  -- `isaacscript-common`.
23
46
  --
@@ -35,25 +58,37 @@ local loadShaderCrashFix = ____shaderCrashFix.loadShaderCrashFix
35
58
  -- ```
36
59
  --
37
60
  -- @param modVanilla The mod object returned by the `RegisterMod` function.
61
+ -- @param features Optional. An array containing the optional standard library features that you
62
+ -- want to enable, if any. Default is an empty array.
38
63
  -- @param debug Optional. Whether to log additional output when a callback is fired. Default is
39
64
  -- false.
40
65
  -- @param timeThreshold Optional. If provided, will only log callbacks that take longer than the
41
66
  -- specified number of seconds (if the "--luadebug" launch flag is turned on)
42
67
  -- or milliseconds (if the "--luadebug" launch flag is turned off).
43
68
  -- @returns The upgraded mod object.
44
- function ____exports.upgradeMod(self, modVanilla, ____debug, timeThreshold)
69
+ function ____exports.upgradeMod(self, modVanilla, features, ____debug, timeThreshold)
70
+ if features == nil then
71
+ features = {}
72
+ end
45
73
  if ____debug == nil then
46
74
  ____debug = false
47
75
  end
48
76
  local mod = __TS__New(ModUpgraded, modVanilla, ____debug, timeThreshold)
49
- if not areFeaturesInitialized(nil) then
50
- setFeaturesInitialized(nil)
51
- patchErrorFunction(nil)
52
- loadShaderCrashFix(nil, modVanilla)
53
- postNewRoomEarlyCallbackInit(nil, mod)
54
- saveDataManagerInit(nil, mod)
55
- initCustomCallbacks(nil, mod)
56
- initFeatures(nil, mod)
77
+ if areFeaturesInitialized(nil) then
78
+ error("Failed to upgrade the mod since a mod has already been initialized. (You can only upgrade one mod per IsaacScript project.)")
79
+ end
80
+ setFeaturesInitialized(nil)
81
+ patchErrorFunction(nil)
82
+ loadShaderCrashFix(nil, modVanilla)
83
+ legacyInit(nil, mod)
84
+ for ____, feature in ipairs(features) do
85
+ local tstlClassMethods = mod:initOptionalFeature(feature)
86
+ local modRecord = mod
87
+ for ____, ____value in ipairs(tstlClassMethods) do
88
+ local funcName = ____value[1]
89
+ local func = ____value[2]
90
+ modRecord[funcName] = func
91
+ end
57
92
  end
58
93
  return mod
59
94
  end
@@ -0,0 +1,9 @@
1
+ import { Feature } from "./classes/private/Feature";
2
+ /**
3
+ * A decorator function that signifies that the decorated class method should be added to the
4
+ * `ModUpgraded` object.
5
+ *
6
+ * This is only meant to be used internally.
7
+ */
8
+ export declare function Exported(): <T extends Feature>(target: T, propertyKey: keyof T) => void;
9
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,QAAQ,4DACuC,IAAI,CAGlE"}
@@ -0,0 +1,12 @@
1
+ local ____exports = {}
2
+ --- A decorator function that signifies that the decorated class method should be added to the
3
+ -- `ModUpgraded` object.
4
+ --
5
+ -- This is only meant to be used internally.
6
+ function ____exports.Exported(self)
7
+ return function(____, target, propertyKey)
8
+ local ____target_exportedMethods_0 = target.exportedMethods
9
+ ____target_exportedMethods_0[#____target_exportedMethods_0 + 1] = propertyKey
10
+ end
11
+ end
12
+ return ____exports
@@ -0,0 +1,12 @@
1
+ export declare enum ISCFeature {
2
+ CUSTOM_REVIVE = "CustomRevive",
3
+ ESAU_JR_DETECTION = "EsauJrDetection",
4
+ FLIP_DETECTION = "FlipDetection",
5
+ GRID_ENTITY_COLLISION_DETECTION = "GridEntityCollisionDetection",
6
+ GRID_ENTITY_DETECTION = "GridEntityDetection",
7
+ GAME_REORDERED_CALLBACKS = "GameReorderedCallbacks",
8
+ PLAYER_REORDERED_CALLBACKS = "PlayerReorderedCallbacks",
9
+ CUSTOM_GRID_ENTITIES = "CustomGridEntities",
10
+ RUN_IN_N_FRAMES = "runInNFrames"
11
+ }
12
+ //# sourceMappingURL=ISCFeature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISCFeature.d.ts","sourceRoot":"","sources":["../../../src/enums/ISCFeature.ts"],"names":[],"mappings":"AAGA,oBAAY,UAAU;IAEpB,aAAa,iBAAiB;IAC9B,iBAAiB,oBAAoB;IACrC,cAAc,kBAAkB;IAChC,+BAA+B,iCAAiC;IAChE,qBAAqB,wBAAwB;IAC7C,wBAAwB,2BAA2B;IACnD,0BAA0B,6BAA6B;IAMvD,oBAAoB,uBAAuB;IAuB3C,eAAe,iBAAiB;CAMjC"}
@@ -0,0 +1,12 @@
1
+ local ____exports = {}
2
+ ____exports.ISCFeature = {}
3
+ ____exports.ISCFeature.CUSTOM_REVIVE = "CustomRevive"
4
+ ____exports.ISCFeature.ESAU_JR_DETECTION = "EsauJrDetection"
5
+ ____exports.ISCFeature.FLIP_DETECTION = "FlipDetection"
6
+ ____exports.ISCFeature.GRID_ENTITY_COLLISION_DETECTION = "GridEntityCollisionDetection"
7
+ ____exports.ISCFeature.GRID_ENTITY_DETECTION = "GridEntityDetection"
8
+ ____exports.ISCFeature.GAME_REORDERED_CALLBACKS = "GameReorderedCallbacks"
9
+ ____exports.ISCFeature.PLAYER_REORDERED_CALLBACKS = "PlayerReorderedCallbacks"
10
+ ____exports.ISCFeature.CUSTOM_GRID_ENTITIES = "CustomGridEntities"
11
+ ____exports.ISCFeature.RUN_IN_N_FRAMES = "runInNFrames"
12
+ return ____exports
@@ -0,0 +1,17 @@
1
+ /**
2
+ * For `EntityType.EFFECT` (1000), `EffectVariant.LADDER` (8).
3
+ *
4
+ * Note that vanilla ladders only use a sub-type of 0. The `isaacscript-common` library uses ladders
5
+ * to represent custom objects, since they are non-interacting and will not automatically despawn
6
+ * after time passes, unlike most other effects.
7
+ *
8
+ * This enum tracks the kinds of custom objects that are represented by vanilla ladders. We start
9
+ * assigning sub-types after 100 as to not interfere with any possible modded ladder variants.
10
+ */
11
+ export declare enum LadderSubTypeCustom {
12
+ LADDER = 0,
13
+ CUSTOM_BACKDROP = 101,
14
+ CUSTOM_SHADOW = 102,
15
+ CUSTOM_PICKUP = 103
16
+ }
17
+ //# sourceMappingURL=LadderSubTypeCustom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LadderSubTypeCustom.d.ts","sourceRoot":"","sources":["../../../src/enums/LadderSubTypeCustom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,oBAAY,mBAAmB;IAC7B,MAAM,IAAI;IAEV,eAAe,MAAM;IACrB,aAAa,MAAM;IACnB,aAAa,MAAM;CACpB"}
@@ -0,0 +1,19 @@
1
+ local ____exports = {}
2
+ --- For `EntityType.EFFECT` (1000), `EffectVariant.LADDER` (8).
3
+ --
4
+ -- Note that vanilla ladders only use a sub-type of 0. The `isaacscript-common` library uses ladders
5
+ -- to represent custom objects, since they are non-interacting and will not automatically despawn
6
+ -- after time passes, unlike most other effects.
7
+ --
8
+ -- This enum tracks the kinds of custom objects that are represented by vanilla ladders. We start
9
+ -- assigning sub-types after 100 as to not interfere with any possible modded ladder variants.
10
+ ____exports.LadderSubTypeCustom = {}
11
+ ____exports.LadderSubTypeCustom.LADDER = 0
12
+ ____exports.LadderSubTypeCustom[____exports.LadderSubTypeCustom.LADDER] = "LADDER"
13
+ ____exports.LadderSubTypeCustom.CUSTOM_BACKDROP = 101
14
+ ____exports.LadderSubTypeCustom[____exports.LadderSubTypeCustom.CUSTOM_BACKDROP] = "CUSTOM_BACKDROP"
15
+ ____exports.LadderSubTypeCustom.CUSTOM_SHADOW = 102
16
+ ____exports.LadderSubTypeCustom[____exports.LadderSubTypeCustom.CUSTOM_SHADOW] = "CUSTOM_SHADOW"
17
+ ____exports.LadderSubTypeCustom.CUSTOM_PICKUP = 103
18
+ ____exports.LadderSubTypeCustom[____exports.LadderSubTypeCustom.CUSTOM_PICKUP] = "CUSTOM_PICKUP"
19
+ return ____exports