isaacscript-common 3.9.0 → 3.12.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 (60) hide show
  1. package/callbacks/{postBombDetonated.d.ts → postBombExploded.d.ts} +0 -0
  2. package/callbacks/postBombExploded.lua +26 -0
  3. package/callbacks/postBombInitLate.lua +1 -1
  4. package/callbacks/postBoneSwing.lua +1 -1
  5. package/callbacks/postCollectibleInitFirst.lua +1 -1
  6. package/callbacks/postCursedTeleport.lua +1 -1
  7. package/callbacks/postCustomDoorEnter.lua +1 -1
  8. package/callbacks/postDiceRoomActivated.d.ts +1 -0
  9. package/callbacks/postDiceRoomActivated.lua +39 -0
  10. package/callbacks/postEffectInitLate.lua +1 -1
  11. package/callbacks/postEffectStateChanged.lua +1 -1
  12. package/callbacks/postFamiliarInitLate.lua +1 -1
  13. package/callbacks/postFamiliarStateChanged.lua +1 -1
  14. package/callbacks/postGreedModeWave.lua +1 -1
  15. package/callbacks/postHolyMantleRemoved.lua +1 -1
  16. package/callbacks/postItemDischarged.d.ts +1 -1
  17. package/callbacks/postItemDischarged.lua +1 -1
  18. package/callbacks/postKnifeInitLate.lua +1 -1
  19. package/callbacks/postLaserInitLate.lua +1 -1
  20. package/callbacks/postNPCInitLate.lua +1 -1
  21. package/callbacks/postNPCStateChanged.lua +1 -1
  22. package/callbacks/postPickupCollect.lua +1 -1
  23. package/callbacks/postPickupInitFirst.lua +1 -1
  24. package/callbacks/postPickupInitLate.lua +1 -1
  25. package/callbacks/postPickupStateChanged.lua +1 -1
  26. package/callbacks/postPlayerChangeHealth.lua +1 -1
  27. package/callbacks/postPlayerChangeType.lua +1 -1
  28. package/callbacks/postPlayerCollectible.lua +1 -1
  29. package/callbacks/postPlayerFatalDamage.lua +1 -1
  30. package/callbacks/postPlayerInitLate.lua +1 -1
  31. package/callbacks/postProjectileInitLate.lua +1 -1
  32. package/callbacks/postPurchase.lua +1 -1
  33. package/callbacks/postRoomClearChanged.lua +1 -1
  34. package/callbacks/postSacrifice.lua +1 -1
  35. package/callbacks/postSlotDestroyed.lua +1 -1
  36. package/callbacks/postTearInitLate.lua +1 -1
  37. package/callbacks/postTearInitVeryLate.lua +1 -1
  38. package/callbacks/postTransformation.lua +1 -1
  39. package/callbacks/postTrinketBreak.lua +1 -1
  40. package/callbacks/preBerserkDeath.lua +1 -1
  41. package/callbacks/preNewLevel.lua +1 -1
  42. package/callbacks/subscriptions/{postBoneDetonated.d.ts → postBoneExploded.d.ts} +1 -1
  43. package/callbacks/subscriptions/{postBoneDetonated.lua → postBoneExploded.lua} +3 -3
  44. package/callbacks/subscriptions/postDiceRoomActivated.d.ts +5 -0
  45. package/callbacks/subscriptions/postDiceRoomActivated.lua +29 -0
  46. package/constants.d.ts +2 -0
  47. package/constants.lua +2 -0
  48. package/enums/ModCallbackCustom.d.ts +85 -73
  49. package/enums/ModCallbackCustom.lua +76 -74
  50. package/functions/entity.d.ts +6 -0
  51. package/functions/entity.lua +44 -0
  52. package/functions/log.d.ts +5 -0
  53. package/functions/log.lua +40 -10
  54. package/functions/utils.d.ts +1 -0
  55. package/functions/utils.lua +1 -0
  56. package/initCustomCallbacks.lua +78 -75
  57. package/interfaces/AddCallbackParameterCustom.d.ts +4 -2
  58. package/objects/callbackRegisterFunctions.lua +6 -3
  59. package/package.json +2 -2
  60. package/callbacks/postBombDetonated.lua +0 -33
@@ -10,8 +10,8 @@ ____exports.ModCallbackCustom.POST_AMBUSH_FINISHED = 0
10
10
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_AMBUSH_FINISHED] = "POST_AMBUSH_FINISHED"
11
11
  ____exports.ModCallbackCustom.POST_AMBUSH_STARTED = 1
12
12
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_AMBUSH_STARTED] = "POST_AMBUSH_STARTED"
13
- ____exports.ModCallbackCustom.POST_BOMB_DETONATED = 2
14
- ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_BOMB_DETONATED] = "POST_BOMB_DETONATED"
13
+ ____exports.ModCallbackCustom.POST_BOMB_EXPLODED = 2
14
+ ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_BOMB_EXPLODED] = "POST_BOMB_EXPLODED"
15
15
  ____exports.ModCallbackCustom.POST_BOMB_INIT_LATE = 3
16
16
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_BOMB_INIT_LATE] = "POST_BOMB_INIT_LATE"
17
17
  ____exports.ModCallbackCustom.POST_BONE_SWING = 4
@@ -24,148 +24,150 @@ ____exports.ModCallbackCustom.POST_CUSTOM_DOOR_ENTER = 7
24
24
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_CUSTOM_DOOR_ENTER] = "POST_CUSTOM_DOOR_ENTER"
25
25
  ____exports.ModCallbackCustom.POST_CUSTOM_REVIVE = 8
26
26
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_CUSTOM_REVIVE] = "POST_CUSTOM_REVIVE"
27
- ____exports.ModCallbackCustom.POST_DOOR_RENDER = 9
27
+ ____exports.ModCallbackCustom.POST_DICE_ROOM_ACTIVATED = 9
28
+ ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_DICE_ROOM_ACTIVATED] = "POST_DICE_ROOM_ACTIVATED"
29
+ ____exports.ModCallbackCustom.POST_DOOR_RENDER = 10
28
30
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_DOOR_RENDER] = "POST_DOOR_RENDER"
29
- ____exports.ModCallbackCustom.POST_DOOR_UPDATE = 10
31
+ ____exports.ModCallbackCustom.POST_DOOR_UPDATE = 11
30
32
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_DOOR_UPDATE] = "POST_DOOR_UPDATE"
31
- ____exports.ModCallbackCustom.POST_EFFECT_INIT_LATE = 11
33
+ ____exports.ModCallbackCustom.POST_EFFECT_INIT_LATE = 12
32
34
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_EFFECT_INIT_LATE] = "POST_EFFECT_INIT_LATE"
33
- ____exports.ModCallbackCustom.POST_EFFECT_STATE_CHANGED = 12
35
+ ____exports.ModCallbackCustom.POST_EFFECT_STATE_CHANGED = 13
34
36
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_EFFECT_STATE_CHANGED] = "POST_EFFECT_STATE_CHANGED"
35
- ____exports.ModCallbackCustom.POST_ESAU_JR = 13
37
+ ____exports.ModCallbackCustom.POST_ESAU_JR = 14
36
38
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ESAU_JR] = "POST_ESAU_JR"
37
- ____exports.ModCallbackCustom.POST_FAMILIAR_INIT_LATE = 14
39
+ ____exports.ModCallbackCustom.POST_FAMILIAR_INIT_LATE = 15
38
40
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FAMILIAR_INIT_LATE] = "POST_FAMILIAR_INIT_LATE"
39
- ____exports.ModCallbackCustom.POST_FAMILIAR_STATE_CHANGED = 15
41
+ ____exports.ModCallbackCustom.POST_FAMILIAR_STATE_CHANGED = 16
40
42
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FAMILIAR_STATE_CHANGED] = "POST_FAMILIAR_STATE_CHANGED"
41
- ____exports.ModCallbackCustom.POST_FIRST_ESAU_JR = 16
43
+ ____exports.ModCallbackCustom.POST_FIRST_ESAU_JR = 17
42
44
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FIRST_ESAU_JR] = "POST_FIRST_ESAU_JR"
43
- ____exports.ModCallbackCustom.POST_FIRST_FLIP = 17
45
+ ____exports.ModCallbackCustom.POST_FIRST_FLIP = 18
44
46
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FIRST_FLIP] = "POST_FIRST_FLIP"
45
- ____exports.ModCallbackCustom.POST_FLIP = 18
47
+ ____exports.ModCallbackCustom.POST_FLIP = 19
46
48
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FLIP] = "POST_FLIP"
47
- ____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED = 19
49
+ ____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED = 20
48
50
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED] = "POST_GAME_STARTED_REORDERED"
49
- ____exports.ModCallbackCustom.POST_GREED_MODE_WAVE = 20
51
+ ____exports.ModCallbackCustom.POST_GREED_MODE_WAVE = 21
50
52
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GREED_MODE_WAVE] = "POST_GREED_MODE_WAVE"
51
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_BROKEN = 21
53
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_BROKEN = 22
52
54
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_BROKEN] = "POST_GRID_ENTITY_BROKEN"
53
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_COLLISION = 22
55
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_COLLISION = 23
54
56
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_COLLISION] = "POST_GRID_ENTITY_COLLISION"
55
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT = 23
57
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT = 24
56
58
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT] = "POST_GRID_ENTITY_INIT"
57
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE = 24
59
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE = 25
58
60
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE] = "POST_GRID_ENTITY_REMOVE"
59
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER = 25
61
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER = 26
60
62
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER] = "POST_GRID_ENTITY_RENDER"
61
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED = 26
63
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED = 27
62
64
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED] = "POST_GRID_ENTITY_STATE_CHANGED"
63
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE = 27
65
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE = 28
64
66
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE] = "POST_GRID_ENTITY_UPDATE"
65
- ____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED = 28
67
+ ____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED = 29
66
68
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED] = "POST_HOLY_MANTLE_REMOVED"
67
- ____exports.ModCallbackCustom.POST_ITEM_DISCHARGE = 29
69
+ ____exports.ModCallbackCustom.POST_ITEM_DISCHARGE = 30
68
70
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ITEM_DISCHARGE] = "POST_ITEM_DISCHARGE"
69
- ____exports.ModCallbackCustom.POST_ITEM_PICKUP = 30
71
+ ____exports.ModCallbackCustom.POST_ITEM_PICKUP = 31
70
72
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ITEM_PICKUP] = "POST_ITEM_PICKUP"
71
- ____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE = 31
73
+ ____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE = 32
72
74
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE] = "POST_KNIFE_INIT_LATE"
73
- ____exports.ModCallbackCustom.POST_LASER_INIT_LATE = 32
75
+ ____exports.ModCallbackCustom.POST_LASER_INIT_LATE = 33
74
76
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_LASER_INIT_LATE] = "POST_LASER_INIT_LATE"
75
- ____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED = 33
77
+ ____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED = 34
76
78
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED] = "POST_NEW_LEVEL_REORDERED"
77
- ____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY = 34
79
+ ____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY = 35
78
80
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY] = "POST_NEW_ROOM_EARLY"
79
- ____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED = 35
81
+ ____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED = 36
80
82
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED] = "POST_NEW_ROOM_REORDERED"
81
- ____exports.ModCallbackCustom.POST_NPC_INIT_LATE = 36
83
+ ____exports.ModCallbackCustom.POST_NPC_INIT_LATE = 37
82
84
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_INIT_LATE] = "POST_NPC_INIT_LATE"
83
- ____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED = 37
85
+ ____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED = 38
84
86
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED] = "POST_NPC_STATE_CHANGED"
85
- ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 38
87
+ ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 39
86
88
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED] = "POST_PEFFECT_UPDATE_REORDERED"
87
- ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 39
89
+ ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 40
88
90
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_COLLECT] = "POST_PICKUP_COLLECT"
89
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 40
91
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 41
90
92
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST] = "POST_PICKUP_INIT_FIRST"
91
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 41
93
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 42
92
94
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE] = "POST_PICKUP_INIT_LATE"
93
- ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 42
95
+ ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 43
94
96
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED] = "POST_PICKUP_STATE_CHANGED"
95
- ____exports.ModCallbackCustom.POST_PIT_RENDER = 43
97
+ ____exports.ModCallbackCustom.POST_PIT_RENDER = 44
96
98
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_RENDER] = "POST_PIT_RENDER"
97
- ____exports.ModCallbackCustom.POST_PIT_UPDATE = 44
99
+ ____exports.ModCallbackCustom.POST_PIT_UPDATE = 45
98
100
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_UPDATE] = "POST_PIT_UPDATE"
99
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 45
101
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 46
100
102
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH] = "POST_PLAYER_CHANGE_HEALTH"
101
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 46
103
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 47
102
104
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE] = "POST_PLAYER_CHANGE_TYPE"
103
- ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED = 47
105
+ ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED = 48
104
106
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED] = "POST_PLAYER_COLLECTIBLE_ADDED"
105
- ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED = 48
107
+ ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED = 49
106
108
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED] = "POST_PLAYER_COLLECTIBLE_REMOVED"
107
- ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 49
109
+ ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 50
108
110
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE] = "POST_PLAYER_FATAL_DAMAGE"
109
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 50
111
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 51
110
112
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE] = "POST_PLAYER_INIT_LATE"
111
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_REORDERED = 51
113
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_REORDERED = 52
112
114
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_REORDERED] = "POST_PLAYER_INIT_REORDERED"
113
- ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 52
115
+ ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 53
114
116
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED] = "POST_PLAYER_RENDER_REORDERED"
115
- ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 53
117
+ ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 54
116
118
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED] = "POST_PLAYER_UPDATE_REORDERED"
117
- ____exports.ModCallbackCustom.POST_POOP_RENDER = 54
119
+ ____exports.ModCallbackCustom.POST_POOP_RENDER = 55
118
120
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_RENDER] = "POST_POOP_RENDER"
119
- ____exports.ModCallbackCustom.POST_POOP_UPDATE = 55
121
+ ____exports.ModCallbackCustom.POST_POOP_UPDATE = 56
120
122
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_UPDATE] = "POST_POOP_UPDATE"
121
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 56
123
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 57
122
124
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER] = "POST_PRESSURE_PLATE_RENDER"
123
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 57
125
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 58
124
126
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE] = "POST_PRESSURE_PLATE_UPDATE"
125
- ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 58
127
+ ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 59
126
128
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE] = "POST_PROJECTILE_INIT_LATE"
127
- ____exports.ModCallbackCustom.POST_PURCHASE = 59
129
+ ____exports.ModCallbackCustom.POST_PURCHASE = 60
128
130
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PURCHASE] = "POST_PURCHASE"
129
- ____exports.ModCallbackCustom.POST_ROCK_RENDER = 60
131
+ ____exports.ModCallbackCustom.POST_ROCK_RENDER = 61
130
132
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_RENDER] = "POST_ROCK_RENDER"
131
- ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 61
133
+ ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 62
132
134
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_UPDATE] = "POST_ROCK_UPDATE"
133
- ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 62
135
+ ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 63
134
136
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED] = "POST_ROOM_CLEAR_CHANGED"
135
- ____exports.ModCallbackCustom.POST_SACRIFICE = 63
137
+ ____exports.ModCallbackCustom.POST_SACRIFICE = 64
136
138
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SACRIFICE] = "POST_SACRIFICE"
137
- ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 64
139
+ ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 65
138
140
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED] = "POST_SLOT_ANIMATION_CHANGED"
139
- ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 65
141
+ ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 66
140
142
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_DESTROYED] = "POST_SLOT_DESTROYED"
141
- ____exports.ModCallbackCustom.POST_SLOT_INIT = 66
143
+ ____exports.ModCallbackCustom.POST_SLOT_INIT = 67
142
144
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_INIT] = "POST_SLOT_INIT"
143
- ____exports.ModCallbackCustom.POST_SLOT_RENDER = 67
145
+ ____exports.ModCallbackCustom.POST_SLOT_RENDER = 68
144
146
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_RENDER] = "POST_SLOT_RENDER"
145
- ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 68
147
+ ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 69
146
148
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_UPDATE] = "POST_SLOT_UPDATE"
147
- ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 69
149
+ ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 70
148
150
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_RENDER] = "POST_SPIKES_RENDER"
149
- ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 70
151
+ ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 71
150
152
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_UPDATE] = "POST_SPIKES_UPDATE"
151
- ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 71
153
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 72
152
154
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_LATE] = "POST_TEAR_INIT_LATE"
153
- ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 72
155
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 73
154
156
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE] = "POST_TEAR_INIT_VERY_LATE"
155
- ____exports.ModCallbackCustom.POST_TNT_RENDER = 73
157
+ ____exports.ModCallbackCustom.POST_TNT_RENDER = 74
156
158
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_RENDER] = "POST_TNT_RENDER"
157
- ____exports.ModCallbackCustom.POST_TNT_UPDATE = 74
159
+ ____exports.ModCallbackCustom.POST_TNT_UPDATE = 75
158
160
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_UPDATE] = "POST_TNT_UPDATE"
159
- ____exports.ModCallbackCustom.POST_TRANSFORMATION = 75
161
+ ____exports.ModCallbackCustom.POST_TRANSFORMATION = 76
160
162
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRANSFORMATION] = "POST_TRANSFORMATION"
161
- ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 76
163
+ ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 77
162
164
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRINKET_BREAK] = "POST_TRINKET_BREAK"
163
- ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 77
165
+ ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 78
164
166
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_BERSERK_DEATH] = "PRE_BERSERK_DEATH"
165
- ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 78
167
+ ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 79
166
168
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE] = "PRE_CUSTOM_REVIVE"
167
- ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 79
169
+ ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 80
168
170
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_ITEM_PICKUP] = "PRE_ITEM_PICKUP"
169
- ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 80
171
+ ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 81
170
172
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_NEW_LEVEL] = "PRE_NEW_LEVEL"
171
173
  return ____exports
@@ -1,3 +1,4 @@
1
+ /// <reference types="typescript-to-lua/language-extensions" />
1
2
  import { EntityType } from "isaac-typescript-definitions";
2
3
  import { AnyEntity } from "../types/AnyEntity";
3
4
  /**
@@ -61,6 +62,11 @@ export declare function getClosestEntityTo<T extends AnyEntity>(referenceEntity:
61
62
  * `matchingEntityType` is specified.
62
63
  */
63
64
  export declare function getEntities(entityType?: EntityType, variant?: number, subType?: number, ignoreFriendly?: boolean): Entity[];
65
+ /**
66
+ * Helper function to get all the fields on an entity. For example, this is useful for comparing it
67
+ * to another entity later.
68
+ */
69
+ export declare function getEntityFields(entity: Entity): LuaTable<string, unknown>;
64
70
  /** Helper function to return a string containing the entity's type, variant, and sub-type. */
65
71
  export declare function getEntityID(entity: Entity): string;
66
72
  /**
@@ -10,10 +10,14 @@ local ____constants = require("constants")
10
10
  local VectorZero = ____constants.VectorZero
11
11
  local ____storyBossesSet = require("sets.storyBossesSet")
12
12
  local STORY_BOSSES_SET = ____storyBossesSet.STORY_BOSSES_SET
13
+ local ____isaacAPIClass = require("functions.isaacAPIClass")
14
+ local getIsaacAPIClassName = ____isaacAPIClass.getIsaacAPIClassName
13
15
  local ____random = require("functions.random")
14
16
  local getRandom = ____random.getRandom
15
17
  local ____rng = require("functions.rng")
16
18
  local newRNG = ____rng.newRNG
19
+ local ____utils = require("functions.utils")
20
+ local isPrimitive = ____utils.isPrimitive
17
21
  --- Helper function to remove all of the entities in the supplied array.
18
22
  --
19
23
  -- @param entities The array of entities to remove.
@@ -156,6 +160,46 @@ function ____exports.getEntities(self, entityType, variant, subType, ignoreFrien
156
160
  end
157
161
  return Isaac.FindByType(entityType, variant, subType, ignoreFriendly)
158
162
  end
163
+ --- Helper function to get all the fields on an entity. For example, this is useful for comparing it
164
+ -- to another entity later.
165
+ function ____exports.getEntityFields(self, entity)
166
+ local metatable = getmetatable(entity)
167
+ if metatable == nil then
168
+ error("Failed to get the metatable for an entity.")
169
+ end
170
+ local propGetTable = metatable.__propget
171
+ if propGetTable == nil then
172
+ error("Failed to get the \"__propget\" table for an entity.")
173
+ end
174
+ local entityFields = {}
175
+ for key in pairs(propGetTable) do
176
+ local indexKey = key
177
+ local value = entity[indexKey]
178
+ if isPrimitive(nil, value) then
179
+ entityFields[indexKey] = value
180
+ end
181
+ end
182
+ local className = getIsaacAPIClassName(nil, entity)
183
+ if className == "Entity" then
184
+ return entityFields
185
+ end
186
+ local parentTable = metatable.__parent
187
+ if parentTable == nil then
188
+ error("Failed to get the \"__parent\" table for an entity.")
189
+ end
190
+ local parentPropGetTable = parentTable.__propget
191
+ if parentPropGetTable == nil then
192
+ error("Failed to get the parent's \"__propget\" table for an entity.")
193
+ end
194
+ for key in pairs(parentPropGetTable) do
195
+ local indexKey = key
196
+ local value = entity[indexKey]
197
+ if isPrimitive(nil, value) then
198
+ entityFields[indexKey] = value
199
+ end
200
+ end
201
+ return entityFields
202
+ end
159
203
  --- Helper function to return a string containing the entity's type, variant, and sub-type.
160
204
  function ____exports.getEntityID(self, entity)
161
205
  return (((tostring(entity.Type) .. ".") .. tostring(entity.Variant)) .. ".") .. tostring(entity.SubType)
@@ -60,6 +60,11 @@ export declare function logSet(this: void, set: Set<AnyNotNil>): void;
60
60
  /** Helper function for logging every sound effect that is currently playing. */
61
61
  export declare function logSounds(this: void): void;
62
62
  export declare function logTable(this: void, table: unknown, parentTables?: number): void;
63
+ /**
64
+ * Helper function to print out the differences between the entries of two tables. Note that this
65
+ * will only do a shallow comparison.
66
+ */
67
+ export declare function logTableDifferences<K, V>(table1: LuaTable<K, V>, table2: LuaTable<K, V>): void;
63
68
  /** Helper function for printing out every tear flag that is turned on. Useful when debugging. */
64
69
  export declare function logTearFlags(this: void, flags: TearFlag | BitFlags<TearFlag>): void;
65
70
  /** Helper function for printing out every use flag that is turned on. Useful when debugging. */
package/functions/log.lua CHANGED
@@ -5,6 +5,7 @@ local __TS__ArrayForEach = ____lualib.__TS__ArrayForEach
5
5
  local Map = ____lualib.Map
6
6
  local __TS__Spread = ____lualib.__TS__Spread
7
7
  local __TS__ArraySort = ____lualib.__TS__ArraySort
8
+ local __TS__ObjectKeys = ____lualib.__TS__ObjectKeys
8
9
  local ____exports = {}
9
10
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
10
11
  local DamageFlag = ____isaac_2Dtypescript_2Ddefinitions.DamageFlag
@@ -46,6 +47,7 @@ local getRoomData = ____roomData.getRoomData
46
47
  local getRoomGridIndex = ____roomData.getRoomGridIndex
47
48
  local getRoomListIndex = ____roomData.getRoomListIndex
48
49
  local ____set = require("functions.set")
50
+ local combineSets = ____set.combineSets
49
51
  local getSortedSetValues = ____set.getSortedSetValues
50
52
  local ____trinkets = require("functions.trinkets")
51
53
  local getTrinketName = ____trinkets.getTrinketName
@@ -368,9 +370,9 @@ function ____exports.logMap(map)
368
370
  __TS__ArraySort(mapKeys)
369
371
  for ____, key in ipairs(mapKeys) do
370
372
  local value = map:get(key)
371
- ____exports.log(((" Key: " .. tostring(key)) .. ", Value: ") .. tostring(value))
373
+ ____exports.log(((" " .. tostring(key)) .. " --> ") .. tostring(value))
372
374
  end
373
- ____exports.log("The size of the map was: " .. tostring(map.size))
375
+ ____exports.log(" The size of the map was: " .. tostring(map.size))
374
376
  end
375
377
  function ____exports.logPlayerHealth(player)
376
378
  local playerName = getPlayerName(nil, player)
@@ -432,7 +434,7 @@ function ____exports.logSet(set)
432
434
  for ____, value in ipairs(setValues) do
433
435
  ____exports.log(" Value: " .. tostring(value))
434
436
  end
435
- ____exports.log("The size of the set was: " .. tostring(set.size))
437
+ ____exports.log(" The size of the set was: " .. tostring(set.size))
436
438
  end
437
439
  --- Helper function for logging every sound effect that is currently playing.
438
440
  function ____exports.logSounds()
@@ -457,13 +459,17 @@ function ____exports.logTable(____table, parentTables)
457
459
  " ",
458
460
  math.floor(numSpaces)
459
461
  )
460
- if ____table == nil then
461
- ____exports.log(indentation .. "n/a (the table was nil)")
462
+ local tableType = type(____table)
463
+ if tableType ~= "table" then
464
+ ____exports.log(((indentation .. "n/a (encountered a variable of type \"") .. tableType) .. "\" instead of a table)")
462
465
  return
463
466
  end
464
- local numKeys = 0
465
- for key, value in pairs(____table) do
466
- ____exports.log((((indentation .. "Key: ") .. tostring(key)) .. ", Value: ") .. tostring(value))
467
+ local luaTable = ____table
468
+ local keys = __TS__ObjectKeys(luaTable)
469
+ __TS__ArraySort(keys)
470
+ for ____, key in ipairs(keys) do
471
+ local value = luaTable[key]
472
+ ____exports.log(((indentation .. key) .. " --> ") .. tostring(value))
467
473
  local valueType = type(value)
468
474
  if valueType == "table" then
469
475
  if key == "__class" then
@@ -472,9 +478,33 @@ function ____exports.logTable(____table, parentTables)
472
478
  ____exports.logTable(value, parentTables + 1)
473
479
  end
474
480
  end
475
- numKeys = numKeys + 1
476
481
  end
477
- ____exports.log((indentation .. "The size of the table was: ") .. tostring(numKeys))
482
+ ____exports.log((indentation .. "The size of the table was: ") .. tostring(#keys))
483
+ end
484
+ --- Helper function to print out the differences between the entries of two tables. Note that this
485
+ -- will only do a shallow comparison.
486
+ function ____exports.logTableDifferences(self, table1, table2)
487
+ ____exports.log("Comparing two Lua tables:")
488
+ local table1Keys = __TS__ObjectKeys(table1)
489
+ local table1KeysSet = __TS__New(Set, table1Keys)
490
+ local table2Keys = __TS__ObjectKeys(table2)
491
+ local table2KeysSet = __TS__New(Set, table2Keys)
492
+ local keysSet = combineSets(nil, table1KeysSet, table2KeysSet)
493
+ local keys = {__TS__Spread(keysSet:values())}
494
+ __TS__ArraySort(keys)
495
+ for ____, key in ipairs(keys) do
496
+ if not table1KeysSet:has(key) then
497
+ ____exports.log(" Table 1 is missing key: " .. key)
498
+ elseif not table2KeysSet:has(key) then
499
+ ____exports.log(" Table 2 is missing key: " .. key)
500
+ else
501
+ local value1 = table1[key]
502
+ local value2 = table2[key]
503
+ if value1 ~= value2 then
504
+ ____exports.log((((((" " .. key) .. " --> \"") .. tostring(value1)) .. "\" versus \"") .. tostring(value2)) .. "\"")
505
+ end
506
+ end
507
+ end
478
508
  end
479
509
  --- Helper function for printing out every tear flag that is turned on. Useful when debugging.
480
510
  function ____exports.logTearFlags(flags)
@@ -66,6 +66,7 @@ export declare function hexToKColor(hexString: string, alpha: float): KColor;
66
66
  * If only one argument is specified, then it will assume that the start is 0.
67
67
  */
68
68
  export declare function irange(start: int, end?: int): int[];
69
+ /** Helper function to detect if a variable is a boolean, number, or string. */
69
70
  export declare function isPrimitive(variable: unknown): boolean;
70
71
  /**
71
72
  * Since this is a UI element, we do not want to draw it in water reflections. `renderOffset` will
@@ -120,6 +120,7 @@ function ____exports.irange(self, start, ____end)
120
120
  end
121
121
  return array
122
122
  end
123
+ --- Helper function to detect if a variable is a boolean, number, or string.
123
124
  function ____exports.isPrimitive(self, variable)
124
125
  local ____type = __TS__TypeOf(variable)
125
126
  return ____type == "boolean" or ____type == "number" or ____type == "string"