isaacscript-common 14.1.2 → 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 (494) hide show
  1. package/dist/index.d.ts +954 -158
  2. package/dist/isaacscript-common.lua +4099 -1066
  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 +16 -4
  7. package/dist/src/classes/ModFeature.d.ts.map +1 -1
  8. package/dist/src/classes/ModFeature.lua +67 -4
  9. package/dist/src/classes/ModUpgraded.d.ts +10 -10
  10. package/dist/src/classes/ModUpgraded.d.ts.map +1 -1
  11. package/dist/src/classes/ModUpgraded.lua +35 -16
  12. package/dist/src/classes/callbacks/PostCustomRevive.d.ts +5 -2
  13. package/dist/src/classes/callbacks/PostCustomRevive.d.ts.map +1 -1
  14. package/dist/src/classes/callbacks/PostCustomRevive.lua +12 -4
  15. package/dist/src/classes/callbacks/PostGridEntityBroken.lua +1 -1
  16. package/dist/src/classes/callbacks/PostGridEntityCollision.lua +1 -1
  17. package/dist/src/classes/callbacks/PostGridEntityCustomBroken.lua +1 -1
  18. package/dist/src/classes/callbacks/PostGridEntityCustomCollision.lua +1 -1
  19. package/dist/src/classes/callbacks/PostGridEntityCustomInit.lua +1 -1
  20. package/dist/src/classes/callbacks/PostGridEntityCustomRemove.lua +1 -1
  21. package/dist/src/classes/callbacks/PostGridEntityCustomRender.d.ts +6 -0
  22. package/dist/src/classes/callbacks/PostGridEntityCustomRender.d.ts.map +1 -0
  23. package/dist/src/classes/callbacks/PostGridEntityCustomRender.lua +17 -0
  24. package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.lua +1 -1
  25. package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.lua +1 -1
  26. package/dist/src/classes/callbacks/PostGridEntityInit.lua +1 -1
  27. package/dist/src/classes/callbacks/PostGridEntityRemove.lua +1 -1
  28. package/dist/src/classes/callbacks/PostGridEntityRender.d.ts +6 -0
  29. package/dist/src/classes/callbacks/PostGridEntityRender.d.ts.map +1 -0
  30. package/dist/src/classes/callbacks/PostGridEntityRender.lua +17 -0
  31. package/dist/src/classes/callbacks/PostGridEntityStateChanged.lua +1 -1
  32. package/dist/src/classes/callbacks/PostGridEntityUpdate.lua +1 -1
  33. package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts +1 -1
  34. package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts.map +1 -1
  35. package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +3 -4
  36. package/dist/src/classes/callbacks/PostItemDischarge.d.ts +43 -0
  37. package/dist/src/classes/callbacks/PostItemDischarge.d.ts.map +1 -0
  38. package/dist/src/classes/callbacks/PostItemDischarge.lua +113 -0
  39. package/dist/src/classes/callbacks/PostItemPickup.d.ts +6 -0
  40. package/dist/src/classes/callbacks/PostItemPickup.d.ts.map +1 -0
  41. package/dist/src/classes/callbacks/PostItemPickup.lua +17 -0
  42. package/dist/src/classes/callbacks/PostLaserInitLate.d.ts +12 -0
  43. package/dist/src/classes/callbacks/PostLaserInitLate.d.ts.map +1 -0
  44. package/dist/src/classes/callbacks/PostLaserInitLate.lua +27 -0
  45. package/dist/src/classes/callbacks/PostNPCInitLate.d.ts +12 -0
  46. package/dist/src/classes/callbacks/PostNPCInitLate.d.ts.map +1 -0
  47. package/dist/src/classes/callbacks/PostNPCInitLate.lua +27 -0
  48. package/dist/src/classes/callbacks/PostNPCStateChanged.d.ts +14 -0
  49. package/dist/src/classes/callbacks/PostNPCStateChanged.d.ts.map +1 -0
  50. package/dist/src/classes/callbacks/PostNPCStateChanged.lua +33 -0
  51. package/dist/src/classes/callbacks/PostPickupCollect.d.ts +12 -0
  52. package/dist/src/classes/callbacks/PostPickupCollect.d.ts.map +1 -0
  53. package/dist/src/classes/callbacks/PostPickupCollect.lua +35 -0
  54. package/dist/src/classes/callbacks/PostPickupInitFirst.d.ts +12 -0
  55. package/dist/src/classes/callbacks/PostPickupInitFirst.d.ts.map +1 -0
  56. package/dist/src/classes/callbacks/PostPickupInitFirst.lua +32 -0
  57. package/dist/src/classes/callbacks/PostPickupInitLate.d.ts +12 -0
  58. package/dist/src/classes/callbacks/PostPickupInitLate.d.ts.map +1 -0
  59. package/dist/src/classes/callbacks/PostPickupInitLate.lua +27 -0
  60. package/dist/src/classes/callbacks/PostPickupStateChanged.d.ts +13 -0
  61. package/dist/src/classes/callbacks/PostPickupStateChanged.d.ts.map +1 -0
  62. package/dist/src/classes/callbacks/PostPickupStateChanged.lua +33 -0
  63. package/dist/src/classes/callbacks/PostPitUpdate.d.ts +7 -0
  64. package/dist/src/classes/callbacks/PostPitUpdate.d.ts.map +1 -0
  65. package/dist/src/classes/callbacks/PostPitUpdate.lua +24 -0
  66. package/dist/src/classes/callbacks/PostPlayerChangeHealth.d.ts +15 -0
  67. package/dist/src/classes/callbacks/PostPlayerChangeHealth.d.ts.map +1 -0
  68. package/dist/src/classes/callbacks/PostPlayerChangeHealth.lua +52 -0
  69. package/dist/src/classes/callbacks/PostPlayerChangeStat.d.ts +16 -0
  70. package/dist/src/classes/callbacks/PostPlayerChangeStat.d.ts.map +1 -0
  71. package/dist/src/classes/callbacks/PostPlayerChangeStat.lua +94 -0
  72. package/dist/src/classes/callbacks/PostPlayerChangeType.d.ts +15 -0
  73. package/dist/src/classes/callbacks/PostPlayerChangeType.d.ts.map +1 -0
  74. package/dist/src/classes/callbacks/PostPlayerChangeType.lua +37 -0
  75. package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.d.ts +6 -0
  76. package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.d.ts.map +1 -0
  77. package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.lua +17 -0
  78. package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.d.ts +6 -0
  79. package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.d.ts.map +1 -0
  80. package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.lua +17 -0
  81. package/dist/src/classes/callbacks/PostPlayerInitFirst.d.ts +8 -0
  82. package/dist/src/classes/callbacks/PostPlayerInitFirst.d.ts.map +1 -0
  83. package/dist/src/classes/callbacks/PostPlayerInitFirst.lua +39 -0
  84. package/dist/src/classes/callbacks/PostPlayerInitLate.d.ts +13 -0
  85. package/dist/src/classes/callbacks/PostPlayerInitLate.d.ts.map +1 -0
  86. package/dist/src/classes/callbacks/PostPlayerInitLate.lua +29 -0
  87. package/dist/src/classes/callbacks/PostPoopRender.d.ts +7 -0
  88. package/dist/src/classes/callbacks/PostPoopRender.d.ts.map +1 -0
  89. package/dist/src/classes/callbacks/PostPoopRender.lua +24 -0
  90. package/dist/src/classes/callbacks/PostPoopUpdate.d.ts +7 -0
  91. package/dist/src/classes/callbacks/PostPoopUpdate.d.ts.map +1 -0
  92. package/dist/src/classes/callbacks/PostPoopUpdate.lua +24 -0
  93. package/dist/src/classes/callbacks/PostPressurePlateRender.d.ts +7 -0
  94. package/dist/src/classes/callbacks/PostPressurePlateRender.d.ts.map +1 -0
  95. package/dist/src/classes/callbacks/PostPressurePlateRender.lua +24 -0
  96. package/dist/src/classes/callbacks/PostPressurePlateUpdate.d.ts +7 -0
  97. package/dist/src/classes/callbacks/PostPressurePlateUpdate.d.ts.map +1 -0
  98. package/dist/src/classes/callbacks/PostPressurePlateUpdate.lua +24 -0
  99. package/dist/src/classes/callbacks/PostProjectileInitLate.d.ts +12 -0
  100. package/dist/src/classes/callbacks/PostProjectileInitLate.d.ts.map +1 -0
  101. package/dist/src/classes/callbacks/PostProjectileInitLate.lua +27 -0
  102. package/dist/src/classes/callbacks/PostPurchase.d.ts +18 -0
  103. package/dist/src/classes/callbacks/PostPurchase.d.ts.map +1 -0
  104. package/dist/src/classes/callbacks/PostPurchase.lua +56 -0
  105. package/dist/src/classes/callbacks/PostRockRender.d.ts +7 -0
  106. package/dist/src/classes/callbacks/PostRockRender.d.ts.map +1 -0
  107. package/dist/src/classes/callbacks/PostRockRender.lua +24 -0
  108. package/dist/src/classes/callbacks/PostRockUpdate.d.ts +7 -0
  109. package/dist/src/classes/callbacks/PostRockUpdate.d.ts.map +1 -0
  110. package/dist/src/classes/callbacks/PostRockUpdate.lua +24 -0
  111. package/dist/src/classes/callbacks/PostSacrifice.d.ts +15 -0
  112. package/dist/src/classes/callbacks/PostSacrifice.d.ts.map +1 -0
  113. package/dist/src/classes/callbacks/PostSacrifice.lua +52 -0
  114. package/dist/src/classes/callbacks/PostSlotAnimationChanged.d.ts +6 -0
  115. package/dist/src/classes/callbacks/PostSlotAnimationChanged.d.ts.map +1 -0
  116. package/dist/src/classes/callbacks/PostSlotAnimationChanged.lua +17 -0
  117. package/dist/src/classes/callbacks/PostSlotCollision.d.ts +7 -0
  118. package/dist/src/classes/callbacks/PostSlotCollision.d.ts.map +1 -0
  119. package/dist/src/classes/callbacks/PostSlotCollision.lua +25 -0
  120. package/dist/src/classes/callbacks/PostSlotDestroyed.d.ts +14 -0
  121. package/dist/src/classes/callbacks/PostSlotDestroyed.d.ts.map +1 -0
  122. package/dist/src/classes/callbacks/PostSlotDestroyed.lua +65 -0
  123. package/dist/src/classes/callbacks/PostSlotInit.d.ts +6 -0
  124. package/dist/src/classes/callbacks/PostSlotInit.d.ts.map +1 -0
  125. package/dist/src/classes/callbacks/PostSlotInit.lua +17 -0
  126. package/dist/src/classes/callbacks/PostSlotRender.d.ts +6 -0
  127. package/dist/src/classes/callbacks/PostSlotRender.d.ts.map +1 -0
  128. package/dist/src/classes/callbacks/PostSlotRender.lua +17 -0
  129. package/dist/src/classes/callbacks/PostSlotUpdate.d.ts +6 -0
  130. package/dist/src/classes/callbacks/PostSlotUpdate.d.ts.map +1 -0
  131. package/dist/src/classes/callbacks/PostSlotUpdate.lua +17 -0
  132. package/dist/src/classes/callbacks/PostSpikesUpdate.d.ts +7 -0
  133. package/dist/src/classes/callbacks/PostSpikesUpdate.d.ts.map +1 -0
  134. package/dist/src/classes/callbacks/PostSpikesUpdate.lua +24 -0
  135. package/dist/src/classes/callbacks/PostTNTRender.d.ts +7 -0
  136. package/dist/src/classes/callbacks/PostTNTRender.d.ts.map +1 -0
  137. package/dist/src/classes/callbacks/PostTNTRender.lua +24 -0
  138. package/dist/src/classes/callbacks/PostTNTUpdate.d.ts +7 -0
  139. package/dist/src/classes/callbacks/PostTNTUpdate.d.ts.map +1 -0
  140. package/dist/src/classes/callbacks/PostTNTUpdate.lua +24 -0
  141. package/dist/src/classes/callbacks/PostTearInitLate.d.ts +12 -0
  142. package/dist/src/classes/callbacks/PostTearInitLate.d.ts.map +1 -0
  143. package/dist/src/classes/callbacks/PostTearInitLate.lua +27 -0
  144. package/dist/src/classes/callbacks/PostTearInitVeryLate.d.ts +12 -0
  145. package/dist/src/classes/callbacks/PostTearInitVeryLate.d.ts.map +1 -0
  146. package/dist/src/classes/callbacks/PostTearInitVeryLate.lua +30 -0
  147. package/dist/src/classes/callbacks/PostTransformation.d.ts +18 -0
  148. package/dist/src/classes/callbacks/PostTransformation.d.ts.map +1 -0
  149. package/dist/src/classes/callbacks/PostTransformation.lua +53 -0
  150. package/dist/src/classes/callbacks/PreBerserkDeath.d.ts +1 -1
  151. package/dist/src/classes/callbacks/PreBerserkDeath.d.ts.map +1 -1
  152. package/dist/src/classes/callbacks/PreBerserkDeath.lua +3 -4
  153. package/dist/src/classes/callbacks/PreItemPickup.d.ts +6 -0
  154. package/dist/src/classes/callbacks/PreItemPickup.d.ts.map +1 -0
  155. package/dist/src/classes/callbacks/PreItemPickup.lua +17 -0
  156. package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.d.ts +10 -0
  157. package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.d.ts.map +1 -0
  158. package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.lua +19 -0
  159. package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.d.ts +11 -0
  160. package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.d.ts.map +1 -0
  161. package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.lua +22 -0
  162. package/dist/src/classes/callbacks/validation/CustomCallbackLaser.d.ts +10 -0
  163. package/dist/src/classes/callbacks/validation/CustomCallbackLaser.d.ts.map +1 -0
  164. package/dist/src/classes/callbacks/validation/CustomCallbackLaser.lua +19 -0
  165. package/dist/src/classes/callbacks/validation/{CustomCallbackRevive.d.ts → CustomCallbackNPC.d.ts} +4 -4
  166. package/dist/src/classes/callbacks/validation/CustomCallbackNPC.d.ts.map +1 -0
  167. package/dist/src/classes/callbacks/validation/CustomCallbackNPC.lua +22 -0
  168. package/dist/src/classes/callbacks/validation/CustomCallbackPickup.d.ts +12 -0
  169. package/dist/src/classes/callbacks/validation/CustomCallbackPickup.d.ts.map +1 -0
  170. package/dist/src/classes/callbacks/validation/CustomCallbackPickup.lua +22 -0
  171. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts +5 -2
  172. package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts.map +1 -1
  173. package/dist/src/classes/callbacks/validation/CustomCallbackPoop.d.ts +10 -0
  174. package/dist/src/classes/callbacks/validation/CustomCallbackPoop.d.ts.map +1 -0
  175. package/dist/src/classes/callbacks/validation/CustomCallbackPoop.lua +20 -0
  176. package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.d.ts +10 -0
  177. package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.d.ts.map +1 -0
  178. package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.lua +20 -0
  179. package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.d.ts +10 -0
  180. package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.d.ts.map +1 -0
  181. package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.lua +19 -0
  182. package/dist/src/classes/callbacks/validation/CustomCallbackRock.d.ts +10 -0
  183. package/dist/src/classes/callbacks/validation/CustomCallbackRock.d.ts.map +1 -0
  184. package/dist/src/classes/callbacks/validation/CustomCallbackRock.lua +20 -0
  185. package/dist/src/classes/callbacks/validation/CustomCallbackSlot.d.ts +12 -0
  186. package/dist/src/classes/callbacks/validation/CustomCallbackSlot.d.ts.map +1 -0
  187. package/dist/src/classes/callbacks/validation/CustomCallbackSlot.lua +19 -0
  188. package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.lua +4 -4
  189. package/dist/src/classes/callbacks/validation/CustomCallbackTNT.d.ts +10 -0
  190. package/dist/src/classes/callbacks/validation/CustomCallbackTNT.d.ts.map +1 -0
  191. package/dist/src/classes/callbacks/validation/CustomCallbackTNT.lua +20 -0
  192. package/dist/src/classes/callbacks/validation/CustomCallbackTear.d.ts +10 -0
  193. package/dist/src/classes/callbacks/validation/CustomCallbackTear.d.ts.map +1 -0
  194. package/dist/src/classes/callbacks/validation/CustomCallbackTear.lua +19 -0
  195. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts +1 -1
  196. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
  197. package/dist/src/classes/features/callbackLogic/CustomGridEntities.lua +27 -30
  198. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts +2 -2
  199. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
  200. package/dist/src/classes/features/callbackLogic/CustomRevive.lua +6 -6
  201. package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
  202. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
  203. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.lua +3 -18
  204. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts.map +1 -1
  205. package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.d.ts +12 -0
  206. package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.d.ts.map +1 -0
  207. package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.lua +33 -0
  208. package/dist/src/classes/features/callbackLogic/{GridEntityDetection.d.ts → GridEntityUpdateDetection.d.ts} +3 -3
  209. package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.d.ts.map +1 -0
  210. package/dist/src/classes/features/callbackLogic/{GridEntityDetection.lua → GridEntityUpdateDetection.lua} +11 -14
  211. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts +20 -0
  212. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts.map +1 -0
  213. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.lua +60 -0
  214. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts +47 -0
  215. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts.map +1 -0
  216. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.lua +154 -0
  217. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts +18 -0
  218. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts.map +1 -0
  219. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.lua +51 -0
  220. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts +17 -0
  221. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts.map +1 -0
  222. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.lua +45 -0
  223. package/dist/src/classes/features/other/RunInNFrames.d.ts.map +1 -1
  224. package/dist/src/classes/features/other/RunInNFrames.lua +9 -0
  225. package/dist/src/classes/features/other/SaveDataManager.d.ts +215 -0
  226. package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -0
  227. package/dist/src/classes/features/other/SaveDataManager.lua +190 -0
  228. package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.d.ts +6 -0
  229. package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.d.ts.map +1 -0
  230. package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.lua +98 -0
  231. package/dist/src/classes/features/other/saveDataManager/loadFromDisk.d.ts +6 -0
  232. package/dist/src/classes/features/other/saveDataManager/loadFromDisk.d.ts.map +1 -0
  233. package/dist/src/classes/features/other/saveDataManager/loadFromDisk.lua +81 -0
  234. package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts +7 -0
  235. package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -0
  236. package/dist/src/classes/features/other/saveDataManager/restoreDefaults.lua +69 -0
  237. package/dist/src/classes/features/other/saveDataManager/saveToDisk.d.ts +5 -0
  238. package/dist/src/classes/features/other/saveDataManager/saveToDisk.d.ts.map +1 -0
  239. package/dist/src/classes/features/other/saveDataManager/saveToDisk.lua +46 -0
  240. package/dist/src/classes/private/CustomCallback.d.ts +2 -3
  241. package/dist/src/classes/private/CustomCallback.d.ts.map +1 -1
  242. package/dist/src/classes/private/CustomCallback.lua +2 -5
  243. package/dist/src/classes/private/Feature.d.ts +1 -0
  244. package/dist/src/classes/private/Feature.d.ts.map +1 -1
  245. package/dist/src/classes/private/Feature.lua +1 -0
  246. package/dist/src/core/upgradeMod.d.ts +2 -5
  247. package/dist/src/core/upgradeMod.d.ts.map +1 -1
  248. package/dist/src/decorators.d.ts +1 -1
  249. package/dist/src/decorators.d.ts.map +1 -1
  250. package/dist/src/decorators.lua +6 -8
  251. package/dist/src/enums/ISCFeature.d.ts +15 -9
  252. package/dist/src/enums/ISCFeature.d.ts.map +1 -1
  253. package/dist/src/enums/ISCFeature.lua +30 -9
  254. package/dist/src/enums/ModCallbackCustom.d.ts +34 -20
  255. package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
  256. package/dist/src/enums/ModCallbackCustom2.d.ts +61 -20
  257. package/dist/src/enums/ModCallbackCustom2.d.ts.map +1 -1
  258. package/dist/src/enums/ModCallbackCustom2.lua +102 -20
  259. package/dist/src/enums/{private/SerializationBrand.d.ts → SerializationBrand.d.ts} +6 -1
  260. package/dist/src/enums/SerializationBrand.d.ts.map +1 -0
  261. package/dist/src/enums/{private/SerializationBrand.lua → SerializationBrand.lua} +1 -0
  262. package/dist/src/features/customItemPool.d.ts +52 -0
  263. package/dist/src/features/customItemPool.d.ts.map +1 -0
  264. package/dist/src/features/customItemPool.lua +111 -0
  265. package/dist/src/features/deployJSONRoom.d.ts +6 -4
  266. package/dist/src/features/deployJSONRoom.d.ts.map +1 -1
  267. package/dist/src/features/deployJSONRoom.lua +6 -4
  268. package/dist/src/features/fadeInRemover.d.ts.map +1 -1
  269. package/dist/src/features/fadeInRemover.lua +4 -16
  270. package/dist/src/features/saveDataManager/exports.d.ts +14 -4
  271. package/dist/src/features/saveDataManager/exports.d.ts.map +1 -1
  272. package/dist/src/features/saveDataManager/exports.lua +38 -0
  273. package/dist/src/features/saveDataManager/load.d.ts +2 -1
  274. package/dist/src/features/saveDataManager/load.d.ts.map +1 -1
  275. package/dist/src/features/saveDataManager/load.lua +10 -4
  276. package/dist/src/features/saveDataManager/main.d.ts.map +1 -1
  277. package/dist/src/features/saveDataManager/main.lua +12 -5
  278. package/dist/src/features/saveDataManager/maps.d.ts +14 -0
  279. package/dist/src/features/saveDataManager/maps.d.ts.map +1 -1
  280. package/dist/src/features/saveDataManager/maps.lua +7 -0
  281. package/dist/src/features.d.ts +31 -12
  282. package/dist/src/features.d.ts.map +1 -1
  283. package/dist/src/features.lua +24 -6
  284. package/dist/src/functions/array.d.ts.map +1 -1
  285. package/dist/src/functions/array.lua +4 -5
  286. package/dist/src/functions/bitSet128.d.ts +2 -2
  287. package/dist/src/functions/bitSet128.lua +3 -3
  288. package/dist/src/functions/color.d.ts +2 -2
  289. package/dist/src/functions/color.lua +3 -3
  290. package/dist/src/functions/decorators.d.ts +28 -6
  291. package/dist/src/functions/decorators.d.ts.map +1 -1
  292. package/dist/src/functions/decorators.lua +24 -5
  293. package/dist/src/functions/deepCopy.d.ts +11 -4
  294. package/dist/src/functions/deepCopy.d.ts.map +1 -1
  295. package/dist/src/functions/deepCopy.lua +84 -32
  296. package/dist/src/functions/deepCopyTests.lua +1 -1
  297. package/dist/src/functions/initArray.d.ts +4 -4
  298. package/dist/src/functions/initArray.d.ts.map +1 -1
  299. package/dist/src/functions/initArray.lua +6 -12
  300. package/dist/src/functions/jsonRoom.d.ts +11 -0
  301. package/dist/src/functions/jsonRoom.d.ts.map +1 -1
  302. package/dist/src/functions/jsonRoom.lua +11 -0
  303. package/dist/src/functions/kColor.d.ts +2 -2
  304. package/dist/src/functions/kColor.lua +3 -3
  305. package/dist/src/functions/logMisc.d.ts +9 -2
  306. package/dist/src/functions/logMisc.d.ts.map +1 -1
  307. package/dist/src/functions/logMisc.lua +32 -2
  308. package/dist/src/functions/merge.d.ts +40 -0
  309. package/dist/src/functions/merge.d.ts.map +1 -0
  310. package/dist/src/{features/saveDataManager → functions}/merge.lua +84 -37
  311. package/dist/src/functions/mergeTests.d.ts +1 -2
  312. package/dist/src/functions/mergeTests.d.ts.map +1 -1
  313. package/dist/src/functions/mergeTests.lua +3 -4
  314. package/dist/src/functions/rng.d.ts +2 -2
  315. package/dist/src/functions/rng.lua +3 -3
  316. package/dist/src/functions/serialization.d.ts.map +1 -1
  317. package/dist/src/functions/serialization.lua +22 -0
  318. package/dist/src/functions/tstlClass.d.ts +0 -10
  319. package/dist/src/functions/tstlClass.d.ts.map +1 -1
  320. package/dist/src/functions/tstlClass.lua +2 -42
  321. package/dist/src/functions/vector.d.ts +2 -2
  322. package/dist/src/functions/vector.lua +3 -3
  323. package/dist/src/functions/weighted.d.ts +12 -1
  324. package/dist/src/functions/weighted.d.ts.map +1 -1
  325. package/dist/src/functions/weighted.lua +27 -10
  326. package/dist/src/index.d.ts +5 -0
  327. package/dist/src/index.d.ts.map +1 -1
  328. package/dist/src/index.lua +24 -0
  329. package/dist/src/interfaces/SaveData.d.ts +3 -7
  330. package/dist/src/interfaces/SaveData.d.ts.map +1 -1
  331. package/dist/src/interfaces/SaveData.lua +0 -11
  332. package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts +195 -2
  333. package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts.map +1 -1
  334. package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts +1 -1
  335. package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts.map +1 -1
  336. package/dist/src/objects/isaacAPIClassTypeToBrand.lua +1 -1
  337. package/dist/src/types/AnyClass.d.ts +2 -0
  338. package/dist/src/types/AnyClass.d.ts.map +1 -0
  339. package/dist/src/types/AnyClass.lua +2 -0
  340. package/dist/src/types/AnyFunction.d.ts +6 -0
  341. package/dist/src/types/AnyFunction.d.ts.map +1 -0
  342. package/dist/src/types/AnyFunction.lua +2 -0
  343. package/dist/src/types/FunctionTuple.d.ts +2 -4
  344. package/dist/src/types/FunctionTuple.d.ts.map +1 -1
  345. package/dist/src/types/HasFunction.d.ts +5 -0
  346. package/dist/src/types/HasFunction.d.ts.map +1 -0
  347. package/dist/src/types/HasFunction.lua +2 -0
  348. package/package.json +1 -1
  349. package/src/callbacks.ts +88 -5
  350. package/src/classes/ModFeature.ts +96 -6
  351. package/src/classes/ModUpgraded.ts +57 -32
  352. package/src/classes/callbacks/PostCustomRevive.ts +22 -2
  353. package/src/classes/callbacks/PostGridEntityBroken.ts +1 -1
  354. package/src/classes/callbacks/PostGridEntityCollision.ts +1 -1
  355. package/src/classes/callbacks/PostGridEntityCustomBroken.ts +1 -1
  356. package/src/classes/callbacks/PostGridEntityCustomCollision.ts +1 -1
  357. package/src/classes/callbacks/PostGridEntityCustomInit.ts +1 -1
  358. package/src/classes/callbacks/PostGridEntityCustomRemove.ts +1 -1
  359. package/src/classes/callbacks/PostGridEntityCustomRender.ts +11 -0
  360. package/src/classes/callbacks/PostGridEntityCustomStateChanged.ts +1 -1
  361. package/src/classes/callbacks/PostGridEntityCustomUpdate.ts +1 -1
  362. package/src/classes/callbacks/PostGridEntityInit.ts +1 -1
  363. package/src/classes/callbacks/PostGridEntityRemove.ts +1 -1
  364. package/src/classes/callbacks/PostGridEntityRender.ts +11 -0
  365. package/src/classes/callbacks/PostGridEntityStateChanged.ts +1 -1
  366. package/src/classes/callbacks/PostGridEntityUpdate.ts +1 -1
  367. package/src/classes/callbacks/PostHolyMantleRemoved.ts +5 -8
  368. package/src/classes/callbacks/PostItemDischarge.ts +181 -0
  369. package/src/classes/callbacks/PostItemPickup.ts +11 -0
  370. package/src/classes/callbacks/PostLaserInitLate.ts +28 -0
  371. package/src/classes/callbacks/PostNPCInitLate.ts +28 -0
  372. package/src/classes/callbacks/PostNPCStateChanged.ts +37 -0
  373. package/src/classes/callbacks/PostPickupCollect.ts +37 -0
  374. package/src/classes/callbacks/PostPickupInitFirst.ts +34 -0
  375. package/src/classes/callbacks/PostPickupInitLate.ts +28 -0
  376. package/src/classes/callbacks/PostPickupStateChanged.ts +35 -0
  377. package/src/classes/callbacks/PostPitUpdate.ts +21 -0
  378. package/src/classes/callbacks/PostPlayerChangeHealth.ts +57 -0
  379. package/src/classes/callbacks/PostPlayerChangeStat.ts +102 -0
  380. package/src/classes/callbacks/PostPlayerChangeType.ts +44 -0
  381. package/src/classes/callbacks/PostPlayerCollectibleAdded.ts +11 -0
  382. package/src/classes/callbacks/PostPlayerCollectibleRemoved.ts +11 -0
  383. package/src/classes/callbacks/PostPlayerInitFirst.ts +44 -0
  384. package/src/classes/callbacks/PostPlayerInitLate.ts +32 -0
  385. package/src/classes/callbacks/PostPoopRender.ts +21 -0
  386. package/src/classes/callbacks/PostPoopUpdate.ts +21 -0
  387. package/src/classes/callbacks/PostPressurePlateRender.ts +21 -0
  388. package/src/classes/callbacks/PostPressurePlateUpdate.ts +21 -0
  389. package/src/classes/callbacks/PostProjectileInitLate.ts +28 -0
  390. package/src/classes/callbacks/PostPurchase.ts +87 -0
  391. package/src/classes/callbacks/PostRockRender.ts +21 -0
  392. package/src/classes/callbacks/PostRockUpdate.ts +21 -0
  393. package/src/classes/callbacks/PostSacrifice.ts +89 -0
  394. package/src/classes/callbacks/PostSlotAnimationChanged.ts +11 -0
  395. package/src/classes/callbacks/PostSlotCollision.ts +26 -0
  396. package/src/classes/callbacks/PostSlotDestroyed.ts +79 -0
  397. package/src/classes/callbacks/PostSlotInit.ts +11 -0
  398. package/src/classes/callbacks/PostSlotRender.ts +11 -0
  399. package/src/classes/callbacks/PostSlotUpdate.ts +11 -0
  400. package/src/classes/callbacks/PostSpikesUpdate.ts +21 -0
  401. package/src/classes/callbacks/PostTNTRender.ts +21 -0
  402. package/src/classes/callbacks/PostTNTUpdate.ts +21 -0
  403. package/src/classes/callbacks/PostTearInitLate.ts +28 -0
  404. package/src/classes/callbacks/PostTearInitVeryLate.ts +33 -0
  405. package/src/classes/callbacks/PostTransformation.ts +71 -0
  406. package/src/classes/callbacks/PreBerserkDeath.ts +5 -8
  407. package/src/classes/callbacks/PreItemPickup.ts +11 -0
  408. package/src/classes/callbacks/validation/CustomCallbackCollectibleType.ts +32 -0
  409. package/src/classes/callbacks/validation/CustomCallbackItemPickup.ts +48 -0
  410. package/src/classes/callbacks/validation/CustomCallbackLaser.ts +27 -0
  411. package/src/classes/callbacks/validation/CustomCallbackNPC.ts +34 -0
  412. package/src/classes/callbacks/validation/CustomCallbackPickup.ts +41 -0
  413. package/src/classes/callbacks/validation/CustomCallbackPlayer.ts +25 -2
  414. package/src/classes/callbacks/validation/CustomCallbackPoop.ts +28 -0
  415. package/src/classes/callbacks/validation/CustomCallbackPressurePlate.ts +31 -0
  416. package/src/classes/callbacks/validation/CustomCallbackProjectile.ts +28 -0
  417. package/src/classes/callbacks/validation/CustomCallbackRock.ts +30 -0
  418. package/src/classes/callbacks/validation/CustomCallbackSlot.ts +37 -0
  419. package/src/classes/callbacks/validation/CustomCallbackSpikes.ts +4 -4
  420. package/src/classes/callbacks/validation/CustomCallbackTNT.ts +28 -0
  421. package/src/classes/callbacks/validation/CustomCallbackTear.ts +27 -0
  422. package/src/classes/features/callbackLogic/CustomGridEntities.ts +32 -36
  423. package/src/classes/features/callbackLogic/CustomRevive.ts +14 -21
  424. package/src/classes/features/callbackLogic/EsauJrDetection.ts +0 -4
  425. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +7 -9
  426. package/src/classes/features/callbackLogic/GridEntityCollisionDetection.ts +0 -4
  427. package/src/classes/features/callbackLogic/GridEntityRenderDetection.ts +42 -0
  428. package/src/classes/features/callbackLogic/{GridEntityDetection.ts → GridEntityUpdateDetection.ts} +4 -20
  429. package/src/classes/features/callbackLogic/ItemPickupDetection.ts +91 -0
  430. package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +245 -0
  431. package/src/classes/features/callbackLogic/SlotRenderDetection.ts +64 -0
  432. package/src/classes/features/callbackLogic/SlotUpdateDetection.ts +57 -0
  433. package/src/classes/features/other/RunInNFrames.ts +7 -0
  434. package/src/classes/features/other/SaveDataManager.ts +492 -0
  435. package/src/classes/features/other/saveDataManager/glowingHourGlass.ts +138 -0
  436. package/src/classes/features/other/saveDataManager/loadFromDisk.ts +99 -0
  437. package/src/classes/features/other/saveDataManager/restoreDefaults.ts +116 -0
  438. package/src/classes/features/other/saveDataManager/saveToDisk.ts +70 -0
  439. package/src/classes/private/CustomCallback.ts +2 -6
  440. package/src/classes/private/Feature.ts +1 -0
  441. package/src/core/upgradeMod.ts +6 -13
  442. package/src/decorators.ts +17 -16
  443. package/src/enums/ISCFeature.ts +44 -39
  444. package/src/enums/ModCallbackCustom.ts +34 -20
  445. package/src/enums/ModCallbackCustom2.ts +53 -5
  446. package/src/enums/{private/SerializationBrand.ts → SerializationBrand.ts} +8 -2
  447. package/src/features/customItemPool.ts +133 -0
  448. package/src/features/deployJSONRoom.ts +6 -4
  449. package/src/features/fadeInRemover.ts +4 -22
  450. package/src/features/saveDataManager/exports.ts +62 -3
  451. package/src/features/saveDataManager/load.ts +4 -1
  452. package/src/features/saveDataManager/main.ts +5 -3
  453. package/src/features/saveDataManager/maps.ts +16 -0
  454. package/src/features.ts +39 -4
  455. package/src/functions/array.ts +8 -9
  456. package/src/functions/bitSet128.ts +3 -3
  457. package/src/functions/color.ts +3 -3
  458. package/src/functions/decorators.ts +83 -12
  459. package/src/functions/deepCopy.ts +83 -17
  460. package/src/functions/deepCopyTests.ts +1 -1
  461. package/src/functions/initArray.ts +6 -11
  462. package/src/functions/jsonRoom.ts +11 -0
  463. package/src/functions/kColor.ts +3 -3
  464. package/src/functions/logMisc.ts +28 -2
  465. package/src/{features/saveDataManager → functions}/merge.ts +79 -45
  466. package/src/functions/mergeTests.ts +2 -3
  467. package/src/functions/rng.ts +3 -3
  468. package/src/functions/serialization.ts +25 -1
  469. package/src/functions/table.ts +1 -1
  470. package/src/functions/tstlClass.ts +3 -57
  471. package/src/functions/vector.ts +3 -3
  472. package/src/functions/weighted.ts +28 -11
  473. package/src/index.ts +5 -0
  474. package/src/interfaces/SaveData.ts +3 -34
  475. package/src/interfaces/private/AddCallbackParametersCustom2.ts +298 -7
  476. package/src/objects/isaacAPIClassTypeToBrand.ts +1 -1
  477. package/src/types/AnyClass.ts +1 -0
  478. package/src/types/AnyFunction.ts +5 -0
  479. package/src/types/FunctionTuple.ts +3 -4
  480. package/src/types/HasFunction.ts +7 -0
  481. package/dist/src/classes/callbacks/validation/CustomCallbackRevive.d.ts.map +0 -1
  482. package/dist/src/classes/callbacks/validation/CustomCallbackRevive.lua +0 -19
  483. package/dist/src/classes/features/callbackLogic/GridEntityDetection.d.ts.map +0 -1
  484. package/dist/src/enums/private/SerializationBrand.d.ts.map +0 -1
  485. package/dist/src/features/saveDataManager/merge.d.ts +0 -26
  486. package/dist/src/features/saveDataManager/merge.d.ts.map +0 -1
  487. package/dist/src/features/saveDataManager/serializationBrands.d.ts +0 -2
  488. package/dist/src/features/saveDataManager/serializationBrands.d.ts.map +0 -1
  489. package/dist/src/features/saveDataManager/serializationBrands.lua +0 -19
  490. package/dist/src/indexLua.d.ts +0 -199
  491. package/dist/src/indexLua.d.ts.map +0 -1
  492. package/dist/src/indexLua.lua +0 -1354
  493. package/src/classes/callbacks/validation/CustomCallbackRevive.ts +0 -27
  494. package/src/features/saveDataManager/serializationBrands.ts +0 -16
@@ -8,7 +8,7 @@ import { CopyableIsaacAPIClass } from "../objects/isaacAPIClassTypeToFunctions";
8
8
  * This is the format of the object that you give to the save data manager. It will contains all of
9
9
  * the variables for the particular mod feature.
10
10
  *
11
- * Depending on which object keys you use, the variables will be automatically reset at certain
11
+ * Depending on which object keys you use, the variables will automatically be reset at certain
12
12
  * times and automatically saved to disk.
13
13
  *
14
14
  * Each sub-object of save data has a string as a key and arbitrary data as a value. However, the
@@ -74,7 +74,7 @@ type Serializable<T> =
74
74
 
75
75
  /**
76
76
  * This is mostly copied from the `Serializable` type. The difference is that we want to disallow
77
- * classes with methods.
77
+ * functions inside of containers.
78
78
  */
79
79
  type SerializableInsideArrayOrMap<T> =
80
80
  // Allow the trivial case of primitives.
@@ -101,16 +101,12 @@ type SerializableInsideArrayOrMap<T> =
101
101
  ? SerializableSet<V>
102
102
  : T extends ReadonlySet<infer V>
103
103
  ? SerializableReadonlySet<V>
104
- : // Disallow objects with functions on them (i.e. classes with methods).
105
- // (This has to be after allowing maps and sets, because those have functions inside of them.)
106
- T extends HasMethods<T>
107
- ? ErrorCustomClassNotSerializable
108
104
  : // Disallow functions.
109
105
  // (We can only disallow functions when inside of containers, because we want to allow classes
110
106
  // with methods attached to normal objects.)
111
107
  T extends Function // eslint-disable-line @typescript-eslint/ban-types
112
108
  ? FunctionIsNotSerializable
113
- : // Finally, allow any other object, as long as the values are themselves serializable.
109
+ : // Allow any other object, as long as the values are themselves serializable.
114
110
  SerializableObject<T>;
115
111
 
116
112
  type SerializablePrimitive = boolean | string | number | undefined | null;
@@ -130,23 +126,12 @@ type SerializableSet<T> = Set<SerializableInsideArrayOrMap<T>>;
130
126
  type SerializableReadonlySet<T> = ReadonlySet<SerializableInsideArrayOrMap<T>>;
131
127
  type SerializableObject<T> = { [K in keyof T]: Serializable<T[K]> };
132
128
 
133
- // eslint-disable-next-line @typescript-eslint/ban-types
134
- type HasMethods<T> = {} extends {
135
- // eslint-disable-next-line @typescript-eslint/ban-types
136
- [K in keyof T as T[K] extends Function ? K : never]-?: 1;
137
- }
138
- ? never
139
- : T;
140
-
141
129
  type FunctionIsNotSerializable =
142
130
  "Error: Functions are not serializable. For more information, see: https://isaacscript.github.io/main/gotchas#functions-are-not-serializable";
143
131
 
144
132
  type ErrorIsaacAPIClassIsNotSerializable =
145
133
  "Error: Isaac API classes (such as e.g. `Entity` or `RoomConfig`) are not serializable. For more information, see: https://isaacscript.github.io/main/gotchas#isaac-api-classes-are-not-serializable";
146
134
 
147
- type ErrorCustomClassNotSerializable =
148
- "Error: Custom classes with one or more methods are not serializable when inside of an array, map, or set. For more information, see: https://isaacscript.github.io/main/gotchas#custom-classes-are-not-serializable";
149
-
150
135
  // -----
151
136
  // Tests
152
137
  // -----
@@ -262,19 +247,3 @@ function test<Persistent, Run, Level>(
262
247
  // Nested custom classes without methods are allowed.
263
248
  test(saveDataWithNestedClass);
264
249
  }
265
-
266
- {
267
- class Foo {
268
- someField = 123;
269
- someMethod() {}
270
- }
271
-
272
- const saveDataWithNestedClass = {
273
- run: {
274
- fooMap: new Map<string, Foo>(),
275
- },
276
- };
277
-
278
- // @ts-expect-error Nested custom classes with methods are not serializable.
279
- test(saveDataWithNestedClass);
280
- }
@@ -1,4 +1,5 @@
1
1
  import {
2
+ ActiveSlot,
2
3
  BombVariant,
3
4
  CollectibleType,
4
5
  DamageFlag,
@@ -8,14 +9,33 @@ import {
8
9
  EntityType,
9
10
  FamiliarVariant,
10
11
  GridEntityType,
12
+ ItemType,
11
13
  KnifeVariant,
14
+ LaserVariant,
15
+ PickupVariant,
12
16
  PitVariant,
17
+ PlayerForm,
13
18
  PlayerType,
14
19
  PlayerVariant,
20
+ PoopGridEntityVariant,
21
+ PressurePlateVariant,
22
+ ProjectileVariant,
23
+ SlotVariant,
24
+ TearVariant,
25
+ TrinketType,
15
26
  } from "isaac-typescript-definitions";
16
27
  import { AmbushType } from "../../enums/AmbushType";
28
+ import { HealthType } from "../../enums/HealthType";
17
29
  import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
30
+ import { SlotDestructionType } from "../../enums/SlotDestructionType";
31
+ import { StatType } from "../../enums/StatType";
18
32
  import { validateInterfaceMatchesEnum } from "../../functions/utils";
33
+ import {
34
+ PickingUpItem,
35
+ PickingUpItemCollectible,
36
+ PickingUpItemTrinket,
37
+ } from "../../types/PickingUpItem";
38
+ import { StatTypeType } from "../StatTypeType";
19
39
 
20
40
  export interface AddCallbackParametersCustom2 {
21
41
  [ModCallbackCustom2.POST_AMBUSH_FINISHED]: [
@@ -192,7 +212,6 @@ export interface AddCallbackParametersCustom2 {
192
212
  gridEntityTypeCustom?: GridEntityType,
193
213
  ];
194
214
 
195
- /*
196
215
  [ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_RENDER]: [
197
216
  callback: (
198
217
  gridEntity: GridEntity,
@@ -200,7 +219,6 @@ export interface AddCallbackParametersCustom2 {
200
219
  ) => void,
201
220
  gridEntityTypeCustom?: GridEntityType,
202
221
  ];
203
- */
204
222
 
205
223
  [ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED]: [
206
224
  callback: (
@@ -236,13 +254,11 @@ export interface AddCallbackParametersCustom2 {
236
254
  variant?: int,
237
255
  ];
238
256
 
239
- /*
240
257
  [ModCallbackCustom2.POST_GRID_ENTITY_RENDER]: [
241
258
  callback: (gridEntity: GridEntity) => void,
242
259
  gridEntityType?: GridEntityType,
243
260
  variant?: int,
244
- ]
245
- */
261
+ ];
246
262
 
247
263
  [ModCallbackCustom2.POST_GRID_ENTITY_STATE_CHANGED]: [
248
264
  callback: (gridEntity: GridEntity, oldState: int, newState: int) => void,
@@ -266,30 +282,149 @@ export interface AddCallbackParametersCustom2 {
266
282
  character?: PlayerType,
267
283
  ];
268
284
 
269
- // -------------------------------------------
285
+ [ModCallbackCustom2.POST_ITEM_DISCHARGE]: [
286
+ callback: (
287
+ player: EntityPlayer,
288
+ collectibleType: CollectibleType,
289
+ activeSlot: ActiveSlot,
290
+ ) => void,
291
+ collectibleType?: CollectibleType,
292
+ ];
270
293
 
271
- [ModCallbackCustom2.POST_NEW_LEVEL_REORDERED]: [callback: () => void];
294
+ [ModCallbackCustom2.POST_ITEM_PICKUP]:
295
+ | [callback: (player: EntityPlayer, pickingUpItem: PickingUpItem) => void]
296
+ | [
297
+ callback: (
298
+ player: EntityPlayer,
299
+ pickingUpItem: PickingUpItemCollectible,
300
+ ) => void,
301
+ itemType: ItemType.PASSIVE | ItemType.ACTIVE | ItemType.FAMILIAR,
302
+ collectibleType?: CollectibleType,
303
+ ]
304
+ | [
305
+ callback: (
306
+ player: EntityPlayer,
307
+ pickingUpItem: PickingUpItemTrinket,
308
+ ) => void,
309
+ itemType: ItemType.TRINKET,
310
+ trinketType?: TrinketType,
311
+ ];
272
312
 
273
313
  [ModCallbackCustom2.POST_KNIFE_INIT_LATE]: [
274
314
  callback: (knife: EntityKnife) => void,
275
315
  knifeVariant?: KnifeVariant,
276
316
  ];
277
317
 
318
+ [ModCallbackCustom2.POST_LASER_INIT_LATE]: [
319
+ callback: (laser: EntityLaser) => void,
320
+ laserVariant?: LaserVariant,
321
+ ];
322
+
323
+ [ModCallbackCustom2.POST_NEW_LEVEL_REORDERED]: [callback: () => void];
324
+
278
325
  [ModCallbackCustom2.POST_NEW_ROOM_EARLY]: [callback: () => void];
279
326
 
280
327
  [ModCallbackCustom2.POST_NEW_ROOM_REORDERED]: [callback: () => void];
281
328
 
329
+ [ModCallbackCustom2.POST_NPC_INIT_LATE]: [
330
+ callback: (npc: EntityNPC) => void,
331
+ entityType?: EntityType,
332
+ variant?: int,
333
+ ];
334
+
335
+ [ModCallbackCustom2.POST_NPC_STATE_CHANGED]: [
336
+ callback: (npc: EntityNPC, previousState: int, currentState: int) => void,
337
+ entityType?: EntityType,
338
+ variant?: int,
339
+ ];
340
+
282
341
  [ModCallbackCustom2.POST_PEFFECT_UPDATE_REORDERED]: [
283
342
  callback: (player: EntityPlayer) => void,
284
343
  playerVariant?: PlayerVariant,
285
344
  character?: PlayerType,
286
345
  ];
287
346
 
347
+ [ModCallbackCustom2.POST_PICKUP_COLLECT]: [
348
+ callback: (pickup: EntityPickup, player: EntityPlayer) => void,
349
+ pickupVariant?: PickupVariant,
350
+ subType?: int,
351
+ ];
352
+
353
+ [ModCallbackCustom2.POST_PICKUP_INIT_FIRST]: [
354
+ callback: (pickup: EntityPickup) => void,
355
+ pickupVariant?: PickupVariant,
356
+ subType?: int,
357
+ ];
358
+
359
+ [ModCallbackCustom2.POST_PICKUP_INIT_LATE]: [
360
+ callback: (pickup: EntityPickup) => void,
361
+ pickupVariant?: PickupVariant,
362
+ subType?: int,
363
+ ];
364
+
365
+ [ModCallbackCustom2.POST_PICKUP_STATE_CHANGED]: [
366
+ callback: (
367
+ pickup: EntityPickup,
368
+ previousState: int,
369
+ currentState: int,
370
+ ) => void,
371
+ pickupVariant?: PickupVariant,
372
+ subType?: int,
373
+ ];
374
+
288
375
  [ModCallbackCustom2.POST_PIT_RENDER]: [
289
376
  callback: (pit: GridEntityPit) => void,
290
377
  pitVariant?: PitVariant,
291
378
  ];
292
379
 
380
+ [ModCallbackCustom2.POST_PIT_UPDATE]: [
381
+ callback: (pit: GridEntityPit) => void,
382
+ pitVariant?: PitVariant,
383
+ ];
384
+
385
+ [ModCallbackCustom2.POST_PLAYER_CHANGE_HEALTH]: [
386
+ callback: (
387
+ player: EntityPlayer,
388
+ healthType: HealthType,
389
+ difference: int,
390
+ oldValue: int,
391
+ newValue: int,
392
+ ) => void,
393
+ playerVariant?: PlayerVariant,
394
+ character?: PlayerType,
395
+ ];
396
+
397
+ [ModCallbackCustom2.POST_PLAYER_CHANGE_STAT]: [
398
+ callback: <T extends StatType>(
399
+ player: EntityPlayer,
400
+ statType: StatType,
401
+ difference: int,
402
+ oldValue: StatTypeType[T],
403
+ newValue: StatTypeType[T],
404
+ ) => void,
405
+ playerVariant?: PlayerVariant,
406
+ character?: PlayerType,
407
+ ];
408
+
409
+ [ModCallbackCustom2.POST_PLAYER_CHANGE_TYPE]: [
410
+ callback: (
411
+ player: EntityPlayer,
412
+ oldCharacter: PlayerType,
413
+ newCharacter: PlayerType,
414
+ ) => void,
415
+ playerVariant?: PlayerVariant,
416
+ ];
417
+
418
+ [ModCallbackCustom2.POST_PLAYER_COLLECTIBLE_ADDED]: [
419
+ callback: (player: EntityPlayer, collectibleType: CollectibleType) => void,
420
+ collectibleType?: CollectibleType,
421
+ ];
422
+
423
+ [ModCallbackCustom2.POST_PLAYER_COLLECTIBLE_REMOVED]: [
424
+ callback: (player: EntityPlayer, collectibleType: CollectibleType) => void,
425
+ collectibleType?: CollectibleType,
426
+ ];
427
+
293
428
  [ModCallbackCustom2.POST_PLAYER_FATAL_DAMAGE]: [
294
429
  callback: (
295
430
  player: EntityPlayer,
@@ -302,6 +437,18 @@ export interface AddCallbackParametersCustom2 {
302
437
  character?: PlayerType,
303
438
  ];
304
439
 
440
+ [ModCallbackCustom2.POST_PLAYER_INIT_FIRST]: [
441
+ callback: (player: EntityPlayer) => void,
442
+ playerVariant?: PlayerVariant,
443
+ character?: PlayerType,
444
+ ];
445
+
446
+ [ModCallbackCustom2.POST_PLAYER_INIT_LATE]: [
447
+ callback: (player: EntityPlayer) => void,
448
+ playerVariant?: PlayerVariant,
449
+ character?: PlayerType,
450
+ ];
451
+
305
452
  [ModCallbackCustom2.POST_PLAYER_RENDER_REORDERED]: [
306
453
  callback: (player: EntityPlayer) => void,
307
454
  playerVariant?: PlayerVariant,
@@ -314,16 +461,141 @@ export interface AddCallbackParametersCustom2 {
314
461
  character?: PlayerType,
315
462
  ];
316
463
 
464
+ [ModCallbackCustom2.POST_POOP_RENDER]: [
465
+ callback: (poop: GridEntityPoop) => void,
466
+ poopVariant?: PoopGridEntityVariant,
467
+ ];
468
+
469
+ [ModCallbackCustom2.POST_POOP_UPDATE]: [
470
+ callback: (poop: GridEntityPoop) => void,
471
+ poopVariant?: PoopGridEntityVariant,
472
+ ];
473
+
474
+ [ModCallbackCustom2.POST_PRESSURE_PLATE_RENDER]: [
475
+ callback: (pressurePlate: GridEntityPressurePlate) => void,
476
+ pressurePlateVariant?: PressurePlateVariant,
477
+ ];
478
+
479
+ [ModCallbackCustom2.POST_PRESSURE_PLATE_UPDATE]: [
480
+ callback: (pressurePlate: GridEntityPressurePlate) => void,
481
+ pressurePlateVariant?: PressurePlateVariant,
482
+ ];
483
+
484
+ [ModCallbackCustom2.POST_PROJECTILE_INIT_LATE]: [
485
+ callback: (projectile: EntityProjectile) => void,
486
+ projectileVariant?: ProjectileVariant,
487
+ ];
488
+
489
+ [ModCallbackCustom2.POST_PURCHASE]: [
490
+ callback: (player: EntityPlayer, pickup: EntityPickup) => void,
491
+ pickupVariant?: PickupVariant,
492
+ pickupSubType?: int,
493
+ ];
494
+
495
+ [ModCallbackCustom2.POST_ROCK_RENDER]: [
496
+ callback: (rock: GridEntityRock) => void,
497
+ // This is not `RockVariant` because `GridEntityRock` can be other grid entity types than just
498
+ // `GridEntityType.ROCK`.
499
+ variant?: int,
500
+ ];
501
+
502
+ [ModCallbackCustom2.POST_ROCK_UPDATE]: [
503
+ callback: (rock: GridEntityRock) => void,
504
+ // This is not `RockVariant` because `GridEntityRock` can be other grid entity types than just
505
+ // `GridEntityType.ROCK`.
506
+ variant?: int,
507
+ ];
508
+
317
509
  [ModCallbackCustom2.POST_ROOM_CLEAR_CHANGED]: [
318
510
  callback: (roomClear: boolean) => void,
319
511
  roomClear?: boolean,
320
512
  ];
321
513
 
514
+ [ModCallbackCustom2.POST_SACRIFICE]: [
515
+ callback: (player: EntityPlayer, numSacrifices: int) => void,
516
+ playerVariant?: PlayerVariant,
517
+ character?: PlayerType,
518
+ ];
519
+
520
+ [ModCallbackCustom2.POST_SLOT_ANIMATION_CHANGED]: [
521
+ callback: (
522
+ slot: EntitySlot,
523
+ previousAnimation: string,
524
+ currentAnimation: string,
525
+ ) => void,
526
+ slotVariant?: SlotVariant,
527
+ ];
528
+
529
+ [ModCallbackCustom2.POST_SLOT_COLLISION]: [
530
+ callback: (slot: EntitySlot, player: EntityPlayer) => void,
531
+ slotVariant?: SlotVariant,
532
+ ];
533
+
534
+ [ModCallbackCustom2.POST_SLOT_DESTROYED]: [
535
+ callback: (
536
+ slot: EntitySlot,
537
+ slotDestructionType: SlotDestructionType,
538
+ ) => void,
539
+ slotVariant?: SlotVariant,
540
+ slotDestructionType?: SlotDestructionType,
541
+ ];
542
+
543
+ [ModCallbackCustom2.POST_SLOT_INIT]: [
544
+ callback: (slot: EntitySlot) => void,
545
+ slotVariant?: SlotVariant,
546
+ ];
547
+
548
+ [ModCallbackCustom2.POST_SLOT_RENDER]: [
549
+ callback: (slot: EntitySlot) => void,
550
+ slotVariant?: SlotVariant,
551
+ ];
552
+
553
+ [ModCallbackCustom2.POST_SLOT_UPDATE]: [
554
+ callback: (slot: EntitySlot) => void,
555
+ slotVariant?: SlotVariant,
556
+ ];
557
+
322
558
  [ModCallbackCustom2.POST_SPIKES_RENDER]: [
323
559
  callback: (spikes: GridEntitySpikes) => void,
324
560
  variant?: int,
325
561
  ];
326
562
 
563
+ [ModCallbackCustom2.POST_SPIKES_UPDATE]: [
564
+ callback: (spikes: GridEntitySpikes) => void,
565
+ variant?: int,
566
+ ];
567
+
568
+ [ModCallbackCustom2.POST_TEAR_INIT_LATE]: [
569
+ callback: (tear: EntityTear) => void,
570
+ tearVariant?: TearVariant,
571
+ ];
572
+
573
+ [ModCallbackCustom2.POST_TEAR_INIT_VERY_LATE]: [
574
+ callback: (tear: EntityTear) => void,
575
+ tearVariant?: TearVariant,
576
+ ];
577
+
578
+ [ModCallbackCustom2.POST_TNT_RENDER]: [
579
+ callback: (tnt: GridEntityTNT) => void,
580
+ variant?: int,
581
+ ];
582
+
583
+ [ModCallbackCustom2.POST_TNT_UPDATE]: [
584
+ callback: (tnt: GridEntityTNT) => void,
585
+ variant?: int,
586
+ ];
587
+
588
+ [ModCallbackCustom2.POST_TRANSFORMATION]: [
589
+ callback: (
590
+ player: EntityPlayer,
591
+ playerForm: PlayerForm,
592
+ hasForm: boolean,
593
+ ) => void,
594
+ playerForm?: PlayerForm,
595
+ ];
596
+
597
+ // -------------------------------------------
598
+
327
599
  [ModCallbackCustom2.PRE_BERSERK_DEATH]: [
328
600
  callback: (player: EntityPlayer) => void,
329
601
  playerVariant?: PlayerVariant,
@@ -335,6 +607,25 @@ export interface AddCallbackParametersCustom2 {
335
607
  playerVariant?: PlayerVariant,
336
608
  character?: PlayerType,
337
609
  ];
610
+
611
+ [ModCallbackCustom2.PRE_ITEM_PICKUP]:
612
+ | [callback: (player: EntityPlayer, pickingUpItem: PickingUpItem) => void]
613
+ | [
614
+ callback: (
615
+ player: EntityPlayer,
616
+ pickingUpItem: PickingUpItemCollectible,
617
+ ) => void,
618
+ itemType: ItemType.PASSIVE | ItemType.ACTIVE | ItemType.FAMILIAR,
619
+ collectibleType?: CollectibleType,
620
+ ]
621
+ | [
622
+ callback: (
623
+ player: EntityPlayer,
624
+ pickingUpItem: PickingUpItemTrinket,
625
+ ) => void,
626
+ itemType: ItemType.TRINKET,
627
+ trinketType?: TrinketType,
628
+ ];
338
629
  }
339
630
 
340
631
  validateInterfaceMatchesEnum<
@@ -1,5 +1,5 @@
1
1
  import { CopyableIsaacAPIClassType } from "isaac-typescript-definitions";
2
- import { SerializationBrand } from "../enums/private/SerializationBrand";
2
+ import { SerializationBrand } from "../enums/SerializationBrand";
3
3
 
4
4
  export const ISAAC_API_CLASS_TYPE_TO_BRAND: {
5
5
  readonly [key in CopyableIsaacAPIClassType]: SerializationBrand;
@@ -0,0 +1 @@
1
+ export type AnyClass = new (...args: readonly unknown[]) => unknown;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Helper type to represent any function. This is safer than using the built-in `Function` type, as
3
+ * it does not completely turn off all type safety.
4
+ */
5
+ export type AnyFunction = (...args: unknown[]) => unknown;
@@ -1,4 +1,3 @@
1
- export type FunctionTuple = [
2
- name: string,
3
- func: (...args: unknown[]) => unknown,
4
- ];
1
+ import { AnyFunction } from "./AnyFunction";
2
+
3
+ export type FunctionTuple = [name: string, func: AnyFunction];
@@ -0,0 +1,7 @@
1
+ /** Helper type to check if an object or class has one or more functions/methods. */
2
+ export type HasFunction<T> = Record<string, unknown> extends {
3
+ // eslint-disable-next-line @typescript-eslint/ban-types
4
+ [K in keyof T as T[K] extends Function ? K : never]-?: 1;
5
+ }
6
+ ? never
7
+ : T;
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomCallbackRevive.d.ts","sourceRoot":"","sources":["../../../../../src/classes/callbacks/validation/CustomCallbackRevive.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACb,MAAM,8BAA8B,CAAC;AAEtC,aAAK,uBAAuB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,IAAI,CAAC;AAChF,aAAK,uBAAuB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;AAE/E,qBAAa,oBAAoB,CAC/B,CAAC,SAAS,uBAAuB,CACjC,SAAQ,cAAc,CAAC,CAAC,CAAC;cAEN,UAAU,CAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAC5B,OAAO;CASX"}
@@ -1,19 +0,0 @@
1
- local ____lualib = require("lualib_bundle")
2
- local __TS__Class = ____lualib.__TS__Class
3
- local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
- local ____exports = {}
5
- local ____CustomCallback = require("src.classes.private.CustomCallback")
6
- local CustomCallback = ____CustomCallback.CustomCallback
7
- ____exports.CustomCallbackRevive = __TS__Class()
8
- local CustomCallbackRevive = ____exports.CustomCallbackRevive
9
- CustomCallbackRevive.name = "CustomCallbackRevive"
10
- __TS__ClassExtends(CustomCallbackRevive, CustomCallback)
11
- function CustomCallbackRevive.prototype.shouldFire(self, fireArgs, optionalArgs)
12
- local callbackRevivalType = table.unpack(optionalArgs)
13
- if callbackRevivalType == nil then
14
- return true
15
- end
16
- local _player, revivalType = table.unpack(fireArgs)
17
- return revivalType == callbackRevivalType
18
- end
19
- return ____exports
@@ -1 +0,0 @@
1
- {"version":3,"file":"GridEntityDetection.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/callbackLogic/GridEntityDetection.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAe,MAAM,8BAA8B,CAAC;AAO3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,gCAAgC,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,aAAK,eAAe,GAAG;IACrB,cAAc,EAAE,cAAc;IAC9B,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,OAAO;IAC9B,CAAC;;YAEb,6BAA6B;;;MAG/B;IAEF,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,0BAA0B,CAA6B;IAC/D,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,0BAA0B,CAA6B;IAC/D,OAAO,CAAC,0BAA0B,CAA6B;IAC/D,OAAO,CAAC,gCAAgC,CAAmC;IAC3E,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,0BAA0B,CAA6B;IAC/D,OAAO,CAAC,kBAAkB,CAAqB;gBAG7C,kBAAkB,EAAE,kBAAkB,EACtC,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,oBAAoB,EAC1C,0BAA0B,EAAE,0BAA0B,EACtD,oBAAoB,EAAE,oBAAoB,EAC1C,0BAA0B,EAAE,0BAA0B,EACtD,0BAA0B,EAAE,0BAA0B,EACtD,gCAAgC,EAAE,gCAAgC,EAClE,oBAAoB,EAAE,oBAAoB,EAC1C,0BAA0B,EAAE,0BAA0B,EACtD,kBAAkB,EAAE,kBAAkB;IA4BxC,OAAO,CAAC,UAAU,CAmBhB;IAEF,OAAO,CAAC,wBAAwB;IA8BhC,OAAO,CAAC,2BAA2B;IA0CnC,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,oBAAoB,CAM1B;CACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SerializationBrand.d.ts","sourceRoot":"","sources":["../../../../src/enums/private/SerializationBrand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,kBAAkB;IAE5B,WAAW,uBAAuB;IAClC,GAAG,eAAe;IAClB,GAAG,eAAe;IAGlB,WAAW,kBAAkB;IAC7B,KAAK,YAAY;IACjB,OAAO,cAAc;IACrB,GAAG,UAAU;IACb,MAAM,aAAa;IAEnB;;;OAGG;IACH,iBAAiB,6BAA6B;IAE9C;;;;;;;;;;OAUG;IACH,uBAAuB,mCAAmC;CAC3D"}
@@ -1,26 +0,0 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
- /**
3
- * `merge` takes the values from a new table and recursively merges them into an old object (while
4
- * performing appropriate deserialization).
5
- *
6
- * It supports the following object types:
7
- *
8
- * - Basic TSTL objects / tables
9
- * - TSTL `Map`
10
- * - TSTL `Set`
11
- * - TSTL classes
12
- * - `DefaultMap`
13
- * - Isaac `BitSet128` objects
14
- * - Isaac `Color` objects
15
- * - Isaac `KColor` objects
16
- * - Isaac `RNG` objects
17
- * - Isaac `Vector` objects
18
- *
19
- * Since it is common for a variable to have a type of `something | null`, we must iterate over the
20
- * new object and copy over all of the values. (A value of null transpiles to nil, which means the
21
- * table key does not exist.) The consequence of this is that it can copy over old variables that
22
- * are no longer used in the code, or copy over old variables of a different type, which can cause
23
- * run-time errors. In such cases, users will have to manually delete their save data.
24
- */
25
- export declare function merge(oldObject: LuaMap<AnyNotNil, unknown> | Map<AnyNotNil, unknown> | Set<AnyNotNil>, newTable: LuaMap<AnyNotNil, unknown>, traversalDescription: string): void;
26
- //# sourceMappingURL=merge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../src/features/saveDataManager/merge.ts"],"names":[],"mappings":";AAgBA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,KAAK,CACnB,SAAS,EACL,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAC1B,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GACvB,GAAG,CAAC,SAAS,CAAC,EAClB,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EACpC,oBAAoB,EAAE,MAAM,GAC3B,IAAI,CA0BN"}
@@ -1,2 +0,0 @@
1
- export declare function isSerializationBrand(key: unknown): boolean;
2
- //# sourceMappingURL=serializationBrands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializationBrands.d.ts","sourceRoot":"","sources":["../../../../src/features/saveDataManager/serializationBrands.ts"],"names":[],"mappings":"AASA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAM1D"}
@@ -1,19 +0,0 @@
1
- local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
- local __TS__New = ____lualib.__TS__New
4
- local ____exports = {}
5
- local ____SerializationBrand = require("src.enums.private.SerializationBrand")
6
- local SerializationBrand = ____SerializationBrand.SerializationBrand
7
- local ____enums = require("src.functions.enums")
8
- local getEnumValues = ____enums.getEnumValues
9
- local ____types = require("src.functions.types")
10
- local isString = ____types.isString
11
- local SERIALIZATION_BRANDS = getEnumValues(nil, SerializationBrand)
12
- local SERIALIZATION_BRAND_SET = __TS__New(Set, SERIALIZATION_BRANDS)
13
- function ____exports.isSerializationBrand(self, key)
14
- if not isString(nil, key) then
15
- return false
16
- end
17
- return SERIALIZATION_BRAND_SET:has(key)
18
- end
19
- return ____exports