isaacscript-common 6.14.0 → 6.16.1

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 (131) 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/collectibles.d.ts +6 -2
  19. package/dist/functions/collectibles.d.ts.map +1 -1
  20. package/dist/functions/collectibles.lua +4 -2
  21. package/dist/functions/color.d.ts +11 -15
  22. package/dist/functions/color.d.ts.map +1 -1
  23. package/dist/functions/color.lua +55 -74
  24. package/dist/functions/deepCopy.d.ts.map +1 -1
  25. package/dist/functions/deepCopy.lua +22 -1
  26. package/dist/functions/gridEntities.d.ts +0 -16
  27. package/dist/functions/gridEntities.d.ts.map +1 -1
  28. package/dist/functions/gridEntities.lua +0 -19
  29. package/dist/functions/isaacAPIClass.d.ts +1 -1
  30. package/dist/functions/isaacAPIClass.d.ts.map +1 -1
  31. package/dist/functions/itemPool.d.ts +10 -0
  32. package/dist/functions/itemPool.d.ts.map +1 -0
  33. package/dist/functions/itemPool.lua +116 -0
  34. package/dist/functions/kColor.d.ts +11 -15
  35. package/dist/functions/kColor.d.ts.map +1 -1
  36. package/dist/functions/kColor.lua +42 -61
  37. package/dist/functions/mergeTests.lua +2 -2
  38. package/dist/functions/npcs.d.ts +1 -29
  39. package/dist/functions/npcs.d.ts.map +1 -1
  40. package/dist/functions/npcs.lua +0 -45
  41. package/dist/functions/projectiles.d.ts +32 -0
  42. package/dist/functions/projectiles.d.ts.map +1 -0
  43. package/dist/functions/projectiles.lua +73 -0
  44. package/dist/functions/rng.d.ts +11 -15
  45. package/dist/functions/rng.d.ts.map +1 -1
  46. package/dist/functions/rng.lua +32 -52
  47. package/dist/functions/rockAlt.d.ts +26 -6
  48. package/dist/functions/rockAlt.d.ts.map +1 -1
  49. package/dist/functions/rockAlt.lua +303 -78
  50. package/dist/functions/saveFile.d.ts +8 -7
  51. package/dist/functions/saveFile.d.ts.map +1 -1
  52. package/dist/functions/saveFile.lua +10 -96
  53. package/dist/functions/serialization.d.ts +26 -7
  54. package/dist/functions/serialization.d.ts.map +1 -1
  55. package/dist/functions/serialization.lua +51 -19
  56. package/dist/functions/table.d.ts +2 -2
  57. package/dist/functions/table.lua +2 -2
  58. package/dist/functions/trinketGive.d.ts +13 -0
  59. package/dist/functions/trinketGive.d.ts.map +1 -1
  60. package/dist/functions/trinketGive.lua +16 -0
  61. package/dist/functions/tstlClass.d.ts +1 -1
  62. package/dist/functions/tstlClass.d.ts.map +1 -1
  63. package/dist/functions/vector.d.ts +11 -15
  64. package/dist/functions/vector.d.ts.map +1 -1
  65. package/dist/functions/vector.lua +36 -55
  66. package/dist/index.d.ts +2 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.lua +16 -0
  69. package/dist/initCustomCallbacks.d.ts.map +1 -1
  70. package/dist/initCustomCallbacks.lua +3 -0
  71. package/dist/interfaces/AddCallbackParameterCustom.d.ts +4 -0
  72. package/dist/interfaces/AddCallbackParameterCustom.d.ts.map +1 -1
  73. package/dist/objects/callbackRegisterFunctions.d.ts.map +1 -1
  74. package/dist/objects/callbackRegisterFunctions.lua +6 -0
  75. package/dist/objects/isaacAPIClassTypeToFunctions.d.ts +12 -0
  76. package/dist/objects/isaacAPIClassTypeToFunctions.d.ts.map +1 -0
  77. package/dist/objects/isaacAPIClassTypeToFunctions.lua +25 -0
  78. package/dist/types/{private/IsaacAPIClass.d.ts → IsaacAPIClass.d.ts} +0 -0
  79. package/dist/types/IsaacAPIClass.d.ts.map +1 -0
  80. package/dist/types/{private/IsaacAPIClass.lua → IsaacAPIClass.lua} +0 -0
  81. package/dist/types/{private/SerializedIsaacAPIClass.d.ts → SerializedIsaacAPIClass.d.ts} +0 -0
  82. package/dist/types/SerializedIsaacAPIClass.d.ts.map +1 -0
  83. package/dist/types/{private/SerializedIsaacAPIClass.lua → SerializedIsaacAPIClass.lua} +0 -0
  84. package/dist/types/{private/TSTLClass.d.ts → TSTLClass.d.ts} +0 -0
  85. package/dist/types/TSTLClass.d.ts.map +1 -0
  86. package/dist/types/{private/TSTLClass.lua → TSTLClass.lua} +0 -0
  87. package/package.json +2 -2
  88. package/src/callbacks/postGridEntityCustomCollision.ts +74 -0
  89. package/src/callbacks/postGridEntityCustomRender.ts +1 -17
  90. package/src/callbacks/postGridEntityCustomUpdate.ts +1 -17
  91. package/src/callbacks/subscriptions/postGridEntityCustomBroken.ts +36 -0
  92. package/src/callbacks/subscriptions/postGridEntityCustomCollision.ts +43 -0
  93. package/src/enums/ModCallbackCustom.ts +38 -2
  94. package/src/features/customGridEntity.ts +76 -0
  95. package/src/functions/collectibles.ts +6 -2
  96. package/src/functions/color.ts +67 -87
  97. package/src/functions/deepCopy.ts +15 -2
  98. package/src/functions/gridEntities.ts +0 -23
  99. package/src/functions/isaacAPIClass.ts +1 -1
  100. package/src/functions/itemPool.ts +153 -0
  101. package/src/functions/kColor.ts +65 -84
  102. package/src/functions/mergeTests.ts +2 -2
  103. package/src/functions/npcs.ts +1 -58
  104. package/src/functions/projectiles.ts +78 -0
  105. package/src/functions/rng.ts +45 -65
  106. package/src/functions/rockAlt.ts +339 -60
  107. package/src/functions/saveFile.ts +13 -119
  108. package/src/functions/serialization.ts +81 -25
  109. package/src/functions/table.ts +2 -2
  110. package/src/functions/trinketGive.ts +21 -0
  111. package/src/functions/tstlClass.ts +1 -1
  112. package/src/functions/vector.ts +55 -74
  113. package/src/index.ts +2 -0
  114. package/src/initCustomCallbacks.ts +2 -0
  115. package/src/interfaces/AddCallbackParameterCustom.ts +4 -0
  116. package/src/objects/callbackRegisterFunctions.ts +6 -0
  117. package/src/objects/isaacAPIClassTypeToFunctions.ts +63 -0
  118. package/src/types/{private/IsaacAPIClass.ts → IsaacAPIClass.ts} +0 -0
  119. package/src/types/{private/SerializedIsaacAPIClass.ts → SerializedIsaacAPIClass.ts} +0 -0
  120. package/src/types/{private/TSTLClass.ts → TSTLClass.ts} +0 -0
  121. package/dist/objects/isaacAPIClassTypeToCopyFunction.d.ts +0 -6
  122. package/dist/objects/isaacAPIClassTypeToCopyFunction.d.ts.map +0 -1
  123. package/dist/objects/isaacAPIClassTypeToCopyFunction.lua +0 -13
  124. package/dist/objects/serializedIsaacAPIClassTypeToIdentityFunction.d.ts +0 -5
  125. package/dist/objects/serializedIsaacAPIClassTypeToIdentityFunction.d.ts.map +0 -1
  126. package/dist/objects/serializedIsaacAPIClassTypeToIdentityFunction.lua +0 -13
  127. package/dist/types/private/IsaacAPIClass.d.ts.map +0 -1
  128. package/dist/types/private/SerializedIsaacAPIClass.d.ts.map +0 -1
  129. package/dist/types/private/TSTLClass.d.ts.map +0 -1
  130. package/src/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
  131. 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.
@@ -101,10 +101,14 @@ export declare function getCollectibleMaxCharges(collectibleType: CollectibleTyp
101
101
  * ```
102
102
  */
103
103
  export declare function getCollectibleName(collectibleType: CollectibleType): string;
104
+ /**
105
+ * Helper function to get the "pedestal type" of a collectible. For example, it might be sitting on
106
+ * top of a broken Blood Donation Machine, or it might be sitting on top of an opened Spiked Chest.
107
+ */
104
108
  export declare function getCollectiblePedestalType(collectible: EntityPickup): CollectiblePedestalType;
105
109
  /**
106
- * Helper function to get the path to a collectible's quality. Returns 0 if the provided collectible
107
- * type was not valid.
110
+ * Helper function to get a collectible's quality. For example, Mom's Knife has a quality of 4.
111
+ * Returns 0 if the provided collectible type was not valid.
108
112
  */
109
113
  export declare function getCollectibleQuality(collectibleType: CollectibleType): int;
110
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"collectibles.d.ts","sourceRoot":"","sources":["../../src/functions/collectibles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collectibles.d.ts","sourceRoot":"","sources":["../../src/functions/collectibles.ts"],"names":[],"mappings":"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"}
@@ -294,6 +294,8 @@ function ____exports.getCollectibleName(self, collectibleType)
294
294
  end
295
295
  return DEFAULT_COLLECTIBLE_NAME
296
296
  end
297
+ --- Helper function to get the "pedestal type" of a collectible. For example, it might be sitting on
298
+ -- top of a broken Blood Donation Machine, or it might be sitting on top of an opened Spiked Chest.
297
299
  function ____exports.getCollectiblePedestalType(self, collectible)
298
300
  if not isCollectible(nil, collectible) then
299
301
  local entityID = getEntityID(nil, collectible)
@@ -302,8 +304,8 @@ function ____exports.getCollectiblePedestalType(self, collectible)
302
304
  local sprite = collectible:GetSprite()
303
305
  return sprite:GetOverlayFrame()
304
306
  end
305
- --- Helper function to get the path to a collectible's quality. Returns 0 if the provided collectible
306
- -- type was not valid.
307
+ --- Helper function to get a collectible's quality. For example, Mom's Knife has a quality of 4.
308
+ -- Returns 0 if the provided collectible type was not valid.
307
309
  function ____exports.getCollectibleQuality(self, collectibleType)
308
310
  local itemConfigItem = itemConfig:GetCollectible(collectibleType)
309
311
  if itemConfigItem == nil then
@@ -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"}