isaacscript-common 3.17.0 → 4.0.2

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 (425) hide show
  1. package/cachedClasses.ts +39 -0
  2. package/callbacks/customRevive.lua +2 -1
  3. package/callbacks/customRevive.ts +215 -0
  4. package/callbacks/itemPickup.ts +101 -0
  5. package/callbacks/postAmbush.ts +73 -0
  6. package/callbacks/postBombExploded.ts +26 -0
  7. package/callbacks/postBombInitLate.ts +36 -0
  8. package/callbacks/postBoneSwing.ts +64 -0
  9. package/callbacks/postCollectibleInitFirst.ts +40 -0
  10. package/callbacks/postCursedTeleport.lua +2 -1
  11. package/callbacks/postCursedTeleport.ts +185 -0
  12. package/callbacks/postCustomDoorEnter.lua +0 -7
  13. package/callbacks/postCustomDoorEnter.ts +292 -0
  14. package/callbacks/postDiceRoomActivated.ts +60 -0
  15. package/callbacks/postDoorRender.ts +26 -0
  16. package/callbacks/postDoorUpdate.ts +26 -0
  17. package/callbacks/postEffectInitLate.ts +36 -0
  18. package/callbacks/postEffectStateChanged.ts +43 -0
  19. package/callbacks/postEsauJr.lua +2 -1
  20. package/callbacks/postEsauJr.ts +109 -0
  21. package/callbacks/postFamiliarInitLate.ts +36 -0
  22. package/callbacks/postFamiliarStateChanged.ts +43 -0
  23. package/callbacks/postFlip.lua +4 -3
  24. package/callbacks/postFlip.ts +90 -0
  25. package/callbacks/postGreedModeWave.ts +41 -0
  26. package/callbacks/postGridEntity.ts +164 -0
  27. package/callbacks/postGridEntityCollision.ts +69 -0
  28. package/callbacks/postGridEntityRender.ts +26 -0
  29. package/callbacks/postHolyMantleRemoved.ts +55 -0
  30. package/callbacks/postItemDischarged.lua +4 -3
  31. package/callbacks/postItemDischarged.ts +154 -0
  32. package/callbacks/postKnifeInitLate.ts +36 -0
  33. package/callbacks/postLaserInitLate.ts +36 -0
  34. package/callbacks/postNPCInitLate.ts +36 -0
  35. package/callbacks/postNPCStateChanged.ts +42 -0
  36. package/callbacks/postNewRoomEarly.lua +2 -1
  37. package/callbacks/postNewRoomEarly.ts +96 -0
  38. package/callbacks/postPickupCollect.ts +48 -0
  39. package/callbacks/postPickupInitFirst.ts +70 -0
  40. package/callbacks/postPickupInitLate.ts +36 -0
  41. package/callbacks/postPickupStateChanged.ts +43 -0
  42. package/callbacks/postPitRender.ts +26 -0
  43. package/callbacks/postPitUpdate.ts +26 -0
  44. package/callbacks/postPlayerChangeHealth.ts +62 -0
  45. package/callbacks/postPlayerChangeType.ts +56 -0
  46. package/callbacks/postPlayerCollectible.ts +113 -0
  47. package/callbacks/postPlayerFatalDamage.ts +141 -0
  48. package/callbacks/postPlayerInitLate.ts +37 -0
  49. package/callbacks/postPlayerReordered.ts +142 -0
  50. package/callbacks/postPoopRender.ts +26 -0
  51. package/callbacks/postPoopUpdate.ts +26 -0
  52. package/callbacks/postPressurePlateRender.ts +26 -0
  53. package/callbacks/postPressurePlateUpdate.ts +26 -0
  54. package/callbacks/postProjectileInitLate.ts +36 -0
  55. package/callbacks/postPurchase.ts +64 -0
  56. package/callbacks/postRockRender.ts +26 -0
  57. package/callbacks/postRockUpdate.ts +26 -0
  58. package/callbacks/postRoomClearChanged.ts +57 -0
  59. package/callbacks/postSacrifice.lua +3 -2
  60. package/callbacks/postSacrifice.ts +64 -0
  61. package/callbacks/postSlotDestroyed.ts +92 -0
  62. package/callbacks/postSlotInitUpdate.ts +68 -0
  63. package/callbacks/postSlotRender.ts +69 -0
  64. package/callbacks/postSpikesRender.ts +26 -0
  65. package/callbacks/postSpikesUpdate.ts +26 -0
  66. package/callbacks/postTNTRender.ts +26 -0
  67. package/callbacks/postTNTUpdate.ts +26 -0
  68. package/callbacks/postTearInitLate.ts +36 -0
  69. package/callbacks/postTearInitVeryLate.ts +41 -0
  70. package/callbacks/postTransformation.ts +59 -0
  71. package/callbacks/postTrinketBreak.lua +3 -2
  72. package/callbacks/postTrinketBreak.ts +112 -0
  73. package/callbacks/preBerserkDeath.ts +49 -0
  74. package/callbacks/preNewLevel.ts +55 -0
  75. package/callbacks/reorderedCallbacks.lua +1 -0
  76. package/callbacks/reorderedCallbacks.ts +168 -0
  77. package/callbacks/subscriptions/postAmbushFinished.ts +32 -0
  78. package/callbacks/subscriptions/postAmbushStarted.ts +32 -0
  79. package/callbacks/subscriptions/postBombInitLate.ts +32 -0
  80. package/callbacks/subscriptions/postBoneExploded.ts +32 -0
  81. package/callbacks/subscriptions/postBoneSwing.ts +24 -0
  82. package/callbacks/subscriptions/postCollectibleInitFirst.ts +37 -0
  83. package/callbacks/subscriptions/postCursedTeleport.ts +24 -0
  84. package/callbacks/subscriptions/postCustomDoorEnter.ts +45 -0
  85. package/callbacks/subscriptions/postCustomRevive.ts +36 -0
  86. package/callbacks/subscriptions/postDiceRoomActivated.ts +38 -0
  87. package/callbacks/subscriptions/postDoorRender.ts +35 -0
  88. package/callbacks/subscriptions/postDoorUpdate.ts +35 -0
  89. package/callbacks/subscriptions/postEffectInitLate.ts +32 -0
  90. package/callbacks/subscriptions/postEffectStateChanged.ts +40 -0
  91. package/callbacks/subscriptions/postEsauJr.ts +24 -0
  92. package/callbacks/subscriptions/postFamiliarInitLate.ts +32 -0
  93. package/callbacks/subscriptions/postFamiliarStateChanged.ts +40 -0
  94. package/callbacks/subscriptions/postFirstEsauJr.ts +24 -0
  95. package/callbacks/subscriptions/postFirstFlip.ts +24 -0
  96. package/callbacks/subscriptions/postFlip.ts +22 -0
  97. package/callbacks/subscriptions/postGameStartedReordered.ts +24 -0
  98. package/callbacks/subscriptions/postGreedModeWave.ts +24 -0
  99. package/callbacks/subscriptions/postGridEntityBroken.ts +51 -0
  100. package/callbacks/subscriptions/postGridEntityCollision.ts +54 -0
  101. package/callbacks/subscriptions/postGridEntityInit.ts +51 -0
  102. package/callbacks/subscriptions/postGridEntityRemove.ts +52 -0
  103. package/callbacks/subscriptions/postGridEntityRender.ts +51 -0
  104. package/callbacks/subscriptions/postGridEntityStateChanged.ts +55 -0
  105. package/callbacks/subscriptions/postGridEntityUpdate.ts +51 -0
  106. package/callbacks/subscriptions/postHolyMantleRemoved.ts +48 -0
  107. package/callbacks/subscriptions/postItemDischarged.ts +43 -0
  108. package/callbacks/subscriptions/postItemPickup.ts +64 -0
  109. package/callbacks/subscriptions/postKnifeInitLate.ts +32 -0
  110. package/callbacks/subscriptions/postLaserInitLate.ts +32 -0
  111. package/callbacks/subscriptions/postNPCInitLate.ts +32 -0
  112. package/callbacks/subscriptions/postNPCStateChanged.ts +42 -0
  113. package/callbacks/subscriptions/postNewLevelReordered.ts +22 -0
  114. package/callbacks/subscriptions/postNewRoomEarly.ts +22 -0
  115. package/callbacks/subscriptions/postNewRoomReordered.ts +22 -0
  116. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +40 -0
  117. package/callbacks/subscriptions/postPickupCollect.ts +35 -0
  118. package/callbacks/subscriptions/postPickupInitFirst.ts +32 -0
  119. package/callbacks/subscriptions/postPickupInitLate.ts +32 -0
  120. package/callbacks/subscriptions/postPickupStateChanged.ts +40 -0
  121. package/callbacks/subscriptions/postPitRender.ts +35 -0
  122. package/callbacks/subscriptions/postPitUpdate.ts +35 -0
  123. package/callbacks/subscriptions/postPlayerChangeHealth.ts +49 -0
  124. package/callbacks/subscriptions/postPlayerChangeType.ts +40 -0
  125. package/callbacks/subscriptions/postPlayerCollectibleAdded.d.ts +2 -3
  126. package/callbacks/subscriptions/postPlayerCollectibleAdded.lua +2 -7
  127. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +38 -0
  128. package/callbacks/subscriptions/postPlayerCollectibleRemoved.d.ts +2 -3
  129. package/callbacks/subscriptions/postPlayerCollectibleRemoved.lua +2 -7
  130. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +38 -0
  131. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +1 -1
  132. package/callbacks/subscriptions/postPlayerFatalDamage.ts +68 -0
  133. package/callbacks/subscriptions/postPlayerInitLate.ts +40 -0
  134. package/callbacks/subscriptions/postPlayerInitReordered.ts +40 -0
  135. package/callbacks/subscriptions/postPlayerRenderReordered.ts +40 -0
  136. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +40 -0
  137. package/callbacks/subscriptions/postPoopRender.ts +35 -0
  138. package/callbacks/subscriptions/postPoopUpdate.ts +35 -0
  139. package/callbacks/subscriptions/postPressurePlateRender.ts +37 -0
  140. package/callbacks/subscriptions/postPressurePlateUpdate.ts +37 -0
  141. package/callbacks/subscriptions/postProjectileInitLate.ts +35 -0
  142. package/callbacks/subscriptions/postPurchase.ts +31 -0
  143. package/callbacks/subscriptions/postRockRender.ts +35 -0
  144. package/callbacks/subscriptions/postRockUpdate.ts +35 -0
  145. package/callbacks/subscriptions/postRoomClearChanged.ts +30 -0
  146. package/callbacks/subscriptions/postSacrifice.ts +43 -0
  147. package/callbacks/subscriptions/postSlotAnimationChanged.ts +40 -0
  148. package/callbacks/subscriptions/postSlotDestroyed.ts +55 -0
  149. package/callbacks/subscriptions/postSlotInit.ts +32 -0
  150. package/callbacks/subscriptions/postSlotRender.ts +32 -0
  151. package/callbacks/subscriptions/postSlotUpdate.ts +32 -0
  152. package/callbacks/subscriptions/postSpikesRender.ts +35 -0
  153. package/callbacks/subscriptions/postSpikesUpdate.ts +35 -0
  154. package/callbacks/subscriptions/postTNTRender.ts +35 -0
  155. package/callbacks/subscriptions/postTNTUpdate.ts +35 -0
  156. package/callbacks/subscriptions/postTearInitLate.ts +32 -0
  157. package/callbacks/subscriptions/postTearInitVeryLate.ts +32 -0
  158. package/callbacks/subscriptions/postTransformation.ts +40 -0
  159. package/callbacks/subscriptions/postTrinketBreak.ts +38 -0
  160. package/callbacks/subscriptions/preBerserkDeath.d.ts +1 -1
  161. package/callbacks/subscriptions/preBerserkDeath.ts +42 -0
  162. package/callbacks/subscriptions/preCustomRevive.d.ts +1 -1
  163. package/callbacks/subscriptions/preCustomRevive.ts +46 -0
  164. package/callbacks/subscriptions/preItemPickup.ts +64 -0
  165. package/callbacks/subscriptions/preNewLevel.ts +24 -0
  166. package/classes/DefaultMap.ts +174 -0
  167. package/classes/ModUpgraded.d.ts +8 -4
  168. package/classes/ModUpgraded.lua +5 -8
  169. package/classes/ModUpgraded.ts +84 -0
  170. package/constants.ts +162 -0
  171. package/constantsFirstLast.ts +217 -0
  172. package/enums/AmbushType.ts +4 -0
  173. package/enums/HealthType.ts +16 -0
  174. package/enums/ModCallbackCustom.d.ts +20 -18
  175. package/enums/ModCallbackCustom.ts +1278 -0
  176. package/enums/PocketItemType.ts +8 -0
  177. package/enums/SerializationType.ts +5 -0
  178. package/enums/SlotDestructionType.ts +4 -0
  179. package/enums/private/CopyableIsaacAPIClassType.ts +7 -0
  180. package/enums/private/SaveDataKey.ts +14 -0
  181. package/enums/private/SerializationBrand.ts +42 -0
  182. package/features/characterHealthConversion.lua +2 -9
  183. package/features/characterHealthConversion.ts +111 -0
  184. package/features/characterStats.ts +61 -0
  185. package/features/debugDisplay/debugDisplay.ts +221 -0
  186. package/features/debugDisplay/exports.ts +368 -0
  187. package/features/debugDisplay/v.ts +65 -0
  188. package/features/deployJSONRoom.ts +743 -0
  189. package/features/disableInputs.ts +193 -0
  190. package/features/disableSound.ts +77 -0
  191. package/features/extraConsoleCommands/commandsDisplay.ts +290 -0
  192. package/features/extraConsoleCommands/commandsSubroutines.lua +1 -1
  193. package/features/extraConsoleCommands/commandsSubroutines.ts +139 -0
  194. package/features/extraConsoleCommands/init.ts +334 -0
  195. package/features/extraConsoleCommands/listCommands.ts +1299 -0
  196. package/features/extraConsoleCommands/v.ts +14 -0
  197. package/features/fadeInRemover.ts +60 -0
  198. package/features/fastReset.ts +75 -0
  199. package/features/forgottenSwitch.ts +50 -0
  200. package/features/getCollectibleItemPoolType.ts +66 -0
  201. package/features/persistentEntities.ts +183 -0
  202. package/features/playerInventory.lua +1 -0
  203. package/features/playerInventory.ts +135 -0
  204. package/features/ponyDetection.ts +74 -0
  205. package/features/preventCollectibleRotation.ts +115 -0
  206. package/features/runInNFrames.ts +148 -0
  207. package/features/saveDataManager/constants.ts +4 -0
  208. package/features/saveDataManager/exports.ts +229 -0
  209. package/features/saveDataManager/load.ts +99 -0
  210. package/features/saveDataManager/main.ts +195 -0
  211. package/features/saveDataManager/maps.ts +13 -0
  212. package/features/saveDataManager/merge.ts +194 -0
  213. package/features/saveDataManager/save.ts +74 -0
  214. package/features/saveDataManager/serializationBrand.ts +16 -0
  215. package/features/sirenHelpers.ts +129 -0
  216. package/features/taintedLazarusPlayers.ts +113 -0
  217. package/featuresInitialized.ts +20 -0
  218. package/functions/ambush.ts +47 -0
  219. package/functions/array.ts +410 -0
  220. package/functions/benchmark.ts +36 -0
  221. package/functions/bitwise.ts +24 -0
  222. package/functions/bombs.ts +12 -0
  223. package/functions/boss.ts +227 -0
  224. package/functions/cacheFlag.ts +12 -0
  225. package/functions/cards.lua +1 -1
  226. package/functions/cards.ts +271 -0
  227. package/functions/challenges.ts +13 -0
  228. package/functions/character.ts +126 -0
  229. package/functions/charge.ts +237 -0
  230. package/functions/chargeBar.ts +67 -0
  231. package/functions/collectibleCacheFlag.ts +90 -0
  232. package/functions/collectibleSet.ts +56 -0
  233. package/functions/collectibleTag.ts +89 -0
  234. package/functions/collectibles.ts +659 -0
  235. package/functions/color.d.ts +1 -1
  236. package/functions/color.lua +0 -7
  237. package/functions/color.ts +128 -0
  238. package/functions/debug.lua +2 -2
  239. package/functions/debug.ts +68 -0
  240. package/functions/deepCopy.lua +46 -51
  241. package/functions/deepCopy.ts +535 -0
  242. package/functions/deepCopyTests.ts +386 -0
  243. package/functions/direction.ts +49 -0
  244. package/functions/doors.lua +1 -2
  245. package/functions/doors.ts +347 -0
  246. package/functions/easing.ts +182 -0
  247. package/functions/eden.ts +47 -0
  248. package/functions/effects.ts +20 -0
  249. package/functions/entity.ts +439 -0
  250. package/functions/entitySpecific.ts +889 -0
  251. package/functions/entityTypes.ts +6 -0
  252. package/functions/enums.ts +146 -0
  253. package/functions/familiars.ts +106 -0
  254. package/functions/flag.ts +165 -0
  255. package/functions/flying.ts +117 -0
  256. package/functions/globals.d.ts +3 -3
  257. package/functions/globals.lua +8 -2
  258. package/functions/globals.ts +242 -0
  259. package/functions/gridEntity.ts +511 -0
  260. package/functions/gridEntitySpecific.ts +112 -0
  261. package/functions/input.ts +139 -0
  262. package/functions/isaacAPIClass.ts +67 -0
  263. package/functions/jsonHelpers.ts +45 -0
  264. package/functions/jsonRoom.ts +100 -0
  265. package/functions/kColor.d.ts +1 -1
  266. package/functions/kColor.lua +0 -7
  267. package/functions/kColor.ts +129 -0
  268. package/functions/language.ts +13 -0
  269. package/functions/level.ts +31 -0
  270. package/functions/log.ts +720 -0
  271. package/functions/map.ts +56 -0
  272. package/functions/math.ts +149 -0
  273. package/functions/mergeTests.ts +288 -0
  274. package/functions/npc.ts +148 -0
  275. package/functions/pickupVariants.ts +60 -0
  276. package/functions/pickups.ts +499 -0
  277. package/functions/pills.lua +1 -1
  278. package/functions/pills.ts +205 -0
  279. package/functions/player.lua +9 -20
  280. package/functions/player.ts +1056 -0
  281. package/functions/playerDataStructures.ts +150 -0
  282. package/functions/playerHealth.lua +28 -39
  283. package/functions/playerHealth.ts +382 -0
  284. package/functions/playerIndex.ts +195 -0
  285. package/functions/pocketItems.ts +149 -0
  286. package/functions/positionVelocity.ts +188 -0
  287. package/functions/random.ts +77 -0
  288. package/functions/revive.ts +201 -0
  289. package/functions/rng.d.ts +1 -1
  290. package/functions/rng.lua +0 -7
  291. package/functions/rng.ts +172 -0
  292. package/functions/roomData.ts +199 -0
  293. package/functions/roomGrid.ts +109 -0
  294. package/functions/roomShape.ts +80 -0
  295. package/functions/rooms.lua +1 -3
  296. package/functions/rooms.ts +648 -0
  297. package/functions/run.ts +36 -0
  298. package/functions/saveFile.ts +128 -0
  299. package/functions/seeds.ts +19 -0
  300. package/functions/serialization.lua +0 -3
  301. package/functions/serialization.ts +91 -0
  302. package/functions/set.ts +95 -0
  303. package/functions/sound.ts +9 -0
  304. package/functions/spawnCollectible.ts +104 -0
  305. package/functions/sprite.ts +107 -0
  306. package/functions/stage.ts +125 -0
  307. package/functions/string.ts +47 -0
  308. package/functions/table.ts +189 -0
  309. package/functions/tears.ts +32 -0
  310. package/functions/transformations.lua +1 -3
  311. package/functions/transformations.ts +131 -0
  312. package/functions/trinketCacheFlag.ts +60 -0
  313. package/functions/trinketGive.ts +157 -0
  314. package/functions/trinkets.ts +215 -0
  315. package/functions/tstlClass.ts +157 -0
  316. package/functions/types.ts +36 -0
  317. package/functions/ui.ts +138 -0
  318. package/functions/utils.d.ts +0 -37
  319. package/functions/utils.lua +0 -35
  320. package/functions/utils.ts +189 -0
  321. package/functions/vector.d.ts +1 -1
  322. package/functions/vector.lua +0 -7
  323. package/functions/vector.ts +126 -0
  324. package/index.ts +172 -0
  325. package/initCustomCallbacks.ts +132 -0
  326. package/initFeatures.ts +39 -0
  327. package/interfaces/AddCallbackParameterCustom.ts +188 -0
  328. package/interfaces/ChargeBarSprites.ts +12 -0
  329. package/interfaces/JSONDoor.d.ts +4 -4
  330. package/interfaces/JSONDoor.ts +13 -0
  331. package/interfaces/JSONEntity.d.ts +5 -5
  332. package/interfaces/JSONEntity.ts +16 -0
  333. package/interfaces/JSONRoom.d.ts +9 -9
  334. package/interfaces/JSONRoom.ts +36 -0
  335. package/interfaces/JSONRooms.ts +12 -0
  336. package/interfaces/JSONSpawn.d.ts +3 -3
  337. package/interfaces/JSONSpawn.ts +14 -0
  338. package/interfaces/PlayerHealth.ts +16 -0
  339. package/interfaces/PocketItemDescription.ts +9 -0
  340. package/interfaces/SaveData.ts +29 -0
  341. package/interfaces/TrinketSituation.ts +9 -0
  342. package/interfaces/private/TSTLClassMetatable.ts +8 -0
  343. package/maps/PHDPillConversions.ts +21 -0
  344. package/maps/cardMap.ts +209 -0
  345. package/maps/characterMap.ts +87 -0
  346. package/maps/collectibleDescriptionMap.ts +732 -0
  347. package/maps/collectibleNameMap.ts +731 -0
  348. package/maps/defaultPlayerStatMap.ts +17 -0
  349. package/maps/falsePHDPillConversions.ts +35 -0
  350. package/maps/gridEntityTypeToBrokenStateMap.ts +50 -0
  351. package/maps/gridEntityXMLMap.ts +176 -0
  352. package/maps/pillEffectMap.ts +88 -0
  353. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +18 -0
  354. package/maps/roomTypeMap.ts +40 -0
  355. package/maps/trinketDescriptionMap.ts +200 -0
  356. package/maps/trinketNameMap.ts +198 -0
  357. package/objects/LRoomShapeToRectangles.ts +44 -0
  358. package/objects/callbackRegisterFunctions.ts +187 -0
  359. package/objects/cardDescriptions.ts +105 -0
  360. package/objects/cardNames.ts +105 -0
  361. package/objects/cardTypes.ts +104 -0
  362. package/objects/challengeNames.ts +52 -0
  363. package/objects/characterNames.ts +48 -0
  364. package/objects/coinSubTypeToValue.ts +14 -0
  365. package/objects/colors.ts +16 -0
  366. package/objects/directionNames.ts +11 -0
  367. package/objects/directionToDegrees.ts +11 -0
  368. package/objects/directionToVector.ts +12 -0
  369. package/objects/doorSlotFlagToDoorSlot.ts +16 -0
  370. package/objects/doorSlotToDirection.ts +14 -0
  371. package/objects/isaacAPIClassTypeToBrand.ts +11 -0
  372. package/objects/isaacAPIClassTypeToCopyFunction.ts +18 -0
  373. package/objects/languageNames.ts +13 -0
  374. package/objects/oppositeDoorSlots.ts +15 -0
  375. package/objects/pillEffectClasses.ts +63 -0
  376. package/objects/pillEffectNames.ts +57 -0
  377. package/objects/pillEffectTypes.ts +62 -0
  378. package/objects/roomShapeBounds.ts +71 -0
  379. package/objects/roomShapeLayoutSizes.ts +45 -0
  380. package/objects/roomShapeToBottomRightPosition.ts +25 -0
  381. package/objects/roomShapeToDoorSlots.ts +83 -0
  382. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +127 -0
  383. package/objects/roomShapeToGridWidth.ts +21 -0
  384. package/objects/roomShapeToTopLeftPosition.ts +26 -0
  385. package/objects/roomShapeVolumes.ts +38 -0
  386. package/objects/roomTypeNames.ts +36 -0
  387. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +14 -0
  388. package/objects/stageTypeToLetter.ts +15 -0
  389. package/objects/transformationNames.d.ts +0 -1
  390. package/objects/transformationNames.lua +0 -1
  391. package/objects/transformationNames.ts +18 -0
  392. package/package.json +2 -2
  393. package/patchErrorFunctions.ts +92 -0
  394. package/sets/LRoomShapesSet.ts +8 -0
  395. package/sets/bossSets.ts +470 -0
  396. package/sets/charactersThatStartWithAnActiveItemSet.ts +16 -0
  397. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +7 -0
  398. package/sets/charactersWithFreeDevilDealsSet.ts +4 -0
  399. package/sets/charactersWithNoRedHeartsSet.ts +17 -0
  400. package/sets/charactersWithNoSoulHeartsSet.ts +14 -0
  401. package/sets/chestPickupVariantsSet.ts +16 -0
  402. package/sets/familiarsThatShootPlayerTearsSet.ts +13 -0
  403. package/sets/lostStyleCharactersSet.ts +13 -0
  404. package/sets/mineShaftRoomSubTypesSet.ts +10 -0
  405. package/sets/redHeartSubTypesSet.ts +7 -0
  406. package/sets/sinEntityTypesSet.ts +11 -0
  407. package/sets/singleUseActiveCollectibleTypesSet.ts +13 -0
  408. package/sets/storyBossesSet.ts +17 -0
  409. package/types/AnyEntity.ts +12 -0
  410. package/types/AwaitingTextInput.d.ts +2 -0
  411. package/types/CollectibleIndex.d.ts +1 -1
  412. package/types/CollectibleIndex.ts +16 -0
  413. package/types/PickingUpItem.d.ts +3 -3
  414. package/types/PickingUpItem.ts +89 -0
  415. package/types/PlayerIndex.d.ts +1 -1
  416. package/types/PlayerIndex.ts +13 -0
  417. package/types/private/IsaacAPIClass.d.ts +1 -1
  418. package/types/private/IsaacAPIClass.ts +3 -0
  419. package/types/private/SerializedIsaacAPIClass.d.ts +1 -1
  420. package/types/private/SerializedIsaacAPIClass.ts +3 -0
  421. package/types/private/TSTLClass.d.ts +1 -1
  422. package/types/private/TSTLClass.ts +3 -0
  423. package/upgradeMod.d.ts +2 -2
  424. package/upgradeMod.lua +2 -2
  425. package/upgradeMod.ts +55 -0
@@ -0,0 +1,109 @@
1
+ import { RoomShape } from "isaac-typescript-definitions";
2
+ import { L_ROOM_SHAPE_TO_RECTANGLES } from "../objects/LRoomShapeToRectangles";
3
+ import { inRectangle } from "./math";
4
+ import {
5
+ getRoomShapeBottomRightPosition,
6
+ getRoomShapeTopLeftPosition,
7
+ getRoomShapeWidth,
8
+ isLRoom,
9
+ } from "./roomShape";
10
+
11
+ /**
12
+ * Helper function to convert grid coordinates to a world position `Vector`.
13
+ *
14
+ * For example, the coordinates of (0, 0) are equal to `Vector(80, 160)`.
15
+ */
16
+ export function gridCoordinatesToWorldPosition(x: int, y: int): Vector {
17
+ const gridPosition = Vector(x, y);
18
+ return gridPositionToWorldPosition(gridPosition);
19
+ }
20
+
21
+ /**
22
+ * Helper function to convert a grid index to a grid position.
23
+ *
24
+ * For example, in a 1x1 room, grid index 0 is equal to "Vector(-1, -1) and grid index 16 is equal
25
+ * to "Vector(0, 0)".
26
+ */
27
+ export function gridIndexToGridPosition(
28
+ gridIndex: int,
29
+ roomShape: RoomShape,
30
+ ): Vector {
31
+ const gridWidth = getRoomShapeWidth(roomShape);
32
+
33
+ const x = (gridIndex % gridWidth) - 1;
34
+ const y = Math.floor(gridIndex / gridWidth) - 1;
35
+ return Vector(x, y);
36
+ }
37
+
38
+ /**
39
+ * Helper function to convert a grid position `Vector` to a world position `Vector`.
40
+ *
41
+ * For example, the coordinates of (0, 0) are equal to `Vector(80, 160)`.
42
+ */
43
+ export function gridPositionToWorldPosition(gridPosition: Vector): Vector {
44
+ const x = (gridPosition.X + 2) * 40;
45
+ const y = (gridPosition.Y + 4) * 40;
46
+ return Vector(x, y);
47
+ }
48
+
49
+ /**
50
+ * Test if a grid position is actually in the given `RoomShape`.
51
+ *
52
+ * In this context, the grid position of the top-left wall is "Vector(-1, -1)".
53
+ */
54
+ export function isValidGridPosition(
55
+ gridPosition: Vector,
56
+ roomShape: RoomShape,
57
+ ): boolean {
58
+ return isLRoom(roomShape)
59
+ ? isValidGridPositionLRoom(gridPosition, roomShape)
60
+ : isValidGridPositionNormal(gridPosition, roomShape);
61
+ }
62
+
63
+ function isValidGridPositionNormal(gridPosition: Vector, roomShape: RoomShape) {
64
+ const topLeft = getRoomShapeTopLeftPosition(roomShape);
65
+ const bottomRight = getRoomShapeBottomRightPosition(roomShape);
66
+ return inRectangle(gridPosition, topLeft, bottomRight);
67
+ }
68
+
69
+ function isValidGridPositionLRoom(gridPosition: Vector, roomShape: RoomShape) {
70
+ const rectangles = L_ROOM_SHAPE_TO_RECTANGLES[roomShape];
71
+ if (rectangles === undefined) {
72
+ return false;
73
+ }
74
+
75
+ const [
76
+ verticalTopLeft,
77
+ verticalBottomRight,
78
+ horizontalTopLeft,
79
+ horizontalBottomRight,
80
+ ] = rectangles;
81
+ return (
82
+ inRectangle(gridPosition, verticalTopLeft, verticalBottomRight) ||
83
+ inRectangle(gridPosition, horizontalTopLeft, horizontalBottomRight)
84
+ );
85
+ }
86
+
87
+ /**
88
+ * Helper function to convert a world position `Vector` to a grid position `Vector`.
89
+ *
90
+ * In this context, the grid position of the top-left wall is "Vector(-1, -1)".
91
+ */
92
+ export function worldPositionToGridPosition(worldPos: Vector): Vector {
93
+ const x = Math.round(worldPos.X / 40 - 2);
94
+ const y = Math.round(worldPos.Y / 40 - 4);
95
+ return Vector(x, y);
96
+ }
97
+
98
+ /**
99
+ * Helper function to convert a world position `Vector` to a grid position `Vector`.
100
+ *
101
+ * In this context, the grid position of the top-left wall is "Vector(-1, -1)".
102
+ *
103
+ * This is similar to the `worldPositionToGridPosition` function, but the values are not rounded.
104
+ */
105
+ export function worldPositionToGridPositionFast(worldPos: Vector): Vector {
106
+ const x = worldPos.X / 40 - 2;
107
+ const y = worldPos.Y / 40 - 4;
108
+ return Vector(x, y);
109
+ }
@@ -0,0 +1,80 @@
1
+ import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
2
+ import { ROOM_SHAPE_BOUNDS } from "../objects/roomShapeBounds";
3
+ import { ROOM_SHAPE_LAYOUT_SIZES } from "../objects/roomShapeLayoutSizes";
4
+ import { ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION } from "../objects/roomShapeToBottomRightPosition";
5
+ import { ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA } from "../objects/roomShapeToDoorSlotsToGridIndexDelta";
6
+ import { ROOM_SHAPE_TO_GRID_WIDTH } from "../objects/roomShapeToGridWidth";
7
+ import { ROOM_SHAPE_TO_TOP_LEFT_POSITION } from "../objects/roomShapeToTopLeftPosition";
8
+ import { ROOM_SHAPE_VOLUMES } from "../objects/roomShapeVolumes";
9
+ import { L_ROOM_SHAPES_SET } from "../sets/LRoomShapesSet";
10
+
11
+ /**
12
+ * Helper function to get the grid index delta that a door out of the given room shape would lead
13
+ * to. For example, if you went through the bottom door in a room of `RoomShape.SHAPE_1x2`, you
14
+ * would end up in a room with a grid index that is +26 units from the `SafeGridIndex` of where you
15
+ * started.
16
+ */
17
+ export function getGridIndexDelta(
18
+ roomShape: RoomShape,
19
+ doorSlot: DoorSlot,
20
+ ): int | undefined {
21
+ const doorSlotToGridIndexMap =
22
+ ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA[roomShape];
23
+ return doorSlotToGridIndexMap.get(doorSlot);
24
+ }
25
+
26
+ /**
27
+ * Helper function to get the grid position of the bottom-right tile of a given room shape.
28
+ *
29
+ * "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
30
+ * wall would be at "Vector(-1, -1)".)
31
+ */
32
+ export function getRoomShapeBottomRightPosition(roomShape: RoomShape): Vector {
33
+ return ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION[roomShape];
34
+ }
35
+
36
+ /**
37
+ * Helper function to get the bounds of a room shape, which are a box representing its contents.
38
+ * This does not include the tiles that the walls are on. L rooms use the same bounds as a 2x2 room.
39
+ */
40
+ export function getRoomShapeBounds(roomShape: RoomShape): Vector {
41
+ return ROOM_SHAPE_BOUNDS[roomShape];
42
+ }
43
+
44
+ /**
45
+ * Helper function to get the dimensions of a room shape's layout. This is NOT the size of the
46
+ * room's actual contents! For that, use the `getRoomShapeBounds` function.
47
+ *
48
+ * For example, a horizontal narrow room has a layout size of equal to that of a 1x1 room.
49
+ */
50
+ export function getRoomShapeLayoutSize(roomShape: RoomShape): Vector {
51
+ return ROOM_SHAPE_LAYOUT_SIZES[roomShape];
52
+ }
53
+
54
+ /**
55
+ * Helper function to get the grid position of the top-left tile of a given room shape.
56
+ *
57
+ * "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
58
+ * wall would be at "Vector(-1, -1)".)
59
+ */
60
+ export function getRoomShapeTopLeftPosition(roomShape: RoomShape): Vector {
61
+ return ROOM_SHAPE_TO_TOP_LEFT_POSITION[roomShape];
62
+ }
63
+
64
+ /**
65
+ * Helper function to get the volume of a room shape, which is the amount of tiles that are inside
66
+ * the room.
67
+ *
68
+ * (This cannot be directly calculated from the bounds since L rooms are a special case.)
69
+ */
70
+ export function getRoomShapeVolume(roomShape: RoomShape): int {
71
+ return ROOM_SHAPE_VOLUMES[roomShape];
72
+ }
73
+
74
+ export function getRoomShapeWidth(roomShape: RoomShape): int {
75
+ return ROOM_SHAPE_TO_GRID_WIDTH[roomShape];
76
+ }
77
+
78
+ export function isLRoom(roomShape: RoomShape): boolean {
79
+ return L_ROOM_SHAPES_SET.has(roomShape);
80
+ }
@@ -32,7 +32,6 @@ local NUM_DIMENSIONS = ____constants.NUM_DIMENSIONS
32
32
  local ____roomShapeToDoorSlotsToGridIndexDelta = require("objects.roomShapeToDoorSlotsToGridIndexDelta")
33
33
  local ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA = ____roomShapeToDoorSlotsToGridIndexDelta.ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA
34
34
  local ____roomTypeNames = require("objects.roomTypeNames")
35
- local DEFAULT_ROOM_TYPE_NAME = ____roomTypeNames.DEFAULT_ROOM_TYPE_NAME
36
35
  local ROOM_TYPE_NAMES = ____roomTypeNames.ROOM_TYPE_NAMES
37
36
  local ____mineShaftRoomSubTypesSet = require("sets.mineShaftRoomSubTypesSet")
38
37
  local MINE_SHAFT_ROOM_SUB_TYPE_SET = ____mineShaftRoomSubTypesSet.MINE_SHAFT_ROOM_SUB_TYPE_SET
@@ -208,8 +207,7 @@ end
208
207
  --
209
208
  -- For example, `RoomType.TREASURE` will return "Treasure Room".
210
209
  function ____exports.getRoomTypeName(self, roomType)
211
- local roomTypeName = ROOM_TYPE_NAMES[roomType]
212
- return roomTypeName == nil and DEFAULT_ROOM_TYPE_NAME or roomTypeName
210
+ return ROOM_TYPE_NAMES[roomType]
213
211
  end
214
212
  --- Helper function to get the room descriptor for every room on the level in a specific dimension.
215
213
  -- Uses the `Level.GetRooms` method to accomplish this. Rooms without data are assumed to be