isaacscript-common 13.3.3 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/index.d.ts +586 -407
  2. package/dist/isaacscript-common.lua +15849 -15070
  3. package/dist/src/callbacks/postAmbush.d.ts.map +1 -1
  4. package/dist/src/callbacks/postAmbush.lua +7 -12
  5. package/dist/src/callbacks/postBombExploded.lua +3 -3
  6. package/dist/src/callbacks/postRoomClearChanged.d.ts.map +1 -1
  7. package/dist/src/callbacks/postRoomClearChanged.lua +3 -5
  8. package/dist/src/callbacks/subscriptions/{postBoneExploded.d.ts → postBombExploded.d.ts} +1 -1
  9. package/dist/src/callbacks/subscriptions/{postBoneExploded.d.ts.map → postBombExploded.d.ts.map} +1 -1
  10. package/dist/src/callbacks/subscriptions/{postBoneExploded.lua → postBombExploded.lua} +0 -0
  11. package/dist/src/callbacks/subscriptions/postCollectibleEmpty.d.ts +1 -1
  12. package/dist/src/callbacks/subscriptions/postCollectibleEmpty.d.ts.map +1 -1
  13. package/dist/src/callbacks/subscriptions/postCollectibleInitFirst.d.ts +1 -1
  14. package/dist/src/callbacks/subscriptions/postCollectibleInitFirst.d.ts.map +1 -1
  15. package/dist/src/callbacks/subscriptions/postCursedTeleport.d.ts +4 -2
  16. package/dist/src/callbacks/subscriptions/postCursedTeleport.d.ts.map +1 -1
  17. package/dist/src/callbacks/subscriptions/postCursedTeleport.lua +13 -1
  18. package/dist/src/callbacks/subscriptions/postHolyMantleRemoved.d.ts.map +1 -1
  19. package/dist/src/callbacks/subscriptions/postHolyMantleRemoved.lua +2 -2
  20. package/dist/src/callbacks/subscriptions/postPEffectUpdateReordered.d.ts.map +1 -1
  21. package/dist/src/callbacks/subscriptions/postPEffectUpdateReordered.lua +2 -2
  22. package/dist/src/classes/ModUpgraded.d.ts +18 -10
  23. package/dist/src/classes/ModUpgraded.d.ts.map +1 -1
  24. package/dist/src/classes/ModUpgraded.lua +105 -16
  25. package/dist/src/classes/callbacks/PostAmbushFinished.d.ts +12 -0
  26. package/dist/src/classes/callbacks/PostAmbushFinished.d.ts.map +1 -0
  27. package/dist/src/classes/callbacks/PostAmbushFinished.lua +37 -0
  28. package/dist/src/classes/callbacks/PostAmbushStarted.d.ts +12 -0
  29. package/dist/src/classes/callbacks/PostAmbushStarted.d.ts.map +1 -0
  30. package/dist/src/classes/callbacks/PostAmbushStarted.lua +37 -0
  31. package/dist/src/classes/callbacks/PostBombExploded.d.ts +7 -0
  32. package/dist/src/classes/callbacks/PostBombExploded.d.ts.map +1 -0
  33. package/dist/src/classes/callbacks/PostBombExploded.lua +24 -0
  34. package/dist/src/classes/callbacks/PostBombInitLate.d.ts +12 -0
  35. package/dist/src/classes/callbacks/PostBombInitLate.d.ts.map +1 -0
  36. package/dist/src/classes/callbacks/PostBombInitLate.lua +27 -0
  37. package/dist/src/classes/callbacks/PostBoneSwing.d.ts +15 -0
  38. package/dist/src/classes/callbacks/PostBoneSwing.d.ts.map +1 -0
  39. package/dist/src/classes/callbacks/PostBoneSwing.lua +43 -0
  40. package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts +17 -0
  41. package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -0
  42. package/dist/src/classes/callbacks/PostCollectibleEmpty.lua +47 -0
  43. package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts +13 -0
  44. package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts.map +1 -0
  45. package/dist/src/classes/callbacks/PostCollectibleInitFirst.lua +32 -0
  46. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts +21 -0
  47. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts.map +1 -0
  48. package/dist/src/classes/callbacks/PostCursedTeleport.lua +113 -0
  49. package/dist/src/classes/callbacks/PostKnifeInitLate.d.ts +12 -0
  50. package/dist/src/classes/callbacks/PostKnifeInitLate.d.ts.map +1 -0
  51. package/dist/src/classes/callbacks/PostKnifeInitLate.lua +27 -0
  52. package/dist/src/classes/callbacks/PostNewRoomEarly.d.ts +14 -0
  53. package/dist/src/classes/callbacks/PostNewRoomEarly.d.ts.map +1 -0
  54. package/dist/src/classes/callbacks/PostNewRoomEarly.lua +65 -0
  55. package/dist/src/classes/callbacks/PostPitRender.d.ts +7 -0
  56. package/dist/src/classes/callbacks/PostPitRender.d.ts.map +1 -0
  57. package/dist/src/classes/callbacks/PostPitRender.lua +24 -0
  58. package/dist/src/classes/callbacks/PostRoomClearChanged.d.ts +13 -0
  59. package/dist/src/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -0
  60. package/dist/src/classes/callbacks/PostRoomClearChanged.lua +33 -0
  61. package/dist/src/classes/callbacks/PostSpikesRender.d.ts +7 -0
  62. package/dist/src/classes/callbacks/PostSpikesRender.d.ts.map +1 -0
  63. package/dist/src/classes/callbacks/PostSpikesRender.lua +24 -0
  64. package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.d.ts +10 -0
  65. package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.d.ts.map +1 -0
  66. package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.lua +19 -0
  67. package/dist/src/classes/callbacks/validation/CustomCallbackBomb.d.ts +10 -0
  68. package/dist/src/classes/callbacks/validation/CustomCallbackBomb.d.ts.map +1 -0
  69. package/dist/src/classes/callbacks/validation/CustomCallbackBomb.lua +19 -0
  70. package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.d.ts +10 -0
  71. package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.d.ts.map +1 -0
  72. package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.lua +19 -0
  73. package/dist/src/classes/callbacks/validation/CustomCallbackKnife.d.ts +10 -0
  74. package/dist/src/classes/callbacks/validation/CustomCallbackKnife.d.ts.map +1 -0
  75. package/dist/src/classes/callbacks/validation/CustomCallbackKnife.lua +19 -0
  76. package/dist/src/classes/callbacks/validation/CustomCallbackPit.d.ts +10 -0
  77. package/dist/src/classes/callbacks/validation/CustomCallbackPit.d.ts.map +1 -0
  78. package/dist/src/classes/callbacks/validation/CustomCallbackPit.lua +20 -0
  79. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts +10 -0
  80. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts.map +1 -0
  81. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.lua +23 -0
  82. package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.d.ts +10 -0
  83. package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.d.ts.map +1 -0
  84. package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.lua +20 -0
  85. package/dist/src/classes/private/CustomCallback.d.ts +32 -0
  86. package/dist/src/classes/private/CustomCallback.d.ts.map +1 -0
  87. package/dist/src/classes/private/CustomCallback.lua +53 -0
  88. package/dist/src/core/upgradeMod.d.ts.map +1 -1
  89. package/dist/src/core/upgradeMod.lua +16 -0
  90. package/dist/src/enums/IsaacScriptCommonFeature.d.ts +35 -0
  91. package/dist/src/enums/IsaacScriptCommonFeature.d.ts.map +1 -0
  92. package/dist/src/enums/IsaacScriptCommonFeature.lua +35 -0
  93. package/dist/src/enums/LadderSubTypeCustom.d.ts +17 -0
  94. package/dist/src/enums/LadderSubTypeCustom.d.ts.map +1 -0
  95. package/dist/src/enums/LadderSubTypeCustom.lua +19 -0
  96. package/dist/src/enums/ModCallbackCustom.d.ts +399 -327
  97. package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
  98. package/dist/src/enums/ModCallbackCustom.lua +85 -87
  99. package/dist/src/enums/ModCallbackCustom2.d.ts +17 -0
  100. package/dist/src/enums/ModCallbackCustom2.d.ts.map +1 -0
  101. package/dist/src/enums/ModCallbackCustom2.lua +30 -0
  102. package/dist/src/features/{setHotkey.d.ts → customHotkeys.d.ts} +1 -1
  103. package/dist/src/features/customHotkeys.d.ts.map +1 -0
  104. package/dist/src/features/{setHotkey.lua → customHotkeys.lua} +2 -2
  105. package/dist/src/features/customPickup.d.ts.map +1 -1
  106. package/dist/src/features/customPickup.lua +6 -2
  107. package/dist/src/features/customStage/backdrop.d.ts.map +1 -1
  108. package/dist/src/features/customStage/backdrop.lua +3 -1
  109. package/dist/src/features/customStage/shadows.d.ts.map +1 -1
  110. package/dist/src/features/customStage/shadows.lua +3 -1
  111. package/dist/src/features/customTrapdoor/init.lua +1 -7
  112. package/dist/src/features/firstLast.d.ts.map +1 -1
  113. package/dist/src/features/firstLast.lua +3 -3
  114. package/dist/src/features/saveDataManager/main.d.ts +5 -2
  115. package/dist/src/features/saveDataManager/main.d.ts.map +1 -1
  116. package/dist/src/features/saveDataManager/main.lua +3 -5
  117. package/dist/src/functions/ambush.d.ts +6 -0
  118. package/dist/src/functions/ambush.d.ts.map +1 -1
  119. package/dist/src/functions/ambush.lua +31 -0
  120. package/dist/src/functions/minimap.d.ts +4 -0
  121. package/dist/src/functions/minimap.d.ts.map +1 -1
  122. package/dist/src/functions/minimap.lua +4 -0
  123. package/dist/src/functions/roomTransition.d.ts +3 -4
  124. package/dist/src/functions/roomTransition.d.ts.map +1 -1
  125. package/dist/src/functions/roomTransition.lua +4 -32
  126. package/dist/src/functions/spawnCollectible.d.ts +24 -5
  127. package/dist/src/functions/spawnCollectible.d.ts.map +1 -1
  128. package/dist/src/functions/spawnCollectible.lua +44 -4
  129. package/dist/src/functions/utils.d.ts +7 -2
  130. package/dist/src/functions/utils.d.ts.map +1 -1
  131. package/dist/src/functions/utils.lua +7 -2
  132. package/dist/src/index.d.ts +4 -2
  133. package/dist/src/index.d.ts.map +1 -1
  134. package/dist/src/index.lua +26 -10
  135. package/dist/src/initCustomCallbacks.d.ts.map +1 -1
  136. package/dist/src/initCustomCallbacks.lua +0 -3
  137. package/dist/src/initFeatures.lua +3 -3
  138. package/dist/src/interfaces/private/{AddCallbackParameterCustom.d.ts → AddCallbackParametersCustom.d.ts} +4 -6
  139. package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -0
  140. package/dist/src/interfaces/private/{AddCallbackParameterCustom.lua → AddCallbackParametersCustom.lua} +0 -0
  141. package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts +55 -0
  142. package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts.map +1 -0
  143. package/dist/src/interfaces/private/AddCallbackParametersCustom2.lua +4 -0
  144. package/dist/src/objects/callbackRegisterFunctions.d.ts +2 -2
  145. package/dist/src/objects/callbackRegisterFunctions.d.ts.map +1 -1
  146. package/dist/src/objects/callbackRegisterFunctions.lua +2 -5
  147. package/dist/src/types/private/AllButFirst.d.ts +5 -0
  148. package/dist/src/types/private/AllButFirst.d.ts.map +1 -0
  149. package/dist/src/types/private/AllButFirst.lua +2 -0
  150. package/dist/src/types/private/CallbackTuple.d.ts +20 -0
  151. package/dist/src/types/private/CallbackTuple.d.ts.map +1 -0
  152. package/dist/src/types/private/CallbackTuple.lua +2 -0
  153. package/dist/src/types/private/MatchingCallbackCustom.d.ts +14 -0
  154. package/dist/src/types/private/MatchingCallbackCustom.d.ts.map +1 -0
  155. package/dist/src/types/private/MatchingCallbackCustom.lua +2 -0
  156. package/package.json +2 -2
  157. package/src/callbacks/postAmbush.ts +7 -14
  158. package/src/callbacks/postBombExploded.ts +1 -1
  159. package/src/callbacks/postBoneSwing.ts +2 -1
  160. package/src/callbacks/postCollectibleEmpty.ts +2 -0
  161. package/src/callbacks/postCollectibleInitFirst.ts +2 -0
  162. package/src/callbacks/postNewRoomEarly.ts +1 -1
  163. package/src/callbacks/postRoomClearChanged.ts +3 -7
  164. package/src/callbacks/subscriptions/{postBoneExploded.ts → postBombExploded.ts} +0 -0
  165. package/src/callbacks/subscriptions/postCollectibleEmpty.ts +1 -1
  166. package/src/callbacks/subscriptions/postCollectibleInitFirst.ts +1 -1
  167. package/src/callbacks/subscriptions/postCursedTeleport.ts +24 -1
  168. package/src/callbacks/subscriptions/postHolyMantleRemoved.ts +9 -2
  169. package/src/callbacks/subscriptions/postPEffectUpdateReordered.ts +9 -2
  170. package/src/classes/ModUpgraded.ts +132 -31
  171. package/src/classes/callbacks/PostAmbushFinished.ts +39 -0
  172. package/src/classes/callbacks/PostAmbushStarted.ts +39 -0
  173. package/src/classes/callbacks/PostBombExploded.ts +21 -0
  174. package/src/classes/callbacks/PostBombInitLate.ts +28 -0
  175. package/src/classes/callbacks/PostBoneSwing.ts +58 -0
  176. package/src/classes/callbacks/PostCollectibleEmpty.ts +72 -0
  177. package/src/classes/callbacks/PostCollectibleInitFirst.ts +37 -0
  178. package/src/classes/callbacks/PostCursedTeleport.ts +183 -0
  179. package/src/classes/callbacks/PostKnifeInitLate.ts +28 -0
  180. package/src/classes/callbacks/PostNewRoomEarly.ts +93 -0
  181. package/src/classes/callbacks/PostPitRender.ts +21 -0
  182. package/src/classes/callbacks/PostRoomClearChanged.ts +40 -0
  183. package/src/classes/callbacks/PostSpikesRender.ts +21 -0
  184. package/src/classes/callbacks/validation/CustomCallbackAmbush.ts +28 -0
  185. package/src/classes/callbacks/validation/CustomCallbackBomb.ts +27 -0
  186. package/src/classes/callbacks/validation/CustomCallbackCollectible.ts +30 -0
  187. package/src/classes/callbacks/validation/CustomCallbackKnife.ts +27 -0
  188. package/src/classes/callbacks/validation/CustomCallbackPit.ts +28 -0
  189. package/src/classes/callbacks/validation/CustomCallbackPlayer.ts +37 -0
  190. package/src/classes/callbacks/validation/CustomCallbackSpikes.ts +28 -0
  191. package/src/classes/private/CustomCallback.ts +79 -0
  192. package/src/core/upgradeMod.ts +16 -2
  193. package/src/enums/IsaacScriptCommonFeature.ts +34 -0
  194. package/src/enums/LadderSubTypeCustom.ts +17 -0
  195. package/src/enums/ModCallbackCustom.ts +314 -243
  196. package/src/enums/ModCallbackCustom2.ts +17 -0
  197. package/src/features/{setHotkey.ts → customHotkeys.ts} +2 -2
  198. package/src/features/customPickup.ts +4 -2
  199. package/src/features/customStage/backdrop.ts +2 -1
  200. package/src/features/customStage/shadows.ts +2 -1
  201. package/src/features/customTrapdoor/init.ts +0 -1
  202. package/src/features/firstLast.ts +3 -7
  203. package/src/features/saveDataManager/main.ts +32 -21
  204. package/src/functions/ambush.ts +26 -1
  205. package/src/functions/minimap.ts +4 -0
  206. package/src/functions/roomTransition.ts +3 -27
  207. package/src/functions/spawnCollectible.ts +44 -4
  208. package/src/functions/utils.ts +7 -2
  209. package/src/index.ts +4 -2
  210. package/src/initCustomCallbacks.ts +1 -2
  211. package/src/initFeatures.ts +2 -2
  212. package/src/interfaces/private/{AddCallbackParameterCustom.ts → AddCallbackParametersCustom.ts} +3 -25
  213. package/src/interfaces/private/AddCallbackParametersCustom2.ts +79 -0
  214. package/src/objects/callbackRegisterFunctions.ts +3 -5
  215. package/src/types/private/AllButFirst.ts +6 -0
  216. package/src/types/private/CallbackTuple.ts +21 -0
  217. package/src/types/private/MatchingCallbackCustom.ts +26 -0
  218. package/dist/src/callbacks/postCustomDoorEnter.d.ts +0 -6
  219. package/dist/src/callbacks/postCustomDoorEnter.d.ts.map +0 -1
  220. package/dist/src/callbacks/postCustomDoorEnter.lua +0 -199
  221. package/dist/src/callbacks/subscriptions/postCustomDoorEnter.d.ts +0 -9
  222. package/dist/src/callbacks/subscriptions/postCustomDoorEnter.d.ts.map +0 -1
  223. package/dist/src/callbacks/subscriptions/postCustomDoorEnter.lua +0 -29
  224. package/dist/src/features/customDoor.d.ts +0 -51
  225. package/dist/src/features/customDoor.d.ts.map +0 -1
  226. package/dist/src/features/customDoor.lua +0 -53
  227. package/dist/src/features/setHotkey.d.ts.map +0 -1
  228. package/dist/src/indexLua.d.ts +0 -186
  229. package/dist/src/indexLua.d.ts.map +0 -1
  230. package/dist/src/indexLua.lua +0 -1322
  231. package/dist/src/interfaces/private/AddCallbackParameterCustom.d.ts.map +0 -1
  232. package/src/callbacks/postCustomDoorEnter.ts +0 -250
  233. package/src/callbacks/subscriptions/postCustomDoorEnter.ts +0 -42
  234. package/src/features/customDoor.ts +0 -66
@@ -0,0 +1,55 @@
1
+ import { BombVariant, CollectibleType, KnifeVariant, PitVariant, PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+ import { AmbushType } from "../../enums/AmbushType";
3
+ import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
4
+ export interface AddCallbackParametersCustom2 {
5
+ [ModCallbackCustom2.POST_AMBUSH_FINISHED]: [
6
+ callback: (ambushType: AmbushType) => void,
7
+ ambushType?: AmbushType
8
+ ];
9
+ [ModCallbackCustom2.POST_AMBUSH_STARTED]: [
10
+ callback: (ambushType: AmbushType) => void,
11
+ ambushType?: AmbushType
12
+ ];
13
+ [ModCallbackCustom2.POST_BOMB_EXPLODED]: [
14
+ callback: (bomb: EntityBomb) => void,
15
+ bombVariant?: BombVariant
16
+ ];
17
+ [ModCallbackCustom2.POST_BOMB_INIT_LATE]: [
18
+ callback: (bomb: EntityBomb) => void,
19
+ bombVariant?: BombVariant
20
+ ];
21
+ [ModCallbackCustom2.POST_BONE_SWING]: [
22
+ callback: (knife: EntityKnife) => void
23
+ ];
24
+ [ModCallbackCustom2.POST_COLLECTIBLE_EMPTY]: [
25
+ callback: (collectible: EntityPickupCollectible, oldCollectibleType: CollectibleType) => void,
26
+ collectibleType?: CollectibleType
27
+ ];
28
+ [ModCallbackCustom2.POST_COLLECTIBLE_INIT_FIRST]: [
29
+ callback: (collectible: EntityPickupCollectible) => void,
30
+ collectibleType?: CollectibleType
31
+ ];
32
+ [ModCallbackCustom2.POST_CURSED_TELEPORT]: [
33
+ callback: (player: EntityPlayer) => void,
34
+ playerVariant?: PlayerVariant,
35
+ character?: PlayerType
36
+ ];
37
+ [ModCallbackCustom2.POST_KNIFE_INIT_LATE]: [
38
+ callback: (knife: EntityKnife) => void,
39
+ knifeVariant?: KnifeVariant
40
+ ];
41
+ [ModCallbackCustom2.POST_NEW_ROOM_EARLY]: [callback: () => void];
42
+ [ModCallbackCustom2.POST_PIT_RENDER]: [
43
+ callback: (pit: GridEntityPit) => void,
44
+ pitVariant?: PitVariant
45
+ ];
46
+ [ModCallbackCustom2.POST_ROOM_CLEAR_CHANGED]: [
47
+ callback: (roomClear: boolean) => void,
48
+ roomClear?: boolean
49
+ ];
50
+ [ModCallbackCustom2.POST_SPIKES_RENDER]: [
51
+ callback: (spikes: GridEntitySpikes) => void,
52
+ gridEntityVariant?: int
53
+ ];
54
+ }
55
+ //# sourceMappingURL=AddCallbackParametersCustom2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddCallbackParametersCustom2.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/private/AddCallbackParametersCustom2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,WAAW,4BAA4B;IAC3C,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE;QACzC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI;QAC1C,UAAU,CAAC,EAAE,UAAU;KACxB,CAAC;IAEF,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,EAAE;QACxC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI;QAC1C,UAAU,CAAC,EAAE,UAAU;KACxB,CAAC;IAEF,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE;QACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI;QACpC,WAAW,CAAC,EAAE,WAAW;KAC1B,CAAC;IAEF,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,EAAE;QACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI;QACpC,WAAW,CAAC,EAAE,WAAW;KAC1B,CAAC;IAEF,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE;QACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;KACvC,CAAC;IAEF,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,EAAE;QAC3C,QAAQ,EAAE,CACR,WAAW,EAAE,uBAAuB,EACpC,kBAAkB,EAAE,eAAe,KAChC,IAAI;QACT,eAAe,CAAC,EAAE,eAAe;KAClC,CAAC;IAEF,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,EAAE;QAChD,QAAQ,EAAE,CAAC,WAAW,EAAE,uBAAuB,KAAK,IAAI;QACxD,eAAe,CAAC,EAAE,eAAe;KAClC,CAAC;IAEF,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE;QACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI;QACxC,aAAa,CAAC,EAAE,aAAa;QAC7B,SAAS,CAAC,EAAE,UAAU;KACvB,CAAC;IAIF,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE;QACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;QACtC,YAAY,CAAC,EAAE,YAAY;KAC5B,CAAC;IAEF,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;IAEjE,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE;QACpC,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI;QACtC,UAAU,CAAC,EAAE,UAAU;KACxB,CAAC;IAEF,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,EAAE;QAC5C,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;QACtC,SAAS,CAAC,EAAE,OAAO;KACpB,CAAC;IAEF,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE;QACvC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI;QAC5C,iBAAiB,CAAC,EAAE,GAAG;KACxB,CAAC;CACH"}
@@ -0,0 +1,4 @@
1
+ local ____exports = {}
2
+ local ____ModCallbackCustom2 = require("src.enums.ModCallbackCustom2")
3
+ local ModCallbackCustom2 = ____ModCallbackCustom2.ModCallbackCustom2
4
+ return ____exports
@@ -1,6 +1,6 @@
1
1
  import { ModCallbackCustom } from "../enums/ModCallbackCustom";
2
- import { AddCallbackParameterCustom } from "../interfaces/private/AddCallbackParameterCustom";
2
+ import { AddCallbackParametersCustom } from "../interfaces/private/AddCallbackParametersCustom";
3
3
  export declare const CALLBACK_REGISTER_FUNCTIONS: {
4
- readonly [key in ModCallbackCustom]: (...args: AddCallbackParameterCustom[key]) => void;
4
+ readonly [key in ModCallbackCustom]: (...args: AddCallbackParametersCustom[key]) => void;
5
5
  };
6
6
  //# sourceMappingURL=callbackRegisterFunctions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callbackRegisterFunctions.d.ts","sourceRoot":"","sources":["../../../src/objects/callbackRegisterFunctions.ts"],"names":[],"mappings":"AA8FA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAE9F,eAAO,MAAM,2BAA2B,EAAE;IACxC,QAAQ,EAAE,GAAG,IAAI,iBAAiB,GAAG,CACnC,GAAG,IAAI,EAAE,0BAA0B,CAAC,GAAG,CAAC,KACrC,IAAI;CAqHD,CAAC"}
1
+ {"version":3,"file":"callbackRegisterFunctions.d.ts","sourceRoot":"","sources":["../../../src/objects/callbackRegisterFunctions.ts"],"names":[],"mappings":"AA6FA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAEhG,eAAO,MAAM,2BAA2B,EAAE;IACxC,QAAQ,EAAE,GAAG,IAAI,iBAAiB,GAAG,CACnC,GAAG,IAAI,EAAE,2BAA2B,CAAC,GAAG,CAAC,KACtC,IAAI;CAoHD,CAAC"}
@@ -3,10 +3,10 @@ local ____postAmbushFinished = require("src.callbacks.subscriptions.postAmbushFi
3
3
  local postAmbushFinishedRegister = ____postAmbushFinished.postAmbushFinishedRegister
4
4
  local ____postAmbushStarted = require("src.callbacks.subscriptions.postAmbushStarted")
5
5
  local postAmbushStartedRegister = ____postAmbushStarted.postAmbushStartedRegister
6
+ local ____postBombExploded = require("src.callbacks.subscriptions.postBombExploded")
7
+ local postBombExplodedRegister = ____postBombExploded.postBombExplodedRegister
6
8
  local ____postBombInitLate = require("src.callbacks.subscriptions.postBombInitLate")
7
9
  local postBombInitLateRegister = ____postBombInitLate.postBombInitLateRegister
8
- local ____postBoneExploded = require("src.callbacks.subscriptions.postBoneExploded")
9
- local postBombExplodedRegister = ____postBoneExploded.postBombExplodedRegister
10
10
  local ____postBoneSwing = require("src.callbacks.subscriptions.postBoneSwing")
11
11
  local postBoneSwingRegister = ____postBoneSwing.postBoneSwingRegister
12
12
  local ____postCollectibleEmpty = require("src.callbacks.subscriptions.postCollectibleEmpty")
@@ -15,8 +15,6 @@ local ____postCollectibleInitFirst = require("src.callbacks.subscriptions.postCo
15
15
  local postCollectibleInitFirstRegister = ____postCollectibleInitFirst.postCollectibleInitFirstRegister
16
16
  local ____postCursedTeleport = require("src.callbacks.subscriptions.postCursedTeleport")
17
17
  local postCursedTeleportRegister = ____postCursedTeleport.postCursedTeleportRegister
18
- local ____postCustomDoorEnter = require("src.callbacks.subscriptions.postCustomDoorEnter")
19
- local postCustomDoorEnterRegister = ____postCustomDoorEnter.postCustomDoorEnterRegister
20
18
  local ____postCustomRevive = require("src.callbacks.subscriptions.postCustomRevive")
21
19
  local postCustomReviveRegister = ____postCustomRevive.postCustomReviveRegister
22
20
  local ____postDiceRoomActivated = require("src.callbacks.subscriptions.postDiceRoomActivated")
@@ -198,7 +196,6 @@ ____exports.CALLBACK_REGISTER_FUNCTIONS = {
198
196
  [ModCallbackCustom.POST_COLLECTIBLE_EMPTY] = postCollectibleEmptyRegister,
199
197
  [ModCallbackCustom.POST_COLLECTIBLE_INIT_FIRST] = postCollectibleInitFirstRegister,
200
198
  [ModCallbackCustom.POST_CURSED_TELEPORT] = postCursedTeleportRegister,
201
- [ModCallbackCustom.POST_CUSTOM_DOOR_ENTER] = postCustomDoorEnterRegister,
202
199
  [ModCallbackCustom.POST_CUSTOM_REVIVE] = postCustomReviveRegister,
203
200
  [ModCallbackCustom.POST_DICE_ROOM_ACTIVATED] = postDiceRoomActivatedRegister,
204
201
  [ModCallbackCustom.POST_DOOR_RENDER] = postDoorRenderRegister,
@@ -0,0 +1,5 @@
1
+ export declare type AllButFirst<T extends unknown[]> = T extends [
2
+ unknown,
3
+ ...infer Tail
4
+ ] ? Tail : unknown[];
5
+ //# sourceMappingURL=AllButFirst.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AllButFirst.d.ts","sourceRoot":"","sources":["../../../../src/types/private/AllButFirst.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS;IACvD,OAAO;IACP,GAAG,MAAM,IAAI;CACd,GACG,IAAI,GACJ,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -0,0 +1,20 @@
1
+ import { ModCallback } from "isaac-typescript-definitions";
2
+ import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
+ import { AddCallbackParametersCustom } from "../../interfaces/private/AddCallbackParametersCustom";
4
+ /**
5
+ * A mapping of the callback enum to the associated callback functions (and optional arguments).
6
+ * This is so that the respective callback functions can be added/removed on demand as subscribers
7
+ * get added/removed.
8
+ */
9
+ export declare type CallbackTuple = {
10
+ [K in ModCallback]: [K, AddCallbackParameters[K]];
11
+ }[ModCallback];
12
+ /**
13
+ * A mapping of the custom callback enum to the associated callback functions (and optional
14
+ * arguments). This is so that the respective callback functions can be added/removed on demand as
15
+ * subscribers get added/removed.
16
+ */
17
+ export declare type CustomCallbackTuple = {
18
+ [K in ModCallbackCustom]: [K, AddCallbackParametersCustom[K]];
19
+ }[ModCallbackCustom];
20
+ //# sourceMappingURL=CallbackTuple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallbackTuple.d.ts","sourceRoot":"","sources":["../../../../src/types/private/CallbackTuple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AAEnG;;;;GAIG;AACH,oBAAY,aAAa,GAAG;KACzB,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC,WAAW,CAAC,CAAC;AAEf;;;;GAIG;AACH,oBAAY,mBAAmB,GAAG;KAC/B,CAAC,IAAI,iBAAiB,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;CAC9D,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -0,0 +1,14 @@
1
+ import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
2
+ import { AddCallbackParametersCustom2 } from "../../interfaces/private/AddCallbackParametersCustom2";
3
+ /**
4
+ * A helper type used to get the matching `ModCallbackCustom` enum values that match the provided
5
+ * callback function signature.
6
+ *
7
+ * "T extends T" is necessary because of distributive conditional types:
8
+ * https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types
9
+ *
10
+ * "extends Parameters<FuncSignature>" is necessary because "() => void" will match "(arg1: number)
11
+ * => void", since in JavaScript, functions ignore extra arguments.
12
+ */
13
+ export declare type MatchingCallbackCustom<FuncSignature extends (...args: any[]) => unknown, T extends ModCallbackCustom2 = ModCallbackCustom2> = T extends T ? AddCallbackParametersCustom2[T][0] extends FuncSignature ? Parameters<AddCallbackParametersCustom2[T][0]> extends Parameters<FuncSignature> ? T : never : never : never;
14
+ //# sourceMappingURL=MatchingCallbackCustom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatchingCallbackCustom.d.ts","sourceRoot":"","sources":["../../../../src/types/private/MatchingCallbackCustom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AAErG;;;;;;;;;GASG;AACH,oBAAY,sBAAsB,CAEhC,aAAa,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,EACjD,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,IAC/C,CAAC,SAAS,CAAC,GACX,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GACtD,UAAU,CACR,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC,SAAS,UAAU,CAAC,aAAa,CAAC,GACjC,CAAC,GACD,KAAK,GACP,KAAK,GACP,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "13.3.3",
3
+ "version": "14.0.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -22,6 +22,6 @@
22
22
  "main": "dist/src/index",
23
23
  "types": "dist/src/index.d.ts",
24
24
  "dependencies": {
25
- "isaac-typescript-definitions": "^7.2.9"
25
+ "isaac-typescript-definitions": "^8.0.0"
26
26
  }
27
27
  }
@@ -2,11 +2,10 @@
2
2
  // - `POST_AMBUSH_STARTED`
3
3
  // - `POST_AMBUSH_FINISHED`
4
4
 
5
- import { ModCallback, RoomType } from "isaac-typescript-definitions";
5
+ import { ModCallback } from "isaac-typescript-definitions";
6
6
  import { game } from "../core/cachedClasses";
7
- import { AmbushType } from "../enums/AmbushType";
8
7
  import { saveDataManager } from "../features/saveDataManager/exports";
9
- import { getRoomType } from "../functions/roomData";
8
+ import { getAmbushType } from "../functions/ambush";
10
9
  import {
11
10
  postAmbushFinishedFire,
12
11
  postAmbushFinishedHasSubscriptions,
@@ -41,14 +40,17 @@ function postUpdate() {
41
40
  return;
42
41
  }
43
42
 
43
+ const ambushType = getAmbushType();
44
+ if (ambushType === undefined) {
45
+ return;
46
+ }
47
+
44
48
  const room = game.GetRoom();
45
49
 
46
50
  if (!v.room.ambushActive) {
47
51
  const ambushActive = room.IsAmbushActive();
48
52
  if (ambushActive) {
49
53
  v.room.ambushActive = true;
50
-
51
- const ambushType = getAmbushType();
52
54
  postAmbushStartedFire(ambushType);
53
55
  }
54
56
  }
@@ -57,16 +59,7 @@ function postUpdate() {
57
59
  const ambushDone = room.IsAmbushDone();
58
60
  if (ambushDone) {
59
61
  v.room.ambushDone = true;
60
-
61
- const ambushType = getAmbushType();
62
62
  postAmbushFinishedFire(ambushType);
63
63
  }
64
64
  }
65
65
  }
66
-
67
- function getAmbushType(): AmbushType {
68
- const roomType = getRoomType();
69
- return roomType === RoomType.BOSS_RUSH
70
- ? AmbushType.BOSS_RUSH
71
- : AmbushType.CHALLENGE_ROOM;
72
- }
@@ -3,7 +3,7 @@ import { BOMB_EXPLODE_FRAME } from "../core/constants";
3
3
  import {
4
4
  postBombExplodedFire,
5
5
  postBombExplodedHasSubscriptions,
6
- } from "./subscriptions/postBoneExploded";
6
+ } from "./subscriptions/postBombExploded";
7
7
 
8
8
  export function postBombExplodedInit(mod: Mod): void {
9
9
  mod.AddCallback(ModCallback.POST_BOMB_UPDATE, postBombUpdate); // 58
@@ -33,7 +33,8 @@ function postKnifeRender(knife: EntityKnife) {
33
33
  return;
34
34
  }
35
35
 
36
- // The PostKnifeRender callback cannot be registered with knife variants for some reason.
36
+ // The tertiary argument of the `POST_KNIFE_RENDER` callback takes sub-types instead of knife
37
+ // variants.
37
38
  if (knife.Variant !== KnifeVariant.BONE_CLUB) {
38
39
  return;
39
40
  }
@@ -29,6 +29,8 @@ function hasSubscriptions() {
29
29
  return postCollectibleEmptyHasSubscriptions();
30
30
  }
31
31
 
32
+ // ModCallback.POST_PICKUP_UPDATE (35)
33
+ // PickupVariant.COLLECTIBLE (100)
32
34
  function postPickupUpdateCollectible(pickup: EntityPickup) {
33
35
  const collectible = pickup as EntityPickupCollectible;
34
36
  const ptrHash = GetPtrHash(collectible);
@@ -27,6 +27,8 @@ function hasSubscriptions() {
27
27
  return postCollectibleInitFirstHasSubscriptions();
28
28
  }
29
29
 
30
+ // ModCallback.POST_PICKUP_INIT (34)
31
+ // PickupVariant.COLLECTIBLE (100)
30
32
  function postPickupInitCollectible(pickup: EntityPickup) {
31
33
  const collectible = pickup as EntityPickupCollectible;
32
34
  const collectibleIndex = getCollectibleIndex(collectible);
@@ -73,7 +73,7 @@ function checkRoomChanged() {
73
73
  }
74
74
 
75
75
  // For some reason, the above check will rarely fail. We duplicate the check with another wall
76
- // segment to go from 99% to 100% reliability.
76
+ // segment to increase the reliability.
77
77
  if (topLeftWall2 === undefined) {
78
78
  topLeftWall2 = spawnGridEntity(
79
79
  GridEntityType.WALL,
@@ -1,7 +1,6 @@
1
1
  import { ModCallback } from "isaac-typescript-definitions";
2
2
  import { ModUpgraded } from "../classes/ModUpgraded";
3
3
  import { game } from "../core/cachedClasses";
4
- import { ModCallbackCustom } from "../enums/ModCallbackCustom";
5
4
  import { saveDataManager } from "../features/saveDataManager/exports";
6
5
  import {
7
6
  postRoomClearChangedFire,
@@ -18,10 +17,7 @@ export function postRoomClearChangedInit(mod: ModUpgraded): void {
18
17
  saveDataManager("postRoomClearChanged", v, hasSubscriptions);
19
18
 
20
19
  mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
21
- mod.AddCallbackCustom(
22
- ModCallbackCustom.POST_NEW_ROOM_REORDERED,
23
- postNewRoomReordered,
24
- );
20
+ mod.AddCallback(ModCallback.POST_NEW_ROOM, postNewRoom); // 19
25
21
  }
26
22
 
27
23
  function hasSubscriptions() {
@@ -43,8 +39,8 @@ function postUpdate() {
43
39
  }
44
40
  }
45
41
 
46
- // ModCallbackCustom.POST_NEW_ROOM_REORDERED
47
- function postNewRoomReordered() {
42
+ // ModCallback.POST_NEW_ROOM (19)
43
+ function postNewRoom() {
48
44
  if (!hasSubscriptions()) {
49
45
  return;
50
46
  }
@@ -2,7 +2,7 @@ import { CollectibleType } from "isaac-typescript-definitions";
2
2
 
3
3
  export type PostCollectibleEmptyRegisterParameters = [
4
4
  callback: (
5
- collectible: EntityPickup,
5
+ collectible: EntityPickupCollectible,
6
6
  oldCollectibleType: CollectibleType,
7
7
  ) => void,
8
8
  collectibleType?: CollectibleType,
@@ -1,7 +1,7 @@
1
1
  import { CollectibleType } from "isaac-typescript-definitions";
2
2
 
3
3
  export type PostCollectibleInitFirstRegisterParameters = [
4
- callback: (collectible: EntityPickup) => void,
4
+ callback: (collectible: EntityPickupCollectible) => void,
5
5
  collectibleType?: CollectibleType,
6
6
  ];
7
7
 
@@ -1,5 +1,9 @@
1
+ import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
+
1
3
  export type PostCursedTeleportRegisterParameters = [
2
4
  callback: (player: EntityPlayer) => void,
5
+ playerVariant?: PlayerVariant,
6
+ character?: PlayerType,
3
7
  ];
4
8
 
5
9
  const subscriptions: PostCursedTeleportRegisterParameters[] = [];
@@ -15,7 +19,26 @@ export function postCursedTeleportRegister(
15
19
  }
16
20
 
17
21
  export function postCursedTeleportFire(player: EntityPlayer): void {
18
- for (const [callback] of subscriptions) {
22
+ const character = player.GetPlayerType();
23
+
24
+ for (const [
25
+ callback,
26
+ callbackPlayerVariant,
27
+ callbackCharacter,
28
+ ] of subscriptions) {
29
+ // Handle the optional 2nd callback argument.
30
+ if (
31
+ callbackPlayerVariant !== undefined &&
32
+ callbackPlayerVariant !== player.Variant
33
+ ) {
34
+ continue;
35
+ }
36
+
37
+ // Handle the optional 3rd callback argument.
38
+ if (callbackCharacter !== undefined && callbackCharacter !== character) {
39
+ continue;
40
+ }
41
+
19
42
  callback(player);
20
43
  }
21
44
  }
@@ -29,9 +29,16 @@ export function postHolyMantleRemovedFire(
29
29
  ): void {
30
30
  const character = player.GetPlayerType();
31
31
 
32
- for (const [callback, callbackVariant, callbackCharacter] of subscriptions) {
32
+ for (const [
33
+ callback,
34
+ callbackPlayerVariant,
35
+ callbackCharacter,
36
+ ] of subscriptions) {
33
37
  // Handle the optional 2nd callback argument.
34
- if (callbackVariant !== undefined && callbackVariant !== player.Variant) {
38
+ if (
39
+ callbackPlayerVariant !== undefined &&
40
+ callbackPlayerVariant !== player.Variant
41
+ ) {
35
42
  continue;
36
43
  }
37
44
 
@@ -21,9 +21,16 @@ export function postPEffectUpdateReorderedRegister(
21
21
  export function postPEffectUpdateReorderedFire(player: EntityPlayer): void {
22
22
  const character = player.GetPlayerType();
23
23
 
24
- for (const [callback, callbackVariant, callbackCharacter] of subscriptions) {
24
+ for (const [
25
+ callback,
26
+ callbackPlayerVariant,
27
+ callbackCharacter,
28
+ ] of subscriptions) {
25
29
  // Handle the optional 2nd callback argument.
26
- if (callbackVariant !== undefined && callbackVariant !== player.Variant) {
30
+ if (
31
+ callbackPlayerVariant !== undefined &&
32
+ callbackPlayerVariant !== player.Variant
33
+ ) {
27
34
  continue;
28
35
  }
29
36