isaacscript-common 87.9.7 → 87.9.8

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 (563) 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/indexLua.js +151 -167
  387. package/dist/interfaces/ChargeBarSprites.js +1 -2
  388. package/dist/interfaces/Corner.js +1 -2
  389. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  390. package/dist/interfaces/GridEntityCustomData.js +1 -2
  391. package/dist/interfaces/JSONRoomsFile.js +1 -2
  392. package/dist/interfaces/PlayerHealth.js +1 -2
  393. package/dist/interfaces/PlayerStats.js +2 -4
  394. package/dist/interfaces/PocketItemDescription.js +1 -2
  395. package/dist/interfaces/RoomDescription.js +1 -2
  396. package/dist/interfaces/SaveData.js +1 -2
  397. package/dist/interfaces/StageHistoryEntry.js +1 -2
  398. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  399. package/dist/interfaces/TrinketSituation.js +1 -2
  400. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  401. package/dist/interfaces/private/CustomStage.js +1 -2
  402. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  403. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  404. package/dist/isaacscript-common.lua +1 -1
  405. package/dist/maps/PHDPillConversionsMap.js +19 -22
  406. package/dist/maps/cardNameToTypeMap.js +205 -208
  407. package/dist/maps/characterNameToTypeMap.js +85 -88
  408. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  409. package/dist/maps/defaultPlayerStatMap.js +10 -13
  410. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  411. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  412. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  413. package/dist/maps/gridEntityXMLMap.js +52 -55
  414. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  415. package/dist/maps/keyboardToStringMap.js +66 -69
  416. package/dist/maps/pillNameToEffectMap.js +83 -86
  417. package/dist/maps/roomNameToTypeMap.js +38 -41
  418. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  419. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  420. package/dist/maps/trinketNameToTypeMap.js +5 -8
  421. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  422. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  423. package/dist/objects/batteryNames.js +8 -11
  424. package/dist/objects/bombNames.js +11 -14
  425. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  426. package/dist/objects/bossNamePNGFileNames.js +104 -107
  427. package/dist/objects/bossNames.js +105 -108
  428. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  429. package/dist/objects/cardDescriptions.js +101 -104
  430. package/dist/objects/cardNames.js +101 -104
  431. package/dist/objects/challengeBosses.js +49 -52
  432. package/dist/objects/challengeCharacters.js +49 -52
  433. package/dist/objects/challengeCollectibleTypes.js +160 -163
  434. package/dist/objects/challengeNames.js +49 -52
  435. package/dist/objects/challengeTrinketType.js +48 -51
  436. package/dist/objects/characterDamageMultipliers.js +44 -47
  437. package/dist/objects/characterNames.js +44 -47
  438. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  439. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  440. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  441. package/dist/objects/chestNames.js +15 -18
  442. package/dist/objects/coinNames.js +11 -14
  443. package/dist/objects/coinSubTypeToValue.js +11 -14
  444. package/dist/objects/collectibleDescriptions.js +725 -728
  445. package/dist/objects/collectibleNames.js +725 -728
  446. package/dist/objects/colors.js +1 -4
  447. package/dist/objects/directionNames.js +7 -10
  448. package/dist/objects/directionToDegrees.js +7 -10
  449. package/dist/objects/directionToMoveAction.js +7 -10
  450. package/dist/objects/directionToShootAction.js +7 -10
  451. package/dist/objects/directionToVector.js +9 -12
  452. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  453. package/dist/objects/doorSlotToDirection.js +11 -14
  454. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  455. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  456. package/dist/objects/heartNames.js +16 -19
  457. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  458. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  459. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  460. package/dist/objects/kColors.js +1 -4
  461. package/dist/objects/keyNames.js +8 -11
  462. package/dist/objects/languageNames.js +9 -12
  463. package/dist/objects/oppositeDoorSlots.js +11 -14
  464. package/dist/objects/pillEffectClasses.js +53 -56
  465. package/dist/objects/pillEffectNames.js +53 -56
  466. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  467. package/dist/objects/pillEffectTypes.js +53 -56
  468. package/dist/objects/playerNamePNGFileNames.js +44 -47
  469. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  470. package/dist/objects/roomShapeBounds.js +23 -26
  471. package/dist/objects/roomShapeCorners.js +128 -131
  472. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  473. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  474. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  475. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  476. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  477. package/dist/objects/roomShapeToGridWidth.js +14 -17
  478. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  479. package/dist/objects/roomShapeVolumes.js +21 -24
  480. package/dist/objects/roomTypeNames.js +32 -35
  481. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  482. package/dist/objects/sackNames.js +6 -9
  483. package/dist/objects/slotNames.js +21 -24
  484. package/dist/objects/stageIDNames.js +33 -36
  485. package/dist/objects/stageToMusic.js +69 -72
  486. package/dist/objects/stageToStageID.js +90 -93
  487. package/dist/objects/stageTypeSuffixes.js +8 -11
  488. package/dist/objects/transformationNames.js +16 -19
  489. package/dist/objects/trinketDescriptions.js +192 -195
  490. package/dist/objects/trinketNames.js +192 -195
  491. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  492. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  493. package/dist/patchErrorFunctions.js +4 -7
  494. package/dist/serialization.js +6 -9
  495. package/dist/sets/LRoomShapesSet.js +7 -10
  496. package/dist/sets/bigRoomShapesSet.js +10 -13
  497. package/dist/sets/bossSets.js +261 -264
  498. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  499. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  500. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  501. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  502. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  503. package/dist/sets/consoleCommandsSet.js +2 -5
  504. package/dist/sets/entitiesWithArmorSet.js +44 -47
  505. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  506. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  507. package/dist/sets/lostStyleCharactersSet.js +8 -11
  508. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  509. package/dist/sets/narrowRoomShapesSet.js +7 -10
  510. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  511. package/dist/sets/redHeartSubTypesSet.js +6 -9
  512. package/dist/sets/repentanceBossIDsSet.js +26 -29
  513. package/dist/sets/sinEntityTypesSet.js +10 -13
  514. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  515. package/dist/shaderCrashFix.js +4 -7
  516. package/dist/shouldFire.js +28 -58
  517. package/dist/types/AddSubtract.js +1 -2
  518. package/dist/types/AllButFirst.js +1 -2
  519. package/dist/types/AllButLast.js +1 -2
  520. package/dist/types/AnyClass.js +1 -2
  521. package/dist/types/AnyEntity.js +1 -2
  522. package/dist/types/AnyFunction.js +1 -2
  523. package/dist/types/AnyGridEntity.js +1 -2
  524. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  525. package/dist/types/ConversionHeartSubType.js +1 -2
  526. package/dist/types/Decrement.js +1 -2
  527. package/dist/types/ERange.js +1 -2
  528. package/dist/types/EntityID.js +1 -2
  529. package/dist/types/FunctionTuple.js +1 -2
  530. package/dist/types/GridEntityID.js +1 -2
  531. package/dist/types/HasFunction.js +1 -2
  532. package/dist/types/IRange.js +1 -2
  533. package/dist/types/Immutable.js +1 -2
  534. package/dist/types/Increment.js +1 -2
  535. package/dist/types/LowercaseKeys.js +1 -2
  536. package/dist/types/NaturalNumbersLessThan.js +1 -2
  537. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  538. package/dist/types/ObjectValues.js +1 -2
  539. package/dist/types/PickingUpItem.js +15 -22
  540. package/dist/types/PickupIndex.js +1 -2
  541. package/dist/types/PlayerIndex.js +1 -2
  542. package/dist/types/PossibleStatType.js +1 -2
  543. package/dist/types/PublicInterface.js +1 -2
  544. package/dist/types/ReadonlyMap.js +1 -4
  545. package/dist/types/ReadonlyRecord.js +1 -2
  546. package/dist/types/ReadonlySet.js +1 -4
  547. package/dist/types/StartsWithLowercase.js +1 -2
  548. package/dist/types/StartsWithUppercase.js +1 -2
  549. package/dist/types/TSTLClass.js +1 -2
  550. package/dist/types/Tuple.js +1 -2
  551. package/dist/types/TupleKeys.js +1 -2
  552. package/dist/types/TupleToIntersection.js +1 -2
  553. package/dist/types/TupleToUnion.js +1 -2
  554. package/dist/types/TupleWithLengthBetween.js +1 -2
  555. package/dist/types/TupleWithMaxLength.js +1 -2
  556. package/dist/types/UnionToIntersection.js +1 -2
  557. package/dist/types/UppercaseKeys.js +1 -2
  558. package/dist/types/WeightedArray.js +1 -2
  559. package/dist/types/WidenLiteral.js +1 -2
  560. package/dist/types/Writable.js +1 -2
  561. package/dist/types/private/CallbackTuple.js +1 -2
  562. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  563. package/package.json +3 -3
@@ -1,24 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.copyRNG = copyRNG;
4
- exports.deserializeRNG = deserializeRNG;
5
- exports.getRandomSeed = getRandomSeed;
6
- exports.isRNG = isRNG;
7
- exports.isSerializedRNG = isSerializedRNG;
8
- exports.newRNG = newRNG;
9
- exports.rngEquals = rngEquals;
10
- exports.serializeRNG = serializeRNG;
11
- exports.setAllRNGToSeed = setAllRNGToSeed;
12
- exports.setAllRNGToStartSeed = setAllRNGToStartSeed;
13
- exports.setSeed = setSeed;
14
- const cachedClasses_1 = require("../core/cachedClasses");
15
- const SerializationBrand_1 = require("../enums/private/SerializationBrand");
16
- const debugFunctions_1 = require("./debugFunctions");
17
- const isaacAPIClass_1 = require("./isaacAPIClass");
18
- const log_1 = require("./log");
19
- const table_1 = require("./table");
20
- const types_1 = require("./types");
21
- const utils_1 = require("./utils");
1
+ import { game } from "../core/cachedClasses";
2
+ import { SerializationBrand } from "../enums/private/SerializationBrand";
3
+ import { traceback } from "./debugFunctions";
4
+ import { isaacAPIClassEquals, isIsaacAPIClassOfType } from "./isaacAPIClass";
5
+ import { logError } from "./log";
6
+ import { getNumbersFromTable, tableHasKeys } from "./table";
7
+ import { isTable } from "./types";
8
+ import { assertDefined } from "./utils";
22
9
  /**
23
10
  * This is the ShiftIdx that Blade recommended after having reviewing the game's internal functions.
24
11
  * Any value between 0 and 80 should work equally well.
@@ -29,7 +16,7 @@ const RECOMMENDED_SHIFT_IDX = 35;
29
16
  const OBJECT_NAME = "RNG";
30
17
  const KEYS = ["seed"];
31
18
  /** Helper function to copy an `RNG` Isaac API class. */
32
- function copyRNG(rng) {
19
+ export function copyRNG(rng) {
33
20
  if (!isRNG(rng)) {
34
21
  error(`Failed to copy a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
35
22
  }
@@ -40,12 +27,12 @@ function copyRNG(rng) {
40
27
  * Helper function to convert a `SerializedRNG` object to a normal `RNG` object. (This is used by
41
28
  * the save data manager when reading data from the "save#.dat" file.)
42
29
  */
43
- function deserializeRNG(rng) {
44
- if (!(0, types_1.isTable)(rng)) {
30
+ export function deserializeRNG(rng) {
31
+ if (!isTable(rng)) {
45
32
  error(`Failed to deserialize a ${OBJECT_NAME} object since the provided object was not a Lua table.`);
46
33
  }
47
- const [seed] = (0, table_1.getNumbersFromTable)(rng, OBJECT_NAME, ...KEYS);
48
- (0, utils_1.assertDefined)(seed, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: seed`);
34
+ const [seed] = getNumbersFromTable(rng, OBJECT_NAME, ...KEYS);
35
+ assertDefined(seed, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: seed`);
49
36
  return newRNG(seed);
50
37
  }
51
38
  /**
@@ -53,58 +40,58 @@ function deserializeRNG(rng) {
53
40
  * instead of calling the `Random` function directly since that can return a value of 0 and crash
54
41
  * the game.
55
42
  */
56
- function getRandomSeed() {
43
+ export function getRandomSeed() {
57
44
  const randomNumber = Random(); // eslint-disable-line @typescript-eslint/no-deprecated
58
45
  const safeRandomNumber = randomNumber === 0 ? 1 : randomNumber;
59
46
  return safeRandomNumber;
60
47
  }
61
48
  /** Helper function to check if something is an instantiated `RNG` object. */
62
- function isRNG(object) {
63
- return (0, isaacAPIClass_1.isIsaacAPIClassOfType)(object, OBJECT_NAME);
49
+ export function isRNG(object) {
50
+ return isIsaacAPIClassOfType(object, OBJECT_NAME);
64
51
  }
65
52
  /**
66
53
  * Used to determine is the given table is a serialized `RNG` object created by the `deepCopy`
67
54
  * function.
68
55
  */
69
- function isSerializedRNG(object) {
70
- if (!(0, types_1.isTable)(object)) {
56
+ export function isSerializedRNG(object) {
57
+ if (!isTable(object)) {
71
58
  return false;
72
59
  }
73
- return (0, table_1.tableHasKeys)(object, ...KEYS) && object.has(SerializationBrand_1.SerializationBrand.RNG);
60
+ return tableHasKeys(object, ...KEYS) && object.has(SerializationBrand.RNG);
74
61
  }
75
62
  /**
76
63
  * Helper function to initialize a new RNG object using Blade's recommended shift index.
77
64
  *
78
65
  * @param seed Optional. The seed to initialize it with. Default is a random seed.
79
66
  */
80
- function newRNG(seed = getRandomSeed()) {
67
+ export function newRNG(seed = getRandomSeed()) {
81
68
  const rng = RNG();
82
69
  setSeed(rng, seed);
83
70
  return rng;
84
71
  }
85
- function rngEquals(rng1, rng2) {
86
- return (0, isaacAPIClass_1.isaacAPIClassEquals)(rng1, rng2, KEYS);
72
+ export function rngEquals(rng1, rng2) {
73
+ return isaacAPIClassEquals(rng1, rng2, KEYS);
87
74
  }
88
75
  /**
89
76
  * Helper function to convert a `RNG` object to a `SerializedRNG` object. (This is used by the save
90
77
  * data manager when writing data from the "save#.dat" file.)
91
78
  */
92
- function serializeRNG(rng) {
79
+ export function serializeRNG(rng) {
93
80
  if (!isRNG(rng)) {
94
81
  error(`Failed to serialize a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
95
82
  }
96
83
  const seed = rng.GetSeed();
97
84
  const rngTable = new LuaMap();
98
85
  rngTable.set("seed", seed);
99
- rngTable.set(SerializationBrand_1.SerializationBrand.RNG, "");
86
+ rngTable.set(SerializationBrand.RNG, "");
100
87
  return rngTable;
101
88
  }
102
89
  /**
103
90
  * Helper function to iterate over the provided object and set the seed for all of the values that
104
91
  * are RNG objects equal to a particular seed.
105
92
  */
106
- function setAllRNGToSeed(object, seed) {
107
- if (!(0, types_1.isTable)(object)) {
93
+ export function setAllRNGToSeed(object, seed) {
94
+ if (!isTable(object)) {
108
95
  error(`Failed to iterate over the object containing RNG objects since the type of the provided object was: ${typeof object}`);
109
96
  }
110
97
  let didSomething = false;
@@ -123,17 +110,17 @@ function setAllRNGToSeed(object, seed) {
123
110
  * Helper function to iterate over the provided object and set the seed for all of the values that
124
111
  * are RNG objects equal to the start seed for the current run.
125
112
  */
126
- function setAllRNGToStartSeed(object) {
127
- const seeds = cachedClasses_1.game.GetSeeds();
113
+ export function setAllRNGToStartSeed(object) {
114
+ const seeds = game.GetSeeds();
128
115
  const startSeed = seeds.GetStartSeed();
129
116
  setAllRNGToSeed(object, startSeed);
130
117
  }
131
118
  /** Helper function to set a seed to an RNG object using Blade's recommended shift index. */
132
- function setSeed(rng, seed) {
119
+ export function setSeed(rng, seed) {
133
120
  if (seed === 0) {
134
121
  seed = getRandomSeed();
135
- (0, log_1.logError)("Failed to set a RNG object to a seed of 0. Using a random value instead.");
136
- (0, debugFunctions_1.traceback)();
122
+ logError("Failed to set a RNG object to a seed of 0. Using a random value instead.");
123
+ traceback();
137
124
  }
138
125
  // The game expects seeds in the range of 1 to 4294967295 (1^32 - 1).
139
126
  // eslint-disable-next-line @typescript-eslint/no-deprecated
@@ -1,13 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRockAltType = getRockAltType;
4
- exports.removeUrnRewards = removeUrnRewards;
5
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
6
- const cachedClasses_1 = require("../core/cachedClasses");
7
- const backdropTypeToRockAltType_1 = require("../objects/backdropTypeToRockAltType");
8
- const entitiesSpecific_1 = require("./entitiesSpecific");
9
- const gridEntities_1 = require("./gridEntities");
10
- const pickupsSpecific_1 = require("./pickupsSpecific");
1
+ import { CollectibleType, EntityType, TrinketType, } from "isaac-typescript-definitions";
2
+ import { game } from "../core/cachedClasses";
3
+ import { BACKDROP_TYPE_TO_ROCK_ALT_TYPE } from "../objects/backdropTypeToRockAltType";
4
+ import { getNPCs } from "./entitiesSpecific";
5
+ import { removeEntitiesSpawnedFromGridEntity } from "./gridEntities";
6
+ import { getCoins, getCollectibles, getTrinkets } from "./pickupsSpecific";
11
7
  /**
12
8
  * Helper function to get the alternate rock type (i.e. urn, mushroom, etc.) that the current room
13
9
  * will have.
@@ -22,10 +18,10 @@ const pickupsSpecific_1 = require("./pickupsSpecific");
22
18
  * `BackdropType.CAVES`, the graphic of the urn will not switch to a mushroom. However, when
23
19
  * destroyed, the urn will still generate mushroom-appropriate rewards.
24
20
  */
25
- function getRockAltType() {
26
- const room = cachedClasses_1.game.GetRoom();
21
+ export function getRockAltType() {
22
+ const room = game.GetRoom();
27
23
  const backdropType = room.GetBackdropType();
28
- return backdropTypeToRockAltType_1.BACKDROP_TYPE_TO_ROCK_ALT_TYPE[backdropType];
24
+ return BACKDROP_TYPE_TO_ROCK_ALT_TYPE[backdropType];
29
25
  }
30
26
  /**
31
27
  * Helper function to remove all coins, trinkets, and so on that spawned from breaking an urn.
@@ -33,17 +29,17 @@ function getRockAltType() {
33
29
  * The rewards are based on the ones from the wiki:
34
30
  * https://bindingofisaacrebirth.fandom.com/wiki/Rocks#Urns
35
31
  */
36
- function removeUrnRewards(gridEntity) {
32
+ export function removeUrnRewards(gridEntity) {
37
33
  // Coins
38
- const coins = (0, pickupsSpecific_1.getCoins)();
39
- (0, gridEntities_1.removeEntitiesSpawnedFromGridEntity)(coins, gridEntity);
34
+ const coins = getCoins();
35
+ removeEntitiesSpawnedFromGridEntity(coins, gridEntity);
40
36
  // A Quarter
41
- const quarters = (0, pickupsSpecific_1.getCollectibles)(isaac_typescript_definitions_1.CollectibleType.QUARTER);
42
- (0, gridEntities_1.removeEntitiesSpawnedFromGridEntity)(quarters, gridEntity);
37
+ const quarters = getCollectibles(CollectibleType.QUARTER);
38
+ removeEntitiesSpawnedFromGridEntity(quarters, gridEntity);
43
39
  // Swallowed Penny
44
- const swallowedPennies = (0, pickupsSpecific_1.getTrinkets)(isaac_typescript_definitions_1.TrinketType.SWALLOWED_PENNY);
45
- (0, gridEntities_1.removeEntitiesSpawnedFromGridEntity)(swallowedPennies, gridEntity);
40
+ const swallowedPennies = getTrinkets(TrinketType.SWALLOWED_PENNY);
41
+ removeEntitiesSpawnedFromGridEntity(swallowedPennies, gridEntity);
46
42
  // Spiders
47
- const spiders = (0, entitiesSpecific_1.getNPCs)(isaac_typescript_definitions_1.EntityType.SPIDER);
48
- (0, gridEntities_1.removeEntitiesSpawnedFromGridEntity)(spiders, gridEntity);
43
+ const spiders = getNPCs(EntityType.SPIDER);
44
+ removeEntitiesSpawnedFromGridEntity(spiders, gridEntity);
49
45
  }
@@ -1,43 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRoomAllowedDoors = getRoomAllowedDoors;
4
- exports.getRoomData = getRoomData;
5
- exports.getRoomDescriptor = getRoomDescriptor;
6
- exports.getRoomDescriptorReadOnly = getRoomDescriptorReadOnly;
7
- exports.getRoomGridIndex = getRoomGridIndex;
8
- exports.getRoomListIndex = getRoomListIndex;
9
- exports.getRoomName = getRoomName;
10
- exports.getRoomShape = getRoomShape;
11
- exports.getRoomStageID = getRoomStageID;
12
- exports.getRoomSubType = getRoomSubType;
13
- exports.getRoomType = getRoomType;
14
- exports.getRoomVariant = getRoomVariant;
15
- exports.getRoomVisitedCount = getRoomVisitedCount;
16
- exports.setRoomData = setRoomData;
17
- const cachedEnumValues_1 = require("../cachedEnumValues");
18
- const cachedClasses_1 = require("../core/cachedClasses");
19
- const doors_1 = require("./doors");
20
- const flag_1 = require("./flag");
1
+ import { DOOR_SLOT_FLAG_VALUES } from "../cachedEnumValues";
2
+ import { game } from "../core/cachedClasses";
3
+ import { doorSlotFlagToDoorSlot } from "./doors";
4
+ import { hasFlag } from "./flag";
21
5
  /**
22
6
  * Helper function to get the set of allowed door slots for the room at the supplied grid index.
23
7
  * This corresponds to the doors that are enabled in the STB/XML file for the room.
24
8
  */
25
- function getRoomAllowedDoors(roomGridIndex) {
9
+ export function getRoomAllowedDoors(roomGridIndex) {
26
10
  const allowedDoors = new Set();
27
11
  const roomData = getRoomData(roomGridIndex);
28
12
  if (roomData === undefined) {
29
13
  return allowedDoors;
30
14
  }
31
- for (const doorSlotFlag of cachedEnumValues_1.DOOR_SLOT_FLAG_VALUES) {
32
- if (!(0, flag_1.hasFlag)(roomData.Doors, doorSlotFlag)) {
15
+ for (const doorSlotFlag of DOOR_SLOT_FLAG_VALUES) {
16
+ if (!hasFlag(roomData.Doors, doorSlotFlag)) {
33
17
  continue;
34
18
  }
35
- const doorSlot = (0, doors_1.doorSlotFlagToDoorSlot)(doorSlotFlag);
19
+ const doorSlot = doorSlotFlagToDoorSlot(doorSlotFlag);
36
20
  allowedDoors.add(doorSlot);
37
21
  }
38
22
  return allowedDoors;
39
23
  }
40
- function getRoomData(roomGridIndex) {
24
+ export function getRoomData(roomGridIndex) {
41
25
  const roomDescriptor = getRoomDescriptor(roomGridIndex);
42
26
  return roomDescriptor.Data;
43
27
  }
@@ -46,8 +30,8 @@ function getRoomData(roomGridIndex) {
46
30
  *
47
31
  * @param roomGridIndex Optional. Default is the current room index.
48
32
  */
49
- function getRoomDescriptor(roomGridIndex) {
50
- const level = cachedClasses_1.game.GetLevel();
33
+ export function getRoomDescriptor(roomGridIndex) {
34
+ const level = game.GetLevel();
51
35
  roomGridIndex ??= getRoomGridIndex();
52
36
  return level.GetRoomByIdx(roomGridIndex);
53
37
  }
@@ -55,8 +39,8 @@ function getRoomDescriptor(roomGridIndex) {
55
39
  * Alias for the `Level.GetCurrentRoomDesc` method. Use this to make it more clear what type of
56
40
  * `RoomDescriptor` object that you are retrieving.
57
41
  */
58
- function getRoomDescriptorReadOnly() {
59
- const level = cachedClasses_1.game.GetLevel();
42
+ export function getRoomDescriptorReadOnly() {
43
+ const level = game.GetLevel();
60
44
  return level.GetCurrentRoomDesc();
61
45
  }
62
46
  /**
@@ -78,8 +62,8 @@ function getRoomDescriptorReadOnly() {
78
62
  * Data structures that store data per room should use the room's `ListIndex` instead of
79
63
  * `SafeGridIndex`, since the former is unique across different dimensions.
80
64
  */
81
- function getRoomGridIndex() {
82
- const level = cachedClasses_1.game.GetLevel();
65
+ export function getRoomGridIndex() {
66
+ const level = game.GetLevel();
83
67
  const currentRoomIndex = level.GetCurrentRoomIndex();
84
68
  if (currentRoomIndex < 0) {
85
69
  return currentRoomIndex;
@@ -97,23 +81,23 @@ function getRoomGridIndex() {
97
81
  *
98
82
  * @param roomGridIndex Optional. Default is the current room index.
99
83
  */
100
- function getRoomListIndex(roomGridIndex) {
84
+ export function getRoomListIndex(roomGridIndex) {
101
85
  const roomDescriptor = getRoomDescriptor(roomGridIndex);
102
86
  return roomDescriptor.ListIndex;
103
87
  }
104
- function getRoomName(roomGridIndex) {
88
+ export function getRoomName(roomGridIndex) {
105
89
  const roomData = getRoomData(roomGridIndex);
106
90
  return roomData === undefined ? undefined : roomData.Name;
107
91
  }
108
- function getRoomShape(roomGridIndex) {
92
+ export function getRoomShape(roomGridIndex) {
109
93
  const roomData = getRoomData(roomGridIndex);
110
94
  return roomData === undefined ? undefined : roomData.Shape;
111
95
  }
112
- function getRoomStageID(roomGridIndex) {
96
+ export function getRoomStageID(roomGridIndex) {
113
97
  const roomData = getRoomData(roomGridIndex);
114
98
  return roomData === undefined ? undefined : roomData.StageID;
115
99
  }
116
- function getRoomSubType(roomGridIndex) {
100
+ export function getRoomSubType(roomGridIndex) {
117
101
  const roomData = getRoomData(roomGridIndex);
118
102
  return roomData === undefined ? undefined : roomData.Subtype;
119
103
  }
@@ -123,11 +107,11 @@ function getRoomSubType(roomGridIndex) {
123
107
  * @param roomGridIndex Optional. Default is the current room index.
124
108
  * @returns The room data type. Returns -1 if the room data was not found.
125
109
  */
126
- function getRoomType(roomGridIndex) {
110
+ export function getRoomType(roomGridIndex) {
127
111
  const roomData = getRoomData(roomGridIndex);
128
112
  return roomData === undefined ? undefined : roomData.Type;
129
113
  }
130
- function getRoomVariant(roomGridIndex) {
114
+ export function getRoomVariant(roomGridIndex) {
131
115
  const roomData = getRoomData(roomGridIndex);
132
116
  return roomData === undefined ? -1 : roomData.Variant;
133
117
  }
@@ -139,7 +123,7 @@ function getRoomVariant(roomGridIndex) {
139
123
  *
140
124
  * @param roomGridIndex Optional. Default is the current room index.
141
125
  */
142
- function getRoomVisitedCount(roomGridIndex) {
126
+ export function getRoomVisitedCount(roomGridIndex) {
143
127
  const roomDescriptor = getRoomDescriptor(roomGridIndex);
144
128
  return roomDescriptor.VisitedCount;
145
129
  }
@@ -147,7 +131,7 @@ function getRoomVisitedCount(roomGridIndex) {
147
131
  * Helper function to set the data for a given room. This will change the room type, contents, and
148
132
  * so on.
149
133
  */
150
- function setRoomData(roomGridIndex, roomData) {
134
+ export function setRoomData(roomGridIndex, roomData) {
151
135
  const roomDescriptor = getRoomDescriptor(roomGridIndex);
152
136
  roomDescriptor.Data = roomData;
153
137
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * These functions have to do with the grid index inside of a room (i.e. the grid index that grid
4
3
  * entities use).
@@ -7,22 +6,15 @@
7
6
  *
8
7
  * @module
9
8
  */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.gridCoordinatesToWorldPosition = gridCoordinatesToWorldPosition;
12
- exports.gridIndexToGridPosition = gridIndexToGridPosition;
13
- exports.gridPositionToWorldPosition = gridPositionToWorldPosition;
14
- exports.isValidGridPosition = isValidGridPosition;
15
- exports.worldPositionToGridPosition = worldPositionToGridPosition;
16
- exports.worldPositionToGridPositionFast = worldPositionToGridPositionFast;
17
- const LRoomShapeToRectangles_1 = require("../objects/LRoomShapeToRectangles");
18
- const math_1 = require("./math");
19
- const roomShape_1 = require("./roomShape");
9
+ import { L_ROOM_SHAPE_TO_RECTANGLES } from "../objects/LRoomShapeToRectangles";
10
+ import { inRectangle } from "./math";
11
+ import { getRoomShapeBottomRightPosition, getRoomShapeTopLeftPosition, getRoomShapeWidth, isLRoomShape, } from "./roomShape";
20
12
  /**
21
13
  * Helper function to convert grid coordinates to a world position `Vector`.
22
14
  *
23
15
  * For example, the coordinates of (0, 0) are equal to `Vector(80, 160)`.
24
16
  */
25
- function gridCoordinatesToWorldPosition(x, y) {
17
+ export function gridCoordinatesToWorldPosition(x, y) {
26
18
  const gridPosition = Vector(x, y);
27
19
  return gridPositionToWorldPosition(gridPosition);
28
20
  }
@@ -32,8 +24,8 @@ function gridCoordinatesToWorldPosition(x, y) {
32
24
  * For example, in a 1x1 room, grid index 0 is equal to "Vector(-1, -1) and grid index 16 is equal
33
25
  * to "Vector(0, 0)".
34
26
  */
35
- function gridIndexToGridPosition(gridIndex, roomShape) {
36
- const gridWidth = (0, roomShape_1.getRoomShapeWidth)(roomShape);
27
+ export function gridIndexToGridPosition(gridIndex, roomShape) {
28
+ const gridWidth = getRoomShapeWidth(roomShape);
37
29
  const x = (gridIndex % gridWidth) - 1;
38
30
  const y = Math.floor(gridIndex / gridWidth) - 1;
39
31
  return Vector(x, y);
@@ -43,7 +35,7 @@ function gridIndexToGridPosition(gridIndex, roomShape) {
43
35
  *
44
36
  * For example, the coordinates of (0, 0) are equal to `Vector(80, 160)`.
45
37
  */
46
- function gridPositionToWorldPosition(gridPosition) {
38
+ export function gridPositionToWorldPosition(gridPosition) {
47
39
  const x = (gridPosition.X + 2) * 40;
48
40
  const y = (gridPosition.Y + 4) * 40;
49
41
  return Vector(x, y);
@@ -53,8 +45,8 @@ function gridPositionToWorldPosition(gridPosition) {
53
45
  *
54
46
  * In this context, the grid position of the top-left wall is "Vector(-1, -1)".
55
47
  */
56
- function isValidGridPosition(gridPosition, roomShape) {
57
- return (0, roomShape_1.isLRoomShape)(roomShape)
48
+ export function isValidGridPosition(gridPosition, roomShape) {
49
+ return isLRoomShape(roomShape)
58
50
  ? isValidGridPositionLRoom(gridPosition, roomShape)
59
51
  : isValidGridPositionNormal(gridPosition, roomShape);
60
52
  }
@@ -63,7 +55,7 @@ function isValidGridPosition(gridPosition, roomShape) {
63
55
  *
64
56
  * In this context, the grid position of the top-left wall is "Vector(-1, -1)".
65
57
  */
66
- function worldPositionToGridPosition(worldPos) {
58
+ export function worldPositionToGridPosition(worldPos) {
67
59
  const x = Math.round(worldPos.X / 40 - 2);
68
60
  const y = Math.round(worldPos.Y / 40 - 4);
69
61
  return Vector(x, y);
@@ -75,22 +67,22 @@ function worldPositionToGridPosition(worldPos) {
75
67
  *
76
68
  * This is similar to the `worldPositionToGridPosition` function, but the values are not rounded.
77
69
  */
78
- function worldPositionToGridPositionFast(worldPos) {
70
+ export function worldPositionToGridPositionFast(worldPos) {
79
71
  const x = worldPos.X / 40 - 2;
80
72
  const y = worldPos.Y / 40 - 4;
81
73
  return Vector(x, y);
82
74
  }
83
75
  function isValidGridPositionLRoom(gridPosition, roomShape) {
84
- const rectangles = LRoomShapeToRectangles_1.L_ROOM_SHAPE_TO_RECTANGLES[roomShape];
76
+ const rectangles = L_ROOM_SHAPE_TO_RECTANGLES[roomShape];
85
77
  if (rectangles === undefined) {
86
78
  return false;
87
79
  }
88
80
  const { verticalTopLeft, verticalBottomRight, horizontalTopLeft, horizontalBottomRight, } = rectangles;
89
- return ((0, math_1.inRectangle)(gridPosition, verticalTopLeft, verticalBottomRight)
90
- || (0, math_1.inRectangle)(gridPosition, horizontalTopLeft, horizontalBottomRight));
81
+ return (inRectangle(gridPosition, verticalTopLeft, verticalBottomRight)
82
+ || inRectangle(gridPosition, horizontalTopLeft, horizontalBottomRight));
91
83
  }
92
84
  function isValidGridPositionNormal(gridPosition, roomShape) {
93
- const topLeft = (0, roomShape_1.getRoomShapeTopLeftPosition)(roomShape);
94
- const bottomRight = (0, roomShape_1.getRoomShapeBottomRightPosition)(roomShape);
95
- return (0, math_1.inRectangle)(gridPosition, topLeft, bottomRight);
85
+ const topLeft = getRoomShapeTopLeftPosition(roomShape);
86
+ const bottomRight = getRoomShapeBottomRightPosition(roomShape);
87
+ return inRectangle(gridPosition, topLeft, bottomRight);
96
88
  }
@@ -1,39 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGridIndexDelta = getGridIndexDelta;
4
- exports.getRoomShapeBottomRightPosition = getRoomShapeBottomRightPosition;
5
- exports.getRoomShapeBounds = getRoomShapeBounds;
6
- exports.getRoomShapeCharges = getRoomShapeCharges;
7
- exports.getRoomShapeCorners = getRoomShapeCorners;
8
- exports.getRoomShapeLayoutSize = getRoomShapeLayoutSize;
9
- exports.getRoomShapeTopLeftPosition = getRoomShapeTopLeftPosition;
10
- exports.getRoomShapeVolume = getRoomShapeVolume;
11
- exports.getRoomShapeWidth = getRoomShapeWidth;
12
- exports.is2x1RoomShape = is2x1RoomShape;
13
- exports.isBigRoomShape = isBigRoomShape;
14
- exports.isLRoomShape = isLRoomShape;
15
- exports.isNarrowRoom = isNarrowRoom;
16
- exports.isRoomShapeDoubleCharge = isRoomShapeDoubleCharge;
17
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
18
- const roomShapeBounds_1 = require("../objects/roomShapeBounds");
19
- const roomShapeCorners_1 = require("../objects/roomShapeCorners");
20
- const roomShapeLayoutSizes_1 = require("../objects/roomShapeLayoutSizes");
21
- const roomShapeToBottomRightPosition_1 = require("../objects/roomShapeToBottomRightPosition");
22
- const roomShapeToDoorSlotsToGridIndexDelta_1 = require("../objects/roomShapeToDoorSlotsToGridIndexDelta");
23
- const roomShapeToGridWidth_1 = require("../objects/roomShapeToGridWidth");
24
- const roomShapeToTopLeftPosition_1 = require("../objects/roomShapeToTopLeftPosition");
25
- const roomShapeVolumes_1 = require("../objects/roomShapeVolumes");
26
- const LRoomShapesSet_1 = require("../sets/LRoomShapesSet");
27
- const bigRoomShapesSet_1 = require("../sets/bigRoomShapesSet");
28
- const narrowRoomShapesSet_1 = require("../sets/narrowRoomShapesSet");
1
+ import { RoomShape } from "isaac-typescript-definitions";
2
+ import { ROOM_SHAPE_BOUNDS } from "../objects/roomShapeBounds";
3
+ import { ROOM_SHAPE_CORNERS } from "../objects/roomShapeCorners";
4
+ import { ROOM_SHAPE_LAYOUT_SIZES } from "../objects/roomShapeLayoutSizes";
5
+ import { ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION } from "../objects/roomShapeToBottomRightPosition";
6
+ import { ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA } from "../objects/roomShapeToDoorSlotsToGridIndexDelta";
7
+ import { ROOM_SHAPE_TO_GRID_WIDTH } from "../objects/roomShapeToGridWidth";
8
+ import { ROOM_SHAPE_TO_TOP_LEFT_POSITION } from "../objects/roomShapeToTopLeftPosition";
9
+ import { ROOM_SHAPE_VOLUMES } from "../objects/roomShapeVolumes";
10
+ import { L_ROOM_SHAPES_SET } from "../sets/LRoomShapesSet";
11
+ import { BIG_ROOM_SHAPES_SET } from "../sets/bigRoomShapesSet";
12
+ import { NARROW_ROOM_SHAPES_SET } from "../sets/narrowRoomShapesSet";
29
13
  /**
30
14
  * Helper function to get the grid index delta that a door out of the given room shape would lead
31
15
  * to. For example, if you went through the bottom door in a room of `RoomShape.SHAPE_1x2`, you
32
16
  * would end up in a room with a grid index that is +26 units from the `SafeGridIndex` of where you
33
17
  * started.
34
18
  */
35
- function getGridIndexDelta(roomShape, doorSlot) {
36
- const doorSlotToGridIndexMap = roomShapeToDoorSlotsToGridIndexDelta_1.ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA[roomShape];
19
+ export function getGridIndexDelta(roomShape, doorSlot) {
20
+ const doorSlotToGridIndexMap = ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA[roomShape];
37
21
  return doorSlotToGridIndexMap.get(doorSlot);
38
22
  }
39
23
  /**
@@ -42,8 +26,8 @@ function getGridIndexDelta(roomShape, doorSlot) {
42
26
  *
43
27
  * For example, `RoomShape.SHAPE_2x2` will return 2.
44
28
  */
45
- function getRoomShapeBottomRightPosition(roomShape) {
46
- return roomShapeToBottomRightPosition_1.ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION[roomShape];
29
+ export function getRoomShapeBottomRightPosition(roomShape) {
30
+ return ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION[roomShape];
47
31
  }
48
32
  /**
49
33
  * Helper function to get the grid position of the bottom-right tile of a given room shape.
@@ -51,8 +35,8 @@ function getRoomShapeBottomRightPosition(roomShape) {
51
35
  * "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
52
36
  * wall would be at "Vector(-1, -1)".)
53
37
  */
54
- function getRoomShapeBounds(roomShape) {
55
- return roomShapeBounds_1.ROOM_SHAPE_BOUNDS[roomShape];
38
+ export function getRoomShapeBounds(roomShape) {
39
+ return ROOM_SHAPE_BOUNDS[roomShape];
56
40
  }
57
41
  /**
58
42
  * Helper function to get the number of charges that a given room shape will grant to a player upon
@@ -60,7 +44,7 @@ function getRoomShapeBounds(roomShape) {
60
44
  *
61
45
  * For example, `RoomShape.SHAPE_2x2` will return 2.
62
46
  */
63
- function getRoomShapeCharges(roomShape) {
47
+ export function getRoomShapeCharges(roomShape) {
64
48
  return isRoomShapeDoubleCharge(roomShape) ? 2 : 1;
65
49
  }
66
50
  /**
@@ -69,8 +53,8 @@ function getRoomShapeCharges(roomShape) {
69
53
  * Note that these corner locations are not accurate for the Mother Boss Room and the Home closet
70
54
  * rooms. (Those rooms have custom shapes.)
71
55
  */
72
- function getRoomShapeCorners(roomShape) {
73
- return roomShapeCorners_1.ROOM_SHAPE_CORNERS[roomShape];
56
+ export function getRoomShapeCorners(roomShape) {
57
+ return ROOM_SHAPE_CORNERS[roomShape];
74
58
  }
75
59
  /**
76
60
  * Helper function to get the dimensions of a room shape's layout. This is NOT the size of the
@@ -78,8 +62,8 @@ function getRoomShapeCorners(roomShape) {
78
62
  *
79
63
  * For example, a horizontal narrow room has a layout size of equal to that of a 1x1 room.
80
64
  */
81
- function getRoomShapeLayoutSize(roomShape) {
82
- return roomShapeLayoutSizes_1.ROOM_SHAPE_LAYOUT_SIZES[roomShape];
65
+ export function getRoomShapeLayoutSize(roomShape) {
66
+ return ROOM_SHAPE_LAYOUT_SIZES[roomShape];
83
67
  }
84
68
  /**
85
69
  * Helper function to get the grid position of the top-left tile of a given room shape.
@@ -87,8 +71,8 @@ function getRoomShapeLayoutSize(roomShape) {
87
71
  * "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
88
72
  * wall would be at "Vector(-1, -1)".)
89
73
  */
90
- function getRoomShapeTopLeftPosition(roomShape) {
91
- return roomShapeToTopLeftPosition_1.ROOM_SHAPE_TO_TOP_LEFT_POSITION[roomShape];
74
+ export function getRoomShapeTopLeftPosition(roomShape) {
75
+ return ROOM_SHAPE_TO_TOP_LEFT_POSITION[roomShape];
92
76
  }
93
77
  /**
94
78
  * Helper function to get the volume of a room shape, which is the amount of tiles that are inside
@@ -96,39 +80,39 @@ function getRoomShapeTopLeftPosition(roomShape) {
96
80
  *
97
81
  * (This cannot be directly calculated from the bounds since L rooms are a special case.)
98
82
  */
99
- function getRoomShapeVolume(roomShape) {
100
- return roomShapeVolumes_1.ROOM_SHAPE_VOLUMES[roomShape];
83
+ export function getRoomShapeVolume(roomShape) {
84
+ return ROOM_SHAPE_VOLUMES[roomShape];
101
85
  }
102
- function getRoomShapeWidth(roomShape) {
103
- return roomShapeToGridWidth_1.ROOM_SHAPE_TO_GRID_WIDTH[roomShape];
86
+ export function getRoomShapeWidth(roomShape) {
87
+ return ROOM_SHAPE_TO_GRID_WIDTH[roomShape];
104
88
  }
105
89
  /**
106
90
  * Helper function to determine if the provided room is equal to `RoomShape.1x2` (4) or
107
91
  * `RoomShape.2x1` (6).
108
92
  */
109
- function is2x1RoomShape(roomShape) {
110
- return roomShape === isaac_typescript_definitions_1.RoomShape.SHAPE_1x2 || roomShape === isaac_typescript_definitions_1.RoomShape.SHAPE_2x1;
93
+ export function is2x1RoomShape(roomShape) {
94
+ return roomShape === RoomShape.SHAPE_1x2 || roomShape === RoomShape.SHAPE_2x1;
111
95
  }
112
96
  /**
113
97
  * Helper function to detect if the provided room shape is big. Specifically, this is all 1x2 rooms,
114
98
  * 2x2 rooms, and L rooms.
115
99
  */
116
- function isBigRoomShape(roomShape) {
117
- return bigRoomShapesSet_1.BIG_ROOM_SHAPES_SET.has(roomShape);
100
+ export function isBigRoomShape(roomShape) {
101
+ return BIG_ROOM_SHAPES_SET.has(roomShape);
118
102
  }
119
103
  /**
120
104
  * Helper function to determine if the provided room is equal to `RoomShape.LTL` (9),
121
105
  * `RoomShape.LTR` (10), `RoomShape.LBL` (11), or `RoomShape.LBR` (12).
122
106
  */
123
- function isLRoomShape(roomShape) {
124
- return LRoomShapesSet_1.L_ROOM_SHAPES_SET.has(roomShape);
107
+ export function isLRoomShape(roomShape) {
108
+ return L_ROOM_SHAPES_SET.has(roomShape);
125
109
  }
126
110
  /**
127
111
  * Helper function to determine if the provided room is equal to `RoomShape.IH` (2), `RoomShape.IV`
128
112
  * (3), `RoomShape.IIV` (5), or `RoomShape.IIH` (7).
129
113
  */
130
- function isNarrowRoom(roomShape) {
131
- return narrowRoomShapesSet_1.NARROW_ROOM_SHAPES_SET.has(roomShape);
114
+ export function isNarrowRoom(roomShape) {
115
+ return NARROW_ROOM_SHAPES_SET.has(roomShape);
132
116
  }
133
117
  /**
134
118
  * Helper function to see if a given room shape will grant a single charge or a double charge to the
@@ -136,7 +120,7 @@ function isNarrowRoom(roomShape) {
136
120
  *
137
121
  * For example, `RoomShape.SHAPE_2x2` will return true.
138
122
  */
139
- function isRoomShapeDoubleCharge(roomShape) {
123
+ export function isRoomShapeDoubleCharge(roomShape) {
140
124
  // 2x2 rooms and L rooms should grant 2 charges.
141
- return roomShape >= isaac_typescript_definitions_1.RoomShape.SHAPE_2x2;
125
+ return roomShape >= RoomShape.SHAPE_2x2;
142
126
  }