isaacscript-common 3.16.1 → 4.0.1-dev.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 (417) 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.ts +183 -0
  11. package/callbacks/postCustomDoorEnter.lua +0 -7
  12. package/callbacks/postCustomDoorEnter.ts +292 -0
  13. package/callbacks/postDiceRoomActivated.ts +60 -0
  14. package/callbacks/postDoorRender.ts +26 -0
  15. package/callbacks/postDoorUpdate.ts +26 -0
  16. package/callbacks/postEffectInitLate.ts +36 -0
  17. package/callbacks/postEffectStateChanged.ts +43 -0
  18. package/callbacks/postEsauJr.ts +107 -0
  19. package/callbacks/postFamiliarInitLate.ts +36 -0
  20. package/callbacks/postFamiliarStateChanged.ts +43 -0
  21. package/callbacks/postFlip.ts +88 -0
  22. package/callbacks/postGreedModeWave.ts +41 -0
  23. package/callbacks/postGridEntity.ts +164 -0
  24. package/callbacks/postGridEntityCollision.ts +69 -0
  25. package/callbacks/postGridEntityRender.ts +26 -0
  26. package/callbacks/postHolyMantleRemoved.ts +55 -0
  27. package/callbacks/postItemDischarged.ts +149 -0
  28. package/callbacks/postKnifeInitLate.ts +36 -0
  29. package/callbacks/postLaserInitLate.ts +36 -0
  30. package/callbacks/postNPCInitLate.ts +36 -0
  31. package/callbacks/postNPCStateChanged.ts +42 -0
  32. package/callbacks/postNewRoomEarly.ts +90 -0
  33. package/callbacks/postPickupCollect.ts +48 -0
  34. package/callbacks/postPickupInitFirst.ts +70 -0
  35. package/callbacks/postPickupInitLate.ts +36 -0
  36. package/callbacks/postPickupStateChanged.ts +43 -0
  37. package/callbacks/postPitRender.ts +26 -0
  38. package/callbacks/postPitUpdate.ts +26 -0
  39. package/callbacks/postPlayerChangeHealth.ts +62 -0
  40. package/callbacks/postPlayerChangeType.ts +56 -0
  41. package/callbacks/postPlayerCollectible.ts +113 -0
  42. package/callbacks/postPlayerFatalDamage.ts +141 -0
  43. package/callbacks/postPlayerInitLate.ts +37 -0
  44. package/callbacks/postPlayerReordered.ts +142 -0
  45. package/callbacks/postPoopRender.ts +26 -0
  46. package/callbacks/postPoopUpdate.ts +26 -0
  47. package/callbacks/postPressurePlateRender.ts +26 -0
  48. package/callbacks/postPressurePlateUpdate.ts +26 -0
  49. package/callbacks/postProjectileInitLate.ts +36 -0
  50. package/callbacks/postPurchase.ts +64 -0
  51. package/callbacks/postRockRender.ts +26 -0
  52. package/callbacks/postRockUpdate.ts +26 -0
  53. package/callbacks/postRoomClearChanged.ts +57 -0
  54. package/callbacks/postSacrifice.ts +62 -0
  55. package/callbacks/postSlotDestroyed.ts +92 -0
  56. package/callbacks/postSlotInitUpdate.ts +68 -0
  57. package/callbacks/postSlotRender.ts +69 -0
  58. package/callbacks/postSpikesRender.ts +26 -0
  59. package/callbacks/postSpikesUpdate.ts +26 -0
  60. package/callbacks/postTNTRender.ts +26 -0
  61. package/callbacks/postTNTUpdate.ts +26 -0
  62. package/callbacks/postTearInitLate.ts +36 -0
  63. package/callbacks/postTearInitVeryLate.ts +41 -0
  64. package/callbacks/postTransformation.ts +59 -0
  65. package/callbacks/postTrinketBreak.ts +110 -0
  66. package/callbacks/preBerserkDeath.ts +49 -0
  67. package/callbacks/preNewLevel.ts +55 -0
  68. package/callbacks/reorderedCallbacks.ts +166 -0
  69. package/callbacks/subscriptions/postAmbushFinished.ts +32 -0
  70. package/callbacks/subscriptions/postAmbushStarted.ts +32 -0
  71. package/callbacks/subscriptions/postBombInitLate.ts +32 -0
  72. package/callbacks/subscriptions/postBoneExploded.ts +32 -0
  73. package/callbacks/subscriptions/postBoneSwing.ts +24 -0
  74. package/callbacks/subscriptions/postCollectibleInitFirst.ts +37 -0
  75. package/callbacks/subscriptions/postCursedTeleport.ts +24 -0
  76. package/callbacks/subscriptions/postCustomDoorEnter.ts +45 -0
  77. package/callbacks/subscriptions/postCustomRevive.ts +36 -0
  78. package/callbacks/subscriptions/postDiceRoomActivated.ts +38 -0
  79. package/callbacks/subscriptions/postDoorRender.ts +35 -0
  80. package/callbacks/subscriptions/postDoorUpdate.ts +35 -0
  81. package/callbacks/subscriptions/postEffectInitLate.ts +32 -0
  82. package/callbacks/subscriptions/postEffectStateChanged.ts +40 -0
  83. package/callbacks/subscriptions/postEsauJr.ts +24 -0
  84. package/callbacks/subscriptions/postFamiliarInitLate.ts +32 -0
  85. package/callbacks/subscriptions/postFamiliarStateChanged.ts +40 -0
  86. package/callbacks/subscriptions/postFirstEsauJr.ts +24 -0
  87. package/callbacks/subscriptions/postFirstFlip.ts +24 -0
  88. package/callbacks/subscriptions/postFlip.ts +22 -0
  89. package/callbacks/subscriptions/postGameStartedReordered.ts +24 -0
  90. package/callbacks/subscriptions/postGreedModeWave.ts +24 -0
  91. package/callbacks/subscriptions/postGridEntityBroken.ts +51 -0
  92. package/callbacks/subscriptions/postGridEntityCollision.ts +54 -0
  93. package/callbacks/subscriptions/postGridEntityInit.ts +51 -0
  94. package/callbacks/subscriptions/postGridEntityRemove.ts +52 -0
  95. package/callbacks/subscriptions/postGridEntityRender.ts +51 -0
  96. package/callbacks/subscriptions/postGridEntityStateChanged.ts +55 -0
  97. package/callbacks/subscriptions/postGridEntityUpdate.ts +51 -0
  98. package/callbacks/subscriptions/postHolyMantleRemoved.ts +48 -0
  99. package/callbacks/subscriptions/postItemDischarged.ts +43 -0
  100. package/callbacks/subscriptions/postItemPickup.ts +64 -0
  101. package/callbacks/subscriptions/postKnifeInitLate.ts +32 -0
  102. package/callbacks/subscriptions/postLaserInitLate.ts +32 -0
  103. package/callbacks/subscriptions/postNPCInitLate.ts +32 -0
  104. package/callbacks/subscriptions/postNPCStateChanged.ts +42 -0
  105. package/callbacks/subscriptions/postNewLevelReordered.ts +22 -0
  106. package/callbacks/subscriptions/postNewRoomEarly.ts +22 -0
  107. package/callbacks/subscriptions/postNewRoomReordered.ts +22 -0
  108. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +40 -0
  109. package/callbacks/subscriptions/postPickupCollect.ts +35 -0
  110. package/callbacks/subscriptions/postPickupInitFirst.ts +32 -0
  111. package/callbacks/subscriptions/postPickupInitLate.ts +32 -0
  112. package/callbacks/subscriptions/postPickupStateChanged.ts +40 -0
  113. package/callbacks/subscriptions/postPitRender.ts +35 -0
  114. package/callbacks/subscriptions/postPitUpdate.ts +35 -0
  115. package/callbacks/subscriptions/postPlayerChangeHealth.ts +49 -0
  116. package/callbacks/subscriptions/postPlayerChangeType.ts +40 -0
  117. package/callbacks/subscriptions/postPlayerCollectibleAdded.d.ts +2 -3
  118. package/callbacks/subscriptions/postPlayerCollectibleAdded.lua +2 -7
  119. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +38 -0
  120. package/callbacks/subscriptions/postPlayerCollectibleRemoved.d.ts +2 -3
  121. package/callbacks/subscriptions/postPlayerCollectibleRemoved.lua +2 -7
  122. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +38 -0
  123. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +1 -1
  124. package/callbacks/subscriptions/postPlayerFatalDamage.ts +68 -0
  125. package/callbacks/subscriptions/postPlayerInitLate.ts +40 -0
  126. package/callbacks/subscriptions/postPlayerInitReordered.ts +40 -0
  127. package/callbacks/subscriptions/postPlayerRenderReordered.ts +40 -0
  128. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +40 -0
  129. package/callbacks/subscriptions/postPoopRender.ts +35 -0
  130. package/callbacks/subscriptions/postPoopUpdate.ts +35 -0
  131. package/callbacks/subscriptions/postPressurePlateRender.ts +37 -0
  132. package/callbacks/subscriptions/postPressurePlateUpdate.ts +37 -0
  133. package/callbacks/subscriptions/postProjectileInitLate.ts +35 -0
  134. package/callbacks/subscriptions/postPurchase.ts +31 -0
  135. package/callbacks/subscriptions/postRockRender.ts +35 -0
  136. package/callbacks/subscriptions/postRockUpdate.ts +35 -0
  137. package/callbacks/subscriptions/postRoomClearChanged.ts +30 -0
  138. package/callbacks/subscriptions/postSacrifice.ts +43 -0
  139. package/callbacks/subscriptions/postSlotAnimationChanged.ts +40 -0
  140. package/callbacks/subscriptions/postSlotDestroyed.ts +55 -0
  141. package/callbacks/subscriptions/postSlotInit.ts +32 -0
  142. package/callbacks/subscriptions/postSlotRender.ts +32 -0
  143. package/callbacks/subscriptions/postSlotUpdate.ts +32 -0
  144. package/callbacks/subscriptions/postSpikesRender.ts +35 -0
  145. package/callbacks/subscriptions/postSpikesUpdate.ts +35 -0
  146. package/callbacks/subscriptions/postTNTRender.ts +35 -0
  147. package/callbacks/subscriptions/postTNTUpdate.ts +35 -0
  148. package/callbacks/subscriptions/postTearInitLate.ts +32 -0
  149. package/callbacks/subscriptions/postTearInitVeryLate.ts +32 -0
  150. package/callbacks/subscriptions/postTransformation.ts +40 -0
  151. package/callbacks/subscriptions/postTrinketBreak.ts +38 -0
  152. package/callbacks/subscriptions/preBerserkDeath.d.ts +1 -1
  153. package/callbacks/subscriptions/preBerserkDeath.ts +42 -0
  154. package/callbacks/subscriptions/preCustomRevive.d.ts +1 -1
  155. package/callbacks/subscriptions/preCustomRevive.ts +46 -0
  156. package/callbacks/subscriptions/preItemPickup.ts +64 -0
  157. package/callbacks/subscriptions/preNewLevel.ts +24 -0
  158. package/classes/DefaultMap.ts +174 -0
  159. package/classes/ModUpgraded.d.ts +3 -3
  160. package/classes/ModUpgraded.lua +3 -6
  161. package/classes/ModUpgraded.ts +77 -0
  162. package/constants.ts +162 -0
  163. package/constantsFirstLast.ts +217 -0
  164. package/enums/AmbushType.ts +4 -0
  165. package/enums/HealthType.ts +16 -0
  166. package/enums/ModCallbackCustom.d.ts +20 -18
  167. package/enums/ModCallbackCustom.ts +1278 -0
  168. package/enums/PocketItemType.ts +8 -0
  169. package/enums/SerializationType.ts +5 -0
  170. package/enums/SlotDestructionType.ts +4 -0
  171. package/enums/private/CopyableIsaacAPIClassType.ts +7 -0
  172. package/enums/private/SaveDataKey.ts +14 -0
  173. package/enums/private/SerializationBrand.ts +42 -0
  174. package/features/characterHealthConversion.lua +2 -9
  175. package/features/characterHealthConversion.ts +111 -0
  176. package/features/characterStats.ts +61 -0
  177. package/features/debugDisplay/debugDisplay.ts +221 -0
  178. package/features/debugDisplay/exports.ts +368 -0
  179. package/features/debugDisplay/v.ts +65 -0
  180. package/features/deployJSONRoom.ts +743 -0
  181. package/features/disableInputs.ts +193 -0
  182. package/features/disableSound.ts +77 -0
  183. package/features/extraConsoleCommands/commandsDisplay.ts +290 -0
  184. package/features/extraConsoleCommands/commandsSubroutines.lua +1 -1
  185. package/features/extraConsoleCommands/commandsSubroutines.ts +139 -0
  186. package/features/extraConsoleCommands/init.ts +334 -0
  187. package/features/extraConsoleCommands/listCommands.ts +1299 -0
  188. package/features/extraConsoleCommands/v.ts +14 -0
  189. package/features/fadeInRemover.ts +60 -0
  190. package/features/fastReset.ts +75 -0
  191. package/features/forgottenSwitch.ts +50 -0
  192. package/features/getCollectibleItemPoolType.ts +66 -0
  193. package/features/persistentEntities.ts +183 -0
  194. package/features/playerInventory.ts +133 -0
  195. package/features/ponyDetection.ts +74 -0
  196. package/features/preventCollectibleRotation.ts +115 -0
  197. package/features/runInNFrames.ts +148 -0
  198. package/features/saveDataManager/constants.ts +4 -0
  199. package/features/saveDataManager/exports.ts +229 -0
  200. package/features/saveDataManager/load.ts +99 -0
  201. package/features/saveDataManager/main.ts +195 -0
  202. package/features/saveDataManager/maps.ts +13 -0
  203. package/features/saveDataManager/merge.ts +194 -0
  204. package/features/saveDataManager/save.ts +74 -0
  205. package/features/saveDataManager/serializationBrand.ts +16 -0
  206. package/features/sirenHelpers.ts +129 -0
  207. package/features/taintedLazarusPlayers.ts +113 -0
  208. package/featuresInitialized.ts +20 -0
  209. package/functions/ambush.ts +47 -0
  210. package/functions/array.ts +410 -0
  211. package/functions/benchmark.ts +36 -0
  212. package/functions/bitwise.ts +24 -0
  213. package/functions/bombs.ts +12 -0
  214. package/functions/boss.ts +227 -0
  215. package/functions/cacheFlag.ts +12 -0
  216. package/functions/cards.lua +1 -1
  217. package/functions/cards.ts +271 -0
  218. package/functions/challenges.ts +13 -0
  219. package/functions/character.ts +126 -0
  220. package/functions/charge.ts +237 -0
  221. package/functions/chargeBar.ts +67 -0
  222. package/functions/collectibleCacheFlag.ts +90 -0
  223. package/functions/collectibleSet.ts +56 -0
  224. package/functions/collectibleTag.ts +89 -0
  225. package/functions/collectibles.ts +659 -0
  226. package/functions/color.d.ts +1 -1
  227. package/functions/color.lua +0 -7
  228. package/functions/color.ts +128 -0
  229. package/functions/debug.lua +2 -2
  230. package/functions/debug.ts +68 -0
  231. package/functions/deepCopy.lua +46 -51
  232. package/functions/deepCopy.ts +535 -0
  233. package/functions/deepCopyTests.ts +386 -0
  234. package/functions/direction.ts +49 -0
  235. package/functions/doors.lua +1 -2
  236. package/functions/doors.ts +347 -0
  237. package/functions/easing.ts +182 -0
  238. package/functions/eden.ts +47 -0
  239. package/functions/effects.ts +20 -0
  240. package/functions/entity.ts +439 -0
  241. package/functions/entitySpecific.ts +889 -0
  242. package/functions/entityTypes.ts +6 -0
  243. package/functions/enums.ts +146 -0
  244. package/functions/familiars.ts +106 -0
  245. package/functions/flag.ts +165 -0
  246. package/functions/flying.ts +117 -0
  247. package/functions/globals.d.ts +3 -3
  248. package/functions/globals.lua +8 -2
  249. package/functions/globals.ts +242 -0
  250. package/functions/gridEntity.ts +511 -0
  251. package/functions/gridEntitySpecific.ts +112 -0
  252. package/functions/input.ts +139 -0
  253. package/functions/isaacAPIClass.ts +67 -0
  254. package/functions/jsonHelpers.ts +45 -0
  255. package/functions/jsonRoom.ts +100 -0
  256. package/functions/kColor.d.ts +1 -1
  257. package/functions/kColor.lua +0 -7
  258. package/functions/kColor.ts +129 -0
  259. package/functions/language.ts +13 -0
  260. package/functions/level.ts +31 -0
  261. package/functions/log.ts +720 -0
  262. package/functions/map.ts +56 -0
  263. package/functions/math.ts +149 -0
  264. package/functions/mergeTests.ts +288 -0
  265. package/functions/npc.ts +148 -0
  266. package/functions/pickupVariants.ts +60 -0
  267. package/functions/pickups.ts +499 -0
  268. package/functions/pills.lua +1 -1
  269. package/functions/pills.ts +205 -0
  270. package/functions/player.lua +0 -6
  271. package/functions/player.ts +1060 -0
  272. package/functions/playerDataStructures.ts +150 -0
  273. package/functions/playerHealth.d.ts +2 -0
  274. package/functions/playerHealth.lua +73 -39
  275. package/functions/playerHealth.ts +382 -0
  276. package/functions/playerIndex.ts +195 -0
  277. package/functions/pocketItems.ts +149 -0
  278. package/functions/positionVelocity.ts +188 -0
  279. package/functions/random.ts +77 -0
  280. package/functions/revive.ts +201 -0
  281. package/functions/rng.d.ts +1 -1
  282. package/functions/rng.lua +0 -7
  283. package/functions/rng.ts +172 -0
  284. package/functions/roomData.ts +199 -0
  285. package/functions/roomGrid.ts +109 -0
  286. package/functions/roomShape.ts +80 -0
  287. package/functions/rooms.lua +1 -3
  288. package/functions/rooms.ts +648 -0
  289. package/functions/run.ts +36 -0
  290. package/functions/saveFile.ts +128 -0
  291. package/functions/seeds.ts +19 -0
  292. package/functions/serialization.lua +0 -3
  293. package/functions/serialization.ts +91 -0
  294. package/functions/set.ts +95 -0
  295. package/functions/sound.ts +9 -0
  296. package/functions/spawnCollectible.ts +104 -0
  297. package/functions/sprite.ts +107 -0
  298. package/functions/stage.ts +125 -0
  299. package/functions/string.ts +47 -0
  300. package/functions/table.ts +189 -0
  301. package/functions/tears.ts +32 -0
  302. package/functions/transformations.lua +1 -3
  303. package/functions/transformations.ts +131 -0
  304. package/functions/trinketCacheFlag.ts +60 -0
  305. package/functions/trinketGive.ts +157 -0
  306. package/functions/trinkets.ts +215 -0
  307. package/functions/tstlClass.ts +157 -0
  308. package/functions/types.ts +36 -0
  309. package/functions/ui.ts +138 -0
  310. package/functions/utils.d.ts +0 -37
  311. package/functions/utils.lua +0 -35
  312. package/functions/utils.ts +189 -0
  313. package/functions/vector.d.ts +1 -1
  314. package/functions/vector.lua +0 -7
  315. package/functions/vector.ts +126 -0
  316. package/index.ts +172 -0
  317. package/initCustomCallbacks.ts +132 -0
  318. package/initFeatures.ts +39 -0
  319. package/interfaces/AddCallbackParameterCustom.ts +188 -0
  320. package/interfaces/ChargeBarSprites.ts +12 -0
  321. package/interfaces/JSONDoor.d.ts +4 -4
  322. package/interfaces/JSONDoor.ts +13 -0
  323. package/interfaces/JSONEntity.d.ts +5 -5
  324. package/interfaces/JSONEntity.ts +16 -0
  325. package/interfaces/JSONRoom.d.ts +9 -9
  326. package/interfaces/JSONRoom.ts +36 -0
  327. package/interfaces/JSONRooms.ts +12 -0
  328. package/interfaces/JSONSpawn.d.ts +3 -3
  329. package/interfaces/JSONSpawn.ts +14 -0
  330. package/interfaces/PlayerHealth.ts +16 -0
  331. package/interfaces/PocketItemDescription.ts +9 -0
  332. package/interfaces/SaveData.ts +29 -0
  333. package/interfaces/TrinketSituation.ts +9 -0
  334. package/interfaces/private/TSTLClassMetatable.ts +8 -0
  335. package/maps/PHDPillConversions.ts +21 -0
  336. package/maps/cardMap.ts +209 -0
  337. package/maps/characterMap.ts +87 -0
  338. package/maps/collectibleDescriptionMap.ts +732 -0
  339. package/maps/collectibleNameMap.ts +731 -0
  340. package/maps/defaultPlayerStatMap.ts +17 -0
  341. package/maps/falsePHDPillConversions.ts +35 -0
  342. package/maps/gridEntityTypeToBrokenStateMap.ts +50 -0
  343. package/maps/gridEntityXMLMap.ts +176 -0
  344. package/maps/pillEffectMap.ts +88 -0
  345. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +18 -0
  346. package/maps/roomTypeMap.ts +40 -0
  347. package/maps/trinketDescriptionMap.ts +200 -0
  348. package/maps/trinketNameMap.ts +198 -0
  349. package/objects/LRoomShapeToRectangles.ts +44 -0
  350. package/objects/callbackRegisterFunctions.ts +187 -0
  351. package/objects/cardDescriptions.ts +105 -0
  352. package/objects/cardNames.ts +105 -0
  353. package/objects/cardTypes.ts +104 -0
  354. package/objects/challengeNames.ts +52 -0
  355. package/objects/characterNames.ts +48 -0
  356. package/objects/coinSubTypeToValue.ts +14 -0
  357. package/objects/colors.ts +16 -0
  358. package/objects/directionNames.ts +11 -0
  359. package/objects/directionToDegrees.ts +11 -0
  360. package/objects/directionToVector.ts +12 -0
  361. package/objects/doorSlotFlagToDoorSlot.ts +16 -0
  362. package/objects/doorSlotToDirection.ts +14 -0
  363. package/objects/isaacAPIClassTypeToBrand.ts +11 -0
  364. package/objects/isaacAPIClassTypeToCopyFunction.ts +18 -0
  365. package/objects/languageNames.ts +13 -0
  366. package/objects/oppositeDoorSlots.ts +15 -0
  367. package/objects/pillEffectClasses.ts +63 -0
  368. package/objects/pillEffectNames.ts +57 -0
  369. package/objects/pillEffectTypes.ts +62 -0
  370. package/objects/roomShapeBounds.ts +71 -0
  371. package/objects/roomShapeLayoutSizes.ts +45 -0
  372. package/objects/roomShapeToBottomRightPosition.ts +25 -0
  373. package/objects/roomShapeToDoorSlots.ts +83 -0
  374. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +127 -0
  375. package/objects/roomShapeToGridWidth.ts +21 -0
  376. package/objects/roomShapeToTopLeftPosition.ts +26 -0
  377. package/objects/roomShapeVolumes.ts +38 -0
  378. package/objects/roomTypeNames.ts +36 -0
  379. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +14 -0
  380. package/objects/stageTypeToLetter.ts +15 -0
  381. package/objects/transformationNames.d.ts +0 -1
  382. package/objects/transformationNames.lua +0 -1
  383. package/objects/transformationNames.ts +18 -0
  384. package/package.json +2 -2
  385. package/patchErrorFunctions.ts +92 -0
  386. package/sets/LRoomShapesSet.ts +8 -0
  387. package/sets/bossSets.ts +470 -0
  388. package/sets/charactersThatStartWithAnActiveItemSet.ts +16 -0
  389. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +7 -0
  390. package/sets/charactersWithFreeDevilDealsSet.ts +4 -0
  391. package/sets/charactersWithNoRedHeartsSet.ts +17 -0
  392. package/sets/charactersWithNoSoulHeartsSet.ts +14 -0
  393. package/sets/chestPickupVariantsSet.ts +16 -0
  394. package/sets/familiarsThatShootPlayerTearsSet.ts +13 -0
  395. package/sets/lostStyleCharactersSet.ts +13 -0
  396. package/sets/mineShaftRoomSubTypesSet.ts +10 -0
  397. package/sets/redHeartSubTypesSet.ts +7 -0
  398. package/sets/sinEntityTypesSet.ts +11 -0
  399. package/sets/singleUseActiveCollectibleTypesSet.ts +13 -0
  400. package/sets/storyBossesSet.ts +17 -0
  401. package/types/AnyEntity.ts +12 -0
  402. package/types/AwaitingTextInput.d.ts +2 -0
  403. package/types/CollectibleIndex.d.ts +1 -1
  404. package/types/CollectibleIndex.ts +16 -0
  405. package/types/PickingUpItem.d.ts +3 -3
  406. package/types/PickingUpItem.ts +89 -0
  407. package/types/PlayerIndex.d.ts +1 -1
  408. package/types/PlayerIndex.ts +13 -0
  409. package/types/private/IsaacAPIClass.d.ts +1 -1
  410. package/types/private/IsaacAPIClass.ts +3 -0
  411. package/types/private/SerializedIsaacAPIClass.d.ts +1 -1
  412. package/types/private/SerializedIsaacAPIClass.ts +3 -0
  413. package/types/private/TSTLClass.d.ts +1 -1
  414. package/types/private/TSTLClass.ts +3 -0
  415. package/upgradeMod.d.ts +2 -2
  416. package/upgradeMod.lua +2 -2
  417. package/upgradeMod.ts +55 -0
@@ -0,0 +1,32 @@
1
+ import { PickupVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostPickupInitLateRegisterParameters = [
4
+ callback: (pickup: EntityPickup) => void,
5
+ pickupVariant?: PickupVariant,
6
+ ];
7
+
8
+ const subscriptions: PostPickupInitLateRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postPickupInitLateHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postPickupInitLateRegister(
17
+ ...args: PostPickupInitLateRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postPickupInitLateFire(pickup: EntityPickup): void {
24
+ for (const [callback, pickupVariant] of subscriptions) {
25
+ // Handle the optional 2nd callback argument.
26
+ if (pickupVariant !== undefined && pickupVariant !== pickup.Variant) {
27
+ continue;
28
+ }
29
+
30
+ callback(pickup);
31
+ }
32
+ }
@@ -0,0 +1,40 @@
1
+ import { PickupVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostPickupStateChangedRegisterParameters = [
4
+ callback: (
5
+ pickup: EntityPickup,
6
+ previousState: int,
7
+ currentState: int,
8
+ ) => void,
9
+ pickupVariant?: PickupVariant,
10
+ ];
11
+
12
+ const subscriptions: PostPickupStateChangedRegisterParameters[] = [];
13
+
14
+ /** @internal */
15
+ export function postPickupStateChangedHasSubscriptions(): boolean {
16
+ return subscriptions.length > 0;
17
+ }
18
+
19
+ /** @internal */
20
+ export function postPickupStateChangedRegister(
21
+ ...args: PostPickupStateChangedRegisterParameters
22
+ ): void {
23
+ subscriptions.push(args);
24
+ }
25
+
26
+ /** @internal */
27
+ export function postPickupStateChangedFire(
28
+ pickup: EntityPickup,
29
+ previousState: int,
30
+ currentState: int,
31
+ ): void {
32
+ for (const [callback, pickupVariant] of subscriptions) {
33
+ // Handle the optional 2nd callback argument.
34
+ if (pickupVariant !== undefined && pickupVariant !== pickup.Variant) {
35
+ continue;
36
+ }
37
+
38
+ callback(pickup, previousState, currentState);
39
+ }
40
+ }
@@ -0,0 +1,35 @@
1
+ export type PostPitRenderRegisterParameters = [
2
+ callback: (pit: GridEntityPit) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostPitRenderRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postPitRenderHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postPitRenderRegister(
15
+ ...args: PostPitRenderRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postPitRenderFire(pit: GridEntityPit): void {
22
+ const gridEntityVariant = pit.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(pit);
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ export type PostPitUpdateRegisterParameters = [
2
+ callback: (pit: GridEntityPit) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostPitUpdateRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postPitUpdateHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postPitUpdateRegister(
15
+ ...args: PostPitUpdateRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postPitUpdateFire(pit: GridEntityPit): void {
22
+ const gridEntityVariant = pit.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(pit);
34
+ }
35
+ }
@@ -0,0 +1,49 @@
1
+ import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+ import { HealthType } from "../../enums/HealthType";
3
+
4
+ export type PostPlayerChangeHealthRegisterParameters = [
5
+ callback: (
6
+ player: EntityPlayer,
7
+ healthType: HealthType,
8
+ difference: int,
9
+ ) => void,
10
+ playerVariant?: PlayerVariant,
11
+ character?: PlayerType,
12
+ ];
13
+
14
+ const subscriptions: PostPlayerChangeHealthRegisterParameters[] = [];
15
+
16
+ /** @internal */
17
+ export function postPlayerChangeHealthHasSubscriptions(): boolean {
18
+ return subscriptions.length > 0;
19
+ }
20
+
21
+ /** @internal */
22
+ export function postPlayerChangeHealthRegister(
23
+ ...args: PostPlayerChangeHealthRegisterParameters
24
+ ): void {
25
+ subscriptions.push(args);
26
+ }
27
+
28
+ /** @internal */
29
+ export function postPlayerChangeHealthFire(
30
+ player: EntityPlayer,
31
+ healthType: HealthType,
32
+ difference: int,
33
+ ): void {
34
+ const character = player.GetPlayerType();
35
+
36
+ for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
37
+ // Handle the optional 2nd callback argument.
38
+ if (playerVariant !== undefined && playerVariant !== player.Variant) {
39
+ continue;
40
+ }
41
+
42
+ // Handle the optional 3rd callback argument.
43
+ if (callbackCharacter !== undefined && callbackCharacter !== character) {
44
+ continue;
45
+ }
46
+
47
+ callback(player, healthType, difference);
48
+ }
49
+ }
@@ -0,0 +1,40 @@
1
+ import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostPlayerChangeTypeRegisterParameters = [
4
+ callback: (
5
+ player: EntityPlayer,
6
+ oldCharacter: PlayerType,
7
+ newCharacter: PlayerType,
8
+ ) => void,
9
+ playerVariant?: PlayerVariant,
10
+ ];
11
+
12
+ const subscriptions: PostPlayerChangeTypeRegisterParameters[] = [];
13
+
14
+ /** @internal */
15
+ export function postPlayerChangeTypeHasSubscriptions(): boolean {
16
+ return subscriptions.length > 0;
17
+ }
18
+
19
+ /** @internal */
20
+ export function postPlayerChangeTypeRegister(
21
+ ...args: PostPlayerChangeTypeRegisterParameters
22
+ ): void {
23
+ subscriptions.push(args);
24
+ }
25
+
26
+ /** @internal */
27
+ export function postPlayerChangeTypeFire(
28
+ player: EntityPlayer,
29
+ oldCharacter: PlayerType,
30
+ newCharacter: PlayerType,
31
+ ): void {
32
+ for (const [callback, playerVariant] of subscriptions) {
33
+ // Handle the optional 2nd callback argument.
34
+ if (playerVariant !== undefined && playerVariant !== player.Variant) {
35
+ continue;
36
+ }
37
+
38
+ callback(player, oldCharacter, newCharacter);
39
+ }
40
+ }
@@ -1,6 +1,5 @@
1
- import { CollectibleType, PlayerType, PlayerVariant } from "isaac-typescript-definitions";
1
+ import { CollectibleType } from "isaac-typescript-definitions";
2
2
  export declare type PostPlayerCollectibleAddedRegisterParameters = [
3
3
  callback: (player: EntityPlayer, collectibleType: CollectibleType) => void,
4
- playerVariant?: PlayerVariant,
5
- character?: PlayerType
4
+ collectibleType?: CollectibleType
6
5
  ];
@@ -14,16 +14,11 @@ end
14
14
  ---
15
15
  -- @internal
16
16
  function ____exports.postPlayerCollectibleAddedFire(self, player, collectibleType)
17
- local character = player:GetPlayerType()
18
17
  for ____, ____value in ipairs(subscriptions) do
19
18
  local callback = ____value[1]
20
- local playerVariant = ____value[2]
21
- local callbackCharacter = ____value[3]
19
+ local callbackCollectibleType = ____value[2]
22
20
  do
23
- if playerVariant ~= nil and playerVariant ~= player.Variant then
24
- goto __continue5
25
- end
26
- if callbackCharacter ~= nil and callbackCharacter ~= character then
21
+ if callbackCollectibleType ~= nil and callbackCollectibleType ~= collectibleType then
27
22
  goto __continue5
28
23
  end
29
24
  callback(nil, player, collectibleType)
@@ -0,0 +1,38 @@
1
+ import { CollectibleType } from "isaac-typescript-definitions";
2
+
3
+ export type PostPlayerCollectibleAddedRegisterParameters = [
4
+ callback: (player: EntityPlayer, collectibleType: CollectibleType) => void,
5
+ collectibleType?: CollectibleType,
6
+ ];
7
+
8
+ const subscriptions: PostPlayerCollectibleAddedRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postPlayerCollectibleAddedHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postPlayerCollectibleAddedRegister(
17
+ ...args: PostPlayerCollectibleAddedRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postPlayerCollectibleAddedFire(
24
+ player: EntityPlayer,
25
+ collectibleType: CollectibleType,
26
+ ): void {
27
+ for (const [callback, callbackCollectibleType] of subscriptions) {
28
+ // Handle the optional 2nd callback argument.
29
+ if (
30
+ callbackCollectibleType !== undefined &&
31
+ callbackCollectibleType !== collectibleType
32
+ ) {
33
+ continue;
34
+ }
35
+
36
+ callback(player, collectibleType);
37
+ }
38
+ }
@@ -1,6 +1,5 @@
1
- import { CollectibleType, PlayerType, PlayerVariant } from "isaac-typescript-definitions";
1
+ import { CollectibleType } from "isaac-typescript-definitions";
2
2
  export declare type PostPlayerCollectibleRemovedRegisterParameters = [
3
3
  callback: (player: EntityPlayer, collectibleType: CollectibleType) => void,
4
- playerVariant?: PlayerVariant,
5
- character?: PlayerType
4
+ collectibleType?: CollectibleType
6
5
  ];
@@ -14,16 +14,11 @@ end
14
14
  ---
15
15
  -- @internal
16
16
  function ____exports.postPlayerCollectibleRemovedFire(self, player, collectibleType)
17
- local character = player:GetPlayerType()
18
17
  for ____, ____value in ipairs(subscriptions) do
19
18
  local callback = ____value[1]
20
- local playerVariant = ____value[2]
21
- local callbackCharacter = ____value[3]
19
+ local callbackCollectibleType = ____value[2]
22
20
  do
23
- if playerVariant ~= nil and playerVariant ~= player.Variant then
24
- goto __continue5
25
- end
26
- if callbackCharacter ~= nil and callbackCharacter ~= character then
21
+ if callbackCollectibleType ~= nil and callbackCollectibleType ~= collectibleType then
27
22
  goto __continue5
28
23
  end
29
24
  callback(nil, player, collectibleType)
@@ -0,0 +1,38 @@
1
+ import { CollectibleType } from "isaac-typescript-definitions";
2
+
3
+ export type PostPlayerCollectibleRemovedRegisterParameters = [
4
+ callback: (player: EntityPlayer, collectibleType: CollectibleType) => void,
5
+ collectibleType?: CollectibleType,
6
+ ];
7
+
8
+ const subscriptions: PostPlayerCollectibleRemovedRegisterParameters[] = [];
9
+
10
+ /** @internal */
11
+ export function postPlayerCollectibleRemovedHasSubscriptions(): boolean {
12
+ return subscriptions.length > 0;
13
+ }
14
+
15
+ /** @internal */
16
+ export function postPlayerCollectibleRemovedRegister(
17
+ ...args: PostPlayerCollectibleRemovedRegisterParameters
18
+ ): void {
19
+ subscriptions.push(args);
20
+ }
21
+
22
+ /** @internal */
23
+ export function postPlayerCollectibleRemovedFire(
24
+ player: EntityPlayer,
25
+ collectibleType: CollectibleType,
26
+ ): void {
27
+ for (const [callback, callbackCollectibleType] of subscriptions) {
28
+ // Handle the optional 2nd callback argument.
29
+ if (
30
+ callbackCollectibleType !== undefined &&
31
+ callbackCollectibleType !== collectibleType
32
+ ) {
33
+ continue;
34
+ }
35
+
36
+ callback(player, collectibleType);
37
+ }
38
+ }
@@ -1,6 +1,6 @@
1
1
  import { DamageFlag, PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
2
  export declare type PostPlayerFatalDamageRegisterParameters = [
3
- callback: (player: EntityPlayer, damageAmount: float, damageFlags: BitFlags<DamageFlag>, damageSource: EntityRef, damageCountdownFrames: int) => boolean | void,
3
+ callback: (player: EntityPlayer, damageAmount: float, damageFlags: BitFlags<DamageFlag>, damageSource: EntityRef, damageCountdownFrames: int) => boolean | undefined,
4
4
  playerVariant?: PlayerVariant,
5
5
  character?: PlayerType
6
6
  ];
@@ -0,0 +1,68 @@
1
+ import {
2
+ DamageFlag,
3
+ PlayerType,
4
+ PlayerVariant,
5
+ } from "isaac-typescript-definitions";
6
+
7
+ export type PostPlayerFatalDamageRegisterParameters = [
8
+ callback: (
9
+ player: EntityPlayer,
10
+ damageAmount: float,
11
+ damageFlags: BitFlags<DamageFlag>,
12
+ damageSource: EntityRef,
13
+ damageCountdownFrames: int,
14
+ ) => boolean | undefined,
15
+ playerVariant?: PlayerVariant,
16
+ character?: PlayerType,
17
+ ];
18
+
19
+ const subscriptions: PostPlayerFatalDamageRegisterParameters[] = [];
20
+
21
+ /** @internal */
22
+ export function postPlayerFatalDamageHasSubscriptions(): boolean {
23
+ return subscriptions.length > 0;
24
+ }
25
+
26
+ /** @internal */
27
+ export function postPlayerFatalDamageRegister(
28
+ ...args: PostPlayerFatalDamageRegisterParameters
29
+ ): void {
30
+ subscriptions.push(args);
31
+ }
32
+
33
+ /** @internal */
34
+ export function postPlayerFatalDamageFire(
35
+ player: EntityPlayer,
36
+ damageAmount: float,
37
+ damageFlags: BitFlags<DamageFlag>,
38
+ damageSource: EntityRef,
39
+ damageCountdownFrames: int,
40
+ ): boolean | undefined {
41
+ const character = player.GetPlayerType();
42
+
43
+ for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
44
+ // Handle the optional 2nd callback argument.
45
+ if (playerVariant !== undefined && playerVariant !== player.Variant) {
46
+ continue;
47
+ }
48
+
49
+ // Handle the optional 3rd callback argument.
50
+ if (callbackCharacter !== undefined && callbackCharacter !== character) {
51
+ continue;
52
+ }
53
+
54
+ const shouldSustainDeath = callback(
55
+ player,
56
+ damageAmount,
57
+ damageFlags,
58
+ damageSource,
59
+ damageCountdownFrames,
60
+ );
61
+
62
+ if (shouldSustainDeath !== undefined) {
63
+ return shouldSustainDeath;
64
+ }
65
+ }
66
+
67
+ return undefined;
68
+ }
@@ -0,0 +1,40 @@
1
+ import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostPlayerInitLateRegisterParameters = [
4
+ callback: (player: EntityPlayer) => void,
5
+ playerVariant?: PlayerVariant,
6
+ character?: PlayerType,
7
+ ];
8
+
9
+ const subscriptions: PostPlayerInitLateRegisterParameters[] = [];
10
+
11
+ /** @internal */
12
+ export function postPlayerInitLateHasSubscriptions(): boolean {
13
+ return subscriptions.length > 0;
14
+ }
15
+
16
+ /** @internal */
17
+ export function postPlayerInitLateRegister(
18
+ ...args: PostPlayerInitLateRegisterParameters
19
+ ): void {
20
+ subscriptions.push(args);
21
+ }
22
+
23
+ /** @internal */
24
+ export function postPlayerInitLateFire(player: EntityPlayer): void {
25
+ const character = player.GetPlayerType();
26
+
27
+ for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
28
+ // Handle the optional 2nd callback argument.
29
+ if (playerVariant !== undefined && playerVariant !== player.Variant) {
30
+ continue;
31
+ }
32
+
33
+ // Handle the optional 3rd callback argument.
34
+ if (callbackCharacter !== undefined && callbackCharacter !== character) {
35
+ continue;
36
+ }
37
+
38
+ callback(player);
39
+ }
40
+ }
@@ -0,0 +1,40 @@
1
+ import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostPlayerInitReorderedRegisterParameters = [
4
+ callback: (player: EntityPlayer) => void,
5
+ playerVariant?: PlayerVariant,
6
+ character?: PlayerType,
7
+ ];
8
+
9
+ const subscriptions: PostPlayerInitReorderedRegisterParameters[] = [];
10
+
11
+ /** @internal */
12
+ export function postPlayerInitReorderedHasSubscriptions(): boolean {
13
+ return subscriptions.length > 0;
14
+ }
15
+
16
+ /** @internal */
17
+ export function postPlayerInitReorderedRegister(
18
+ ...args: PostPlayerInitReorderedRegisterParameters
19
+ ): void {
20
+ subscriptions.push(args);
21
+ }
22
+
23
+ /** @internal */
24
+ export function postPlayerInitReorderedFire(player: EntityPlayer): void {
25
+ const character = player.GetPlayerType();
26
+
27
+ for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
28
+ // Handle the optional 2nd callback argument.
29
+ if (playerVariant !== undefined && playerVariant !== player.Variant) {
30
+ continue;
31
+ }
32
+
33
+ // Handle the optional 3rd callback argument.
34
+ if (callbackCharacter !== undefined && callbackCharacter !== character) {
35
+ continue;
36
+ }
37
+
38
+ callback(player);
39
+ }
40
+ }
@@ -0,0 +1,40 @@
1
+ import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostPlayerRenderReorderedRegisterParameters = [
4
+ callback: (player: EntityPlayer) => void,
5
+ playerVariant?: PlayerVariant,
6
+ character?: PlayerType,
7
+ ];
8
+
9
+ const subscriptions: PostPlayerRenderReorderedRegisterParameters[] = [];
10
+
11
+ /** @internal */
12
+ export function postPlayerRenderReorderedHasSubscriptions(): boolean {
13
+ return subscriptions.length > 0;
14
+ }
15
+
16
+ /** @internal */
17
+ export function postPlayerRenderReorderedRegister(
18
+ ...args: PostPlayerRenderReorderedRegisterParameters
19
+ ): void {
20
+ subscriptions.push(args);
21
+ }
22
+
23
+ /** @internal */
24
+ export function postPlayerRenderReorderedFire(player: EntityPlayer): void {
25
+ const character = player.GetPlayerType();
26
+
27
+ for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
28
+ // Handle the optional 2nd callback argument.
29
+ if (playerVariant !== undefined && playerVariant !== player.Variant) {
30
+ continue;
31
+ }
32
+
33
+ // Handle the optional 3rd callback argument.
34
+ if (callbackCharacter !== undefined && callbackCharacter !== character) {
35
+ continue;
36
+ }
37
+
38
+ callback(player);
39
+ }
40
+ }
@@ -0,0 +1,40 @@
1
+ import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+
3
+ export type PostPlayerUpdateReorderedRegisterParameters = [
4
+ callback: (player: EntityPlayer) => void,
5
+ playerVariant?: PlayerVariant,
6
+ character?: PlayerType,
7
+ ];
8
+
9
+ const subscriptions: PostPlayerUpdateReorderedRegisterParameters[] = [];
10
+
11
+ /** @internal */
12
+ export function postPlayerUpdateReorderedHasSubscriptions(): boolean {
13
+ return subscriptions.length > 0;
14
+ }
15
+
16
+ /** @internal */
17
+ export function postPlayerUpdateReorderedRegister(
18
+ ...args: PostPlayerUpdateReorderedRegisterParameters
19
+ ): void {
20
+ subscriptions.push(args);
21
+ }
22
+
23
+ /** @internal */
24
+ export function postPlayerUpdateReorderedFire(player: EntityPlayer): void {
25
+ const character = player.GetPlayerType();
26
+
27
+ for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
28
+ // Handle the optional 2nd callback argument.
29
+ if (playerVariant !== undefined && playerVariant !== player.Variant) {
30
+ continue;
31
+ }
32
+
33
+ // Handle the optional 3rd callback argument.
34
+ if (callbackCharacter !== undefined && callbackCharacter !== character) {
35
+ continue;
36
+ }
37
+
38
+ callback(player);
39
+ }
40
+ }
@@ -0,0 +1,35 @@
1
+ export type PostPoopRenderRegisterParameters = [
2
+ callback: (poop: GridEntityPoop) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostPoopRenderRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postPoopRenderHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postPoopRenderRegister(
15
+ ...args: PostPoopRenderRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postPoopRenderFire(poop: GridEntityPoop): void {
22
+ const gridEntityVariant = poop.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(poop);
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ export type PostPoopUpdateRegisterParameters = [
2
+ callback: (poop: GridEntityPoop) => void,
3
+ gridEntityVariant?: int,
4
+ ];
5
+
6
+ const subscriptions: PostPoopUpdateRegisterParameters[] = [];
7
+
8
+ /** @internal */
9
+ export function postPoopUpdateHasSubscriptions(): boolean {
10
+ return subscriptions.length > 0;
11
+ }
12
+
13
+ /** @internal */
14
+ export function postPoopUpdateRegister(
15
+ ...args: PostPoopUpdateRegisterParameters
16
+ ): void {
17
+ subscriptions.push(args);
18
+ }
19
+
20
+ /** @internal */
21
+ export function postPoopUpdateFire(poop: GridEntityPoop): void {
22
+ const gridEntityVariant = poop.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(poop);
34
+ }
35
+ }