isaacscript-common 6.11.2 → 6.14.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 (189) hide show
  1. package/dist/callbacks/postGridEntityCustomRender.d.ts +2 -0
  2. package/dist/callbacks/postGridEntityCustomRender.d.ts.map +1 -0
  3. package/dist/callbacks/postGridEntityCustomRender.lua +36 -0
  4. package/dist/callbacks/postGridEntityCustomUpdate.d.ts +2 -0
  5. package/dist/callbacks/postGridEntityCustomUpdate.d.ts.map +1 -0
  6. package/dist/callbacks/postGridEntityCustomUpdate.lua +36 -0
  7. package/dist/callbacks/postNewRoomEarly.lua +2 -2
  8. package/dist/callbacks/postPickupInitFirst.lua +1 -20
  9. package/dist/callbacks/reorderedCallbacks.d.ts +5 -5
  10. package/dist/callbacks/reorderedCallbacks.d.ts.map +1 -1
  11. package/dist/callbacks/reorderedCallbacks.lua +5 -5
  12. package/dist/callbacks/subscriptions/postGridEntityCustomRender.d.ts +6 -0
  13. package/dist/callbacks/subscriptions/postGridEntityCustomRender.d.ts.map +1 -0
  14. package/dist/callbacks/subscriptions/postGridEntityCustomRender.lua +29 -0
  15. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.d.ts +6 -0
  16. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.d.ts.map +1 -0
  17. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.lua +29 -0
  18. package/dist/constants.d.ts +1 -5
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.lua +0 -7
  21. package/dist/constantsFirstLast.d.ts +5 -1
  22. package/dist/constantsFirstLast.d.ts.map +1 -1
  23. package/dist/constantsFirstLast.lua +6 -0
  24. package/dist/enums/ModCallbackCustom.d.ts +89 -66
  25. package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
  26. package/dist/enums/ModCallbackCustom.lua +62 -58
  27. package/dist/enums/private/SerializationBrand.d.ts +1 -1
  28. package/dist/enums/private/SerializationBrand.lua +1 -1
  29. package/dist/features/collectibleItemPoolType.d.ts +2 -2
  30. package/dist/features/collectibleItemPoolType.lua +2 -2
  31. package/dist/features/customGridEntity.d.ts +11 -2
  32. package/dist/features/customGridEntity.d.ts.map +1 -1
  33. package/dist/features/customGridEntity.lua +22 -2
  34. package/dist/features/customTrapdoor/blackSprite.d.ts.map +1 -1
  35. package/dist/features/customTrapdoor/blackSprite.lua +6 -6
  36. package/dist/features/customTrapdoor/customTrapdoorConstants.d.ts +2 -2
  37. package/dist/features/customTrapdoor/customTrapdoorConstants.d.ts.map +1 -1
  38. package/dist/features/customTrapdoor/customTrapdoorConstants.lua +2 -2
  39. package/dist/features/customTrapdoor/init.d.ts.map +1 -1
  40. package/dist/features/customTrapdoor/init.lua +4 -3
  41. package/dist/features/customTrapdoor/touched.d.ts.map +1 -1
  42. package/dist/features/customTrapdoor/touched.lua +51 -33
  43. package/dist/features/deployJSONRoom.d.ts +2 -2
  44. package/dist/features/deployJSONRoom.lua +2 -2
  45. package/dist/features/extraConsoleCommands/exports.d.ts +4 -3
  46. package/dist/features/extraConsoleCommands/exports.d.ts.map +1 -1
  47. package/dist/features/extraConsoleCommands/exports.lua +4 -3
  48. package/dist/features/extraConsoleCommands/init.lua +12 -14
  49. package/dist/features/extraConsoleCommands/listCommands.d.ts +15 -19
  50. package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
  51. package/dist/features/extraConsoleCommands/listCommands.lua +34 -42
  52. package/dist/features/pause.d.ts +1 -1
  53. package/dist/features/pause.d.ts.map +1 -1
  54. package/dist/features/pause.lua +87 -8
  55. package/dist/features/persistentEntities.d.ts.map +1 -1
  56. package/dist/features/persistentEntities.lua +7 -7
  57. package/dist/features/pickupIndex.d.ts +19 -0
  58. package/dist/features/pickupIndex.d.ts.map +1 -0
  59. package/dist/features/pickupIndex.lua +197 -0
  60. package/dist/features/roomHistory.d.ts +24 -0
  61. package/dist/features/roomHistory.d.ts.map +1 -0
  62. package/dist/features/roomHistory.lua +89 -0
  63. package/dist/functions/collectibles.d.ts +26 -13
  64. package/dist/functions/collectibles.d.ts.map +1 -1
  65. package/dist/functions/collectibles.lua +26 -13
  66. package/dist/functions/color.d.ts +10 -0
  67. package/dist/functions/color.d.ts.map +1 -1
  68. package/dist/functions/color.lua +24 -0
  69. package/dist/functions/entities.d.ts +3 -3
  70. package/dist/functions/entities.d.ts.map +1 -1
  71. package/dist/functions/entities.lua +8 -3
  72. package/dist/functions/gridEntities.d.ts +4 -22
  73. package/dist/functions/gridEntities.d.ts.map +1 -1
  74. package/dist/functions/gridEntities.lua +4 -61
  75. package/dist/functions/isaacAPIClass.d.ts +64 -0
  76. package/dist/functions/isaacAPIClass.d.ts.map +1 -1
  77. package/dist/functions/isaacAPIClass.lua +84 -1
  78. package/dist/functions/kColor.d.ts +10 -0
  79. package/dist/functions/kColor.d.ts.map +1 -1
  80. package/dist/functions/kColor.lua +24 -0
  81. package/dist/functions/map.d.ts +2 -0
  82. package/dist/functions/map.d.ts.map +1 -1
  83. package/dist/functions/map.lua +7 -0
  84. package/dist/functions/npcs.d.ts +2 -2
  85. package/dist/functions/npcs.lua +2 -2
  86. package/dist/functions/pickupVariants.d.ts +2 -2
  87. package/dist/functions/pickupVariants.d.ts.map +1 -1
  88. package/dist/functions/pickupVariants.lua +2 -2
  89. package/dist/functions/playerCenter.lua +2 -2
  90. package/dist/functions/playerIndex.d.ts +0 -3
  91. package/dist/functions/playerIndex.d.ts.map +1 -1
  92. package/dist/functions/playerIndex.lua +4 -23
  93. package/dist/functions/random.d.ts +1 -1
  94. package/dist/functions/random.lua +1 -1
  95. package/dist/functions/rockAlt.d.ts +28 -0
  96. package/dist/functions/rockAlt.d.ts.map +1 -0
  97. package/dist/functions/rockAlt.lua +140 -0
  98. package/dist/functions/roomData.d.ts +3 -2
  99. package/dist/functions/roomData.d.ts.map +1 -1
  100. package/dist/functions/roomData.lua +3 -2
  101. package/dist/functions/rooms.d.ts +6 -6
  102. package/dist/functions/rooms.lua +6 -6
  103. package/dist/functions/set.d.ts +2 -0
  104. package/dist/functions/set.d.ts.map +1 -1
  105. package/dist/functions/set.lua +6 -0
  106. package/dist/functions/stage.d.ts +1 -0
  107. package/dist/functions/stage.d.ts.map +1 -1
  108. package/dist/functions/stage.lua +4 -0
  109. package/dist/functions/vector.d.ts +11 -0
  110. package/dist/functions/vector.d.ts.map +1 -1
  111. package/dist/functions/vector.lua +23 -0
  112. package/dist/index.d.ts +4 -0
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.lua +31 -0
  115. package/dist/initCustomCallbacks.d.ts.map +1 -1
  116. package/dist/initCustomCallbacks.lua +6 -0
  117. package/dist/initFeatures.d.ts.map +1 -1
  118. package/dist/initFeatures.lua +6 -0
  119. package/dist/interfaces/AddCallbackParameterCustom.d.ts +4 -0
  120. package/dist/interfaces/AddCallbackParameterCustom.d.ts.map +1 -1
  121. package/dist/interfaces/RoomDescription.d.ts +14 -0
  122. package/dist/interfaces/RoomDescription.d.ts.map +1 -0
  123. package/dist/interfaces/RoomDescription.lua +2 -0
  124. package/dist/objects/callbackRegisterFunctions.d.ts.map +1 -1
  125. package/dist/objects/callbackRegisterFunctions.lua +6 -0
  126. package/dist/types/CollectibleIndex.d.ts +1 -1
  127. package/dist/types/PickupIndex.d.ts +17 -0
  128. package/dist/types/PickupIndex.d.ts.map +1 -0
  129. package/dist/types/PickupIndex.lua +2 -0
  130. package/dist/types/PlayerIndex.d.ts +1 -1
  131. package/dist/upgradeMod.d.ts.map +1 -1
  132. package/package.json +2 -2
  133. package/src/callbacks/postGridEntityCustomRender.ts +44 -0
  134. package/src/callbacks/postGridEntityCustomUpdate.ts +44 -0
  135. package/src/callbacks/postNewRoomEarly.ts +2 -2
  136. package/src/callbacks/postPickupInitFirst.ts +3 -32
  137. package/src/callbacks/postPlayerReorderedCallbacks.ts +3 -3
  138. package/src/callbacks/reorderedCallbacks.ts +9 -8
  139. package/src/callbacks/subscriptions/postGridEntityCustomRender.ts +41 -0
  140. package/src/callbacks/subscriptions/postGridEntityCustomUpdate.ts +41 -0
  141. package/src/constants.ts +1 -9
  142. package/src/constantsFirstLast.ts +16 -0
  143. package/src/enums/ModCallbackCustom.ts +33 -8
  144. package/src/enums/private/SerializationBrand.ts +1 -1
  145. package/src/features/collectibleItemPoolType.ts +3 -3
  146. package/src/features/customGridEntity.ts +27 -2
  147. package/src/features/customTrapdoor/blackSprite.ts +11 -5
  148. package/src/features/customTrapdoor/customTrapdoorConstants.ts +2 -2
  149. package/src/features/customTrapdoor/init.ts +7 -5
  150. package/src/features/customTrapdoor/touched.ts +59 -39
  151. package/src/features/deployJSONRoom.ts +4 -4
  152. package/src/features/extraConsoleCommands/exports.ts +4 -3
  153. package/src/features/extraConsoleCommands/init.ts +18 -14
  154. package/src/features/extraConsoleCommands/listCommands.ts +38 -43
  155. package/src/features/pause.ts +97 -7
  156. package/src/features/persistentEntities.ts +9 -8
  157. package/src/features/pickupIndex.ts +257 -0
  158. package/src/features/playerInventory.ts +2 -2
  159. package/src/features/roomHistory.ts +113 -0
  160. package/src/features/saveDataManager/main.ts +2 -2
  161. package/src/features/taintedLazarusPlayers.ts +5 -5
  162. package/src/functions/collectibles.ts +26 -13
  163. package/src/functions/color.ts +22 -0
  164. package/src/functions/entities.ts +6 -3
  165. package/src/functions/gridEntities.ts +4 -56
  166. package/src/functions/isaacAPIClass.ts +106 -1
  167. package/src/functions/kColor.ts +22 -0
  168. package/src/functions/map.ts +10 -0
  169. package/src/functions/npcs.ts +2 -2
  170. package/src/functions/pickupVariants.ts +2 -2
  171. package/src/functions/playerCenter.ts +2 -2
  172. package/src/functions/playerIndex.ts +8 -21
  173. package/src/functions/random.ts +1 -1
  174. package/src/functions/rockAlt.ts +117 -0
  175. package/src/functions/roomData.ts +3 -2
  176. package/src/functions/rooms.ts +6 -6
  177. package/src/functions/set.ts +7 -1
  178. package/src/functions/stage.ts +10 -1
  179. package/src/functions/vector.ts +23 -0
  180. package/src/index.ts +4 -0
  181. package/src/initCustomCallbacks.ts +4 -0
  182. package/src/initFeatures.ts +4 -0
  183. package/src/interfaces/AddCallbackParameterCustom.ts +4 -0
  184. package/src/interfaces/RoomDescription.ts +19 -0
  185. package/src/objects/callbackRegisterFunctions.ts +6 -0
  186. package/src/types/CollectibleIndex.ts +1 -1
  187. package/src/types/PickupIndex.ts +15 -0
  188. package/src/types/PlayerIndex.ts +1 -1
  189. 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
@@ -2,7 +2,7 @@
2
2
  * During serialization, we write an arbitrary string key to the object with a value of an empty
3
3
  * string. This is used during deserialization to instantiate the correct type of object.
4
4
  *
5
- * Note that we do not bother branding TSTL classes because we have no way to invoke the proper
5
+ * Note that we do not bother branding TSTL classes because we have no way to run the proper
6
6
  * constructor during deserialization.
7
7
  */
8
8
  export declare enum SerializationBrand {
@@ -2,7 +2,7 @@ local ____exports = {}
2
2
  --- During serialization, we write an arbitrary string key to the object with a value of an empty
3
3
  -- string. This is used during deserialization to instantiate the correct type of object.
4
4
  --
5
- -- Note that we do not bother branding TSTL classes because we have no way to invoke the proper
5
+ -- Note that we do not bother branding TSTL classes because we have no way to run the proper
6
6
  -- constructor during deserialization.
7
7
  ____exports.SerializationBrand = {}
8
8
  ____exports.SerializationBrand.DEFAULT_MAP = "__TSTL_DEFAULT_MAP"
@@ -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,4 +1,5 @@
1
1
  import { GridCollisionClass, GridEntityType } from "isaac-typescript-definitions";
2
+ import { CustomGridEntityData } from "../interfaces/CustomGridEntityData";
2
3
  /**
3
4
  * Helper function to spawn a custom grid entity. Custom grid entities are persistent in that they
4
5
  * will reappear if the player leaves and re-enters the room. (It will be manually respawned in the
@@ -36,10 +37,18 @@ export declare function spawnCustomGridEntity(gridEntityTypeCustom: GridEntityTy
36
37
  * Default is true. This is generally a good idea because if the room is not
37
38
  * updated, you will be unable to spawn another grid entity on the same tile until
38
39
  * a frame has passed. However, doing this is expensive, since it involves a call
39
- * to `Isaac.GetRoomEntities`, so set it to false if you need to invoke this
40
- * function multiple times.
40
+ * to `Isaac.GetRoomEntities`, so set it to false if you need to run this function
41
+ * multiple times.
41
42
  * @returns The grid entity that was removed. Returns undefined if no grid entity was found at the
42
43
  * given location or if the given grid entity was not a custom grid entity.
43
44
  */
44
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
+ ]>;
45
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;AAmItC;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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"}
@@ -164,8 +164,8 @@ end
164
164
  -- Default is true. This is generally a good idea because if the room is not
165
165
  -- updated, you will be unable to spawn another grid entity on the same tile until
166
166
  -- a frame has passed. However, doing this is expensive, since it involves a call
167
- -- to `Isaac.GetRoomEntities`, so set it to false if you need to invoke this
168
- -- function multiple times.
167
+ -- to `Isaac.GetRoomEntities`, so set it to false if you need to run this function
168
+ -- multiple times.
169
169
  -- @returns The grid entity that was removed. Returns undefined if no grid entity was found at the
170
170
  -- given location or if the given grid entity was not a custom grid entity.
171
171
  function ____exports.removeCustomGrid(self, gridIndexOrPositionOrGridEntity, updateRoom)
@@ -202,4 +202,24 @@ function ____exports.removeCustomGrid(self, gridIndexOrPositionOrGridEntity, upd
202
202
  removeGridEntity(nil, decoration, updateRoom)
203
203
  return decoration
204
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
205
225
  return ____exports
@@ -1 +1 @@
1
- {"version":3,"file":"blackSprite.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/blackSprite.ts"],"names":[],"mappings":"AASA,wBAAgB,eAAe,IAAI,IAAI,CAMtC"}
1
+ {"version":3,"file":"blackSprite.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/blackSprite.ts"],"names":[],"mappings":"AAUA,wBAAgB,eAAe,IAAI,IAAI,CAWtC"}
@@ -3,17 +3,17 @@ local ____constants = require("constants")
3
3
  local VectorZero = ____constants.VectorZero
4
4
  local ____StageTravelState = require("enums.private.StageTravelState")
5
5
  local StageTravelState = ____StageTravelState.StageTravelState
6
- local ____customStageConstants = require("features.customStage.customStageConstants")
7
- local ISAACSCRIPT_CUSTOM_STAGE_GFX_PATH = ____customStageConstants.ISAACSCRIPT_CUSTOM_STAGE_GFX_PATH
8
6
  local ____v = require("features.customTrapdoor.v")
9
7
  local v = ____v.default
10
- local sprite = Sprite()
11
- sprite:Load(ISAACSCRIPT_CUSTOM_STAGE_GFX_PATH .. "/black.anm2", true)
12
- sprite:SetFrame("Default", 0)
8
+ local blackSprite = Sprite()
13
9
  function ____exports.drawBlackSprite(self)
14
10
  if v.run.state ~= StageTravelState.PAUSING_ON_BLACK then
15
11
  return
16
12
  end
17
- sprite:RenderLayer(0, VectorZero)
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
18
  end
19
19
  return ____exports
@@ -10,6 +10,6 @@ export declare const TRAPDOOR_BOSS_REACTION_FRAMES = 30;
10
10
  export declare const TRAPDOOR_TOUCH_DISTANCE = 16.5;
11
11
  export declare const ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL: ReadonlySet<string>;
12
12
  export declare const PIXELATION_TO_BLACK_FRAMES = 52;
13
- export declare const OTHER_PLAYER_TRAPDOOR_JUMP_DELAY_GAME_FRAMES = 10;
14
- export declare const OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES = 8;
13
+ export declare const OTHER_PLAYER_TRAPDOOR_JUMP_DELAY_GAME_FRAMES = 6;
14
+ export declare const OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES = 5;
15
15
  //# sourceMappingURL=customTrapdoorConstants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"customTrapdoorConstants.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/customTrapdoorConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAO,MAAM,4BAA4B,mBAAmB,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;CAEvB,CAAC;AAEX,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,iCAAiC,QAA+B,CAAC;AAC9E,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,eAAO,MAAM,oCAAoC,EAAE,WAAW,CAAC,MAAM,CAClC,CAAC;AAEpC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,eAAO,MAAM,4CAA4C,KAAK,CAAC;AAC/D,eAAO,MAAM,+CAA+C,IAAI,CAAC"}
1
+ {"version":3,"file":"customTrapdoorConstants.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/customTrapdoorConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAO,MAAM,4BAA4B,mBAAmB,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;CAEvB,CAAC;AAEX,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,iCAAiC,QAA+B,CAAC;AAC9E,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,eAAO,MAAM,oCAAoC,EAAE,WAAW,CAAC,MAAM,CAClC,CAAC;AAEpC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,eAAO,MAAM,4CAA4C,IAAI,CAAC;AAC9D,eAAO,MAAM,+CAA+C,IAAI,CAAC"}
@@ -11,6 +11,6 @@ ____exports.TRAPDOOR_BOSS_REACTION_FRAMES = 30
11
11
  ____exports.TRAPDOOR_TOUCH_DISTANCE = 16.5
12
12
  ____exports.ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL = __TS__New(Set, {"Happy", "Sad", "Jump"})
13
13
  ____exports.PIXELATION_TO_BLACK_FRAMES = 52
14
- ____exports.OTHER_PLAYER_TRAPDOOR_JUMP_DELAY_GAME_FRAMES = 10
15
- ____exports.OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES = 8
14
+ ____exports.OTHER_PLAYER_TRAPDOOR_JUMP_DELAY_GAME_FRAMES = 6
15
+ ____exports.OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES = 5
16
16
  return ____exports
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/init.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAuBxD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CASzD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/init.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAwBxD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAUzD"}
@@ -2,7 +2,7 @@ local ____lualib = require("lualib_bundle")
2
2
  local __TS__ArraySome = ____lualib.__TS__ArraySome
3
3
  local Map = ____lualib.Map
4
4
  local ____exports = {}
5
- local postRender, checkAllPlayersJumpComplete, checkPixelationToBlackComplete, checkPausingOnBlackComplete, checkAllPlayersLayingDownComplete, goToCustomDestination, anyPlayerPlayingExtraAnimation, postPEffectUpdate, checkJumpComplete, postGridEntityUpdateTrapdoor
5
+ local postRender, checkAllPlayersJumpComplete, checkPixelationToBlackComplete, checkPausingOnBlackComplete, checkAllPlayersLayingDownComplete, goToCustomDestination, anyPlayerPlayingExtraAnimation, postPEffectUpdate, checkJumpComplete, postGridEntityCustomUpdateTrapdoor
6
6
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
7
7
  local Direction = ____isaac_2Dtypescript_2Ddefinitions.Direction
8
8
  local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
@@ -40,6 +40,7 @@ local ____blackSprite = require("features.customTrapdoor.blackSprite")
40
40
  local drawBlackSprite = ____blackSprite.drawBlackSprite
41
41
  local ____customTrapdoorConstants = require("features.customTrapdoor.customTrapdoorConstants")
42
42
  local CUSTOM_TRAPDOOR_FEATURE_NAME = ____customTrapdoorConstants.CUSTOM_TRAPDOOR_FEATURE_NAME
43
+ local GridEntityTypeCustom = ____customTrapdoorConstants.GridEntityTypeCustom
43
44
  local PIXELATION_TO_BLACK_FRAMES = ____customTrapdoorConstants.PIXELATION_TO_BLACK_FRAMES
44
45
  local ____openClose = require("features.customTrapdoor.openClose")
45
46
  local checkCustomTrapdoorOpenClose = ____openClose.checkCustomTrapdoorOpenClose
@@ -153,7 +154,7 @@ function checkJumpComplete(self, player)
153
154
  player.Visible = false
154
155
  end
155
156
  end
156
- function postGridEntityUpdateTrapdoor(self, gridEntity)
157
+ function postGridEntityCustomUpdateTrapdoor(self, gridEntity)
157
158
  local roomListIndex = getRoomListIndex(nil)
158
159
  local gridIndex = gridEntity:GetGridIndex()
159
160
  local roomTrapdoorMap = v.level.trapdoors:getAndSetDefault(roomListIndex)
@@ -168,6 +169,6 @@ function ____exports.customTrapdoorInit(self, mod)
168
169
  saveDataManager(nil, CUSTOM_TRAPDOOR_FEATURE_NAME, v)
169
170
  mod:AddCallback(ModCallback.POST_RENDER, postRender)
170
171
  mod:AddCallback(ModCallback.POST_PEFFECT_UPDATE, postPEffectUpdate)
171
- mod:AddCallbackCustom(ModCallbackCustom.POST_GRID_ENTITY_UPDATE, postGridEntityUpdateTrapdoor)
172
+ mod:AddCallbackCustom(ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE, postGridEntityCustomUpdateTrapdoor, GridEntityTypeCustom.TRAPDOOR_CUSTOM)
172
173
  end
173
174
  return ____exports
@@ -1 +1 @@
1
- {"version":3,"file":"touched.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/touched.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAa/F,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,yBAAyB,GAC7C,IAAI,CA8BN"}
1
+ {"version":3,"file":"touched.d.ts","sourceRoot":"","sources":["../../../src/features/customTrapdoor/touched.ts"],"names":[],"mappings":";AAgBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAa/F,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,yBAAyB,GAC7C,IAAI,CA8BN"}
@@ -1,28 +1,34 @@
1
1
  local ____lualib = require("lualib_bundle")
2
+ local Set = ____lualib.Set
3
+ local __TS__New = ____lualib.__TS__New
2
4
  local __TS__ArrayForEach = ____lualib.__TS__ArrayForEach
3
5
  local ____exports = {}
4
- local canPlayerInteractWithTrapdoor, playerTouchedCustomTrapdoor, startDelayedJump, adjustPlayerVelocityToTrapdoor, setPlayerAttributes, dropTaintedForgotten
6
+ local canPlayerInteractWithTrapdoor, playerTouchedCustomTrapdoor, setPlayerAttributes, dropTaintedForgotten, startDelayedJump, adjustPlayerPositionToTrapdoor
5
7
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
8
+ local ButtonAction = ____isaac_2Dtypescript_2Ddefinitions.ButtonAction
6
9
  local EntityCollisionClass = ____isaac_2Dtypescript_2Ddefinitions.EntityCollisionClass
10
+ local EntityGridCollisionClass = ____isaac_2Dtypescript_2Ddefinitions.EntityGridCollisionClass
7
11
  local EntityPartition = ____isaac_2Dtypescript_2Ddefinitions.EntityPartition
8
12
  local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
9
13
  local ____constants = require("constants")
10
14
  local VectorZero = ____constants.VectorZero
11
15
  local ____StageTravelState = require("enums.private.StageTravelState")
12
16
  local StageTravelState = ____StageTravelState.StageTravelState
17
+ local ____easing = require("functions.easing")
18
+ local easeOutSine = ____easing.easeOutSine
13
19
  local ____playerIndex = require("functions.playerIndex")
20
+ local getAllPlayers = ____playerIndex.getAllPlayers
14
21
  local getOtherPlayers = ____playerIndex.getOtherPlayers
15
- local getPlayers = ____playerIndex.getPlayers
16
22
  local isChildPlayer = ____playerIndex.isChildPlayer
17
23
  local ____players = require("functions.players")
18
24
  local isCharacter = ____players.isCharacter
19
25
  local ____disableInputs = require("features.disableInputs")
20
- local disableAllInputs = ____disableInputs.disableAllInputs
26
+ local disableAllInputsExceptFor = ____disableInputs.disableAllInputsExceptFor
21
27
  local ____ponyDetection = require("features.ponyDetection")
22
28
  local isPlayerUsingPony = ____ponyDetection.isPlayerUsingPony
23
29
  local ____runInNFrames = require("features.runInNFrames")
24
30
  local runInNGameFrames = ____runInNFrames.runInNGameFrames
25
- local runNextGameFrame = ____runInNFrames.runNextGameFrame
31
+ local runNextRenderFrame = ____runInNFrames.runNextRenderFrame
26
32
  local ____customTrapdoorConstants = require("features.customTrapdoor.customTrapdoorConstants")
27
33
  local ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL = ____customTrapdoorConstants.ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL
28
34
  local CUSTOM_TRAPDOOR_FEATURE_NAME = ____customTrapdoorConstants.CUSTOM_TRAPDOOR_FEATURE_NAME
@@ -39,7 +45,8 @@ end
39
45
  function playerTouchedCustomTrapdoor(self, gridEntity, trapdoorDescription, player)
40
46
  v.run.state = StageTravelState.PLAYERS_JUMPING_DOWN
41
47
  v.run.destination = trapdoorDescription.destination
42
- disableAllInputs(nil, CUSTOM_TRAPDOOR_FEATURE_NAME)
48
+ local whitelist = __TS__New(Set, {ButtonAction.CONSOLE})
49
+ disableAllInputsExceptFor(nil, CUSTOM_TRAPDOOR_FEATURE_NAME, whitelist)
43
50
  setPlayerAttributes(nil, player, gridEntity.Position)
44
51
  dropTaintedForgotten(nil, player)
45
52
  player:PlayExtraAnimation("Trapdoor")
@@ -59,6 +66,24 @@ function playerTouchedCustomTrapdoor(self, gridEntity, trapdoorDescription, play
59
66
  end
60
67
  )
61
68
  end
69
+ function setPlayerAttributes(self, trapdoorPlayer, position)
70
+ trapdoorPlayer.Position = position
71
+ for ____, player in ipairs(getAllPlayers(nil)) do
72
+ player.ControlsEnabled = false
73
+ player.Velocity = VectorZero
74
+ player.EntityCollisionClass = EntityCollisionClass.NONE
75
+ player.GridCollisionClass = EntityGridCollisionClass.NONE
76
+ player.SubType = -1
77
+ end
78
+ end
79
+ function dropTaintedForgotten(self, player)
80
+ if isCharacter(nil, player, PlayerType.THE_FORGOTTEN_B) then
81
+ local taintedSoul = player:GetOtherTwin()
82
+ if taintedSoul ~= nil then
83
+ taintedSoul:ThrowHeldEntity(VectorZero)
84
+ end
85
+ end
86
+ end
62
87
  function startDelayedJump(self, entityPtr, trapdoorPosition)
63
88
  local entity = entityPtr.Ref
64
89
  if entity == nil then
@@ -69,9 +94,12 @@ function startDelayedJump(self, entityPtr, trapdoorPosition)
69
94
  return
70
95
  end
71
96
  player:PlayExtraAnimation("Trapdoor")
72
- adjustPlayerVelocityToTrapdoor(nil, entityPtr, player.Position, trapdoorPosition)
97
+ adjustPlayerPositionToTrapdoor(nil, entityPtr, player.Position, trapdoorPosition)
73
98
  end
74
- function adjustPlayerVelocityToTrapdoor(self, entityPtr, startPos, endPos)
99
+ function adjustPlayerPositionToTrapdoor(self, entityPtr, startPos, endPos)
100
+ if v.run.state ~= StageTravelState.PLAYERS_JUMPING_DOWN then
101
+ return
102
+ end
75
103
  local entity = entityPtr.Ref
76
104
  if entity == nil then
77
105
  return
@@ -80,41 +108,31 @@ function adjustPlayerVelocityToTrapdoor(self, entityPtr, startPos, endPos)
80
108
  if player == nil then
81
109
  return
82
110
  end
111
+ runNextRenderFrame(
112
+ nil,
113
+ function()
114
+ adjustPlayerPositionToTrapdoor(nil, entityPtr, startPos, endPos)
115
+ end
116
+ )
83
117
  local sprite = player:GetSprite()
84
118
  if sprite:IsFinished("Trapdoor") then
119
+ player.Position = endPos
120
+ player.Velocity = VectorZero
85
121
  return
86
122
  end
87
123
  local frame = sprite:GetFrame()
88
- if frame > OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES then
124
+ if frame >= OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES then
125
+ player.Position = endPos
126
+ player.Velocity = VectorZero
89
127
  return
90
128
  end
91
129
  local totalDifference = endPos - startPos
92
- local differencePerFrame = totalDifference / OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES
93
- local differenceForThisFrame = differencePerFrame * (frame + 1)
130
+ local progress = frame / OTHER_PLAYER_TRAPDOOR_JUMP_DURATION_GAME_FRAMES
131
+ local easeProgress = easeOutSine(nil, progress)
132
+ local differenceForThisFrame = totalDifference * easeProgress
94
133
  local targetPosition = startPos + differenceForThisFrame
95
- local calculatedVelocity = player.Position - targetPosition
96
- player.Velocity = calculatedVelocity
97
- runNextGameFrame(
98
- nil,
99
- function()
100
- adjustPlayerVelocityToTrapdoor(nil, entityPtr, startPos, endPos)
101
- end
102
- )
103
- end
104
- function setPlayerAttributes(self, trapdoorPlayer, position)
105
- trapdoorPlayer.Position = position
106
- for ____, player in ipairs(getPlayers(nil)) do
107
- player.Velocity = VectorZero
108
- player.EntityCollisionClass = EntityCollisionClass.NONE
109
- end
110
- end
111
- function dropTaintedForgotten(self, player)
112
- if isCharacter(nil, player, PlayerType.THE_FORGOTTEN_B) then
113
- local taintedSoul = player:GetOtherTwin()
114
- if taintedSoul ~= nil then
115
- taintedSoul:ThrowHeldEntity(VectorZero)
116
- end
117
- end
134
+ player.Position = targetPosition
135
+ player.Velocity = VectorZero
118
136
  end
119
137
  function ____exports.checkCustomTrapdoorPlayerTouched(self, gridEntity, trapdoorDescription)
120
138
  if v.run.state ~= StageTravelState.NONE then
@@ -6,7 +6,7 @@ import { JSONRoom } from "../interfaces/JSONRoomsFile";
6
6
  * Specifically, this will clear the current room of all entities and grid entities, and then spawn
7
7
  * all of the entries and grid entities in the provided JSON room.
8
8
  *
9
- * This function is meant to be used in the PostNewRoom callback.
9
+ * This function is meant to be used in the `POST_NEW_ROOM` callback.
10
10
  *
11
11
  * For example:
12
12
  *
@@ -30,7 +30,7 @@ export declare function deployJSONRoom(jsonRoom: JSONRoom | Readonly<JSONRoom>,
30
30
  * Specifically, this will clear the current room of all entities and grid entities, and then spawn
31
31
  * all of the entries and grid entities in one of the provided JSON rooms.
32
32
  *
33
- * This function is meant to be used in the PostNewRoom callback.
33
+ * This function is meant to be used in the `POST_NEW_ROOM` callback.
34
34
  *
35
35
  * Note that this function does not simply choose a random element in the provided array; it will
36
36
  * properly account for each room weight using the algorithm from:
@@ -481,7 +481,7 @@ end
481
481
  -- Specifically, this will clear the current room of all entities and grid entities, and then spawn
482
482
  -- all of the entries and grid entities in the provided JSON room.
483
483
  --
484
- -- This function is meant to be used in the PostNewRoom callback.
484
+ -- This function is meant to be used in the `POST_NEW_ROOM` callback.
485
485
  --
486
486
  -- For example:
487
487
  --
@@ -528,7 +528,7 @@ end
528
528
  -- Specifically, this will clear the current room of all entities and grid entities, and then spawn
529
529
  -- all of the entries and grid entities in one of the provided JSON rooms.
530
530
  --
531
- -- This function is meant to be used in the PostNewRoom callback.
531
+ -- This function is meant to be used in the `POST_NEW_ROOM` callback.
532
532
  --
533
533
  -- Note that this function does not simply choose a random element in the provided array; it will
534
534
  -- properly account for each room weight using the algorithm from:
@@ -10,9 +10,10 @@ export declare function enableExtraConsoleCommands(mod: ModUpgraded): void;
10
10
  *
11
11
  * The standard library comes with many existing console commands that are useful for debugging, but
12
12
  * you can also add your own commands that are useful for your particular mod. It's easier to add
13
- * commands to the existing command system than to add logic manually to the ExecuteCmd callback.
13
+ * commands to the existing command system than to add your own logic manually to the `EXECUTE_CMD`
14
+ * callback.
14
15
  *
15
- * Before using this function, you must first invoke `enableExtraConsoleCommands`.
16
+ * Before using this function, you must first run the `enableExtraConsoleCommands` function.
16
17
  */
17
18
  export declare function addConsoleCommand(commandName: string, commandFunction: (params: string) => void): void;
18
19
  /**
@@ -21,7 +22,7 @@ export declare function addConsoleCommand(commandName: string, commandFunction:
21
22
  * The standard library comes with many existing console commands that are useful for debugging. If
22
23
  * you want to disable one of them, use this function.
23
24
  *
24
- * Before using this function, you must first invoke `enableExtraConsoleCommands`.
25
+ * Before using this function, you must first run the `enableExtraConsoleCommands` function.
25
26
  */
26
27
  export declare function removeConsoleCommand(commandName: string): void;
27
28
  //# sourceMappingURL=exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../../src/features/extraConsoleCommands/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQxD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAMjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACxC,IAAI,CAoBN;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAc9D"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../../src/features/extraConsoleCommands/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQxD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAMjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACxC,IAAI,CAoBN;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAc9D"}