isaacscript-common 14.1.3 → 14.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/dist/index.d.ts +919 -141
  2. package/dist/isaacscript-common.lua +4752 -1790
  3. package/dist/src/callbacks.d.ts +102 -20
  4. package/dist/src/callbacks.d.ts.map +1 -1
  5. package/dist/src/callbacks.lua +124 -1
  6. package/dist/src/classes/ModFeature.d.ts.map +1 -1
  7. package/dist/src/classes/ModFeature.lua +22 -1
  8. package/dist/src/classes/ModUpgraded.d.ts +10 -5
  9. package/dist/src/classes/ModUpgraded.d.ts.map +1 -1
  10. package/dist/src/classes/ModUpgraded.lua +30 -11
  11. package/dist/src/classes/callbacks/PostCustomRevive.d.ts +5 -2
  12. package/dist/src/classes/callbacks/PostCustomRevive.d.ts.map +1 -1
  13. package/dist/src/classes/callbacks/PostCustomRevive.lua +12 -4
  14. package/dist/src/classes/callbacks/PostGridEntityBroken.lua +1 -1
  15. package/dist/src/classes/callbacks/PostGridEntityCollision.lua +1 -1
  16. package/dist/src/classes/callbacks/PostGridEntityCustomBroken.lua +1 -1
  17. package/dist/src/classes/callbacks/PostGridEntityCustomCollision.lua +1 -1
  18. package/dist/src/classes/callbacks/PostGridEntityCustomInit.lua +1 -1
  19. package/dist/src/classes/callbacks/PostGridEntityCustomRemove.lua +1 -1
  20. package/dist/src/classes/callbacks/PostGridEntityCustomRender.d.ts +6 -0
  21. package/dist/src/classes/callbacks/PostGridEntityCustomRender.d.ts.map +1 -0
  22. package/dist/src/classes/callbacks/PostGridEntityCustomRender.lua +17 -0
  23. package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.lua +1 -1
  24. package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.lua +1 -1
  25. package/dist/src/classes/callbacks/PostGridEntityInit.lua +1 -1
  26. package/dist/src/classes/callbacks/PostGridEntityRemove.lua +1 -1
  27. package/dist/src/classes/callbacks/PostGridEntityRender.d.ts +6 -0
  28. package/dist/src/classes/callbacks/PostGridEntityRender.d.ts.map +1 -0
  29. package/dist/src/classes/callbacks/PostGridEntityRender.lua +17 -0
  30. package/dist/src/classes/callbacks/PostGridEntityStateChanged.lua +1 -1
  31. package/dist/src/classes/callbacks/PostGridEntityUpdate.lua +1 -1
  32. package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts +1 -1
  33. package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts.map +1 -1
  34. package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +3 -4
  35. package/dist/src/classes/callbacks/PostItemDischarge.d.ts +43 -0
  36. package/dist/src/classes/callbacks/PostItemDischarge.d.ts.map +1 -0
  37. package/dist/src/classes/callbacks/PostItemDischarge.lua +113 -0
  38. package/dist/src/classes/callbacks/PostItemPickup.d.ts +6 -0
  39. package/dist/src/classes/callbacks/PostItemPickup.d.ts.map +1 -0
  40. package/dist/src/classes/callbacks/PostItemPickup.lua +17 -0
  41. package/dist/src/classes/callbacks/PostLaserInitLate.d.ts +12 -0
  42. package/dist/src/classes/callbacks/PostLaserInitLate.d.ts.map +1 -0
  43. package/dist/src/classes/callbacks/PostLaserInitLate.lua +27 -0
  44. package/dist/src/classes/callbacks/PostNPCInitLate.d.ts +12 -0
  45. package/dist/src/classes/callbacks/PostNPCInitLate.d.ts.map +1 -0
  46. package/dist/src/classes/callbacks/PostNPCInitLate.lua +27 -0
  47. package/dist/src/classes/callbacks/PostNPCStateChanged.d.ts +14 -0
  48. package/dist/src/classes/callbacks/PostNPCStateChanged.d.ts.map +1 -0
  49. package/dist/src/classes/callbacks/PostNPCStateChanged.lua +33 -0
  50. package/dist/src/classes/callbacks/PostPickupCollect.d.ts +12 -0
  51. package/dist/src/classes/callbacks/PostPickupCollect.d.ts.map +1 -0
  52. package/dist/src/classes/callbacks/PostPickupCollect.lua +35 -0
  53. package/dist/src/classes/callbacks/PostPickupInitFirst.d.ts +12 -0
  54. package/dist/src/classes/callbacks/PostPickupInitFirst.d.ts.map +1 -0
  55. package/dist/src/classes/callbacks/PostPickupInitFirst.lua +32 -0
  56. package/dist/src/classes/callbacks/PostPickupInitLate.d.ts +12 -0
  57. package/dist/src/classes/callbacks/PostPickupInitLate.d.ts.map +1 -0
  58. package/dist/src/classes/callbacks/PostPickupInitLate.lua +27 -0
  59. package/dist/src/classes/callbacks/PostPickupStateChanged.d.ts +13 -0
  60. package/dist/src/classes/callbacks/PostPickupStateChanged.d.ts.map +1 -0
  61. package/dist/src/classes/callbacks/PostPickupStateChanged.lua +33 -0
  62. package/dist/src/classes/callbacks/PostPitUpdate.d.ts +7 -0
  63. package/dist/src/classes/callbacks/PostPitUpdate.d.ts.map +1 -0
  64. package/dist/src/classes/callbacks/PostPitUpdate.lua +24 -0
  65. package/dist/src/classes/callbacks/PostPlayerChangeHealth.d.ts +15 -0
  66. package/dist/src/classes/callbacks/PostPlayerChangeHealth.d.ts.map +1 -0
  67. package/dist/src/classes/callbacks/PostPlayerChangeHealth.lua +52 -0
  68. package/dist/src/classes/callbacks/PostPlayerChangeStat.d.ts +16 -0
  69. package/dist/src/classes/callbacks/PostPlayerChangeStat.d.ts.map +1 -0
  70. package/dist/src/classes/callbacks/PostPlayerChangeStat.lua +94 -0
  71. package/dist/src/classes/callbacks/PostPlayerChangeType.d.ts +15 -0
  72. package/dist/src/classes/callbacks/PostPlayerChangeType.d.ts.map +1 -0
  73. package/dist/src/classes/callbacks/PostPlayerChangeType.lua +37 -0
  74. package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.d.ts +6 -0
  75. package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.d.ts.map +1 -0
  76. package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.lua +17 -0
  77. package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.d.ts +6 -0
  78. package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.d.ts.map +1 -0
  79. package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.lua +17 -0
  80. package/dist/src/classes/callbacks/PostPlayerInitFirst.d.ts +8 -0
  81. package/dist/src/classes/callbacks/PostPlayerInitFirst.d.ts.map +1 -0
  82. package/dist/src/classes/callbacks/PostPlayerInitFirst.lua +39 -0
  83. package/dist/src/classes/callbacks/PostPlayerInitLate.d.ts +13 -0
  84. package/dist/src/classes/callbacks/PostPlayerInitLate.d.ts.map +1 -0
  85. package/dist/src/classes/callbacks/PostPlayerInitLate.lua +29 -0
  86. package/dist/src/classes/callbacks/PostPoopRender.d.ts +7 -0
  87. package/dist/src/classes/callbacks/PostPoopRender.d.ts.map +1 -0
  88. package/dist/src/classes/callbacks/PostPoopRender.lua +24 -0
  89. package/dist/src/classes/callbacks/PostPoopUpdate.d.ts +7 -0
  90. package/dist/src/classes/callbacks/PostPoopUpdate.d.ts.map +1 -0
  91. package/dist/src/classes/callbacks/PostPoopUpdate.lua +24 -0
  92. package/dist/src/classes/callbacks/PostPressurePlateRender.d.ts +7 -0
  93. package/dist/src/classes/callbacks/PostPressurePlateRender.d.ts.map +1 -0
  94. package/dist/src/classes/callbacks/PostPressurePlateRender.lua +24 -0
  95. package/dist/src/classes/callbacks/PostPressurePlateUpdate.d.ts +7 -0
  96. package/dist/src/classes/callbacks/PostPressurePlateUpdate.d.ts.map +1 -0
  97. package/dist/src/classes/callbacks/PostPressurePlateUpdate.lua +24 -0
  98. package/dist/src/classes/callbacks/PostProjectileInitLate.d.ts +12 -0
  99. package/dist/src/classes/callbacks/PostProjectileInitLate.d.ts.map +1 -0
  100. package/dist/src/classes/callbacks/PostProjectileInitLate.lua +27 -0
  101. package/dist/src/classes/callbacks/PostPurchase.d.ts +18 -0
  102. package/dist/src/classes/callbacks/PostPurchase.d.ts.map +1 -0
  103. package/dist/src/classes/callbacks/PostPurchase.lua +56 -0
  104. package/dist/src/classes/callbacks/PostRockRender.d.ts +7 -0
  105. package/dist/src/classes/callbacks/PostRockRender.d.ts.map +1 -0
  106. package/dist/src/classes/callbacks/PostRockRender.lua +24 -0
  107. package/dist/src/classes/callbacks/PostRockUpdate.d.ts +7 -0
  108. package/dist/src/classes/callbacks/PostRockUpdate.d.ts.map +1 -0
  109. package/dist/src/classes/callbacks/PostRockUpdate.lua +24 -0
  110. package/dist/src/classes/callbacks/PostSacrifice.d.ts +15 -0
  111. package/dist/src/classes/callbacks/PostSacrifice.d.ts.map +1 -0
  112. package/dist/src/classes/callbacks/PostSacrifice.lua +52 -0
  113. package/dist/src/classes/callbacks/PostSlotAnimationChanged.d.ts +6 -0
  114. package/dist/src/classes/callbacks/PostSlotAnimationChanged.d.ts.map +1 -0
  115. package/dist/src/classes/callbacks/PostSlotAnimationChanged.lua +17 -0
  116. package/dist/src/classes/callbacks/PostSlotCollision.d.ts +7 -0
  117. package/dist/src/classes/callbacks/PostSlotCollision.d.ts.map +1 -0
  118. package/dist/src/classes/callbacks/PostSlotCollision.lua +25 -0
  119. package/dist/src/classes/callbacks/PostSlotDestroyed.d.ts +14 -0
  120. package/dist/src/classes/callbacks/PostSlotDestroyed.d.ts.map +1 -0
  121. package/dist/src/classes/callbacks/PostSlotDestroyed.lua +65 -0
  122. package/dist/src/classes/callbacks/PostSlotInit.d.ts +6 -0
  123. package/dist/src/classes/callbacks/PostSlotInit.d.ts.map +1 -0
  124. package/dist/src/classes/callbacks/PostSlotInit.lua +17 -0
  125. package/dist/src/classes/callbacks/PostSlotRender.d.ts +6 -0
  126. package/dist/src/classes/callbacks/PostSlotRender.d.ts.map +1 -0
  127. package/dist/src/classes/callbacks/PostSlotRender.lua +17 -0
  128. package/dist/src/classes/callbacks/PostSlotUpdate.d.ts +6 -0
  129. package/dist/src/classes/callbacks/PostSlotUpdate.d.ts.map +1 -0
  130. package/dist/src/classes/callbacks/PostSlotUpdate.lua +17 -0
  131. package/dist/src/classes/callbacks/PostSpikesUpdate.d.ts +7 -0
  132. package/dist/src/classes/callbacks/PostSpikesUpdate.d.ts.map +1 -0
  133. package/dist/src/classes/callbacks/PostSpikesUpdate.lua +24 -0
  134. package/dist/src/classes/callbacks/PostTNTRender.d.ts +7 -0
  135. package/dist/src/classes/callbacks/PostTNTRender.d.ts.map +1 -0
  136. package/dist/src/classes/callbacks/PostTNTRender.lua +24 -0
  137. package/dist/src/classes/callbacks/PostTNTUpdate.d.ts +7 -0
  138. package/dist/src/classes/callbacks/PostTNTUpdate.d.ts.map +1 -0
  139. package/dist/src/classes/callbacks/PostTNTUpdate.lua +24 -0
  140. package/dist/src/classes/callbacks/PostTearInitLate.d.ts +12 -0
  141. package/dist/src/classes/callbacks/PostTearInitLate.d.ts.map +1 -0
  142. package/dist/src/classes/callbacks/PostTearInitLate.lua +27 -0
  143. package/dist/src/classes/callbacks/PostTearInitVeryLate.d.ts +12 -0
  144. package/dist/src/classes/callbacks/PostTearInitVeryLate.d.ts.map +1 -0
  145. package/dist/src/classes/callbacks/PostTearInitVeryLate.lua +30 -0
  146. package/dist/src/classes/callbacks/PostTransformation.d.ts +18 -0
  147. package/dist/src/classes/callbacks/PostTransformation.d.ts.map +1 -0
  148. package/dist/src/classes/callbacks/PostTransformation.lua +53 -0
  149. package/dist/src/classes/callbacks/PreBerserkDeath.d.ts +1 -1
  150. package/dist/src/classes/callbacks/PreBerserkDeath.d.ts.map +1 -1
  151. package/dist/src/classes/callbacks/PreBerserkDeath.lua +3 -4
  152. package/dist/src/classes/callbacks/PreItemPickup.d.ts +6 -0
  153. package/dist/src/classes/callbacks/PreItemPickup.d.ts.map +1 -0
  154. package/dist/src/classes/callbacks/PreItemPickup.lua +17 -0
  155. package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.d.ts +10 -0
  156. package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.d.ts.map +1 -0
  157. package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.lua +19 -0
  158. package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.d.ts +11 -0
  159. package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.d.ts.map +1 -0
  160. package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.lua +22 -0
  161. package/dist/src/classes/callbacks/validation/CustomCallbackLaser.d.ts +10 -0
  162. package/dist/src/classes/callbacks/validation/CustomCallbackLaser.d.ts.map +1 -0
  163. package/dist/src/classes/callbacks/validation/CustomCallbackLaser.lua +19 -0
  164. package/dist/src/classes/callbacks/validation/{CustomCallbackRevive.d.ts → CustomCallbackNPC.d.ts} +4 -4
  165. package/dist/src/classes/callbacks/validation/CustomCallbackNPC.d.ts.map +1 -0
  166. package/dist/src/classes/callbacks/validation/CustomCallbackNPC.lua +22 -0
  167. package/dist/src/classes/callbacks/validation/CustomCallbackPickup.d.ts +12 -0
  168. package/dist/src/classes/callbacks/validation/CustomCallbackPickup.d.ts.map +1 -0
  169. package/dist/src/classes/callbacks/validation/CustomCallbackPickup.lua +22 -0
  170. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts +5 -2
  171. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts.map +1 -1
  172. package/dist/src/classes/callbacks/validation/CustomCallbackPoop.d.ts +10 -0
  173. package/dist/src/classes/callbacks/validation/CustomCallbackPoop.d.ts.map +1 -0
  174. package/dist/src/classes/callbacks/validation/CustomCallbackPoop.lua +20 -0
  175. package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.d.ts +10 -0
  176. package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.d.ts.map +1 -0
  177. package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.lua +20 -0
  178. package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.d.ts +10 -0
  179. package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.d.ts.map +1 -0
  180. package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.lua +19 -0
  181. package/dist/src/classes/callbacks/validation/CustomCallbackRock.d.ts +10 -0
  182. package/dist/src/classes/callbacks/validation/CustomCallbackRock.d.ts.map +1 -0
  183. package/dist/src/classes/callbacks/validation/CustomCallbackRock.lua +20 -0
  184. package/dist/src/classes/callbacks/validation/CustomCallbackSlot.d.ts +12 -0
  185. package/dist/src/classes/callbacks/validation/CustomCallbackSlot.d.ts.map +1 -0
  186. package/dist/src/classes/callbacks/validation/CustomCallbackSlot.lua +19 -0
  187. package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.lua +4 -4
  188. package/dist/src/classes/callbacks/validation/CustomCallbackTNT.d.ts +10 -0
  189. package/dist/src/classes/callbacks/validation/CustomCallbackTNT.d.ts.map +1 -0
  190. package/dist/src/classes/callbacks/validation/CustomCallbackTNT.lua +20 -0
  191. package/dist/src/classes/callbacks/validation/CustomCallbackTear.d.ts +10 -0
  192. package/dist/src/classes/callbacks/validation/CustomCallbackTear.d.ts.map +1 -0
  193. package/dist/src/classes/callbacks/validation/CustomCallbackTear.lua +19 -0
  194. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts +1 -1
  195. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
  196. package/dist/src/classes/features/callbackLogic/CustomGridEntities.lua +27 -30
  197. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts +2 -2
  198. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
  199. package/dist/src/classes/features/callbackLogic/CustomRevive.lua +6 -6
  200. package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
  201. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
  202. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.lua +3 -18
  203. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts.map +1 -1
  204. package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.d.ts +12 -0
  205. package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.d.ts.map +1 -0
  206. package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.lua +33 -0
  207. package/dist/src/classes/features/callbackLogic/{GridEntityDetection.d.ts → GridEntityUpdateDetection.d.ts} +3 -3
  208. package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.d.ts.map +1 -0
  209. package/dist/src/classes/features/callbackLogic/{GridEntityDetection.lua → GridEntityUpdateDetection.lua} +11 -14
  210. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts +20 -0
  211. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts.map +1 -0
  212. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.lua +60 -0
  213. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts +47 -0
  214. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts.map +1 -0
  215. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.lua +154 -0
  216. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts +18 -0
  217. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts.map +1 -0
  218. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.lua +51 -0
  219. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts +17 -0
  220. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts.map +1 -0
  221. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.lua +45 -0
  222. package/dist/src/classes/features/other/RunInNFrames.d.ts.map +1 -1
  223. package/dist/src/classes/features/other/RunInNFrames.lua +9 -0
  224. package/dist/src/classes/features/other/SaveDataManager.d.ts +215 -0
  225. package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -0
  226. package/dist/src/classes/features/other/SaveDataManager.lua +190 -0
  227. package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.d.ts +6 -0
  228. package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.d.ts.map +1 -0
  229. package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.lua +98 -0
  230. package/dist/src/classes/features/other/saveDataManager/loadFromDisk.d.ts +6 -0
  231. package/dist/src/classes/features/other/saveDataManager/loadFromDisk.d.ts.map +1 -0
  232. package/dist/src/classes/features/other/saveDataManager/loadFromDisk.lua +81 -0
  233. package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts +7 -0
  234. package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -0
  235. package/dist/src/classes/features/other/saveDataManager/restoreDefaults.lua +69 -0
  236. package/dist/src/classes/features/other/saveDataManager/saveToDisk.d.ts +5 -0
  237. package/dist/src/classes/features/other/saveDataManager/saveToDisk.d.ts.map +1 -0
  238. package/dist/src/classes/features/other/saveDataManager/saveToDisk.lua +46 -0
  239. package/dist/src/classes/private/CustomCallback.d.ts +2 -3
  240. package/dist/src/classes/private/CustomCallback.d.ts.map +1 -1
  241. package/dist/src/classes/private/CustomCallback.lua +2 -5
  242. package/dist/src/classes/private/Feature.d.ts +1 -0
  243. package/dist/src/classes/private/Feature.d.ts.map +1 -1
  244. package/dist/src/classes/private/Feature.lua +1 -0
  245. package/dist/src/core/upgradeMod.d.ts.map +1 -1
  246. package/dist/src/decorators.d.ts +1 -1
  247. package/dist/src/decorators.d.ts.map +1 -1
  248. package/dist/src/decorators.lua +6 -8
  249. package/dist/src/enums/ISCFeature.d.ts +15 -9
  250. package/dist/src/enums/ISCFeature.d.ts.map +1 -1
  251. package/dist/src/enums/ISCFeature.lua +30 -9
  252. package/dist/src/enums/ModCallbackCustom.d.ts +34 -20
  253. package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
  254. package/dist/src/enums/ModCallbackCustom2.d.ts +61 -20
  255. package/dist/src/enums/ModCallbackCustom2.d.ts.map +1 -1
  256. package/dist/src/enums/ModCallbackCustom2.lua +102 -20
  257. package/dist/src/enums/{private/SerializationBrand.d.ts → SerializationBrand.d.ts} +6 -1
  258. package/dist/src/enums/SerializationBrand.d.ts.map +1 -0
  259. package/dist/src/enums/{private/SerializationBrand.lua → SerializationBrand.lua} +1 -0
  260. package/dist/src/features/customItemPool.d.ts +52 -0
  261. package/dist/src/features/customItemPool.d.ts.map +1 -0
  262. package/dist/src/features/customItemPool.lua +111 -0
  263. package/dist/src/features/deployJSONRoom.d.ts +6 -4
  264. package/dist/src/features/deployJSONRoom.d.ts.map +1 -1
  265. package/dist/src/features/deployJSONRoom.lua +6 -4
  266. package/dist/src/features/fadeInRemover.d.ts.map +1 -1
  267. package/dist/src/features/fadeInRemover.lua +4 -16
  268. package/dist/src/features/saveDataManager/exports.d.ts +14 -4
  269. package/dist/src/features/saveDataManager/exports.d.ts.map +1 -1
  270. package/dist/src/features/saveDataManager/exports.lua +38 -0
  271. package/dist/src/features/saveDataManager/load.d.ts +2 -1
  272. package/dist/src/features/saveDataManager/load.d.ts.map +1 -1
  273. package/dist/src/features/saveDataManager/load.lua +10 -4
  274. package/dist/src/features/saveDataManager/main.d.ts.map +1 -1
  275. package/dist/src/features/saveDataManager/main.lua +12 -5
  276. package/dist/src/features/saveDataManager/maps.d.ts +14 -0
  277. package/dist/src/features/saveDataManager/maps.d.ts.map +1 -1
  278. package/dist/src/features/saveDataManager/maps.lua +7 -0
  279. package/dist/src/features.d.ts +31 -12
  280. package/dist/src/features.d.ts.map +1 -1
  281. package/dist/src/features.lua +24 -6
  282. package/dist/src/functions/array.d.ts.map +1 -1
  283. package/dist/src/functions/array.lua +4 -5
  284. package/dist/src/functions/bitSet128.d.ts +2 -2
  285. package/dist/src/functions/bitSet128.lua +3 -3
  286. package/dist/src/functions/color.d.ts +2 -2
  287. package/dist/src/functions/color.lua +3 -3
  288. package/dist/src/functions/decorators.d.ts +21 -0
  289. package/dist/src/functions/decorators.d.ts.map +1 -1
  290. package/dist/src/functions/deepCopy.d.ts +11 -4
  291. package/dist/src/functions/deepCopy.d.ts.map +1 -1
  292. package/dist/src/functions/deepCopy.lua +84 -32
  293. package/dist/src/functions/deepCopyTests.lua +1 -1
  294. package/dist/src/functions/initArray.d.ts +4 -4
  295. package/dist/src/functions/initArray.d.ts.map +1 -1
  296. package/dist/src/functions/initArray.lua +6 -12
  297. package/dist/src/functions/jsonRoom.d.ts +11 -0
  298. package/dist/src/functions/jsonRoom.d.ts.map +1 -1
  299. package/dist/src/functions/jsonRoom.lua +11 -0
  300. package/dist/src/functions/kColor.d.ts +2 -2
  301. package/dist/src/functions/kColor.lua +3 -3
  302. package/dist/src/functions/merge.d.ts +40 -0
  303. package/dist/src/functions/merge.d.ts.map +1 -0
  304. package/dist/src/{features/saveDataManager → functions}/merge.lua +84 -37
  305. package/dist/src/functions/mergeTests.d.ts +1 -2
  306. package/dist/src/functions/mergeTests.d.ts.map +1 -1
  307. package/dist/src/functions/mergeTests.lua +3 -4
  308. package/dist/src/functions/rng.d.ts +2 -2
  309. package/dist/src/functions/rng.lua +3 -3
  310. package/dist/src/functions/serialization.d.ts.map +1 -1
  311. package/dist/src/functions/serialization.lua +22 -0
  312. package/dist/src/functions/tstlClass.d.ts +0 -10
  313. package/dist/src/functions/tstlClass.d.ts.map +1 -1
  314. package/dist/src/functions/tstlClass.lua +2 -42
  315. package/dist/src/functions/vector.d.ts +2 -2
  316. package/dist/src/functions/vector.lua +3 -3
  317. package/dist/src/functions/weighted.d.ts +12 -1
  318. package/dist/src/functions/weighted.d.ts.map +1 -1
  319. package/dist/src/functions/weighted.lua +27 -10
  320. package/dist/src/index.d.ts +5 -0
  321. package/dist/src/index.d.ts.map +1 -1
  322. package/dist/src/index.lua +24 -0
  323. package/dist/src/interfaces/SaveData.d.ts +3 -7
  324. package/dist/src/interfaces/SaveData.d.ts.map +1 -1
  325. package/dist/src/interfaces/SaveData.lua +0 -11
  326. package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts +195 -2
  327. package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts.map +1 -1
  328. package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts +1 -1
  329. package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts.map +1 -1
  330. package/dist/src/objects/isaacAPIClassTypeToBrand.lua +1 -1
  331. package/dist/src/types/AnyClass.d.ts +2 -0
  332. package/dist/src/types/AnyClass.d.ts.map +1 -0
  333. package/dist/src/types/AnyClass.lua +2 -0
  334. package/dist/src/types/AnyFunction.d.ts +6 -0
  335. package/dist/src/types/AnyFunction.d.ts.map +1 -0
  336. package/dist/src/types/AnyFunction.lua +2 -0
  337. package/dist/src/types/FunctionTuple.d.ts +2 -4
  338. package/dist/src/types/FunctionTuple.d.ts.map +1 -1
  339. package/dist/src/types/HasFunction.d.ts +5 -0
  340. package/dist/src/types/HasFunction.d.ts.map +1 -0
  341. package/dist/src/types/HasFunction.lua +2 -0
  342. package/package.json +1 -1
  343. package/src/callbacks.ts +88 -5
  344. package/src/classes/ModFeature.ts +31 -1
  345. package/src/classes/ModUpgraded.ts +49 -21
  346. package/src/classes/callbacks/PostCustomRevive.ts +22 -2
  347. package/src/classes/callbacks/PostGridEntityBroken.ts +1 -1
  348. package/src/classes/callbacks/PostGridEntityCollision.ts +1 -1
  349. package/src/classes/callbacks/PostGridEntityCustomBroken.ts +1 -1
  350. package/src/classes/callbacks/PostGridEntityCustomCollision.ts +1 -1
  351. package/src/classes/callbacks/PostGridEntityCustomInit.ts +1 -1
  352. package/src/classes/callbacks/PostGridEntityCustomRemove.ts +1 -1
  353. package/src/classes/callbacks/PostGridEntityCustomRender.ts +11 -0
  354. package/src/classes/callbacks/PostGridEntityCustomStateChanged.ts +1 -1
  355. package/src/classes/callbacks/PostGridEntityCustomUpdate.ts +1 -1
  356. package/src/classes/callbacks/PostGridEntityInit.ts +1 -1
  357. package/src/classes/callbacks/PostGridEntityRemove.ts +1 -1
  358. package/src/classes/callbacks/PostGridEntityRender.ts +11 -0
  359. package/src/classes/callbacks/PostGridEntityStateChanged.ts +1 -1
  360. package/src/classes/callbacks/PostGridEntityUpdate.ts +1 -1
  361. package/src/classes/callbacks/PostHolyMantleRemoved.ts +5 -8
  362. package/src/classes/callbacks/PostItemDischarge.ts +181 -0
  363. package/src/classes/callbacks/PostItemPickup.ts +11 -0
  364. package/src/classes/callbacks/PostLaserInitLate.ts +28 -0
  365. package/src/classes/callbacks/PostNPCInitLate.ts +28 -0
  366. package/src/classes/callbacks/PostNPCStateChanged.ts +37 -0
  367. package/src/classes/callbacks/PostPickupCollect.ts +37 -0
  368. package/src/classes/callbacks/PostPickupInitFirst.ts +34 -0
  369. package/src/classes/callbacks/PostPickupInitLate.ts +28 -0
  370. package/src/classes/callbacks/PostPickupStateChanged.ts +35 -0
  371. package/src/classes/callbacks/PostPitUpdate.ts +21 -0
  372. package/src/classes/callbacks/PostPlayerChangeHealth.ts +57 -0
  373. package/src/classes/callbacks/PostPlayerChangeStat.ts +102 -0
  374. package/src/classes/callbacks/PostPlayerChangeType.ts +44 -0
  375. package/src/classes/callbacks/PostPlayerCollectibleAdded.ts +11 -0
  376. package/src/classes/callbacks/PostPlayerCollectibleRemoved.ts +11 -0
  377. package/src/classes/callbacks/PostPlayerInitFirst.ts +44 -0
  378. package/src/classes/callbacks/PostPlayerInitLate.ts +32 -0
  379. package/src/classes/callbacks/PostPoopRender.ts +21 -0
  380. package/src/classes/callbacks/PostPoopUpdate.ts +21 -0
  381. package/src/classes/callbacks/PostPressurePlateRender.ts +21 -0
  382. package/src/classes/callbacks/PostPressurePlateUpdate.ts +21 -0
  383. package/src/classes/callbacks/PostProjectileInitLate.ts +28 -0
  384. package/src/classes/callbacks/PostPurchase.ts +87 -0
  385. package/src/classes/callbacks/PostRockRender.ts +21 -0
  386. package/src/classes/callbacks/PostRockUpdate.ts +21 -0
  387. package/src/classes/callbacks/PostSacrifice.ts +89 -0
  388. package/src/classes/callbacks/PostSlotAnimationChanged.ts +11 -0
  389. package/src/classes/callbacks/PostSlotCollision.ts +26 -0
  390. package/src/classes/callbacks/PostSlotDestroyed.ts +79 -0
  391. package/src/classes/callbacks/PostSlotInit.ts +11 -0
  392. package/src/classes/callbacks/PostSlotRender.ts +11 -0
  393. package/src/classes/callbacks/PostSlotUpdate.ts +11 -0
  394. package/src/classes/callbacks/PostSpikesUpdate.ts +21 -0
  395. package/src/classes/callbacks/PostTNTRender.ts +21 -0
  396. package/src/classes/callbacks/PostTNTUpdate.ts +21 -0
  397. package/src/classes/callbacks/PostTearInitLate.ts +28 -0
  398. package/src/classes/callbacks/PostTearInitVeryLate.ts +33 -0
  399. package/src/classes/callbacks/PostTransformation.ts +71 -0
  400. package/src/classes/callbacks/PreBerserkDeath.ts +5 -8
  401. package/src/classes/callbacks/PreItemPickup.ts +11 -0
  402. package/src/classes/callbacks/validation/CustomCallbackCollectibleType.ts +32 -0
  403. package/src/classes/callbacks/validation/CustomCallbackItemPickup.ts +48 -0
  404. package/src/classes/callbacks/validation/CustomCallbackLaser.ts +27 -0
  405. package/src/classes/callbacks/validation/CustomCallbackNPC.ts +34 -0
  406. package/src/classes/callbacks/validation/CustomCallbackPickup.ts +41 -0
  407. package/src/classes/callbacks/validation/CustomCallbackPlayer.ts +25 -2
  408. package/src/classes/callbacks/validation/CustomCallbackPoop.ts +28 -0
  409. package/src/classes/callbacks/validation/CustomCallbackPressurePlate.ts +31 -0
  410. package/src/classes/callbacks/validation/CustomCallbackProjectile.ts +28 -0
  411. package/src/classes/callbacks/validation/CustomCallbackRock.ts +30 -0
  412. package/src/classes/callbacks/validation/CustomCallbackSlot.ts +37 -0
  413. package/src/classes/callbacks/validation/CustomCallbackSpikes.ts +4 -4
  414. package/src/classes/callbacks/validation/CustomCallbackTNT.ts +28 -0
  415. package/src/classes/callbacks/validation/CustomCallbackTear.ts +27 -0
  416. package/src/classes/features/callbackLogic/CustomGridEntities.ts +32 -36
  417. package/src/classes/features/callbackLogic/CustomRevive.ts +14 -21
  418. package/src/classes/features/callbackLogic/EsauJrDetection.ts +0 -4
  419. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +7 -9
  420. package/src/classes/features/callbackLogic/GridEntityCollisionDetection.ts +0 -4
  421. package/src/classes/features/callbackLogic/GridEntityRenderDetection.ts +42 -0
  422. package/src/classes/features/callbackLogic/{GridEntityDetection.ts → GridEntityUpdateDetection.ts} +4 -20
  423. package/src/classes/features/callbackLogic/ItemPickupDetection.ts +91 -0
  424. package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +245 -0
  425. package/src/classes/features/callbackLogic/SlotRenderDetection.ts +64 -0
  426. package/src/classes/features/callbackLogic/SlotUpdateDetection.ts +57 -0
  427. package/src/classes/features/other/RunInNFrames.ts +7 -0
  428. package/src/classes/features/other/SaveDataManager.ts +492 -0
  429. package/src/classes/features/other/saveDataManager/glowingHourGlass.ts +138 -0
  430. package/src/classes/features/other/saveDataManager/loadFromDisk.ts +99 -0
  431. package/src/classes/features/other/saveDataManager/restoreDefaults.ts +116 -0
  432. package/src/classes/features/other/saveDataManager/saveToDisk.ts +70 -0
  433. package/src/classes/private/CustomCallback.ts +2 -6
  434. package/src/classes/private/Feature.ts +1 -0
  435. package/src/core/upgradeMod.ts +2 -4
  436. package/src/decorators.ts +17 -19
  437. package/src/enums/ISCFeature.ts +44 -39
  438. package/src/enums/ModCallbackCustom.ts +34 -20
  439. package/src/enums/ModCallbackCustom2.ts +53 -5
  440. package/src/enums/{private/SerializationBrand.ts → SerializationBrand.ts} +8 -2
  441. package/src/features/customItemPool.ts +133 -0
  442. package/src/features/deployJSONRoom.ts +6 -4
  443. package/src/features/fadeInRemover.ts +4 -22
  444. package/src/features/saveDataManager/exports.ts +62 -3
  445. package/src/features/saveDataManager/load.ts +4 -1
  446. package/src/features/saveDataManager/main.ts +5 -3
  447. package/src/features/saveDataManager/maps.ts +16 -0
  448. package/src/features.ts +39 -4
  449. package/src/functions/array.ts +8 -9
  450. package/src/functions/bitSet128.ts +3 -3
  451. package/src/functions/color.ts +3 -3
  452. package/src/functions/decorators.ts +22 -0
  453. package/src/functions/deepCopy.ts +83 -17
  454. package/src/functions/deepCopyTests.ts +1 -1
  455. package/src/functions/initArray.ts +6 -11
  456. package/src/functions/jsonRoom.ts +11 -0
  457. package/src/functions/kColor.ts +3 -3
  458. package/src/{features/saveDataManager → functions}/merge.ts +79 -45
  459. package/src/functions/mergeTests.ts +2 -3
  460. package/src/functions/rng.ts +3 -3
  461. package/src/functions/serialization.ts +25 -1
  462. package/src/functions/table.ts +1 -1
  463. package/src/functions/tstlClass.ts +3 -57
  464. package/src/functions/vector.ts +3 -3
  465. package/src/functions/weighted.ts +28 -11
  466. package/src/index.ts +5 -0
  467. package/src/interfaces/SaveData.ts +3 -34
  468. package/src/interfaces/private/AddCallbackParametersCustom2.ts +298 -7
  469. package/src/objects/isaacAPIClassTypeToBrand.ts +1 -1
  470. package/src/types/AnyClass.ts +1 -0
  471. package/src/types/AnyFunction.ts +5 -0
  472. package/src/types/FunctionTuple.ts +3 -4
  473. package/src/types/HasFunction.ts +7 -0
  474. package/dist/src/classes/callbacks/validation/CustomCallbackRevive.d.ts.map +0 -1
  475. package/dist/src/classes/callbacks/validation/CustomCallbackRevive.lua +0 -19
  476. package/dist/src/classes/features/callbackLogic/GridEntityDetection.d.ts.map +0 -1
  477. package/dist/src/enums/private/SerializationBrand.d.ts.map +0 -1
  478. package/dist/src/features/saveDataManager/merge.d.ts +0 -26
  479. package/dist/src/features/saveDataManager/merge.d.ts.map +0 -1
  480. package/dist/src/features/saveDataManager/serializationBrands.d.ts +0 -2
  481. package/dist/src/features/saveDataManager/serializationBrands.d.ts.map +0 -1
  482. package/dist/src/features/saveDataManager/serializationBrands.lua +0 -19
  483. package/dist/src/indexLua.d.ts +0 -199
  484. package/dist/src/indexLua.d.ts.map +0 -1
  485. package/dist/src/indexLua.lua +0 -1354
  486. package/src/classes/callbacks/validation/CustomCallbackRevive.ts +0 -27
  487. package/src/features/saveDataManager/serializationBrands.ts +0 -16
@@ -18,6 +18,8 @@ local ____deepCopy = require("src.functions.deepCopy")
18
18
  local deepCopy = ____deepCopy.deepCopy
19
19
  local ____logMisc = require("src.functions.logMisc")
20
20
  local logError = ____logMisc.logError
21
+ local ____merge = require("src.functions.merge")
22
+ local merge = ____merge.merge
21
23
  local ____stage = require("src.functions.stage")
22
24
  local onFirstFloor = ____stage.onFirstFloor
23
25
  local ____table = require("src.functions.table")
@@ -34,9 +36,8 @@ local ____maps = require("src.features.saveDataManager.maps")
34
36
  local saveDataConditionalFuncMap = ____maps.saveDataConditionalFuncMap
35
37
  local saveDataDefaultsMap = ____maps.saveDataDefaultsMap
36
38
  local saveDataGlowingHourGlassMap = ____maps.saveDataGlowingHourGlassMap
39
+ local saveDataManagerClassConstructors = ____maps.saveDataManagerClassConstructors
37
40
  local saveDataMap = ____maps.saveDataMap
38
- local ____merge = require("src.features.saveDataManager.merge")
39
- local merge = ____merge.merge
40
41
  local ____save = require("src.features.saveDataManager.save")
41
42
  local saveToDisk = ____save.saveToDisk
42
43
  function postUseItemGlowingHourGlass(self)
@@ -52,7 +53,7 @@ function postPlayerInit(self)
52
53
  end
53
54
  loadedDataOnThisRun = true
54
55
  restoreGlowingHourGlassDataOnNextRoom = false
55
- loadFromDisk(nil, mod, saveDataMap)
56
+ loadFromDisk(nil, mod, saveDataMap, saveDataManagerClassConstructors)
56
57
  local gameFrameCount = game:GetFrameCount()
57
58
  local isContinued = gameFrameCount ~= 0
58
59
  if not isContinued then
@@ -151,7 +152,13 @@ function restoreGlowingHourGlassBackup(self)
151
152
  if childTableBackup == nil then
152
153
  goto __continue29
153
154
  end
154
- merge(nil, childTable, childTableBackup, subscriberName .. "__glowingHourGlass")
155
+ merge(
156
+ nil,
157
+ childTable,
158
+ childTableBackup,
159
+ subscriberName .. "__glowingHourGlass",
160
+ saveDataManagerClassConstructors
161
+ )
155
162
  end
156
163
  ::__continue29::
157
164
  end
@@ -220,6 +227,6 @@ function ____exports.forceSaveDataManagerLoad(self)
220
227
  if mod == nil then
221
228
  return
222
229
  end
223
- loadFromDisk(nil, mod, saveDataMap)
230
+ loadFromDisk(nil, mod, saveDataMap, saveDataManagerClassConstructors)
224
231
  end
225
232
  return ____exports
@@ -1,12 +1,21 @@
1
1
  /// <reference types="@typescript-to-lua/language-extensions" />
2
2
  import { SaveData } from "../../interfaces/SaveData";
3
+ import { AnyClass } from "../../types/AnyClass";
3
4
  /**
4
5
  * The save data map is indexed by subscriber name. We use Lua tables instead of TypeScriptToLua
5
6
  * Maps for the master map so that we can access the variables via the in-game console when
6
7
  * debugging. (TSTL Maps don't expose the map keys as normal keys.)
7
8
  */
8
9
  export declare const saveDataMap: LuaMap<string, SaveData<unknown, unknown, unknown>>;
10
+ /**
11
+ * When mod feature data is initialized, we copy the initial values into a separate map so that we
12
+ * can restore them later on.
13
+ */
9
14
  export declare const saveDataDefaultsMap: LuaMap<string, SaveData<unknown, unknown, unknown>>;
15
+ /**
16
+ * Each mod feature can optionally provide a function that can control whether or not the save data
17
+ * is written to disk.
18
+ */
10
19
  export declare const saveDataConditionalFuncMap: LuaMap<string, () => boolean>;
11
20
  /**
12
21
  * We backup some save data keys on every new room for the purposes of restoring it when Glowing
@@ -16,4 +25,9 @@ export declare const saveDataConditionalFuncMap: LuaMap<string, () => boolean>;
16
25
  * to restore it.
17
26
  */
18
27
  export declare const saveDataGlowingHourGlassMap: LuaMap<string, SaveData<unknown, unknown, unknown>>;
28
+ /**
29
+ * End-users can register their classes with the save data manager for proper serialization when
30
+ * contained in nested maps, sets, and arrays.
31
+ */
32
+ export declare const saveDataManagerClassConstructors: LuaMap<string, AnyClass>;
19
33
  //# sourceMappingURL=maps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"maps.d.ts","sourceRoot":"","sources":["../../../../src/features/saveDataManager/maps.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,WAAW,qDAAiC,CAAC;AAE1D,eAAO,MAAM,mBAAmB,qDAAiC,CAAC;AAClE,eAAO,MAAM,0BAA0B,uBAA4B,OAAO,CAAG,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,qDAAiC,CAAC"}
1
+ {"version":3,"file":"maps.d.ts","sourceRoot":"","sources":["../../../../src/features/saveDataManager/maps.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,WAAW,qDAAiC,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,qDAAiC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,0BAA0B,uBAA4B,OAAO,CAAG,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,qDAAiC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,gCAAgC,0BAAiC,CAAC"}
@@ -3,7 +3,11 @@ local ____exports = {}
3
3
  -- Maps for the master map so that we can access the variables via the in-game console when
4
4
  -- debugging. (TSTL Maps don't expose the map keys as normal keys.)
5
5
  ____exports.saveDataMap = {}
6
+ --- When mod feature data is initialized, we copy the initial values into a separate map so that we
7
+ -- can restore them later on.
6
8
  ____exports.saveDataDefaultsMap = {}
9
+ --- Each mod feature can optionally provide a function that can control whether or not the save data
10
+ -- is written to disk.
7
11
  ____exports.saveDataConditionalFuncMap = {}
8
12
  --- We backup some save data keys on every new room for the purposes of restoring it when Glowing
9
13
  -- Hour Glass is used.
@@ -11,4 +15,7 @@ ____exports.saveDataConditionalFuncMap = {}
11
15
  -- Note that the save data is backed up in serialized form so that we can use the `merge` function
12
16
  -- to restore it.
13
17
  ____exports.saveDataGlowingHourGlassMap = {}
18
+ --- End-users can register their classes with the save data manager for proper serialization when
19
+ -- contained in nested maps, sets, and arrays.
20
+ ____exports.saveDataManagerClassConstructors = {}
14
21
  return ____exports
@@ -1,3 +1,4 @@
1
+ /// <reference types="isaac-typescript-definitions" />
1
2
  import { ModCallbackCustomToClass } from "./callbacks";
2
3
  import { CustomGridEntities } from "./classes/features/callbackLogic/CustomGridEntities";
3
4
  import { CustomRevive } from "./classes/features/callbackLogic/CustomRevive";
@@ -5,30 +6,48 @@ import { EsauJrDetection } from "./classes/features/callbackLogic/EsauJrDetectio
5
6
  import { FlipDetection } from "./classes/features/callbackLogic/FlipDetection";
6
7
  import { GameReorderedCallbacks } from "./classes/features/callbackLogic/GameReorderedCallbacks";
7
8
  import { GridEntityCollisionDetection } from "./classes/features/callbackLogic/GridEntityCollisionDetection";
8
- import { GridEntityDetection } from "./classes/features/callbackLogic/GridEntityDetection";
9
+ import { GridEntityRenderDetection } from "./classes/features/callbackLogic/GridEntityRenderDetection";
10
+ import { GridEntityUpdateDetection } from "./classes/features/callbackLogic/GridEntityUpdateDetection";
11
+ import { ItemPickupDetection } from "./classes/features/callbackLogic/ItemPickupDetection";
12
+ import { PlayerCollectibleDetection } from "./classes/features/callbackLogic/PlayerCollectibleDetection";
9
13
  import { PlayerReorderedCallbacks } from "./classes/features/callbackLogic/PlayerReorderedCallbacks";
14
+ import { SlotRenderDetection } from "./classes/features/callbackLogic/SlotRenderDetection";
15
+ import { SlotUpdateDetection } from "./classes/features/callbackLogic/SlotUpdateDetection";
10
16
  import { RunInNFrames } from "./classes/features/other/RunInNFrames";
17
+ import { SaveDataManager } from "./classes/features/other/SaveDataManager";
11
18
  import { ISCFeature } from "./enums/ISCFeature";
12
19
  export interface ISCFeatureToClass {
13
20
  [ISCFeature.CUSTOM_REVIVE]: CustomRevive;
14
21
  [ISCFeature.ESAU_JR_DETECTION]: EsauJrDetection;
15
22
  [ISCFeature.FLIP_DETECTION]: FlipDetection;
16
23
  [ISCFeature.GRID_ENTITY_COLLISION_DETECTION]: GridEntityCollisionDetection;
17
- [ISCFeature.GRID_ENTITY_DETECTION]: GridEntityDetection;
24
+ [ISCFeature.GRID_ENTITY_RENDER_DETECTION]: GridEntityRenderDetection;
25
+ [ISCFeature.GRID_ENTITY_UPDATE_DETECTION]: GridEntityUpdateDetection;
18
26
  [ISCFeature.GAME_REORDERED_CALLBACKS]: GameReorderedCallbacks;
27
+ [ISCFeature.ITEM_PICKUP_DETECTION]: ItemPickupDetection;
28
+ [ISCFeature.PLAYER_COLLECTIBLE_DETECTION]: PlayerCollectibleDetection;
19
29
  [ISCFeature.PLAYER_REORDERED_CALLBACKS]: PlayerReorderedCallbacks;
30
+ [ISCFeature.SLOT_RENDER_DETECTION]: SlotRenderDetection;
31
+ [ISCFeature.SLOT_UPDATE_DETECTION]: SlotUpdateDetection;
20
32
  [ISCFeature.CUSTOM_GRID_ENTITIES]: CustomGridEntities;
21
33
  [ISCFeature.RUN_IN_N_FRAMES]: RunInNFrames;
34
+ [ISCFeature.SAVE_DATA_MANAGER]: SaveDataManager;
22
35
  }
23
- export declare function getFeatures(callbacks: ModCallbackCustomToClass): {
24
- readonly CustomRevive: CustomRevive;
25
- readonly EsauJrDetection: EsauJrDetection;
26
- readonly FlipDetection: FlipDetection;
27
- readonly GridEntityCollisionDetection: GridEntityCollisionDetection;
28
- readonly GridEntityDetection: GridEntityDetection;
29
- readonly GameReorderedCallbacks: GameReorderedCallbacks;
30
- readonly PlayerReorderedCallbacks: PlayerReorderedCallbacks;
31
- readonly CustomGridEntities: CustomGridEntities;
32
- readonly runInNFrames: RunInNFrames;
36
+ export declare function getFeatures(mod: Mod, callbacks: ModCallbackCustomToClass): {
37
+ readonly 0: CustomRevive;
38
+ readonly 1: EsauJrDetection;
39
+ readonly 2: FlipDetection;
40
+ readonly 3: GridEntityCollisionDetection;
41
+ readonly 5: GridEntityUpdateDetection;
42
+ readonly 4: GridEntityRenderDetection;
43
+ readonly 6: GameReorderedCallbacks;
44
+ readonly 7: ItemPickupDetection;
45
+ readonly 8: PlayerCollectibleDetection;
46
+ readonly 9: PlayerReorderedCallbacks;
47
+ readonly 10: SlotRenderDetection;
48
+ readonly 11: SlotUpdateDetection;
49
+ readonly 12: CustomGridEntities;
50
+ readonly 13: RunInNFrames;
51
+ readonly 14: SaveDataManager;
33
52
  };
34
53
  //# sourceMappingURL=features.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACjG,OAAO,EAAE,4BAA4B,EAAE,MAAM,+DAA+D,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,MAAM,WAAW,iBAAiB;IAEhC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IACzC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IAChD,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC3C,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAAE,4BAA4B,CAAC;IAC3E,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IACxD,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,sBAAsB,CAAC;IAC9D,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,wBAAwB,CAAC;IAGlE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IACtD,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC;CAC5C;AAKD,wBAAgB,WAAW,CAAC,SAAS,EAAE,wBAAwB;;;;;;;;;;EAsD9D"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/features.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACjG,OAAO,EAAE,4BAA4B,EAAE,MAAM,+DAA+D,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AACvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AACzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,MAAM,WAAW,iBAAiB;IAEhC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IACzC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IAChD,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC3C,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAAE,4BAA4B,CAAC;IAC3E,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE,yBAAyB,CAAC;IACrE,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE,yBAAyB,CAAC;IACrE,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,sBAAsB,CAAC;IAC9D,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IACxD,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE,0BAA0B,CAAC;IACtE,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,wBAAwB,CAAC;IAClE,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IACxD,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IAGxD,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IACtD,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC;IAC3C,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC;CACjD;AAKD,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,wBAAwB;;;;;;;;;;;;;;;;EA6ExE"}
@@ -13,12 +13,24 @@ local ____GameReorderedCallbacks = require("src.classes.features.callbackLogic.G
13
13
  local GameReorderedCallbacks = ____GameReorderedCallbacks.GameReorderedCallbacks
14
14
  local ____GridEntityCollisionDetection = require("src.classes.features.callbackLogic.GridEntityCollisionDetection")
15
15
  local GridEntityCollisionDetection = ____GridEntityCollisionDetection.GridEntityCollisionDetection
16
- local ____GridEntityDetection = require("src.classes.features.callbackLogic.GridEntityDetection")
17
- local GridEntityDetection = ____GridEntityDetection.GridEntityDetection
16
+ local ____GridEntityRenderDetection = require("src.classes.features.callbackLogic.GridEntityRenderDetection")
17
+ local GridEntityRenderDetection = ____GridEntityRenderDetection.GridEntityRenderDetection
18
+ local ____GridEntityUpdateDetection = require("src.classes.features.callbackLogic.GridEntityUpdateDetection")
19
+ local GridEntityUpdateDetection = ____GridEntityUpdateDetection.GridEntityUpdateDetection
20
+ local ____ItemPickupDetection = require("src.classes.features.callbackLogic.ItemPickupDetection")
21
+ local ItemPickupDetection = ____ItemPickupDetection.ItemPickupDetection
22
+ local ____PlayerCollectibleDetection = require("src.classes.features.callbackLogic.PlayerCollectibleDetection")
23
+ local PlayerCollectibleDetection = ____PlayerCollectibleDetection.PlayerCollectibleDetection
18
24
  local ____PlayerReorderedCallbacks = require("src.classes.features.callbackLogic.PlayerReorderedCallbacks")
19
25
  local PlayerReorderedCallbacks = ____PlayerReorderedCallbacks.PlayerReorderedCallbacks
26
+ local ____SlotRenderDetection = require("src.classes.features.callbackLogic.SlotRenderDetection")
27
+ local SlotRenderDetection = ____SlotRenderDetection.SlotRenderDetection
28
+ local ____SlotUpdateDetection = require("src.classes.features.callbackLogic.SlotUpdateDetection")
29
+ local SlotUpdateDetection = ____SlotUpdateDetection.SlotUpdateDetection
20
30
  local ____RunInNFrames = require("src.classes.features.other.RunInNFrames")
21
31
  local RunInNFrames = ____RunInNFrames.RunInNFrames
32
+ local ____SaveDataManager = require("src.classes.features.other.SaveDataManager")
33
+ local SaveDataManager = ____SaveDataManager.SaveDataManager
22
34
  local ____ISCFeature = require("src.enums.ISCFeature")
23
35
  local ISCFeature = ____ISCFeature.ISCFeature
24
36
  local ____ModCallbackCustom2 = require("src.enums.ModCallbackCustom2")
@@ -27,7 +39,7 @@ local ____utils = require("src.functions.utils")
27
39
  local newObjectWithEnumKeys = ____utils.newObjectWithEnumKeys
28
40
  local validateInterfaceMatchesEnum = ____utils.validateInterfaceMatchesEnum
29
41
  validateInterfaceMatchesEnum(nil)
30
- function ____exports.getFeatures(self, callbacks)
42
+ function ____exports.getFeatures(self, mod, callbacks)
31
43
  local runInNFrames = __TS__New(RunInNFrames)
32
44
  local customGridEntities = __TS__New(CustomGridEntities, runInNFrames)
33
45
  return newObjectWithEnumKeys(
@@ -38,8 +50,8 @@ function ____exports.getFeatures(self, callbacks)
38
50
  [ISCFeature.ESAU_JR_DETECTION] = __TS__New(EsauJrDetection, callbacks[ModCallbackCustom2.POST_ESAU_JR], callbacks[ModCallbackCustom2.POST_FIRST_ESAU_JR]),
39
51
  [ISCFeature.FLIP_DETECTION] = __TS__New(FlipDetection, callbacks[ModCallbackCustom2.POST_FLIP], callbacks[ModCallbackCustom2.POST_FIRST_FLIP]),
40
52
  [ISCFeature.GRID_ENTITY_COLLISION_DETECTION] = __TS__New(GridEntityCollisionDetection, callbacks[ModCallbackCustom2.POST_GRID_ENTITY_COLLISION], callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_COLLISION], customGridEntities),
41
- [ISCFeature.GRID_ENTITY_DETECTION] = __TS__New(
42
- GridEntityDetection,
53
+ [ISCFeature.GRID_ENTITY_UPDATE_DETECTION] = __TS__New(
54
+ GridEntityUpdateDetection,
43
55
  callbacks[ModCallbackCustom2.POST_GRID_ENTITY_INIT],
44
56
  callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_INIT],
45
57
  callbacks[ModCallbackCustom2.POST_GRID_ENTITY_UPDATE],
@@ -52,6 +64,7 @@ function ____exports.getFeatures(self, callbacks)
52
64
  callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_BROKEN],
53
65
  customGridEntities
54
66
  ),
67
+ [ISCFeature.GRID_ENTITY_RENDER_DETECTION] = __TS__New(GridEntityRenderDetection, callbacks[ModCallbackCustom2.POST_GRID_ENTITY_RENDER], callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_RENDER], customGridEntities),
55
68
  [ISCFeature.GAME_REORDERED_CALLBACKS] = __TS__New(
56
69
  GameReorderedCallbacks,
57
70
  callbacks[ModCallbackCustom2.POST_GAME_STARTED_REORDERED],
@@ -59,9 +72,14 @@ function ____exports.getFeatures(self, callbacks)
59
72
  callbacks[ModCallbackCustom2.POST_NEW_ROOM_REORDERED],
60
73
  callbacks[ModCallbackCustom2.POST_GAME_STARTED_REORDERED_LAST]
61
74
  ),
75
+ [ISCFeature.ITEM_PICKUP_DETECTION] = __TS__New(ItemPickupDetection, callbacks[ModCallbackCustom2.POST_ITEM_PICKUP], callbacks[ModCallbackCustom2.PRE_ITEM_PICKUP]),
76
+ [ISCFeature.PLAYER_COLLECTIBLE_DETECTION] = __TS__New(PlayerCollectibleDetection, callbacks[ModCallbackCustom2.POST_PLAYER_COLLECTIBLE_ADDED], callbacks[ModCallbackCustom2.POST_PLAYER_COLLECTIBLE_REMOVED], runInNFrames),
62
77
  [ISCFeature.PLAYER_REORDERED_CALLBACKS] = __TS__New(PlayerReorderedCallbacks, callbacks[ModCallbackCustom2.POST_PEFFECT_UPDATE_REORDERED], callbacks[ModCallbackCustom2.POST_PLAYER_RENDER_REORDERED], callbacks[ModCallbackCustom2.POST_PEFFECT_UPDATE_REORDERED]),
78
+ [ISCFeature.SLOT_RENDER_DETECTION] = __TS__New(SlotRenderDetection, callbacks[ModCallbackCustom2.POST_SLOT_RENDER], callbacks[ModCallbackCustom2.POST_SLOT_ANIMATION_CHANGED]),
79
+ [ISCFeature.SLOT_UPDATE_DETECTION] = __TS__New(SlotUpdateDetection, callbacks[ModCallbackCustom2.POST_SLOT_INIT], callbacks[ModCallbackCustom2.POST_SLOT_UPDATE]),
63
80
  [ISCFeature.CUSTOM_GRID_ENTITIES] = customGridEntities,
64
- [ISCFeature.RUN_IN_N_FRAMES] = runInNFrames
81
+ [ISCFeature.RUN_IN_N_FRAMES] = runInNFrames,
82
+ [ISCFeature.SAVE_DATA_MANAGER] = __TS__New(SaveDataManager, mod)
65
83
  }
66
84
  )
67
85
  end
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/functions/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/functions/array.ts"],"names":[],"mappings":";;;AAKA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GACzB,OAAO,CAST;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,CAAC,EAAE,CAIL;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,CAAC,EAAE,CAIL;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,OAAO,CAcT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,OAAO,CAWT;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,eAAe,EAAE,GAAG,EAAE,GACxB,CAAC,EAAE,CAWL;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,eAAe,EAAE,GAAG,EAAE,GACxB,OAAO,CAeT;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAQlE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAS1E;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,QAAQ,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAC5B,WAAW,CAAC,EAAE,GAAG,GAChB,CAAC,EAAE,CAcL;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAE9C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACzB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,CAAC,EAAE,GAAG,EACT,GAAG,CAAC,EAAE,GAAG,GACR,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CA0C7B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,GAAG,EAAE,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACzB,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,UAAU,GAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAO,GAClC,CAAC,CAiBH;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,EAC9C,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,UAAU,GAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAO,GAClC,CAAC,CAQH;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACzB,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,UAAU,GAAE,GAAG,EAAE,GAAG,SAAS,GAAG,EAAO,GACtC,GAAG,CAQL;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAiC5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAavD;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,CAAC,EAC9B,YAAY,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAChC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,GACrC,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,SAAS,GAAE,IAAI,GAAG,GAAqB,GACtC,CAAC,EAAE,CAKL;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,GAAE,IAAI,GAAG,GAAqB,GACtC,IAAI,CAWN;AAED,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAM3E"}
@@ -411,6 +411,9 @@ function ____exports.isArray(self, object)
411
411
  return false
412
412
  end
413
413
  local keys = __TS__ObjectKeys(object)
414
+ if #keys == 0 then
415
+ return true
416
+ end
414
417
  local hasAllNumberKeys = __TS__ArrayEvery(
415
418
  keys,
416
419
  function(____, key) return isNumber(nil, key) end
@@ -418,13 +421,9 @@ function ____exports.isArray(self, object)
418
421
  if not hasAllNumberKeys then
419
422
  return false
420
423
  end
421
- local tableLength = #__TS__ObjectKeys(object)
422
- if tableLength == 0 then
423
- return true
424
- end
425
424
  do
426
425
  local i = 1
427
- while i <= tableLength do
426
+ while i <= #keys do
428
427
  local element = object[i]
429
428
  if element == nil then
430
429
  return false
@@ -14,8 +14,8 @@ export declare function deserializeBitSet128(bitSet128: SerializedBitSet128): Bi
14
14
  /** Helper function to check if something is an instantiated `BitSet128` object. */
15
15
  export declare function isBitSet128(object: unknown): object is BitSet128;
16
16
  /**
17
- * Used to determine is the given table is a serialized `BitSet128` object created by the save data
18
- * manager and/or the `deepCopy` function.
17
+ * Used to determine is the given table is a serialized `BitSet128` object created by the `deepCopy`
18
+ * function.
19
19
  */
20
20
  export declare function isSerializedBitSet128(object: unknown): object is SerializedBitSet128;
21
21
  /**
@@ -1,6 +1,6 @@
1
1
  local ____exports = {}
2
2
  local OBJECT_NAME
3
- local ____SerializationBrand = require("src.enums.private.SerializationBrand")
3
+ local ____SerializationBrand = require("src.enums.SerializationBrand")
4
4
  local SerializationBrand = ____SerializationBrand.SerializationBrand
5
5
  local ____isaacAPIClass = require("src.functions.isaacAPIClass")
6
6
  local isIsaacAPIClassOfType = ____isaacAPIClass.isIsaacAPIClassOfType
@@ -45,8 +45,8 @@ function ____exports.deserializeBitSet128(self, bitSet128)
45
45
  end
46
46
  return BitSet128(l, h)
47
47
  end
48
- --- Used to determine is the given table is a serialized `BitSet128` object created by the save data
49
- -- manager and/or the `deepCopy` function.
48
+ --- Used to determine is the given table is a serialized `BitSet128` object created by the `deepCopy`
49
+ -- function.
50
50
  function ____exports.isSerializedBitSet128(self, object)
51
51
  if not isTable(nil, object) then
52
52
  return false
@@ -23,8 +23,8 @@ export declare function getRandomColor(seedOrRNG?: Seed | RNG, alpha?: number):
23
23
  /** Helper function to check if something is an instantiated `Color` object. */
24
24
  export declare function isColor(object: unknown): object is Color;
25
25
  /**
26
- * Used to determine is the given table is a serialized `Color` object created by the save data
27
- * manager and/or the `deepCopy` function.
26
+ * Used to determine is the given table is a serialized `Color` object created by the `deepCopy`
27
+ * function.
28
28
  */
29
29
  export declare function isSerializedColor(object: unknown): object is SerializedColor;
30
30
  /**
@@ -1,6 +1,6 @@
1
1
  local ____exports = {}
2
2
  local OBJECT_NAME
3
- local ____SerializationBrand = require("src.enums.private.SerializationBrand")
3
+ local ____SerializationBrand = require("src.enums.SerializationBrand")
4
4
  local SerializationBrand = ____SerializationBrand.SerializationBrand
5
5
  local ____isaacAPIClass = require("src.functions.isaacAPIClass")
6
6
  local isaacAPIClassEquals = ____isaacAPIClass.isaacAPIClassEquals
@@ -98,8 +98,8 @@ function ____exports.getRandomColor(self, seedOrRNG, alpha)
98
98
  local b = getRandom(nil, rng)
99
99
  return Color(r, g, b, alpha)
100
100
  end
101
- --- Used to determine is the given table is a serialized `Color` object created by the save data
102
- -- manager and/or the `deepCopy` function.
101
+ --- Used to determine is the given table is a serialized `Color` object created by the `deepCopy`
102
+ -- function.
103
103
  function ____exports.isSerializedColor(self, object)
104
104
  if not isTable(nil, object) then
105
105
  return false
@@ -1,3 +1,24 @@
1
+ /**
2
+ * If you decide to structure your mod as a set of feature classes, you can use decorators to
3
+ * automatically register callbacks.
4
+ *
5
+ * Currently, there are two decorators:
6
+ * - @Callback
7
+ * - @CallbackCustom
8
+ *
9
+ * For example:
10
+ *
11
+ * ```ts
12
+ * export class MyFeature extends ModFeature {
13
+ * @Callback(ModCallback.POST_GAME_STARTED)
14
+ * postGameStarted(isContinued: boolean): void {
15
+ * Isaac.DebugString(`Callback fired: POST_GAME_STARTED`);
16
+ * }
17
+ * }
18
+ * ```
19
+ *
20
+ * @module
21
+ */
1
22
  import { ModCallback } from "isaac-typescript-definitions";
2
23
  import { ModFeature } from "../classes/ModFeature";
3
24
  import { ModCallbackCustom } from "../enums/ModCallbackCustom";
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/functions/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAGL,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAC5C,WAAW,EAAE,CAAC,EACd,GAAG,YAAY,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,kGAIvC,MAAM,+CAElB,IAAI,CAwBR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,iBAAiB,EACxD,iBAAiB,EAAE,CAAC,EACpB,GAAG,YAAY,EAAE,WAAW,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,wGAO7C,MAAM,+CAElB,IAAI,CA0BR"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/functions/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAGL,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAC5C,WAAW,EAAE,CAAC,EACd,GAAG,YAAY,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,kGAIvC,MAAM,+CAElB,IAAI,CAwBR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,iBAAiB,EACxD,iBAAiB,EAAE,CAAC,EACpB,GAAG,YAAY,EAAE,WAAW,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,wGAO7C,MAAM,+CAElB,IAAI,CA0BR"}
@@ -1,4 +1,6 @@
1
+ /// <reference types="@typescript-to-lua/language-extensions" />
1
2
  import { SerializationType } from "../enums/SerializationType";
3
+ import { AnyClass } from "../types/AnyClass";
2
4
  /**
3
5
  * `deepCopy` is a semi-generic deep cloner. It will recursively copy all of the values so that none
4
6
  * of the nested references remain.
@@ -28,11 +30,16 @@ import { SerializationType } from "../enums/SerializationType";
28
30
  * @param serializationType Optional. Has 3 possible values. Can copy objects as-is, or can
29
31
  * serialize objects to Lua tables, or can deserialize Lua tables to
30
32
  * objects. Default is `SerializationType.NONE`.
31
- * @param traversalDescription Optional. Used to track the current key that we are operating on.
32
- * Default is an empty string.
33
+ * @param traversalDescription Optional. Used to track the current key that we are operating on for
34
+ * debugging purposes. Default is an empty string.
35
+ * @param classConstructors Optional. A Lua table that maps the name of a user-defined TSTL class to
36
+ * its corresponding constructor. If the `deepCopy` function finds any
37
+ * user-defined TSTL classes when recursively iterating through the given
38
+ * object, it will use this map to instantiate a new class. Default is an
39
+ * empty Lua table.
33
40
  * @param insideMap Optional. Tracks whether or not the deep copy function is in the process of
34
41
  * recursively copying a TSTL Map. Default is false.
35
42
  */
36
- export declare function deepCopy<T>(value: T, serializationType?: SerializationType.NONE, traversalDescription?: string, insideMap?: boolean): T;
37
- export declare function deepCopy(value: unknown, serializationType: SerializationType, traversalDescription?: string, insideMap?: boolean): unknown;
43
+ export declare function deepCopy<T>(value: T, serializationType?: SerializationType.NONE, traversalDescription?: string, classConstructors?: LuaMap<string, AnyClass>, insideMap?: boolean): T;
44
+ export declare function deepCopy(value: unknown, serializationType: SerializationType, traversalDescription?: string, classConstructors?: LuaMap<string, AnyClass>, insideMap?: boolean): unknown;
38
45
  //# sourceMappingURL=deepCopy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepCopy.d.ts","sourceRoot":"","sources":["../../../src/functions/deepCopy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAyB/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,KAAK,EAAE,CAAC,EACR,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAC1C,oBAAoB,CAAC,EAAE,MAAM,EAC7B,SAAS,CAAC,EAAE,OAAO,GAClB,CAAC,CAAC;AACL,wBAAgB,QAAQ,CACtB,KAAK,EAAE,OAAO,EACd,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,CAAC,EAAE,MAAM,EAC7B,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC"}
1
+ {"version":3,"file":"deepCopy.d.ts","sourceRoot":"","sources":["../../../src/functions/deepCopy.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAuB7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAExB,KAAK,EAAE,CAAC,EACR,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAC1C,oBAAoB,CAAC,EAAE,MAAM,EAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC5C,SAAS,CAAC,EAAE,OAAO,GAClB,CAAC,CAAC;AACL,wBAAgB,QAAQ,CAEtB,KAAK,EAAE,OAAO,EACd,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,CAAC,EAAE,MAAM,EAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC5C,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC"}