isaacscript-common 87.9.7 → 87.10.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 (567) hide show
  1. package/dist/cachedEnumValues.js +29 -32
  2. package/dist/callbackClasses.js +142 -289
  3. package/dist/callbacks.js +147 -183
  4. package/dist/classes/DefaultMap.js +4 -8
  5. package/dist/classes/ModFeature.js +21 -25
  6. package/dist/classes/ModUpgraded.js +43 -47
  7. package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
  8. package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
  9. package/dist/classes/callbacks/InputActionFilter.js +4 -8
  10. package/dist/classes/callbacks/InputActionPlayer.js +4 -8
  11. package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
  12. package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
  13. package/dist/classes/callbacks/PostBombExploded.js +8 -12
  14. package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
  15. package/dist/classes/callbacks/PostBombInitLate.js +6 -10
  16. package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
  17. package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
  18. package/dist/classes/callbacks/PostBoneSwing.js +7 -11
  19. package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
  20. package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
  21. package/dist/classes/callbacks/PostCustomRevive.js +4 -8
  22. package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
  23. package/dist/classes/callbacks/PostDoorRender.js +8 -12
  24. package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
  25. package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
  26. package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
  27. package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
  28. package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
  29. package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
  30. package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
  31. package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
  32. package/dist/classes/callbacks/PostEsauJr.js +4 -8
  33. package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
  34. package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
  35. package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
  36. package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
  37. package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
  38. package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
  39. package/dist/classes/callbacks/PostFirstFlip.js +4 -8
  40. package/dist/classes/callbacks/PostFlip.js +4 -8
  41. package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
  42. package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
  43. package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
  44. package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
  45. package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
  46. package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
  47. package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
  48. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
  49. package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
  50. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
  51. package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
  52. package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
  53. package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
  54. package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
  55. package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
  56. package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
  57. package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
  58. package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
  59. package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
  60. package/dist/classes/callbacks/PostItemDischarge.js +23 -27
  61. package/dist/classes/callbacks/PostItemPickup.js +6 -10
  62. package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
  63. package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
  64. package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
  65. package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
  66. package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
  67. package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
  68. package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
  69. package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
  70. package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
  71. package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
  72. package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
  73. package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
  74. package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
  75. package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
  76. package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
  77. package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
  78. package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
  79. package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
  80. package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
  81. package/dist/classes/callbacks/PostPickupChanged.js +6 -10
  82. package/dist/classes/callbacks/PostPickupCollect.js +8 -12
  83. package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
  84. package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
  85. package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
  86. package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
  87. package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
  88. package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
  89. package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
  90. package/dist/classes/callbacks/PostPitRender.js +8 -12
  91. package/dist/classes/callbacks/PostPitUpdate.js +8 -12
  92. package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
  93. package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
  94. package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
  95. package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
  96. package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
  97. package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
  98. package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
  99. package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
  100. package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
  101. package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
  102. package/dist/classes/callbacks/PostPoopRender.js +8 -12
  103. package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
  104. package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
  105. package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
  106. package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
  107. package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
  108. package/dist/classes/callbacks/PostProjectileKill.js +8 -12
  109. package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
  110. package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
  111. package/dist/classes/callbacks/PostPurchase.js +21 -25
  112. package/dist/classes/callbacks/PostRockRender.js +8 -12
  113. package/dist/classes/callbacks/PostRockUpdate.js +8 -12
  114. package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
  115. package/dist/classes/callbacks/PostSacrifice.js +12 -16
  116. package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
  117. package/dist/classes/callbacks/PostSlotCollision.js +8 -12
  118. package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
  119. package/dist/classes/callbacks/PostSlotInit.js +6 -10
  120. package/dist/classes/callbacks/PostSlotRender.js +6 -10
  121. package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
  122. package/dist/classes/callbacks/PostSpikesRender.js +8 -12
  123. package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
  124. package/dist/classes/callbacks/PostTNTRender.js +8 -12
  125. package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
  126. package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
  127. package/dist/classes/callbacks/PostTearInitLate.js +6 -10
  128. package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
  129. package/dist/classes/callbacks/PostTearKill.js +8 -12
  130. package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
  131. package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
  132. package/dist/classes/callbacks/PostTransformation.js +10 -14
  133. package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
  134. package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
  135. package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
  136. package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
  137. package/dist/classes/callbacks/PreCustomRevive.js +6 -10
  138. package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
  139. package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
  140. package/dist/classes/callbacks/PreGetPedestal.js +8 -12
  141. package/dist/classes/callbacks/PreItemPickup.js +6 -10
  142. package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
  143. package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
  144. package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
  145. package/dist/classes/callbacks/PreNewLevel.js +10 -14
  146. package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
  147. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
  148. package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
  149. package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
  150. package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
  151. package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
  152. package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
  153. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
  154. package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
  155. package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
  156. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
  157. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
  158. package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
  159. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
  160. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
  161. package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
  162. package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
  163. package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
  164. package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
  165. package/dist/classes/features/other/CharacterStats.js +9 -13
  166. package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
  167. package/dist/classes/features/other/CustomHotkeys.js +15 -19
  168. package/dist/classes/features/other/CustomItemPools.js +20 -24
  169. package/dist/classes/features/other/CustomPickups.js +15 -19
  170. package/dist/classes/features/other/CustomStages.js +116 -153
  171. package/dist/classes/features/other/CustomTrapdoors.js +119 -123
  172. package/dist/classes/features/other/DebugDisplay.js +77 -81
  173. package/dist/classes/features/other/DeployJSONRoom.js +65 -69
  174. package/dist/classes/features/other/DisableAllSound.js +14 -18
  175. package/dist/classes/features/other/DisableInputs.js +24 -28
  176. package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
  177. package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
  178. package/dist/classes/features/other/FadeInRemover.js +9 -13
  179. package/dist/classes/features/other/FastReset.js +18 -22
  180. package/dist/classes/features/other/FlyingDetection.js +10 -14
  181. package/dist/classes/features/other/ForgottenSwitch.js +8 -12
  182. package/dist/classes/features/other/ItemPoolDetection.js +35 -39
  183. package/dist/classes/features/other/ModdedElementDetection.js +43 -47
  184. package/dist/classes/features/other/ModdedElementSets.js +135 -139
  185. package/dist/classes/features/other/NoSirenSteal.js +7 -11
  186. package/dist/classes/features/other/Pause.js +48 -52
  187. package/dist/classes/features/other/PersistentEntities.js +16 -20
  188. package/dist/classes/features/other/PickupIndexCreation.js +31 -35
  189. package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
  190. package/dist/classes/features/other/PonyDetection.js +22 -26
  191. package/dist/classes/features/other/PressInput.js +10 -14
  192. package/dist/classes/features/other/PreventChildEntities.js +6 -10
  193. package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
  194. package/dist/classes/features/other/RerunDetection.js +11 -15
  195. package/dist/classes/features/other/RoomClearFrame.js +11 -15
  196. package/dist/classes/features/other/RoomHistory.js +30 -34
  197. package/dist/classes/features/other/RunInNFrames.js +24 -28
  198. package/dist/classes/features/other/RunNextRoom.js +8 -12
  199. package/dist/classes/features/other/RunNextRun.js +8 -12
  200. package/dist/classes/features/other/SaveDataManager.js +61 -65
  201. package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
  202. package/dist/classes/features/other/StageHistory.js +76 -80
  203. package/dist/classes/features/other/StartAmbush.js +12 -16
  204. package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
  205. package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
  206. package/dist/classes/features/other/customStages/backdrop.js +68 -71
  207. package/dist/classes/features/other/customStages/constants.js +7 -10
  208. package/dist/classes/features/other/customStages/gridEntities.js +23 -30
  209. package/dist/classes/features/other/customStages/shadows.js +27 -30
  210. package/dist/classes/features/other/customStages/streakText.js +55 -60
  211. package/dist/classes/features/other/customStages/utils.js +13 -17
  212. package/dist/classes/features/other/customStages/v.js +4 -7
  213. package/dist/classes/features/other/customStages/versusScreen.js +46 -50
  214. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
  215. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
  216. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
  217. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
  218. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
  219. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
  220. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
  221. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
  222. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
  223. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
  224. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
  225. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
  226. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
  227. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
  228. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
  229. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
  230. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
  231. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
  232. package/dist/classes/features/other/debugDisplay/utils.js +6 -10
  233. package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
  234. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
  235. package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
  236. package/dist/classes/features/other/saveDataManager/constants.js +1 -4
  237. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
  238. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
  239. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
  240. package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
  241. package/dist/classes/private/CustomCallback.js +4 -8
  242. package/dist/classes/private/Feature.js +1 -5
  243. package/dist/core/cachedClasses.js +12 -15
  244. package/dist/core/constants.js +126 -130
  245. package/dist/core/constantsFirstLast.js +22 -25
  246. package/dist/core/constantsVanilla.js +25 -28
  247. package/dist/core/upgradeMod.js +7 -10
  248. package/dist/decorators.js +6 -10
  249. package/dist/enums/AmbushType.js +2 -5
  250. package/dist/enums/CornerType.js +2 -5
  251. package/dist/enums/HealthType.js +2 -5
  252. package/dist/enums/ISCFeature.js +2 -5
  253. package/dist/enums/LadderSubTypeCustom.js +2 -5
  254. package/dist/enums/ModCallbackCustom.js +2 -5
  255. package/dist/enums/MysteriousPaperEffect.js +2 -5
  256. package/dist/enums/PlayerStat.js +2 -5
  257. package/dist/enums/PocketItemType.js +2 -5
  258. package/dist/enums/RockAltType.js +2 -5
  259. package/dist/enums/SaveDataKey.js +2 -5
  260. package/dist/enums/SerializationType.js +2 -5
  261. package/dist/enums/SlotDestructionType.js +2 -5
  262. package/dist/enums/private/GridEntityTypeCustom.js +1 -4
  263. package/dist/enums/private/SerializationBrand.js +2 -5
  264. package/dist/enums/private/StageTravelState.js +2 -5
  265. package/dist/enums/private/TrapdoorAnimation.js +2 -5
  266. package/dist/enums/private/UIStreakAnimation.js +2 -5
  267. package/dist/features.js +138 -141
  268. package/dist/functions/ambush.js +9 -12
  269. package/dist/functions/array.js +45 -76
  270. package/dist/functions/arrayLua.js +7 -16
  271. package/dist/functions/benchmark.js +4 -7
  272. package/dist/functions/bitSet128.js +19 -26
  273. package/dist/functions/bitwise.js +14 -23
  274. package/dist/functions/bombs.js +1 -4
  275. package/dist/functions/bosses.js +68 -85
  276. package/dist/functions/cards.js +44 -62
  277. package/dist/functions/challenges.js +28 -39
  278. package/dist/functions/characters.js +68 -87
  279. package/dist/functions/charge.js +41 -52
  280. package/dist/functions/chargeBar.js +2 -6
  281. package/dist/functions/collectibleTag.js +9 -13
  282. package/dist/functions/collectibles.js +133 -172
  283. package/dist/functions/color.js +29 -38
  284. package/dist/functions/console.js +4 -8
  285. package/dist/functions/curses.js +6 -10
  286. package/dist/functions/debugFunctions.js +7 -14
  287. package/dist/functions/decorators.js +13 -19
  288. package/dist/functions/deepCopy.js +96 -99
  289. package/dist/functions/deepCopyTests.js +56 -59
  290. package/dist/functions/dimensions.js +10 -14
  291. package/dist/functions/direction.js +22 -30
  292. package/dist/functions/doors.js +104 -154
  293. package/dist/functions/easing.js +30 -62
  294. package/dist/functions/effects.js +6 -10
  295. package/dist/functions/emptyRoom.js +30 -34
  296. package/dist/functions/entities.js +88 -115
  297. package/dist/functions/entitiesSpecific.js +83 -125
  298. package/dist/functions/entityTypes.js +3 -6
  299. package/dist/functions/enums.js +27 -41
  300. package/dist/functions/external.js +4 -8
  301. package/dist/functions/familiars.js +17 -25
  302. package/dist/functions/flag.js +10 -19
  303. package/dist/functions/frames.js +31 -51
  304. package/dist/functions/globals.js +26 -66
  305. package/dist/functions/gridEntities.js +231 -269
  306. package/dist/functions/gridEntitiesSpecific.js +86 -126
  307. package/dist/functions/gridIndex.js +8 -11
  308. package/dist/functions/hash.js +1 -4
  309. package/dist/functions/hex.js +7 -11
  310. package/dist/functions/input.js +65 -88
  311. package/dist/functions/isaacAPIClass.js +28 -53
  312. package/dist/functions/itemPool.js +39 -48
  313. package/dist/functions/jsonHelpers.js +5 -42
  314. package/dist/functions/jsonRoom.js +39 -46
  315. package/dist/functions/kColor.js +30 -39
  316. package/dist/functions/language.js +3 -6
  317. package/dist/functions/level.js +20 -26
  318. package/dist/functions/levelGrid.js +81 -108
  319. package/dist/functions/log.js +6 -12
  320. package/dist/functions/logEntities.js +49 -59
  321. package/dist/functions/logMisc.js +183 -214
  322. package/dist/functions/map.js +10 -20
  323. package/dist/functions/math.js +16 -31
  324. package/dist/functions/merge.js +48 -51
  325. package/dist/functions/mergeTests.js +34 -37
  326. package/dist/functions/minimap.js +34 -46
  327. package/dist/functions/modFeatures.js +1 -4
  328. package/dist/functions/newArray.js +5 -8
  329. package/dist/functions/nextStage.js +63 -67
  330. package/dist/functions/npcDataStructures.js +9 -20
  331. package/dist/functions/npcs.js +37 -45
  332. package/dist/functions/pickupVariants.js +26 -39
  333. package/dist/functions/pickups.js +43 -59
  334. package/dist/functions/pickupsSpecific.js +76 -118
  335. package/dist/functions/pills.js +52 -72
  336. package/dist/functions/playerCenter.js +13 -16
  337. package/dist/functions/playerCollectibles.js +59 -79
  338. package/dist/functions/playerDataStructures.js +18 -29
  339. package/dist/functions/playerEffects.js +12 -19
  340. package/dist/functions/playerHealth.js +91 -113
  341. package/dist/functions/playerIndex.js +22 -33
  342. package/dist/functions/playerTrinkets.js +31 -43
  343. package/dist/functions/players.js +87 -126
  344. package/dist/functions/pocketItems.js +33 -43
  345. package/dist/functions/positionVelocity.js +23 -32
  346. package/dist/functions/pressurePlate.js +7 -10
  347. package/dist/functions/projectiles.js +11 -15
  348. package/dist/functions/random.js +8 -13
  349. package/dist/functions/readOnly.js +3 -8
  350. package/dist/functions/render.js +7 -12
  351. package/dist/functions/revive.js +38 -45
  352. package/dist/functions/rng.js +31 -44
  353. package/dist/functions/rockAlt.js +18 -22
  354. package/dist/functions/roomData.js +24 -40
  355. package/dist/functions/roomGrid.js +17 -25
  356. package/dist/functions/roomShape.js +39 -55
  357. package/dist/functions/roomShapeWalls.js +67 -71
  358. package/dist/functions/roomTransition.js +13 -17
  359. package/dist/functions/rooms.js +181 -244
  360. package/dist/functions/run.js +29 -39
  361. package/dist/functions/seeds.js +6 -10
  362. package/dist/functions/serialization.js +27 -34
  363. package/dist/functions/set.js +24 -40
  364. package/dist/functions/slots.js +18 -22
  365. package/dist/functions/sort.js +9 -15
  366. package/dist/functions/sound.js +12 -16
  367. package/dist/functions/spawnCollectible.js +21 -26
  368. package/dist/functions/sprites.js +16 -24
  369. package/dist/functions/stage.js +122 -164
  370. package/dist/functions/stats.js +37 -43
  371. package/dist/functions/storyBosses.js +36 -40
  372. package/dist/functions/string.js +19 -33
  373. package/dist/functions/table.js +21 -31
  374. package/dist/functions/tears.js +6 -14
  375. package/dist/functions/transformations.js +35 -42
  376. package/dist/functions/trinketGive.js +29 -36
  377. package/dist/functions/trinkets.js +45 -60
  378. package/dist/functions/tstlClass.js +11 -20
  379. package/dist/functions/types.js +22 -46
  380. package/dist/functions/ui.js +25 -40
  381. package/dist/functions/utils.js +22 -36
  382. package/dist/functions/vector.js +33 -46
  383. package/dist/functions/versusScreen.js +12 -18
  384. package/dist/functions/weighted.js +8 -12
  385. package/dist/index.js +150 -166
  386. package/dist/index.rollup.d.ts +11 -11
  387. package/dist/indexLua.js +151 -167
  388. package/dist/interfaces/ChargeBarSprites.js +1 -2
  389. package/dist/interfaces/Corner.js +1 -2
  390. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  391. package/dist/interfaces/GridEntityCustomData.js +1 -2
  392. package/dist/interfaces/JSONRoomsFile.js +1 -2
  393. package/dist/interfaces/PlayerHealth.d.ts +11 -11
  394. package/dist/interfaces/PlayerHealth.d.ts.map +1 -1
  395. package/dist/interfaces/PlayerHealth.js +1 -2
  396. package/dist/interfaces/PlayerStats.js +2 -4
  397. package/dist/interfaces/PocketItemDescription.js +1 -2
  398. package/dist/interfaces/RoomDescription.js +1 -2
  399. package/dist/interfaces/SaveData.js +1 -2
  400. package/dist/interfaces/StageHistoryEntry.js +1 -2
  401. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  402. package/dist/interfaces/TrinketSituation.js +1 -2
  403. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  404. package/dist/interfaces/private/CustomStage.js +1 -2
  405. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  406. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  407. package/dist/isaacscript-common.lua +1 -1
  408. package/dist/maps/PHDPillConversionsMap.js +19 -22
  409. package/dist/maps/cardNameToTypeMap.js +205 -208
  410. package/dist/maps/characterNameToTypeMap.js +85 -88
  411. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  412. package/dist/maps/defaultPlayerStatMap.js +10 -13
  413. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  414. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  415. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  416. package/dist/maps/gridEntityXMLMap.js +52 -55
  417. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  418. package/dist/maps/keyboardToStringMap.js +66 -69
  419. package/dist/maps/pillNameToEffectMap.js +83 -86
  420. package/dist/maps/roomNameToTypeMap.js +38 -41
  421. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  422. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  423. package/dist/maps/trinketNameToTypeMap.js +5 -8
  424. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  425. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  426. package/dist/objects/batteryNames.js +8 -11
  427. package/dist/objects/bombNames.js +11 -14
  428. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  429. package/dist/objects/bossNamePNGFileNames.js +104 -107
  430. package/dist/objects/bossNames.js +105 -108
  431. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  432. package/dist/objects/cardDescriptions.js +101 -104
  433. package/dist/objects/cardNames.js +101 -104
  434. package/dist/objects/challengeBosses.js +49 -52
  435. package/dist/objects/challengeCharacters.js +49 -52
  436. package/dist/objects/challengeCollectibleTypes.js +160 -163
  437. package/dist/objects/challengeNames.js +49 -52
  438. package/dist/objects/challengeTrinketType.js +48 -51
  439. package/dist/objects/characterDamageMultipliers.js +44 -47
  440. package/dist/objects/characterNames.js +44 -47
  441. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  442. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  443. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  444. package/dist/objects/chestNames.js +15 -18
  445. package/dist/objects/coinNames.js +11 -14
  446. package/dist/objects/coinSubTypeToValue.js +11 -14
  447. package/dist/objects/collectibleDescriptions.js +725 -728
  448. package/dist/objects/collectibleNames.js +725 -728
  449. package/dist/objects/colors.js +1 -4
  450. package/dist/objects/directionNames.js +7 -10
  451. package/dist/objects/directionToDegrees.js +7 -10
  452. package/dist/objects/directionToMoveAction.js +7 -10
  453. package/dist/objects/directionToShootAction.js +7 -10
  454. package/dist/objects/directionToVector.js +9 -12
  455. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  456. package/dist/objects/doorSlotToDirection.js +11 -14
  457. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  458. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  459. package/dist/objects/heartNames.js +16 -19
  460. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  461. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  462. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  463. package/dist/objects/kColors.js +1 -4
  464. package/dist/objects/keyNames.js +8 -11
  465. package/dist/objects/languageNames.js +9 -12
  466. package/dist/objects/oppositeDoorSlots.js +11 -14
  467. package/dist/objects/pillEffectClasses.js +53 -56
  468. package/dist/objects/pillEffectNames.js +53 -56
  469. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  470. package/dist/objects/pillEffectTypes.js +53 -56
  471. package/dist/objects/playerNamePNGFileNames.js +44 -47
  472. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  473. package/dist/objects/roomShapeBounds.js +23 -26
  474. package/dist/objects/roomShapeCorners.js +128 -131
  475. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  476. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  477. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  478. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  479. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  480. package/dist/objects/roomShapeToGridWidth.js +14 -17
  481. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  482. package/dist/objects/roomShapeVolumes.js +21 -24
  483. package/dist/objects/roomTypeNames.js +32 -35
  484. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  485. package/dist/objects/sackNames.js +6 -9
  486. package/dist/objects/slotNames.js +21 -24
  487. package/dist/objects/stageIDNames.js +33 -36
  488. package/dist/objects/stageToMusic.js +69 -72
  489. package/dist/objects/stageToStageID.js +90 -93
  490. package/dist/objects/stageTypeSuffixes.js +8 -11
  491. package/dist/objects/transformationNames.js +16 -19
  492. package/dist/objects/trinketDescriptions.js +192 -195
  493. package/dist/objects/trinketNames.js +192 -195
  494. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  495. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  496. package/dist/patchErrorFunctions.js +4 -7
  497. package/dist/serialization.js +6 -9
  498. package/dist/sets/LRoomShapesSet.js +7 -10
  499. package/dist/sets/bigRoomShapesSet.js +10 -13
  500. package/dist/sets/bossSets.js +261 -264
  501. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  502. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  503. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  504. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  505. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  506. package/dist/sets/consoleCommandsSet.js +2 -5
  507. package/dist/sets/entitiesWithArmorSet.js +44 -47
  508. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  509. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  510. package/dist/sets/lostStyleCharactersSet.js +8 -11
  511. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  512. package/dist/sets/narrowRoomShapesSet.js +7 -10
  513. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  514. package/dist/sets/redHeartSubTypesSet.js +6 -9
  515. package/dist/sets/repentanceBossIDsSet.js +26 -29
  516. package/dist/sets/sinEntityTypesSet.js +10 -13
  517. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  518. package/dist/shaderCrashFix.js +4 -7
  519. package/dist/shouldFire.js +28 -58
  520. package/dist/types/AddSubtract.js +1 -2
  521. package/dist/types/AllButFirst.js +1 -2
  522. package/dist/types/AllButLast.js +1 -2
  523. package/dist/types/AnyClass.js +1 -2
  524. package/dist/types/AnyEntity.js +1 -2
  525. package/dist/types/AnyFunction.js +1 -2
  526. package/dist/types/AnyGridEntity.js +1 -2
  527. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  528. package/dist/types/ConversionHeartSubType.js +1 -2
  529. package/dist/types/Decrement.js +1 -2
  530. package/dist/types/ERange.js +1 -2
  531. package/dist/types/EntityID.js +1 -2
  532. package/dist/types/FunctionTuple.js +1 -2
  533. package/dist/types/GridEntityID.js +1 -2
  534. package/dist/types/HasFunction.js +1 -2
  535. package/dist/types/IRange.js +1 -2
  536. package/dist/types/Immutable.js +1 -2
  537. package/dist/types/Increment.js +1 -2
  538. package/dist/types/LowercaseKeys.js +1 -2
  539. package/dist/types/NaturalNumbersLessThan.js +1 -2
  540. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  541. package/dist/types/ObjectValues.js +1 -2
  542. package/dist/types/PickingUpItem.js +15 -22
  543. package/dist/types/PickupIndex.js +1 -2
  544. package/dist/types/PlayerIndex.js +1 -2
  545. package/dist/types/PossibleStatType.js +1 -2
  546. package/dist/types/PublicInterface.js +1 -2
  547. package/dist/types/ReadonlyMap.js +1 -4
  548. package/dist/types/ReadonlyRecord.js +1 -2
  549. package/dist/types/ReadonlySet.js +1 -4
  550. package/dist/types/StartsWithLowercase.js +1 -2
  551. package/dist/types/StartsWithUppercase.js +1 -2
  552. package/dist/types/TSTLClass.js +1 -2
  553. package/dist/types/Tuple.js +1 -2
  554. package/dist/types/TupleKeys.js +1 -2
  555. package/dist/types/TupleToIntersection.js +1 -2
  556. package/dist/types/TupleToUnion.js +1 -2
  557. package/dist/types/TupleWithLengthBetween.js +1 -2
  558. package/dist/types/TupleWithMaxLength.js +1 -2
  559. package/dist/types/UnionToIntersection.js +1 -2
  560. package/dist/types/UppercaseKeys.js +1 -2
  561. package/dist/types/WeightedArray.js +1 -2
  562. package/dist/types/WidenLiteral.js +1 -2
  563. package/dist/types/Writable.js +1 -2
  564. package/dist/types/private/CallbackTuple.js +1 -2
  565. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  566. package/package.json +3 -3
  567. package/src/interfaces/PlayerHealth.ts +12 -11
@@ -1,73 +1,42 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logArray = logArray;
4
- exports.logCollectibleTypes = logCollectibleTypes;
5
- exports.logColor = logColor;
6
- exports.logDamageFlags = logDamageFlags;
7
- exports.logDisplayFlags = logDisplayFlags;
8
- exports.logEntityFlags = logEntityFlags;
9
- exports.logEntityID = logEntityID;
10
- exports.logFlags = logFlags;
11
- exports.logGameStateFlags = logGameStateFlags;
12
- exports.logItemPoolTypes = logItemPoolTypes;
13
- exports.logKColor = logKColor;
14
- exports.logLevelStateFlags = logLevelStateFlags;
15
- exports.logMap = logMap;
16
- exports.logMusic = logMusic;
17
- exports.logPlayerEffects = logPlayerEffects;
18
- exports.logPlayerHealth = logPlayerHealth;
19
- exports.logProjectileFlags = logProjectileFlags;
20
- exports.logRoom = logRoom;
21
- exports.logSeedEffects = logSeedEffects;
22
- exports.logSet = logSet;
23
- exports.logSounds = logSounds;
24
- exports.logTable = logTable;
25
- exports.logTableDifferences = logTableDifferences;
26
- exports.logTableKeys = logTableKeys;
27
- exports.logTableShallow = logTableShallow;
28
- exports.logTearFlags = logTearFlags;
29
- exports.logUseFlags = logUseFlags;
30
- exports.logUserdata = logUserdata;
31
- exports.logVector = logVector;
32
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
33
- const cachedClasses_1 = require("../core/cachedClasses");
34
- const ReadonlySet_1 = require("../types/ReadonlySet");
35
- const array_1 = require("./array");
36
- const bosses_1 = require("./bosses");
37
- const collectibles_1 = require("./collectibles");
38
- const entities_1 = require("./entities");
39
- const enums_1 = require("./enums");
40
- const flag_1 = require("./flag");
41
- const isaacAPIClass_1 = require("./isaacAPIClass");
42
- const itemPool_1 = require("./itemPool");
43
- const log_1 = require("./log");
44
- const playerEffects_1 = require("./playerEffects");
45
- const playerHealth_1 = require("./playerHealth");
46
- const players_1 = require("./players");
47
- const roomData_1 = require("./roomData");
48
- const set_1 = require("./set");
49
- const sort_1 = require("./sort");
50
- const table_1 = require("./table");
51
- const trinkets_1 = require("./trinkets");
52
- const tstlClass_1 = require("./tstlClass");
53
- const types_1 = require("./types");
54
- const vector_1 = require("./vector");
1
+ import { BossID, DamageFlag, DisplayFlag, EntityFlag, GameStateFlag, GridRoom, HeartSubType, LevelStateFlag, Music, NullItemID, ProjectileFlag, RoomType, SeedEffect, SoundEffect, StageID, TearFlag, UseFlag, } from "isaac-typescript-definitions";
2
+ import { game, musicManager, sfxManager } from "../core/cachedClasses";
3
+ import { ReadonlySet } from "../types/ReadonlySet";
4
+ import { arrayToString, isArray } from "./array";
5
+ import { getBossID } from "./bosses";
6
+ import { getCollectibleName } from "./collectibles";
7
+ import { getEntityID } from "./entities";
8
+ import { getEnumEntries } from "./enums";
9
+ import { hasFlag } from "./flag";
10
+ import { getIsaacAPIClassName } from "./isaacAPIClass";
11
+ import { getItemPoolName } from "./itemPool";
12
+ import { log } from "./log";
13
+ import { getEffectsList } from "./playerEffects";
14
+ import { getPlayerHealth } from "./playerHealth";
15
+ import { getPlayerName } from "./players";
16
+ import { getRoomData, getRoomGridIndex, getRoomListIndex } from "./roomData";
17
+ import { combineSets, getSortedSetValues } from "./set";
18
+ import { sortNormal } from "./sort";
19
+ import { iterateTableInOrder } from "./table";
20
+ import { getTrinketName } from "./trinkets";
21
+ import { isDefaultMap, isTSTLMap, isTSTLSet } from "./tstlClass";
22
+ import { isTable, isUserdata } from "./types";
23
+ import { vectorToString } from "./vector";
55
24
  /**
56
25
  * Helper function to log all of the values in an array.
57
26
  *
58
27
  * @param array The array to log.
59
28
  * @param name Optional. The name of the array, which will be logged before the elements.
60
29
  */
61
- function logArray(array, name) {
30
+ export function logArray(array, name) {
62
31
  name ??= "array";
63
32
  // We do not assume the given array has contiguous values in order to be more permissive about the
64
33
  // kinds of arrays that will successfully log without a run-time error.
65
- if (!(0, array_1.isArray)(array, false)) {
66
- (0, log_1.log)("Tried to log an array, but the given object was not an array.");
34
+ if (!isArray(array, false)) {
35
+ log("Tried to log an array, but the given object was not an array.");
67
36
  return;
68
37
  }
69
- const arrayString = (0, array_1.arrayToString)(array);
70
- (0, log_1.log)(`Logging ${name}: ${arrayString}`);
38
+ const arrayString = arrayToString(array);
39
+ log(`Logging ${name}: ${arrayString}`);
71
40
  }
72
41
  /**
73
42
  * Helper function to log the names of a collectible type array.
@@ -75,13 +44,13 @@ function logArray(array, name) {
75
44
  * @param collectibleTypes The collectible types to log.
76
45
  * @param name Optional. The name of the array, which will be logged before the elements.
77
46
  */
78
- function logCollectibleTypes(collectibleTypes, name) {
47
+ export function logCollectibleTypes(collectibleTypes, name) {
79
48
  name ??= "collectibles";
80
- (0, log_1.log)(`Logging ${name}:`);
49
+ log(`Logging ${name}:`);
81
50
  let i = 1;
82
51
  for (const collectibleType of collectibleTypes) {
83
- const collectibleName = (0, collectibles_1.getCollectibleName)(collectibleType);
84
- (0, log_1.log)(`${i}) ${collectibleName} (${collectibleType})`);
52
+ const collectibleName = getCollectibleName(collectibleType);
53
+ log(`${i}) ${collectibleName} (${collectibleType})`);
85
54
  i++;
86
55
  }
87
56
  }
@@ -91,61 +60,61 @@ function logCollectibleTypes(collectibleTypes, name) {
91
60
  * @param color The `Color` object to log.
92
61
  * @param name Optional. The name of the object, which will be logged before the properties.
93
62
  */
94
- function logColor(color, name) {
63
+ export function logColor(color, name) {
95
64
  name ??= "color";
96
- (0, log_1.log)(`Logging ${name}: R${color.R}, G${color.G}, B${color.B}, A${color.A}, RO${color.RO}, BO${color.BO}, GO${color.GO}`);
65
+ log(`Logging ${name}: R${color.R}, G${color.G}, B${color.B}, A${color.A}, RO${color.RO}, BO${color.BO}, GO${color.GO}`);
97
66
  }
98
67
  /** Helper function to log every damage flag that is turned on. Useful when debugging. */
99
- function logDamageFlags(damageFlags) {
100
- logFlags(damageFlags, isaac_typescript_definitions_1.DamageFlag, "damage");
68
+ export function logDamageFlags(damageFlags) {
69
+ logFlags(damageFlags, DamageFlag, "damage");
101
70
  }
102
71
  /** Helper function to log every display flag that is turned on. Useful when debugging. */
103
- function logDisplayFlags(displayFlags) {
104
- logFlags(displayFlags, isaac_typescript_definitions_1.DisplayFlag, "display");
72
+ export function logDisplayFlags(displayFlags) {
73
+ logFlags(displayFlags, DisplayFlag, "display");
105
74
  }
106
75
  /** Helper function to log every entity flag that is turned on. Useful when debugging. */
107
- function logEntityFlags(entityFlags) {
108
- logFlags(entityFlags, isaac_typescript_definitions_1.EntityFlag, "entity");
76
+ export function logEntityFlags(entityFlags) {
77
+ logFlags(entityFlags, EntityFlag, "entity");
109
78
  }
110
- function logEntityID(entity) {
111
- const entityID = (0, entities_1.getEntityID)(entity);
112
- (0, log_1.log)(`Logging entity: ${entityID}`);
79
+ export function logEntityID(entity) {
80
+ const entityID = getEntityID(entity);
81
+ log(`Logging entity: ${entityID}`);
113
82
  }
114
83
  /** Helper function for logging every flag that is turned on. Useful when debugging. */
115
- function logFlags(flags, flagEnum, description = "") {
84
+ export function logFlags(flags, flagEnum, description = "") {
116
85
  if (description !== "") {
117
86
  description = "flag";
118
87
  }
119
88
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
120
- (0, log_1.log)(`Logging ${description} values for: ${flags}`);
89
+ log(`Logging ${description} values for: ${flags}`);
121
90
  let hasNoFlags = true;
122
- const entries = (0, enums_1.getEnumEntries)(flagEnum);
91
+ const entries = getEnumEntries(flagEnum);
123
92
  for (const [key, value] of entries) {
124
- if (!(0, flag_1.hasFlag)(flags, value)) {
93
+ if (!hasFlag(flags, value)) {
125
94
  continue;
126
95
  }
127
96
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
128
- (0, log_1.log)(` Has flag: ${key} (${value})`);
97
+ log(` Has flag: ${key} (${value})`);
129
98
  hasNoFlags = false;
130
99
  }
131
100
  if (hasNoFlags) {
132
- (0, log_1.log)(" n/a (no flags)");
101
+ log(" n/a (no flags)");
133
102
  }
134
103
  }
135
104
  /** Helper function for logging every game state flag that is turned on. Useful when debugging. */
136
- function logGameStateFlags() {
137
- (0, log_1.log)("Logging game state flags:");
138
- const gameStateFlagEntries = (0, enums_1.getEnumEntries)(isaac_typescript_definitions_1.GameStateFlag);
105
+ export function logGameStateFlags() {
106
+ log("Logging game state flags:");
107
+ const gameStateFlagEntries = getEnumEntries(GameStateFlag);
139
108
  let hasNoFlags = true;
140
109
  for (const [key, gameStateFlag] of gameStateFlagEntries) {
141
- const flagValue = cachedClasses_1.game.GetStateFlag(gameStateFlag);
110
+ const flagValue = game.GetStateFlag(gameStateFlag);
142
111
  if (flagValue) {
143
- (0, log_1.log)(` Has flag: ${key} (${gameStateFlag})`);
112
+ log(` Has flag: ${key} (${gameStateFlag})`);
144
113
  hasNoFlags = false;
145
114
  }
146
115
  }
147
116
  if (hasNoFlags) {
148
- (0, log_1.log)(" n/a (no flags)");
117
+ log(" n/a (no flags)");
149
118
  }
150
119
  }
151
120
  /**
@@ -154,13 +123,13 @@ function logGameStateFlags() {
154
123
  * @param itemPoolTypes The item pool types to log.
155
124
  * @param name Optional. The name of the array, which will be logged before the elements.
156
125
  */
157
- function logItemPoolTypes(itemPoolTypes, name) {
126
+ export function logItemPoolTypes(itemPoolTypes, name) {
158
127
  name ??= "item pool types";
159
- (0, log_1.log)(`Logging ${name}:`);
128
+ log(`Logging ${name}:`);
160
129
  let i = 1;
161
130
  for (const itemPoolType of itemPoolTypes) {
162
- const itemPoolName = (0, itemPool_1.getItemPoolName)(itemPoolType);
163
- (0, log_1.log)(`${i}) ${itemPoolName} (${itemPoolType})`);
131
+ const itemPoolName = getItemPoolName(itemPoolType);
132
+ log(`${i}) ${itemPoolName} (${itemPoolType})`);
164
133
  i++;
165
134
  }
166
135
  }
@@ -170,25 +139,25 @@ function logItemPoolTypes(itemPoolTypes, name) {
170
139
  * @param kColor The `KColor` object to log.
171
140
  * @param name Optional. The name of the object, which will be logged before the properties.
172
141
  */
173
- function logKColor(kColor, name) {
142
+ export function logKColor(kColor, name) {
174
143
  name ??= "KColor";
175
- (0, log_1.log)(`Logging ${name}: R${kColor.Red}, G${kColor.Green}, B${kColor.Blue}, A${kColor.Alpha}`);
144
+ log(`Logging ${name}: R${kColor.Red}, G${kColor.Green}, B${kColor.Blue}, A${kColor.Alpha}`);
176
145
  }
177
146
  /** Helper function for logging every level state flag that is turned on. Useful when debugging. */
178
- function logLevelStateFlags() {
179
- const level = cachedClasses_1.game.GetLevel();
180
- const levelStateFlagEntries = (0, enums_1.getEnumEntries)(isaac_typescript_definitions_1.LevelStateFlag);
181
- (0, log_1.log)("Logging level state flags:");
147
+ export function logLevelStateFlags() {
148
+ const level = game.GetLevel();
149
+ const levelStateFlagEntries = getEnumEntries(LevelStateFlag);
150
+ log("Logging level state flags:");
182
151
  let hasNoFlags = true;
183
152
  for (const [key, levelStateFlag] of levelStateFlagEntries) {
184
153
  const flagValue = level.GetStateFlag(levelStateFlag);
185
154
  if (flagValue) {
186
- (0, log_1.log)(` Has flag: ${key} (${levelStateFlag})`);
155
+ log(` Has flag: ${key} (${levelStateFlag})`);
187
156
  hasNoFlags = false;
188
157
  }
189
158
  }
190
159
  if (hasNoFlags) {
191
- (0, log_1.log)(" n/a (no flags)");
160
+ log(" n/a (no flags)");
192
161
  }
193
162
  }
194
163
  /**
@@ -197,121 +166,121 @@ function logLevelStateFlags() {
197
166
  * @param map The TSTL `Map` to log.
198
167
  * @param name Optional. The name of the map, which will be logged before the elements.
199
168
  */
200
- function logMap(map, name) {
201
- if (!(0, tstlClass_1.isTSTLMap)(map) && !(0, tstlClass_1.isDefaultMap)(map)) {
202
- (0, log_1.log)("Tried to log a TSTL map, but the given object was not a TSTL map.");
169
+ export function logMap(map, name) {
170
+ if (!isTSTLMap(map) && !isDefaultMap(map)) {
171
+ log("Tried to log a TSTL map, but the given object was not a TSTL map.");
203
172
  return;
204
173
  }
205
174
  const suffix = name === undefined ? "" : ` "${name}"`;
206
- (0, log_1.log)(`Logging a TSTL map${suffix}:`);
175
+ log(`Logging a TSTL map${suffix}:`);
207
176
  const mapKeys = [...map.keys()];
208
- mapKeys.sort(sort_1.sortNormal);
177
+ mapKeys.sort(sortNormal);
209
178
  for (const key of mapKeys) {
210
179
  const value = map.get(key);
211
- (0, log_1.log)(` ${key} --> ${value}`);
180
+ log(` ${key} --> ${value}`);
212
181
  }
213
- (0, log_1.log)(` The size of the map was: ${map.size}`);
182
+ log(` The size of the map was: ${map.size}`);
214
183
  }
215
- function logMusic() {
216
- const currentMusic = cachedClasses_1.musicManager.GetCurrentMusicID();
217
- (0, log_1.log)(`Currently playing music track: ${isaac_typescript_definitions_1.Music[currentMusic]} (${currentMusic})`);
184
+ export function logMusic() {
185
+ const currentMusic = musicManager.GetCurrentMusicID();
186
+ log(`Currently playing music track: ${Music[currentMusic]} (${currentMusic})`);
218
187
  }
219
- function logPlayerEffects(player) {
220
- const effects = (0, playerEffects_1.getEffectsList)(player);
221
- (0, log_1.log)("Logging player effects:");
188
+ export function logPlayerEffects(player) {
189
+ const effects = getEffectsList(player);
190
+ log("Logging player effects:");
222
191
  if (effects.length === 0) {
223
- (0, log_1.log)(" n/a (no effects)");
192
+ log(" n/a (no effects)");
224
193
  return;
225
194
  }
226
195
  for (const [i, effect] of effects.entries()) {
227
196
  let effectDescription;
228
197
  if (effect.Item.IsCollectible()) {
229
- const collectibleName = (0, collectibles_1.getCollectibleName)(effect.Item.ID);
198
+ const collectibleName = getCollectibleName(effect.Item.ID);
230
199
  effectDescription = `Collectible: ${collectibleName}`;
231
200
  }
232
201
  else if (effect.Item.IsTrinket()) {
233
- const trinketName = (0, trinkets_1.getTrinketName)(effect.Item.ID);
202
+ const trinketName = getTrinketName(effect.Item.ID);
234
203
  effectDescription = `Trinket: ${trinketName}`;
235
204
  }
236
205
  else if (effect.Item.IsNull()) {
237
- const nullItemName = isaac_typescript_definitions_1.NullItemID[effect.Item.ID];
206
+ const nullItemName = NullItemID[effect.Item.ID];
238
207
  effectDescription = `Null item: ${nullItemName}`;
239
208
  }
240
209
  else {
241
210
  effectDescription = `Unknown type of effect: ${effect.Item.ID}`;
242
211
  }
243
- (0, log_1.log)(` ${i + 1}) ${effectDescription} (${effect.Item.ID}) x${effect.Count}`);
212
+ log(` ${i + 1}) ${effectDescription} (${effect.Item.ID}) x${effect.Count}`);
244
213
  }
245
214
  }
246
- function logPlayerHealth(player) {
247
- const playerName = (0, players_1.getPlayerName)(player);
248
- const playerHealth = (0, playerHealth_1.getPlayerHealth)(player);
249
- (0, log_1.log)(`Player health for ${playerName}:`);
250
- (0, log_1.log)(` Max hearts: ${playerHealth.maxHearts}`);
251
- (0, log_1.log)(` Hearts: ${playerHealth.hearts}`);
252
- (0, log_1.log)(` Eternal hearts: ${playerHealth.eternalHearts}`);
253
- (0, log_1.log)(` Soul hearts: ${playerHealth.soulHearts}`);
254
- (0, log_1.log)(` Bone hearts: ${playerHealth.boneHearts}`);
255
- (0, log_1.log)(` Golden hearts: ${playerHealth.goldenHearts}`);
256
- (0, log_1.log)(` Rotten hearts: ${playerHealth.rottenHearts}`);
257
- (0, log_1.log)(` Broken hearts: ${playerHealth.brokenHearts}`);
258
- (0, log_1.log)(` Soul charges: ${playerHealth.soulCharges}`);
259
- (0, log_1.log)(` Blood charges: ${playerHealth.bloodCharges}`);
260
- (0, log_1.log)(" Soul heart types: [");
215
+ export function logPlayerHealth(player) {
216
+ const playerName = getPlayerName(player);
217
+ const playerHealth = getPlayerHealth(player);
218
+ log(`Player health for ${playerName}:`);
219
+ log(` Max hearts: ${playerHealth.maxHearts}`);
220
+ log(` Hearts: ${playerHealth.hearts}`);
221
+ log(` Eternal hearts: ${playerHealth.eternalHearts}`);
222
+ log(` Soul hearts: ${playerHealth.soulHearts}`);
223
+ log(` Bone hearts: ${playerHealth.boneHearts}`);
224
+ log(` Golden hearts: ${playerHealth.goldenHearts}`);
225
+ log(` Rotten hearts: ${playerHealth.rottenHearts}`);
226
+ log(` Broken hearts: ${playerHealth.brokenHearts}`);
227
+ log(` Soul charges: ${playerHealth.soulCharges}`);
228
+ log(` Blood charges: ${playerHealth.bloodCharges}`);
229
+ log(" Soul heart types: [");
261
230
  for (const soulHeartType of playerHealth.soulHeartTypes) {
262
- (0, log_1.log)(` HeartSubType.${isaac_typescript_definitions_1.HeartSubType[soulHeartType]}`);
231
+ log(` HeartSubType.${HeartSubType[soulHeartType]}`);
263
232
  }
264
- (0, log_1.log)(" ]");
233
+ log(" ]");
265
234
  }
266
235
  /** Helper function for logging every projectile flag that is turned on. Useful when debugging. */
267
- function logProjectileFlags(projectileFlags) {
268
- logFlags(projectileFlags, isaac_typescript_definitions_1.ProjectileFlag, "projectile");
236
+ export function logProjectileFlags(projectileFlags) {
237
+ logFlags(projectileFlags, ProjectileFlag, "projectile");
269
238
  }
270
239
  /** Helper function for logging information about the current room. */
271
- function logRoom() {
272
- const bossID = (0, bosses_1.getBossID)();
273
- const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
274
- const roomListIndex = (0, roomData_1.getRoomListIndex)();
275
- const roomData = (0, roomData_1.getRoomData)();
276
- (0, log_1.log)("Logging room information:");
277
- (0, log_1.log)(`- Room stage ID: ${isaac_typescript_definitions_1.StageID[roomData.StageID]} (roomData.StageID)`);
278
- (0, log_1.log)(`- Room type: ${isaac_typescript_definitions_1.RoomType[roomData.Type]} (${roomData.Type})`);
279
- (0, log_1.log)(`- Variant: ${roomData.Variant}`);
280
- (0, log_1.log)(`- Sub-type: ${roomData.Subtype}`);
281
- (0, log_1.log)(`- Name: ${roomData.Name}`);
282
- const roomGridIndexName = isaac_typescript_definitions_1.GridRoom[roomGridIndex];
240
+ export function logRoom() {
241
+ const bossID = getBossID();
242
+ const roomGridIndex = getRoomGridIndex();
243
+ const roomListIndex = getRoomListIndex();
244
+ const roomData = getRoomData();
245
+ log("Logging room information:");
246
+ log(`- Room stage ID: ${StageID[roomData.StageID]} (roomData.StageID)`);
247
+ log(`- Room type: ${RoomType[roomData.Type]} (${roomData.Type})`);
248
+ log(`- Variant: ${roomData.Variant}`);
249
+ log(`- Sub-type: ${roomData.Subtype}`);
250
+ log(`- Name: ${roomData.Name}`);
251
+ const roomGridIndexName = GridRoom[roomGridIndex];
283
252
  if (roomGridIndexName === undefined) {
284
- (0, log_1.log)(`- Grid index: ${roomGridIndex}`);
253
+ log(`- Grid index: ${roomGridIndex}`);
285
254
  }
286
255
  else {
287
- (0, log_1.log)(`- Grid index: ${roomGridIndexName} (${roomGridIndex})`);
256
+ log(`- Grid index: ${roomGridIndexName} (${roomGridIndex})`);
288
257
  }
289
- (0, log_1.log)(`- List index: ${roomListIndex}`);
258
+ log(`- List index: ${roomListIndex}`);
290
259
  if (bossID === undefined) {
291
- (0, log_1.log)("- Boss ID: undefined");
260
+ log("- Boss ID: undefined");
292
261
  }
293
262
  else {
294
- (0, log_1.log)(`- Boss ID: ${isaac_typescript_definitions_1.BossID[bossID]} (${bossID})`);
263
+ log(`- Boss ID: ${BossID[bossID]} (${bossID})`);
295
264
  }
296
265
  }
297
266
  /**
298
267
  * Helper function for logging every seed effect (i.e. Easter Egg) that is turned on for the
299
268
  * particular run.
300
269
  */
301
- function logSeedEffects() {
302
- const seeds = cachedClasses_1.game.GetSeeds();
303
- const seedEffectEntries = (0, enums_1.getEnumEntries)(isaac_typescript_definitions_1.SeedEffect);
304
- (0, log_1.log)("Logging seed effects:");
270
+ export function logSeedEffects() {
271
+ const seeds = game.GetSeeds();
272
+ const seedEffectEntries = getEnumEntries(SeedEffect);
273
+ log("Logging seed effects:");
305
274
  let hasNoSeedEffects = true;
306
275
  for (const [key, seedEffect] of seedEffectEntries) {
307
276
  if (!seeds.HasSeedEffect(seedEffect)) {
308
277
  continue;
309
278
  }
310
- (0, log_1.log)(` ${key} (${seedEffect})`);
279
+ log(` ${key} (${seedEffect})`);
311
280
  hasNoSeedEffects = false;
312
281
  }
313
282
  if (hasNoSeedEffects) {
314
- (0, log_1.log)(" n/a (no seed effects)");
283
+ log(" n/a (no seed effects)");
315
284
  }
316
285
  }
317
286
  /**
@@ -320,25 +289,25 @@ function logSeedEffects() {
320
289
  * @param set The TSTL `Set` to log.
321
290
  * @param name Optional. The name of the set, which will be logged before the elements.
322
291
  */
323
- function logSet(set, name) {
324
- if (!(0, tstlClass_1.isTSTLSet)(set)) {
325
- (0, log_1.log)("Tried to log a TSTL set, but the given object was not a TSTL set.");
292
+ export function logSet(set, name) {
293
+ if (!isTSTLSet(set)) {
294
+ log("Tried to log a TSTL set, but the given object was not a TSTL set.");
326
295
  return;
327
296
  }
328
297
  const suffix = name === undefined ? "" : ` "${name}"`;
329
- (0, log_1.log)(`Logging a TSTL set${suffix}:`);
330
- const values = (0, set_1.getSortedSetValues)(set);
298
+ log(`Logging a TSTL set${suffix}:`);
299
+ const values = getSortedSetValues(set);
331
300
  for (const value of values) {
332
- (0, log_1.log)(` Value: ${value}`);
301
+ log(` Value: ${value}`);
333
302
  }
334
- (0, log_1.log)(` The size of the set was: ${set.size}`);
303
+ log(` The size of the set was: ${set.size}`);
335
304
  }
336
305
  /** Helper function for logging every sound effect that is currently playing. */
337
- function logSounds() {
338
- const soundEffects = (0, enums_1.getEnumEntries)(isaac_typescript_definitions_1.SoundEffect);
306
+ export function logSounds() {
307
+ const soundEffects = getEnumEntries(SoundEffect);
339
308
  for (const [key, soundEffect] of soundEffects) {
340
- if (cachedClasses_1.sfxManager.IsPlaying(soundEffect)) {
341
- (0, log_1.log)(`Currently playing sound effect: ${key} (${soundEffect})`);
309
+ if (sfxManager.IsPlaying(soundEffect)) {
310
+ log(`Currently playing sound effect: ${key} (${soundEffect})`);
342
311
  }
343
312
  }
344
313
  }
@@ -352,26 +321,26 @@ function logSounds() {
352
321
  * In order to prevent infinite recursion, this function will not log a sub-table when there are 10
353
322
  * or more parent tables.
354
323
  */
355
- function logTable(luaTable, parentTables = 0) {
324
+ export function logTable(luaTable, parentTables = 0) {
356
325
  if (parentTables === 0) {
357
- (0, log_1.log)("Logging a Lua table:", false);
326
+ log("Logging a Lua table:", false);
358
327
  }
359
328
  else if (parentTables > 10) {
360
329
  return;
361
330
  }
362
331
  const numSpaces = (parentTables + 1) * 2; // 2, 4, 6, etc.
363
332
  const indentation = " ".repeat(numSpaces);
364
- if (!(0, types_1.isTable)(luaTable)) {
365
- (0, log_1.log)(`${indentation}n/a (encountered a variable of type "${typeof luaTable}" instead of a table)`, false);
333
+ if (!isTable(luaTable)) {
334
+ log(`${indentation}n/a (encountered a variable of type "${typeof luaTable}" instead of a table)`, false);
366
335
  return;
367
336
  }
368
337
  let numElements = 0;
369
- (0, table_1.iterateTableInOrder)(luaTable, (key, value) => {
338
+ iterateTableInOrder(luaTable, (key, value) => {
370
339
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
371
- (0, log_1.log)(`${indentation}${key} --> ${value}`, false);
372
- if ((0, types_1.isTable)(value)) {
340
+ log(`${indentation}${key} --> ${value}`, false);
341
+ if (isTable(value)) {
373
342
  if (key === "__class") {
374
- (0, log_1.log)(`${indentation} (skipping enumerating this key to avoid infinite recursion)`, false);
343
+ log(`${indentation} (skipping enumerating this key to avoid infinite recursion)`, false);
375
344
  }
376
345
  else {
377
346
  logTable(value, parentTables + 1);
@@ -379,19 +348,19 @@ function logTable(luaTable, parentTables = 0) {
379
348
  }
380
349
  numElements++;
381
350
  });
382
- (0, log_1.log)(`${indentation}The size of the table was: ${numElements}`, false);
351
+ log(`${indentation}The size of the table was: ${numElements}`, false);
383
352
  }
384
353
  /**
385
354
  * Helper function to log the differences between the entries of two tables. Note that this will
386
355
  * only do a shallow comparison.
387
356
  */
388
- function logTableDifferences(table1, table2) {
389
- (0, log_1.log)("Comparing two Lua tables:");
357
+ export function logTableDifferences(table1, table2) {
358
+ log("Comparing two Lua tables:");
390
359
  const table1Keys = Object.keys(table1);
391
- const table1KeysSet = new ReadonlySet_1.ReadonlySet(table1Keys);
360
+ const table1KeysSet = new ReadonlySet(table1Keys);
392
361
  const table2Keys = Object.keys(table2);
393
- const table2KeysSet = new ReadonlySet_1.ReadonlySet(table2Keys);
394
- const keysSet = (0, set_1.combineSets)(table1KeysSet, table2KeysSet);
362
+ const table2KeysSet = new ReadonlySet(table2Keys);
363
+ const keysSet = combineSets(table1KeysSet, table2KeysSet);
395
364
  const keys = [...keysSet];
396
365
  keys.sort(); // eslint-disable-line @typescript-eslint/require-array-sort-compare
397
366
  for (const key of keys) {
@@ -399,15 +368,15 @@ function logTableDifferences(table1, table2) {
399
368
  const value2 = table2.get(key);
400
369
  if (value1 === undefined) {
401
370
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
402
- (0, log_1.log)(` Table 1 is missing key: ${key}`);
371
+ log(` Table 1 is missing key: ${key}`);
403
372
  }
404
373
  if (value2 === undefined) {
405
374
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
406
- (0, log_1.log)(` Table 2 is missing key: ${key}`);
375
+ log(` Table 2 is missing key: ${key}`);
407
376
  }
408
377
  if (value1 !== value2) {
409
378
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
410
- (0, log_1.log)(` ${key} --> "${value1}" versus "${value2}"`);
379
+ log(` ${key} --> "${value1}" versus "${value2}"`);
411
380
  }
412
381
  }
413
382
  }
@@ -417,19 +386,19 @@ function logTableDifferences(table1, table2) {
417
386
  *
418
387
  * This function is useful for tables that have recursive references.
419
388
  */
420
- function logTableKeys(luaTable) {
421
- (0, log_1.log)("Logging the keys of a Lua table:");
422
- if (!(0, types_1.isTable)(luaTable)) {
423
- (0, log_1.log)(` n/a (encountered a variable of type "${typeof luaTable}" instead of a table)`);
389
+ export function logTableKeys(luaTable) {
390
+ log("Logging the keys of a Lua table:");
391
+ if (!isTable(luaTable)) {
392
+ log(` n/a (encountered a variable of type "${typeof luaTable}" instead of a table)`);
424
393
  return;
425
394
  }
426
395
  let numElements = 0;
427
- (0, table_1.iterateTableInOrder)(luaTable, (key) => {
396
+ iterateTableInOrder(luaTable, (key) => {
428
397
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
429
- (0, log_1.log)(String(key));
398
+ log(String(key));
430
399
  numElements++;
431
400
  });
432
- (0, log_1.log)(` The size of the table was: ${numElements}`);
401
+ log(` The size of the table was: ${numElements}`);
433
402
  }
434
403
  /**
435
404
  * Helper function to log every table key and value. This is a shallow log; the function will not
@@ -438,49 +407,49 @@ function logTableKeys(luaTable) {
438
407
  * This function will only work on tables that have string keys (because it logs the keys in order,
439
408
  * instead of randomly). It will throw a run-time error if it encounters a non-string key.
440
409
  */
441
- function logTableShallow(luaTable) {
442
- (0, log_1.log)("Logging a Lua table (shallow):", false);
443
- if (!(0, types_1.isTable)(luaTable)) {
444
- (0, log_1.log)(`n/a (encountered a variable of type "${typeof luaTable}" instead of a table)`, false);
410
+ export function logTableShallow(luaTable) {
411
+ log("Logging a Lua table (shallow):", false);
412
+ if (!isTable(luaTable)) {
413
+ log(`n/a (encountered a variable of type "${typeof luaTable}" instead of a table)`, false);
445
414
  return;
446
415
  }
447
416
  let numElements = 0;
448
417
  const indentation = " ";
449
- (0, table_1.iterateTableInOrder)(luaTable, (key, value) => {
418
+ iterateTableInOrder(luaTable, (key, value) => {
450
419
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
451
- (0, log_1.log)(`${indentation}${key} --> ${value}`, false);
420
+ log(`${indentation}${key} --> ${value}`, false);
452
421
  numElements++;
453
422
  });
454
- (0, log_1.log)(`${indentation}The size of the table was: ${numElements}`, false);
423
+ log(`${indentation}The size of the table was: ${numElements}`, false);
455
424
  }
456
425
  /** Helper function for log every tear flag that is turned on. Useful when debugging. */
457
- function logTearFlags(tearFlags) {
458
- logFlags(tearFlags, isaac_typescript_definitions_1.TearFlag, "tear");
426
+ export function logTearFlags(tearFlags) {
427
+ logFlags(tearFlags, TearFlag, "tear");
459
428
  }
460
429
  /** Helper function for printing out every use flag that is turned on. Useful when debugging. */
461
- function logUseFlags(useFlags) {
462
- logFlags(useFlags, isaac_typescript_definitions_1.UseFlag, "use");
430
+ export function logUseFlags(useFlags) {
431
+ logFlags(useFlags, UseFlag, "use");
463
432
  }
464
433
  /**
465
434
  * Helper function to enumerate all of the properties of a "userdata" object (i.e. an object from
466
435
  * the Isaac API).
467
436
  */
468
- function logUserdata(userdata) {
469
- if (!(0, types_1.isUserdata)(userdata)) {
470
- (0, log_1.log)("Userdata: [not userdata]");
437
+ export function logUserdata(userdata) {
438
+ if (!isUserdata(userdata)) {
439
+ log("Userdata: [not userdata]");
471
440
  return;
472
441
  }
473
442
  const metatable = getmetatable(userdata);
474
443
  if (metatable === undefined) {
475
- (0, log_1.log)("Userdata: [no metatable]");
444
+ log("Userdata: [no metatable]");
476
445
  return;
477
446
  }
478
- const classType = (0, isaacAPIClass_1.getIsaacAPIClassName)(userdata);
447
+ const classType = getIsaacAPIClassName(userdata);
479
448
  if (classType === undefined) {
480
- (0, log_1.log)("Userdata: [no class type]");
449
+ log("Userdata: [no class type]");
481
450
  }
482
451
  else {
483
- (0, log_1.log)(`Userdata: ${classType}`);
452
+ log(`Userdata: ${classType}`);
484
453
  }
485
454
  logTable(metatable);
486
455
  }
@@ -492,8 +461,8 @@ function logUserdata(userdata) {
492
461
  * @param round Optional. If true, will round the vector values to the nearest integer. Default is
493
462
  * false.
494
463
  */
495
- function logVector(vector, name, round = false) {
464
+ export function logVector(vector, name, round = false) {
496
465
  name ??= "vector";
497
- const vectorString = (0, vector_1.vectorToString)(vector, round);
498
- (0, log_1.log)(`Logging ${name}: ${vectorString}`);
466
+ const vectorString = vectorToString(vector, round);
467
+ log(`Logging ${name}: ${vectorString}`);
499
468
  }