isaacscript-common 3.17.0 → 4.0.2

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 (425) hide show
  1. package/cachedClasses.ts +39 -0
  2. package/callbacks/customRevive.lua +2 -1
  3. package/callbacks/customRevive.ts +215 -0
  4. package/callbacks/itemPickup.ts +101 -0
  5. package/callbacks/postAmbush.ts +73 -0
  6. package/callbacks/postBombExploded.ts +26 -0
  7. package/callbacks/postBombInitLate.ts +36 -0
  8. package/callbacks/postBoneSwing.ts +64 -0
  9. package/callbacks/postCollectibleInitFirst.ts +40 -0
  10. package/callbacks/postCursedTeleport.lua +2 -1
  11. package/callbacks/postCursedTeleport.ts +185 -0
  12. package/callbacks/postCustomDoorEnter.lua +0 -7
  13. package/callbacks/postCustomDoorEnter.ts +292 -0
  14. package/callbacks/postDiceRoomActivated.ts +60 -0
  15. package/callbacks/postDoorRender.ts +26 -0
  16. package/callbacks/postDoorUpdate.ts +26 -0
  17. package/callbacks/postEffectInitLate.ts +36 -0
  18. package/callbacks/postEffectStateChanged.ts +43 -0
  19. package/callbacks/postEsauJr.lua +2 -1
  20. package/callbacks/postEsauJr.ts +109 -0
  21. package/callbacks/postFamiliarInitLate.ts +36 -0
  22. package/callbacks/postFamiliarStateChanged.ts +43 -0
  23. package/callbacks/postFlip.lua +4 -3
  24. package/callbacks/postFlip.ts +90 -0
  25. package/callbacks/postGreedModeWave.ts +41 -0
  26. package/callbacks/postGridEntity.ts +164 -0
  27. package/callbacks/postGridEntityCollision.ts +69 -0
  28. package/callbacks/postGridEntityRender.ts +26 -0
  29. package/callbacks/postHolyMantleRemoved.ts +55 -0
  30. package/callbacks/postItemDischarged.lua +4 -3
  31. package/callbacks/postItemDischarged.ts +154 -0
  32. package/callbacks/postKnifeInitLate.ts +36 -0
  33. package/callbacks/postLaserInitLate.ts +36 -0
  34. package/callbacks/postNPCInitLate.ts +36 -0
  35. package/callbacks/postNPCStateChanged.ts +42 -0
  36. package/callbacks/postNewRoomEarly.lua +2 -1
  37. package/callbacks/postNewRoomEarly.ts +96 -0
  38. package/callbacks/postPickupCollect.ts +48 -0
  39. package/callbacks/postPickupInitFirst.ts +70 -0
  40. package/callbacks/postPickupInitLate.ts +36 -0
  41. package/callbacks/postPickupStateChanged.ts +43 -0
  42. package/callbacks/postPitRender.ts +26 -0
  43. package/callbacks/postPitUpdate.ts +26 -0
  44. package/callbacks/postPlayerChangeHealth.ts +62 -0
  45. package/callbacks/postPlayerChangeType.ts +56 -0
  46. package/callbacks/postPlayerCollectible.ts +113 -0
  47. package/callbacks/postPlayerFatalDamage.ts +141 -0
  48. package/callbacks/postPlayerInitLate.ts +37 -0
  49. package/callbacks/postPlayerReordered.ts +142 -0
  50. package/callbacks/postPoopRender.ts +26 -0
  51. package/callbacks/postPoopUpdate.ts +26 -0
  52. package/callbacks/postPressurePlateRender.ts +26 -0
  53. package/callbacks/postPressurePlateUpdate.ts +26 -0
  54. package/callbacks/postProjectileInitLate.ts +36 -0
  55. package/callbacks/postPurchase.ts +64 -0
  56. package/callbacks/postRockRender.ts +26 -0
  57. package/callbacks/postRockUpdate.ts +26 -0
  58. package/callbacks/postRoomClearChanged.ts +57 -0
  59. package/callbacks/postSacrifice.lua +3 -2
  60. package/callbacks/postSacrifice.ts +64 -0
  61. package/callbacks/postSlotDestroyed.ts +92 -0
  62. package/callbacks/postSlotInitUpdate.ts +68 -0
  63. package/callbacks/postSlotRender.ts +69 -0
  64. package/callbacks/postSpikesRender.ts +26 -0
  65. package/callbacks/postSpikesUpdate.ts +26 -0
  66. package/callbacks/postTNTRender.ts +26 -0
  67. package/callbacks/postTNTUpdate.ts +26 -0
  68. package/callbacks/postTearInitLate.ts +36 -0
  69. package/callbacks/postTearInitVeryLate.ts +41 -0
  70. package/callbacks/postTransformation.ts +59 -0
  71. package/callbacks/postTrinketBreak.lua +3 -2
  72. package/callbacks/postTrinketBreak.ts +112 -0
  73. package/callbacks/preBerserkDeath.ts +49 -0
  74. package/callbacks/preNewLevel.ts +55 -0
  75. package/callbacks/reorderedCallbacks.lua +1 -0
  76. package/callbacks/reorderedCallbacks.ts +168 -0
  77. package/callbacks/subscriptions/postAmbushFinished.ts +32 -0
  78. package/callbacks/subscriptions/postAmbushStarted.ts +32 -0
  79. package/callbacks/subscriptions/postBombInitLate.ts +32 -0
  80. package/callbacks/subscriptions/postBoneExploded.ts +32 -0
  81. package/callbacks/subscriptions/postBoneSwing.ts +24 -0
  82. package/callbacks/subscriptions/postCollectibleInitFirst.ts +37 -0
  83. package/callbacks/subscriptions/postCursedTeleport.ts +24 -0
  84. package/callbacks/subscriptions/postCustomDoorEnter.ts +45 -0
  85. package/callbacks/subscriptions/postCustomRevive.ts +36 -0
  86. package/callbacks/subscriptions/postDiceRoomActivated.ts +38 -0
  87. package/callbacks/subscriptions/postDoorRender.ts +35 -0
  88. package/callbacks/subscriptions/postDoorUpdate.ts +35 -0
  89. package/callbacks/subscriptions/postEffectInitLate.ts +32 -0
  90. package/callbacks/subscriptions/postEffectStateChanged.ts +40 -0
  91. package/callbacks/subscriptions/postEsauJr.ts +24 -0
  92. package/callbacks/subscriptions/postFamiliarInitLate.ts +32 -0
  93. package/callbacks/subscriptions/postFamiliarStateChanged.ts +40 -0
  94. package/callbacks/subscriptions/postFirstEsauJr.ts +24 -0
  95. package/callbacks/subscriptions/postFirstFlip.ts +24 -0
  96. package/callbacks/subscriptions/postFlip.ts +22 -0
  97. package/callbacks/subscriptions/postGameStartedReordered.ts +24 -0
  98. package/callbacks/subscriptions/postGreedModeWave.ts +24 -0
  99. package/callbacks/subscriptions/postGridEntityBroken.ts +51 -0
  100. package/callbacks/subscriptions/postGridEntityCollision.ts +54 -0
  101. package/callbacks/subscriptions/postGridEntityInit.ts +51 -0
  102. package/callbacks/subscriptions/postGridEntityRemove.ts +52 -0
  103. package/callbacks/subscriptions/postGridEntityRender.ts +51 -0
  104. package/callbacks/subscriptions/postGridEntityStateChanged.ts +55 -0
  105. package/callbacks/subscriptions/postGridEntityUpdate.ts +51 -0
  106. package/callbacks/subscriptions/postHolyMantleRemoved.ts +48 -0
  107. package/callbacks/subscriptions/postItemDischarged.ts +43 -0
  108. package/callbacks/subscriptions/postItemPickup.ts +64 -0
  109. package/callbacks/subscriptions/postKnifeInitLate.ts +32 -0
  110. package/callbacks/subscriptions/postLaserInitLate.ts +32 -0
  111. package/callbacks/subscriptions/postNPCInitLate.ts +32 -0
  112. package/callbacks/subscriptions/postNPCStateChanged.ts +42 -0
  113. package/callbacks/subscriptions/postNewLevelReordered.ts +22 -0
  114. package/callbacks/subscriptions/postNewRoomEarly.ts +22 -0
  115. package/callbacks/subscriptions/postNewRoomReordered.ts +22 -0
  116. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +40 -0
  117. package/callbacks/subscriptions/postPickupCollect.ts +35 -0
  118. package/callbacks/subscriptions/postPickupInitFirst.ts +32 -0
  119. package/callbacks/subscriptions/postPickupInitLate.ts +32 -0
  120. package/callbacks/subscriptions/postPickupStateChanged.ts +40 -0
  121. package/callbacks/subscriptions/postPitRender.ts +35 -0
  122. package/callbacks/subscriptions/postPitUpdate.ts +35 -0
  123. package/callbacks/subscriptions/postPlayerChangeHealth.ts +49 -0
  124. package/callbacks/subscriptions/postPlayerChangeType.ts +40 -0
  125. package/callbacks/subscriptions/postPlayerCollectibleAdded.d.ts +2 -3
  126. package/callbacks/subscriptions/postPlayerCollectibleAdded.lua +2 -7
  127. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +38 -0
  128. package/callbacks/subscriptions/postPlayerCollectibleRemoved.d.ts +2 -3
  129. package/callbacks/subscriptions/postPlayerCollectibleRemoved.lua +2 -7
  130. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +38 -0
  131. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +1 -1
  132. package/callbacks/subscriptions/postPlayerFatalDamage.ts +68 -0
  133. package/callbacks/subscriptions/postPlayerInitLate.ts +40 -0
  134. package/callbacks/subscriptions/postPlayerInitReordered.ts +40 -0
  135. package/callbacks/subscriptions/postPlayerRenderReordered.ts +40 -0
  136. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +40 -0
  137. package/callbacks/subscriptions/postPoopRender.ts +35 -0
  138. package/callbacks/subscriptions/postPoopUpdate.ts +35 -0
  139. package/callbacks/subscriptions/postPressurePlateRender.ts +37 -0
  140. package/callbacks/subscriptions/postPressurePlateUpdate.ts +37 -0
  141. package/callbacks/subscriptions/postProjectileInitLate.ts +35 -0
  142. package/callbacks/subscriptions/postPurchase.ts +31 -0
  143. package/callbacks/subscriptions/postRockRender.ts +35 -0
  144. package/callbacks/subscriptions/postRockUpdate.ts +35 -0
  145. package/callbacks/subscriptions/postRoomClearChanged.ts +30 -0
  146. package/callbacks/subscriptions/postSacrifice.ts +43 -0
  147. package/callbacks/subscriptions/postSlotAnimationChanged.ts +40 -0
  148. package/callbacks/subscriptions/postSlotDestroyed.ts +55 -0
  149. package/callbacks/subscriptions/postSlotInit.ts +32 -0
  150. package/callbacks/subscriptions/postSlotRender.ts +32 -0
  151. package/callbacks/subscriptions/postSlotUpdate.ts +32 -0
  152. package/callbacks/subscriptions/postSpikesRender.ts +35 -0
  153. package/callbacks/subscriptions/postSpikesUpdate.ts +35 -0
  154. package/callbacks/subscriptions/postTNTRender.ts +35 -0
  155. package/callbacks/subscriptions/postTNTUpdate.ts +35 -0
  156. package/callbacks/subscriptions/postTearInitLate.ts +32 -0
  157. package/callbacks/subscriptions/postTearInitVeryLate.ts +32 -0
  158. package/callbacks/subscriptions/postTransformation.ts +40 -0
  159. package/callbacks/subscriptions/postTrinketBreak.ts +38 -0
  160. package/callbacks/subscriptions/preBerserkDeath.d.ts +1 -1
  161. package/callbacks/subscriptions/preBerserkDeath.ts +42 -0
  162. package/callbacks/subscriptions/preCustomRevive.d.ts +1 -1
  163. package/callbacks/subscriptions/preCustomRevive.ts +46 -0
  164. package/callbacks/subscriptions/preItemPickup.ts +64 -0
  165. package/callbacks/subscriptions/preNewLevel.ts +24 -0
  166. package/classes/DefaultMap.ts +174 -0
  167. package/classes/ModUpgraded.d.ts +8 -4
  168. package/classes/ModUpgraded.lua +5 -8
  169. package/classes/ModUpgraded.ts +84 -0
  170. package/constants.ts +162 -0
  171. package/constantsFirstLast.ts +217 -0
  172. package/enums/AmbushType.ts +4 -0
  173. package/enums/HealthType.ts +16 -0
  174. package/enums/ModCallbackCustom.d.ts +20 -18
  175. package/enums/ModCallbackCustom.ts +1278 -0
  176. package/enums/PocketItemType.ts +8 -0
  177. package/enums/SerializationType.ts +5 -0
  178. package/enums/SlotDestructionType.ts +4 -0
  179. package/enums/private/CopyableIsaacAPIClassType.ts +7 -0
  180. package/enums/private/SaveDataKey.ts +14 -0
  181. package/enums/private/SerializationBrand.ts +42 -0
  182. package/features/characterHealthConversion.lua +2 -9
  183. package/features/characterHealthConversion.ts +111 -0
  184. package/features/characterStats.ts +61 -0
  185. package/features/debugDisplay/debugDisplay.ts +221 -0
  186. package/features/debugDisplay/exports.ts +368 -0
  187. package/features/debugDisplay/v.ts +65 -0
  188. package/features/deployJSONRoom.ts +743 -0
  189. package/features/disableInputs.ts +193 -0
  190. package/features/disableSound.ts +77 -0
  191. package/features/extraConsoleCommands/commandsDisplay.ts +290 -0
  192. package/features/extraConsoleCommands/commandsSubroutines.lua +1 -1
  193. package/features/extraConsoleCommands/commandsSubroutines.ts +139 -0
  194. package/features/extraConsoleCommands/init.ts +334 -0
  195. package/features/extraConsoleCommands/listCommands.ts +1299 -0
  196. package/features/extraConsoleCommands/v.ts +14 -0
  197. package/features/fadeInRemover.ts +60 -0
  198. package/features/fastReset.ts +75 -0
  199. package/features/forgottenSwitch.ts +50 -0
  200. package/features/getCollectibleItemPoolType.ts +66 -0
  201. package/features/persistentEntities.ts +183 -0
  202. package/features/playerInventory.lua +1 -0
  203. package/features/playerInventory.ts +135 -0
  204. package/features/ponyDetection.ts +74 -0
  205. package/features/preventCollectibleRotation.ts +115 -0
  206. package/features/runInNFrames.ts +148 -0
  207. package/features/saveDataManager/constants.ts +4 -0
  208. package/features/saveDataManager/exports.ts +229 -0
  209. package/features/saveDataManager/load.ts +99 -0
  210. package/features/saveDataManager/main.ts +195 -0
  211. package/features/saveDataManager/maps.ts +13 -0
  212. package/features/saveDataManager/merge.ts +194 -0
  213. package/features/saveDataManager/save.ts +74 -0
  214. package/features/saveDataManager/serializationBrand.ts +16 -0
  215. package/features/sirenHelpers.ts +129 -0
  216. package/features/taintedLazarusPlayers.ts +113 -0
  217. package/featuresInitialized.ts +20 -0
  218. package/functions/ambush.ts +47 -0
  219. package/functions/array.ts +410 -0
  220. package/functions/benchmark.ts +36 -0
  221. package/functions/bitwise.ts +24 -0
  222. package/functions/bombs.ts +12 -0
  223. package/functions/boss.ts +227 -0
  224. package/functions/cacheFlag.ts +12 -0
  225. package/functions/cards.lua +1 -1
  226. package/functions/cards.ts +271 -0
  227. package/functions/challenges.ts +13 -0
  228. package/functions/character.ts +126 -0
  229. package/functions/charge.ts +237 -0
  230. package/functions/chargeBar.ts +67 -0
  231. package/functions/collectibleCacheFlag.ts +90 -0
  232. package/functions/collectibleSet.ts +56 -0
  233. package/functions/collectibleTag.ts +89 -0
  234. package/functions/collectibles.ts +659 -0
  235. package/functions/color.d.ts +1 -1
  236. package/functions/color.lua +0 -7
  237. package/functions/color.ts +128 -0
  238. package/functions/debug.lua +2 -2
  239. package/functions/debug.ts +68 -0
  240. package/functions/deepCopy.lua +46 -51
  241. package/functions/deepCopy.ts +535 -0
  242. package/functions/deepCopyTests.ts +386 -0
  243. package/functions/direction.ts +49 -0
  244. package/functions/doors.lua +1 -2
  245. package/functions/doors.ts +347 -0
  246. package/functions/easing.ts +182 -0
  247. package/functions/eden.ts +47 -0
  248. package/functions/effects.ts +20 -0
  249. package/functions/entity.ts +439 -0
  250. package/functions/entitySpecific.ts +889 -0
  251. package/functions/entityTypes.ts +6 -0
  252. package/functions/enums.ts +146 -0
  253. package/functions/familiars.ts +106 -0
  254. package/functions/flag.ts +165 -0
  255. package/functions/flying.ts +117 -0
  256. package/functions/globals.d.ts +3 -3
  257. package/functions/globals.lua +8 -2
  258. package/functions/globals.ts +242 -0
  259. package/functions/gridEntity.ts +511 -0
  260. package/functions/gridEntitySpecific.ts +112 -0
  261. package/functions/input.ts +139 -0
  262. package/functions/isaacAPIClass.ts +67 -0
  263. package/functions/jsonHelpers.ts +45 -0
  264. package/functions/jsonRoom.ts +100 -0
  265. package/functions/kColor.d.ts +1 -1
  266. package/functions/kColor.lua +0 -7
  267. package/functions/kColor.ts +129 -0
  268. package/functions/language.ts +13 -0
  269. package/functions/level.ts +31 -0
  270. package/functions/log.ts +720 -0
  271. package/functions/map.ts +56 -0
  272. package/functions/math.ts +149 -0
  273. package/functions/mergeTests.ts +288 -0
  274. package/functions/npc.ts +148 -0
  275. package/functions/pickupVariants.ts +60 -0
  276. package/functions/pickups.ts +499 -0
  277. package/functions/pills.lua +1 -1
  278. package/functions/pills.ts +205 -0
  279. package/functions/player.lua +9 -20
  280. package/functions/player.ts +1056 -0
  281. package/functions/playerDataStructures.ts +150 -0
  282. package/functions/playerHealth.lua +28 -39
  283. package/functions/playerHealth.ts +382 -0
  284. package/functions/playerIndex.ts +195 -0
  285. package/functions/pocketItems.ts +149 -0
  286. package/functions/positionVelocity.ts +188 -0
  287. package/functions/random.ts +77 -0
  288. package/functions/revive.ts +201 -0
  289. package/functions/rng.d.ts +1 -1
  290. package/functions/rng.lua +0 -7
  291. package/functions/rng.ts +172 -0
  292. package/functions/roomData.ts +199 -0
  293. package/functions/roomGrid.ts +109 -0
  294. package/functions/roomShape.ts +80 -0
  295. package/functions/rooms.lua +1 -3
  296. package/functions/rooms.ts +648 -0
  297. package/functions/run.ts +36 -0
  298. package/functions/saveFile.ts +128 -0
  299. package/functions/seeds.ts +19 -0
  300. package/functions/serialization.lua +0 -3
  301. package/functions/serialization.ts +91 -0
  302. package/functions/set.ts +95 -0
  303. package/functions/sound.ts +9 -0
  304. package/functions/spawnCollectible.ts +104 -0
  305. package/functions/sprite.ts +107 -0
  306. package/functions/stage.ts +125 -0
  307. package/functions/string.ts +47 -0
  308. package/functions/table.ts +189 -0
  309. package/functions/tears.ts +32 -0
  310. package/functions/transformations.lua +1 -3
  311. package/functions/transformations.ts +131 -0
  312. package/functions/trinketCacheFlag.ts +60 -0
  313. package/functions/trinketGive.ts +157 -0
  314. package/functions/trinkets.ts +215 -0
  315. package/functions/tstlClass.ts +157 -0
  316. package/functions/types.ts +36 -0
  317. package/functions/ui.ts +138 -0
  318. package/functions/utils.d.ts +0 -37
  319. package/functions/utils.lua +0 -35
  320. package/functions/utils.ts +189 -0
  321. package/functions/vector.d.ts +1 -1
  322. package/functions/vector.lua +0 -7
  323. package/functions/vector.ts +126 -0
  324. package/index.ts +172 -0
  325. package/initCustomCallbacks.ts +132 -0
  326. package/initFeatures.ts +39 -0
  327. package/interfaces/AddCallbackParameterCustom.ts +188 -0
  328. package/interfaces/ChargeBarSprites.ts +12 -0
  329. package/interfaces/JSONDoor.d.ts +4 -4
  330. package/interfaces/JSONDoor.ts +13 -0
  331. package/interfaces/JSONEntity.d.ts +5 -5
  332. package/interfaces/JSONEntity.ts +16 -0
  333. package/interfaces/JSONRoom.d.ts +9 -9
  334. package/interfaces/JSONRoom.ts +36 -0
  335. package/interfaces/JSONRooms.ts +12 -0
  336. package/interfaces/JSONSpawn.d.ts +3 -3
  337. package/interfaces/JSONSpawn.ts +14 -0
  338. package/interfaces/PlayerHealth.ts +16 -0
  339. package/interfaces/PocketItemDescription.ts +9 -0
  340. package/interfaces/SaveData.ts +29 -0
  341. package/interfaces/TrinketSituation.ts +9 -0
  342. package/interfaces/private/TSTLClassMetatable.ts +8 -0
  343. package/maps/PHDPillConversions.ts +21 -0
  344. package/maps/cardMap.ts +209 -0
  345. package/maps/characterMap.ts +87 -0
  346. package/maps/collectibleDescriptionMap.ts +732 -0
  347. package/maps/collectibleNameMap.ts +731 -0
  348. package/maps/defaultPlayerStatMap.ts +17 -0
  349. package/maps/falsePHDPillConversions.ts +35 -0
  350. package/maps/gridEntityTypeToBrokenStateMap.ts +50 -0
  351. package/maps/gridEntityXMLMap.ts +176 -0
  352. package/maps/pillEffectMap.ts +88 -0
  353. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +18 -0
  354. package/maps/roomTypeMap.ts +40 -0
  355. package/maps/trinketDescriptionMap.ts +200 -0
  356. package/maps/trinketNameMap.ts +198 -0
  357. package/objects/LRoomShapeToRectangles.ts +44 -0
  358. package/objects/callbackRegisterFunctions.ts +187 -0
  359. package/objects/cardDescriptions.ts +105 -0
  360. package/objects/cardNames.ts +105 -0
  361. package/objects/cardTypes.ts +104 -0
  362. package/objects/challengeNames.ts +52 -0
  363. package/objects/characterNames.ts +48 -0
  364. package/objects/coinSubTypeToValue.ts +14 -0
  365. package/objects/colors.ts +16 -0
  366. package/objects/directionNames.ts +11 -0
  367. package/objects/directionToDegrees.ts +11 -0
  368. package/objects/directionToVector.ts +12 -0
  369. package/objects/doorSlotFlagToDoorSlot.ts +16 -0
  370. package/objects/doorSlotToDirection.ts +14 -0
  371. package/objects/isaacAPIClassTypeToBrand.ts +11 -0
  372. package/objects/isaacAPIClassTypeToCopyFunction.ts +18 -0
  373. package/objects/languageNames.ts +13 -0
  374. package/objects/oppositeDoorSlots.ts +15 -0
  375. package/objects/pillEffectClasses.ts +63 -0
  376. package/objects/pillEffectNames.ts +57 -0
  377. package/objects/pillEffectTypes.ts +62 -0
  378. package/objects/roomShapeBounds.ts +71 -0
  379. package/objects/roomShapeLayoutSizes.ts +45 -0
  380. package/objects/roomShapeToBottomRightPosition.ts +25 -0
  381. package/objects/roomShapeToDoorSlots.ts +83 -0
  382. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +127 -0
  383. package/objects/roomShapeToGridWidth.ts +21 -0
  384. package/objects/roomShapeToTopLeftPosition.ts +26 -0
  385. package/objects/roomShapeVolumes.ts +38 -0
  386. package/objects/roomTypeNames.ts +36 -0
  387. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +14 -0
  388. package/objects/stageTypeToLetter.ts +15 -0
  389. package/objects/transformationNames.d.ts +0 -1
  390. package/objects/transformationNames.lua +0 -1
  391. package/objects/transformationNames.ts +18 -0
  392. package/package.json +2 -2
  393. package/patchErrorFunctions.ts +92 -0
  394. package/sets/LRoomShapesSet.ts +8 -0
  395. package/sets/bossSets.ts +470 -0
  396. package/sets/charactersThatStartWithAnActiveItemSet.ts +16 -0
  397. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +7 -0
  398. package/sets/charactersWithFreeDevilDealsSet.ts +4 -0
  399. package/sets/charactersWithNoRedHeartsSet.ts +17 -0
  400. package/sets/charactersWithNoSoulHeartsSet.ts +14 -0
  401. package/sets/chestPickupVariantsSet.ts +16 -0
  402. package/sets/familiarsThatShootPlayerTearsSet.ts +13 -0
  403. package/sets/lostStyleCharactersSet.ts +13 -0
  404. package/sets/mineShaftRoomSubTypesSet.ts +10 -0
  405. package/sets/redHeartSubTypesSet.ts +7 -0
  406. package/sets/sinEntityTypesSet.ts +11 -0
  407. package/sets/singleUseActiveCollectibleTypesSet.ts +13 -0
  408. package/sets/storyBossesSet.ts +17 -0
  409. package/types/AnyEntity.ts +12 -0
  410. package/types/AwaitingTextInput.d.ts +2 -0
  411. package/types/CollectibleIndex.d.ts +1 -1
  412. package/types/CollectibleIndex.ts +16 -0
  413. package/types/PickingUpItem.d.ts +3 -3
  414. package/types/PickingUpItem.ts +89 -0
  415. package/types/PlayerIndex.d.ts +1 -1
  416. package/types/PlayerIndex.ts +13 -0
  417. package/types/private/IsaacAPIClass.d.ts +1 -1
  418. package/types/private/IsaacAPIClass.ts +3 -0
  419. package/types/private/SerializedIsaacAPIClass.d.ts +1 -1
  420. package/types/private/SerializedIsaacAPIClass.ts +3 -0
  421. package/types/private/TSTLClass.d.ts +1 -1
  422. package/types/private/TSTLClass.ts +3 -0
  423. package/upgradeMod.d.ts +2 -2
  424. package/upgradeMod.lua +2 -2
  425. package/upgradeMod.ts +55 -0
@@ -0,0 +1,37 @@
1
+ export type PostPressurePlateRenderRegisterParameters = [
2
+ callback: (pressurePlate: GridEntityPressurePlate) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostPressurePlateRenderRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postPressurePlateRenderHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postPressurePlateRenderRegister(
15
+ ...args: PostPressurePlateRenderRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postPressurePlateRenderFire(
22
+ pressurePlate: GridEntityPressurePlate,
23
+ ): void {
24
+ const gridEntityVariant = pressurePlate.GetVariant();
25
+
26
+ for (const [callback, callbackGridEntityVariant] of subscriptions) {
27
+ // Handle the optional 2nd callback argument.
28
+ if (
29
+ callbackGridEntityVariant !== undefined &&
30
+ callbackGridEntityVariant !== gridEntityVariant
31
+ ) {
32
+ continue;
33
+ }
34
+
35
+ callback(pressurePlate);
36
+ }
37
+ }
@@ -0,0 +1,37 @@
1
+ export type PostPressurePlateUpdateRegisterParameters = [
2
+ callback: (pressurePlate: GridEntityPressurePlate) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostPressurePlateUpdateRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postPressurePlateUpdateHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postPressurePlateUpdateRegister(
15
+ ...args: PostPressurePlateUpdateRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postPressurePlateUpdateFire(
22
+ pressurePlate: GridEntityPressurePlate,
23
+ ): void {
24
+ const gridEntityVariant = pressurePlate.GetVariant();
25
+
26
+ for (const [callback, callbackGridEntityVariant] of subscriptions) {
27
+ // Handle the optional 2nd callback argument.
28
+ if (
29
+ callbackGridEntityVariant !== undefined &&
30
+ callbackGridEntityVariant !== gridEntityVariant
31
+ ) {
32
+ continue;
33
+ }
34
+
35
+ callback(pressurePlate);
36
+ }
37
+ }
@@ -0,0 +1,35 @@
1
+ import { ProjectileVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostProjectileInitLateRegisterParameters = [
4
+ callback: (projectile: EntityProjectile) => void,
5
+ projectileVariant?: ProjectileVariant,
6
+ ];
7
+
8
+ const subscriptions: PostProjectileInitLateRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postProjectileInitLateHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postProjectileInitLateRegister(
17
+ ...args: PostProjectileInitLateRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postProjectileInitLateFire(projectile: EntityProjectile): void {
24
+ for (const [callback, projectileVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (
27
+ projectileVariant !== undefined &&
28
+ projectileVariant !== projectile.Variant
29
+ ) {
30
+ continue;
31
+ }
32
+
33
+ callback(projectile);
34
+ }
35
+ }
@@ -0,0 +1,31 @@
1
+ import { PickupVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostPurchaseRegisterParameters = [
4
+ callback: (player: EntityPlayer, pickup: EntityPickup) => void,
5
+ pickupVariant?: PickupVariant,
6
+ pickupSubType?: int,
7
+ ];
8
+
9
+ const subscriptions: PostPurchaseRegisterParameters[] = [];
10
+
11
+ /** @internal */
12
+ export function postPurchaseHasSubscriptions(): boolean {
13
+ return subscriptions.length > 0;
14
+ }
15
+
16
+ /** @internal */
17
+ export function postPurchaseRegister(
18
+ ...args: PostPurchaseRegisterParameters
19
+ ): void {
20
+ subscriptions.push(args);
21
+ }
22
+
23
+ /** @internal */
24
+ export function postPurchaseFire(
25
+ player: EntityPlayer,
26
+ pickup: EntityPickup,
27
+ ): void {
28
+ for (const [callback] of subscriptions) {
29
+ callback(player, pickup);
30
+ }
31
+ }
@@ -0,0 +1,35 @@
1
+ export type PostRockRenderRegisterParameters = [
2
+ callback: (rock: GridEntityRock) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostRockRenderRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postRockRenderHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postRockRenderRegister(
15
+ ...args: PostRockRenderRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postRockRenderFire(rock: GridEntityRock): void {
22
+ const gridEntityVariant = rock.GetVariant();
23
+
24
+ for (const [callback, callbackGridEntityVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (
27
+ callbackGridEntityVariant !== undefined &&
28
+ callbackGridEntityVariant !== gridEntityVariant
29
+ ) {
30
+ continue;
31
+ }
32
+
33
+ callback(rock);
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ export type PostRockUpdateRegisterParameters = [
2
+ callback: (rock: GridEntityRock) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostRockUpdateRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postRockUpdateHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postRockUpdateRegister(
15
+ ...args: PostRockUpdateRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postRockUpdateFire(rock: GridEntityRock): void {
22
+ const gridEntityVariant = rock.GetVariant();
23
+
24
+ for (const [callback, callbackGridEntityVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (
27
+ callbackGridEntityVariant !== undefined &&
28
+ callbackGridEntityVariant !== gridEntityVariant
29
+ ) {
30
+ continue;
31
+ }
32
+
33
+ callback(rock);
34
+ }
35
+ }
@@ -0,0 +1,30 @@
1
+ export type PostRoomClearChangedRegisterParameters = [
2
+ callback: (roomClear: boolean) => void,
3
+ roomClear?: boolean,
4
+ ];
5
+
6
+ const subscriptions: PostRoomClearChangedRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postRoomClearChangedHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postRoomClearChangedRegister(
15
+ ...args: PostRoomClearChangedRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postRoomClearChangedFire(roomClear: boolean): void {
22
+ for (const [callback, callbackRoomClear] of subscriptions) {
23
+ // Handle the optional 2nd callback argument.
24
+ if (callbackRoomClear !== undefined && callbackRoomClear !== roomClear) {
25
+ continue;
26
+ }
27
+
28
+ callback(roomClear);
29
+ }
30
+ }
@@ -0,0 +1,43 @@
1
+ import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostSacrificeRegisterParameters = [
4
+ callback: (player: EntityPlayer, numSacrifices: int) => void,
5
+ playerVariant?: PlayerVariant,
6
+ character?: PlayerType,
7
+ ];
8
+
9
+ const subscriptions: PostSacrificeRegisterParameters[] = [];
10
+
11
+ /** @internal */
12
+ export function postSacrificeHasSubscriptions(): boolean {
13
+ return subscriptions.length > 0;
14
+ }
15
+
16
+ /** @internal */
17
+ export function postSacrificeRegister(
18
+ ...args: PostSacrificeRegisterParameters
19
+ ): void {
20
+ subscriptions.push(args);
21
+ }
22
+
23
+ /** @internal */
24
+ export function postSacrificeFire(
25
+ player: EntityPlayer,
26
+ numSacrifices: int,
27
+ ): void {
28
+ const character = player.GetPlayerType();
29
+
30
+ for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
31
+ // Handle the optional 2nd callback argument.
32
+ if (playerVariant !== undefined && playerVariant !== player.Variant) {
33
+ continue;
34
+ }
35
+
36
+ // Handle the optional 3rd callback argument.
37
+ if (callbackCharacter !== undefined && callbackCharacter !== character) {
38
+ continue;
39
+ }
40
+
41
+ callback(player, numSacrifices);
42
+ }
43
+ }
@@ -0,0 +1,40 @@
1
+ import { SlotVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostSlotAnimationChangedRegisterParameters = [
4
+ callback: (
5
+ slot: EntitySlot,
6
+ previousAnimation: string,
7
+ currentAnimation: string,
8
+ ) => void,
9
+ slotVariant?: SlotVariant,
10
+ ];
11
+
12
+ const subscriptions: PostSlotAnimationChangedRegisterParameters[] = [];
13
+
14
+ /** @internal */
15
+ export function postSlotAnimationChangedHasSubscriptions(): boolean {
16
+ return subscriptions.length > 0;
17
+ }
18
+
19
+ /** @internal */
20
+ export function postSlotAnimationChangedRegister(
21
+ ...args: PostSlotAnimationChangedRegisterParameters
22
+ ): void {
23
+ subscriptions.push(args);
24
+ }
25
+
26
+ /** @internal */
27
+ export function postSlotAnimationChangedFire(
28
+ slot: EntitySlot,
29
+ previousAnimation: string,
30
+ currentAnimation: string,
31
+ ): void {
32
+ for (const [callback, slotVariant] of subscriptions) {
33
+ // Handle the optional 2nd callback argument.
34
+ if (slotVariant !== undefined && slotVariant !== slot.Variant) {
35
+ continue;
36
+ }
37
+
38
+ callback(slot, previousAnimation, currentAnimation);
39
+ }
40
+ }
@@ -0,0 +1,55 @@
1
+ import { SlotVariant } from "isaac-typescript-definitions";
2
+ import { SlotDestructionType } from "../../enums/SlotDestructionType";
3
+
4
+ export type PostSlotDestroyedRegisterParameters = [
5
+ callback: (
6
+ slot: EntitySlot,
7
+ slotDestructionType: SlotDestructionType,
8
+ ) => void,
9
+ slotVariant?: SlotVariant,
10
+ slotDestructionType?: SlotDestructionType,
11
+ ];
12
+
13
+ const subscriptions: PostSlotDestroyedRegisterParameters[] = [];
14
+
15
+ /** @internal */
16
+ export function postSlotDestroyedHasSubscriptions(): boolean {
17
+ return subscriptions.length > 0;
18
+ }
19
+
20
+ /** @internal */
21
+ export function postSlotDestroyedRegister(
22
+ ...args: PostSlotDestroyedRegisterParameters
23
+ ): void {
24
+ subscriptions.push(args);
25
+ }
26
+
27
+ /** @internal */
28
+ export function postSlotDestroyedFire(
29
+ slot: EntitySlot,
30
+ slotDestructionType: SlotDestructionType,
31
+ ): void {
32
+ for (const [
33
+ callback,
34
+ callbackSlotVariant,
35
+ callbackSlotDestructionType,
36
+ ] of subscriptions) {
37
+ // Handle the optional 2nd callback argument.
38
+ if (
39
+ callbackSlotVariant !== undefined &&
40
+ callbackSlotVariant !== slot.Variant
41
+ ) {
42
+ continue;
43
+ }
44
+
45
+ // Handle the optional 3rd callback argument.
46
+ if (
47
+ callbackSlotDestructionType !== undefined &&
48
+ callbackSlotDestructionType !== slotDestructionType
49
+ ) {
50
+ continue;
51
+ }
52
+
53
+ callback(slot, slotDestructionType);
54
+ }
55
+ }
@@ -0,0 +1,32 @@
1
+ import { SlotVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostSlotInitRegisterParameters = [
4
+ callback: (slot: EntitySlot) => void,
5
+ slotVariant?: SlotVariant,
6
+ ];
7
+
8
+ const subscriptions: PostSlotInitRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postSlotInitHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postSlotInitRegister(
17
+ ...args: PostSlotInitRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postSlotInitFire(slot: EntitySlot): void {
24
+ for (const [callback, slotVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (slotVariant !== undefined && slotVariant !== slot.Variant) {
27
+ continue;
28
+ }
29
+
30
+ callback(slot);
31
+ }
32
+ }
@@ -0,0 +1,32 @@
1
+ import { SlotVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostSlotRenderRegisterParameters = [
4
+ callback: (slot: EntitySlot) => void,
5
+ slotVariant?: SlotVariant,
6
+ ];
7
+
8
+ const subscriptions: PostSlotRenderRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postSlotRenderHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postSlotRenderRegister(
17
+ ...args: PostSlotRenderRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postSlotRenderFire(slot: EntitySlot): void {
24
+ for (const [callback, slotVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (slotVariant !== undefined && slotVariant !== slot.Variant) {
27
+ continue;
28
+ }
29
+
30
+ callback(slot);
31
+ }
32
+ }
@@ -0,0 +1,32 @@
1
+ import { SlotVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostSlotUpdateRegisterParameters = [
4
+ callback: (slot: EntitySlot) => void,
5
+ slotVariant?: SlotVariant,
6
+ ];
7
+
8
+ const subscriptions: PostSlotUpdateRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postSlotUpdateHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postSlotUpdateRegister(
17
+ ...args: PostSlotUpdateRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postSlotUpdateFire(slot: EntitySlot): void {
24
+ for (const [callback, slotVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (slotVariant !== undefined && slotVariant !== slot.Variant) {
27
+ continue;
28
+ }
29
+
30
+ callback(slot);
31
+ }
32
+ }
@@ -0,0 +1,35 @@
1
+ export type PostSpikesRenderRegisterParameters = [
2
+ callback: (spikes: GridEntitySpikes) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostSpikesRenderRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postSpikesRenderHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postSpikesRenderRegister(
15
+ ...args: PostSpikesRenderRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postSpikesRenderFire(spikes: GridEntitySpikes): void {
22
+ const gridEntityVariant = spikes.GetVariant();
23
+
24
+ for (const [callback, callbackGridEntityVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (
27
+ callbackGridEntityVariant !== undefined &&
28
+ callbackGridEntityVariant !== gridEntityVariant
29
+ ) {
30
+ continue;
31
+ }
32
+
33
+ callback(spikes);
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ export type PostSpikesUpdateRegisterParameters = [
2
+ callback: (spikes: GridEntitySpikes) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostSpikesUpdateRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postSpikesUpdateHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postSpikesUpdateRegister(
15
+ ...args: PostSpikesUpdateRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postSpikesUpdateFire(spikes: GridEntitySpikes): void {
22
+ const gridEntityVariant = spikes.GetVariant();
23
+
24
+ for (const [callback, callbackGridEntityVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (
27
+ callbackGridEntityVariant !== undefined &&
28
+ callbackGridEntityVariant !== gridEntityVariant
29
+ ) {
30
+ continue;
31
+ }
32
+
33
+ callback(spikes);
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ export type PostTNTRenderRegisterParameters = [
2
+ callback: (tnt: GridEntityTNT) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostTNTRenderRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postTNTRenderHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postTNTRenderRegister(
15
+ ...args: PostTNTRenderRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postTNTRenderFire(tnt: GridEntityTNT): void {
22
+ const gridEntityVariant = tnt.GetVariant();
23
+
24
+ for (const [callback, callbackGridEntityVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (
27
+ callbackGridEntityVariant !== undefined &&
28
+ callbackGridEntityVariant !== gridEntityVariant
29
+ ) {
30
+ continue;
31
+ }
32
+
33
+ callback(tnt);
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ export type PostTNTUpdateRegisterParameters = [
2
+ callback: (tnt: GridEntityTNT) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostTNTUpdateRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postTNTUpdateHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postTNTUpdateRegister(
15
+ ...args: PostTNTUpdateRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postTNTUpdateFire(tnt: GridEntityTNT): void {
22
+ const gridEntityVariant = tnt.GetVariant();
23
+
24
+ for (const [callback, callbackGridEntityVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (
27
+ callbackGridEntityVariant !== undefined &&
28
+ callbackGridEntityVariant !== gridEntityVariant
29
+ ) {
30
+ continue;
31
+ }
32
+
33
+ callback(tnt);
34
+ }
35
+ }
@@ -0,0 +1,32 @@
1
+ import { TearVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostTearInitLateRegisterParameters = [
4
+ callback: (tear: EntityTear) => void,
5
+ tearVariant?: TearVariant,
6
+ ];
7
+
8
+ const subscriptions: PostTearInitLateRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postTearInitLateHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postTearInitLateRegister(
17
+ ...args: PostTearInitLateRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postTearInitLateFire(tear: EntityTear): void {
24
+ for (const [callback, tearVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (tearVariant !== undefined && tearVariant !== tear.Variant) {
27
+ continue;
28
+ }
29
+
30
+ callback(tear);
31
+ }
32
+ }
@@ -0,0 +1,32 @@
1
+ import { TearVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostTearInitVeryLateRegisterParameters = [
4
+ callback: (tear: EntityTear) => void,
5
+ tearVariant?: TearVariant,
6
+ ];
7
+
8
+ const subscriptions: PostTearInitVeryLateRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postTearInitVeryLateHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postTearInitVeryLateRegister(
17
+ ...args: PostTearInitVeryLateRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postTearInitVeryLateFire(tear: EntityTear): void {
24
+ for (const [callback, tearVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (tearVariant !== undefined && tearVariant !== tear.Variant) {
27
+ continue;
28
+ }
29
+
30
+ callback(tear);
31
+ }
32
+ }