isaacscript-common 3.11.0 → 3.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 (60) hide show
  1. package/callbacks/postBombInitLate.lua +1 -1
  2. package/callbacks/postBoneSwing.lua +1 -1
  3. package/callbacks/postCollectibleInitFirst.lua +1 -1
  4. package/callbacks/postCursedTeleport.lua +1 -1
  5. package/callbacks/postCustomDoorEnter.lua +1 -1
  6. package/callbacks/postDiceRoomActivated.d.ts +1 -0
  7. package/callbacks/postDiceRoomActivated.lua +41 -0
  8. package/callbacks/postEffectInitLate.lua +1 -1
  9. package/callbacks/postEffectStateChanged.lua +1 -1
  10. package/callbacks/postFamiliarInitLate.lua +1 -1
  11. package/callbacks/postFamiliarStateChanged.lua +1 -1
  12. package/callbacks/postGreedModeWave.lua +1 -1
  13. package/callbacks/postHolyMantleRemoved.lua +1 -1
  14. package/callbacks/postItemDischarged.d.ts +1 -1
  15. package/callbacks/postItemDischarged.lua +1 -1
  16. package/callbacks/postKnifeInitLate.lua +1 -1
  17. package/callbacks/postLaserInitLate.lua +1 -1
  18. package/callbacks/postNPCInitLate.lua +1 -1
  19. package/callbacks/postNPCStateChanged.lua +1 -1
  20. package/callbacks/postPickupCollect.lua +1 -1
  21. package/callbacks/postPickupInitFirst.lua +1 -1
  22. package/callbacks/postPickupInitLate.lua +1 -1
  23. package/callbacks/postPickupStateChanged.lua +1 -1
  24. package/callbacks/postPlayerChangeHealth.lua +1 -1
  25. package/callbacks/postPlayerChangeType.lua +1 -1
  26. package/callbacks/postPlayerCollectible.lua +1 -1
  27. package/callbacks/postPlayerFatalDamage.lua +1 -1
  28. package/callbacks/postPlayerInitLate.lua +1 -1
  29. package/callbacks/postProjectileInitLate.lua +1 -1
  30. package/callbacks/postPurchase.lua +1 -1
  31. package/callbacks/postRoomClearChanged.lua +1 -1
  32. package/callbacks/postSacrifice.lua +1 -1
  33. package/callbacks/postSlotDestroyed.lua +1 -1
  34. package/callbacks/postTearInitLate.lua +1 -1
  35. package/callbacks/postTearInitVeryLate.lua +1 -1
  36. package/callbacks/postTransformation.lua +1 -1
  37. package/callbacks/postTrinketBreak.lua +1 -1
  38. package/callbacks/preBerserkDeath.lua +1 -1
  39. package/callbacks/preNewLevel.lua +1 -1
  40. package/callbacks/subscriptions/postDiceRoomActivated.d.ts +5 -0
  41. package/callbacks/subscriptions/postDiceRoomActivated.lua +29 -0
  42. package/constants.d.ts +2 -2
  43. package/enums/ModCallbackCustom.d.ts +84 -72
  44. package/enums/ModCallbackCustom.lua +74 -72
  45. package/functions/collectibles.d.ts +5 -0
  46. package/functions/collectibles.lua +50 -30
  47. package/functions/effects.d.ts +6 -0
  48. package/functions/effects.lua +12 -0
  49. package/functions/entity.d.ts +6 -0
  50. package/functions/entity.lua +44 -0
  51. package/functions/log.d.ts +5 -0
  52. package/functions/log.lua +40 -10
  53. package/functions/utils.d.ts +1 -0
  54. package/functions/utils.lua +1 -0
  55. package/index.d.ts +1 -0
  56. package/index.lua +8 -0
  57. package/initCustomCallbacks.lua +75 -72
  58. package/interfaces/AddCallbackParameterCustom.d.ts +2 -0
  59. package/objects/callbackRegisterFunctions.lua +3 -0
  60. package/package.json +2 -2
@@ -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
@@ -191,6 +191,11 @@ export declare function setCollectibleBlind(collectible: EntityPickup): void;
191
191
  * For more information, see the documentation for the "clearSprite" helper function.
192
192
  */
193
193
  export declare function setCollectibleEmpty(collectible: EntityPickup): void;
194
+ /**
195
+ * Helper function to change a collectible into a "glitched" item (like the ones that appear when
196
+ * the player has TMTRAINER).
197
+ */
198
+ export declare function setCollectibleGlitched(collectible: EntityPickup): void;
194
199
  /**
195
200
  * Helper function to change the sprite of a collectible pedestal entity.
196
201
  *
@@ -13,6 +13,7 @@ local game = ____cachedClasses.game
13
13
  local itemConfig = ____cachedClasses.itemConfig
14
14
  local ____constants = require("constants")
15
15
  local BLIND_ITEM_PNG_PATH = ____constants.BLIND_ITEM_PNG_PATH
16
+ local DEFAULT_ITEM_POOL_TYPE = ____constants.DEFAULT_ITEM_POOL_TYPE
16
17
  local ____constantsFirstLast = require("constantsFirstLast")
17
18
  local FIRST_COLLECTIBLE_TYPE = ____constantsFirstLast.FIRST_COLLECTIBLE_TYPE
18
19
  local FIRST_MODDED_COLLECTIBLE_TYPE = ____constantsFirstLast.FIRST_MODDED_COLLECTIBLE_TYPE
@@ -44,6 +45,22 @@ function initQuestionMarkSprite(self)
44
45
  sprite:LoadGraphics()
45
46
  return sprite
46
47
  end
48
+ function ____exports.clearCollectibleSprite(self, collectible)
49
+ ____exports.setCollectibleSprite(nil, collectible, nil)
50
+ end
51
+ --- Helper function to remove the collectible from a collectible pedestal and make it appear as if a
52
+ -- player has already taken the item. This is accomplished by changing the sub-type to
53
+ -- `CollectibleType.NULL` and then setting the sprite to an empty/missing PNG file.
54
+ --
55
+ -- For more information, see the documentation for the "clearSprite" helper function.
56
+ function ____exports.setCollectibleEmpty(self, collectible)
57
+ if not isCollectible(nil, collectible) then
58
+ local entityID = getEntityID(nil, collectible)
59
+ error("The \"setCollectibleEmpty\" function was given a non-collectible: " .. entityID)
60
+ end
61
+ collectible.SubType = CollectibleType.NULL
62
+ ____exports.clearCollectibleSprite(nil, collectible)
63
+ end
47
64
  --- Helper function to change the sprite of a collectible pedestal entity.
48
65
  --
49
66
  -- For more information about removing the collectible sprite, see the documentation for the
@@ -67,13 +84,30 @@ function ____exports.setCollectibleSprite(self, collectible, pngPath)
67
84
  sprite:LoadGraphics()
68
85
  end
69
86
  end
87
+ --- Helper function to change the collectible on a pedestal. Simply updating the `SubType` property
88
+ -- is not sufficient because the sprite will not change.
89
+ function ____exports.setCollectibleSubType(self, collectible, newCollectibleType)
90
+ if not isCollectible(nil, collectible) then
91
+ local entityID = getEntityID(nil, collectible)
92
+ error("The \"setCollectibleSubType\" function was given a non-collectible: " .. entityID)
93
+ end
94
+ if newCollectibleType == CollectibleType.NULL then
95
+ ____exports.setCollectibleEmpty(nil, collectible)
96
+ return
97
+ end
98
+ collectible:Morph(
99
+ EntityType.PICKUP,
100
+ PickupVariant.COLLECTIBLE,
101
+ newCollectibleType,
102
+ true,
103
+ true,
104
+ true
105
+ )
106
+ end
70
107
  COLLECTIBLE_SPRITE_LAYER = 1
71
108
  COLLECTIBLE_SHADOW_LAYER = 4
72
109
  local GLITCHED_ITEM_THRESHOLD = 4000000000
73
110
  local questionMarkSprite = initQuestionMarkSprite(nil)
74
- function ____exports.clearCollectibleSprite(self, collectible)
75
- ____exports.setCollectibleSprite(nil, collectible, nil)
76
- end
77
111
  --- Helper function to check if two collectible sprites have the same sprite sheet loaded.
78
112
  function ____exports.collectibleSpriteEquals(self, sprite1, sprite2)
79
113
  local xStart = -1
@@ -384,38 +418,24 @@ function ____exports.setCollectibleBlind(self, collectible)
384
418
  end
385
419
  ____exports.setCollectibleSprite(nil, collectible, BLIND_ITEM_PNG_PATH)
386
420
  end
387
- --- Helper function to remove the collectible from a collectible pedestal and make it appear as if a
388
- -- player has already taken the item. This is accomplished by changing the sub-type to
389
- -- `CollectibleType.NULL` and then setting the sprite to an empty/missing PNG file.
390
- --
391
- -- For more information, see the documentation for the "clearSprite" helper function.
392
- function ____exports.setCollectibleEmpty(self, collectible)
421
+ --- Helper function to change a collectible into a "glitched" item (like the ones that appear when
422
+ -- the player has TMTRAINER).
423
+ function ____exports.setCollectibleGlitched(self, collectible)
393
424
  if not isCollectible(nil, collectible) then
394
425
  local entityID = getEntityID(nil, collectible)
395
- error("The \"setCollectibleEmpty\" function was given a non-collectible: " .. entityID)
426
+ error("The \"setCollectibleGlitched\" function was given a non-collectible: " .. entityID)
396
427
  end
397
- collectible.SubType = CollectibleType.NULL
398
- ____exports.clearCollectibleSprite(nil, collectible)
399
- end
400
- --- Helper function to change the collectible on a pedestal. Simply updating the `SubType` property
401
- -- is not sufficient because the sprite will not change.
402
- function ____exports.setCollectibleSubType(self, collectible, newCollectibleType)
403
- if not isCollectible(nil, collectible) then
404
- local entityID = getEntityID(nil, collectible)
405
- error("The \"setCollectibleSubType\" function was given a non-collectible: " .. entityID)
428
+ local player = Isaac.GetPlayer()
429
+ local hasTMTRAINER = player:HasCollectible(CollectibleType.TMTRAINER)
430
+ if not hasTMTRAINER then
431
+ player:AddCollectible(CollectibleType.TMTRAINER, 0, false)
406
432
  end
407
- if newCollectibleType == CollectibleType.NULL then
408
- ____exports.setCollectibleEmpty(nil, collectible)
409
- return
433
+ local itemPool = game:GetItemPool()
434
+ local collectibleType = itemPool:GetCollectible(DEFAULT_ITEM_POOL_TYPE)
435
+ ____exports.setCollectibleSubType(nil, collectible, collectibleType)
436
+ if not hasTMTRAINER then
437
+ player:RemoveCollectible(CollectibleType.TMTRAINER)
410
438
  end
411
- collectible:Morph(
412
- EntityType.PICKUP,
413
- PickupVariant.COLLECTIBLE,
414
- newCollectibleType,
415
- true,
416
- true,
417
- true
418
- )
419
439
  end
420
440
  --- Helper function to put a message in the log.txt file to let the Rebirth Item Tracker know that
421
441
  -- the build has been rerolled.
@@ -0,0 +1,6 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ /// <reference types="isaac-typescript-definitions" />
3
+ /** For `EntityType.EFFECT` (1000), `EffectVariant.DICE_FLOOR` (76) */
4
+ export declare const DICE_FLOOR_TRIGGER_SQUARE_SIZE = 75;
5
+ /** Helper function to see if a player is close enough to activate a Dice Room floor. */
6
+ export declare function isCloseEnoughToTriggerDiceFloor(player: EntityPlayer, diceFloor: EntityEffect): boolean;
@@ -0,0 +1,12 @@
1
+ local ____exports = {}
2
+ local ____math = require("functions.math")
3
+ local inRectangle = ____math.inRectangle
4
+ --- For `EntityType.EFFECT` (1000), `EffectVariant.DICE_FLOOR` (76)
5
+ ____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE = 75
6
+ --- Helper function to see if a player is close enough to activate a Dice Room floor.
7
+ function ____exports.isCloseEnoughToTriggerDiceFloor(self, player, diceFloor)
8
+ local topLeft = diceFloor.Position + Vector(-____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE, -____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE)
9
+ local bottomRight = diceFloor.Position + Vector(____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE, ____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE)
10
+ return inRectangle(nil, player.Position, topLeft, bottomRight)
11
+ end
12
+ 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"
package/index.d.ts CHANGED
@@ -51,6 +51,7 @@ export * from "./functions/direction";
51
51
  export * from "./functions/doors";
52
52
  export * from "./functions/easing";
53
53
  export * from "./functions/eden";
54
+ export * from "./functions/effects";
54
55
  export * from "./functions/entity";
55
56
  export * from "./functions/entitySpecific";
56
57
  export * from "./functions/entityTypes";
package/index.lua CHANGED
@@ -401,6 +401,14 @@ do
401
401
  end
402
402
  end
403
403
  end
404
+ do
405
+ local ____export = require("functions.effects")
406
+ for ____exportKey, ____exportValue in pairs(____export) do
407
+ if ____exportKey ~= "default" then
408
+ ____exports[____exportKey] = ____exportValue
409
+ end
410
+ end
411
+ end
404
412
  do
405
413
  local ____export = require("functions.entity")
406
414
  for ____exportKey, ____exportValue in pairs(____export) do