isaacscript-common 6.15.0 → 6.16.2

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 (118) hide show
  1. package/dist/callbacks/postGridEntityCustomCollision.d.ts +2 -0
  2. package/dist/callbacks/postGridEntityCustomCollision.d.ts.map +1 -0
  3. package/dist/callbacks/postGridEntityCustomCollision.lua +71 -0
  4. package/dist/callbacks/postGridEntityCustomRender.lua +0 -7
  5. package/dist/callbacks/postGridEntityCustomUpdate.lua +0 -7
  6. package/dist/callbacks/subscriptions/postGridEntityCustomBroken.d.ts +6 -0
  7. package/dist/callbacks/subscriptions/postGridEntityCustomBroken.d.ts.map +1 -0
  8. package/dist/callbacks/subscriptions/postGridEntityCustomBroken.lua +24 -0
  9. package/dist/callbacks/subscriptions/postGridEntityCustomCollision.d.ts +6 -0
  10. package/dist/callbacks/subscriptions/postGridEntityCustomCollision.d.ts.map +1 -0
  11. package/dist/callbacks/subscriptions/postGridEntityCustomCollision.lua +29 -0
  12. package/dist/enums/ModCallbackCustom.d.ts +96 -62
  13. package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
  14. package/dist/enums/ModCallbackCustom.lua +64 -60
  15. package/dist/features/customGridEntity.d.ts +5 -1
  16. package/dist/features/customGridEntity.d.ts.map +1 -1
  17. package/dist/features/customGridEntity.lua +65 -5
  18. package/dist/functions/color.d.ts +11 -15
  19. package/dist/functions/color.d.ts.map +1 -1
  20. package/dist/functions/color.lua +55 -74
  21. package/dist/functions/deepCopy.d.ts.map +1 -1
  22. package/dist/functions/deepCopy.lua +22 -1
  23. package/dist/functions/gridEntities.d.ts +0 -16
  24. package/dist/functions/gridEntities.d.ts.map +1 -1
  25. package/dist/functions/gridEntities.lua +0 -19
  26. package/dist/functions/isaacAPIClass.d.ts +1 -1
  27. package/dist/functions/isaacAPIClass.d.ts.map +1 -1
  28. package/dist/functions/kColor.d.ts +11 -15
  29. package/dist/functions/kColor.d.ts.map +1 -1
  30. package/dist/functions/kColor.lua +42 -61
  31. package/dist/functions/mergeTests.lua +2 -2
  32. package/dist/functions/npcs.d.ts +1 -29
  33. package/dist/functions/npcs.d.ts.map +1 -1
  34. package/dist/functions/npcs.lua +0 -45
  35. package/dist/functions/projectiles.d.ts +32 -0
  36. package/dist/functions/projectiles.d.ts.map +1 -0
  37. package/dist/functions/projectiles.lua +73 -0
  38. package/dist/functions/rng.d.ts +11 -15
  39. package/dist/functions/rng.d.ts.map +1 -1
  40. package/dist/functions/rng.lua +32 -52
  41. package/dist/functions/rockAlt.d.ts +27 -3
  42. package/dist/functions/rockAlt.d.ts.map +1 -1
  43. package/dist/functions/rockAlt.lua +113 -33
  44. package/dist/functions/saveFile.d.ts.map +1 -1
  45. package/dist/functions/saveFile.lua +3 -1
  46. package/dist/functions/serialization.d.ts +26 -7
  47. package/dist/functions/serialization.d.ts.map +1 -1
  48. package/dist/functions/serialization.lua +51 -19
  49. package/dist/functions/table.d.ts +2 -2
  50. package/dist/functions/table.lua +2 -2
  51. package/dist/functions/tstlClass.d.ts +1 -1
  52. package/dist/functions/tstlClass.d.ts.map +1 -1
  53. package/dist/functions/vector.d.ts +11 -15
  54. package/dist/functions/vector.d.ts.map +1 -1
  55. package/dist/functions/vector.lua +36 -55
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.lua +8 -0
  59. package/dist/initCustomCallbacks.d.ts.map +1 -1
  60. package/dist/initCustomCallbacks.lua +3 -0
  61. package/dist/interfaces/AddCallbackParameterCustom.d.ts +4 -0
  62. package/dist/interfaces/AddCallbackParameterCustom.d.ts.map +1 -1
  63. package/dist/objects/callbackRegisterFunctions.d.ts.map +1 -1
  64. package/dist/objects/callbackRegisterFunctions.lua +6 -0
  65. package/dist/objects/isaacAPIClassTypeToFunctions.d.ts +12 -0
  66. package/dist/objects/isaacAPIClassTypeToFunctions.d.ts.map +1 -0
  67. package/dist/objects/isaacAPIClassTypeToFunctions.lua +25 -0
  68. package/dist/types/{private/IsaacAPIClass.d.ts → IsaacAPIClass.d.ts} +0 -0
  69. package/dist/types/IsaacAPIClass.d.ts.map +1 -0
  70. package/dist/types/{private/IsaacAPIClass.lua → IsaacAPIClass.lua} +0 -0
  71. package/dist/types/{private/SerializedIsaacAPIClass.d.ts → SerializedIsaacAPIClass.d.ts} +0 -0
  72. package/dist/types/SerializedIsaacAPIClass.d.ts.map +1 -0
  73. package/dist/types/{private/SerializedIsaacAPIClass.lua → SerializedIsaacAPIClass.lua} +0 -0
  74. package/dist/types/{private/TSTLClass.d.ts → TSTLClass.d.ts} +0 -0
  75. package/dist/types/TSTLClass.d.ts.map +1 -0
  76. package/dist/types/{private/TSTLClass.lua → TSTLClass.lua} +0 -0
  77. package/package.json +2 -2
  78. package/src/callbacks/postGridEntityCustomCollision.ts +74 -0
  79. package/src/callbacks/postGridEntityCustomRender.ts +1 -17
  80. package/src/callbacks/postGridEntityCustomUpdate.ts +1 -17
  81. package/src/callbacks/subscriptions/postGridEntityCustomBroken.ts +36 -0
  82. package/src/callbacks/subscriptions/postGridEntityCustomCollision.ts +43 -0
  83. package/src/enums/ModCallbackCustom.ts +38 -2
  84. package/src/features/customGridEntity.ts +76 -0
  85. package/src/functions/color.ts +67 -87
  86. package/src/functions/deepCopy.ts +15 -2
  87. package/src/functions/gridEntities.ts +0 -23
  88. package/src/functions/isaacAPIClass.ts +1 -1
  89. package/src/functions/kColor.ts +65 -84
  90. package/src/functions/mergeTests.ts +2 -2
  91. package/src/functions/npcs.ts +1 -58
  92. package/src/functions/projectiles.ts +78 -0
  93. package/src/functions/rng.ts +45 -65
  94. package/src/functions/rockAlt.ts +127 -40
  95. package/src/functions/saveFile.ts +2 -1
  96. package/src/functions/serialization.ts +81 -25
  97. package/src/functions/table.ts +2 -2
  98. package/src/functions/tstlClass.ts +1 -1
  99. package/src/functions/vector.ts +55 -74
  100. package/src/index.ts +1 -0
  101. package/src/initCustomCallbacks.ts +2 -0
  102. package/src/interfaces/AddCallbackParameterCustom.ts +4 -0
  103. package/src/objects/callbackRegisterFunctions.ts +6 -0
  104. package/src/objects/isaacAPIClassTypeToFunctions.ts +63 -0
  105. package/src/types/{private/IsaacAPIClass.ts → IsaacAPIClass.ts} +0 -0
  106. package/src/types/{private/SerializedIsaacAPIClass.ts → SerializedIsaacAPIClass.ts} +0 -0
  107. package/src/types/{private/TSTLClass.ts → TSTLClass.ts} +0 -0
  108. package/dist/objects/isaacAPIClassTypeToCopyFunction.d.ts +0 -6
  109. package/dist/objects/isaacAPIClassTypeToCopyFunction.d.ts.map +0 -1
  110. package/dist/objects/isaacAPIClassTypeToCopyFunction.lua +0 -13
  111. package/dist/objects/serializedIsaacAPIClassTypeToIdentityFunction.d.ts +0 -5
  112. package/dist/objects/serializedIsaacAPIClassTypeToIdentityFunction.d.ts.map +0 -1
  113. package/dist/objects/serializedIsaacAPIClassTypeToIdentityFunction.lua +0 -13
  114. package/dist/types/private/IsaacAPIClass.d.ts.map +0 -1
  115. package/dist/types/private/SerializedIsaacAPIClass.d.ts.map +0 -1
  116. package/dist/types/private/TSTLClass.d.ts.map +0 -1
  117. package/src/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
  118. package/src/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
@@ -56,124 +56,128 @@ ____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_CUSTOM_RENDER = 25
59
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN = 25
60
+ ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN] = "POST_GRID_ENTITY_CUSTOM_BROKEN"
61
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION = 26
62
+ ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION] = "POST_GRID_ENTITY_CUSTOM_COLLISION"
63
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER = 27
60
64
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER] = "POST_GRID_ENTITY_CUSTOM_RENDER"
61
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE = 26
65
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE = 28
62
66
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE] = "POST_GRID_ENTITY_CUSTOM_UPDATE"
63
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT = 27
67
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT = 29
64
68
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT] = "POST_GRID_ENTITY_INIT"
65
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE = 28
69
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE = 30
66
70
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE] = "POST_GRID_ENTITY_REMOVE"
67
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER = 29
71
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER = 31
68
72
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER] = "POST_GRID_ENTITY_RENDER"
69
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED = 30
73
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED = 32
70
74
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED] = "POST_GRID_ENTITY_STATE_CHANGED"
71
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE = 31
75
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE = 33
72
76
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE] = "POST_GRID_ENTITY_UPDATE"
73
- ____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED = 32
77
+ ____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED = 34
74
78
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED] = "POST_HOLY_MANTLE_REMOVED"
75
- ____exports.ModCallbackCustom.POST_ITEM_DISCHARGE = 33
79
+ ____exports.ModCallbackCustom.POST_ITEM_DISCHARGE = 35
76
80
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ITEM_DISCHARGE] = "POST_ITEM_DISCHARGE"
77
- ____exports.ModCallbackCustom.POST_ITEM_PICKUP = 34
81
+ ____exports.ModCallbackCustom.POST_ITEM_PICKUP = 36
78
82
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ITEM_PICKUP] = "POST_ITEM_PICKUP"
79
- ____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE = 35
83
+ ____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE = 37
80
84
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE] = "POST_KNIFE_INIT_LATE"
81
- ____exports.ModCallbackCustom.POST_LASER_INIT_LATE = 36
85
+ ____exports.ModCallbackCustom.POST_LASER_INIT_LATE = 38
82
86
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_LASER_INIT_LATE] = "POST_LASER_INIT_LATE"
83
- ____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED = 37
87
+ ____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED = 39
84
88
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED] = "POST_NEW_LEVEL_REORDERED"
85
- ____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY = 38
89
+ ____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY = 40
86
90
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY] = "POST_NEW_ROOM_EARLY"
87
- ____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED = 39
91
+ ____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED = 41
88
92
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED] = "POST_NEW_ROOM_REORDERED"
89
- ____exports.ModCallbackCustom.POST_NPC_INIT_LATE = 40
93
+ ____exports.ModCallbackCustom.POST_NPC_INIT_LATE = 42
90
94
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_INIT_LATE] = "POST_NPC_INIT_LATE"
91
- ____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED = 41
95
+ ____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED = 43
92
96
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED] = "POST_NPC_STATE_CHANGED"
93
- ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 42
97
+ ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 44
94
98
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED] = "POST_PEFFECT_UPDATE_REORDERED"
95
- ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 43
99
+ ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 45
96
100
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_COLLECT] = "POST_PICKUP_COLLECT"
97
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 44
101
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 46
98
102
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST] = "POST_PICKUP_INIT_FIRST"
99
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 45
103
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 47
100
104
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE] = "POST_PICKUP_INIT_LATE"
101
- ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 46
105
+ ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 48
102
106
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED] = "POST_PICKUP_STATE_CHANGED"
103
- ____exports.ModCallbackCustom.POST_PIT_RENDER = 47
107
+ ____exports.ModCallbackCustom.POST_PIT_RENDER = 49
104
108
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_RENDER] = "POST_PIT_RENDER"
105
- ____exports.ModCallbackCustom.POST_PIT_UPDATE = 48
109
+ ____exports.ModCallbackCustom.POST_PIT_UPDATE = 50
106
110
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_UPDATE] = "POST_PIT_UPDATE"
107
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 49
111
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 51
108
112
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH] = "POST_PLAYER_CHANGE_HEALTH"
109
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 50
113
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 52
110
114
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE] = "POST_PLAYER_CHANGE_TYPE"
111
- ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED = 51
115
+ ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED = 53
112
116
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED] = "POST_PLAYER_COLLECTIBLE_ADDED"
113
- ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED = 52
117
+ ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED = 54
114
118
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED] = "POST_PLAYER_COLLECTIBLE_REMOVED"
115
- ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 53
119
+ ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 55
116
120
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE] = "POST_PLAYER_FATAL_DAMAGE"
117
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST = 54
121
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST = 56
118
122
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST] = "POST_PLAYER_INIT_FIRST"
119
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 55
123
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 57
120
124
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE] = "POST_PLAYER_INIT_LATE"
121
- ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 56
125
+ ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 58
122
126
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED] = "POST_PLAYER_RENDER_REORDERED"
123
- ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 57
127
+ ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 59
124
128
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED] = "POST_PLAYER_UPDATE_REORDERED"
125
- ____exports.ModCallbackCustom.POST_POOP_RENDER = 58
129
+ ____exports.ModCallbackCustom.POST_POOP_RENDER = 60
126
130
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_RENDER] = "POST_POOP_RENDER"
127
- ____exports.ModCallbackCustom.POST_POOP_UPDATE = 59
131
+ ____exports.ModCallbackCustom.POST_POOP_UPDATE = 61
128
132
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_UPDATE] = "POST_POOP_UPDATE"
129
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 60
133
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 62
130
134
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER] = "POST_PRESSURE_PLATE_RENDER"
131
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 61
135
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 63
132
136
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE] = "POST_PRESSURE_PLATE_UPDATE"
133
- ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 62
137
+ ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 64
134
138
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE] = "POST_PROJECTILE_INIT_LATE"
135
- ____exports.ModCallbackCustom.POST_PURCHASE = 63
139
+ ____exports.ModCallbackCustom.POST_PURCHASE = 65
136
140
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PURCHASE] = "POST_PURCHASE"
137
- ____exports.ModCallbackCustom.POST_ROCK_RENDER = 64
141
+ ____exports.ModCallbackCustom.POST_ROCK_RENDER = 66
138
142
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_RENDER] = "POST_ROCK_RENDER"
139
- ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 65
143
+ ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 67
140
144
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_UPDATE] = "POST_ROCK_UPDATE"
141
- ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 66
145
+ ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 68
142
146
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED] = "POST_ROOM_CLEAR_CHANGED"
143
- ____exports.ModCallbackCustom.POST_SACRIFICE = 67
147
+ ____exports.ModCallbackCustom.POST_SACRIFICE = 69
144
148
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SACRIFICE] = "POST_SACRIFICE"
145
- ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 68
149
+ ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 70
146
150
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED] = "POST_SLOT_ANIMATION_CHANGED"
147
- ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 69
151
+ ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 71
148
152
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_DESTROYED] = "POST_SLOT_DESTROYED"
149
- ____exports.ModCallbackCustom.POST_SLOT_INIT = 70
153
+ ____exports.ModCallbackCustom.POST_SLOT_INIT = 72
150
154
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_INIT] = "POST_SLOT_INIT"
151
- ____exports.ModCallbackCustom.POST_SLOT_RENDER = 71
155
+ ____exports.ModCallbackCustom.POST_SLOT_RENDER = 73
152
156
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_RENDER] = "POST_SLOT_RENDER"
153
- ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 72
157
+ ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 74
154
158
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_UPDATE] = "POST_SLOT_UPDATE"
155
- ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 73
159
+ ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 75
156
160
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_RENDER] = "POST_SPIKES_RENDER"
157
- ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 74
161
+ ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 76
158
162
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_UPDATE] = "POST_SPIKES_UPDATE"
159
- ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 75
163
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 77
160
164
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_LATE] = "POST_TEAR_INIT_LATE"
161
- ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 76
165
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 78
162
166
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE] = "POST_TEAR_INIT_VERY_LATE"
163
- ____exports.ModCallbackCustom.POST_TNT_RENDER = 77
167
+ ____exports.ModCallbackCustom.POST_TNT_RENDER = 79
164
168
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_RENDER] = "POST_TNT_RENDER"
165
- ____exports.ModCallbackCustom.POST_TNT_UPDATE = 78
169
+ ____exports.ModCallbackCustom.POST_TNT_UPDATE = 80
166
170
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_UPDATE] = "POST_TNT_UPDATE"
167
- ____exports.ModCallbackCustom.POST_TRANSFORMATION = 79
171
+ ____exports.ModCallbackCustom.POST_TRANSFORMATION = 81
168
172
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRANSFORMATION] = "POST_TRANSFORMATION"
169
- ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 80
173
+ ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 82
170
174
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRINKET_BREAK] = "POST_TRINKET_BREAK"
171
- ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 81
175
+ ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 83
172
176
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_BERSERK_DEATH] = "PRE_BERSERK_DEATH"
173
- ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 82
177
+ ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 84
174
178
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE] = "PRE_CUSTOM_REVIVE"
175
- ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 83
179
+ ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 85
176
180
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_ITEM_PICKUP] = "PRE_ITEM_PICKUP"
177
- ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 84
181
+ ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 86
178
182
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_NEW_LEVEL] = "PRE_NEW_LEVEL"
179
183
  return ____exports
@@ -25,8 +25,12 @@ import { CustomGridEntityData } from "../interfaces/CustomGridEntityData";
25
25
  * @param defaultAnimation Optional. The name of the animation to play after the sprite is
26
26
  * initialized and after the player re-enters a room with this grid entity
27
27
  * in it. If not specified, the default animation in the anm2 will be used.
28
+ * @param breakable Optional. Whether or not an explosion will be able to break this grid entity.
29
+ * False by default. Use the `POST_GRID_ENTITY_CUSTOM_BROKEN` callback to detect
30
+ * when it breaks. Due to technical limitations, you can only set the grid entity
31
+ * to be breakable if it has a collision class.
28
32
  */
29
- export declare function spawnCustomGridEntity(gridEntityTypeCustom: GridEntityType, gridIndexOrPosition: int | Vector, gridCollisionClass: GridCollisionClass, anm2Path: string, defaultAnimation?: string): GridEntity;
33
+ export declare function spawnCustomGridEntity(gridEntityTypeCustom: GridEntityType, gridIndexOrPosition: int | Vector, gridCollisionClass: GridCollisionClass, anm2Path: string, defaultAnimation?: string, breakable?: boolean): GridEntity;
30
34
  /**
31
35
  * Helper function to remove a custom grid entity created by the `spawnCustomGrid` function.
32
36
  *
@@ -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;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"}
1
+ {"version":3,"file":"customGridEntity.d.ts","sourceRoot":"","sources":["../../src/features/customGridEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,kBAAkB,EAClB,cAAc,EAGf,MAAM,8BAA8B,CAAC;AAgBtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AA0K1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;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,EACzB,SAAS,UAAQ,GAChB,UAAU,CA8DZ;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"}
@@ -1,16 +1,21 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local Map = ____lualib.Map
3
3
  local __TS__New = ____lualib.__TS__New
4
+ local Set = ____lualib.Set
4
5
  local __TS__Iterator = ____lualib.__TS__Iterator
5
6
  local ____exports = {}
6
- local preUseItemWeNeedToGoDeeper, postNewRoomReordered, v
7
+ local entityTakeDmgDummy, preUseItemWeNeedToGoDeeper, postNewRoomReordered, v
7
8
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
8
9
  local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
10
+ local DamageFlag = ____isaac_2Dtypescript_2Ddefinitions.DamageFlag
11
+ local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
9
12
  local GridCollisionClass = ____isaac_2Dtypescript_2Ddefinitions.GridCollisionClass
10
13
  local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
11
14
  local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
12
15
  local ____cachedClasses = require("cachedClasses")
13
16
  local game = ____cachedClasses.game
17
+ local ____postGridEntityCustomBroken = require("callbacks.subscriptions.postGridEntityCustomBroken")
18
+ local postGridEntityCustomBrokenFire = ____postGridEntityCustomBroken.postGridEntityCustomBrokenFire
14
19
  local ____DefaultMap = require("classes.DefaultMap")
15
20
  local DefaultMap = ____DefaultMap.DefaultMap
16
21
  local ____DecorationVariant = require("enums.DecorationVariant")
@@ -19,6 +24,10 @@ local ____ModCallbackCustom = require("enums.ModCallbackCustom")
19
24
  local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
20
25
  local ____featuresInitialized = require("featuresInitialized")
21
26
  local errorIfFeaturesNotInitialized = ____featuresInitialized.errorIfFeaturesNotInitialized
27
+ local ____entitiesSpecific = require("functions.entitiesSpecific")
28
+ local spawnNPC = ____entitiesSpecific.spawnNPC
29
+ local ____flag = require("functions.flag")
30
+ local hasFlag = ____flag.hasFlag
22
31
  local ____gridEntities = require("functions.gridEntities")
23
32
  local removeGridEntity = ____gridEntities.removeGridEntity
24
33
  local spawnGridEntityWithVariant = ____gridEntities.spawnGridEntityWithVariant
@@ -30,6 +39,32 @@ local ____runInNFrames = require("features.runInNFrames")
30
39
  local runNextGameFrame = ____runInNFrames.runNextGameFrame
31
40
  local ____exports = require("features.saveDataManager.exports")
32
41
  local saveDataManager = ____exports.saveDataManager
42
+ function entityTakeDmgDummy(self, tookDamage, _damageAmount, damageFlags, _damageSource, _damageCountdownFrames)
43
+ local ptrHash = GetPtrHash(tookDamage)
44
+ if not v.room.dummyPtrHashes:has(ptrHash) then
45
+ return nil
46
+ end
47
+ if not hasFlag(nil, damageFlags, DamageFlag.EXPLOSION) then
48
+ return false
49
+ end
50
+ local room = game:GetRoom()
51
+ local roomListIndex = getRoomListIndex(nil)
52
+ local roomCustomGridEntities = v.level.customGridEntities:get(roomListIndex)
53
+ if roomCustomGridEntities == nil then
54
+ return false
55
+ end
56
+ local gridIndex = room:GetGridIndex(tookDamage.Position)
57
+ local data = roomCustomGridEntities:get(gridIndex)
58
+ if data == nil then
59
+ return false
60
+ end
61
+ local gridEntity = room:GetGridEntity(gridIndex)
62
+ if gridEntity == nil then
63
+ error("Failed to get the grid entity for a custom grid entity that broke at grid index: " .. tostring(gridIndex))
64
+ end
65
+ postGridEntityCustomBrokenFire(nil, gridEntity, data.gridEntityTypeCustom)
66
+ return false
67
+ end
33
68
  function preUseItemWeNeedToGoDeeper(self, _collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData)
34
69
  local room = game:GetRoom()
35
70
  local roomListIndex = getRoomListIndex(nil)
@@ -79,14 +114,14 @@ function postNewRoomReordered(self)
79
114
  local decoration = room:GetGridEntity(gridIndex)
80
115
  if decoration == nil then
81
116
  roomCustomGridEntities:delete(gridIndex)
82
- goto __continue13
117
+ goto __continue19
83
118
  end
84
119
  local sprite = decoration:GetSprite()
85
120
  sprite:Load(data.anm2Path, true)
86
121
  local animationToPlay = data.defaultAnimation == nil and sprite:GetDefaultAnimation() or data.defaultAnimation
87
122
  sprite:Play(animationToPlay, true)
88
123
  end
89
- ::__continue13::
124
+ ::__continue19::
90
125
  end
91
126
  end
92
127
  local FEATURE_NAME = "customGridEntity"
@@ -95,12 +130,16 @@ v = {
95
130
  DefaultMap,
96
131
  function() return __TS__New(Map) end
97
132
  )},
98
- room = {manuallyUsingShovel = false}
133
+ room = {
134
+ dummyPtrHashes = __TS__New(Set),
135
+ manuallyUsingShovel = false
136
+ }
99
137
  }
100
138
  ---
101
139
  -- @internal
102
140
  function ____exports.customGridEntityInit(self, mod)
103
141
  saveDataManager(nil, FEATURE_NAME, v)
142
+ mod:AddCallback(ModCallback.ENTITY_TAKE_DMG, entityTakeDmgDummy, EntityType.DUMMY)
104
143
  mod:AddCallback(ModCallback.PRE_USE_ITEM, preUseItemWeNeedToGoDeeper, CollectibleType.WE_NEED_TO_GO_DEEPER)
105
144
  mod:AddCallbackCustom(ModCallbackCustom.POST_NEW_ROOM_REORDERED, postNewRoomReordered)
106
145
  end
@@ -128,8 +167,18 @@ end
128
167
  -- @param defaultAnimation Optional. The name of the animation to play after the sprite is
129
168
  -- initialized and after the player re-enters a room with this grid entity
130
169
  -- in it. If not specified, the default animation in the anm2 will be used.
131
- function ____exports.spawnCustomGridEntity(self, gridEntityTypeCustom, gridIndexOrPosition, gridCollisionClass, anm2Path, defaultAnimation)
170
+ -- @param breakable Optional. Whether or not an explosion will be able to break this grid entity.
171
+ -- False by default. Use the `POST_GRID_ENTITY_CUSTOM_BROKEN` callback to detect
172
+ -- when it breaks. Due to technical limitations, you can only set the grid entity
173
+ -- to be breakable if it has a collision class.
174
+ function ____exports.spawnCustomGridEntity(self, gridEntityTypeCustom, gridIndexOrPosition, gridCollisionClass, anm2Path, defaultAnimation, breakable)
175
+ if breakable == nil then
176
+ breakable = false
177
+ end
132
178
  errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
179
+ if breakable and gridCollisionClass == GridCollisionClass.NONE then
180
+ error("Failed to spawn a custom grid entity because it is not possible to have breakable custom grid entities with a collision class of: GridCollisionClass.NONE (0)")
181
+ end
133
182
  local room = game:GetRoom()
134
183
  local roomListIndex = getRoomListIndex(nil)
135
184
  local gridIndex = isVector(nil, gridIndexOrPosition) and room:GetGridIndex(gridIndexOrPosition) or gridIndexOrPosition
@@ -153,6 +202,17 @@ function ____exports.spawnCustomGridEntity(self, gridEntityTypeCustom, gridIndex
153
202
  }
154
203
  local roomCustomGridEntities = v.level.customGridEntities:getAndSetDefault(roomListIndex)
155
204
  roomCustomGridEntities:set(gridIndex, customGridEntityData)
205
+ if breakable then
206
+ local position = room:GetGridPosition(gridIndex)
207
+ local dummy = spawnNPC(
208
+ nil,
209
+ EntityType.DUMMY,
210
+ 0,
211
+ 0,
212
+ position
213
+ )
214
+ dummy.Visible = false
215
+ end
156
216
  return decoration
157
217
  end
158
218
  --- Helper function to remove a custom grid entity created by the `spawnCustomGrid` function.
@@ -2,25 +2,17 @@
2
2
  /// <reference types="isaac-typescript-definitions" />
3
3
  /// <reference types="isaac-typescript-definitions" />
4
4
  /// <reference types="isaac-typescript-definitions" />
5
- import { SerializationType } from "../enums/SerializationType";
6
- declare type SerializedColor = LuaMap<string, unknown> & {
5
+ export declare type SerializedColor = LuaMap<string, unknown> & {
7
6
  readonly __serializedColorBrand: symbol;
8
7
  };
9
- interface CopyColorReturn {
10
- [SerializationType.NONE]: Color;
11
- [SerializationType.SERIALIZE]: SerializedColor;
12
- [SerializationType.DESERIALIZE]: Color;
13
- }
14
8
  export declare function colorEquals(color1: Color, color2: Color): boolean;
9
+ /** Helper function to copy a `Color` Isaac API class. */
10
+ export declare function copyColor(color: Color): Color;
15
11
  /**
16
- * Helper function to copy a `Color` object.
17
- *
18
- * @param color The Color object to copy. In the case of deserialization, this will actually be a
19
- * Lua table instead of an instantiated Color class.
20
- * @param serializationType Default is `SerializationType.NONE`.
12
+ * Helper function to convert a `SerializedColor` object to a normal `Color` object. (This is used
13
+ * by the save data manager when reading data from the "save#.dat" file.)
21
14
  */
22
- export declare function copyColor<C extends Color | SerializedColor, S extends SerializationType>(color: C, serializationType: S): CopyColorReturn[S];
23
- export declare function copyColor<C extends Color | SerializedColor>(color: C): CopyColorReturn[SerializationType.NONE];
15
+ export declare function deserializeColor(color: SerializedColor): Color;
24
16
  /**
25
17
  * Helper function to get a random color.
26
18
  *
@@ -36,5 +28,9 @@ export declare function isColor(object: unknown): object is Color;
36
28
  * manager and/or the `deepCopy` function.
37
29
  */
38
30
  export declare function isSerializedColor(object: unknown): object is SerializedColor;
39
- export {};
31
+ /**
32
+ * Helper function to convert a `Color` object to a `SerializedColor` object. (This is used by the
33
+ * save data manager when writing data from the "save#.dat" file.)
34
+ */
35
+ export declare function serializeColor(color: Color): SerializedColor;
40
36
  //# sourceMappingURL=color.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/functions/color.ts"],"names":[],"mappings":";;;;AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAO/D,aAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC/C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,UAAU,eAAe;IACvB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAChC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC/C,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;CACxC;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,KAAK,GAAG,eAAe,EACjC,CAAC,SAAS,iBAAiB,EAC3B,KAAK,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACtD,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,eAAe,EACzD,KAAK,EAAE,CAAC,GACP,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAuE3C;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,KAAK,SAAI,GACR,KAAK,CAQP;AAED,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,KAAK,CAExD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAM5E"}
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/functions/color.ts"],"names":[],"mappings":";;;;AAOA,oBAAY,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;CACzC,CAAC;AAKF,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAEjE;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAgB7C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CA8B9D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,KAAK,SAAI,GACR,KAAK,CAQP;AAED,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,KAAK,CAExD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAM5E;AACD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAW5D"}
@@ -2,8 +2,6 @@ local ____exports = {}
2
2
  local OBJECT_NAME
3
3
  local ____SerializationBrand = require("enums.private.SerializationBrand")
4
4
  local SerializationBrand = ____SerializationBrand.SerializationBrand
5
- local ____SerializationType = require("enums.SerializationType")
6
- local SerializationType = ____SerializationType.SerializationType
7
5
  local ____isaacAPIClass = require("functions.isaacAPIClass")
8
6
  local isaacAPIClassEquals = ____isaacAPIClass.isaacAPIClassEquals
9
7
  local isIsaacAPIClassOfType = ____isaacAPIClass.isIsaacAPIClassOfType
@@ -36,79 +34,51 @@ OBJECT_NAME = "Color"
36
34
  function ____exports.colorEquals(self, color1, color2)
37
35
  return isaacAPIClassEquals(nil, color1, color2, KEYS)
38
36
  end
39
- --- Helper function to copy a `Color` object.
40
- --
41
- -- @param color The Color object to copy. In the case of deserialization, this will actually be a
42
- -- Lua table instead of an instantiated Color class.
43
- -- @param serializationType Default is `SerializationType.NONE`.
44
- function ____exports.copyColor(self, color, serializationType)
45
- if serializationType == nil then
46
- serializationType = SerializationType.NONE
37
+ --- Helper function to copy a `Color` Isaac API class.
38
+ function ____exports.copyColor(self, color)
39
+ if not ____exports.isColor(nil, color) then
40
+ error(((("Failed to copy a " .. OBJECT_NAME) .. " object since the provided object was not a userdata ") .. OBJECT_NAME) .. " class.")
41
+ end
42
+ return Color(
43
+ color.R,
44
+ color.G,
45
+ color.B,
46
+ color.A,
47
+ color.RO,
48
+ color.GO,
49
+ color.BO
50
+ )
51
+ end
52
+ --- Helper function to convert a `SerializedColor` object to a normal `Color` object. (This is used
53
+ -- by the save data manager when reading data from the "save#.dat" file.)
54
+ function ____exports.deserializeColor(self, color)
55
+ if not isTable(nil, color) then
56
+ error(("Failed to deserialize a " .. OBJECT_NAME) .. " object since the provided object was not a Lua table.")
57
+ end
58
+ local r, g, b, a, ro, go, bo = table.unpack(getNumbersFromTable(
59
+ nil,
60
+ color,
61
+ OBJECT_NAME,
62
+ table.unpack(KEYS)
63
+ ))
64
+ if r == nil then
65
+ error(("Failed to deserialize a " .. OBJECT_NAME) .. " object since the provided object did not have a value for: R")
66
+ end
67
+ if g == nil then
68
+ error(("Failed to deserialize a " .. OBJECT_NAME) .. " object since the provided object did not have a value for: G")
69
+ end
70
+ if b == nil then
71
+ error(("Failed to deserialize a " .. OBJECT_NAME) .. " object since the provided object did not have a value for: B")
47
72
  end
48
- repeat
49
- local ____switch4 = serializationType
50
- local ____cond4 = ____switch4 == SerializationType.NONE
51
- if ____cond4 then
52
- do
53
- if not ____exports.isColor(nil, color) then
54
- error(((("Failed to copy a " .. OBJECT_NAME) .. " object since the provided object was not a userdata ") .. OBJECT_NAME) .. " class.")
55
- end
56
- return Color(
57
- color.R,
58
- color.G,
59
- color.B,
60
- color.A,
61
- color.RO,
62
- color.GO,
63
- color.BO
64
- )
65
- end
66
- end
67
- ____cond4 = ____cond4 or ____switch4 == SerializationType.SERIALIZE
68
- if ____cond4 then
69
- do
70
- if not ____exports.isColor(nil, color) then
71
- error(((("Failed to serialize a " .. OBJECT_NAME) .. " object since the provided object was not a userdata ") .. OBJECT_NAME) .. " class.")
72
- end
73
- local colorTable = {}
74
- copyValuesToTable(nil, color, KEYS, colorTable)
75
- colorTable[SerializationBrand.COLOR] = ""
76
- return colorTable
77
- end
78
- end
79
- ____cond4 = ____cond4 or ____switch4 == SerializationType.DESERIALIZE
80
- if ____cond4 then
81
- do
82
- if not isTable(nil, color) then
83
- error(("Failed to deserialize a " .. OBJECT_NAME) .. " object since the provided object was not a Lua table.")
84
- end
85
- local r, g, b, a, ro, go, bo = table.unpack(getNumbersFromTable(
86
- nil,
87
- color,
88
- OBJECT_NAME,
89
- table.unpack(KEYS)
90
- ))
91
- if r == nil then
92
- error(("Failed to deserialize a " .. OBJECT_NAME) .. " object since the provided object did not have a value for: r")
93
- end
94
- if g == nil then
95
- error(("Failed to deserialize a " .. OBJECT_NAME) .. " object since the provided object did not have a value for: g")
96
- end
97
- if b == nil then
98
- error(("Failed to deserialize a " .. OBJECT_NAME) .. " object since the provided object did not have a value for: b")
99
- end
100
- return Color(
101
- r,
102
- g,
103
- b,
104
- a,
105
- ro,
106
- go,
107
- bo
108
- )
109
- end
110
- end
111
- until true
73
+ return Color(
74
+ r,
75
+ g,
76
+ b,
77
+ a,
78
+ ro,
79
+ go,
80
+ bo
81
+ )
112
82
  end
113
83
  --- Helper function to get a random color.
114
84
  --
@@ -140,4 +110,15 @@ function ____exports.isSerializedColor(self, object)
140
110
  table.unpack(KEYS)
141
111
  ) and object[SerializationBrand.COLOR] ~= nil
142
112
  end
113
+ --- Helper function to convert a `Color` object to a `SerializedColor` object. (This is used by the
114
+ -- save data manager when writing data from the "save#.dat" file.)
115
+ function ____exports.serializeColor(self, color)
116
+ if not ____exports.isColor(nil, color) then
117
+ error(((("Failed to serialize a " .. OBJECT_NAME) .. " object since the provided object was not a userdata ") .. OBJECT_NAME) .. " class.")
118
+ end
119
+ local colorTable = {}
120
+ copyValuesToTable(nil, color, KEYS, colorTable)
121
+ colorTable[SerializationBrand.COLOR] = ""
122
+ return colorTable
123
+ end
143
124
  return ____exports
@@ -1 +1 @@
1
- {"version":3,"file":"deepCopy.d.ts","sourceRoot":"","sources":["../../src/functions/deepCopy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AA4B/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,OAAO,EACd,iBAAiB,oBAAyB,EAC1C,oBAAoB,SAAK,EACzB,SAAS,UAAQ,GAChB,OAAO,CAkDT"}
1
+ {"version":3,"file":"deepCopy.d.ts","sourceRoot":"","sources":["../../src/functions/deepCopy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AA6B/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,OAAO,EACd,iBAAiB,oBAAyB,EAC1C,oBAAoB,SAAK,EACzB,SAAS,UAAQ,GAChB,OAAO,CAkDT"}
@@ -31,6 +31,7 @@ local ____serialization = require("functions.serialization")
31
31
  local copyIsaacAPIClass = ____serialization.copyIsaacAPIClass
32
32
  local deserializeIsaacAPIClass = ____serialization.deserializeIsaacAPIClass
33
33
  local isSerializedIsaacAPIClass = ____serialization.isSerializedIsaacAPIClass
34
+ local serializeIsaacAPIClass = ____serialization.serializeIsaacAPIClass
34
35
  local ____tstlClass = require("functions.tstlClass")
35
36
  local getTSTLClassName = ____tstlClass.getTSTLClassName
36
37
  local isDefaultMap = ____tstlClass.isDefaultMap
@@ -520,7 +521,27 @@ function deepCopyUserdata(self, value, serializationType, traversalDescription)
520
521
  if not COPYABLE_ISAAC_API_CLASS_TYPES_SET:has(classType) then
521
522
  error((("The deep copy function does not support copying \"" .. traversalDescription) .. "\", since it is an Isaac API class of type: ") .. classType)
522
523
  end
523
- return copyIsaacAPIClass(nil, value, serializationType)
524
+ repeat
525
+ local ____switch99 = serializationType
526
+ local ____cond99 = ____switch99 == SerializationType.NONE
527
+ if ____cond99 then
528
+ do
529
+ return copyIsaacAPIClass(nil, value)
530
+ end
531
+ end
532
+ ____cond99 = ____cond99 or ____switch99 == SerializationType.SERIALIZE
533
+ if ____cond99 then
534
+ do
535
+ return serializeIsaacAPIClass(nil, value)
536
+ end
537
+ end
538
+ ____cond99 = ____cond99 or ____switch99 == SerializationType.DESERIALIZE
539
+ if ____cond99 then
540
+ do
541
+ return deserializeIsaacAPIClass(nil, value)
542
+ end
543
+ end
544
+ until true
524
545
  end
525
546
  COPYABLE_ISAAC_API_CLASS_TYPES_SET = __TS__New(
526
547
  Set,
@@ -1,5 +1,4 @@
1
1
  import { CrawlSpaceVariant, GridEntityType, GridEntityXMLType, TrapdoorVariant } from "isaac-typescript-definitions";
2
- import { RockAltType } from "../enums/RockAltType";
3
2
  import { AnyGridEntity } from "../types/AnyGridEntity";
4
3
  /**
5
4
  * Helper function to convert the grid entity type found in a room XML file to the corresponding
@@ -82,21 +81,6 @@ export declare function getGridEntityIDFromConstituents(gridEntityType: GridEnti
82
81
  * If you want to match every variant, use the `getGridEntities` function instead.
83
82
  */
84
83
  export declare function getMatchingGridEntities(gridEntityType: GridEntityType, variant: int): GridEntity[];
85
- /**
86
- * Helper function to get the alternate rock type (i.e. urn, mushroom, etc.) that the current room
87
- * will have.
88
- *
89
- * The rock type is based on the backdrop of the room.
90
- *
91
- * For example, if you change the backdrop of the starting room of the run to `BackdropType.CAVES`,
92
- * and then spawn `GridEntityType.ROCK_ALT`, it will be a mushroom instead of an urn. Additionally,
93
- * if it is destroyed, it will generate mushroom-appropriate rewards.
94
- *
95
- * On the other hand, if an urn is spawned first before the backdrop is changed to
96
- * `BackdropType.CAVES`, the graphic of the urn will not switch to a mushroom. However, when
97
- * destroyed, the urn will still generate mushroom-appropriate rewards.
98
- */
99
- export declare function getRockAltType(): RockAltType;
100
84
  export declare function getSurroundingGridEntities(gridEntity: GridEntity): GridEntity[];
101
85
  export declare function getTopLeftWall(): GridEntity | undefined;
102
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gridEntities.d.ts","sourceRoot":"","sources":["../../src/functions/gridEntities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gridEntities.d.ts","sourceRoot":"","sources":["../../src/functions/gridEntities.ts"],"names":[],"mappings":"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"}