isaacscript-common 6.6.1-dev.1 → 6.6.1-dev.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 (412) hide show
  1. package/cachedClasses.d.ts +1 -0
  2. package/cachedClasses.js +59 -0
  3. package/callbacks/customRevive.js +153 -0
  4. package/callbacks/itemPickup.js +64 -0
  5. package/callbacks/postAmbush.js +54 -0
  6. package/callbacks/postBombExploded.js +20 -0
  7. package/callbacks/postBombInitLate.js +28 -0
  8. package/callbacks/postBoneSwing.js +49 -0
  9. package/callbacks/postCollectibleEmpty.js +32 -0
  10. package/callbacks/postCollectibleInitFirst.js +27 -0
  11. package/callbacks/postCursedTeleport.js +120 -0
  12. package/callbacks/postCustomDoorEnter.js +205 -0
  13. package/callbacks/postDiceRoomActivated.js +39 -0
  14. package/callbacks/postDoorRender.js +20 -0
  15. package/callbacks/postDoorUpdate.js +20 -0
  16. package/callbacks/postEffectInitLate.js +28 -0
  17. package/callbacks/postEffectStateChanged.js +31 -0
  18. package/callbacks/postEsauJr.js +70 -0
  19. package/callbacks/postFamiliarInitLate.js +28 -0
  20. package/callbacks/postFamiliarStateChanged.js +31 -0
  21. package/callbacks/postFlip.js +59 -0
  22. package/callbacks/postGreedModeWave.js +31 -0
  23. package/callbacks/postGridEntity.js +107 -0
  24. package/callbacks/postGridEntityCollision.js +49 -0
  25. package/callbacks/postGridEntityRender.js +20 -0
  26. package/callbacks/postHolyMantleRemoved.js +33 -0
  27. package/callbacks/postItemDischarged.js +94 -0
  28. package/callbacks/postKnifeInitLate.js +28 -0
  29. package/callbacks/postLaserInitLate.js +28 -0
  30. package/callbacks/postNPCInitLate.js +28 -0
  31. package/callbacks/postNPCStateChanged.js +31 -0
  32. package/callbacks/postNewRoomEarly.js +69 -0
  33. package/callbacks/postPickupCollect.js +37 -0
  34. package/callbacks/postPickupInitFirst.js +52 -0
  35. package/callbacks/postPickupInitLate.js +28 -0
  36. package/callbacks/postPickupStateChanged.js +31 -0
  37. package/callbacks/postPitRender.js +20 -0
  38. package/callbacks/postPitUpdate.js +20 -0
  39. package/callbacks/postPlayerChangeHealth.js +43 -0
  40. package/callbacks/postPlayerChangeType.js +31 -0
  41. package/callbacks/postPlayerCollectible.js +74 -0
  42. package/callbacks/postPlayerFatalDamage.js +74 -0
  43. package/callbacks/postPlayerInitLate.js +28 -0
  44. package/callbacks/postPlayerReordered.js +109 -0
  45. package/callbacks/postPoopRender.js +20 -0
  46. package/callbacks/postPoopUpdate.js +20 -0
  47. package/callbacks/postPressurePlateRender.js +20 -0
  48. package/callbacks/postPressurePlateUpdate.js +20 -0
  49. package/callbacks/postProjectileInitLate.js +28 -0
  50. package/callbacks/postPurchase.js +39 -0
  51. package/callbacks/postRockRender.js +20 -0
  52. package/callbacks/postRockUpdate.js +20 -0
  53. package/callbacks/postRoomClearChanged.js +41 -0
  54. package/callbacks/postSacrifice.js +38 -0
  55. package/callbacks/postSlotDestroyed.js +64 -0
  56. package/callbacks/postSlotInitUpdate.js +49 -0
  57. package/callbacks/postSlotRender.js +48 -0
  58. package/callbacks/postSpikesRender.js +20 -0
  59. package/callbacks/postSpikesUpdate.js +20 -0
  60. package/callbacks/postTNTRender.js +20 -0
  61. package/callbacks/postTNTUpdate.js +20 -0
  62. package/callbacks/postTearInitLate.js +28 -0
  63. package/callbacks/postTearInitVeryLate.js +32 -0
  64. package/callbacks/postTransformation.js +37 -0
  65. package/callbacks/postTrinketBreak.js +64 -0
  66. package/callbacks/preBerserkDeath.js +35 -0
  67. package/callbacks/preNewLevel.js +45 -0
  68. package/callbacks/reorderedCallbacks.js +136 -0
  69. package/callbacks/subscriptions/postAmbushFinished.js +20 -0
  70. package/callbacks/subscriptions/postAmbushStarted.js +20 -0
  71. package/callbacks/subscriptions/postBombInitLate.js +20 -0
  72. package/callbacks/subscriptions/postBoneExploded.js +20 -0
  73. package/callbacks/subscriptions/postBoneSwing.js +16 -0
  74. package/callbacks/subscriptions/postCollectibleEmpty.js +21 -0
  75. package/callbacks/subscriptions/postCollectibleInitFirst.js +21 -0
  76. package/callbacks/subscriptions/postCursedTeleport.js +16 -0
  77. package/callbacks/subscriptions/postCustomDoorEnter.js +21 -0
  78. package/callbacks/subscriptions/postCustomRevive.js +21 -0
  79. package/callbacks/subscriptions/postDiceRoomActivated.js +21 -0
  80. package/callbacks/subscriptions/postDoorRender.js +22 -0
  81. package/callbacks/subscriptions/postDoorUpdate.js +22 -0
  82. package/callbacks/subscriptions/postEffectInitLate.js +20 -0
  83. package/callbacks/subscriptions/postEffectStateChanged.js +20 -0
  84. package/callbacks/subscriptions/postEsauJr.js +16 -0
  85. package/callbacks/subscriptions/postFamiliarInitLate.js +20 -0
  86. package/callbacks/subscriptions/postFamiliarStateChanged.js +20 -0
  87. package/callbacks/subscriptions/postFirstEsauJr.js +16 -0
  88. package/callbacks/subscriptions/postFirstFlip.js +16 -0
  89. package/callbacks/subscriptions/postFlip.js +16 -0
  90. package/callbacks/subscriptions/postGameStartedReordered.js +16 -0
  91. package/callbacks/subscriptions/postGreedModeWave.js +16 -0
  92. package/callbacks/subscriptions/postGridEntityBroken.js +28 -0
  93. package/callbacks/subscriptions/postGridEntityCollision.js +28 -0
  94. package/callbacks/subscriptions/postGridEntityInit.js +28 -0
  95. package/callbacks/subscriptions/postGridEntityRemove.js +26 -0
  96. package/callbacks/subscriptions/postGridEntityRender.js +28 -0
  97. package/callbacks/subscriptions/postGridEntityStateChanged.js +28 -0
  98. package/callbacks/subscriptions/postGridEntityUpdate.js +28 -0
  99. package/callbacks/subscriptions/postHolyMantleRemoved.js +25 -0
  100. package/callbacks/subscriptions/postItemDischarged.js +21 -0
  101. package/callbacks/subscriptions/postItemPickup.js +25 -0
  102. package/callbacks/subscriptions/postKnifeInitLate.js +20 -0
  103. package/callbacks/subscriptions/postLaserInitLate.js +20 -0
  104. package/callbacks/subscriptions/postNPCInitLate.js +20 -0
  105. package/callbacks/subscriptions/postNPCStateChanged.js +24 -0
  106. package/callbacks/subscriptions/postNewLevelReordered.js +16 -0
  107. package/callbacks/subscriptions/postNewRoomEarly.js +16 -0
  108. package/callbacks/subscriptions/postNewRoomReordered.js +16 -0
  109. package/callbacks/subscriptions/postPEffectUpdateReordered.js +25 -0
  110. package/callbacks/subscriptions/postPickupCollect.js +20 -0
  111. package/callbacks/subscriptions/postPickupInitFirst.js +20 -0
  112. package/callbacks/subscriptions/postPickupInitLate.js +20 -0
  113. package/callbacks/subscriptions/postPickupStateChanged.js +20 -0
  114. package/callbacks/subscriptions/postPitRender.js +22 -0
  115. package/callbacks/subscriptions/postPitUpdate.js +22 -0
  116. package/callbacks/subscriptions/postPlayerChangeHealth.js +25 -0
  117. package/callbacks/subscriptions/postPlayerChangeType.js +20 -0
  118. package/callbacks/subscriptions/postPlayerCollectibleAdded.js +21 -0
  119. package/callbacks/subscriptions/postPlayerCollectibleRemoved.js +21 -0
  120. package/callbacks/subscriptions/postPlayerFatalDamage.js +29 -0
  121. package/callbacks/subscriptions/postPlayerInitLate.js +25 -0
  122. package/callbacks/subscriptions/postPlayerInitReordered.js +25 -0
  123. package/callbacks/subscriptions/postPlayerRenderReordered.js +25 -0
  124. package/callbacks/subscriptions/postPlayerUpdateReordered.js +25 -0
  125. package/callbacks/subscriptions/postPoopRender.js +22 -0
  126. package/callbacks/subscriptions/postPoopUpdate.js +22 -0
  127. package/callbacks/subscriptions/postPressurePlateRender.js +22 -0
  128. package/callbacks/subscriptions/postPressurePlateUpdate.js +22 -0
  129. package/callbacks/subscriptions/postProjectileInitLate.js +21 -0
  130. package/callbacks/subscriptions/postPurchase.js +16 -0
  131. package/callbacks/subscriptions/postRockRender.js +22 -0
  132. package/callbacks/subscriptions/postRockUpdate.js +22 -0
  133. package/callbacks/subscriptions/postRoomClearChanged.js +20 -0
  134. package/callbacks/subscriptions/postSacrifice.js +25 -0
  135. package/callbacks/subscriptions/postSlotAnimationChanged.js +20 -0
  136. package/callbacks/subscriptions/postSlotDestroyed.js +26 -0
  137. package/callbacks/subscriptions/postSlotInit.js +20 -0
  138. package/callbacks/subscriptions/postSlotRender.js +20 -0
  139. package/callbacks/subscriptions/postSlotUpdate.js +20 -0
  140. package/callbacks/subscriptions/postSpikesRender.js +22 -0
  141. package/callbacks/subscriptions/postSpikesUpdate.js +22 -0
  142. package/callbacks/subscriptions/postTNTRender.js +22 -0
  143. package/callbacks/subscriptions/postTNTUpdate.js +22 -0
  144. package/callbacks/subscriptions/postTearInitLate.js +20 -0
  145. package/callbacks/subscriptions/postTearInitVeryLate.js +20 -0
  146. package/callbacks/subscriptions/postTransformation.js +20 -0
  147. package/callbacks/subscriptions/postTrinketBreak.js +21 -0
  148. package/callbacks/subscriptions/preBerserkDeath.js +26 -0
  149. package/callbacks/subscriptions/preCustomRevive.js +29 -0
  150. package/callbacks/subscriptions/preItemPickup.js +25 -0
  151. package/callbacks/subscriptions/preNewLevel.js +16 -0
  152. package/classes/DefaultMap.js +145 -0
  153. package/classes/ModUpgraded.js +57 -0
  154. package/constants.js +143 -0
  155. package/constantsFirstLast.js +156 -0
  156. package/enums/AmbushType.js +6 -0
  157. package/enums/CornerType.js +8 -0
  158. package/enums/DecorationVariant.js +11 -0
  159. package/enums/HealthType.js +18 -0
  160. package/enums/ModCallbackCustom.js +1213 -0
  161. package/enums/PocketItemType.js +10 -0
  162. package/enums/RockAltType.js +9 -0
  163. package/enums/SerializationType.js +7 -0
  164. package/enums/SlotDestructionType.js +6 -0
  165. package/enums/private/CopyableIsaacAPIClassType.js +9 -0
  166. package/enums/private/SaveDataKey.js +8 -0
  167. package/enums/private/SerializationBrand.js +41 -0
  168. package/features/characterHealthConversion.js +86 -0
  169. package/features/characterStats.js +52 -0
  170. package/features/collectibleItemPoolType.js +45 -0
  171. package/features/customGridEntity.js +148 -0
  172. package/features/customStage/backdrop.js +191 -0
  173. package/features/customStage/customStageConstants.js +2 -0
  174. package/features/customStage/exports.js +147 -0
  175. package/features/customStage/gridEntities.js +138 -0
  176. package/features/customStage/init.js +104 -0
  177. package/features/customStage/metadata.json +1 -0
  178. package/features/customStage/shadows.js +63 -0
  179. package/features/customStage/streakText.js +35 -0
  180. package/features/customStage/util.js +36 -0
  181. package/features/customStage/v.js +18 -0
  182. package/features/customStage/versusScreen.js +184 -0
  183. package/features/debugDisplay/debugDisplay.js +183 -0
  184. package/features/debugDisplay/exports.js +441 -0
  185. package/features/debugDisplay/v.d.ts +18 -0
  186. package/features/debugDisplay/v.js +61 -0
  187. package/features/deployJSONRoom.js +532 -0
  188. package/features/disableAllSound.js +63 -0
  189. package/features/disableInputs.js +130 -0
  190. package/features/extraConsoleCommands/commandsDisplay.js +236 -0
  191. package/features/extraConsoleCommands/commandsSubroutines.js +109 -0
  192. package/features/extraConsoleCommands/exports.js +53 -0
  193. package/features/extraConsoleCommands/init.js +239 -0
  194. package/features/extraConsoleCommands/listCommands.js +1081 -0
  195. package/features/extraConsoleCommands/v.js +25 -0
  196. package/features/fadeInRemover.js +51 -0
  197. package/features/fastReset.js +61 -0
  198. package/features/forgottenSwitch.js +33 -0
  199. package/features/pause.js +68 -0
  200. package/features/persistentEntities.js +120 -0
  201. package/features/playerInventory.js +89 -0
  202. package/features/ponyDetection.js +63 -0
  203. package/features/preventCollectibleRotation.js +81 -0
  204. package/features/registerHotkey.js +91 -0
  205. package/features/roomClearFrame.js +42 -0
  206. package/features/runInNFrames.js +189 -0
  207. package/features/runNextRoom.js +34 -0
  208. package/features/saveDataManager/exports.js +183 -0
  209. package/features/saveDataManager/load.js +69 -0
  210. package/features/saveDataManager/main.js +131 -0
  211. package/features/saveDataManager/maps.js +9 -0
  212. package/features/saveDataManager/merge.js +139 -0
  213. package/features/saveDataManager/save.js +43 -0
  214. package/features/saveDataManager/saveDataManagerConstants.js +4 -0
  215. package/features/saveDataManager/serializationBrand.js +12 -0
  216. package/features/sirenHelpers.js +90 -0
  217. package/features/stageHistory.js +43 -0
  218. package/features/taintedLazarusPlayers.js +92 -0
  219. package/featuresInitialized.js +16 -0
  220. package/functions/ambush.js +35 -0
  221. package/functions/array.js +423 -0
  222. package/functions/benchmark.js +28 -0
  223. package/functions/bitwise.js +74 -0
  224. package/functions/bombs.js +11 -0
  225. package/functions/boss.js +137 -0
  226. package/functions/cacheFlag.js +11 -0
  227. package/functions/cards.js +217 -0
  228. package/functions/challenges.js +9 -0
  229. package/functions/character.js +102 -0
  230. package/functions/charge.js +202 -0
  231. package/functions/chargeBar.js +44 -0
  232. package/functions/collectibleCacheFlag.js +68 -0
  233. package/functions/collectibleSet.js +108 -0
  234. package/functions/collectibleTag.js +65 -0
  235. package/functions/collectibles.js +469 -0
  236. package/functions/color.d.ts +1 -1
  237. package/functions/color.js +60 -0
  238. package/functions/debug.js +60 -0
  239. package/functions/deepCopy.js +361 -0
  240. package/functions/deepCopyTests.js +308 -0
  241. package/functions/direction.js +41 -0
  242. package/functions/doors.js +326 -0
  243. package/functions/easing.js +142 -0
  244. package/functions/eden.js +32 -0
  245. package/functions/effects.js +11 -0
  246. package/functions/entity.js +324 -0
  247. package/functions/entitySpecific.js +481 -0
  248. package/functions/entityTypes.js +6 -0
  249. package/functions/enums.js +151 -0
  250. package/functions/familiars.js +85 -0
  251. package/functions/flag.js +137 -0
  252. package/functions/flying.js +88 -0
  253. package/functions/globals.js +230 -0
  254. package/functions/gridEntity.js +488 -0
  255. package/functions/gridEntitySpecific.js +109 -0
  256. package/functions/input.js +95 -0
  257. package/functions/isaacAPIClass.js +48 -0
  258. package/functions/jsonHelpers.js +40 -0
  259. package/functions/jsonRoom.js +132 -0
  260. package/functions/kColor.d.ts +1 -1
  261. package/functions/kColor.js +63 -0
  262. package/functions/language.js +13 -0
  263. package/functions/level.js +20 -0
  264. package/functions/log.js +567 -0
  265. package/functions/map.js +45 -0
  266. package/functions/math.js +103 -0
  267. package/functions/mergeTests.js +213 -0
  268. package/functions/minimap.js +80 -0
  269. package/functions/nextStage.js +290 -0
  270. package/functions/npc.js +101 -0
  271. package/functions/pickupVariants.js +47 -0
  272. package/functions/pickups.js +219 -0
  273. package/functions/pills.js +160 -0
  274. package/functions/player.js +808 -0
  275. package/functions/playerCenter.js +50 -0
  276. package/functions/playerDataStructures.js +114 -0
  277. package/functions/playerHealth.js +321 -0
  278. package/functions/playerIndex.js +160 -0
  279. package/functions/pocketItems.js +124 -0
  280. package/functions/positionVelocity.js +136 -0
  281. package/functions/random.js +73 -0
  282. package/functions/revive.js +140 -0
  283. package/functions/rng.d.ts +1 -1
  284. package/functions/rng.js +117 -0
  285. package/functions/roomData.js +174 -0
  286. package/functions/roomGrid.js +81 -0
  287. package/functions/roomShape.js +99 -0
  288. package/functions/rooms.js +487 -0
  289. package/functions/run.js +53 -0
  290. package/functions/saveFile.js +104 -0
  291. package/functions/seeds.js +18 -0
  292. package/functions/serialization.js +52 -0
  293. package/functions/set.js +99 -0
  294. package/functions/sound.js +9 -0
  295. package/functions/spawnCollectible.js +66 -0
  296. package/functions/sprite.js +80 -0
  297. package/functions/stage.js +172 -0
  298. package/functions/string.js +37 -0
  299. package/functions/table.js +143 -0
  300. package/functions/tears.js +31 -0
  301. package/functions/transformations.js +101 -0
  302. package/functions/trinketCacheFlag.js +46 -0
  303. package/functions/trinketGive.js +121 -0
  304. package/functions/trinkets.js +169 -0
  305. package/functions/tstlClass.js +125 -0
  306. package/functions/types.js +27 -0
  307. package/functions/ui.js +124 -0
  308. package/functions/utils.js +172 -0
  309. package/functions/vector.js +68 -0
  310. package/index.js +140 -0
  311. package/initCustomCallbacks.js +133 -0
  312. package/initFeatures.js +51 -0
  313. package/interfaces/AddCallbackParameterCustom.js +2 -0
  314. package/interfaces/ChargeBarSprites.js +2 -0
  315. package/interfaces/Corner.js +2 -0
  316. package/interfaces/CustomGridEntityData.js +2 -0
  317. package/interfaces/CustomStage.js +2 -0
  318. package/interfaces/CustomStageLua.js +13 -0
  319. package/interfaces/JSONRoomsFile.js +2 -0
  320. package/interfaces/PlayerHealth.js +2 -0
  321. package/interfaces/PocketItemDescription.js +2 -0
  322. package/interfaces/SaveData.js +2 -0
  323. package/interfaces/TrinketSituation.js +2 -0
  324. package/interfaces/private/TSTLClassMetatable.js +2 -0
  325. package/maps/PHDPillConversions.js +20 -0
  326. package/maps/cardMap.js +208 -0
  327. package/maps/characterMap.js +86 -0
  328. package/maps/collectibleDescriptionMap.js +728 -0
  329. package/maps/collectibleNameMap.js +727 -0
  330. package/maps/defaultPlayerStatMap.js +14 -0
  331. package/maps/falsePHDPillConversions.js +34 -0
  332. package/maps/gridEntityTypeToBrokenStateMap.js +29 -0
  333. package/maps/gridEntityXMLMap.js +128 -0
  334. package/maps/pillEffectMap.js +88 -0
  335. package/maps/roomShapeToTopLeftWallGridIndexMap.js +14 -0
  336. package/maps/roomTypeMap.js +39 -0
  337. package/maps/trinketDescriptionMap.js +196 -0
  338. package/maps/trinketNameMap.js +195 -0
  339. package/objects/LRoomShapeToRectangles.js +33 -0
  340. package/objects/backdropTypeToRockAltType.js +66 -0
  341. package/objects/bossNamePNGFileNames.js +112 -0
  342. package/objects/bossPortraitPNGFileNames.js +115 -0
  343. package/objects/callbackRegisterFunctions.js +170 -0
  344. package/objects/cardDescriptions.js +104 -0
  345. package/objects/cardNames.js +104 -0
  346. package/objects/cardTypes.js +103 -0
  347. package/objects/challengeNames.js +51 -0
  348. package/objects/characterNames.js +46 -0
  349. package/objects/coinSubTypeToValue.js +13 -0
  350. package/objects/colors.d.ts +1 -0
  351. package/objects/colors.js +24 -0
  352. package/objects/directionNames.js +9 -0
  353. package/objects/directionToDegrees.js +9 -0
  354. package/objects/directionToVector.js +10 -0
  355. package/objects/doorSlotFlagToDoorSlot.js +13 -0
  356. package/objects/doorSlotToDirection.js +13 -0
  357. package/objects/doorSlotToDoorSlotFlag.js +13 -0
  358. package/objects/isaacAPIClassTypeToBrand.js +9 -0
  359. package/objects/isaacAPIClassTypeToCopyFunction.js +12 -0
  360. package/objects/languageNames.js +11 -0
  361. package/objects/oppositeDoorSlots.js +13 -0
  362. package/objects/pillEffectClasses.js +56 -0
  363. package/objects/pillEffectNames.js +55 -0
  364. package/objects/pillEffectTypes.js +55 -0
  365. package/objects/playerNamePNGFileNames.js +55 -0
  366. package/objects/playerPortraitPNGFileNames.js +52 -0
  367. package/objects/roomShapeBounds.js +46 -0
  368. package/objects/roomShapeCorners.js +268 -0
  369. package/objects/roomShapeLayoutSizes.js +39 -0
  370. package/objects/roomShapeToBottomRightPosition.js +22 -0
  371. package/objects/roomShapeToDoorSlotCoordinates.js +109 -0
  372. package/objects/roomShapeToDoorSlots.js +69 -0
  373. package/objects/roomShapeToDoorSlotsToGridIndexDelta.js +113 -0
  374. package/objects/roomShapeToGridWidth.js +18 -0
  375. package/objects/roomShapeToTopLeftPosition.js +23 -0
  376. package/objects/roomShapeVolumes.js +30 -0
  377. package/objects/roomTypeGotoPrefixes.js +33 -0
  378. package/objects/roomTypeNames.js +34 -0
  379. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.js +12 -0
  380. package/objects/stageTypeSuffixes.js +10 -0
  381. package/objects/stageTypeToLetter.js +12 -0
  382. package/objects/transformationNames.js +18 -0
  383. package/objects/versusScreenBackgroundColors.js +36 -0
  384. package/objects/versusScreenDirtSpotColors.js +36 -0
  385. package/package.json +1 -1
  386. package/patchErrorFunctions.js +67 -0
  387. package/sets/LRoomShapesSet.js +8 -0
  388. package/sets/bossSets.js +374 -0
  389. package/sets/charactersThatStartWithAnActiveItemSet.js +15 -0
  390. package/sets/charactersWithBlackHeartFromEternalHeartSet.js +6 -0
  391. package/sets/charactersWithFreeDevilDealsSet.js +3 -0
  392. package/sets/charactersWithNoRedHeartsSet.js +16 -0
  393. package/sets/charactersWithNoSoulHeartsSet.js +13 -0
  394. package/sets/chestPickupVariantsSet.js +16 -0
  395. package/sets/consoleCommandsSet.js +61 -0
  396. package/sets/familiarsThatShootPlayerTearsSet.js +12 -0
  397. package/sets/lostStyleCharactersSet.js +13 -0
  398. package/sets/mineShaftRoomSubTypesSet.js +9 -0
  399. package/sets/narrowRoomShapesSet.js +8 -0
  400. package/sets/redHeartSubTypesSet.js +7 -0
  401. package/sets/sinEntityTypesSet.js +11 -0
  402. package/sets/singleUseActiveCollectibleTypesSet.js +12 -0
  403. package/sets/storyBossesSet.js +17 -0
  404. package/shaderCrashFix.js +17 -0
  405. package/types/AnyEntity.js +2 -0
  406. package/types/CollectibleIndex.js +2 -0
  407. package/types/PickingUpItem.js +38 -0
  408. package/types/PlayerIndex.js +2 -0
  409. package/types/private/IsaacAPIClass.js +2 -0
  410. package/types/private/SerializedIsaacAPIClass.js +2 -0
  411. package/types/private/TSTLClass.js +2 -0
  412. package/upgradeMod.js +47 -0
@@ -0,0 +1,268 @@
1
+ import { RoomShape } from "isaac-typescript-definitions";
2
+ import { CornerType } from "../enums/CornerType";
3
+ const TWO_BY_TWO_CENTER_X = 580;
4
+ const TWO_BY_TWO_CENTER_Y = 420;
5
+ /** The locations of the corners for each room shape. */
6
+ export const ROOM_SHAPE_CORNERS = {
7
+ // 1
8
+ [RoomShape.SHAPE_1x1]: [
9
+ {
10
+ type: CornerType.TOP_LEFT,
11
+ position: Vector(60, 140),
12
+ },
13
+ {
14
+ type: CornerType.TOP_RIGHT,
15
+ position: Vector(580, 140),
16
+ },
17
+ {
18
+ type: CornerType.BOTTOM_LEFT,
19
+ position: Vector(60, 420),
20
+ },
21
+ {
22
+ type: CornerType.BOTTOM_RIGHT,
23
+ position: Vector(580, 420),
24
+ },
25
+ ],
26
+ // 2
27
+ [RoomShape.IH]: [
28
+ {
29
+ type: CornerType.TOP_LEFT,
30
+ position: Vector(60, 220),
31
+ },
32
+ {
33
+ type: CornerType.TOP_RIGHT,
34
+ position: Vector(580, 220),
35
+ },
36
+ {
37
+ type: CornerType.BOTTOM_LEFT,
38
+ position: Vector(60, 340),
39
+ },
40
+ {
41
+ type: CornerType.BOTTOM_RIGHT,
42
+ position: Vector(580, 340),
43
+ },
44
+ ],
45
+ // 3
46
+ [RoomShape.IV]: [
47
+ {
48
+ type: CornerType.TOP_LEFT,
49
+ position: Vector(220, 140),
50
+ },
51
+ {
52
+ type: CornerType.TOP_RIGHT,
53
+ position: Vector(420, 140),
54
+ },
55
+ {
56
+ type: CornerType.BOTTOM_LEFT,
57
+ position: Vector(220, 420),
58
+ },
59
+ {
60
+ type: CornerType.BOTTOM_RIGHT,
61
+ position: Vector(420, 420),
62
+ },
63
+ ],
64
+ // 4
65
+ [RoomShape.SHAPE_1x2]: [
66
+ {
67
+ type: CornerType.TOP_LEFT,
68
+ position: Vector(60, 140),
69
+ },
70
+ {
71
+ type: CornerType.TOP_RIGHT,
72
+ position: Vector(580, 140),
73
+ },
74
+ {
75
+ type: CornerType.BOTTOM_LEFT,
76
+ position: Vector(60, 700),
77
+ },
78
+ {
79
+ type: CornerType.BOTTOM_RIGHT,
80
+ position: Vector(580, 700),
81
+ },
82
+ ],
83
+ // 5
84
+ [RoomShape.IIV]: [
85
+ {
86
+ type: CornerType.TOP_LEFT,
87
+ position: Vector(220, 140),
88
+ },
89
+ {
90
+ type: CornerType.TOP_RIGHT,
91
+ position: Vector(420, 140),
92
+ },
93
+ {
94
+ type: CornerType.BOTTOM_LEFT,
95
+ position: Vector(220, 700),
96
+ },
97
+ {
98
+ type: CornerType.BOTTOM_RIGHT,
99
+ position: Vector(420, 700),
100
+ },
101
+ ],
102
+ // 6
103
+ [RoomShape.SHAPE_2x1]: [
104
+ {
105
+ type: CornerType.TOP_LEFT,
106
+ position: Vector(60, 140),
107
+ },
108
+ {
109
+ type: CornerType.TOP_RIGHT,
110
+ position: Vector(1100, 140),
111
+ },
112
+ {
113
+ type: CornerType.BOTTOM_LEFT,
114
+ position: Vector(60, 420),
115
+ },
116
+ {
117
+ type: CornerType.BOTTOM_RIGHT,
118
+ position: Vector(1100, 420),
119
+ },
120
+ ],
121
+ // 7
122
+ [RoomShape.IIH]: [
123
+ {
124
+ type: CornerType.TOP_LEFT,
125
+ position: Vector(60, 220),
126
+ },
127
+ {
128
+ type: CornerType.TOP_RIGHT,
129
+ position: Vector(1100, 220),
130
+ },
131
+ {
132
+ type: CornerType.BOTTOM_LEFT,
133
+ position: Vector(60, 340),
134
+ },
135
+ {
136
+ type: CornerType.BOTTOM_RIGHT,
137
+ position: Vector(1100, 340),
138
+ },
139
+ ],
140
+ // 8
141
+ [RoomShape.SHAPE_2x2]: [
142
+ {
143
+ type: CornerType.TOP_LEFT,
144
+ position: Vector(60, 140),
145
+ },
146
+ {
147
+ type: CornerType.TOP_RIGHT,
148
+ position: Vector(1100, 140),
149
+ },
150
+ {
151
+ type: CornerType.BOTTOM_LEFT,
152
+ position: Vector(60, 700),
153
+ },
154
+ {
155
+ type: CornerType.BOTTOM_RIGHT,
156
+ position: Vector(1100, 700),
157
+ },
158
+ ],
159
+ // 9
160
+ [RoomShape.LTL]: [
161
+ {
162
+ type: CornerType.TOP_LEFT,
163
+ position: Vector(TWO_BY_TWO_CENTER_X, 140), // Center
164
+ },
165
+ {
166
+ type: CornerType.TOP_RIGHT,
167
+ position: Vector(1100, 140),
168
+ },
169
+ {
170
+ type: CornerType.TOP_LEFT,
171
+ position: Vector(60, TWO_BY_TWO_CENTER_Y), // Left
172
+ },
173
+ {
174
+ type: CornerType.BOTTOM_RIGHT,
175
+ position: Vector(TWO_BY_TWO_CENTER_X, TWO_BY_TWO_CENTER_Y), // Center
176
+ },
177
+ {
178
+ type: CornerType.BOTTOM_LEFT,
179
+ position: Vector(60, 700),
180
+ },
181
+ {
182
+ type: CornerType.BOTTOM_RIGHT,
183
+ position: Vector(1100, 700),
184
+ },
185
+ ],
186
+ // 10
187
+ [RoomShape.LTR]: [
188
+ {
189
+ type: CornerType.TOP_LEFT,
190
+ position: Vector(60, 140),
191
+ },
192
+ {
193
+ type: CornerType.TOP_RIGHT,
194
+ position: Vector(TWO_BY_TWO_CENTER_X, 140), // Center
195
+ },
196
+ {
197
+ type: CornerType.BOTTOM_LEFT,
198
+ position: Vector(TWO_BY_TWO_CENTER_X, TWO_BY_TWO_CENTER_Y), // Center
199
+ },
200
+ {
201
+ type: CornerType.TOP_RIGHT,
202
+ position: Vector(1100, TWO_BY_TWO_CENTER_Y), // Right
203
+ },
204
+ {
205
+ type: CornerType.BOTTOM_LEFT,
206
+ position: Vector(60, 700),
207
+ },
208
+ {
209
+ type: CornerType.BOTTOM_RIGHT,
210
+ position: Vector(1100, 700),
211
+ },
212
+ ],
213
+ // 11
214
+ [RoomShape.LBL]: [
215
+ {
216
+ type: CornerType.TOP_LEFT,
217
+ position: Vector(60, 140),
218
+ },
219
+ {
220
+ type: CornerType.TOP_RIGHT,
221
+ position: Vector(1100, 140),
222
+ },
223
+ {
224
+ type: CornerType.BOTTOM_LEFT,
225
+ position: Vector(TWO_BY_TWO_CENTER_X, 140), // Left
226
+ },
227
+ {
228
+ type: CornerType.TOP_RIGHT,
229
+ position: Vector(TWO_BY_TWO_CENTER_X, TWO_BY_TWO_CENTER_Y), // Center
230
+ },
231
+ {
232
+ type: CornerType.BOTTOM_LEFT,
233
+ position: Vector(TWO_BY_TWO_CENTER_X, 700), // Center
234
+ },
235
+ {
236
+ type: CornerType.BOTTOM_RIGHT,
237
+ position: Vector(1100, 700),
238
+ },
239
+ ],
240
+ // 12
241
+ [RoomShape.LBR]: [
242
+ {
243
+ type: CornerType.TOP_LEFT,
244
+ position: Vector(60, 140),
245
+ },
246
+ {
247
+ type: CornerType.TOP_RIGHT,
248
+ position: Vector(1100, 140),
249
+ },
250
+ {
251
+ type: CornerType.TOP_LEFT,
252
+ position: Vector(TWO_BY_TWO_CENTER_X, TWO_BY_TWO_CENTER_Y), // Center
253
+ },
254
+ {
255
+ type: CornerType.BOTTOM_RIGHT,
256
+ position: Vector(1100, TWO_BY_TWO_CENTER_Y), // Right
257
+ },
258
+ {
259
+ type: CornerType.BOTTOM_LEFT,
260
+ position: Vector(60, 700),
261
+ },
262
+ {
263
+ type: CornerType.BOTTOM_RIGHT,
264
+ position: Vector(TWO_BY_TWO_CENTER_X, 700), // Right
265
+ },
266
+ ],
267
+ };
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vbVNoYXBlQ29ybmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2lzYWFjc2NyaXB0LWNvbW1vbi9zcmMvb2JqZWN0cy9yb29tU2hhcGVDb3JuZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHakQsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEMsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUUzQjtJQUNGLElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNyQjtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTtZQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUM7U0FDMUI7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsU0FBUztZQUMxQixRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDM0I7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsV0FBVztZQUM1QixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUM7U0FDMUI7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWTtZQUM3QixRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDM0I7S0FDRjtJQUVELElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNkO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztTQUMxQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztTQUMzQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztTQUMxQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxZQUFZO1lBQzdCLFFBQVEsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztTQUMzQjtLQUNGO0lBRUQsSUFBSTtJQUNKLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ2Q7WUFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1NBQzNCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFNBQVM7WUFDMUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1NBQzNCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFdBQVc7WUFDNUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1NBQzNCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVk7WUFDN0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1NBQzNCO0tBQ0Y7SUFFRCxJQUFJO0lBQ0osQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDckI7WUFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDO1NBQzFCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFNBQVM7WUFDMUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1NBQzNCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFdBQVc7WUFDNUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDO1NBQzFCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVk7WUFDN0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1NBQzNCO0tBQ0Y7SUFFRCxJQUFJO0lBQ0osQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDZjtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTtZQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDM0I7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsU0FBUztZQUMxQixRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDM0I7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsV0FBVztZQUM1QixRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDM0I7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWTtZQUM3QixRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDM0I7S0FDRjtJQUVELElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNyQjtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTtZQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUM7U0FDMUI7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsU0FBUztZQUMxQixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7U0FDNUI7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsV0FBVztZQUM1QixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUM7U0FDMUI7UUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWTtZQUM3QixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7U0FDNUI7S0FDRjtJQUVELElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNmO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztTQUMxQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztTQUM1QjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztTQUMxQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxZQUFZO1lBQzdCLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztTQUM1QjtLQUNGO0lBRUQsSUFBSTtJQUNKLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3JCO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztTQUMxQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztTQUM1QjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztTQUMxQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxZQUFZO1lBQzdCLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztTQUM1QjtLQUNGO0lBRUQsSUFBSTtJQUNKLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FB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
@@ -0,0 +1,39 @@
1
+ import { RoomShape } from "isaac-typescript-definitions";
2
+ import { ONE_BY_ONE_CONTENTS_HEIGHT, ONE_BY_ONE_CONTENTS_WIDTH, } from "./roomShapeVolumes";
3
+ const ONE_BY_ONE_LAYOUT_SIZE = [
4
+ ONE_BY_ONE_CONTENTS_WIDTH,
5
+ ONE_BY_ONE_CONTENTS_HEIGHT,
6
+ ];
7
+ const TWO_BY_ONE_VERTICAL_LAYOUT_SIZE = [
8
+ ONE_BY_ONE_CONTENTS_WIDTH,
9
+ ONE_BY_ONE_CONTENTS_HEIGHT * 2,
10
+ ];
11
+ const TWO_BY_ONE_HORIZONTAL_LAYOUT_SIZE = [
12
+ ONE_BY_ONE_CONTENTS_WIDTH * 2,
13
+ ONE_BY_ONE_CONTENTS_HEIGHT,
14
+ ];
15
+ const TWO_BY_TWO_LAYOUT_SIZE = [
16
+ ONE_BY_ONE_CONTENTS_WIDTH * 2,
17
+ ONE_BY_ONE_CONTENTS_HEIGHT * 2,
18
+ ];
19
+ /**
20
+ * The dimensions of a room shape's layout. This is NOT the size of the room's actual contents! For
21
+ * that, use `ROOM_SHAPE_BOUNDS`.
22
+ *
23
+ * For example, a horizontal narrow room has a layout size of equal to that of a 1x1 room.
24
+ */
25
+ export const ROOM_SHAPE_LAYOUT_SIZES = {
26
+ [RoomShape.SHAPE_1x1]: ONE_BY_ONE_LAYOUT_SIZE,
27
+ [RoomShape.IH]: ONE_BY_ONE_LAYOUT_SIZE,
28
+ [RoomShape.IV]: ONE_BY_ONE_LAYOUT_SIZE,
29
+ [RoomShape.SHAPE_1x2]: TWO_BY_ONE_VERTICAL_LAYOUT_SIZE,
30
+ [RoomShape.IIV]: TWO_BY_ONE_VERTICAL_LAYOUT_SIZE,
31
+ [RoomShape.SHAPE_2x1]: TWO_BY_ONE_HORIZONTAL_LAYOUT_SIZE,
32
+ [RoomShape.IIH]: TWO_BY_ONE_HORIZONTAL_LAYOUT_SIZE,
33
+ [RoomShape.SHAPE_2x2]: TWO_BY_TWO_LAYOUT_SIZE,
34
+ [RoomShape.LTL]: TWO_BY_TWO_LAYOUT_SIZE,
35
+ [RoomShape.LTR]: TWO_BY_TWO_LAYOUT_SIZE,
36
+ [RoomShape.LBL]: TWO_BY_TWO_LAYOUT_SIZE,
37
+ [RoomShape.LBR]: TWO_BY_TWO_LAYOUT_SIZE, // 12
38
+ };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vbVNoYXBlTGF5b3V0U2l6ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9pc2FhY3NjcmlwdC1jb21tb24vc3JjL29iamVjdHMvcm9vbVNoYXBlTGF5b3V0U2l6ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIseUJBQXlCLEdBQzFCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsTUFBTSxzQkFBc0IsR0FBdUM7SUFDakUseUJBQXlCO0lBQ3pCLDBCQUEwQjtDQUMzQixDQUFDO0FBQ0YsTUFBTSwrQkFBK0IsR0FBdUM7SUFDMUUseUJBQXlCO0lBQ3pCLDBCQUEwQixHQUFHLENBQUM7Q0FDL0IsQ0FBQztBQUNGLE1BQU0saUNBQWlDLEdBQXVDO0lBQzVFLHlCQUF5QixHQUFHLENBQUM7SUFDN0IsMEJBQTBCO0NBQzNCLENBQUM7QUFDRixNQUFNLHNCQUFzQixHQUF1QztJQUNqRSx5QkFBeUIsR0FBRyxDQUFDO0lBQzdCLDBCQUEwQixHQUFHLENBQUM7Q0FDL0IsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBRWhDO0lBQ0YsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsc0JBQXNCO0lBQzdDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLHNCQUFzQjtJQUN0QyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxzQkFBc0I7SUFDdEMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsK0JBQStCO0lBQ3RELENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLCtCQUErQjtJQUNoRCxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxpQ0FBaUM7SUFDeEQsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsaUNBQWlDO0lBQ2xELENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLHNCQUFzQjtJQUM3QyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxzQkFBc0I7SUFDdkMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsc0JBQXNCO0lBQ3ZDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLHNCQUFzQjtJQUN2QyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLO0NBQ3RDLENBQUMifQ==
@@ -0,0 +1,22 @@
1
+ import { RoomShape } from "isaac-typescript-definitions";
2
+ const TWO_BY_TWO_BOTTOM_RIGHT_POSITION = Vector(25, 13);
3
+ const ONE_BY_TWO_VERTICAL_BOTTOM_RIGHT_POSITION = Vector(12, 13);
4
+ /**
5
+ * "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
6
+ * wall would be at "Vector(-1, -1)".)
7
+ */
8
+ export const ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION = {
9
+ [RoomShape.SHAPE_1x1]: Vector(12, 6),
10
+ [RoomShape.IH]: Vector(12, 4),
11
+ [RoomShape.IV]: Vector(8, 6),
12
+ [RoomShape.SHAPE_1x2]: ONE_BY_TWO_VERTICAL_BOTTOM_RIGHT_POSITION,
13
+ [RoomShape.IIV]: Vector(8, 13),
14
+ [RoomShape.SHAPE_2x1]: Vector(25, 6),
15
+ [RoomShape.IIH]: Vector(25, 4),
16
+ [RoomShape.SHAPE_2x2]: TWO_BY_TWO_BOTTOM_RIGHT_POSITION,
17
+ [RoomShape.LTL]: TWO_BY_TWO_BOTTOM_RIGHT_POSITION,
18
+ [RoomShape.LTR]: TWO_BY_TWO_BOTTOM_RIGHT_POSITION,
19
+ [RoomShape.LBL]: TWO_BY_TWO_BOTTOM_RIGHT_POSITION,
20
+ [RoomShape.LBR]: ONE_BY_TWO_VERTICAL_BOTTOM_RIGHT_POSITION, // 12
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vbVNoYXBlVG9Cb3R0b21SaWdodFBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvaXNhYWNzY3JpcHQtY29tbW9uL3NyYy9vYmplY3RzL3Jvb21TaGFwZVRvQm90dG9tUmlnaHRQb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFekQsTUFBTSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hELE1BQU0seUNBQXlDLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVqRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FFNUM7SUFDRixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSx5Q0FBeUM7SUFDaEUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDOUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsZ0NBQWdDO0lBQ3ZELENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGdDQUFnQztJQUNqRCxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxnQ0FBZ0M7SUFDakQsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsZ0NBQWdDO0lBQ2pELENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLHlDQUF5QyxFQUFFLEtBQUs7Q0FDekQsQ0FBQyJ9
@@ -0,0 +1,109 @@
1
+ import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
2
+ /**
3
+ * The coordinates correspond to the x and y values that are present in a room's XML file.
4
+ *
5
+ * e.g. `<door exists="False" x="-1" y="3" />`
6
+ */
7
+ export const ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES = {
8
+ // 1
9
+ [RoomShape.SHAPE_1x1]: new Map([
10
+ [DoorSlot.LEFT_0, [-1, 3]],
11
+ [DoorSlot.UP_0, [6, -1]],
12
+ [DoorSlot.RIGHT_0, [13, 3]],
13
+ [DoorSlot.DOWN_0, [6, 7]], // 3
14
+ ]),
15
+ // 2
16
+ [RoomShape.IH]: new Map([
17
+ [DoorSlot.LEFT_0, [-1, 3]],
18
+ [DoorSlot.RIGHT_0, [13, 3]], // 2
19
+ ]),
20
+ // 3
21
+ [RoomShape.IV]: new Map([
22
+ [DoorSlot.UP_0, [6, -1]],
23
+ [DoorSlot.DOWN_0, [6, 7]], // 3
24
+ ]),
25
+ // 4
26
+ [RoomShape.SHAPE_1x2]: new Map([
27
+ [DoorSlot.LEFT_0, [-1, 3]],
28
+ [DoorSlot.UP_0, [6, -1]],
29
+ [DoorSlot.RIGHT_0, [13, 3]],
30
+ [DoorSlot.DOWN_0, [6, 14]],
31
+ [DoorSlot.LEFT_1, [-1, 10]],
32
+ [DoorSlot.RIGHT_1, [13, 10]], // 6
33
+ ]),
34
+ // 5
35
+ [RoomShape.IIV]: new Map([
36
+ [DoorSlot.UP_0, [6, -1]],
37
+ [DoorSlot.DOWN_0, [6, 14]], // 3
38
+ ]),
39
+ // 6
40
+ [RoomShape.SHAPE_2x1]: new Map([
41
+ [DoorSlot.LEFT_0, [-1, 3]],
42
+ [DoorSlot.UP_0, [6, -1]],
43
+ [DoorSlot.RIGHT_0, [26, 3]],
44
+ [DoorSlot.DOWN_0, [6, 7]],
45
+ [DoorSlot.UP_1, [19, -1]],
46
+ [DoorSlot.DOWN_1, [19, 7]], // 7
47
+ ]),
48
+ // 7
49
+ [RoomShape.IIH]: new Map([
50
+ [DoorSlot.LEFT_0, [-1, 3]],
51
+ [DoorSlot.RIGHT_0, [26, 3]], // 2
52
+ ]),
53
+ // 8
54
+ [RoomShape.SHAPE_2x2]: new Map([
55
+ [DoorSlot.LEFT_0, [-1, 3]],
56
+ [DoorSlot.UP_0, [6, -1]],
57
+ [DoorSlot.RIGHT_0, [26, 3]],
58
+ [DoorSlot.DOWN_0, [6, 14]],
59
+ [DoorSlot.LEFT_1, [-1, 10]],
60
+ [DoorSlot.UP_1, [19, -1]],
61
+ [DoorSlot.RIGHT_1, [26, 10]],
62
+ [DoorSlot.DOWN_1, [19, 14]], // 7
63
+ ]),
64
+ // 9
65
+ [RoomShape.LTL]: new Map([
66
+ [DoorSlot.LEFT_0, [12, 3]],
67
+ [DoorSlot.UP_0, [6, 6]],
68
+ [DoorSlot.RIGHT_0, [26, 3]],
69
+ [DoorSlot.DOWN_0, [6, 14]],
70
+ [DoorSlot.LEFT_1, [-1, 10]],
71
+ [DoorSlot.UP_1, [19, -1]],
72
+ [DoorSlot.RIGHT_1, [26, 10]],
73
+ [DoorSlot.DOWN_1, [19, 14]], // 7
74
+ ]),
75
+ // 10
76
+ [RoomShape.LTR]: new Map([
77
+ [DoorSlot.LEFT_0, [-1, 3]],
78
+ [DoorSlot.UP_0, [6, -1]],
79
+ [DoorSlot.RIGHT_0, [13, 3]],
80
+ [DoorSlot.DOWN_0, [6, 14]],
81
+ [DoorSlot.LEFT_1, [-1, 10]],
82
+ [DoorSlot.UP_1, [19, 6]],
83
+ [DoorSlot.RIGHT_1, [26, 10]],
84
+ [DoorSlot.DOWN_1, [19, 14]], // 7
85
+ ]),
86
+ // 11
87
+ [RoomShape.LBL]: new Map([
88
+ [DoorSlot.LEFT_0, [-1, 3]],
89
+ [DoorSlot.UP_0, [6, -1]],
90
+ [DoorSlot.RIGHT_0, [26, 3]],
91
+ [DoorSlot.DOWN_0, [6, 7]],
92
+ [DoorSlot.LEFT_1, [12, 10]],
93
+ [DoorSlot.UP_1, [19, -1]],
94
+ [DoorSlot.RIGHT_1, [26, 10]],
95
+ [DoorSlot.DOWN_1, [19, 14]], // 7
96
+ ]),
97
+ // 12
98
+ [RoomShape.LBR]: new Map([
99
+ [DoorSlot.LEFT_0, [-1, 3]],
100
+ [DoorSlot.UP_0, [6, -1]],
101
+ [DoorSlot.RIGHT_0, [26, 3]],
102
+ [DoorSlot.DOWN_0, [6, 14]],
103
+ [DoorSlot.LEFT_1, [-1, 10]],
104
+ [DoorSlot.UP_1, [19, -1]],
105
+ [DoorSlot.RIGHT_1, [13, 10]],
106
+ [DoorSlot.DOWN_1, [19, 7]], // 7
107
+ ]),
108
+ };
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vbVNoYXBlVG9Eb29yU2xvdENvb3JkaW5hdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvaXNhYWNzY3JpcHQtY29tbW9uL3NyYy9vYmplY3RzL3Jvb21TaGFwZVRvRG9vclNsb3RDb29yZGluYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FFNUM7SUFDRixJQUFJO0lBQ0osQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDN0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUk7S0FDaEMsQ0FBQztJQUVGLElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUN0QixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO0tBQ2xDLENBQUM7SUFFRixJQUFJO0lBQ0osQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFD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QUMxQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSTtLQUNsQyxDQUFDO0lBRUYsSUFBSTtJQUNKLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3ZCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSTtLQUNsQyxDQUFDO0lBRUYsS0FBSztJQUNMLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3ZCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJO0tBQ2xDLENBQUM7SUFFRixLQUFLO0lBQ0wsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDdkIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUk7S0FDbEMsQ0FBQztJQUVGLEtBQUs7SUFDTCxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUN2QixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO0tBQ2pDLENBQUM7Q0FDTSxDQUFDIn0=
@@ -0,0 +1,69 @@
1
+ import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
2
+ const ALL_DOOR_SLOTS_SET = new Set([
3
+ DoorSlot.LEFT_0,
4
+ DoorSlot.UP_0,
5
+ DoorSlot.RIGHT_0,
6
+ DoorSlot.DOWN_0,
7
+ DoorSlot.LEFT_1,
8
+ DoorSlot.UP_1,
9
+ DoorSlot.RIGHT_1,
10
+ DoorSlot.DOWN_1, // 7
11
+ ]);
12
+ export const ROOM_SHAPE_TO_DOOR_SLOTS = {
13
+ // 1
14
+ [RoomShape.SHAPE_1x1]: new Set([
15
+ DoorSlot.LEFT_0,
16
+ DoorSlot.UP_0,
17
+ DoorSlot.RIGHT_0,
18
+ DoorSlot.DOWN_0, // 3
19
+ ]),
20
+ // 2
21
+ [RoomShape.IH]: new Set([
22
+ DoorSlot.LEFT_0,
23
+ DoorSlot.RIGHT_0, // 2
24
+ ]),
25
+ // 3
26
+ [RoomShape.IV]: new Set([
27
+ DoorSlot.UP_0,
28
+ DoorSlot.DOWN_0, // 3
29
+ ]),
30
+ // 4
31
+ [RoomShape.SHAPE_1x2]: new Set([
32
+ DoorSlot.LEFT_0,
33
+ DoorSlot.UP_0,
34
+ DoorSlot.RIGHT_0,
35
+ DoorSlot.DOWN_0,
36
+ DoorSlot.LEFT_1,
37
+ DoorSlot.RIGHT_1, // 6
38
+ ]),
39
+ // 5
40
+ [RoomShape.IIV]: new Set([
41
+ DoorSlot.UP_0,
42
+ DoorSlot.DOWN_0, // 3
43
+ ]),
44
+ // 6
45
+ [RoomShape.SHAPE_2x1]: new Set([
46
+ DoorSlot.LEFT_0,
47
+ DoorSlot.UP_0,
48
+ DoorSlot.RIGHT_0,
49
+ DoorSlot.DOWN_0,
50
+ DoorSlot.UP_1,
51
+ DoorSlot.DOWN_1, // 7
52
+ ]),
53
+ // 7
54
+ [RoomShape.IIH]: new Set([
55
+ DoorSlot.LEFT_0,
56
+ DoorSlot.RIGHT_0, // 2
57
+ ]),
58
+ // 8
59
+ [RoomShape.SHAPE_2x2]: ALL_DOOR_SLOTS_SET,
60
+ // 9
61
+ [RoomShape.LTL]: ALL_DOOR_SLOTS_SET,
62
+ // 10
63
+ [RoomShape.LTR]: ALL_DOOR_SLOTS_SET,
64
+ // 11
65
+ [RoomShape.LBL]: ALL_DOOR_SLOTS_SET,
66
+ // 12
67
+ [RoomShape.LBR]: ALL_DOOR_SLOTS_SET,
68
+ };
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vbVNoYXBlVG9Eb29yU2xvdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9pc2FhY3NjcmlwdC1jb21tb24vc3JjL29iamVjdHMvcm9vbVNoYXBlVG9Eb29yU2xvdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxNQUFNLGtCQUFrQixHQUEwQixJQUFJLEdBQUcsQ0FBQztJQUN4RCxRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxJQUFJO0lBQ2IsUUFBUSxDQUFDLE9BQU87SUFDaEIsUUFBUSxDQUFDLE1BQU07SUFDZixRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxJQUFJO0lBQ2IsUUFBUSxDQUFDLE9BQU87SUFDaEIsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJO0NBQ3RCLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUVqQztJQUNGLElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUM3QixRQUFRLENBQUMsTUFBTTtRQUNmLFFBQVEsQ0FBQyxJQUFJO1FBQ2IsUUFBUSxDQUFDLE9BQU87UUFDaEIsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJO0tBQ3RCLENBQUM7SUFFRixJQUFJO0lBQ0osQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDdEIsUUFBUSxDQUFDLE1BQU07UUFDZixRQUFRLENBQUMsT0FBTyxFQUFFLElBQUk7S0FDdkIsQ0FBQztJQUVGLElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUN0QixRQUFRLENBQUMsSUFBSTtRQUNiLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSTtLQUN0QixDQUFDO0lBRUYsSUFBSTtJQUNKLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQzdCLFFBQVEsQ0FBQyxNQUFNO1FBQ2YsUUFBUSxDQUFDLElBQUk7UUFDYixRQUFRLENBQUMsT0FBTztRQUNoQixRQUFRLENBQUMsTUFBTTtRQUNmLFFBQVEsQ0FBQyxNQUFNO1FBQ2YsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJO0tBQ3ZCLENBQUM7SUFFRixJQUFJO0lBQ0osQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDdkIsUUFBUSxDQUFDLElBQUk7UUFDYixRQUFRLENBQUMsTUFBTSxFQUFFLElBQUk7S0FDdEIsQ0FBQztJQUVGLElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUM3QixRQUFRLENBQUMsTUFBTTtRQUNmLFFBQVEsQ0FBQyxJQUFJO1FBQ2IsUUFBUSxDQUFDLE9BQU87UUFDaEIsUUFBUSxDQUFDLE1BQU07UUFDZixRQUFRLENBQUMsSUFBSTtRQUNiLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSTtLQUN0QixDQUFDO0lBRUYsSUFBSTtJQUNKLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3ZCLFFBQVEsQ0FBQyxNQUFNO1FBQ2YsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJO0tBQ3ZCLENBQUM7SUFFRixJQUFJO0lBQ0osQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsa0JBQWtCO0lBRXpDLElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxrQkFBa0I7SUFFbkMsS0FBSztJQUNMLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGtCQUFrQjtJQUVuQyxLQUFLO0lBQ0wsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsa0JBQWtCO0lBRW5DLEtBQUs7SUFDTCxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxrQkFBa0I7Q0FDM0IsQ0FBQyJ9
@@ -0,0 +1,113 @@
1
+ import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
2
+ import { LEVEL_GRID_ROW_WIDTH } from "../constants";
3
+ const LEFT = -1;
4
+ const UP = -LEVEL_GRID_ROW_WIDTH;
5
+ const RIGHT = 1;
6
+ const DOWN = LEVEL_GRID_ROW_WIDTH;
7
+ /**
8
+ * Deltas are considered to be from the safe grid index of the room (i.e. the top left corner, or
9
+ * top right corner in the case of `RoomShape.LTL`).
10
+ */
11
+ export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA = {
12
+ // 1
13
+ [RoomShape.SHAPE_1x1]: new Map([
14
+ [DoorSlot.LEFT_0, LEFT],
15
+ [DoorSlot.UP_0, UP],
16
+ [DoorSlot.RIGHT_0, RIGHT],
17
+ [DoorSlot.DOWN_0, DOWN], // 3
18
+ ]),
19
+ // 2
20
+ [RoomShape.IH]: new Map([
21
+ [DoorSlot.LEFT_0, LEFT],
22
+ [DoorSlot.RIGHT_0, RIGHT], // 2
23
+ ]),
24
+ // 3
25
+ [RoomShape.IV]: new Map([
26
+ [DoorSlot.UP_0, UP],
27
+ [DoorSlot.DOWN_0, DOWN], // 3
28
+ ]),
29
+ // 4
30
+ [RoomShape.SHAPE_1x2]: new Map([
31
+ [DoorSlot.LEFT_0, LEFT],
32
+ [DoorSlot.UP_0, UP],
33
+ [DoorSlot.RIGHT_0, RIGHT],
34
+ [DoorSlot.DOWN_0, DOWN + DOWN],
35
+ [DoorSlot.LEFT_1, DOWN + LEFT],
36
+ [DoorSlot.RIGHT_1, DOWN + RIGHT], // 6
37
+ ]),
38
+ // 5
39
+ [RoomShape.IIV]: new Map([
40
+ [DoorSlot.UP_0, UP],
41
+ [DoorSlot.DOWN_0, DOWN + DOWN], // 3
42
+ ]),
43
+ // 6
44
+ [RoomShape.SHAPE_2x1]: new Map([
45
+ [DoorSlot.LEFT_0, LEFT],
46
+ [DoorSlot.UP_0, UP],
47
+ [DoorSlot.RIGHT_0, RIGHT + RIGHT],
48
+ [DoorSlot.DOWN_0, DOWN],
49
+ [DoorSlot.UP_1, RIGHT + UP],
50
+ [DoorSlot.DOWN_1, RIGHT + DOWN], // 7
51
+ ]),
52
+ // 7
53
+ [RoomShape.IIH]: new Map([
54
+ [DoorSlot.LEFT_0, LEFT],
55
+ [DoorSlot.RIGHT_0, RIGHT + RIGHT], // 2
56
+ ]),
57
+ // 8
58
+ [RoomShape.SHAPE_2x2]: new Map([
59
+ [DoorSlot.LEFT_0, LEFT],
60
+ [DoorSlot.UP_0, UP],
61
+ [DoorSlot.RIGHT_0, RIGHT + RIGHT],
62
+ [DoorSlot.DOWN_0, DOWN + DOWN],
63
+ [DoorSlot.LEFT_1, DOWN + LEFT],
64
+ [DoorSlot.UP_1, RIGHT + UP],
65
+ [DoorSlot.RIGHT_1, RIGHT + DOWN + RIGHT],
66
+ [DoorSlot.DOWN_1, RIGHT + DOWN + DOWN], // 7
67
+ ]),
68
+ // 9
69
+ [RoomShape.LTL]: new Map([
70
+ [DoorSlot.LEFT_0, LEFT],
71
+ [DoorSlot.UP_0, DOWN + LEFT + UP],
72
+ [DoorSlot.RIGHT_0, RIGHT],
73
+ [DoorSlot.DOWN_0, DOWN + LEFT + DOWN],
74
+ [DoorSlot.LEFT_1, DOWN + LEFT + LEFT],
75
+ [DoorSlot.UP_1, UP],
76
+ [DoorSlot.RIGHT_1, DOWN + RIGHT],
77
+ [DoorSlot.DOWN_1, DOWN + DOWN], // 7
78
+ ]),
79
+ // 10
80
+ [RoomShape.LTR]: new Map([
81
+ [DoorSlot.LEFT_0, LEFT],
82
+ [DoorSlot.UP_0, UP],
83
+ [DoorSlot.RIGHT_0, RIGHT],
84
+ [DoorSlot.DOWN_0, DOWN + DOWN],
85
+ [DoorSlot.LEFT_1, DOWN + LEFT],
86
+ [DoorSlot.UP_1, DOWN + RIGHT + UP],
87
+ [DoorSlot.RIGHT_1, DOWN + RIGHT + RIGHT],
88
+ [DoorSlot.DOWN_1, DOWN + RIGHT + DOWN], // 7
89
+ ]),
90
+ // 11
91
+ [RoomShape.LBL]: new Map([
92
+ [DoorSlot.LEFT_0, LEFT],
93
+ [DoorSlot.UP_0, UP],
94
+ [DoorSlot.RIGHT_0, RIGHT + RIGHT],
95
+ [DoorSlot.DOWN_0, DOWN],
96
+ [DoorSlot.LEFT_1, RIGHT + DOWN + LEFT],
97
+ [DoorSlot.UP_1, RIGHT + UP],
98
+ [DoorSlot.RIGHT_1, RIGHT + DOWN + RIGHT],
99
+ [DoorSlot.DOWN_1, RIGHT + DOWN + DOWN], // 7
100
+ ]),
101
+ // 12
102
+ [RoomShape.LBR]: new Map([
103
+ [DoorSlot.LEFT_0, LEFT],
104
+ [DoorSlot.UP_0, UP],
105
+ [DoorSlot.RIGHT_0, RIGHT + RIGHT],
106
+ [DoorSlot.DOWN_0, DOWN + DOWN],
107
+ [DoorSlot.LEFT_1, DOWN + LEFT],
108
+ [DoorSlot.UP_1, RIGHT + UP],
109
+ [DoorSlot.RIGHT_1, DOWN + RIGHT],
110
+ [DoorSlot.DOWN_1, RIGHT + DOWN], // 7
111
+ ]),
112
+ };
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vbVNoYXBlVG9Eb29yU2xvdHNUb0dyaWRJbmRleERlbHRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvaXNhYWNzY3JpcHQtY29tbW9uL3NyYy9vYmplY3RzL3Jvb21TaGFwZVRvRG9vclNsb3RzVG9HcmlkSW5kZXhEZWx0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLG9CQUFvQixDQUFDO0FBQ2pDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNoQixNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FFckQ7SUFDRixJQUFJO0lBQ0osQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDN0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztRQUN2QixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25CLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDekIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUk7S0FDOUIsQ0FBQztJQUVGLElBQUk7SUFDSixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUN0QixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQ3ZCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJO0tBQ2hDLENBQUM7SUFFRixJ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