isaacscript-common 3.17.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cachedClasses.ts +39 -0
- package/callbacks/customRevive.lua +2 -1
- package/callbacks/customRevive.ts +215 -0
- package/callbacks/itemPickup.ts +101 -0
- package/callbacks/postAmbush.ts +73 -0
- package/callbacks/postBombExploded.ts +26 -0
- package/callbacks/postBombInitLate.ts +36 -0
- package/callbacks/postBoneSwing.ts +64 -0
- package/callbacks/postCollectibleInitFirst.ts +40 -0
- package/callbacks/postCursedTeleport.lua +2 -1
- package/callbacks/postCursedTeleport.ts +185 -0
- package/callbacks/postCustomDoorEnter.lua +0 -7
- package/callbacks/postCustomDoorEnter.ts +292 -0
- package/callbacks/postDiceRoomActivated.ts +60 -0
- package/callbacks/postDoorRender.ts +26 -0
- package/callbacks/postDoorUpdate.ts +26 -0
- package/callbacks/postEffectInitLate.ts +36 -0
- package/callbacks/postEffectStateChanged.ts +43 -0
- package/callbacks/postEsauJr.lua +2 -1
- package/callbacks/postEsauJr.ts +109 -0
- package/callbacks/postFamiliarInitLate.ts +36 -0
- package/callbacks/postFamiliarStateChanged.ts +43 -0
- package/callbacks/postFlip.lua +4 -3
- package/callbacks/postFlip.ts +90 -0
- package/callbacks/postGreedModeWave.ts +41 -0
- package/callbacks/postGridEntity.ts +164 -0
- package/callbacks/postGridEntityCollision.ts +69 -0
- package/callbacks/postGridEntityRender.ts +26 -0
- package/callbacks/postHolyMantleRemoved.ts +55 -0
- package/callbacks/postItemDischarged.lua +4 -3
- package/callbacks/postItemDischarged.ts +154 -0
- package/callbacks/postKnifeInitLate.ts +36 -0
- package/callbacks/postLaserInitLate.ts +36 -0
- package/callbacks/postNPCInitLate.ts +36 -0
- package/callbacks/postNPCStateChanged.ts +42 -0
- package/callbacks/postNewRoomEarly.lua +2 -1
- package/callbacks/postNewRoomEarly.ts +96 -0
- package/callbacks/postPickupCollect.ts +48 -0
- package/callbacks/postPickupInitFirst.ts +70 -0
- package/callbacks/postPickupInitLate.ts +36 -0
- package/callbacks/postPickupStateChanged.ts +43 -0
- package/callbacks/postPitRender.ts +26 -0
- package/callbacks/postPitUpdate.ts +26 -0
- package/callbacks/postPlayerChangeHealth.ts +62 -0
- package/callbacks/postPlayerChangeType.ts +56 -0
- package/callbacks/postPlayerCollectible.ts +113 -0
- package/callbacks/postPlayerFatalDamage.ts +141 -0
- package/callbacks/postPlayerInitLate.ts +37 -0
- package/callbacks/postPlayerReordered.ts +142 -0
- package/callbacks/postPoopRender.ts +26 -0
- package/callbacks/postPoopUpdate.ts +26 -0
- package/callbacks/postPressurePlateRender.ts +26 -0
- package/callbacks/postPressurePlateUpdate.ts +26 -0
- package/callbacks/postProjectileInitLate.ts +36 -0
- package/callbacks/postPurchase.ts +64 -0
- package/callbacks/postRockRender.ts +26 -0
- package/callbacks/postRockUpdate.ts +26 -0
- package/callbacks/postRoomClearChanged.ts +57 -0
- package/callbacks/postSacrifice.lua +3 -2
- package/callbacks/postSacrifice.ts +64 -0
- package/callbacks/postSlotDestroyed.ts +92 -0
- package/callbacks/postSlotInitUpdate.ts +68 -0
- package/callbacks/postSlotRender.ts +69 -0
- package/callbacks/postSpikesRender.ts +26 -0
- package/callbacks/postSpikesUpdate.ts +26 -0
- package/callbacks/postTNTRender.ts +26 -0
- package/callbacks/postTNTUpdate.ts +26 -0
- package/callbacks/postTearInitLate.ts +36 -0
- package/callbacks/postTearInitVeryLate.ts +41 -0
- package/callbacks/postTransformation.ts +59 -0
- package/callbacks/postTrinketBreak.lua +3 -2
- package/callbacks/postTrinketBreak.ts +112 -0
- package/callbacks/preBerserkDeath.ts +49 -0
- package/callbacks/preNewLevel.ts +55 -0
- package/callbacks/reorderedCallbacks.lua +1 -0
- package/callbacks/reorderedCallbacks.ts +168 -0
- package/callbacks/subscriptions/postAmbushFinished.ts +32 -0
- package/callbacks/subscriptions/postAmbushStarted.ts +32 -0
- package/callbacks/subscriptions/postBombInitLate.ts +32 -0
- package/callbacks/subscriptions/postBoneExploded.ts +32 -0
- package/callbacks/subscriptions/postBoneSwing.ts +24 -0
- package/callbacks/subscriptions/postCollectibleInitFirst.ts +37 -0
- package/callbacks/subscriptions/postCursedTeleport.ts +24 -0
- package/callbacks/subscriptions/postCustomDoorEnter.ts +45 -0
- package/callbacks/subscriptions/postCustomRevive.ts +36 -0
- package/callbacks/subscriptions/postDiceRoomActivated.ts +38 -0
- package/callbacks/subscriptions/postDoorRender.ts +35 -0
- package/callbacks/subscriptions/postDoorUpdate.ts +35 -0
- package/callbacks/subscriptions/postEffectInitLate.ts +32 -0
- package/callbacks/subscriptions/postEffectStateChanged.ts +40 -0
- package/callbacks/subscriptions/postEsauJr.ts +24 -0
- package/callbacks/subscriptions/postFamiliarInitLate.ts +32 -0
- package/callbacks/subscriptions/postFamiliarStateChanged.ts +40 -0
- package/callbacks/subscriptions/postFirstEsauJr.ts +24 -0
- package/callbacks/subscriptions/postFirstFlip.ts +24 -0
- package/callbacks/subscriptions/postFlip.ts +22 -0
- package/callbacks/subscriptions/postGameStartedReordered.ts +24 -0
- package/callbacks/subscriptions/postGreedModeWave.ts +24 -0
- package/callbacks/subscriptions/postGridEntityBroken.ts +51 -0
- package/callbacks/subscriptions/postGridEntityCollision.ts +54 -0
- package/callbacks/subscriptions/postGridEntityInit.ts +51 -0
- package/callbacks/subscriptions/postGridEntityRemove.ts +52 -0
- package/callbacks/subscriptions/postGridEntityRender.ts +51 -0
- package/callbacks/subscriptions/postGridEntityStateChanged.ts +55 -0
- package/callbacks/subscriptions/postGridEntityUpdate.ts +51 -0
- package/callbacks/subscriptions/postHolyMantleRemoved.ts +48 -0
- package/callbacks/subscriptions/postItemDischarged.ts +43 -0
- package/callbacks/subscriptions/postItemPickup.ts +64 -0
- package/callbacks/subscriptions/postKnifeInitLate.ts +32 -0
- package/callbacks/subscriptions/postLaserInitLate.ts +32 -0
- package/callbacks/subscriptions/postNPCInitLate.ts +32 -0
- package/callbacks/subscriptions/postNPCStateChanged.ts +42 -0
- package/callbacks/subscriptions/postNewLevelReordered.ts +22 -0
- package/callbacks/subscriptions/postNewRoomEarly.ts +22 -0
- package/callbacks/subscriptions/postNewRoomReordered.ts +22 -0
- package/callbacks/subscriptions/postPEffectUpdateReordered.ts +40 -0
- package/callbacks/subscriptions/postPickupCollect.ts +35 -0
- package/callbacks/subscriptions/postPickupInitFirst.ts +32 -0
- package/callbacks/subscriptions/postPickupInitLate.ts +32 -0
- package/callbacks/subscriptions/postPickupStateChanged.ts +40 -0
- package/callbacks/subscriptions/postPitRender.ts +35 -0
- package/callbacks/subscriptions/postPitUpdate.ts +35 -0
- package/callbacks/subscriptions/postPlayerChangeHealth.ts +49 -0
- package/callbacks/subscriptions/postPlayerChangeType.ts +40 -0
- package/callbacks/subscriptions/postPlayerCollectibleAdded.d.ts +2 -3
- package/callbacks/subscriptions/postPlayerCollectibleAdded.lua +2 -7
- package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +38 -0
- package/callbacks/subscriptions/postPlayerCollectibleRemoved.d.ts +2 -3
- package/callbacks/subscriptions/postPlayerCollectibleRemoved.lua +2 -7
- package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +38 -0
- package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +1 -1
- package/callbacks/subscriptions/postPlayerFatalDamage.ts +68 -0
- package/callbacks/subscriptions/postPlayerInitLate.ts +40 -0
- package/callbacks/subscriptions/postPlayerInitReordered.ts +40 -0
- package/callbacks/subscriptions/postPlayerRenderReordered.ts +40 -0
- package/callbacks/subscriptions/postPlayerUpdateReordered.ts +40 -0
- package/callbacks/subscriptions/postPoopRender.ts +35 -0
- package/callbacks/subscriptions/postPoopUpdate.ts +35 -0
- package/callbacks/subscriptions/postPressurePlateRender.ts +37 -0
- package/callbacks/subscriptions/postPressurePlateUpdate.ts +37 -0
- package/callbacks/subscriptions/postProjectileInitLate.ts +35 -0
- package/callbacks/subscriptions/postPurchase.ts +31 -0
- package/callbacks/subscriptions/postRockRender.ts +35 -0
- package/callbacks/subscriptions/postRockUpdate.ts +35 -0
- package/callbacks/subscriptions/postRoomClearChanged.ts +30 -0
- package/callbacks/subscriptions/postSacrifice.ts +43 -0
- package/callbacks/subscriptions/postSlotAnimationChanged.ts +40 -0
- package/callbacks/subscriptions/postSlotDestroyed.ts +55 -0
- package/callbacks/subscriptions/postSlotInit.ts +32 -0
- package/callbacks/subscriptions/postSlotRender.ts +32 -0
- package/callbacks/subscriptions/postSlotUpdate.ts +32 -0
- package/callbacks/subscriptions/postSpikesRender.ts +35 -0
- package/callbacks/subscriptions/postSpikesUpdate.ts +35 -0
- package/callbacks/subscriptions/postTNTRender.ts +35 -0
- package/callbacks/subscriptions/postTNTUpdate.ts +35 -0
- package/callbacks/subscriptions/postTearInitLate.ts +32 -0
- package/callbacks/subscriptions/postTearInitVeryLate.ts +32 -0
- package/callbacks/subscriptions/postTransformation.ts +40 -0
- package/callbacks/subscriptions/postTrinketBreak.ts +38 -0
- package/callbacks/subscriptions/preBerserkDeath.d.ts +1 -1
- package/callbacks/subscriptions/preBerserkDeath.ts +42 -0
- package/callbacks/subscriptions/preCustomRevive.d.ts +1 -1
- package/callbacks/subscriptions/preCustomRevive.ts +46 -0
- package/callbacks/subscriptions/preItemPickup.ts +64 -0
- package/callbacks/subscriptions/preNewLevel.ts +24 -0
- package/classes/DefaultMap.ts +174 -0
- package/classes/ModUpgraded.d.ts +8 -4
- package/classes/ModUpgraded.lua +5 -8
- package/classes/ModUpgraded.ts +84 -0
- package/constants.ts +162 -0
- package/constantsFirstLast.ts +217 -0
- package/enums/AmbushType.ts +4 -0
- package/enums/HealthType.ts +16 -0
- package/enums/ModCallbackCustom.d.ts +20 -18
- package/enums/ModCallbackCustom.ts +1278 -0
- package/enums/PocketItemType.ts +8 -0
- package/enums/SerializationType.ts +5 -0
- package/enums/SlotDestructionType.ts +4 -0
- package/enums/private/CopyableIsaacAPIClassType.ts +7 -0
- package/enums/private/SaveDataKey.ts +14 -0
- package/enums/private/SerializationBrand.ts +42 -0
- package/features/characterHealthConversion.lua +2 -9
- package/features/characterHealthConversion.ts +111 -0
- package/features/characterStats.ts +61 -0
- package/features/debugDisplay/debugDisplay.ts +221 -0
- package/features/debugDisplay/exports.ts +368 -0
- package/features/debugDisplay/v.ts +65 -0
- package/features/deployJSONRoom.ts +743 -0
- package/features/disableInputs.ts +193 -0
- package/features/disableSound.ts +77 -0
- package/features/extraConsoleCommands/commandsDisplay.ts +290 -0
- package/features/extraConsoleCommands/commandsSubroutines.lua +1 -1
- package/features/extraConsoleCommands/commandsSubroutines.ts +139 -0
- package/features/extraConsoleCommands/init.ts +334 -0
- package/features/extraConsoleCommands/listCommands.ts +1299 -0
- package/features/extraConsoleCommands/v.ts +14 -0
- package/features/fadeInRemover.ts +60 -0
- package/features/fastReset.ts +75 -0
- package/features/forgottenSwitch.ts +50 -0
- package/features/getCollectibleItemPoolType.ts +66 -0
- package/features/persistentEntities.ts +183 -0
- package/features/playerInventory.lua +1 -0
- package/features/playerInventory.ts +135 -0
- package/features/ponyDetection.ts +74 -0
- package/features/preventCollectibleRotation.ts +115 -0
- package/features/runInNFrames.ts +148 -0
- package/features/saveDataManager/constants.ts +4 -0
- package/features/saveDataManager/exports.ts +229 -0
- package/features/saveDataManager/load.ts +99 -0
- package/features/saveDataManager/main.ts +195 -0
- package/features/saveDataManager/maps.ts +13 -0
- package/features/saveDataManager/merge.ts +194 -0
- package/features/saveDataManager/save.ts +74 -0
- package/features/saveDataManager/serializationBrand.ts +16 -0
- package/features/sirenHelpers.ts +129 -0
- package/features/taintedLazarusPlayers.ts +113 -0
- package/featuresInitialized.ts +20 -0
- package/functions/ambush.ts +47 -0
- package/functions/array.ts +410 -0
- package/functions/benchmark.ts +36 -0
- package/functions/bitwise.ts +24 -0
- package/functions/bombs.ts +12 -0
- package/functions/boss.ts +227 -0
- package/functions/cacheFlag.ts +12 -0
- package/functions/cards.lua +1 -1
- package/functions/cards.ts +271 -0
- package/functions/challenges.ts +13 -0
- package/functions/character.ts +126 -0
- package/functions/charge.ts +237 -0
- package/functions/chargeBar.ts +67 -0
- package/functions/collectibleCacheFlag.ts +90 -0
- package/functions/collectibleSet.ts +56 -0
- package/functions/collectibleTag.ts +89 -0
- package/functions/collectibles.ts +659 -0
- package/functions/color.d.ts +1 -1
- package/functions/color.lua +0 -7
- package/functions/color.ts +128 -0
- package/functions/debug.lua +2 -2
- package/functions/debug.ts +68 -0
- package/functions/deepCopy.lua +46 -51
- package/functions/deepCopy.ts +535 -0
- package/functions/deepCopyTests.ts +386 -0
- package/functions/direction.ts +49 -0
- package/functions/doors.lua +1 -2
- package/functions/doors.ts +347 -0
- package/functions/easing.ts +182 -0
- package/functions/eden.ts +47 -0
- package/functions/effects.ts +20 -0
- package/functions/entity.ts +439 -0
- package/functions/entitySpecific.ts +889 -0
- package/functions/entityTypes.ts +6 -0
- package/functions/enums.ts +146 -0
- package/functions/familiars.ts +106 -0
- package/functions/flag.ts +165 -0
- package/functions/flying.ts +117 -0
- package/functions/globals.d.ts +3 -3
- package/functions/globals.lua +8 -2
- package/functions/globals.ts +242 -0
- package/functions/gridEntity.ts +511 -0
- package/functions/gridEntitySpecific.ts +112 -0
- package/functions/input.ts +139 -0
- package/functions/isaacAPIClass.ts +67 -0
- package/functions/jsonHelpers.ts +45 -0
- package/functions/jsonRoom.ts +100 -0
- package/functions/kColor.d.ts +1 -1
- package/functions/kColor.lua +0 -7
- package/functions/kColor.ts +129 -0
- package/functions/language.ts +13 -0
- package/functions/level.ts +31 -0
- package/functions/log.ts +720 -0
- package/functions/map.ts +56 -0
- package/functions/math.ts +149 -0
- package/functions/mergeTests.ts +288 -0
- package/functions/npc.ts +148 -0
- package/functions/pickupVariants.ts +60 -0
- package/functions/pickups.ts +499 -0
- package/functions/pills.lua +1 -1
- package/functions/pills.ts +205 -0
- package/functions/player.lua +9 -20
- package/functions/player.ts +1056 -0
- package/functions/playerDataStructures.ts +150 -0
- package/functions/playerHealth.lua +28 -39
- package/functions/playerHealth.ts +382 -0
- package/functions/playerIndex.ts +195 -0
- package/functions/pocketItems.ts +149 -0
- package/functions/positionVelocity.ts +188 -0
- package/functions/random.ts +77 -0
- package/functions/revive.ts +201 -0
- package/functions/rng.d.ts +1 -1
- package/functions/rng.lua +0 -7
- package/functions/rng.ts +172 -0
- package/functions/roomData.ts +199 -0
- package/functions/roomGrid.ts +109 -0
- package/functions/roomShape.ts +80 -0
- package/functions/rooms.lua +1 -3
- package/functions/rooms.ts +648 -0
- package/functions/run.ts +36 -0
- package/functions/saveFile.ts +128 -0
- package/functions/seeds.ts +19 -0
- package/functions/serialization.lua +0 -3
- package/functions/serialization.ts +91 -0
- package/functions/set.ts +95 -0
- package/functions/sound.ts +9 -0
- package/functions/spawnCollectible.ts +104 -0
- package/functions/sprite.ts +107 -0
- package/functions/stage.ts +125 -0
- package/functions/string.ts +47 -0
- package/functions/table.ts +189 -0
- package/functions/tears.ts +32 -0
- package/functions/transformations.lua +1 -3
- package/functions/transformations.ts +131 -0
- package/functions/trinketCacheFlag.ts +60 -0
- package/functions/trinketGive.ts +157 -0
- package/functions/trinkets.ts +215 -0
- package/functions/tstlClass.ts +157 -0
- package/functions/types.ts +36 -0
- package/functions/ui.ts +138 -0
- package/functions/utils.d.ts +0 -37
- package/functions/utils.lua +0 -35
- package/functions/utils.ts +189 -0
- package/functions/vector.d.ts +1 -1
- package/functions/vector.lua +0 -7
- package/functions/vector.ts +126 -0
- package/index.ts +172 -0
- package/initCustomCallbacks.ts +132 -0
- package/initFeatures.ts +39 -0
- package/interfaces/AddCallbackParameterCustom.ts +188 -0
- package/interfaces/ChargeBarSprites.ts +12 -0
- package/interfaces/JSONDoor.d.ts +4 -4
- package/interfaces/JSONDoor.ts +13 -0
- package/interfaces/JSONEntity.d.ts +5 -5
- package/interfaces/JSONEntity.ts +16 -0
- package/interfaces/JSONRoom.d.ts +9 -9
- package/interfaces/JSONRoom.ts +36 -0
- package/interfaces/JSONRooms.ts +12 -0
- package/interfaces/JSONSpawn.d.ts +3 -3
- package/interfaces/JSONSpawn.ts +14 -0
- package/interfaces/PlayerHealth.ts +16 -0
- package/interfaces/PocketItemDescription.ts +9 -0
- package/interfaces/SaveData.ts +29 -0
- package/interfaces/TrinketSituation.ts +9 -0
- package/interfaces/private/TSTLClassMetatable.ts +8 -0
- package/maps/PHDPillConversions.ts +21 -0
- package/maps/cardMap.ts +209 -0
- package/maps/characterMap.ts +87 -0
- package/maps/collectibleDescriptionMap.ts +732 -0
- package/maps/collectibleNameMap.ts +731 -0
- package/maps/defaultPlayerStatMap.ts +17 -0
- package/maps/falsePHDPillConversions.ts +35 -0
- package/maps/gridEntityTypeToBrokenStateMap.ts +50 -0
- package/maps/gridEntityXMLMap.ts +176 -0
- package/maps/pillEffectMap.ts +88 -0
- package/maps/roomShapeToTopLeftWallGridIndexMap.ts +18 -0
- package/maps/roomTypeMap.ts +40 -0
- package/maps/trinketDescriptionMap.ts +200 -0
- package/maps/trinketNameMap.ts +198 -0
- package/objects/LRoomShapeToRectangles.ts +44 -0
- package/objects/callbackRegisterFunctions.ts +187 -0
- package/objects/cardDescriptions.ts +105 -0
- package/objects/cardNames.ts +105 -0
- package/objects/cardTypes.ts +104 -0
- package/objects/challengeNames.ts +52 -0
- package/objects/characterNames.ts +48 -0
- package/objects/coinSubTypeToValue.ts +14 -0
- package/objects/colors.ts +16 -0
- package/objects/directionNames.ts +11 -0
- package/objects/directionToDegrees.ts +11 -0
- package/objects/directionToVector.ts +12 -0
- package/objects/doorSlotFlagToDoorSlot.ts +16 -0
- package/objects/doorSlotToDirection.ts +14 -0
- package/objects/isaacAPIClassTypeToBrand.ts +11 -0
- package/objects/isaacAPIClassTypeToCopyFunction.ts +18 -0
- package/objects/languageNames.ts +13 -0
- package/objects/oppositeDoorSlots.ts +15 -0
- package/objects/pillEffectClasses.ts +63 -0
- package/objects/pillEffectNames.ts +57 -0
- package/objects/pillEffectTypes.ts +62 -0
- package/objects/roomShapeBounds.ts +71 -0
- package/objects/roomShapeLayoutSizes.ts +45 -0
- package/objects/roomShapeToBottomRightPosition.ts +25 -0
- package/objects/roomShapeToDoorSlots.ts +83 -0
- package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +127 -0
- package/objects/roomShapeToGridWidth.ts +21 -0
- package/objects/roomShapeToTopLeftPosition.ts +26 -0
- package/objects/roomShapeVolumes.ts +38 -0
- package/objects/roomTypeNames.ts +36 -0
- package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +14 -0
- package/objects/stageTypeToLetter.ts +15 -0
- package/objects/transformationNames.d.ts +0 -1
- package/objects/transformationNames.lua +0 -1
- package/objects/transformationNames.ts +18 -0
- package/package.json +2 -2
- package/patchErrorFunctions.ts +92 -0
- package/sets/LRoomShapesSet.ts +8 -0
- package/sets/bossSets.ts +470 -0
- package/sets/charactersThatStartWithAnActiveItemSet.ts +16 -0
- package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +7 -0
- package/sets/charactersWithFreeDevilDealsSet.ts +4 -0
- package/sets/charactersWithNoRedHeartsSet.ts +17 -0
- package/sets/charactersWithNoSoulHeartsSet.ts +14 -0
- package/sets/chestPickupVariantsSet.ts +16 -0
- package/sets/familiarsThatShootPlayerTearsSet.ts +13 -0
- package/sets/lostStyleCharactersSet.ts +13 -0
- package/sets/mineShaftRoomSubTypesSet.ts +10 -0
- package/sets/redHeartSubTypesSet.ts +7 -0
- package/sets/sinEntityTypesSet.ts +11 -0
- package/sets/singleUseActiveCollectibleTypesSet.ts +13 -0
- package/sets/storyBossesSet.ts +17 -0
- package/types/AnyEntity.ts +12 -0
- package/types/AwaitingTextInput.d.ts +2 -0
- package/types/CollectibleIndex.d.ts +1 -1
- package/types/CollectibleIndex.ts +16 -0
- package/types/PickingUpItem.d.ts +3 -3
- package/types/PickingUpItem.ts +89 -0
- package/types/PlayerIndex.d.ts +1 -1
- package/types/PlayerIndex.ts +13 -0
- package/types/private/IsaacAPIClass.d.ts +1 -1
- package/types/private/IsaacAPIClass.ts +3 -0
- package/types/private/SerializedIsaacAPIClass.d.ts +1 -1
- package/types/private/SerializedIsaacAPIClass.ts +3 -0
- package/types/private/TSTLClass.d.ts +1 -1
- package/types/private/TSTLClass.ts +3 -0
- package/upgradeMod.d.ts +2 -2
- package/upgradeMod.lua +2 -2
- package/upgradeMod.ts +55 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { RoomShape } from "isaac-typescript-definitions";
|
|
2
|
+
import { L_ROOM_SHAPE_TO_RECTANGLES } from "../objects/LRoomShapeToRectangles";
|
|
3
|
+
import { inRectangle } from "./math";
|
|
4
|
+
import {
|
|
5
|
+
getRoomShapeBottomRightPosition,
|
|
6
|
+
getRoomShapeTopLeftPosition,
|
|
7
|
+
getRoomShapeWidth,
|
|
8
|
+
isLRoom,
|
|
9
|
+
} from "./roomShape";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Helper function to convert grid coordinates to a world position `Vector`.
|
|
13
|
+
*
|
|
14
|
+
* For example, the coordinates of (0, 0) are equal to `Vector(80, 160)`.
|
|
15
|
+
*/
|
|
16
|
+
export function gridCoordinatesToWorldPosition(x: int, y: int): Vector {
|
|
17
|
+
const gridPosition = Vector(x, y);
|
|
18
|
+
return gridPositionToWorldPosition(gridPosition);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Helper function to convert a grid index to a grid position.
|
|
23
|
+
*
|
|
24
|
+
* For example, in a 1x1 room, grid index 0 is equal to "Vector(-1, -1) and grid index 16 is equal
|
|
25
|
+
* to "Vector(0, 0)".
|
|
26
|
+
*/
|
|
27
|
+
export function gridIndexToGridPosition(
|
|
28
|
+
gridIndex: int,
|
|
29
|
+
roomShape: RoomShape,
|
|
30
|
+
): Vector {
|
|
31
|
+
const gridWidth = getRoomShapeWidth(roomShape);
|
|
32
|
+
|
|
33
|
+
const x = (gridIndex % gridWidth) - 1;
|
|
34
|
+
const y = Math.floor(gridIndex / gridWidth) - 1;
|
|
35
|
+
return Vector(x, y);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Helper function to convert a grid position `Vector` to a world position `Vector`.
|
|
40
|
+
*
|
|
41
|
+
* For example, the coordinates of (0, 0) are equal to `Vector(80, 160)`.
|
|
42
|
+
*/
|
|
43
|
+
export function gridPositionToWorldPosition(gridPosition: Vector): Vector {
|
|
44
|
+
const x = (gridPosition.X + 2) * 40;
|
|
45
|
+
const y = (gridPosition.Y + 4) * 40;
|
|
46
|
+
return Vector(x, y);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Test if a grid position is actually in the given `RoomShape`.
|
|
51
|
+
*
|
|
52
|
+
* In this context, the grid position of the top-left wall is "Vector(-1, -1)".
|
|
53
|
+
*/
|
|
54
|
+
export function isValidGridPosition(
|
|
55
|
+
gridPosition: Vector,
|
|
56
|
+
roomShape: RoomShape,
|
|
57
|
+
): boolean {
|
|
58
|
+
return isLRoom(roomShape)
|
|
59
|
+
? isValidGridPositionLRoom(gridPosition, roomShape)
|
|
60
|
+
: isValidGridPositionNormal(gridPosition, roomShape);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function isValidGridPositionNormal(gridPosition: Vector, roomShape: RoomShape) {
|
|
64
|
+
const topLeft = getRoomShapeTopLeftPosition(roomShape);
|
|
65
|
+
const bottomRight = getRoomShapeBottomRightPosition(roomShape);
|
|
66
|
+
return inRectangle(gridPosition, topLeft, bottomRight);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function isValidGridPositionLRoom(gridPosition: Vector, roomShape: RoomShape) {
|
|
70
|
+
const rectangles = L_ROOM_SHAPE_TO_RECTANGLES[roomShape];
|
|
71
|
+
if (rectangles === undefined) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const [
|
|
76
|
+
verticalTopLeft,
|
|
77
|
+
verticalBottomRight,
|
|
78
|
+
horizontalTopLeft,
|
|
79
|
+
horizontalBottomRight,
|
|
80
|
+
] = rectangles;
|
|
81
|
+
return (
|
|
82
|
+
inRectangle(gridPosition, verticalTopLeft, verticalBottomRight) ||
|
|
83
|
+
inRectangle(gridPosition, horizontalTopLeft, horizontalBottomRight)
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Helper function to convert a world position `Vector` to a grid position `Vector`.
|
|
89
|
+
*
|
|
90
|
+
* In this context, the grid position of the top-left wall is "Vector(-1, -1)".
|
|
91
|
+
*/
|
|
92
|
+
export function worldPositionToGridPosition(worldPos: Vector): Vector {
|
|
93
|
+
const x = Math.round(worldPos.X / 40 - 2);
|
|
94
|
+
const y = Math.round(worldPos.Y / 40 - 4);
|
|
95
|
+
return Vector(x, y);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Helper function to convert a world position `Vector` to a grid position `Vector`.
|
|
100
|
+
*
|
|
101
|
+
* In this context, the grid position of the top-left wall is "Vector(-1, -1)".
|
|
102
|
+
*
|
|
103
|
+
* This is similar to the `worldPositionToGridPosition` function, but the values are not rounded.
|
|
104
|
+
*/
|
|
105
|
+
export function worldPositionToGridPositionFast(worldPos: Vector): Vector {
|
|
106
|
+
const x = worldPos.X / 40 - 2;
|
|
107
|
+
const y = worldPos.Y / 40 - 4;
|
|
108
|
+
return Vector(x, y);
|
|
109
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
|
|
2
|
+
import { ROOM_SHAPE_BOUNDS } from "../objects/roomShapeBounds";
|
|
3
|
+
import { ROOM_SHAPE_LAYOUT_SIZES } from "../objects/roomShapeLayoutSizes";
|
|
4
|
+
import { ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION } from "../objects/roomShapeToBottomRightPosition";
|
|
5
|
+
import { ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA } from "../objects/roomShapeToDoorSlotsToGridIndexDelta";
|
|
6
|
+
import { ROOM_SHAPE_TO_GRID_WIDTH } from "../objects/roomShapeToGridWidth";
|
|
7
|
+
import { ROOM_SHAPE_TO_TOP_LEFT_POSITION } from "../objects/roomShapeToTopLeftPosition";
|
|
8
|
+
import { ROOM_SHAPE_VOLUMES } from "../objects/roomShapeVolumes";
|
|
9
|
+
import { L_ROOM_SHAPES_SET } from "../sets/LRoomShapesSet";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Helper function to get the grid index delta that a door out of the given room shape would lead
|
|
13
|
+
* to. For example, if you went through the bottom door in a room of `RoomShape.SHAPE_1x2`, you
|
|
14
|
+
* would end up in a room with a grid index that is +26 units from the `SafeGridIndex` of where you
|
|
15
|
+
* started.
|
|
16
|
+
*/
|
|
17
|
+
export function getGridIndexDelta(
|
|
18
|
+
roomShape: RoomShape,
|
|
19
|
+
doorSlot: DoorSlot,
|
|
20
|
+
): int | undefined {
|
|
21
|
+
const doorSlotToGridIndexMap =
|
|
22
|
+
ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA[roomShape];
|
|
23
|
+
return doorSlotToGridIndexMap.get(doorSlot);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Helper function to get the grid position of the bottom-right tile of a given room shape.
|
|
28
|
+
*
|
|
29
|
+
* "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
|
|
30
|
+
* wall would be at "Vector(-1, -1)".)
|
|
31
|
+
*/
|
|
32
|
+
export function getRoomShapeBottomRightPosition(roomShape: RoomShape): Vector {
|
|
33
|
+
return ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION[roomShape];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Helper function to get the bounds of a room shape, which are a box representing its contents.
|
|
38
|
+
* This does not include the tiles that the walls are on. L rooms use the same bounds as a 2x2 room.
|
|
39
|
+
*/
|
|
40
|
+
export function getRoomShapeBounds(roomShape: RoomShape): Vector {
|
|
41
|
+
return ROOM_SHAPE_BOUNDS[roomShape];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Helper function to get the dimensions of a room shape's layout. This is NOT the size of the
|
|
46
|
+
* room's actual contents! For that, use the `getRoomShapeBounds` function.
|
|
47
|
+
*
|
|
48
|
+
* For example, a horizontal narrow room has a layout size of equal to that of a 1x1 room.
|
|
49
|
+
*/
|
|
50
|
+
export function getRoomShapeLayoutSize(roomShape: RoomShape): Vector {
|
|
51
|
+
return ROOM_SHAPE_LAYOUT_SIZES[roomShape];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Helper function to get the grid position of the top-left tile of a given room shape.
|
|
56
|
+
*
|
|
57
|
+
* "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
|
|
58
|
+
* wall would be at "Vector(-1, -1)".)
|
|
59
|
+
*/
|
|
60
|
+
export function getRoomShapeTopLeftPosition(roomShape: RoomShape): Vector {
|
|
61
|
+
return ROOM_SHAPE_TO_TOP_LEFT_POSITION[roomShape];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Helper function to get the volume of a room shape, which is the amount of tiles that are inside
|
|
66
|
+
* the room.
|
|
67
|
+
*
|
|
68
|
+
* (This cannot be directly calculated from the bounds since L rooms are a special case.)
|
|
69
|
+
*/
|
|
70
|
+
export function getRoomShapeVolume(roomShape: RoomShape): int {
|
|
71
|
+
return ROOM_SHAPE_VOLUMES[roomShape];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export function getRoomShapeWidth(roomShape: RoomShape): int {
|
|
75
|
+
return ROOM_SHAPE_TO_GRID_WIDTH[roomShape];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function isLRoom(roomShape: RoomShape): boolean {
|
|
79
|
+
return L_ROOM_SHAPES_SET.has(roomShape);
|
|
80
|
+
}
|
package/functions/rooms.lua
CHANGED
|
@@ -32,7 +32,6 @@ local NUM_DIMENSIONS = ____constants.NUM_DIMENSIONS
|
|
|
32
32
|
local ____roomShapeToDoorSlotsToGridIndexDelta = require("objects.roomShapeToDoorSlotsToGridIndexDelta")
|
|
33
33
|
local ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA = ____roomShapeToDoorSlotsToGridIndexDelta.ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA
|
|
34
34
|
local ____roomTypeNames = require("objects.roomTypeNames")
|
|
35
|
-
local DEFAULT_ROOM_TYPE_NAME = ____roomTypeNames.DEFAULT_ROOM_TYPE_NAME
|
|
36
35
|
local ROOM_TYPE_NAMES = ____roomTypeNames.ROOM_TYPE_NAMES
|
|
37
36
|
local ____mineShaftRoomSubTypesSet = require("sets.mineShaftRoomSubTypesSet")
|
|
38
37
|
local MINE_SHAFT_ROOM_SUB_TYPE_SET = ____mineShaftRoomSubTypesSet.MINE_SHAFT_ROOM_SUB_TYPE_SET
|
|
@@ -208,8 +207,7 @@ end
|
|
|
208
207
|
--
|
|
209
208
|
-- For example, `RoomType.TREASURE` will return "Treasure Room".
|
|
210
209
|
function ____exports.getRoomTypeName(self, roomType)
|
|
211
|
-
|
|
212
|
-
return roomTypeName == nil and DEFAULT_ROOM_TYPE_NAME or roomTypeName
|
|
210
|
+
return ROOM_TYPE_NAMES[roomType]
|
|
213
211
|
end
|
|
214
212
|
--- Helper function to get the room descriptor for every room on the level in a specific dimension.
|
|
215
213
|
-- Uses the `Level.GetRooms` method to accomplish this. Rooms without data are assumed to be
|