isaacscript-common 20.18.0 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +23 -33
- package/dist/isaacscript-common.lua +676 -508
- package/dist/src/callbacks.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostBoneSwing.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostBoneSwing.lua +3 -2
- package/dist/src/classes/callbacks/PreNewLevel.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PreNewLevel.lua +3 -2
- package/dist/src/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
- package/dist/src/classes/features/other/CustomTrapdoors.lua +4 -2
- package/dist/src/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
- package/dist/src/classes/features/other/DeployJSONRoom.lua +3 -2
- package/dist/src/classes/features/other/ModdedElementSets.d.ts.map +1 -1
- package/dist/src/classes/features/other/ModdedElementSets.lua +7 -4
- package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -1
- package/dist/src/classes/features/other/SaveDataManager.lua +3 -2
- package/dist/src/classes/features/other/customStages/backdrop.lua +3 -2
- package/dist/src/classes/features/other/customStages/shadows.d.ts.map +1 -1
- package/dist/src/classes/features/other/customStages/streakText.d.ts.map +1 -1
- package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -1
- package/dist/src/classes/features/other/saveDataManager/restoreDefaults.lua +3 -2
- package/dist/src/core/constants.d.ts +4 -6
- package/dist/src/core/constants.d.ts.map +1 -1
- package/dist/src/core/constants.lua +17 -13
- package/dist/src/features.d.ts.map +1 -1
- package/dist/src/functions/bosses.d.ts.map +1 -1
- package/dist/src/functions/bosses.lua +3 -2
- package/dist/src/functions/cards.lua +3 -3
- package/dist/src/functions/characters.d.ts.map +1 -1
- package/dist/src/functions/characters.lua +3 -2
- package/dist/src/functions/doors.d.ts.map +1 -1
- package/dist/src/functions/doors.lua +9 -7
- package/dist/src/functions/emptyRoom.d.ts.map +1 -1
- package/dist/src/functions/emptyRoom.lua +3 -2
- package/dist/src/functions/entities.d.ts.map +1 -1
- package/dist/src/functions/entities.lua +67 -64
- package/dist/src/functions/globals.d.ts.map +1 -1
- package/dist/src/functions/globals.lua +6 -4
- package/dist/src/functions/gridEntities.d.ts.map +1 -1
- package/dist/src/functions/gridEntities.lua +5 -3
- package/dist/src/functions/input.d.ts.map +1 -1
- package/dist/src/functions/input.lua +4 -3
- package/dist/src/functions/logEntities.d.ts.map +1 -1
- package/dist/src/functions/logEntities.lua +3 -2
- package/dist/src/functions/npcs.d.ts.map +1 -1
- package/dist/src/functions/npcs.lua +4 -3
- package/dist/src/functions/playerIndex.d.ts.map +1 -1
- package/dist/src/functions/playerIndex.lua +3 -2
- package/dist/src/functions/readOnly.d.ts +26 -0
- package/dist/src/functions/readOnly.d.ts.map +1 -0
- package/dist/src/functions/readOnly.lua +31 -0
- package/dist/src/functions/roomGrid.lua +4 -1
- package/dist/src/functions/roomShapeWalls.d.ts.map +1 -1
- package/dist/src/functions/roomShapeWalls.lua +9 -10
- package/dist/src/functions/serialization.d.ts.map +1 -1
- package/dist/src/functions/serialization.lua +3 -2
- package/dist/src/functions/slots.d.ts.map +1 -1
- package/dist/src/functions/slots.lua +3 -2
- package/dist/src/functions/stats.d.ts.map +1 -1
- package/dist/src/functions/stats.lua +3 -2
- package/dist/src/functions/transformations.d.ts.map +1 -1
- package/dist/src/functions/transformations.lua +6 -3
- package/dist/src/functions/utils.d.ts +1 -1
- package/dist/src/functions/utils.lua +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.lua +16 -0
- package/dist/src/maps/PHDPillConversions.d.ts.map +1 -1
- package/dist/src/maps/PHDPillConversions.lua +3 -2
- package/dist/src/maps/cardNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/cardNameToTypeMap.lua +3 -2
- package/dist/src/maps/characterNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/characterNameToTypeMap.lua +3 -2
- package/dist/src/maps/collectibleDescriptionMap.d.ts.map +1 -1
- package/dist/src/maps/collectibleDescriptionMap.lua +3 -2
- package/dist/src/maps/collectibleNameToTypeMap.d.ts +5 -0
- package/dist/src/maps/collectibleNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/collectibleNameToTypeMap.lua +10 -8
- package/dist/src/maps/collectibleTypeToNameMap.d.ts.map +1 -1
- package/dist/src/maps/collectibleTypeToNameMap.lua +3 -2
- package/dist/src/maps/defaultPlayerStatMap.d.ts +5 -2
- package/dist/src/maps/defaultPlayerStatMap.d.ts.map +1 -1
- package/dist/src/maps/defaultPlayerStatMap.lua +3 -2
- package/dist/src/maps/falsePHDPillConversions.d.ts.map +1 -1
- package/dist/src/maps/falsePHDPillConversions.lua +3 -2
- package/dist/src/maps/gridEntityTypeToBrokenStateMap.d.ts +1 -1
- package/dist/src/maps/gridEntityTypeToBrokenStateMap.d.ts.map +1 -1
- package/dist/src/maps/gridEntityTypeToBrokenStateMap.lua +3 -2
- package/dist/src/maps/gridEntityXMLMap.d.ts +1 -4
- package/dist/src/maps/gridEntityXMLMap.d.ts.map +1 -1
- package/dist/src/maps/gridEntityXMLMap.lua +3 -2
- package/dist/src/maps/keyboardToString.d.ts.map +1 -1
- package/dist/src/maps/keyboardToString.lua +3 -2
- package/dist/src/maps/pillNameToEffectMap.d.ts.map +1 -1
- package/dist/src/maps/pillNameToEffectMap.lua +3 -2
- package/dist/src/maps/roomNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/roomNameToTypeMap.lua +3 -2
- package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.d.ts +1 -1
- package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.d.ts.map +1 -1
- package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.lua +3 -2
- package/dist/src/maps/transformationNameToPlayerFormMap.d.ts.map +1 -1
- package/dist/src/maps/transformationNameToPlayerFormMap.lua +3 -2
- package/dist/src/maps/trinketDescriptionMap.d.ts.map +1 -1
- package/dist/src/maps/trinketDescriptionMap.lua +3 -2
- package/dist/src/maps/trinketNameToTypeMap.d.ts +5 -0
- package/dist/src/maps/trinketNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/trinketNameToTypeMap.lua +10 -8
- package/dist/src/maps/trinketTypeToNameMap.d.ts.map +1 -1
- package/dist/src/maps/trinketTypeToNameMap.lua +3 -2
- package/dist/src/objects/LRoomShapeToRectangles.d.ts +8 -6
- package/dist/src/objects/LRoomShapeToRectangles.d.ts.map +1 -1
- package/dist/src/objects/LRoomShapeToRectangles.lua +19 -17
- package/dist/src/objects/backdropTypeToRockAltType.d.ts.map +1 -1
- package/dist/src/objects/bossNamePNGFileNames.d.ts.map +1 -1
- package/dist/src/objects/bossPortraitPNGFileNames.d.ts.map +1 -1
- package/dist/src/objects/cardDescriptions.d.ts.map +1 -1
- package/dist/src/objects/cardNames.d.ts.map +1 -1
- package/dist/src/objects/challengeNames.d.ts.map +1 -1
- package/dist/src/objects/characterDamageMultipliers.d.ts.map +1 -1
- package/dist/src/objects/characterNames.d.ts.map +1 -1
- package/dist/src/objects/coinSubTypeToValue.d.ts.map +1 -1
- package/dist/src/objects/directionNames.d.ts.map +1 -1
- package/dist/src/objects/directionToDegrees.d.ts.map +1 -1
- package/dist/src/objects/directionToMoveAction.d.ts.map +1 -1
- package/dist/src/objects/directionToShootAction.d.ts.map +1 -1
- package/dist/src/objects/directionToVector.d.ts +5 -2
- package/dist/src/objects/directionToVector.d.ts.map +1 -1
- package/dist/src/objects/directionToVector.lua +6 -4
- package/dist/src/objects/doorSlotFlagToDoorSlot.d.ts.map +1 -1
- package/dist/src/objects/doorSlotToDirection.d.ts.map +1 -1
- package/dist/src/objects/doorSlotToDoorSlotFlag.d.ts.map +1 -1
- package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts.map +1 -1
- package/dist/src/objects/languageNames.d.ts.map +1 -1
- package/dist/src/objects/oppositeDoorSlots.d.ts.map +1 -1
- package/dist/src/objects/pillEffectClasses.d.ts.map +1 -1
- package/dist/src/objects/pillEffectNames.d.ts.map +1 -1
- package/dist/src/objects/pillEffectTypes.d.ts.map +1 -1
- package/dist/src/objects/playerNamePNGFileNames.d.ts.map +1 -1
- package/dist/src/objects/playerPortraitPNGFileNames.d.ts.map +1 -1
- package/dist/src/objects/roomShapeBounds.d.ts +12 -2
- package/dist/src/objects/roomShapeBounds.d.ts.map +1 -1
- package/dist/src/objects/roomShapeCorners.d.ts +237 -3
- package/dist/src/objects/roomShapeCorners.d.ts.map +1 -1
- package/dist/src/objects/roomShapeCorners.lua +58 -56
- package/dist/src/objects/roomShapeLayoutSizes.d.ts +12 -2
- package/dist/src/objects/roomShapeLayoutSizes.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToBottomRightPosition.d.ts +12 -2
- package/dist/src/objects/roomShapeToBottomRightPosition.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToBottomRightPosition.lua +10 -8
- package/dist/src/objects/roomShapeToDoorSlotCoordinates.d.ts +88 -2
- package/dist/src/objects/roomShapeToDoorSlotCoordinates.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToDoorSlotCoordinates.lua +71 -74
- package/dist/src/objects/roomShapeToDoorSlots.d.ts +13 -2
- package/dist/src/objects/roomShapeToDoorSlots.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToDoorSlots.lua +10 -9
- package/dist/src/objects/roomShapeToDoorSlotsToGridIndexDelta.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +14 -13
- package/dist/src/objects/roomShapeToGridWidth.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToTopLeftPosition.d.ts +12 -2
- package/dist/src/objects/roomShapeToTopLeftPosition.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToTopLeftPosition.lua +5 -3
- package/dist/src/objects/roomShapeVolumes.d.ts.map +1 -1
- package/dist/src/objects/roomTypeGotoPrefixes.d.ts.map +1 -1
- package/dist/src/objects/roomTypeNames.d.ts.map +1 -1
- package/dist/src/objects/stageToMusic.d.ts.map +1 -1
- package/dist/src/objects/stageTypeSuffixes.d.ts.map +1 -1
- package/dist/src/objects/stageTypeToLetter.d.ts.map +1 -1
- package/dist/src/objects/transformationNames.d.ts.map +1 -1
- package/dist/src/objects/versusScreenBackgroundColors.d.ts +29 -2
- package/dist/src/objects/versusScreenBackgroundColors.d.ts.map +1 -1
- package/dist/src/objects/versusScreenBackgroundColors.lua +29 -27
- package/dist/src/objects/versusScreenDirtSpotColors.d.ts +29 -2
- package/dist/src/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
- package/dist/src/objects/versusScreenDirtSpotColors.lua +29 -27
- package/dist/src/sets/LRoomShapesSet.d.ts.map +1 -1
- package/dist/src/sets/LRoomShapesSet.lua +3 -2
- package/dist/src/sets/bossSets.d.ts +2 -3
- package/dist/src/sets/bossSets.d.ts.map +1 -1
- package/dist/src/sets/bossSets.lua +52 -49
- package/dist/src/sets/charactersThatStartWithAnActiveItemSet.d.ts.map +1 -1
- package/dist/src/sets/charactersThatStartWithAnActiveItemSet.lua +3 -2
- package/dist/src/sets/charactersWithBlackHeartFromEternalHeartSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithBlackHeartFromEternalHeartSet.lua +3 -2
- package/dist/src/sets/charactersWithFreeDevilDealsSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithFreeDevilDealsSet.lua +3 -2
- package/dist/src/sets/charactersWithNoRedHeartsSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithNoRedHeartsSet.lua +3 -2
- package/dist/src/sets/charactersWithNoSoulHeartsSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithNoSoulHeartsSet.lua +3 -2
- package/dist/src/sets/chestPickupVariantsSet.d.ts.map +1 -1
- package/dist/src/sets/chestPickupVariantsSet.lua +3 -2
- package/dist/src/sets/consoleCommandsSet.d.ts.map +1 -1
- package/dist/src/sets/consoleCommandsSet.lua +3 -2
- package/dist/src/sets/entitiesWithArmorSet.d.ts.map +1 -1
- package/dist/src/sets/entitiesWithArmorSet.lua +3 -2
- package/dist/src/sets/familiarsThatShootPlayerTearsSet.d.ts.map +1 -1
- package/dist/src/sets/familiarsThatShootPlayerTearsSet.lua +3 -2
- package/dist/src/sets/itemConfigCardTypesForCardsSet.d.ts +4 -0
- package/dist/src/sets/itemConfigCardTypesForCardsSet.d.ts.map +1 -0
- package/dist/src/sets/itemConfigCardTypesForCardsSet.lua +10 -0
- package/dist/src/sets/lostStyleCharactersSet.d.ts.map +1 -1
- package/dist/src/sets/lostStyleCharactersSet.lua +3 -2
- package/dist/src/sets/mineShaftRoomSubTypesSet.d.ts.map +1 -1
- package/dist/src/sets/mineShaftRoomSubTypesSet.lua +3 -2
- package/dist/src/sets/narrowRoomShapesSet.d.ts.map +1 -1
- package/dist/src/sets/narrowRoomShapesSet.lua +3 -2
- package/dist/src/sets/redHeartSubTypesSet.d.ts.map +1 -1
- package/dist/src/sets/redHeartSubTypesSet.lua +3 -2
- package/dist/src/sets/sinEntityTypesSet.d.ts.map +1 -1
- package/dist/src/sets/sinEntityTypesSet.lua +3 -2
- package/dist/src/sets/singleUseActiveCollectibleTypesSet.d.ts.map +1 -1
- package/dist/src/sets/singleUseActiveCollectibleTypesSet.lua +3 -2
- package/dist/src/sets/storyBossesSet.d.ts.map +1 -1
- package/dist/src/sets/storyBossesSet.lua +3 -2
- package/dist/src/types/PickingUpItem.d.ts.map +1 -1
- package/dist/src/types/PickingUpItem.lua +3 -2
- package/dist/src/types/ReadonlyMap.d.ts +9 -0
- package/dist/src/types/ReadonlyMap.d.ts.map +1 -0
- package/dist/src/types/ReadonlyMap.lua +6 -0
- package/dist/src/types/ReadonlySet.d.ts +8 -0
- package/dist/src/types/ReadonlySet.d.ts.map +1 -0
- package/dist/src/types/ReadonlySet.lua +6 -0
- package/package.json +1 -1
- package/src/callbacks.ts +1 -2
- package/src/classes/callbacks/PostBoneSwing.ts +2 -1
- package/src/classes/callbacks/PreNewLevel.ts +2 -1
- package/src/classes/features/other/CustomTrapdoors.ts +2 -1
- package/src/classes/features/other/DeployJSONRoom.ts +5 -2
- package/src/classes/features/other/ModdedElementSets.ts +20 -22
- package/src/classes/features/other/SaveDataManager.ts +2 -1
- package/src/classes/features/other/customStages/backdrop.ts +3 -3
- package/src/classes/features/other/customStages/shadows.ts +1 -2
- package/src/classes/features/other/customStages/streakText.ts +1 -2
- package/src/classes/features/other/saveDataManager/restoreDefaults.ts +2 -1
- package/src/core/constants.ts +18 -17
- package/src/features.ts +1 -2
- package/src/functions/bosses.ts +2 -1
- package/src/functions/cards.ts +2 -2
- package/src/functions/characters.ts +2 -1
- package/src/functions/doors.ts +15 -4
- package/src/functions/emptyRoom.ts +2 -1
- package/src/functions/entities.ts +3 -2
- package/src/functions/globals.ts +4 -3
- package/src/functions/gridEntities.ts +5 -4
- package/src/functions/input.ts +3 -2
- package/src/functions/logEntities.ts +2 -1
- package/src/functions/npcs.ts +3 -2
- package/src/functions/playerIndex.ts +2 -1
- package/src/functions/readOnly.ts +42 -0
- package/src/functions/roomGrid.ts +2 -2
- package/src/functions/roomShapeWalls.ts +3 -5
- package/src/functions/serialization.ts +2 -3
- package/src/functions/slots.ts +2 -1
- package/src/functions/stats.ts +2 -1
- package/src/functions/transformations.ts +19 -18
- package/src/functions/utils.ts +1 -1
- package/src/index.ts +2 -1
- package/src/maps/PHDPillConversions.ts +19 -19
- package/src/maps/cardNameToTypeMap.ts +2 -1
- package/src/maps/characterNameToTypeMap.ts +86 -86
- package/src/maps/collectibleDescriptionMap.ts +726 -724
- package/src/maps/collectibleNameToTypeMap.ts +10 -7
- package/src/maps/collectibleTypeToNameMap.ts +3 -4
- package/src/maps/defaultPlayerStatMap.ts +2 -1
- package/src/maps/falsePHDPillConversions.ts +36 -33
- package/src/maps/gridEntityTypeToBrokenStateMap.ts +3 -2
- package/src/maps/gridEntityXMLMap.ts +3 -2
- package/src/maps/keyboardToString.ts +3 -2
- package/src/maps/pillNameToEffectMap.ts +85 -86
- package/src/maps/roomNameToTypeMap.ts +2 -1
- package/src/maps/roomShapeToTopLeftWallGridIndexMap.ts +3 -2
- package/src/maps/transformationNameToPlayerFormMap.ts +3 -2
- package/src/maps/trinketDescriptionMap.ts +191 -192
- package/src/maps/trinketNameToTypeMap.ts +10 -7
- package/src/maps/trinketTypeToNameMap.ts +191 -193
- package/src/objects/LRoomShapeToRectangles.ts +35 -28
- package/src/objects/backdropTypeToRockAltType.ts +1 -2
- package/src/objects/bossNamePNGFileNames.ts +1 -2
- package/src/objects/bossPortraitPNGFileNames.ts +1 -2
- package/src/objects/cardDescriptions.ts +1 -2
- package/src/objects/cardNames.ts +1 -2
- package/src/objects/challengeNames.ts +1 -2
- package/src/objects/characterDamageMultipliers.ts +1 -2
- package/src/objects/characterNames.ts +1 -2
- package/src/objects/coinSubTypeToValue.ts +1 -2
- package/src/objects/directionNames.ts +1 -2
- package/src/objects/directionToDegrees.ts +1 -2
- package/src/objects/directionToMoveAction.ts +1 -2
- package/src/objects/directionToShootAction.ts +1 -2
- package/src/objects/directionToVector.ts +7 -10
- package/src/objects/doorSlotFlagToDoorSlot.ts +1 -2
- package/src/objects/doorSlotToDirection.ts +1 -2
- package/src/objects/doorSlotToDoorSlotFlag.ts +1 -2
- package/src/objects/isaacAPIClassTypeToBrand.ts +1 -5
- package/src/objects/languageNames.ts +1 -2
- package/src/objects/oppositeDoorSlots.ts +1 -2
- package/src/objects/pillEffectClasses.ts +1 -2
- package/src/objects/pillEffectNames.ts +1 -2
- package/src/objects/pillEffectTypes.ts +1 -2
- package/src/objects/playerNamePNGFileNames.ts +1 -2
- package/src/objects/playerPortraitPNGFileNames.ts +1 -2
- package/src/objects/roomShapeBounds.ts +3 -7
- package/src/objects/roomShapeCorners.ts +59 -62
- package/src/objects/roomShapeLayoutSizes.ts +6 -10
- package/src/objects/roomShapeToBottomRightPosition.ts +11 -17
- package/src/objects/roomShapeToDoorSlotCoordinates.ts +93 -94
- package/src/objects/roomShapeToDoorSlots.ts +11 -14
- package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +15 -14
- package/src/objects/roomShapeToGridWidth.ts +1 -2
- package/src/objects/roomShapeToTopLeftPosition.ts +6 -9
- package/src/objects/roomShapeVolumes.ts +1 -2
- package/src/objects/roomTypeGotoPrefixes.ts +1 -2
- package/src/objects/roomTypeNames.ts +1 -2
- package/src/objects/stageToMusic.ts +10 -11
- package/src/objects/stageTypeSuffixes.ts +1 -2
- package/src/objects/stageTypeToLetter.ts +1 -2
- package/src/objects/transformationNames.ts +1 -2
- package/src/objects/versusScreenBackgroundColors.ts +30 -33
- package/src/objects/versusScreenDirtSpotColors.ts +30 -33
- package/src/sets/LRoomShapesSet.ts +2 -1
- package/src/sets/bossSets.ts +51 -49
- package/src/sets/charactersThatStartWithAnActiveItemSet.ts +3 -2
- package/src/sets/charactersWithBlackHeartFromEternalHeartSet.ts +3 -2
- package/src/sets/charactersWithFreeDevilDealsSet.ts +4 -2
- package/src/sets/charactersWithNoRedHeartsSet.ts +11 -11
- package/src/sets/charactersWithNoSoulHeartsSet.ts +8 -8
- package/src/sets/chestPickupVariantsSet.ts +2 -1
- package/src/sets/consoleCommandsSet.ts +3 -1
- package/src/sets/entitiesWithArmorSet.ts +2 -1
- package/src/sets/familiarsThatShootPlayerTearsSet.ts +3 -2
- package/src/sets/itemConfigCardTypesForCardsSet.ts +11 -0
- package/src/sets/lostStyleCharactersSet.ts +2 -1
- package/src/sets/mineShaftRoomSubTypesSet.ts +8 -8
- package/src/sets/narrowRoomShapesSet.ts +2 -1
- package/src/sets/redHeartSubTypesSet.ts +2 -1
- package/src/sets/sinEntityTypesSet.ts +2 -1
- package/src/sets/singleUseActiveCollectibleTypesSet.ts +3 -2
- package/src/sets/storyBossesSet.ts +2 -1
- package/src/types/PickingUpItem.ts +2 -1
- package/src/types/ReadonlyMap.ts +13 -0
- package/src/types/ReadonlySet.ts +9 -0
- package/dist/src/types/HasAllEnumKeys.d.ts +0 -26
- package/dist/src/types/HasAllEnumKeys.d.ts.map +0 -1
- package/dist/src/types/HasAllEnumKeys.lua +0 -2
- package/src/types/HasAllEnumKeys.ts +0 -25
|
@@ -1,30 +1,24 @@
|
|
|
1
1
|
import { RoomShape } from "isaac-typescript-definitions";
|
|
2
|
+
import { newReadonlyVector } from "../functions/readOnly";
|
|
2
3
|
|
|
3
|
-
const TWO_BY_TWO_BOTTOM_RIGHT_POSITION
|
|
4
|
-
const ONE_BY_TWO_VERTICAL_BOTTOM_RIGHT_POSITION
|
|
5
|
-
12,
|
|
6
|
-
13,
|
|
7
|
-
);
|
|
4
|
+
const TWO_BY_TWO_BOTTOM_RIGHT_POSITION = newReadonlyVector(25, 13);
|
|
5
|
+
const ONE_BY_TWO_VERTICAL_BOTTOM_RIGHT_POSITION = newReadonlyVector(12, 13);
|
|
8
6
|
|
|
9
7
|
/**
|
|
10
8
|
* "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
|
|
11
9
|
* wall would be at "Vector(-1, -1)".)
|
|
12
10
|
*/
|
|
13
|
-
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} = {
|
|
18
|
-
[RoomShape.SHAPE_1x1]: Vector(12, 6), // 1
|
|
19
|
-
[RoomShape.IH]: Vector(12, 4), // 2
|
|
20
|
-
[RoomShape.IV]: Vector(8, 6), // 3
|
|
11
|
+
export const ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION = {
|
|
12
|
+
[RoomShape.SHAPE_1x1]: newReadonlyVector(12, 6), // 1
|
|
13
|
+
[RoomShape.IH]: newReadonlyVector(12, 4), // 2
|
|
14
|
+
[RoomShape.IV]: newReadonlyVector(8, 6), // 3
|
|
21
15
|
[RoomShape.SHAPE_1x2]: ONE_BY_TWO_VERTICAL_BOTTOM_RIGHT_POSITION, // 4
|
|
22
|
-
[RoomShape.IIV]:
|
|
23
|
-
[RoomShape.SHAPE_2x1]:
|
|
24
|
-
[RoomShape.IIH]:
|
|
16
|
+
[RoomShape.IIV]: newReadonlyVector(8, 13), // 5
|
|
17
|
+
[RoomShape.SHAPE_2x1]: newReadonlyVector(25, 6), // 6
|
|
18
|
+
[RoomShape.IIH]: newReadonlyVector(25, 4), // 7
|
|
25
19
|
[RoomShape.SHAPE_2x2]: TWO_BY_TWO_BOTTOM_RIGHT_POSITION, // 8
|
|
26
20
|
[RoomShape.LTL]: TWO_BY_TWO_BOTTOM_RIGHT_POSITION, // 9
|
|
27
21
|
[RoomShape.LTR]: TWO_BY_TWO_BOTTOM_RIGHT_POSITION, // 10
|
|
28
22
|
[RoomShape.LBL]: TWO_BY_TWO_BOTTOM_RIGHT_POSITION, // 11
|
|
29
23
|
[RoomShape.LBR]: ONE_BY_TWO_VERTICAL_BOTTOM_RIGHT_POSITION, // 12
|
|
30
|
-
} as const
|
|
24
|
+
} as const satisfies Record<RoomShape, Readonly<Vector>>;
|
|
@@ -5,120 +5,119 @@ import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
|
|
|
5
5
|
*
|
|
6
6
|
* e.g. `<door exists="False" x="-1" y="3" />`
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
// operator.
|
|
10
|
-
export const ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES: {
|
|
11
|
-
readonly [Key in RoomShape]: ReadonlyMap<DoorSlot, readonly [x: int, y: int]>;
|
|
12
|
-
} = {
|
|
8
|
+
export const ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES = {
|
|
13
9
|
// 1
|
|
14
|
-
[RoomShape.SHAPE_1x1]:
|
|
15
|
-
[DoorSlot.LEFT_0
|
|
16
|
-
[DoorSlot.UP_0
|
|
17
|
-
[DoorSlot.RIGHT_0
|
|
18
|
-
[DoorSlot.DOWN_0
|
|
19
|
-
|
|
10
|
+
[RoomShape.SHAPE_1x1]: {
|
|
11
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
12
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
13
|
+
[DoorSlot.RIGHT_0]: [13, 3], // 2
|
|
14
|
+
[DoorSlot.DOWN_0]: [6, 7], // 3
|
|
15
|
+
},
|
|
20
16
|
|
|
21
17
|
// 2
|
|
22
|
-
[RoomShape.IH]:
|
|
23
|
-
[DoorSlot.LEFT_0
|
|
24
|
-
[DoorSlot.RIGHT_0
|
|
25
|
-
|
|
18
|
+
[RoomShape.IH]: {
|
|
19
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
20
|
+
[DoorSlot.RIGHT_0]: [13, 3], // 2
|
|
21
|
+
},
|
|
26
22
|
|
|
27
23
|
// 3
|
|
28
|
-
[RoomShape.IV]:
|
|
29
|
-
[DoorSlot.UP_0
|
|
30
|
-
[DoorSlot.DOWN_0
|
|
31
|
-
|
|
24
|
+
[RoomShape.IV]: {
|
|
25
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
26
|
+
[DoorSlot.DOWN_0]: [6, 7], // 3
|
|
27
|
+
},
|
|
32
28
|
|
|
33
29
|
// 4
|
|
34
|
-
[RoomShape.SHAPE_1x2]:
|
|
35
|
-
[DoorSlot.LEFT_0
|
|
36
|
-
[DoorSlot.UP_0
|
|
37
|
-
[DoorSlot.RIGHT_0
|
|
38
|
-
[DoorSlot.DOWN_0
|
|
39
|
-
[DoorSlot.LEFT_1
|
|
40
|
-
[DoorSlot.RIGHT_1
|
|
41
|
-
|
|
30
|
+
[RoomShape.SHAPE_1x2]: {
|
|
31
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
32
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
33
|
+
[DoorSlot.RIGHT_0]: [13, 3], // 2
|
|
34
|
+
[DoorSlot.DOWN_0]: [6, 14], // 3
|
|
35
|
+
[DoorSlot.LEFT_1]: [-1, 10], // 4
|
|
36
|
+
[DoorSlot.RIGHT_1]: [13, 10], // 6
|
|
37
|
+
},
|
|
42
38
|
|
|
43
39
|
// 5
|
|
44
|
-
[RoomShape.IIV]:
|
|
45
|
-
[DoorSlot.UP_0
|
|
46
|
-
[DoorSlot.DOWN_0
|
|
47
|
-
|
|
40
|
+
[RoomShape.IIV]: {
|
|
41
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
42
|
+
[DoorSlot.DOWN_0]: [6, 14], // 3
|
|
43
|
+
},
|
|
48
44
|
|
|
49
45
|
// 6
|
|
50
|
-
[RoomShape.SHAPE_2x1]:
|
|
51
|
-
[DoorSlot.LEFT_0
|
|
52
|
-
[DoorSlot.UP_0
|
|
53
|
-
[DoorSlot.RIGHT_0
|
|
54
|
-
[DoorSlot.DOWN_0
|
|
55
|
-
[DoorSlot.UP_1
|
|
56
|
-
[DoorSlot.DOWN_1
|
|
57
|
-
|
|
46
|
+
[RoomShape.SHAPE_2x1]: {
|
|
47
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
48
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
49
|
+
[DoorSlot.RIGHT_0]: [26, 3], // 2
|
|
50
|
+
[DoorSlot.DOWN_0]: [6, 7], // 3
|
|
51
|
+
[DoorSlot.UP_1]: [19, -1], // 5
|
|
52
|
+
[DoorSlot.DOWN_1]: [19, 7], // 7
|
|
53
|
+
},
|
|
58
54
|
|
|
59
55
|
// 7
|
|
60
|
-
[RoomShape.IIH]:
|
|
61
|
-
[DoorSlot.LEFT_0
|
|
62
|
-
[DoorSlot.RIGHT_0
|
|
63
|
-
|
|
56
|
+
[RoomShape.IIH]: {
|
|
57
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
58
|
+
[DoorSlot.RIGHT_0]: [26, 3], // 2
|
|
59
|
+
},
|
|
64
60
|
|
|
65
61
|
// 8
|
|
66
|
-
[RoomShape.SHAPE_2x2]:
|
|
67
|
-
[DoorSlot.LEFT_0
|
|
68
|
-
[DoorSlot.UP_0
|
|
69
|
-
[DoorSlot.RIGHT_0
|
|
70
|
-
[DoorSlot.DOWN_0
|
|
71
|
-
[DoorSlot.LEFT_1
|
|
72
|
-
[DoorSlot.UP_1
|
|
73
|
-
[DoorSlot.RIGHT_1
|
|
74
|
-
[DoorSlot.DOWN_1
|
|
75
|
-
|
|
62
|
+
[RoomShape.SHAPE_2x2]: {
|
|
63
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
64
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
65
|
+
[DoorSlot.RIGHT_0]: [26, 3], // 2
|
|
66
|
+
[DoorSlot.DOWN_0]: [6, 14], // 3
|
|
67
|
+
[DoorSlot.LEFT_1]: [-1, 10], // 4
|
|
68
|
+
[DoorSlot.UP_1]: [19, -1], // 5
|
|
69
|
+
[DoorSlot.RIGHT_1]: [26, 10], // 6
|
|
70
|
+
[DoorSlot.DOWN_1]: [19, 14], // 7
|
|
71
|
+
},
|
|
76
72
|
|
|
77
73
|
// 9
|
|
78
|
-
[RoomShape.LTL]:
|
|
79
|
-
[DoorSlot.LEFT_0
|
|
80
|
-
[DoorSlot.UP_0
|
|
81
|
-
[DoorSlot.RIGHT_0
|
|
82
|
-
[DoorSlot.DOWN_0
|
|
83
|
-
[DoorSlot.LEFT_1
|
|
84
|
-
[DoorSlot.UP_1
|
|
85
|
-
[DoorSlot.RIGHT_1
|
|
86
|
-
[DoorSlot.DOWN_1
|
|
87
|
-
|
|
74
|
+
[RoomShape.LTL]: {
|
|
75
|
+
[DoorSlot.LEFT_0]: [12, 3], // 0
|
|
76
|
+
[DoorSlot.UP_0]: [6, 6], // 1
|
|
77
|
+
[DoorSlot.RIGHT_0]: [26, 3], // 2
|
|
78
|
+
[DoorSlot.DOWN_0]: [6, 14], // 3
|
|
79
|
+
[DoorSlot.LEFT_1]: [-1, 10], // 4
|
|
80
|
+
[DoorSlot.UP_1]: [19, -1], // 5
|
|
81
|
+
[DoorSlot.RIGHT_1]: [26, 10], // 6
|
|
82
|
+
[DoorSlot.DOWN_1]: [19, 14], // 7
|
|
83
|
+
},
|
|
88
84
|
|
|
89
85
|
// 10
|
|
90
|
-
[RoomShape.LTR]:
|
|
91
|
-
[DoorSlot.LEFT_0
|
|
92
|
-
[DoorSlot.UP_0
|
|
93
|
-
[DoorSlot.RIGHT_0
|
|
94
|
-
[DoorSlot.DOWN_0
|
|
95
|
-
[DoorSlot.LEFT_1
|
|
96
|
-
[DoorSlot.UP_1
|
|
97
|
-
[DoorSlot.RIGHT_1
|
|
98
|
-
[DoorSlot.DOWN_1
|
|
99
|
-
|
|
86
|
+
[RoomShape.LTR]: {
|
|
87
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
88
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
89
|
+
[DoorSlot.RIGHT_0]: [13, 3], // 2
|
|
90
|
+
[DoorSlot.DOWN_0]: [6, 14], // 3
|
|
91
|
+
[DoorSlot.LEFT_1]: [-1, 10], // 4
|
|
92
|
+
[DoorSlot.UP_1]: [19, 6], // 5
|
|
93
|
+
[DoorSlot.RIGHT_1]: [26, 10], // 6
|
|
94
|
+
[DoorSlot.DOWN_1]: [19, 14], // 7
|
|
95
|
+
},
|
|
100
96
|
|
|
101
97
|
// 11
|
|
102
|
-
[RoomShape.LBL]:
|
|
103
|
-
[DoorSlot.LEFT_0
|
|
104
|
-
[DoorSlot.UP_0
|
|
105
|
-
[DoorSlot.RIGHT_0
|
|
106
|
-
[DoorSlot.DOWN_0
|
|
107
|
-
[DoorSlot.LEFT_1
|
|
108
|
-
[DoorSlot.UP_1
|
|
109
|
-
[DoorSlot.RIGHT_1
|
|
110
|
-
[DoorSlot.DOWN_1
|
|
111
|
-
|
|
98
|
+
[RoomShape.LBL]: {
|
|
99
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
100
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
101
|
+
[DoorSlot.RIGHT_0]: [26, 3], // 2
|
|
102
|
+
[DoorSlot.DOWN_0]: [6, 7], // 3
|
|
103
|
+
[DoorSlot.LEFT_1]: [12, 10], // 4
|
|
104
|
+
[DoorSlot.UP_1]: [19, -1], // 5
|
|
105
|
+
[DoorSlot.RIGHT_1]: [26, 10], // 6
|
|
106
|
+
[DoorSlot.DOWN_1]: [19, 14], // 7
|
|
107
|
+
},
|
|
112
108
|
|
|
113
109
|
// 12
|
|
114
|
-
[RoomShape.LBR]:
|
|
115
|
-
[DoorSlot.LEFT_0
|
|
116
|
-
[DoorSlot.UP_0
|
|
117
|
-
[DoorSlot.RIGHT_0
|
|
118
|
-
[DoorSlot.DOWN_0
|
|
119
|
-
[DoorSlot.LEFT_1
|
|
120
|
-
[DoorSlot.UP_1
|
|
121
|
-
[DoorSlot.RIGHT_1
|
|
122
|
-
[DoorSlot.DOWN_1
|
|
123
|
-
|
|
124
|
-
} as const
|
|
110
|
+
[RoomShape.LBR]: {
|
|
111
|
+
[DoorSlot.LEFT_0]: [-1, 3], // 0
|
|
112
|
+
[DoorSlot.UP_0]: [6, -1], // 1
|
|
113
|
+
[DoorSlot.RIGHT_0]: [26, 3], // 2
|
|
114
|
+
[DoorSlot.DOWN_0]: [6, 14], // 3
|
|
115
|
+
[DoorSlot.LEFT_1]: [-1, 10], // 4
|
|
116
|
+
[DoorSlot.UP_1]: [19, -1], // 5
|
|
117
|
+
[DoorSlot.RIGHT_1]: [13, 10], // 6
|
|
118
|
+
[DoorSlot.DOWN_1]: [19, 7], // 7
|
|
119
|
+
},
|
|
120
|
+
} as const satisfies Record<
|
|
121
|
+
RoomShape,
|
|
122
|
+
Partial<Record<DoorSlot, readonly [x: int, y: int]>>
|
|
123
|
+
>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
3
|
|
|
3
|
-
const ALL_DOOR_SLOTS_SET
|
|
4
|
+
const ALL_DOOR_SLOTS_SET = new ReadonlySet<DoorSlot>([
|
|
4
5
|
DoorSlot.LEFT_0, // 0
|
|
5
6
|
DoorSlot.UP_0, // 1
|
|
6
7
|
DoorSlot.RIGHT_0, // 2
|
|
@@ -11,13 +12,9 @@ const ALL_DOOR_SLOTS_SET: ReadonlySet<DoorSlot> = new Set([
|
|
|
11
12
|
DoorSlot.DOWN_1, // 7
|
|
12
13
|
]);
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
// operator.
|
|
16
|
-
export const ROOM_SHAPE_TO_DOOR_SLOTS: {
|
|
17
|
-
readonly [Key in RoomShape]: ReadonlySet<DoorSlot>;
|
|
18
|
-
} = {
|
|
15
|
+
export const ROOM_SHAPE_TO_DOOR_SLOTS = {
|
|
19
16
|
// 1
|
|
20
|
-
[RoomShape.SHAPE_1x1]: new
|
|
17
|
+
[RoomShape.SHAPE_1x1]: new ReadonlySet([
|
|
21
18
|
DoorSlot.LEFT_0, // 0
|
|
22
19
|
DoorSlot.UP_0, // 1
|
|
23
20
|
DoorSlot.RIGHT_0, // 2
|
|
@@ -25,19 +22,19 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS: {
|
|
|
25
22
|
]),
|
|
26
23
|
|
|
27
24
|
// 2
|
|
28
|
-
[RoomShape.IH]: new
|
|
25
|
+
[RoomShape.IH]: new ReadonlySet([
|
|
29
26
|
DoorSlot.LEFT_0, // 0
|
|
30
27
|
DoorSlot.RIGHT_0, // 2
|
|
31
28
|
]),
|
|
32
29
|
|
|
33
30
|
// 3
|
|
34
|
-
[RoomShape.IV]: new
|
|
31
|
+
[RoomShape.IV]: new ReadonlySet([
|
|
35
32
|
DoorSlot.UP_0, // 1
|
|
36
33
|
DoorSlot.DOWN_0, // 3
|
|
37
34
|
]),
|
|
38
35
|
|
|
39
36
|
// 4
|
|
40
|
-
[RoomShape.SHAPE_1x2]: new
|
|
37
|
+
[RoomShape.SHAPE_1x2]: new ReadonlySet([
|
|
41
38
|
DoorSlot.LEFT_0, // 0
|
|
42
39
|
DoorSlot.UP_0, // 1
|
|
43
40
|
DoorSlot.RIGHT_0, // 2
|
|
@@ -47,13 +44,13 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS: {
|
|
|
47
44
|
]),
|
|
48
45
|
|
|
49
46
|
// 5
|
|
50
|
-
[RoomShape.IIV]: new
|
|
47
|
+
[RoomShape.IIV]: new ReadonlySet([
|
|
51
48
|
DoorSlot.UP_0, // 1
|
|
52
49
|
DoorSlot.DOWN_0, // 3
|
|
53
50
|
]),
|
|
54
51
|
|
|
55
52
|
// 6
|
|
56
|
-
[RoomShape.SHAPE_2x1]: new
|
|
53
|
+
[RoomShape.SHAPE_2x1]: new ReadonlySet([
|
|
57
54
|
DoorSlot.LEFT_0, // 0
|
|
58
55
|
DoorSlot.UP_0, // 1
|
|
59
56
|
DoorSlot.RIGHT_0, // 2
|
|
@@ -63,7 +60,7 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS: {
|
|
|
63
60
|
]),
|
|
64
61
|
|
|
65
62
|
// 7
|
|
66
|
-
[RoomShape.IIH]: new
|
|
63
|
+
[RoomShape.IIH]: new ReadonlySet([
|
|
67
64
|
DoorSlot.LEFT_0, // 0
|
|
68
65
|
DoorSlot.RIGHT_0, // 2
|
|
69
66
|
]),
|
|
@@ -82,4 +79,4 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS: {
|
|
|
82
79
|
|
|
83
80
|
// 12
|
|
84
81
|
[RoomShape.LBR]: ALL_DOOR_SLOTS_SET,
|
|
85
|
-
} as const
|
|
82
|
+
} as const satisfies Record<RoomShape, ReadonlySet<DoorSlot>>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
|
|
2
2
|
import { LEVEL_GRID_ROW_WIDTH } from "../core/constants";
|
|
3
|
+
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
3
4
|
|
|
4
5
|
const LEFT = -1;
|
|
5
6
|
const UP = -LEVEL_GRID_ROW_WIDTH;
|
|
@@ -10,13 +11,13 @@ const DOWN = LEVEL_GRID_ROW_WIDTH;
|
|
|
10
11
|
* Deltas are considered to be from the safe grid index of the room (i.e. the top left corner, or
|
|
11
12
|
* top right corner in the case of `RoomShape.LTL`).
|
|
12
13
|
*/
|
|
13
|
-
// We need the maps to be
|
|
14
|
-
// operator.
|
|
14
|
+
// We need the maps to be widened for all `DoorSlot`, so we specify the type instead of using the
|
|
15
|
+
// `satisfies` operator.
|
|
15
16
|
export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA: {
|
|
16
17
|
readonly [Key in RoomShape]: ReadonlyMap<DoorSlot, int>;
|
|
17
18
|
} = {
|
|
18
19
|
// 1
|
|
19
|
-
[RoomShape.SHAPE_1x1]: new
|
|
20
|
+
[RoomShape.SHAPE_1x1]: new ReadonlyMap([
|
|
20
21
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
21
22
|
[DoorSlot.UP_0, UP], // 1
|
|
22
23
|
[DoorSlot.RIGHT_0, RIGHT], // 2
|
|
@@ -24,19 +25,19 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA: {
|
|
|
24
25
|
]),
|
|
25
26
|
|
|
26
27
|
// 2
|
|
27
|
-
[RoomShape.IH]: new
|
|
28
|
+
[RoomShape.IH]: new ReadonlyMap([
|
|
28
29
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
29
30
|
[DoorSlot.RIGHT_0, RIGHT], // 2
|
|
30
31
|
]),
|
|
31
32
|
|
|
32
33
|
// 3
|
|
33
|
-
[RoomShape.IV]: new
|
|
34
|
+
[RoomShape.IV]: new ReadonlyMap([
|
|
34
35
|
[DoorSlot.UP_0, UP], // 1
|
|
35
36
|
[DoorSlot.DOWN_0, DOWN], // 3
|
|
36
37
|
]),
|
|
37
38
|
|
|
38
39
|
// 4
|
|
39
|
-
[RoomShape.SHAPE_1x2]: new
|
|
40
|
+
[RoomShape.SHAPE_1x2]: new ReadonlyMap([
|
|
40
41
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
41
42
|
[DoorSlot.UP_0, UP], // 1
|
|
42
43
|
[DoorSlot.RIGHT_0, RIGHT], // 2
|
|
@@ -46,13 +47,13 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA: {
|
|
|
46
47
|
]),
|
|
47
48
|
|
|
48
49
|
// 5
|
|
49
|
-
[RoomShape.IIV]: new
|
|
50
|
+
[RoomShape.IIV]: new ReadonlyMap([
|
|
50
51
|
[DoorSlot.UP_0, UP], // 1
|
|
51
52
|
[DoorSlot.DOWN_0, DOWN + DOWN], // 3
|
|
52
53
|
]),
|
|
53
54
|
|
|
54
55
|
// 6
|
|
55
|
-
[RoomShape.SHAPE_2x1]: new
|
|
56
|
+
[RoomShape.SHAPE_2x1]: new ReadonlyMap([
|
|
56
57
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
57
58
|
[DoorSlot.UP_0, UP], // 1
|
|
58
59
|
[DoorSlot.RIGHT_0, RIGHT + RIGHT], // 2
|
|
@@ -62,13 +63,13 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA: {
|
|
|
62
63
|
]),
|
|
63
64
|
|
|
64
65
|
// 7
|
|
65
|
-
[RoomShape.IIH]: new
|
|
66
|
+
[RoomShape.IIH]: new ReadonlyMap([
|
|
66
67
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
67
68
|
[DoorSlot.RIGHT_0, RIGHT + RIGHT], // 2
|
|
68
69
|
]),
|
|
69
70
|
|
|
70
71
|
// 8
|
|
71
|
-
[RoomShape.SHAPE_2x2]: new
|
|
72
|
+
[RoomShape.SHAPE_2x2]: new ReadonlyMap([
|
|
72
73
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
73
74
|
[DoorSlot.UP_0, UP], // 1
|
|
74
75
|
[DoorSlot.RIGHT_0, RIGHT + RIGHT], // 2
|
|
@@ -80,7 +81,7 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA: {
|
|
|
80
81
|
]),
|
|
81
82
|
|
|
82
83
|
// 9
|
|
83
|
-
[RoomShape.LTL]: new
|
|
84
|
+
[RoomShape.LTL]: new ReadonlyMap([
|
|
84
85
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
85
86
|
[DoorSlot.UP_0, DOWN + LEFT + UP], // 1
|
|
86
87
|
[DoorSlot.RIGHT_0, RIGHT], // 2
|
|
@@ -92,7 +93,7 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA: {
|
|
|
92
93
|
]),
|
|
93
94
|
|
|
94
95
|
// 10
|
|
95
|
-
[RoomShape.LTR]: new
|
|
96
|
+
[RoomShape.LTR]: new ReadonlyMap([
|
|
96
97
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
97
98
|
[DoorSlot.UP_0, UP], // 1
|
|
98
99
|
[DoorSlot.RIGHT_0, RIGHT], // 2
|
|
@@ -104,7 +105,7 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA: {
|
|
|
104
105
|
]),
|
|
105
106
|
|
|
106
107
|
// 11
|
|
107
|
-
[RoomShape.LBL]: new
|
|
108
|
+
[RoomShape.LBL]: new ReadonlyMap([
|
|
108
109
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
109
110
|
[DoorSlot.UP_0, UP], // 1
|
|
110
111
|
[DoorSlot.RIGHT_0, RIGHT + RIGHT], // 2
|
|
@@ -116,7 +117,7 @@ export const ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA: {
|
|
|
116
117
|
]),
|
|
117
118
|
|
|
118
119
|
// 12
|
|
119
|
-
[RoomShape.LBR]: new
|
|
120
|
+
[RoomShape.LBR]: new ReadonlyMap([
|
|
120
121
|
[DoorSlot.LEFT_0, LEFT], // 0
|
|
121
122
|
[DoorSlot.UP_0, UP], // 1
|
|
122
123
|
[DoorSlot.RIGHT_0, RIGHT + RIGHT], // 2
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { RoomShape } from "isaac-typescript-definitions";
|
|
2
|
-
import { HasAllEnumKeys } from "../types/HasAllEnumKeys";
|
|
3
2
|
|
|
4
3
|
const ONE_BY_ONE_WIDTH = 15;
|
|
5
4
|
const TWO_BY_ONE_WIDTH = 28;
|
|
@@ -17,4 +16,4 @@ export const ROOM_SHAPE_TO_GRID_WIDTH = {
|
|
|
17
16
|
[RoomShape.LTR]: TWO_BY_ONE_WIDTH, // 10
|
|
18
17
|
[RoomShape.LBL]: TWO_BY_ONE_WIDTH, // 11
|
|
19
18
|
[RoomShape.LBR]: TWO_BY_ONE_WIDTH, // 12
|
|
20
|
-
} as const satisfies
|
|
19
|
+
} as const satisfies Record<RoomShape, int>;
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { RoomShape } from "isaac-typescript-definitions";
|
|
2
2
|
import { VectorZero } from "../core/constants";
|
|
3
|
+
import { newReadonlyVector } from "../functions/readOnly";
|
|
3
4
|
|
|
4
|
-
const NARROW_HORIZONTAL_TOP_LEFT_POSITION
|
|
5
|
-
const NARROW_VERTICAL_TOP_LEFT_POSITION
|
|
5
|
+
const NARROW_HORIZONTAL_TOP_LEFT_POSITION = newReadonlyVector(0, 2);
|
|
6
|
+
const NARROW_VERTICAL_TOP_LEFT_POSITION = newReadonlyVector(4, 0);
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
|
|
9
10
|
* wall would be at "Vector(-1, -1)".)
|
|
10
11
|
*/
|
|
11
|
-
|
|
12
|
-
// operator.
|
|
13
|
-
export const ROOM_SHAPE_TO_TOP_LEFT_POSITION: {
|
|
14
|
-
readonly [Key in RoomShape]: Readonly<Vector>;
|
|
15
|
-
} = {
|
|
12
|
+
export const ROOM_SHAPE_TO_TOP_LEFT_POSITION = {
|
|
16
13
|
[RoomShape.SHAPE_1x1]: VectorZero, // 1
|
|
17
14
|
[RoomShape.IH]: NARROW_HORIZONTAL_TOP_LEFT_POSITION, // 2
|
|
18
15
|
[RoomShape.IV]: NARROW_VERTICAL_TOP_LEFT_POSITION, // 3
|
|
@@ -21,8 +18,8 @@ export const ROOM_SHAPE_TO_TOP_LEFT_POSITION: {
|
|
|
21
18
|
[RoomShape.SHAPE_2x1]: VectorZero, // 6
|
|
22
19
|
[RoomShape.IIH]: NARROW_HORIZONTAL_TOP_LEFT_POSITION, // 7
|
|
23
20
|
[RoomShape.SHAPE_2x2]: VectorZero, // 8
|
|
24
|
-
[RoomShape.LTL]:
|
|
21
|
+
[RoomShape.LTL]: newReadonlyVector(13, 0), // 9
|
|
25
22
|
[RoomShape.LTR]: VectorZero, // 10
|
|
26
23
|
[RoomShape.LBL]: VectorZero, // 11
|
|
27
24
|
[RoomShape.LBR]: VectorZero, // 12
|
|
28
|
-
} as const
|
|
25
|
+
} as const satisfies Record<RoomShape, Readonly<Vector>>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { RoomShape } from "isaac-typescript-definitions";
|
|
2
|
-
import { HasAllEnumKeys } from "../types/HasAllEnumKeys";
|
|
3
2
|
|
|
4
3
|
export const ONE_BY_ONE_CONTENTS_WIDTH = 13;
|
|
5
4
|
export const ONE_BY_ONE_CONTENTS_HEIGHT = 7;
|
|
@@ -34,4 +33,4 @@ export const ROOM_SHAPE_VOLUMES = {
|
|
|
34
33
|
[RoomShape.LTR]: L_ROOM_VOLUME, // 10
|
|
35
34
|
[RoomShape.LBL]: L_ROOM_VOLUME, // 11
|
|
36
35
|
[RoomShape.LBR]: L_ROOM_VOLUME, // 12
|
|
37
|
-
} as const satisfies
|
|
36
|
+
} as const satisfies Record<RoomShape, int>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { RoomType } from "isaac-typescript-definitions";
|
|
2
|
-
import { HasAllEnumKeys } from "../types/HasAllEnumKeys";
|
|
3
2
|
|
|
4
3
|
export const ROOM_TYPE_GOTO_PREFIXES = {
|
|
5
4
|
[RoomType.DEFAULT]: "s.default", // 1
|
|
@@ -31,4 +30,4 @@ export const ROOM_TYPE_GOTO_PREFIXES = {
|
|
|
31
30
|
[RoomType.SECRET_EXIT]: "s.secretexit", // 27
|
|
32
31
|
[RoomType.BLUE]: "s.blue", // 28
|
|
33
32
|
[RoomType.ULTRA_SECRET]: "s.ultrasecret", // 29
|
|
34
|
-
} as const satisfies
|
|
33
|
+
} as const satisfies Record<RoomType, string>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { RoomType } from "isaac-typescript-definitions";
|
|
2
|
-
import { HasAllEnumKeys } from "../types/HasAllEnumKeys";
|
|
3
2
|
|
|
4
3
|
export const ROOM_TYPE_NAMES = {
|
|
5
4
|
[RoomType.DEFAULT]: "default room", // 1
|
|
@@ -31,4 +30,4 @@ export const ROOM_TYPE_NAMES = {
|
|
|
31
30
|
[RoomType.SECRET_EXIT]: "Secret Exit", // 27
|
|
32
31
|
[RoomType.BLUE]: "Blue Room", // 28
|
|
33
32
|
[RoomType.ULTRA_SECRET]: "Ultra Secret Room", // 29
|
|
34
|
-
} as const satisfies
|
|
33
|
+
} as const satisfies Record<RoomType, string>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { LevelStage, Music, StageType } from "isaac-typescript-definitions";
|
|
2
|
-
import { HasAllEnumKeys } from "../types/HasAllEnumKeys";
|
|
3
2
|
|
|
4
3
|
const BASEMENT_TO_MUSIC = {
|
|
5
4
|
[StageType.ORIGINAL]: Music.BASEMENT,
|
|
@@ -8,7 +7,7 @@ const BASEMENT_TO_MUSIC = {
|
|
|
8
7
|
[StageType.GREED_MODE]: Music.BASEMENT,
|
|
9
8
|
[StageType.REPENTANCE]: Music.DOWNPOUR,
|
|
10
9
|
[StageType.REPENTANCE_B]: Music.DROSS,
|
|
11
|
-
} as const satisfies
|
|
10
|
+
} as const satisfies Record<StageType, Music>;
|
|
12
11
|
|
|
13
12
|
const CAVES_TO_MUSIC = {
|
|
14
13
|
[StageType.ORIGINAL]: Music.CAVES,
|
|
@@ -17,7 +16,7 @@ const CAVES_TO_MUSIC = {
|
|
|
17
16
|
[StageType.GREED_MODE]: Music.CAVES,
|
|
18
17
|
[StageType.REPENTANCE]: Music.MINES,
|
|
19
18
|
[StageType.REPENTANCE_B]: Music.ASHPIT,
|
|
20
|
-
} as const satisfies
|
|
19
|
+
} as const satisfies Record<StageType, Music>;
|
|
21
20
|
|
|
22
21
|
const DEPTHS_TO_MUSIC = {
|
|
23
22
|
[StageType.ORIGINAL]: Music.DEPTHS,
|
|
@@ -26,7 +25,7 @@ const DEPTHS_TO_MUSIC = {
|
|
|
26
25
|
[StageType.GREED_MODE]: Music.DEPTHS,
|
|
27
26
|
[StageType.REPENTANCE]: Music.MAUSOLEUM,
|
|
28
27
|
[StageType.REPENTANCE_B]: Music.GEHENNA,
|
|
29
|
-
} as const satisfies
|
|
28
|
+
} as const satisfies Record<StageType, Music>;
|
|
30
29
|
|
|
31
30
|
const WOMB_TO_MUSIC = {
|
|
32
31
|
[StageType.ORIGINAL]: Music.WOMB,
|
|
@@ -35,7 +34,7 @@ const WOMB_TO_MUSIC = {
|
|
|
35
34
|
[StageType.GREED_MODE]: Music.WOMB,
|
|
36
35
|
[StageType.REPENTANCE]: Music.CORPSE,
|
|
37
36
|
[StageType.REPENTANCE_B]: Music.MORTIS,
|
|
38
|
-
} as const satisfies
|
|
37
|
+
} as const satisfies Record<StageType, Music>;
|
|
39
38
|
|
|
40
39
|
const BLUE_WOMB_TO_MUSIC = {
|
|
41
40
|
[StageType.ORIGINAL]: Music.BLUE_WOMB,
|
|
@@ -44,7 +43,7 @@ const BLUE_WOMB_TO_MUSIC = {
|
|
|
44
43
|
[StageType.GREED_MODE]: Music.BLUE_WOMB,
|
|
45
44
|
[StageType.REPENTANCE]: Music.BLUE_WOMB,
|
|
46
45
|
[StageType.REPENTANCE_B]: Music.BLUE_WOMB,
|
|
47
|
-
} as const satisfies
|
|
46
|
+
} as const satisfies Record<StageType, Music>;
|
|
48
47
|
|
|
49
48
|
const SHEOL_CATHEDRAL_TO_MUSIC = {
|
|
50
49
|
[StageType.ORIGINAL]: Music.SHEOL,
|
|
@@ -53,7 +52,7 @@ const SHEOL_CATHEDRAL_TO_MUSIC = {
|
|
|
53
52
|
[StageType.GREED_MODE]: Music.SHEOL,
|
|
54
53
|
[StageType.REPENTANCE]: Music.SHEOL,
|
|
55
54
|
[StageType.REPENTANCE_B]: Music.SHEOL,
|
|
56
|
-
} as const satisfies
|
|
55
|
+
} as const satisfies Record<StageType, Music>;
|
|
57
56
|
|
|
58
57
|
const DARK_ROOM_CHEST_TO_MUSIC = {
|
|
59
58
|
[StageType.ORIGINAL]: Music.DARK_ROOM,
|
|
@@ -62,7 +61,7 @@ const DARK_ROOM_CHEST_TO_MUSIC = {
|
|
|
62
61
|
[StageType.GREED_MODE]: Music.DARK_ROOM,
|
|
63
62
|
[StageType.REPENTANCE]: Music.DARK_ROOM,
|
|
64
63
|
[StageType.REPENTANCE_B]: Music.DARK_ROOM,
|
|
65
|
-
} as const satisfies
|
|
64
|
+
} as const satisfies Record<StageType, Music>;
|
|
66
65
|
|
|
67
66
|
const THE_VOID_TO_MUSIC = {
|
|
68
67
|
[StageType.ORIGINAL]: Music.VOID,
|
|
@@ -71,7 +70,7 @@ const THE_VOID_TO_MUSIC = {
|
|
|
71
70
|
[StageType.GREED_MODE]: Music.VOID,
|
|
72
71
|
[StageType.REPENTANCE]: Music.VOID,
|
|
73
72
|
[StageType.REPENTANCE_B]: Music.VOID,
|
|
74
|
-
} as const satisfies
|
|
73
|
+
} as const satisfies Record<StageType, Music>;
|
|
75
74
|
|
|
76
75
|
const HOME_TO_MUSIC = {
|
|
77
76
|
[StageType.ORIGINAL]: Music.ISAACS_HOUSE,
|
|
@@ -80,7 +79,7 @@ const HOME_TO_MUSIC = {
|
|
|
80
79
|
[StageType.GREED_MODE]: Music.ISAACS_HOUSE,
|
|
81
80
|
[StageType.REPENTANCE]: Music.ISAACS_HOUSE,
|
|
82
81
|
[StageType.REPENTANCE_B]: Music.ISAACS_HOUSE,
|
|
83
|
-
} as const satisfies
|
|
82
|
+
} as const satisfies Record<StageType, Music>;
|
|
84
83
|
|
|
85
84
|
export const STAGE_TO_MUSIC = {
|
|
86
85
|
[LevelStage.BASEMENT_1]: BASEMENT_TO_MUSIC,
|
|
@@ -96,4 +95,4 @@ export const STAGE_TO_MUSIC = {
|
|
|
96
95
|
[LevelStage.DARK_ROOM_CHEST]: DARK_ROOM_CHEST_TO_MUSIC,
|
|
97
96
|
[LevelStage.THE_VOID]: THE_VOID_TO_MUSIC,
|
|
98
97
|
[LevelStage.HOME]: HOME_TO_MUSIC,
|
|
99
|
-
} as const satisfies
|
|
98
|
+
} as const satisfies Record<LevelStage, Record<StageType, Music>>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { StageType } from "isaac-typescript-definitions";
|
|
2
|
-
import { HasAllEnumKeys } from "../types/HasAllEnumKeys";
|
|
3
2
|
|
|
4
3
|
export const STAGE_TYPE_SUFFIXES = {
|
|
5
4
|
[StageType.ORIGINAL]: "", // 0
|
|
@@ -8,4 +7,4 @@ export const STAGE_TYPE_SUFFIXES = {
|
|
|
8
7
|
[StageType.GREED_MODE]: "", // 3
|
|
9
8
|
[StageType.REPENTANCE]: "c", // 4
|
|
10
9
|
[StageType.REPENTANCE_B]: "d", // 5
|
|
11
|
-
} as const satisfies
|
|
10
|
+
} as const satisfies Record<StageType, string>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { StageType } from "isaac-typescript-definitions";
|
|
2
|
-
import { HasAllEnumKeys } from "../types/HasAllEnumKeys";
|
|
3
2
|
|
|
4
3
|
export const STAGE_TYPE_TO_LETTER = {
|
|
5
4
|
// For example, to go to Basement 2, the command is simply "stage 2" without a letter suffix.
|
|
@@ -13,4 +12,4 @@ export const STAGE_TYPE_TO_LETTER = {
|
|
|
13
12
|
|
|
14
13
|
[StageType.REPENTANCE]: "c", // 4
|
|
15
14
|
[StageType.REPENTANCE_B]: "d", // 5
|
|
16
|
-
} as const satisfies
|
|
15
|
+
} as const satisfies Record<StageType, string>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { PlayerForm } from "isaac-typescript-definitions";
|
|
2
|
-
import { HasAllEnumKeys } from "../types/HasAllEnumKeys";
|
|
3
2
|
|
|
4
3
|
export const TRANSFORMATION_NAMES = {
|
|
5
4
|
[PlayerForm.GUPPY]: "Guppy", // 0
|
|
@@ -16,4 +15,4 @@ export const TRANSFORMATION_NAMES = {
|
|
|
16
15
|
[PlayerForm.ADULT]: "Adult", // 11
|
|
17
16
|
[PlayerForm.SPIDER_BABY]: "Spider Baby", // 12
|
|
18
17
|
[PlayerForm.STOMPY]: "Stompy", // 13
|
|
19
|
-
} as const satisfies
|
|
18
|
+
} as const satisfies Record<PlayerForm, string>;
|