isaacscript-common 6.11.1 → 6.13.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 (216) hide show
  1. package/dist/callbacks/postFlip.lua +2 -2
  2. package/dist/callbacks/postGridEntityCustomRender.d.ts +2 -0
  3. package/dist/callbacks/postGridEntityCustomRender.d.ts.map +1 -0
  4. package/dist/callbacks/postGridEntityCustomRender.lua +36 -0
  5. package/dist/callbacks/postGridEntityCustomUpdate.d.ts +2 -0
  6. package/dist/callbacks/postGridEntityCustomUpdate.d.ts.map +1 -0
  7. package/dist/callbacks/postGridEntityCustomUpdate.lua +36 -0
  8. package/dist/callbacks/postNewRoomEarly.lua +2 -2
  9. package/dist/callbacks/postPickupInitFirst.lua +1 -20
  10. package/dist/callbacks/reorderedCallbacks.d.ts +5 -5
  11. package/dist/callbacks/reorderedCallbacks.d.ts.map +1 -1
  12. package/dist/callbacks/reorderedCallbacks.lua +5 -5
  13. package/dist/callbacks/subscriptions/postFirstFlip.d.ts +1 -1
  14. package/dist/callbacks/subscriptions/postFirstFlip.d.ts.map +1 -1
  15. package/dist/callbacks/subscriptions/postFirstFlip.lua +2 -2
  16. package/dist/callbacks/subscriptions/postFlip.d.ts +1 -1
  17. package/dist/callbacks/subscriptions/postFlip.d.ts.map +1 -1
  18. package/dist/callbacks/subscriptions/postFlip.lua +2 -2
  19. package/dist/callbacks/subscriptions/postGridEntityCustomRender.d.ts +6 -0
  20. package/dist/callbacks/subscriptions/postGridEntityCustomRender.d.ts.map +1 -0
  21. package/dist/callbacks/subscriptions/postGridEntityCustomRender.lua +29 -0
  22. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.d.ts +6 -0
  23. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.d.ts.map +1 -0
  24. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.lua +29 -0
  25. package/dist/constants.d.ts +1 -5
  26. package/dist/constants.d.ts.map +1 -1
  27. package/dist/constants.lua +0 -7
  28. package/dist/constantsFirstLast.d.ts +5 -1
  29. package/dist/constantsFirstLast.d.ts.map +1 -1
  30. package/dist/constantsFirstLast.lua +6 -0
  31. package/dist/enums/ModCallbackCustom.d.ts +91 -68
  32. package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
  33. package/dist/enums/ModCallbackCustom.lua +62 -58
  34. package/dist/enums/private/StageTravelState.d.ts +6 -1
  35. package/dist/enums/private/StageTravelState.d.ts.map +1 -1
  36. package/dist/enums/private/StageTravelState.lua +10 -0
  37. package/dist/enums/private/TrapdoorAnimation.d.ts +6 -0
  38. package/dist/enums/private/TrapdoorAnimation.d.ts.map +1 -0
  39. package/dist/enums/private/TrapdoorAnimation.lua +6 -0
  40. package/dist/features/collectibleItemPoolType.d.ts +2 -2
  41. package/dist/features/collectibleItemPoolType.lua +2 -2
  42. package/dist/features/customGridEntity.d.ts +17 -5
  43. package/dist/features/customGridEntity.d.ts.map +1 -1
  44. package/dist/features/customGridEntity.lua +78 -15
  45. package/dist/features/customStage/exports.d.ts.map +1 -1
  46. package/dist/features/customStage/exports.lua +0 -13
  47. package/dist/features/customStage/init.d.ts.map +1 -1
  48. package/dist/features/customStage/init.lua +16 -1
  49. package/dist/features/customStage/streakText.d.ts.map +1 -1
  50. package/dist/features/customStage/streakText.lua +0 -1
  51. package/dist/features/customTrapdoor/blackSprite.d.ts +2 -0
  52. package/dist/features/customTrapdoor/blackSprite.d.ts.map +1 -0
  53. package/dist/features/customTrapdoor/blackSprite.lua +19 -0
  54. package/dist/features/customTrapdoor/customTrapdoorConstants.d.ts +8 -3
  55. package/dist/features/customTrapdoor/customTrapdoorConstants.d.ts.map +1 -1
  56. package/dist/features/customTrapdoor/customTrapdoorConstants.lua +9 -1
  57. package/dist/features/customTrapdoor/exports.d.ts +11 -19
  58. package/dist/features/customTrapdoor/exports.d.ts.map +1 -1
  59. package/dist/features/customTrapdoor/exports.lua +48 -82
  60. package/dist/features/customTrapdoor/init.d.ts +3 -0
  61. package/dist/features/customTrapdoor/init.d.ts.map +1 -0
  62. package/dist/features/customTrapdoor/init.lua +174 -0
  63. package/dist/features/customTrapdoor/openClose.d.ts +5 -0
  64. package/dist/features/customTrapdoor/openClose.d.ts.map +1 -0
  65. package/dist/features/customTrapdoor/openClose.lua +60 -0
  66. package/dist/features/customTrapdoor/touched.d.ts +4 -0
  67. package/dist/features/customTrapdoor/touched.d.ts.map +1 -0
  68. package/dist/features/customTrapdoor/touched.lua +159 -0
  69. package/dist/features/customTrapdoor/v.d.ts +16 -2
  70. package/dist/features/customTrapdoor/v.d.ts.map +1 -1
  71. package/dist/features/customTrapdoor/v.lua +8 -6
  72. package/dist/features/deployJSONRoom.d.ts +2 -2
  73. package/dist/features/deployJSONRoom.lua +2 -2
  74. package/dist/features/extraConsoleCommands/init.d.ts.map +1 -1
  75. package/dist/features/extraConsoleCommands/init.lua +14 -15
  76. package/dist/features/extraConsoleCommands/listCommands.d.ts +15 -19
  77. package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
  78. package/dist/features/extraConsoleCommands/listCommands.lua +34 -42
  79. package/dist/features/pause.d.ts +1 -1
  80. package/dist/features/pause.d.ts.map +1 -1
  81. package/dist/features/pause.lua +87 -8
  82. package/dist/features/persistentEntities.d.ts.map +1 -1
  83. package/dist/features/persistentEntities.lua +7 -7
  84. package/dist/features/pickupIndex.d.ts +19 -0
  85. package/dist/features/pickupIndex.d.ts.map +1 -0
  86. package/dist/features/pickupIndex.lua +197 -0
  87. package/dist/features/roomHistory.d.ts +24 -0
  88. package/dist/features/roomHistory.d.ts.map +1 -0
  89. package/dist/features/roomHistory.lua +89 -0
  90. package/dist/features/taintedLazarusPlayers.d.ts.map +1 -1
  91. package/dist/features/taintedLazarusPlayers.lua +13 -21
  92. package/dist/functions/collectibles.d.ts +26 -13
  93. package/dist/functions/collectibles.d.ts.map +1 -1
  94. package/dist/functions/collectibles.lua +26 -13
  95. package/dist/functions/entities.d.ts +3 -3
  96. package/dist/functions/entities.d.ts.map +1 -1
  97. package/dist/functions/entities.lua +8 -3
  98. package/dist/functions/gridEntities.d.ts +2 -2
  99. package/dist/functions/gridEntities.lua +2 -2
  100. package/dist/functions/isaacAPIClass.d.ts +64 -0
  101. package/dist/functions/isaacAPIClass.d.ts.map +1 -1
  102. package/dist/functions/isaacAPIClass.lua +84 -1
  103. package/dist/functions/log.lua +3 -3
  104. package/dist/functions/map.d.ts +2 -0
  105. package/dist/functions/map.d.ts.map +1 -1
  106. package/dist/functions/map.lua +7 -0
  107. package/dist/functions/pickupVariants.d.ts +2 -2
  108. package/dist/functions/pickupVariants.d.ts.map +1 -1
  109. package/dist/functions/pickupVariants.lua +2 -2
  110. package/dist/functions/playerCenter.lua +2 -2
  111. package/dist/functions/playerIndex.d.ts +5 -3
  112. package/dist/functions/playerIndex.d.ts.map +1 -1
  113. package/dist/functions/playerIndex.lua +15 -24
  114. package/dist/functions/roomData.d.ts +3 -2
  115. package/dist/functions/roomData.d.ts.map +1 -1
  116. package/dist/functions/roomData.lua +3 -2
  117. package/dist/functions/rooms.d.ts +6 -6
  118. package/dist/functions/rooms.lua +6 -6
  119. package/dist/functions/set.d.ts +2 -0
  120. package/dist/functions/set.d.ts.map +1 -1
  121. package/dist/functions/set.lua +6 -0
  122. package/dist/functions/stage.d.ts +1 -0
  123. package/dist/functions/stage.d.ts.map +1 -1
  124. package/dist/functions/stage.lua +4 -0
  125. package/dist/functions/table.d.ts +1 -1
  126. package/dist/functions/table.d.ts.map +1 -1
  127. package/dist/index.d.ts +3 -0
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.lua +23 -0
  130. package/dist/initCustomCallbacks.d.ts.map +1 -1
  131. package/dist/initCustomCallbacks.lua +6 -0
  132. package/dist/initFeatures.d.ts.map +1 -1
  133. package/dist/initFeatures.lua +9 -0
  134. package/dist/interfaces/AddCallbackParameterCustom.d.ts +4 -0
  135. package/dist/interfaces/AddCallbackParameterCustom.d.ts.map +1 -1
  136. package/dist/interfaces/CustomGridEntityData.d.ts +5 -1
  137. package/dist/interfaces/CustomGridEntityData.d.ts.map +1 -1
  138. package/dist/interfaces/RoomDescription.d.ts +14 -0
  139. package/dist/interfaces/RoomDescription.d.ts.map +1 -0
  140. package/dist/interfaces/RoomDescription.lua +2 -0
  141. package/dist/interfaces/private/CustomTrapdoorDescription.d.ts +3 -0
  142. package/dist/interfaces/private/CustomTrapdoorDescription.d.ts.map +1 -1
  143. package/dist/objects/callbackRegisterFunctions.d.ts.map +1 -1
  144. package/dist/objects/callbackRegisterFunctions.lua +6 -0
  145. package/dist/types/CollectibleIndex.d.ts +1 -1
  146. package/dist/types/PickupIndex.d.ts +17 -0
  147. package/dist/types/PickupIndex.d.ts.map +1 -0
  148. package/dist/types/PickupIndex.lua +2 -0
  149. package/dist/types/PlayerIndex.d.ts +1 -1
  150. package/dist/upgradeMod.d.ts.map +1 -1
  151. package/package.json +2 -2
  152. package/src/callbacks/postFlip.ts +3 -2
  153. package/src/callbacks/postGridEntityCustomRender.ts +44 -0
  154. package/src/callbacks/postGridEntityCustomUpdate.ts +44 -0
  155. package/src/callbacks/postNewRoomEarly.ts +2 -2
  156. package/src/callbacks/postPickupInitFirst.ts +3 -32
  157. package/src/callbacks/postPlayerReorderedCallbacks.ts +3 -3
  158. package/src/callbacks/reorderedCallbacks.ts +9 -8
  159. package/src/callbacks/subscriptions/postFirstFlip.ts +6 -3
  160. package/src/callbacks/subscriptions/postFlip.ts +6 -3
  161. package/src/callbacks/subscriptions/postGridEntityCustomRender.ts +41 -0
  162. package/src/callbacks/subscriptions/postGridEntityCustomUpdate.ts +41 -0
  163. package/src/constants.ts +1 -9
  164. package/src/constantsFirstLast.ts +16 -0
  165. package/src/enums/ModCallbackCustom.ts +35 -10
  166. package/src/enums/private/StageTravelState.ts +5 -1
  167. package/src/enums/private/TrapdoorAnimation.ts +5 -0
  168. package/src/features/collectibleItemPoolType.ts +3 -3
  169. package/src/features/customGridEntity.ts +93 -10
  170. package/src/features/customStage/exports.ts +3 -22
  171. package/src/features/customStage/init.ts +20 -0
  172. package/src/features/customStage/streakText.ts +0 -1
  173. package/src/features/customTrapdoor/blackSprite.ts +22 -0
  174. package/src/features/customTrapdoor/customTrapdoorConstants.ts +13 -3
  175. package/src/features/customTrapdoor/exports.ts +52 -121
  176. package/src/features/customTrapdoor/init.ts +217 -0
  177. package/src/features/customTrapdoor/openClose.ts +103 -0
  178. package/src/features/customTrapdoor/touched.ts +195 -0
  179. package/src/features/customTrapdoor/v.ts +16 -10
  180. package/src/features/deployJSONRoom.ts +5 -5
  181. package/src/features/extraConsoleCommands/init.ts +22 -16
  182. package/src/features/extraConsoleCommands/listCommands.ts +38 -43
  183. package/src/features/pause.ts +97 -7
  184. package/src/features/persistentEntities.ts +9 -8
  185. package/src/features/pickupIndex.ts +257 -0
  186. package/src/features/playerInventory.ts +2 -2
  187. package/src/features/roomHistory.ts +113 -0
  188. package/src/features/saveDataManager/main.ts +3 -3
  189. package/src/features/taintedLazarusPlayers.ts +37 -36
  190. package/src/functions/collectibles.ts +26 -13
  191. package/src/functions/deepCopy.ts +2 -2
  192. package/src/functions/entities.ts +7 -4
  193. package/src/functions/gridEntities.ts +2 -2
  194. package/src/functions/isaacAPIClass.ts +106 -1
  195. package/src/functions/map.ts +10 -0
  196. package/src/functions/pickupVariants.ts +2 -2
  197. package/src/functions/playerCenter.ts +2 -2
  198. package/src/functions/playerIndex.ts +20 -21
  199. package/src/functions/rng.ts +1 -1
  200. package/src/functions/roomData.ts +3 -2
  201. package/src/functions/rooms.ts +6 -6
  202. package/src/functions/set.ts +7 -1
  203. package/src/functions/stage.ts +10 -1
  204. package/src/functions/table.ts +2 -2
  205. package/src/index.ts +3 -0
  206. package/src/initCustomCallbacks.ts +4 -0
  207. package/src/initFeatures.ts +6 -0
  208. package/src/interfaces/AddCallbackParameterCustom.ts +4 -0
  209. package/src/interfaces/CustomGridEntityData.ts +6 -1
  210. package/src/interfaces/RoomDescription.ts +19 -0
  211. package/src/interfaces/private/CustomTrapdoorDescription.ts +4 -0
  212. package/src/objects/callbackRegisterFunctions.ts +6 -0
  213. package/src/types/CollectibleIndex.ts +1 -1
  214. package/src/types/PickupIndex.ts +15 -0
  215. package/src/types/PlayerIndex.ts +1 -1
  216. package/src/upgradeMod.ts +2 -1
@@ -56,120 +56,124 @@ ____exports.ModCallbackCustom.POST_GRID_ENTITY_BROKEN = 23
56
56
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_BROKEN] = "POST_GRID_ENTITY_BROKEN"
57
57
  ____exports.ModCallbackCustom.POST_GRID_ENTITY_COLLISION = 24
58
58
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_COLLISION] = "POST_GRID_ENTITY_COLLISION"
59
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT = 25
59
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER = 25
60
+ ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER] = "POST_GRID_ENTITY_CUSTOM_RENDER"
61
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE = 26
62
+ ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE] = "POST_GRID_ENTITY_CUSTOM_UPDATE"
63
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT = 27
60
64
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT] = "POST_GRID_ENTITY_INIT"
61
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE = 26
65
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE = 28
62
66
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE] = "POST_GRID_ENTITY_REMOVE"
63
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER = 27
67
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER = 29
64
68
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER] = "POST_GRID_ENTITY_RENDER"
65
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED = 28
69
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED = 30
66
70
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED] = "POST_GRID_ENTITY_STATE_CHANGED"
67
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE = 29
71
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE = 31
68
72
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE] = "POST_GRID_ENTITY_UPDATE"
69
- ____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED = 30
73
+ ____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED = 32
70
74
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED] = "POST_HOLY_MANTLE_REMOVED"
71
- ____exports.ModCallbackCustom.POST_ITEM_DISCHARGE = 31
75
+ ____exports.ModCallbackCustom.POST_ITEM_DISCHARGE = 33
72
76
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ITEM_DISCHARGE] = "POST_ITEM_DISCHARGE"
73
- ____exports.ModCallbackCustom.POST_ITEM_PICKUP = 32
77
+ ____exports.ModCallbackCustom.POST_ITEM_PICKUP = 34
74
78
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ITEM_PICKUP] = "POST_ITEM_PICKUP"
75
- ____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE = 33
79
+ ____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE = 35
76
80
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE] = "POST_KNIFE_INIT_LATE"
77
- ____exports.ModCallbackCustom.POST_LASER_INIT_LATE = 34
81
+ ____exports.ModCallbackCustom.POST_LASER_INIT_LATE = 36
78
82
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_LASER_INIT_LATE] = "POST_LASER_INIT_LATE"
79
- ____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED = 35
83
+ ____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED = 37
80
84
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED] = "POST_NEW_LEVEL_REORDERED"
81
- ____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY = 36
85
+ ____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY = 38
82
86
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY] = "POST_NEW_ROOM_EARLY"
83
- ____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED = 37
87
+ ____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED = 39
84
88
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED] = "POST_NEW_ROOM_REORDERED"
85
- ____exports.ModCallbackCustom.POST_NPC_INIT_LATE = 38
89
+ ____exports.ModCallbackCustom.POST_NPC_INIT_LATE = 40
86
90
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_INIT_LATE] = "POST_NPC_INIT_LATE"
87
- ____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED = 39
91
+ ____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED = 41
88
92
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED] = "POST_NPC_STATE_CHANGED"
89
- ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 40
93
+ ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 42
90
94
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED] = "POST_PEFFECT_UPDATE_REORDERED"
91
- ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 41
95
+ ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 43
92
96
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_COLLECT] = "POST_PICKUP_COLLECT"
93
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 42
97
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 44
94
98
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST] = "POST_PICKUP_INIT_FIRST"
95
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 43
99
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 45
96
100
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE] = "POST_PICKUP_INIT_LATE"
97
- ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 44
101
+ ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 46
98
102
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED] = "POST_PICKUP_STATE_CHANGED"
99
- ____exports.ModCallbackCustom.POST_PIT_RENDER = 45
103
+ ____exports.ModCallbackCustom.POST_PIT_RENDER = 47
100
104
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_RENDER] = "POST_PIT_RENDER"
101
- ____exports.ModCallbackCustom.POST_PIT_UPDATE = 46
105
+ ____exports.ModCallbackCustom.POST_PIT_UPDATE = 48
102
106
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_UPDATE] = "POST_PIT_UPDATE"
103
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 47
107
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 49
104
108
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH] = "POST_PLAYER_CHANGE_HEALTH"
105
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 48
109
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 50
106
110
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE] = "POST_PLAYER_CHANGE_TYPE"
107
- ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED = 49
111
+ ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED = 51
108
112
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED] = "POST_PLAYER_COLLECTIBLE_ADDED"
109
- ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED = 50
113
+ ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED = 52
110
114
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED] = "POST_PLAYER_COLLECTIBLE_REMOVED"
111
- ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 51
115
+ ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 53
112
116
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE] = "POST_PLAYER_FATAL_DAMAGE"
113
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST = 52
117
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST = 54
114
118
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST] = "POST_PLAYER_INIT_FIRST"
115
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 53
119
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 55
116
120
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE] = "POST_PLAYER_INIT_LATE"
117
- ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 54
121
+ ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 56
118
122
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED] = "POST_PLAYER_RENDER_REORDERED"
119
- ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 55
123
+ ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 57
120
124
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED] = "POST_PLAYER_UPDATE_REORDERED"
121
- ____exports.ModCallbackCustom.POST_POOP_RENDER = 56
125
+ ____exports.ModCallbackCustom.POST_POOP_RENDER = 58
122
126
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_RENDER] = "POST_POOP_RENDER"
123
- ____exports.ModCallbackCustom.POST_POOP_UPDATE = 57
127
+ ____exports.ModCallbackCustom.POST_POOP_UPDATE = 59
124
128
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_UPDATE] = "POST_POOP_UPDATE"
125
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 58
129
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 60
126
130
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER] = "POST_PRESSURE_PLATE_RENDER"
127
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 59
131
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 61
128
132
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE] = "POST_PRESSURE_PLATE_UPDATE"
129
- ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 60
133
+ ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 62
130
134
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE] = "POST_PROJECTILE_INIT_LATE"
131
- ____exports.ModCallbackCustom.POST_PURCHASE = 61
135
+ ____exports.ModCallbackCustom.POST_PURCHASE = 63
132
136
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PURCHASE] = "POST_PURCHASE"
133
- ____exports.ModCallbackCustom.POST_ROCK_RENDER = 62
137
+ ____exports.ModCallbackCustom.POST_ROCK_RENDER = 64
134
138
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_RENDER] = "POST_ROCK_RENDER"
135
- ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 63
139
+ ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 65
136
140
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_UPDATE] = "POST_ROCK_UPDATE"
137
- ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 64
141
+ ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 66
138
142
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED] = "POST_ROOM_CLEAR_CHANGED"
139
- ____exports.ModCallbackCustom.POST_SACRIFICE = 65
143
+ ____exports.ModCallbackCustom.POST_SACRIFICE = 67
140
144
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SACRIFICE] = "POST_SACRIFICE"
141
- ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 66
145
+ ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 68
142
146
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED] = "POST_SLOT_ANIMATION_CHANGED"
143
- ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 67
147
+ ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 69
144
148
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_DESTROYED] = "POST_SLOT_DESTROYED"
145
- ____exports.ModCallbackCustom.POST_SLOT_INIT = 68
149
+ ____exports.ModCallbackCustom.POST_SLOT_INIT = 70
146
150
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_INIT] = "POST_SLOT_INIT"
147
- ____exports.ModCallbackCustom.POST_SLOT_RENDER = 69
151
+ ____exports.ModCallbackCustom.POST_SLOT_RENDER = 71
148
152
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_RENDER] = "POST_SLOT_RENDER"
149
- ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 70
153
+ ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 72
150
154
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_UPDATE] = "POST_SLOT_UPDATE"
151
- ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 71
155
+ ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 73
152
156
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_RENDER] = "POST_SPIKES_RENDER"
153
- ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 72
157
+ ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 74
154
158
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_UPDATE] = "POST_SPIKES_UPDATE"
155
- ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 73
159
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 75
156
160
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_LATE] = "POST_TEAR_INIT_LATE"
157
- ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 74
161
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 76
158
162
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE] = "POST_TEAR_INIT_VERY_LATE"
159
- ____exports.ModCallbackCustom.POST_TNT_RENDER = 75
163
+ ____exports.ModCallbackCustom.POST_TNT_RENDER = 77
160
164
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_RENDER] = "POST_TNT_RENDER"
161
- ____exports.ModCallbackCustom.POST_TNT_UPDATE = 76
165
+ ____exports.ModCallbackCustom.POST_TNT_UPDATE = 78
162
166
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_UPDATE] = "POST_TNT_UPDATE"
163
- ____exports.ModCallbackCustom.POST_TRANSFORMATION = 77
167
+ ____exports.ModCallbackCustom.POST_TRANSFORMATION = 79
164
168
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRANSFORMATION] = "POST_TRANSFORMATION"
165
- ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 78
169
+ ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 80
166
170
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRINKET_BREAK] = "POST_TRINKET_BREAK"
167
- ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 79
171
+ ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 81
168
172
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_BERSERK_DEATH] = "PRE_BERSERK_DEATH"
169
- ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 80
173
+ ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 82
170
174
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE] = "PRE_CUSTOM_REVIVE"
171
- ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 81
175
+ ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 83
172
176
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_ITEM_PICKUP] = "PRE_ITEM_PICKUP"
173
- ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 82
177
+ ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 84
174
178
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_NEW_LEVEL] = "PRE_NEW_LEVEL"
175
179
  return ____exports
@@ -1,4 +1,9 @@
1
1
  export declare enum StageTravelState {
2
- NONE = 0
2
+ NONE = 0,
3
+ PLAYERS_JUMPING_DOWN = 1,
4
+ PIXELATION_TO_BLACK = 2,
5
+ PAUSING_ON_BLACK = 3,
6
+ PIXELATION_TO_ROOM = 4,
7
+ PLAYERS_LAYING_DOWN = 5
3
8
  }
4
9
  //# sourceMappingURL=StageTravelState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StageTravelState.d.ts","sourceRoot":"","sources":["../../../src/enums/private/StageTravelState.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,IAAI,IAAA;CAEL"}
1
+ {"version":3,"file":"StageTravelState.d.ts","sourceRoot":"","sources":["../../../src/enums/private/StageTravelState.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,IAAI,IAAA;IACJ,oBAAoB,IAAA;IACpB,mBAAmB,IAAA;IACnB,gBAAgB,IAAA;IAChB,kBAAkB,IAAA;IAClB,mBAAmB,IAAA;CACpB"}
@@ -2,4 +2,14 @@ local ____exports = {}
2
2
  ____exports.StageTravelState = {}
3
3
  ____exports.StageTravelState.NONE = 0
4
4
  ____exports.StageTravelState[____exports.StageTravelState.NONE] = "NONE"
5
+ ____exports.StageTravelState.PLAYERS_JUMPING_DOWN = 1
6
+ ____exports.StageTravelState[____exports.StageTravelState.PLAYERS_JUMPING_DOWN] = "PLAYERS_JUMPING_DOWN"
7
+ ____exports.StageTravelState.PIXELATION_TO_BLACK = 2
8
+ ____exports.StageTravelState[____exports.StageTravelState.PIXELATION_TO_BLACK] = "PIXELATION_TO_BLACK"
9
+ ____exports.StageTravelState.PAUSING_ON_BLACK = 3
10
+ ____exports.StageTravelState[____exports.StageTravelState.PAUSING_ON_BLACK] = "PAUSING_ON_BLACK"
11
+ ____exports.StageTravelState.PIXELATION_TO_ROOM = 4
12
+ ____exports.StageTravelState[____exports.StageTravelState.PIXELATION_TO_ROOM] = "PIXELATION_TO_ROOM"
13
+ ____exports.StageTravelState.PLAYERS_LAYING_DOWN = 5
14
+ ____exports.StageTravelState[____exports.StageTravelState.PLAYERS_LAYING_DOWN] = "PLAYERS_LAYING_DOWN"
5
15
  return ____exports
@@ -0,0 +1,6 @@
1
+ export declare enum TrapdoorAnimation {
2
+ OPENED = "Opened",
3
+ CLOSED = "Closed",
4
+ OPEN_ANIMATION = "Open Animation"
5
+ }
6
+ //# sourceMappingURL=TrapdoorAnimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrapdoorAnimation.d.ts","sourceRoot":"","sources":["../../../src/enums/private/TrapdoorAnimation.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,cAAc,mBAAmB;CAClC"}
@@ -0,0 +1,6 @@
1
+ local ____exports = {}
2
+ ____exports.TrapdoorAnimation = {}
3
+ ____exports.TrapdoorAnimation.OPENED = "Opened"
4
+ ____exports.TrapdoorAnimation.CLOSED = "Closed"
5
+ ____exports.TrapdoorAnimation.OPEN_ANIMATION = "Open Animation"
6
+ return ____exports
@@ -1,8 +1,8 @@
1
1
  import { ItemPoolType } from "isaac-typescript-definitions";
2
2
  /**
3
3
  * Helper function to get the item pool type that a given collectible came from. Since there is no
4
- * native method in the API to get this, we listen in the PreGetCollectible callback for item pool
5
- * types, and then assume that the next spawned collectible will match.
4
+ * native method in the API to get this, we listen in the `PRE_GET_COLLECTIBLE` callback for item
5
+ * pool types, and then assume that the next spawned collectible will match.
6
6
  */
7
7
  export declare function getCollectibleItemPoolType(collectible: EntityPickup): ItemPoolType;
8
8
  //# sourceMappingURL=collectibleItemPoolType.d.ts.map
@@ -33,8 +33,8 @@ function ____exports.collectibleItemPoolTypeInit(self, mod)
33
33
  mod:AddCallback(ModCallback.POST_PICKUP_INIT, postPickupInitCollectible, PickupVariant.COLLECTIBLE)
34
34
  end
35
35
  --- Helper function to get the item pool type that a given collectible came from. Since there is no
36
- -- native method in the API to get this, we listen in the PreGetCollectible callback for item pool
37
- -- types, and then assume that the next spawned collectible will match.
36
+ -- native method in the API to get this, we listen in the `PRE_GET_COLLECTIBLE` callback for item
37
+ -- pool types, and then assume that the next spawned collectible will match.
38
38
  function ____exports.getCollectibleItemPoolType(self, collectible)
39
39
  errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
40
40
  if not isCollectible(nil, collectible) then
@@ -1,6 +1,9 @@
1
1
  import { GridCollisionClass, GridEntityType } from "isaac-typescript-definitions";
2
+ import { CustomGridEntityData } from "../interfaces/CustomGridEntityData";
2
3
  /**
3
- * Helper function to spawn a custom grid entity.
4
+ * Helper function to spawn a custom grid entity. Custom grid entities are persistent in that they
5
+ * will reappear if the player leaves and re-enters the room. (It will be manually respawned in the
6
+ * `POST_NEW_ROOM` callback.)
4
7
  *
5
8
  * This is an IsaacScript feature because the vanilla game does not support any custom grid
6
9
  * entities. Under the hood, IsaacScript accomplishes this by using decorations with an arbitrary
@@ -17,12 +20,13 @@ import { GridCollisionClass, GridEntityType } from "isaac-typescript-definitions
17
20
  * @param gridIndexOrPosition The grid index or position in the room that you want to spawn the grid
18
21
  * entity at. If a position is specified, the closest grid index will be
19
22
  * used.
20
- * @param anm2Path The path to the ANM2 file to use for the sprite.
21
- * @param defaultAnimation The name of the animation to play after the sprite is initialized and
22
- * after the player re-enters a room with this grid entity in it.
23
23
  * @param gridCollisionClass The collision class that you want the custom grid entity to have.
24
+ * @param anm2Path The path to the ANM2 file to use for the sprite.
25
+ * @param defaultAnimation Optional. The name of the animation to play after the sprite is
26
+ * initialized and after the player re-enters a room with this grid entity
27
+ * in it. If not specified, the default animation in the anm2 will be used.
24
28
  */
25
- export declare function spawnCustomGridEntity(gridEntityTypeCustom: GridEntityType, gridIndexOrPosition: int | Vector, anm2Path: string, defaultAnimation: string, gridCollisionClass: GridCollisionClass): GridEntity;
29
+ export declare function spawnCustomGridEntity(gridEntityTypeCustom: GridEntityType, gridIndexOrPosition: int | Vector, gridCollisionClass: GridCollisionClass, anm2Path: string, defaultAnimation?: string): GridEntity;
26
30
  /**
27
31
  * Helper function to remove a custom grid entity created by the `spawnCustomGrid` function.
28
32
  *
@@ -39,4 +43,12 @@ export declare function spawnCustomGridEntity(gridEntityTypeCustom: GridEntityTy
39
43
  * given location or if the given grid entity was not a custom grid entity.
40
44
  */
41
45
  export declare function removeCustomGrid(gridIndexOrPositionOrGridEntity: int | Vector | GridEntity, updateRoom?: boolean): GridEntity | undefined;
46
+ /**
47
+ * Helper function to get the custom grid entities in the current room. Returns an array of tuples
48
+ * containing the raw decoration grid entity and the associated entity data.
49
+ */
50
+ export declare function getCustomGridEntities(): Array<[
51
+ gridEntity: GridEntity,
52
+ data: CustomGridEntityData
53
+ ]>;
42
54
  //# sourceMappingURL=customGridEntity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"customGridEntity.d.ts","sourceRoot":"","sources":["../../src/features/customGridEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,cAAc,EAGf,MAAM,8BAA8B,CAAC;AAgFtC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,oBAAoB,EAAE,cAAc,EACpC,mBAAmB,EAAE,GAAG,GAAG,MAAM,EACjC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,kBAAkB,GACrC,UAAU,CA4CZ;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,+BAA+B,EAAE,GAAG,GAAG,MAAM,GAAG,UAAU,EAC1D,UAAU,UAAO,GAChB,UAAU,GAAG,SAAS,CAqCxB"}
1
+ {"version":3,"file":"customGridEntity.d.ts","sourceRoot":"","sources":["../../src/features/customGridEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,cAAc,EAGf,MAAM,8BAA8B,CAAC;AAatC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAsH1E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,qBAAqB,CACnC,oBAAoB,EAAE,cAAc,EACpC,mBAAmB,EAAE,GAAG,GAAG,MAAM,EACjC,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,UAAU,CAgDZ;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,+BAA+B,EAAE,GAAG,GAAG,MAAM,GAAG,UAAU,EAC1D,UAAU,UAAO,GAChB,UAAU,GAAG,SAAS,CAqCxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,KAAK,CAC5C;IAAC,UAAU,EAAE,UAAU;IAAE,IAAI,EAAE,oBAAoB;CAAC,CACrD,CAiBA"}
@@ -6,6 +6,7 @@ local ____exports = {}
6
6
  local preUseItemWeNeedToGoDeeper, postNewRoomReordered, v
7
7
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
8
8
  local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
9
+ local GridCollisionClass = ____isaac_2Dtypescript_2Ddefinitions.GridCollisionClass
9
10
  local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
10
11
  local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
11
12
  local ____cachedClasses = require("cachedClasses")
@@ -25,10 +26,44 @@ local ____roomData = require("functions.roomData")
25
26
  local getRoomListIndex = ____roomData.getRoomListIndex
26
27
  local ____vector = require("functions.vector")
27
28
  local isVector = ____vector.isVector
29
+ local ____runInNFrames = require("features.runInNFrames")
30
+ local runNextGameFrame = ____runInNFrames.runNextGameFrame
28
31
  local ____exports = require("features.saveDataManager.exports")
29
32
  local saveDataManager = ____exports.saveDataManager
30
- function preUseItemWeNeedToGoDeeper(self, _collectibleType, _rng, _player, _useFlags, _activeSlot, _customVarData)
31
- return nil
33
+ function preUseItemWeNeedToGoDeeper(self, _collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData)
34
+ local room = game:GetRoom()
35
+ local roomListIndex = getRoomListIndex(nil)
36
+ local roomCustomGridEntities = v.level.customGridEntities:get(roomListIndex)
37
+ if roomCustomGridEntities == nil then
38
+ return nil
39
+ end
40
+ local gridIndex = room:GetGridIndex(player.Position)
41
+ local customGridEntity = roomCustomGridEntities:get(gridIndex)
42
+ if customGridEntity == nil then
43
+ return nil
44
+ end
45
+ if customGridEntity.gridCollisionClass ~= GridCollisionClass.NONE then
46
+ return nil
47
+ end
48
+ removeGridEntity(nil, customGridEntity.gridIndex, false)
49
+ local playerPtr = EntityPtr(player)
50
+ runNextGameFrame(
51
+ nil,
52
+ function()
53
+ local futureEntity = playerPtr.Ref
54
+ if futureEntity == nil then
55
+ return
56
+ end
57
+ local futurePlayer = futureEntity:ToPlayer()
58
+ if futurePlayer == nil then
59
+ return
60
+ end
61
+ v.room.manuallyUsingShovel = true
62
+ futurePlayer:UseActiveItem(CollectibleType.WE_NEED_TO_GO_DEEPER)
63
+ v.room.manuallyUsingShovel = false
64
+ end
65
+ )
66
+ return true
32
67
  end
33
68
  function postNewRoomReordered(self)
34
69
  local roomListIndex = getRoomListIndex(nil)
@@ -44,20 +79,24 @@ function postNewRoomReordered(self)
44
79
  local decoration = room:GetGridEntity(gridIndex)
45
80
  if decoration == nil then
46
81
  roomCustomGridEntities:delete(gridIndex)
47
- goto __continue7
82
+ goto __continue13
48
83
  end
49
84
  local sprite = decoration:GetSprite()
50
85
  sprite:Load(data.anm2Path, true)
51
- sprite:Play(data.defaultAnimation, true)
86
+ local animationToPlay = data.defaultAnimation == nil and sprite:GetDefaultAnimation() or data.defaultAnimation
87
+ sprite:Play(animationToPlay, true)
52
88
  end
53
- ::__continue7::
89
+ ::__continue13::
54
90
  end
55
91
  end
56
92
  local FEATURE_NAME = "customGridEntity"
57
- v = {level = {customGridEntities = __TS__New(
58
- DefaultMap,
59
- function() return __TS__New(Map) end
60
- )}}
93
+ v = {
94
+ level = {customGridEntities = __TS__New(
95
+ DefaultMap,
96
+ function() return __TS__New(Map) end
97
+ )},
98
+ room = {manuallyUsingShovel = false}
99
+ }
61
100
  ---
62
101
  -- @internal
63
102
  function ____exports.customGridEntityInit(self, mod)
@@ -65,7 +104,9 @@ function ____exports.customGridEntityInit(self, mod)
65
104
  mod:AddCallback(ModCallback.PRE_USE_ITEM, preUseItemWeNeedToGoDeeper, CollectibleType.WE_NEED_TO_GO_DEEPER)
66
105
  mod:AddCallbackCustom(ModCallbackCustom.POST_NEW_ROOM_REORDERED, postNewRoomReordered)
67
106
  end
68
- --- Helper function to spawn a custom grid entity.
107
+ --- Helper function to spawn a custom grid entity. Custom grid entities are persistent in that they
108
+ -- will reappear if the player leaves and re-enters the room. (It will be manually respawned in the
109
+ -- `POST_NEW_ROOM` callback.)
69
110
  --
70
111
  -- This is an IsaacScript feature because the vanilla game does not support any custom grid
71
112
  -- entities. Under the hood, IsaacScript accomplishes this by using decorations with an arbitrary
@@ -82,11 +123,12 @@ end
82
123
  -- @param gridIndexOrPosition The grid index or position in the room that you want to spawn the grid
83
124
  -- entity at. If a position is specified, the closest grid index will be
84
125
  -- used.
85
- -- @param anm2Path The path to the ANM2 file to use for the sprite.
86
- -- @param defaultAnimation The name of the animation to play after the sprite is initialized and
87
- -- after the player re-enters a room with this grid entity in it.
88
126
  -- @param gridCollisionClass The collision class that you want the custom grid entity to have.
89
- function ____exports.spawnCustomGridEntity(self, gridEntityTypeCustom, gridIndexOrPosition, anm2Path, defaultAnimation, gridCollisionClass)
127
+ -- @param anm2Path The path to the ANM2 file to use for the sprite.
128
+ -- @param defaultAnimation Optional. The name of the animation to play after the sprite is
129
+ -- initialized and after the player re-enters a room with this grid entity
130
+ -- in it. If not specified, the default animation in the anm2 will be used.
131
+ function ____exports.spawnCustomGridEntity(self, gridEntityTypeCustom, gridIndexOrPosition, gridCollisionClass, anm2Path, defaultAnimation)
90
132
  errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
91
133
  local room = game:GetRoom()
92
134
  local roomListIndex = getRoomListIndex(nil)
@@ -99,7 +141,8 @@ function ____exports.spawnCustomGridEntity(self, gridEntityTypeCustom, gridIndex
99
141
  end
100
142
  local sprite = decoration:GetSprite()
101
143
  sprite:Load(anm2Path, true)
102
- sprite:Play(defaultAnimation, true)
144
+ local animationToPlay = defaultAnimation == nil and sprite:GetDefaultAnimation() or defaultAnimation
145
+ sprite:Play(animationToPlay, true)
103
146
  local customGridEntityData = {
104
147
  gridEntityTypeCustom = gridEntityTypeCustom,
105
148
  roomListIndex = roomListIndex,
@@ -159,4 +202,24 @@ function ____exports.removeCustomGrid(self, gridIndexOrPositionOrGridEntity, upd
159
202
  removeGridEntity(nil, decoration, updateRoom)
160
203
  return decoration
161
204
  end
205
+ --- Helper function to get the custom grid entities in the current room. Returns an array of tuples
206
+ -- containing the raw decoration grid entity and the associated entity data.
207
+ function ____exports.getCustomGridEntities(self)
208
+ local roomListIndex = getRoomListIndex(nil)
209
+ local roomCustomGridEntities = v.level.customGridEntities:get(roomListIndex)
210
+ if roomCustomGridEntities == nil then
211
+ return {}
212
+ end
213
+ local room = game:GetRoom()
214
+ local customGridEntities = {}
215
+ for ____, ____value in __TS__Iterator(roomCustomGridEntities:entries()) do
216
+ local gridIndex = ____value[1]
217
+ local data = ____value[2]
218
+ local gridEntity = room:GetGridEntity(gridIndex)
219
+ if gridEntity ~= nil then
220
+ customGridEntities[#customGridEntities + 1] = {gridEntity, data}
221
+ end
222
+ end
223
+ return customGridEntities
224
+ end
162
225
  return ____exports
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../../src/features/customStage/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAOX,MAAM,8BAA8B,CAAC;AAsBtC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CA+GlE;AAUD,wBAAgB,mBAAmB,IAAI,IAAI,CAQ1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACtB,IAAI,CAGN"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../../src/features/customStage/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAMX,MAAM,8BAA8B,CAAC;AAoBtC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAwGlE;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAQ1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACtB,IAAI,CAGN"}
@@ -1,13 +1,10 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local Map = ____lualib.Map
3
3
  local ____exports = {}
4
- local postRoomTransition
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
- local Direction = ____isaac_2Dtypescript_2Ddefinitions.Direction
7
5
  local GridRoom = ____isaac_2Dtypescript_2Ddefinitions.GridRoom
8
6
  local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
9
7
  local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
10
- local RoomTransitionAnim = ____isaac_2Dtypescript_2Ddefinitions.RoomTransitionAnim
11
8
  local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
12
9
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
13
10
  local ____cachedClasses = require("cachedClasses")
@@ -19,8 +16,6 @@ local getEntityIDFromConstituents = ____entities.getEntityIDFromConstituents
19
16
  local ____log = require("functions.log")
20
17
  local log = ____log.log
21
18
  local logError = ____log.logError
22
- local ____playerCenter = require("functions.playerCenter")
23
- local movePlayersToCenter = ____playerCenter.movePlayersToCenter
24
19
  local ____rng = require("functions.rng")
25
20
  local newRNG = ____rng.newRNG
26
21
  local ____roomData = require("functions.roomData")
@@ -30,8 +25,6 @@ local getRooms = ____rooms.getRooms
30
25
  local ____stage = require("functions.stage")
31
26
  local getGotoCommand = ____stage.getGotoCommand
32
27
  local setStage = ____stage.setStage
33
- local ____runNextRoom = require("features.runNextRoom")
34
- local runNextRoom = ____runNextRoom.runNextRoom
35
28
  local ____customStageUtils = require("features.customStage.customStageUtils")
36
29
  local getRandomCustomStageRoom = ____customStageUtils.getRandomCustomStageRoom
37
30
  local ____streakText = require("features.customStage.streakText")
@@ -41,10 +34,6 @@ local v = ____v.default
41
34
  local customBossPNGPaths = ____v.customBossPNGPaths
42
35
  local customStageCachedRoomData = ____v.customStageCachedRoomData
43
36
  local customStagesMap = ____v.customStagesMap
44
- function postRoomTransition(self)
45
- movePlayersToCenter(nil)
46
- topStreakTextStart(nil)
47
- end
48
37
  local DEFAULT_BASE_STAGE = LevelStage.BASEMENT_2
49
38
  local DEFAULT_BASE_STAGE_TYPE = StageType.ORIGINAL
50
39
  --- Helper function to warp to a custom stage/level.
@@ -116,8 +105,6 @@ function ____exports.setCustomStage(self, name, verbose)
116
105
  local stageType = StageType.WRATH_OF_THE_LAMB
117
106
  level:SetStage(stage, stageType)
118
107
  reorderedCallbacksSetStage(nil, stage, stageType)
119
- game:StartRoomTransition(startingRoomGridIndex, Direction.NO_DIRECTION, RoomTransitionAnim.FADE)
120
- runNextRoom(nil, postRoomTransition)
121
108
  end
122
109
  function ____exports.setCustomStageDebug(self)
123
110
  local customStage = v.run.currentCustomStage
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/features/customStage/init.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAgCxD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA2BtD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/features/customStage/init.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAiCxD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA4BtD"}
@@ -3,14 +3,18 @@ local Map = ____lualib.Map
3
3
  local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
4
4
  local __TS__New = ____lualib.__TS__New
5
5
  local ____exports = {}
6
- local initRoomTypeMaps, getRoomTypeMap, postRender, postGameStarted, getShaderParams, postGridEntityBrokenRockAlt, postGridEntityBrokenInit, postNewRoomReordered
6
+ local initRoomTypeMaps, getRoomTypeMap, postRender, postCurseEval, postGameStarted, getShaderParams, postGridEntityBrokenRockAlt, postGridEntityBrokenInit, postNewRoomReordered
7
7
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
8
8
  local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
9
+ local LevelCurse = ____isaac_2Dtypescript_2Ddefinitions.LevelCurse
9
10
  local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
10
11
  local ____ModCallbackCustom = require("enums.ModCallbackCustom")
11
12
  local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
12
13
  local ____array = require("functions.array")
13
14
  local isArray = ____array.isArray
15
+ local ____flag = require("functions.flag")
16
+ local hasFlag = ____flag.hasFlag
17
+ local removeFlag = ____flag.removeFlag
14
18
  local ____exports = require("features.saveDataManager.exports")
15
19
  local saveDataManager = ____exports.saveDataManager
16
20
  local ____backdrop = require("features.customStage.backdrop")
@@ -80,6 +84,16 @@ function postRender(self)
80
84
  streakTextPostRender(nil)
81
85
  versusScreenPostRender(nil)
82
86
  end
87
+ function postCurseEval(self, curses)
88
+ local customStage = v.run.currentCustomStage
89
+ if customStage == nil then
90
+ return nil
91
+ end
92
+ if hasFlag(nil, curses, LevelCurse.MAZE) then
93
+ return removeFlag(nil, curses, LevelCurse.MAZE)
94
+ end
95
+ return nil
96
+ end
83
97
  function postGameStarted(self)
84
98
  streakTextPostGameStarted(nil)
85
99
  end
@@ -126,6 +140,7 @@ function ____exports.customStageInit(self, mod)
126
140
  streakTextInit(nil)
127
141
  versusScreenInit(nil)
128
142
  mod:AddCallback(ModCallback.POST_RENDER, postRender)
143
+ mod:AddCallback(ModCallback.POST_CURSE_EVAL, postCurseEval)
129
144
  mod:AddCallback(ModCallback.POST_GAME_STARTED, postGameStarted)
130
145
  mod:AddCallback(ModCallback.GET_SHADER_PARAMS, getShaderParams)
131
146
  mod:AddCallbackCustom(ModCallbackCustom.POST_GRID_ENTITY_BROKEN, postGridEntityBrokenRockAlt, GridEntityType.ROCK_ALT)
@@ -1 +1 @@
1
- {"version":3,"file":"streakText.d.ts","sourceRoot":"","sources":["../../../src/features/customStage/streakText.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AA0F3D;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAMrC;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAS3C;AAmFD,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AAGD,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GACjB,IAAI,CAYN;AAiFD,wBAAgB,kBAAkB,IAAI,IAAI,CAUzC"}
1
+ {"version":3,"file":"streakText.d.ts","sourceRoot":"","sources":["../../../src/features/customStage/streakText.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AA0F3D;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAMrC;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAS3C;AAmFD,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AAGD,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GACjB,IAAI,CAYN;AAgFD,wBAAgB,kBAAkB,IAAI,IAAI,CAUzC"}
@@ -127,7 +127,6 @@ function renderSprite(self, customStage, sprite, position)
127
127
  until true
128
128
  local adjustedX = centeredX + adjustment
129
129
  local adjustedY = position.Y + STREAK_TEXT_BOTTOM_Y_OFFSET
130
- sprite:RenderLayer(0, position)
131
130
  font:DrawStringScaled(
132
131
  name,
133
132
  adjustedX,
@@ -0,0 +1,2 @@
1
+ export declare function drawBlackSprite(): void;
2
+ //# sourceMappingURL=blackSprite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blackSprite.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/blackSprite.ts"],"names":[],"mappings":"AAUA,wBAAgB,eAAe,IAAI,IAAI,CAWtC"}
@@ -0,0 +1,19 @@
1
+ local ____exports = {}
2
+ local ____constants = require("constants")
3
+ local VectorZero = ____constants.VectorZero
4
+ local ____StageTravelState = require("enums.private.StageTravelState")
5
+ local StageTravelState = ____StageTravelState.StageTravelState
6
+ local ____v = require("features.customTrapdoor.v")
7
+ local v = ____v.default
8
+ local blackSprite = Sprite()
9
+ function ____exports.drawBlackSprite(self)
10
+ if v.run.state ~= StageTravelState.PAUSING_ON_BLACK then
11
+ return
12
+ end
13
+ if not blackSprite:IsLoaded() then
14
+ blackSprite:Load("gfx/ui/boss/versusscreen.anm2", true)
15
+ blackSprite:SetFrame("Scene", 0)
16
+ end
17
+ blackSprite:RenderLayer(0, VectorZero)
18
+ end
19
+ return ____exports
@@ -1,10 +1,15 @@
1
1
  import { GridEntityType } from "isaac-typescript-definitions";
2
2
  export declare const CUSTOM_TRAPDOOR_FEATURE_NAME = "customTrapdoor";
3
+ export declare const GridEntityTypeCustom: {
4
+ readonly TRAPDOOR_CUSTOM: GridEntityType;
5
+ };
3
6
  /** This also applies to crawl spaces. The value was determined through trial and error. */
4
7
  export declare const TRAPDOOR_OPEN_DISTANCE = 60;
5
8
  export declare const TRAPDOOR_OPEN_DISTANCE_AFTER_BOSS: number;
6
9
  export declare const TRAPDOOR_BOSS_REACTION_FRAMES = 30;
7
- export declare const GridEntityTypeCustom: {
8
- readonly TRAPDOOR_CUSTOM: GridEntityType;
9
- };
10
+ export declare const TRAPDOOR_TOUCH_DISTANCE = 16.5;
11
+ export declare const ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL: ReadonlySet<string>;
12
+ export declare const PIXELATION_TO_BLACK_FRAMES = 52;
13
+ export declare const OTHER_PLAYER_TRAPDOOR_JUMP_DELAY_GAME_FRAMES = 6;
14
+ export declare const OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES = 5;
10
15
  //# sourceMappingURL=customTrapdoorConstants.d.ts.map