isaacscript-common 2.3.2 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/cachedClasses.d.ts +6 -4
  2. package/cachedClasses.lua +24 -0
  3. package/callbacks/customRevive.lua +2 -0
  4. package/callbacks/itemPickup.lua +2 -0
  5. package/callbacks/postBombInitLate.lua +2 -0
  6. package/callbacks/postBoneSwing.lua +2 -0
  7. package/callbacks/postCollectibleInitFirst.lua +2 -0
  8. package/callbacks/postCursedTeleport.lua +2 -0
  9. package/callbacks/postCustomDoorEnter.lua +44 -0
  10. package/callbacks/postDoorRender.lua +2 -0
  11. package/callbacks/postDoorUpdate.lua +2 -0
  12. package/callbacks/postEffectInitLate.lua +2 -0
  13. package/callbacks/postEffectStateChanged.lua +2 -0
  14. package/callbacks/postEsauJr.lua +2 -0
  15. package/callbacks/postFamiliarInitLate.lua +2 -0
  16. package/callbacks/postFamiliarStateChanged.lua +2 -0
  17. package/callbacks/postFlip.lua +2 -0
  18. package/callbacks/postGreedModeWave.lua +2 -0
  19. package/callbacks/postGridEntity.lua +2 -0
  20. package/callbacks/postGridEntityCollision.lua +2 -0
  21. package/callbacks/postGridEntityRender.lua +2 -0
  22. package/callbacks/postHolyMantleRemoved.lua +2 -0
  23. package/callbacks/postKnifeInitLate.lua +2 -0
  24. package/callbacks/postLaserInitLate.lua +2 -0
  25. package/callbacks/postNPCInitLate.lua +2 -0
  26. package/callbacks/postNPCStateChanged.lua +2 -0
  27. package/callbacks/postNewRoomEarly.lua +2 -0
  28. package/callbacks/postPickupCollect.lua +2 -0
  29. package/callbacks/postPickupInitFirst.d.ts +1 -0
  30. package/callbacks/postPickupInitFirst.lua +55 -0
  31. package/callbacks/postPickupInitLate.lua +2 -0
  32. package/callbacks/postPickupStateChanged.lua +2 -0
  33. package/callbacks/postPitRender.lua +2 -0
  34. package/callbacks/postPitUpdate.lua +2 -0
  35. package/callbacks/postPlayerChangeHealth.lua +2 -0
  36. package/callbacks/postPlayerChangeType.lua +2 -0
  37. package/callbacks/postPlayerFatalDamage.lua +2 -0
  38. package/callbacks/postPlayerInitLate.lua +2 -0
  39. package/callbacks/postPlayerReordered.lua +2 -0
  40. package/callbacks/postPoopRender.lua +2 -0
  41. package/callbacks/postPoopUpdate.lua +2 -0
  42. package/callbacks/postPressurePlateRender.lua +2 -0
  43. package/callbacks/postPressurePlateUpdate.lua +2 -0
  44. package/callbacks/postProjectileInitLate.lua +2 -0
  45. package/callbacks/postPurchase.lua +2 -0
  46. package/callbacks/postRockRender.lua +2 -0
  47. package/callbacks/postRockUpdate.lua +2 -0
  48. package/callbacks/postRoomClearChanged.lua +2 -0
  49. package/callbacks/postSacrifice.lua +2 -0
  50. package/callbacks/postSlotDestroyed.d.ts +1 -0
  51. package/callbacks/postSlotDestroyed.lua +66 -0
  52. package/callbacks/postSlotInitUpdate.lua +2 -0
  53. package/callbacks/postSlotRender.lua +5 -21
  54. package/callbacks/postSpikesRender.lua +2 -0
  55. package/callbacks/postSpikesUpdate.lua +2 -0
  56. package/callbacks/postTNTRender.lua +2 -0
  57. package/callbacks/postTNTUpdate.lua +2 -0
  58. package/callbacks/postTearInitLate.lua +2 -0
  59. package/callbacks/postTearInitVeryLate.lua +2 -0
  60. package/callbacks/postTransformation.lua +2 -0
  61. package/callbacks/postTrinketBreak.lua +2 -0
  62. package/callbacks/preBerserkDeath.lua +2 -0
  63. package/callbacks/preNewLevel.lua +2 -0
  64. package/callbacks/reorderedCallbacks.lua +16 -0
  65. package/callbacks/subscriptions/postBombInitLate.lua +6 -0
  66. package/callbacks/subscriptions/postBoneSwing.lua +6 -0
  67. package/callbacks/subscriptions/postCollectibleInitFirst.lua +6 -0
  68. package/callbacks/subscriptions/postCursedTeleport.lua +6 -0
  69. package/callbacks/subscriptions/postCustomDoorEnter.lua +6 -0
  70. package/callbacks/subscriptions/postCustomRevive.d.ts +1 -0
  71. package/callbacks/subscriptions/postCustomRevive.lua +6 -0
  72. package/callbacks/subscriptions/postDoorRender.d.ts +1 -0
  73. package/callbacks/subscriptions/postDoorRender.lua +6 -0
  74. package/callbacks/subscriptions/postDoorUpdate.d.ts +1 -0
  75. package/callbacks/subscriptions/postDoorUpdate.lua +6 -0
  76. package/callbacks/subscriptions/postEffectInitLate.lua +6 -0
  77. package/callbacks/subscriptions/postEffectStateChanged.lua +6 -0
  78. package/callbacks/subscriptions/postEsauJr.lua +6 -0
  79. package/callbacks/subscriptions/postFamiliarInitLate.lua +6 -0
  80. package/callbacks/subscriptions/postFamiliarStateChanged.lua +6 -0
  81. package/callbacks/subscriptions/postFirstEsauJr.lua +6 -0
  82. package/callbacks/subscriptions/postFirstFlip.lua +6 -0
  83. package/callbacks/subscriptions/postFlip.lua +6 -0
  84. package/callbacks/subscriptions/postGameStartedReordered.lua +6 -0
  85. package/callbacks/subscriptions/postGreedModeWave.lua +6 -0
  86. package/callbacks/subscriptions/postGridEntityBroken.lua +6 -0
  87. package/callbacks/subscriptions/postGridEntityCollision.lua +6 -0
  88. package/callbacks/subscriptions/postGridEntityInit.lua +6 -0
  89. package/callbacks/subscriptions/postGridEntityRemove.lua +6 -0
  90. package/callbacks/subscriptions/postGridEntityRender.lua +6 -0
  91. package/callbacks/subscriptions/postGridEntityStateChanged.lua +6 -0
  92. package/callbacks/subscriptions/postGridEntityUpdate.lua +6 -0
  93. package/callbacks/subscriptions/postHolyMantleRemoved.lua +6 -0
  94. package/callbacks/subscriptions/postItemDischarged.lua +6 -0
  95. package/callbacks/subscriptions/postItemPickup.lua +6 -0
  96. package/callbacks/subscriptions/postKnifeInitLate.lua +6 -0
  97. package/callbacks/subscriptions/postLaserInitLate.lua +6 -0
  98. package/callbacks/subscriptions/postNPCInitLate.lua +6 -0
  99. package/callbacks/subscriptions/postNPCStateChanged.lua +6 -0
  100. package/callbacks/subscriptions/postNewLevelReordered.lua +6 -0
  101. package/callbacks/subscriptions/postNewRoomEarly.lua +6 -0
  102. package/callbacks/subscriptions/postNewRoomReordered.lua +6 -0
  103. package/callbacks/subscriptions/postPEffectUpdateReordered.lua +6 -0
  104. package/callbacks/subscriptions/postPickupCollect.d.ts +1 -0
  105. package/callbacks/subscriptions/postPickupCollect.lua +6 -0
  106. package/callbacks/subscriptions/postPickupInitFirst.d.ts +3 -0
  107. package/callbacks/subscriptions/postPickupInitFirst.lua +29 -0
  108. package/callbacks/subscriptions/postPickupInitLate.lua +6 -0
  109. package/callbacks/subscriptions/postPickupStateChanged.d.ts +1 -0
  110. package/callbacks/subscriptions/postPickupStateChanged.lua +6 -0
  111. package/callbacks/subscriptions/postPitRender.d.ts +1 -0
  112. package/callbacks/subscriptions/postPitRender.lua +6 -0
  113. package/callbacks/subscriptions/postPitUpdate.d.ts +1 -0
  114. package/callbacks/subscriptions/postPitUpdate.lua +6 -0
  115. package/callbacks/subscriptions/postPlayerChangeHealth.lua +6 -0
  116. package/callbacks/subscriptions/postPlayerChangeType.lua +6 -0
  117. package/callbacks/subscriptions/postPlayerFatalDamage.lua +6 -0
  118. package/callbacks/subscriptions/postPlayerInitLate.lua +6 -0
  119. package/callbacks/subscriptions/postPlayerInitReordered.lua +6 -0
  120. package/callbacks/subscriptions/postPlayerRenderReordered.lua +6 -0
  121. package/callbacks/subscriptions/postPlayerUpdateReordered.lua +6 -0
  122. package/callbacks/subscriptions/postPoopRender.d.ts +1 -0
  123. package/callbacks/subscriptions/postPoopRender.lua +6 -0
  124. package/callbacks/subscriptions/postPoopUpdate.d.ts +1 -0
  125. package/callbacks/subscriptions/postPoopUpdate.lua +6 -0
  126. package/callbacks/subscriptions/postPressurePlateRender.d.ts +1 -0
  127. package/callbacks/subscriptions/postPressurePlateRender.lua +6 -0
  128. package/callbacks/subscriptions/postPressurePlateUpdate.d.ts +1 -0
  129. package/callbacks/subscriptions/postPressurePlateUpdate.lua +6 -0
  130. package/callbacks/subscriptions/postProjectileInitLate.lua +6 -0
  131. package/callbacks/subscriptions/postPurchase.lua +6 -0
  132. package/callbacks/subscriptions/postRockRender.d.ts +1 -0
  133. package/callbacks/subscriptions/postRockRender.lua +6 -0
  134. package/callbacks/subscriptions/postRockUpdate.d.ts +1 -0
  135. package/callbacks/subscriptions/postRockUpdate.lua +6 -0
  136. package/callbacks/subscriptions/postRoomClearChanged.lua +6 -0
  137. package/callbacks/subscriptions/postSacrifice.lua +6 -0
  138. package/callbacks/subscriptions/postSlotAnimationChanged.lua +6 -0
  139. package/callbacks/subscriptions/postSlotDestroyed.lua +6 -0
  140. package/callbacks/subscriptions/postSlotInit.lua +6 -0
  141. package/callbacks/subscriptions/postSlotRender.lua +6 -0
  142. package/callbacks/subscriptions/postSlotUpdate.lua +6 -0
  143. package/callbacks/subscriptions/postSpikesRender.d.ts +1 -0
  144. package/callbacks/subscriptions/postSpikesRender.lua +6 -0
  145. package/callbacks/subscriptions/postSpikesUpdate.d.ts +1 -0
  146. package/callbacks/subscriptions/postSpikesUpdate.lua +6 -0
  147. package/callbacks/subscriptions/postTNTRender.d.ts +1 -0
  148. package/callbacks/subscriptions/postTNTRender.lua +6 -0
  149. package/callbacks/subscriptions/postTNTUpdate.d.ts +1 -0
  150. package/callbacks/subscriptions/postTNTUpdate.lua +6 -0
  151. package/callbacks/subscriptions/postTearInitLate.lua +6 -0
  152. package/callbacks/subscriptions/postTearInitVeryLate.lua +6 -0
  153. package/callbacks/subscriptions/postTransformation.lua +6 -0
  154. package/callbacks/subscriptions/postTrinketBreak.lua +6 -0
  155. package/callbacks/subscriptions/preBerserkDeath.lua +6 -0
  156. package/callbacks/subscriptions/preCustomRevive.lua +6 -0
  157. package/callbacks/subscriptions/preItemPickup.lua +6 -0
  158. package/callbacks/subscriptions/preNewLevel.lua +6 -0
  159. package/classes/DefaultMap.d.ts +70 -39
  160. package/classes/DefaultMap.lua +94 -43
  161. package/classes/ModUpgraded.d.ts +3 -3
  162. package/classes/ModUpgraded.lua +5 -0
  163. package/constants.lua +41 -0
  164. package/constantsFirstLast.lua +63 -0
  165. package/enums/HealthType.lua +3 -0
  166. package/enums/ModCallbackCustom.d.ts +62 -40
  167. package/enums/ModCallbackCustom.lua +46 -38
  168. package/enums/private/CopyableIsaacAPIClassType.lua +1 -0
  169. package/enums/private/SerializationBrand.lua +5 -0
  170. package/features/characterHealthConversion.lua +6 -0
  171. package/features/characterStats.lua +17 -0
  172. package/features/debugDisplay/exports.d.ts +17 -0
  173. package/features/debugDisplay/exports.lua +90 -0
  174. package/features/debugDisplay/v.d.ts +17 -0
  175. package/features/deployJSONRoom.d.ts +1 -0
  176. package/features/deployJSONRoom.lua +56 -0
  177. package/features/disableInputs.lua +45 -0
  178. package/features/disableSound.lua +14 -0
  179. package/features/extraConsoleCommands/commandsDisplay.lua +90 -0
  180. package/features/extraConsoleCommands/init.lua +16 -0
  181. package/features/extraConsoleCommands/listCommands.lua +172 -0
  182. package/features/fadeInRemover.lua +10 -0
  183. package/features/fastReset.lua +10 -0
  184. package/features/forgottenSwitch.lua +4 -0
  185. package/features/getCollectibleItemPoolType.lua +5 -0
  186. package/features/playerInventory.lua +18 -0
  187. package/features/ponyDetection.lua +4 -0
  188. package/features/preventCollectibleRotation.lua +9 -0
  189. package/features/runInNFrames.lua +50 -0
  190. package/features/saveDataManager/constants.lua +1 -0
  191. package/features/saveDataManager/exports.lua +115 -0
  192. package/features/saveDataManager/load.lua +12 -8
  193. package/features/saveDataManager/main.lua +16 -3
  194. package/features/saveDataManager/maps.lua +3 -0
  195. package/features/saveDataManager/merge.lua +53 -21
  196. package/features/saveDataManager/save.lua +12 -7
  197. package/features/sirenHelpers.lua +13 -0
  198. package/features/taintedLazarusPlayers.lua +11 -0
  199. package/featuresInitialized.lua +6 -0
  200. package/functions/array.d.ts +2 -0
  201. package/functions/array.lua +85 -0
  202. package/functions/benchmark.lua +6 -0
  203. package/functions/bombs.d.ts +3 -0
  204. package/functions/bombs.lua +12 -0
  205. package/functions/boss.lua +35 -0
  206. package/functions/cacheFlag.lua +4 -0
  207. package/functions/cards.lua +60 -0
  208. package/functions/challenges.lua +1 -0
  209. package/functions/character.lua +23 -0
  210. package/functions/charge.lua +39 -0
  211. package/functions/chargeBar.d.ts +1 -0
  212. package/functions/chargeBar.lua +4 -0
  213. package/functions/collectibleCacheFlag.lua +15 -0
  214. package/functions/collectibleSet.lua +3 -0
  215. package/functions/collectibleTag.lua +9 -0
  216. package/functions/collectibles.d.ts +13 -8
  217. package/functions/collectibles.lua +147 -3
  218. package/functions/color.lua +18 -0
  219. package/functions/debug.lua +18 -0
  220. package/functions/deepCopy.lua +60 -26
  221. package/functions/deepCopyTests.lua +8 -5
  222. package/functions/direction.d.ts +8 -0
  223. package/functions/direction.lua +27 -0
  224. package/functions/doors.d.ts +1 -0
  225. package/functions/doors.lua +58 -0
  226. package/functions/entity.d.ts +4 -4
  227. package/functions/entity.lua +94 -6
  228. package/functions/entitySpecific.d.ts +20 -20
  229. package/functions/entitySpecific.lua +182 -0
  230. package/functions/entityTypes.d.ts +1 -1
  231. package/functions/entityTypes.lua +1 -0
  232. package/functions/enums.d.ts +2 -0
  233. package/functions/enums.lua +62 -0
  234. package/functions/familiars.lua +52 -0
  235. package/functions/flag.lua +77 -0
  236. package/functions/flying.lua +10 -0
  237. package/functions/globals.lua +8 -10
  238. package/functions/gridEntity.lua +105 -0
  239. package/functions/gridEntitySpecific.d.ts +5 -0
  240. package/functions/gridEntitySpecific.lua +8 -0
  241. package/functions/input.lua +11 -0
  242. package/functions/isaacAPIClass.d.ts +4 -4
  243. package/functions/isaacAPIClass.lua +15 -3
  244. package/functions/jsonHelpers.lua +11 -0
  245. package/functions/jsonRoom.d.ts +2 -0
  246. package/functions/jsonRoom.lua +5 -0
  247. package/functions/kColor.lua +9 -0
  248. package/functions/language.lua +5 -0
  249. package/functions/log.lua +31 -3
  250. package/functions/map.lua +18 -0
  251. package/functions/math.lua +26 -0
  252. package/functions/npc.lua +24 -0
  253. package/functions/pickupVariants.d.ts +11 -11
  254. package/functions/pickupVariants.lua +11 -0
  255. package/functions/pickups.d.ts +9 -9
  256. package/functions/pickups.lua +67 -0
  257. package/functions/pills.lua +45 -0
  258. package/functions/player.d.ts +7 -0
  259. package/functions/player.lua +210 -9
  260. package/functions/playerDataStructures.lua +65 -0
  261. package/functions/playerHealth.d.ts +3 -0
  262. package/functions/playerHealth.lua +92 -63
  263. package/functions/playerIndex.d.ts +2 -0
  264. package/functions/playerIndex.lua +47 -0
  265. package/functions/pocketItems.lua +18 -0
  266. package/functions/positionVelocity.d.ts +3 -0
  267. package/functions/positionVelocity.lua +46 -0
  268. package/functions/random.d.ts +2 -0
  269. package/functions/random.lua +32 -0
  270. package/functions/revive.d.ts +2 -0
  271. package/functions/revive.lua +15 -0
  272. package/functions/rng.d.ts +1 -0
  273. package/functions/rng.lua +19 -0
  274. package/functions/roomData.lua +68 -0
  275. package/functions/roomGrid.lua +21 -0
  276. package/functions/roomShape.lua +22 -0
  277. package/functions/rooms.lua +100 -0
  278. package/functions/run.lua +5 -0
  279. package/functions/seeds.lua +4 -0
  280. package/functions/serialization.lua +6 -2
  281. package/functions/set.d.ts +1 -0
  282. package/functions/set.lua +22 -0
  283. package/functions/spawnCollectible.lua +24 -0
  284. package/functions/sprite.d.ts +2 -0
  285. package/functions/sprite.lua +25 -0
  286. package/functions/stage.lua +16 -0
  287. package/functions/string.lua +6 -0
  288. package/functions/table.d.ts +12 -0
  289. package/functions/table.lua +53 -0
  290. package/functions/tears.d.ts +1 -0
  291. package/functions/tears.lua +12 -0
  292. package/functions/transformations.lua +18 -0
  293. package/functions/trinketCacheFlag.lua +3 -0
  294. package/functions/trinketGive.lua +24 -0
  295. package/functions/trinkets.lua +52 -0
  296. package/functions/tstlClass.d.ts +34 -0
  297. package/functions/tstlClass.lua +63 -9
  298. package/functions/ui.d.ts +2 -0
  299. package/functions/ui.lua +16 -0
  300. package/functions/utils.d.ts +16 -0
  301. package/functions/utils.lua +108 -0
  302. package/functions/vector.lua +13 -16
  303. package/index.d.ts +1 -0
  304. package/index.lua +8 -0
  305. package/initCustomCallbacks.lua +6 -0
  306. package/interfaces/AddCallbackParameterCustom.d.ts +2 -0
  307. package/interfaces/ChargeBarSprites.d.ts +1 -0
  308. package/interfaces/private/TSTLClassMetatable.d.ts +2 -0
  309. package/lualib_bundle.lua +21 -34
  310. package/maps/cardMap.lua +1 -0
  311. package/maps/characterMap.lua +1 -0
  312. package/maps/defaultPlayerStatMap.lua +1 -0
  313. package/maps/gridEntityXMLMap.lua +2 -0
  314. package/maps/pillEffectMap.lua +1 -0
  315. package/maps/roomShapeToTopLeftWallGridIndexMap.lua +2 -0
  316. package/maps/roomTypeMap.lua +1 -0
  317. package/objects/LRoomShapeToRectangles.lua +2 -0
  318. package/objects/callbackRegisterFunctions.lua +3 -0
  319. package/objects/colors.lua +4 -0
  320. package/objects/oppositeDoorSlots.d.ts +4 -0
  321. package/objects/oppositeDoorSlots.lua +15 -0
  322. package/objects/roomShapeBounds.lua +2 -0
  323. package/objects/roomShapeLayoutSizes.lua +4 -0
  324. package/objects/roomShapeToBottomRightPosition.lua +2 -0
  325. package/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +2 -0
  326. package/objects/roomShapeToTopLeftPosition.lua +2 -0
  327. package/objects/roomShapeVolumes.lua +3 -0
  328. package/package.json +2 -2
  329. package/patchErrorFunctions.lua +8 -0
  330. package/sets/bossSets.lua +23 -0
  331. package/sets/charactersWithNoRedHeartsSet.lua +2 -0
  332. package/sets/charactersWithNoSoulHeartsSet.lua +2 -0
  333. package/sets/lostStyleCharactersSet.lua +2 -0
  334. package/types/AnyEntity.d.ts +10 -0
  335. package/types/PickingUpItem.lua +7 -0
  336. package/upgradeMod.d.ts +4 -4
  337. package/upgradeMod.lua +18 -0
@@ -2,7 +2,7 @@
2
2
  * - The Isaac API offers a lot of callbacks, but a lot of times there isn't one for the specific
3
3
  * thing that you are looking to do. So, `isaacscript-common` adds a bunch of new callbacks that
4
4
  * you can use.
5
- * - The extra callbacks are efficient such that no code is ran until they have one or more
5
+ * - The extra callbacks are efficient such that no code is executed until there is one or more
6
6
  * subscriptions.
7
7
  * - You must upgrade your mod with the `upgradeMod` helper function before using a custom callback.
8
8
  */
@@ -143,7 +143,7 @@ export declare enum ModCallbackCustom {
143
143
  * only fire if the familiar variant matches the `FamiliarVariant` provided.
144
144
  *
145
145
  * ```ts
146
- * function postTearInitLate(familiar: EntityFamiliar): void {}
146
+ * function postFamiliarInitLate(familiar: EntityFamiliar): void {}
147
147
  * ```
148
148
  */
149
149
  POST_FAMILIAR_INIT_LATE = 11,
@@ -490,6 +490,28 @@ export declare enum ModCallbackCustom {
490
490
  * ```
491
491
  */
492
492
  POST_PICKUP_COLLECT = 36,
493
+ /**
494
+ * Fires from the `MC_POST_PICKUP_INIT` callback on the first time that a player has seen the
495
+ * respective pickup on the run.
496
+ *
497
+ * This callback is useful because pickups will despawn upon leaving the room and respawn upon
498
+ * re-entering the room.
499
+ *
500
+ * For most cases, this callback will simply fire when `MC_POST_PICKUP_INIT` fires and the player
501
+ * is not re-entering a previously visited room.
502
+ *
503
+ * The special case is when a player enters a post-Ascent Treasure Room or Boss Room. For these
504
+ * cases, the `InitSeed` of any pickups seen from previous floors is kept track of to prevent the
505
+ * callback from firing when re-entering the room.
506
+ *
507
+ * When registering the callback, takes an optional second argument that will make the callback
508
+ * only fire if the collectible type matches the `PickupVariant` provided.
509
+ *
510
+ * ```ts
511
+ * function postPickupInitFirst(pickup: EntityPickup): void {}
512
+ * ```
513
+ */
514
+ POST_PICKUP_INIT_FIRST = 37,
493
515
  /**
494
516
  * Fires on the first `MC_POST_PICKUP_UPDATE` frame for each pickup.
495
517
  *
@@ -503,7 +525,7 @@ export declare enum ModCallbackCustom {
503
525
  * function postPickupInitLate(pickup: EntityPickup): void {}
504
526
  * ```
505
527
  */
506
- POST_PICKUP_INIT_LATE = 37,
528
+ POST_PICKUP_INIT_LATE = 38,
507
529
  /**
508
530
  * Fires from the `MC_POST_PICKUP_UPDATE` callback when a pickup's state has changed from what it
509
531
  * was on the previous frame.
@@ -519,9 +541,9 @@ export declare enum ModCallbackCustom {
519
541
  * ): void {}
520
542
  * ```
521
543
  */
522
- POST_PICKUP_STATE_CHANGED = 38,
523
- POST_PIT_RENDER = 39,
524
- POST_PIT_UPDATE = 40,
544
+ POST_PICKUP_STATE_CHANGED = 39,
545
+ POST_PIT_RENDER = 40,
546
+ POST_PIT_UPDATE = 41,
525
547
  /**
526
548
  * Fires from the `MC_POST_PEFFECT_UPDATE` callback when a player entity gains or loses any health
527
549
  * (i.e. hearts). For more information, see the `PlayerHealth` enum.
@@ -537,7 +559,7 @@ export declare enum ModCallbackCustom {
537
559
  * ) {}
538
560
  * ```
539
561
  */
540
- POST_PLAYER_CHANGE_HEALTH = 41,
562
+ POST_PLAYER_CHANGE_HEALTH = 42,
541
563
  /**
542
564
  * Fires from the `MC_POST_PEFFECT_UPDATE` callback when a player entity changes its player type
543
565
  * (i.e. character). For example, it will fire after using Clicker, after dying with the Judas'
@@ -555,7 +577,7 @@ export declare enum ModCallbackCustom {
555
577
  * ) {}
556
578
  * ```
557
579
  */
558
- POST_PLAYER_CHANGE_TYPE = 42,
580
+ POST_PLAYER_CHANGE_TYPE = 43,
559
581
  /**
560
582
  * Fires from the `MC_ENTITY_TAKE_DMG` callback when a player takes fatal damage. Return false to
561
583
  * prevent the fatal damage.
@@ -572,7 +594,7 @@ export declare enum ModCallbackCustom {
572
594
  * function postPlayerFatalDamage(player: EntityPlayer) {}
573
595
  * ```
574
596
  */
575
- POST_PLAYER_FATAL_DAMAGE = 43,
597
+ POST_PLAYER_FATAL_DAMAGE = 44,
576
598
  /**
577
599
  * Fires on the first `MC_POST_PLAYER_UPDATE` frame for each player.
578
600
  *
@@ -586,7 +608,7 @@ export declare enum ModCallbackCustom {
586
608
  * function postPlayerInitLate(pickup: EntityPickup): void {}
587
609
  * ```
588
610
  */
589
- POST_PLAYER_INIT_LATE = 44,
611
+ POST_PLAYER_INIT_LATE = 45,
590
612
  /**
591
613
  * Similar to the vanilla callback of the same name, but fires after the `MC_POST_GAME_STARTED`
592
614
  * callback fires (if the player is spawning on the 0th game frame of the run).
@@ -607,8 +629,8 @@ export declare enum ModCallbackCustom {
607
629
  * function postPlayerInitReordered(player: EntityPlayer): void {}
608
630
  * ```
609
631
  */
610
- POST_PLAYER_INIT_REORDERED = 45,
611
- POST_PLAYER_RENDER_REORDERED = 46,
632
+ POST_PLAYER_INIT_REORDERED = 46,
633
+ POST_PLAYER_RENDER_REORDERED = 47,
612
634
  /**
613
635
  * Similar to the vanilla callback of the same name, but fires after the `MC_POST_GAME_STARTED`
614
636
  * callback fires (if the player is being updated on the 0th game frame of the run).
@@ -629,11 +651,11 @@ export declare enum ModCallbackCustom {
629
651
  * function postPlayerUpdateReordered(player: EntityPlayer): void {}
630
652
  * ```
631
653
  */
632
- POST_PLAYER_UPDATE_REORDERED = 47,
633
- POST_POOP_RENDER = 48,
634
- POST_POOP_UPDATE = 49,
635
- POST_PRESSURE_PLATE_RENDER = 50,
636
- POST_PRESSURE_PLATE_UPDATE = 51,
654
+ POST_PLAYER_UPDATE_REORDERED = 48,
655
+ POST_POOP_RENDER = 49,
656
+ POST_POOP_UPDATE = 50,
657
+ POST_PRESSURE_PLATE_RENDER = 51,
658
+ POST_PRESSURE_PLATE_UPDATE = 52,
637
659
  /**
638
660
  * Fires on the first `MC_POST_PROJECTILE_UPDATE` frame for each projectile.
639
661
  *
@@ -647,7 +669,7 @@ export declare enum ModCallbackCustom {
647
669
  * function postProjectileInitLate(projectile: EntityProjectile): void {}
648
670
  * ```
649
671
  */
650
- POST_PROJECTILE_INIT_LATE = 52,
672
+ POST_PROJECTILE_INIT_LATE = 53,
651
673
  /**
652
674
  * Fires from the `MC_POST_PEFFECT_UPDATE` callback when a player first picks up a new item. The
653
675
  * pickup returned in the callback is assumed to be the first pickup that no longer exists.
@@ -661,10 +683,10 @@ export declare enum ModCallbackCustom {
661
683
  * function postPurchase(player: EntityPlayer, pickup: EntityPickup): void {}
662
684
  * ```
663
685
  */
664
- POST_PURCHASE = 53,
665
- POST_ROCK_RENDER = 54,
666
- POST_ROCK_UPDATE = 55,
667
- POST_ROOM_CLEAR_CHANGED = 56,
686
+ POST_PURCHASE = 54,
687
+ POST_ROCK_RENDER = 55,
688
+ POST_ROCK_UPDATE = 56,
689
+ POST_ROOM_CLEAR_CHANGED = 57,
668
690
  /**
669
691
  * Fires from the `MC_ENTITY_TAKE_DMG` callback when a player takes damage from spikes in a
670
692
  * Sacrifice Room.
@@ -673,7 +695,7 @@ export declare enum ModCallbackCustom {
673
695
  * function postSacrifice(player: EntityPlayer, numSacrifices: int): void {}
674
696
  * ```
675
697
  */
676
- POST_SACRIFICE = 57,
698
+ POST_SACRIFICE = 58,
677
699
  /**
678
700
  * Fires from the `MC_POST_RENDER` callback when a slot entity's animation changes.
679
701
  *
@@ -684,7 +706,7 @@ export declare enum ModCallbackCustom {
684
706
  * function postSlotAnimationChanged(slot: Entity): void {}
685
707
  * ```
686
708
  */
687
- POST_SLOT_ANIMATION_CHANGED = 58,
709
+ POST_SLOT_ANIMATION_CHANGED = 59,
688
710
  /**
689
711
  * Fires from the `MC_POST_RENDER` callback when a slot plays the animation that indicates that it
690
712
  * has broken.
@@ -696,7 +718,7 @@ export declare enum ModCallbackCustom {
696
718
  * function postSlotDestroyed(slot: Entity): void {}
697
719
  * ```
698
720
  */
699
- POST_SLOT_DESTROYED = 59,
721
+ POST_SLOT_DESTROYED = 60,
700
722
  /**
701
723
  * Fires when a new slot entity is initialized. Specifically, this is either:
702
724
  *
@@ -712,7 +734,7 @@ export declare enum ModCallbackCustom {
712
734
  * function postSlotInit(slot: Entity): void {}
713
735
  * ```
714
736
  */
715
- POST_SLOT_INIT = 60,
737
+ POST_SLOT_INIT = 61,
716
738
  /**
717
739
  * Fires from the `MC_POST_RENDER` callback on every frame that a slot entity exists.
718
740
  *
@@ -723,7 +745,7 @@ export declare enum ModCallbackCustom {
723
745
  * function postSlotRender(slot: Entity): void {}
724
746
  * ```
725
747
  */
726
- POST_SLOT_RENDER = 61,
748
+ POST_SLOT_RENDER = 62,
727
749
  /**
728
750
  * Fires from the `MC_POST_UPDATE` callback on every frame that a slot entity exists.
729
751
  *
@@ -734,9 +756,9 @@ export declare enum ModCallbackCustom {
734
756
  * function postSlotUpdate(slot: Entity): void {}
735
757
  * ```
736
758
  */
737
- POST_SLOT_UPDATE = 62,
738
- POST_SPIKES_RENDER = 63,
739
- POST_SPIKES_UPDATE = 64,
759
+ POST_SLOT_UPDATE = 63,
760
+ POST_SPIKES_RENDER = 64,
761
+ POST_SPIKES_UPDATE = 65,
740
762
  /**
741
763
  * Fires on the first `MC_POST_TEAR_UPDATE` frame for each tear.
742
764
  *
@@ -750,7 +772,7 @@ export declare enum ModCallbackCustom {
750
772
  * function postTearInitLate(tear: EntityTear): void {}
751
773
  * ```
752
774
  */
753
- POST_TEAR_INIT_LATE = 65,
775
+ POST_TEAR_INIT_LATE = 66,
754
776
  /**
755
777
  * Fires on the second `MC_POST_TEAR_UPDATE` frame for each tear (i.e. frame 1).
756
778
  *
@@ -763,9 +785,9 @@ export declare enum ModCallbackCustom {
763
785
  * function postTearInitVeryLate(tear: EntityTear): void {}
764
786
  * ```
765
787
  */
766
- POST_TEAR_INIT_VERY_LATE = 66,
767
- POST_TNT_RENDER = 67,
768
- POST_TNT_UPDATE = 68,
788
+ POST_TEAR_INIT_VERY_LATE = 67,
789
+ POST_TNT_RENDER = 68,
790
+ POST_TNT_UPDATE = 69,
769
791
  /**
770
792
  * Fires from the `MC_POST_PEFFECT_UPDATE` callback when a player gains or loses a new
771
793
  * transformation.
@@ -783,7 +805,7 @@ export declare enum ModCallbackCustom {
783
805
  * ): void {}
784
806
  * ```
785
807
  */
786
- POST_TRANSFORMATION = 69,
808
+ POST_TRANSFORMATION = 70,
787
809
  /**
788
810
  * Fires from `MC_ENTITY_TAKE_DMG` callback when a Wishbone or a Walnut breaks.
789
811
  *
@@ -797,7 +819,7 @@ export declare enum ModCallbackCustom {
797
819
  * ): void {}
798
820
  * ```
799
821
  */
800
- POST_TRINKET_BREAK = 70,
822
+ POST_TRINKET_BREAK = 71,
801
823
  /**
802
824
  * Fires from the `MC_POST_PEFFECT_UPDATE` callback on the frame before a Berserk! effect ends
803
825
  * when the player is predicted to die (e.g. they currently have no health left or they took
@@ -810,7 +832,7 @@ export declare enum ModCallbackCustom {
810
832
  * function preBerserkDeath(player: EntityPlayer) {}
811
833
  * ```
812
834
  */
813
- PRE_BERSERK_DEATH = 71,
835
+ PRE_BERSERK_DEATH = 72,
814
836
  /**
815
837
  * Fires from the `MC_POST_PLAYER_FATAL_DAMAGE` callback when a player is about to die. If you
816
838
  * want to initiate a custom revival, return an integer that corresponds to the item or type of
@@ -823,7 +845,7 @@ export declare enum ModCallbackCustom {
823
845
  * function preCustomRevive(player: EntityPlayer) {}
824
846
  * ```
825
847
  */
826
- PRE_CUSTOM_REVIVE = 72,
848
+ PRE_CUSTOM_REVIVE = 73,
827
849
  /**
828
850
  * Fires from the `MC_POST_PEFFECT_UPDATE` callback when an item becomes queued (i.e. when the
829
851
  * player begins to hold the item above their head).
@@ -842,7 +864,7 @@ export declare enum ModCallbackCustom {
842
864
  * ): void {}
843
865
  * ```
844
866
  */
845
- PRE_ITEM_PICKUP = 73,
867
+ PRE_ITEM_PICKUP = 74,
846
868
  /**
847
869
  * Fires on the `MC_POST_RENDER` frame before the player is taken to a new floor. Only fires when
848
870
  * a player jumps into a trapdoor or enters a heaven door (beam of light). Does not fire on the
@@ -856,5 +878,5 @@ export declare enum ModCallbackCustom {
856
878
  * function preNewLevel(player: EntityPlayer): void {}
857
879
  * ```
858
880
  */
859
- PRE_NEW_LEVEL = 74
881
+ PRE_NEW_LEVEL = 75
860
882
  }
@@ -1,4 +1,10 @@
1
1
  local ____exports = {}
2
+ --- - The Isaac API offers a lot of callbacks, but a lot of times there isn't one for the specific
3
+ -- thing that you are looking to do. So, `isaacscript-common` adds a bunch of new callbacks that
4
+ -- you can use.
5
+ -- - The extra callbacks are efficient such that no code is executed until there is one or more
6
+ -- subscriptions.
7
+ -- - You must upgrade your mod with the `upgradeMod` helper function before using a custom callback.
2
8
  ____exports.ModCallbackCustom = {}
3
9
  ____exports.ModCallbackCustom.POST_BOMB_INIT_LATE = 0
4
10
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_BOMB_INIT_LATE] = "POST_BOMB_INIT_LATE"
@@ -74,80 +80,82 @@ ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 35
74
80
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED] = "POST_PEFFECT_UPDATE_REORDERED"
75
81
  ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 36
76
82
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_COLLECT] = "POST_PICKUP_COLLECT"
77
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 37
83
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 37
84
+ ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST] = "POST_PICKUP_INIT_FIRST"
85
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 38
78
86
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE] = "POST_PICKUP_INIT_LATE"
79
- ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 38
87
+ ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 39
80
88
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED] = "POST_PICKUP_STATE_CHANGED"
81
- ____exports.ModCallbackCustom.POST_PIT_RENDER = 39
89
+ ____exports.ModCallbackCustom.POST_PIT_RENDER = 40
82
90
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_RENDER] = "POST_PIT_RENDER"
83
- ____exports.ModCallbackCustom.POST_PIT_UPDATE = 40
91
+ ____exports.ModCallbackCustom.POST_PIT_UPDATE = 41
84
92
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_UPDATE] = "POST_PIT_UPDATE"
85
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 41
93
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 42
86
94
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH] = "POST_PLAYER_CHANGE_HEALTH"
87
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 42
95
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 43
88
96
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE] = "POST_PLAYER_CHANGE_TYPE"
89
- ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 43
97
+ ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 44
90
98
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE] = "POST_PLAYER_FATAL_DAMAGE"
91
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 44
99
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 45
92
100
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE] = "POST_PLAYER_INIT_LATE"
93
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_REORDERED = 45
101
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_REORDERED = 46
94
102
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_REORDERED] = "POST_PLAYER_INIT_REORDERED"
95
- ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 46
103
+ ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 47
96
104
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED] = "POST_PLAYER_RENDER_REORDERED"
97
- ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 47
105
+ ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 48
98
106
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED] = "POST_PLAYER_UPDATE_REORDERED"
99
- ____exports.ModCallbackCustom.POST_POOP_RENDER = 48
107
+ ____exports.ModCallbackCustom.POST_POOP_RENDER = 49
100
108
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_RENDER] = "POST_POOP_RENDER"
101
- ____exports.ModCallbackCustom.POST_POOP_UPDATE = 49
109
+ ____exports.ModCallbackCustom.POST_POOP_UPDATE = 50
102
110
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_UPDATE] = "POST_POOP_UPDATE"
103
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 50
111
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 51
104
112
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER] = "POST_PRESSURE_PLATE_RENDER"
105
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 51
113
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 52
106
114
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE] = "POST_PRESSURE_PLATE_UPDATE"
107
- ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 52
115
+ ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 53
108
116
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE] = "POST_PROJECTILE_INIT_LATE"
109
- ____exports.ModCallbackCustom.POST_PURCHASE = 53
117
+ ____exports.ModCallbackCustom.POST_PURCHASE = 54
110
118
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PURCHASE] = "POST_PURCHASE"
111
- ____exports.ModCallbackCustom.POST_ROCK_RENDER = 54
119
+ ____exports.ModCallbackCustom.POST_ROCK_RENDER = 55
112
120
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_RENDER] = "POST_ROCK_RENDER"
113
- ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 55
121
+ ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 56
114
122
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_UPDATE] = "POST_ROCK_UPDATE"
115
- ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 56
123
+ ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 57
116
124
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED] = "POST_ROOM_CLEAR_CHANGED"
117
- ____exports.ModCallbackCustom.POST_SACRIFICE = 57
125
+ ____exports.ModCallbackCustom.POST_SACRIFICE = 58
118
126
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SACRIFICE] = "POST_SACRIFICE"
119
- ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 58
127
+ ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 59
120
128
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED] = "POST_SLOT_ANIMATION_CHANGED"
121
- ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 59
129
+ ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 60
122
130
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_DESTROYED] = "POST_SLOT_DESTROYED"
123
- ____exports.ModCallbackCustom.POST_SLOT_INIT = 60
131
+ ____exports.ModCallbackCustom.POST_SLOT_INIT = 61
124
132
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_INIT] = "POST_SLOT_INIT"
125
- ____exports.ModCallbackCustom.POST_SLOT_RENDER = 61
133
+ ____exports.ModCallbackCustom.POST_SLOT_RENDER = 62
126
134
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_RENDER] = "POST_SLOT_RENDER"
127
- ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 62
135
+ ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 63
128
136
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_UPDATE] = "POST_SLOT_UPDATE"
129
- ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 63
137
+ ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 64
130
138
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_RENDER] = "POST_SPIKES_RENDER"
131
- ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 64
139
+ ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 65
132
140
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_UPDATE] = "POST_SPIKES_UPDATE"
133
- ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 65
141
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 66
134
142
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_LATE] = "POST_TEAR_INIT_LATE"
135
- ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 66
143
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 67
136
144
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE] = "POST_TEAR_INIT_VERY_LATE"
137
- ____exports.ModCallbackCustom.POST_TNT_RENDER = 67
145
+ ____exports.ModCallbackCustom.POST_TNT_RENDER = 68
138
146
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_RENDER] = "POST_TNT_RENDER"
139
- ____exports.ModCallbackCustom.POST_TNT_UPDATE = 68
147
+ ____exports.ModCallbackCustom.POST_TNT_UPDATE = 69
140
148
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_UPDATE] = "POST_TNT_UPDATE"
141
- ____exports.ModCallbackCustom.POST_TRANSFORMATION = 69
149
+ ____exports.ModCallbackCustom.POST_TRANSFORMATION = 70
142
150
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRANSFORMATION] = "POST_TRANSFORMATION"
143
- ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 70
151
+ ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 71
144
152
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRINKET_BREAK] = "POST_TRINKET_BREAK"
145
- ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 71
153
+ ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 72
146
154
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_BERSERK_DEATH] = "PRE_BERSERK_DEATH"
147
- ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 72
155
+ ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 73
148
156
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE] = "PRE_CUSTOM_REVIVE"
149
- ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 73
157
+ ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 74
150
158
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_ITEM_PICKUP] = "PRE_ITEM_PICKUP"
151
- ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 74
159
+ ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 75
152
160
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_NEW_LEVEL] = "PRE_NEW_LEVEL"
153
161
  return ____exports
@@ -1,4 +1,5 @@
1
1
  local ____exports = {}
2
+ --- This must match the enumeration in the JSDoc comments for `deepCopy` and `merge`.
2
3
  ____exports.CopyableIsaacAPIClassType = {}
3
4
  ____exports.CopyableIsaacAPIClassType.COLOR = "Color"
4
5
  ____exports.CopyableIsaacAPIClassType.K_COLOR = "KColor"
@@ -1,4 +1,9 @@
1
1
  local ____exports = {}
2
+ --- During serialization, we write an arbitrary string key to the object with a value of an empty
3
+ -- string. This is used during deserialization to instantiate the correct type of object.
4
+ --
5
+ -- Note that we do not bother branding TSTL classes because we have no way to invoke the proper
6
+ -- constructor during deserialization.
2
7
  ____exports.SerializationBrand = {}
3
8
  ____exports.SerializationBrand.DEFAULT_MAP = "__TSTL_DEFAULT_MAP"
4
9
  ____exports.SerializationBrand.MAP = "__TSTL_MAP"
@@ -74,10 +74,16 @@ function prePickupCollisionHeart(self, pickup, collider)
74
74
  end
75
75
  local FEATURE_NAME = "character health manager"
76
76
  characterHealthReplacementMap = __TS__New(Map)
77
+ ---
78
+ -- @internal
77
79
  function ____exports.characterHealthConversionInit(self, mod)
78
80
  mod:AddCallback(ModCallback.POST_PEFFECT_UPDATE, postPEffectUpdate)
79
81
  mod:AddCallback(ModCallback.PRE_PICKUP_COLLISION, prePickupCollisionHeart, PickupVariant.HEART)
80
82
  end
83
+ --- Helper function to make a character that has the same health mechanic as Blue Baby (red heart
84
+ -- containers --> soul hearts) or Dark Judas (red heart containers --> black hearts).
85
+ --
86
+ -- Call this function once at the beginning of your mod to declare the health conversion type.
81
87
  function ____exports.registerCharacterHealthConversion(self, playerType, conversionHeartSubType)
82
88
  errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
83
89
  characterHealthReplacementMap:set(playerType, conversionHeartSubType)
@@ -27,9 +27,26 @@ function evaluateCache(self, player, cacheFlag)
27
27
  end
28
28
  local FEATURE_NAME = "character stat manager"
29
29
  charactersStatMap = __TS__New(Map)
30
+ ---
31
+ -- @internal
30
32
  function ____exports.characterStatsInit(self, mod)
31
33
  mod:AddCallback(ModCallback.EVALUATE_CACHE, evaluateCache)
32
34
  end
35
+ --- Helper function to manage the stats for a vanilla or custom character. Call this function once at
36
+ -- the beginning of your mod to declare the starting stats.
37
+ --
38
+ -- You must provide this function with a map of CacheFlag to the default stat amount. For example,
39
+ -- the default amount of damage is 3.5. To make a custom character start with 4.5 damage:
40
+ --
41
+ -- ```ts
42
+ -- const fooDefaultStats = new Map<CacheFlag, number>([
43
+ -- [CacheFlag.DAMAGE, 4.5],
44
+ -- ])
45
+ -- registerCharacterStats(PlayerTypeCustom.FOO, fooDefaultStats);
46
+ -- ```
47
+ --
48
+ -- Note that the format for the `CacheFlag.FIRE_DELAY` value should be in the tears stat format, not
49
+ -- the `MaxFireDelay` format.
33
50
  function ____exports.registerCharacterStats(self, playerType, statMap)
34
51
  errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
35
52
  charactersStatMap:set(playerType, statMap)
@@ -1,4 +1,21 @@
1
1
  /// <reference types="isaac-typescript-definitions" />
2
+ /// <reference types="isaac-typescript-definitions" />
3
+ /// <reference types="isaac-typescript-definitions" />
4
+ /// <reference types="isaac-typescript-definitions" />
5
+ /// <reference types="isaac-typescript-definitions" />
6
+ /// <reference types="isaac-typescript-definitions" />
7
+ /// <reference types="isaac-typescript-definitions" />
8
+ /// <reference types="isaac-typescript-definitions" />
9
+ /// <reference types="isaac-typescript-definitions" />
10
+ /// <reference types="isaac-typescript-definitions" />
11
+ /// <reference types="isaac-typescript-definitions" />
12
+ /// <reference types="isaac-typescript-definitions" />
13
+ /// <reference types="isaac-typescript-definitions" />
14
+ /// <reference types="isaac-typescript-definitions" />
15
+ /// <reference types="isaac-typescript-definitions" />
16
+ /// <reference types="isaac-typescript-definitions" />
17
+ /// <reference types="isaac-typescript-definitions" />
18
+ /// <reference types="isaac-typescript-definitions" />
2
19
  /**
3
20
  * After using the "playerDisplay" console command, text will be drawn on each player for debugging
4
21
  * purposes. Use this function to specify a callback function that will returns the string that