isaacscript-common 87.9.7 → 87.10.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/cachedEnumValues.js +29 -32
- package/dist/callbackClasses.js +142 -289
- package/dist/callbacks.js +147 -183
- package/dist/classes/DefaultMap.js +4 -8
- package/dist/classes/ModFeature.js +21 -25
- package/dist/classes/ModUpgraded.js +43 -47
- package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
- package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
- package/dist/classes/callbacks/InputActionFilter.js +4 -8
- package/dist/classes/callbacks/InputActionPlayer.js +4 -8
- package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
- package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
- package/dist/classes/callbacks/PostBombExploded.js +8 -12
- package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
- package/dist/classes/callbacks/PostBombInitLate.js +6 -10
- package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostBoneSwing.js +7 -11
- package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
- package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
- package/dist/classes/callbacks/PostCustomRevive.js +4 -8
- package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
- package/dist/classes/callbacks/PostDoorRender.js +8 -12
- package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
- package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
- package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
- package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
- package/dist/classes/callbacks/PostEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
- package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
- package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFirstFlip.js +4 -8
- package/dist/classes/callbacks/PostFlip.js +4 -8
- package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
- package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
- package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
- package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
- package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
- package/dist/classes/callbacks/PostItemDischarge.js +23 -27
- package/dist/classes/callbacks/PostItemPickup.js +6 -10
- package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
- package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
- package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
- package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
- package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
- package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
- package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
- package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
- package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPickupChanged.js +6 -10
- package/dist/classes/callbacks/PostPickupCollect.js +8 -12
- package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
- package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
- package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
- package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
- package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPitRender.js +8 -12
- package/dist/classes/callbacks/PostPitUpdate.js +8 -12
- package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
- package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
- package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
- package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
- package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
- package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
- package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
- package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
- package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
- package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPoopRender.js +8 -12
- package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
- package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
- package/dist/classes/callbacks/PostProjectileKill.js +8 -12
- package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPurchase.js +21 -25
- package/dist/classes/callbacks/PostRockRender.js +8 -12
- package/dist/classes/callbacks/PostRockUpdate.js +8 -12
- package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
- package/dist/classes/callbacks/PostSacrifice.js +12 -16
- package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
- package/dist/classes/callbacks/PostSlotCollision.js +8 -12
- package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
- package/dist/classes/callbacks/PostSlotInit.js +6 -10
- package/dist/classes/callbacks/PostSlotRender.js +6 -10
- package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
- package/dist/classes/callbacks/PostSpikesRender.js +8 -12
- package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
- package/dist/classes/callbacks/PostTNTRender.js +8 -12
- package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
- package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
- package/dist/classes/callbacks/PostTearInitLate.js +6 -10
- package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
- package/dist/classes/callbacks/PostTearKill.js +8 -12
- package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostTransformation.js +10 -14
- package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
- package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
- package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
- package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreCustomRevive.js +6 -10
- package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreGetPedestal.js +8 -12
- package/dist/classes/callbacks/PreItemPickup.js +6 -10
- package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PreNewLevel.js +10 -14
- package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
- package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
- package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
- package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
- package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
- package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
- package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
- package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
- package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
- package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
- package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
- package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
- package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
- package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
- package/dist/classes/features/other/CharacterStats.js +9 -13
- package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
- package/dist/classes/features/other/CustomHotkeys.js +15 -19
- package/dist/classes/features/other/CustomItemPools.js +20 -24
- package/dist/classes/features/other/CustomPickups.js +15 -19
- package/dist/classes/features/other/CustomStages.js +116 -153
- package/dist/classes/features/other/CustomTrapdoors.js +119 -123
- package/dist/classes/features/other/DebugDisplay.js +77 -81
- package/dist/classes/features/other/DeployJSONRoom.js +65 -69
- package/dist/classes/features/other/DisableAllSound.js +14 -18
- package/dist/classes/features/other/DisableInputs.js +24 -28
- package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
- package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
- package/dist/classes/features/other/FadeInRemover.js +9 -13
- package/dist/classes/features/other/FastReset.js +18 -22
- package/dist/classes/features/other/FlyingDetection.js +10 -14
- package/dist/classes/features/other/ForgottenSwitch.js +8 -12
- package/dist/classes/features/other/ItemPoolDetection.js +35 -39
- package/dist/classes/features/other/ModdedElementDetection.js +43 -47
- package/dist/classes/features/other/ModdedElementSets.js +135 -139
- package/dist/classes/features/other/NoSirenSteal.js +7 -11
- package/dist/classes/features/other/Pause.js +48 -52
- package/dist/classes/features/other/PersistentEntities.js +16 -20
- package/dist/classes/features/other/PickupIndexCreation.js +31 -35
- package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
- package/dist/classes/features/other/PonyDetection.js +22 -26
- package/dist/classes/features/other/PressInput.js +10 -14
- package/dist/classes/features/other/PreventChildEntities.js +6 -10
- package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
- package/dist/classes/features/other/RerunDetection.js +11 -15
- package/dist/classes/features/other/RoomClearFrame.js +11 -15
- package/dist/classes/features/other/RoomHistory.js +30 -34
- package/dist/classes/features/other/RunInNFrames.js +24 -28
- package/dist/classes/features/other/RunNextRoom.js +8 -12
- package/dist/classes/features/other/RunNextRun.js +8 -12
- package/dist/classes/features/other/SaveDataManager.js +61 -65
- package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
- package/dist/classes/features/other/StageHistory.js +76 -80
- package/dist/classes/features/other/StartAmbush.js +12 -16
- package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
- package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
- package/dist/classes/features/other/customStages/backdrop.js +68 -71
- package/dist/classes/features/other/customStages/constants.js +7 -10
- package/dist/classes/features/other/customStages/gridEntities.js +23 -30
- package/dist/classes/features/other/customStages/shadows.js +27 -30
- package/dist/classes/features/other/customStages/streakText.js +55 -60
- package/dist/classes/features/other/customStages/utils.js +13 -17
- package/dist/classes/features/other/customStages/v.js +4 -7
- package/dist/classes/features/other/customStages/versusScreen.js +46 -50
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
- package/dist/classes/features/other/debugDisplay/utils.js +6 -10
- package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
- package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
- package/dist/classes/features/other/saveDataManager/constants.js +1 -4
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
- package/dist/classes/private/CustomCallback.js +4 -8
- package/dist/classes/private/Feature.js +1 -5
- package/dist/core/cachedClasses.js +12 -15
- package/dist/core/constants.js +126 -130
- package/dist/core/constantsFirstLast.js +22 -25
- package/dist/core/constantsVanilla.js +25 -28
- package/dist/core/upgradeMod.js +7 -10
- package/dist/decorators.js +6 -10
- package/dist/enums/AmbushType.js +2 -5
- package/dist/enums/CornerType.js +2 -5
- package/dist/enums/HealthType.js +2 -5
- package/dist/enums/ISCFeature.js +2 -5
- package/dist/enums/LadderSubTypeCustom.js +2 -5
- package/dist/enums/ModCallbackCustom.js +2 -5
- package/dist/enums/MysteriousPaperEffect.js +2 -5
- package/dist/enums/PlayerStat.js +2 -5
- package/dist/enums/PocketItemType.js +2 -5
- package/dist/enums/RockAltType.js +2 -5
- package/dist/enums/SaveDataKey.js +2 -5
- package/dist/enums/SerializationType.js +2 -5
- package/dist/enums/SlotDestructionType.js +2 -5
- package/dist/enums/private/GridEntityTypeCustom.js +1 -4
- package/dist/enums/private/SerializationBrand.js +2 -5
- package/dist/enums/private/StageTravelState.js +2 -5
- package/dist/enums/private/TrapdoorAnimation.js +2 -5
- package/dist/enums/private/UIStreakAnimation.js +2 -5
- package/dist/features.js +138 -141
- package/dist/functions/ambush.js +9 -12
- package/dist/functions/array.js +45 -76
- package/dist/functions/arrayLua.js +7 -16
- package/dist/functions/benchmark.js +4 -7
- package/dist/functions/bitSet128.js +19 -26
- package/dist/functions/bitwise.js +14 -23
- package/dist/functions/bombs.js +1 -4
- package/dist/functions/bosses.js +68 -85
- package/dist/functions/cards.js +44 -62
- package/dist/functions/challenges.js +28 -39
- package/dist/functions/characters.js +68 -87
- package/dist/functions/charge.js +41 -52
- package/dist/functions/chargeBar.js +2 -6
- package/dist/functions/collectibleTag.js +9 -13
- package/dist/functions/collectibles.js +133 -172
- package/dist/functions/color.js +29 -38
- package/dist/functions/console.js +4 -8
- package/dist/functions/curses.js +6 -10
- package/dist/functions/debugFunctions.js +7 -14
- package/dist/functions/decorators.js +13 -19
- package/dist/functions/deepCopy.js +96 -99
- package/dist/functions/deepCopyTests.js +56 -59
- package/dist/functions/dimensions.js +10 -14
- package/dist/functions/direction.js +22 -30
- package/dist/functions/doors.js +104 -154
- package/dist/functions/easing.js +30 -62
- package/dist/functions/effects.js +6 -10
- package/dist/functions/emptyRoom.js +30 -34
- package/dist/functions/entities.js +88 -115
- package/dist/functions/entitiesSpecific.js +83 -125
- package/dist/functions/entityTypes.js +3 -6
- package/dist/functions/enums.js +27 -41
- package/dist/functions/external.js +4 -8
- package/dist/functions/familiars.js +17 -25
- package/dist/functions/flag.js +10 -19
- package/dist/functions/frames.js +31 -51
- package/dist/functions/globals.js +26 -66
- package/dist/functions/gridEntities.js +231 -269
- package/dist/functions/gridEntitiesSpecific.js +86 -126
- package/dist/functions/gridIndex.js +8 -11
- package/dist/functions/hash.js +1 -4
- package/dist/functions/hex.js +7 -11
- package/dist/functions/input.js +65 -88
- package/dist/functions/isaacAPIClass.js +28 -53
- package/dist/functions/itemPool.js +39 -48
- package/dist/functions/jsonHelpers.js +5 -42
- package/dist/functions/jsonRoom.js +39 -46
- package/dist/functions/kColor.js +30 -39
- package/dist/functions/language.js +3 -6
- package/dist/functions/level.js +20 -26
- package/dist/functions/levelGrid.js +81 -108
- package/dist/functions/log.js +6 -12
- package/dist/functions/logEntities.js +49 -59
- package/dist/functions/logMisc.js +183 -214
- package/dist/functions/map.js +10 -20
- package/dist/functions/math.js +16 -31
- package/dist/functions/merge.js +48 -51
- package/dist/functions/mergeTests.js +34 -37
- package/dist/functions/minimap.js +34 -46
- package/dist/functions/modFeatures.js +1 -4
- package/dist/functions/newArray.js +5 -8
- package/dist/functions/nextStage.js +63 -67
- package/dist/functions/npcDataStructures.js +9 -20
- package/dist/functions/npcs.js +37 -45
- package/dist/functions/pickupVariants.js +26 -39
- package/dist/functions/pickups.js +43 -59
- package/dist/functions/pickupsSpecific.js +76 -118
- package/dist/functions/pills.js +52 -72
- package/dist/functions/playerCenter.js +13 -16
- package/dist/functions/playerCollectibles.js +59 -79
- package/dist/functions/playerDataStructures.js +18 -29
- package/dist/functions/playerEffects.js +12 -19
- package/dist/functions/playerHealth.js +91 -113
- package/dist/functions/playerIndex.js +22 -33
- package/dist/functions/playerTrinkets.js +31 -43
- package/dist/functions/players.js +87 -126
- package/dist/functions/pocketItems.js +33 -43
- package/dist/functions/positionVelocity.js +23 -32
- package/dist/functions/pressurePlate.js +7 -10
- package/dist/functions/projectiles.js +11 -15
- package/dist/functions/random.js +8 -13
- package/dist/functions/readOnly.js +3 -8
- package/dist/functions/render.js +7 -12
- package/dist/functions/revive.js +38 -45
- package/dist/functions/rng.js +31 -44
- package/dist/functions/rockAlt.js +18 -22
- package/dist/functions/roomData.js +24 -40
- package/dist/functions/roomGrid.js +17 -25
- package/dist/functions/roomShape.js +39 -55
- package/dist/functions/roomShapeWalls.js +67 -71
- package/dist/functions/roomTransition.js +13 -17
- package/dist/functions/rooms.js +181 -244
- package/dist/functions/run.js +29 -39
- package/dist/functions/seeds.js +6 -10
- package/dist/functions/serialization.js +27 -34
- package/dist/functions/set.js +24 -40
- package/dist/functions/slots.js +18 -22
- package/dist/functions/sort.js +9 -15
- package/dist/functions/sound.js +12 -16
- package/dist/functions/spawnCollectible.js +21 -26
- package/dist/functions/sprites.js +16 -24
- package/dist/functions/stage.js +122 -164
- package/dist/functions/stats.js +37 -43
- package/dist/functions/storyBosses.js +36 -40
- package/dist/functions/string.js +19 -33
- package/dist/functions/table.js +21 -31
- package/dist/functions/tears.js +6 -14
- package/dist/functions/transformations.js +35 -42
- package/dist/functions/trinketGive.js +29 -36
- package/dist/functions/trinkets.js +45 -60
- package/dist/functions/tstlClass.js +11 -20
- package/dist/functions/types.js +22 -46
- package/dist/functions/ui.js +25 -40
- package/dist/functions/utils.js +22 -36
- package/dist/functions/vector.js +33 -46
- package/dist/functions/versusScreen.js +12 -18
- package/dist/functions/weighted.js +8 -12
- package/dist/index.js +150 -166
- package/dist/index.rollup.d.ts +11 -11
- package/dist/indexLua.js +151 -167
- package/dist/interfaces/ChargeBarSprites.js +1 -2
- package/dist/interfaces/Corner.js +1 -2
- package/dist/interfaces/CustomStageTSConfig.js +1 -2
- package/dist/interfaces/GridEntityCustomData.js +1 -2
- package/dist/interfaces/JSONRoomsFile.js +1 -2
- package/dist/interfaces/PlayerHealth.d.ts +11 -11
- package/dist/interfaces/PlayerHealth.d.ts.map +1 -1
- package/dist/interfaces/PlayerHealth.js +1 -2
- package/dist/interfaces/PlayerStats.js +2 -4
- package/dist/interfaces/PocketItemDescription.js +1 -2
- package/dist/interfaces/RoomDescription.js +1 -2
- package/dist/interfaces/SaveData.js +1 -2
- package/dist/interfaces/StageHistoryEntry.js +1 -2
- package/dist/interfaces/TSTLClassMetatable.js +1 -2
- package/dist/interfaces/TrinketSituation.js +1 -2
- package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
- package/dist/interfaces/private/CustomStage.js +1 -2
- package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
- package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
- package/dist/isaacscript-common.lua +1 -1
- package/dist/maps/PHDPillConversionsMap.js +19 -22
- package/dist/maps/cardNameToTypeMap.js +205 -208
- package/dist/maps/characterNameToTypeMap.js +85 -88
- package/dist/maps/collectibleNameToTypeMap.js +5 -8
- package/dist/maps/defaultPlayerStatMap.js +10 -13
- package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
- package/dist/maps/falsePHDPillConversionsMap.js +33 -36
- package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
- package/dist/maps/gridEntityXMLMap.js +52 -55
- package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
- package/dist/maps/keyboardToStringMap.js +66 -69
- package/dist/maps/pillNameToEffectMap.js +83 -86
- package/dist/maps/roomNameToTypeMap.js +38 -41
- package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
- package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
- package/dist/maps/trinketNameToTypeMap.js +5 -8
- package/dist/objects/LRoomShapeToRectangles.js +22 -25
- package/dist/objects/backdropTypeToRockAltType.js +65 -68
- package/dist/objects/batteryNames.js +8 -11
- package/dist/objects/bombNames.js +11 -14
- package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
- package/dist/objects/bossNamePNGFileNames.js +104 -107
- package/dist/objects/bossNames.js +105 -108
- package/dist/objects/bossPortraitPNGFileNames.js +104 -107
- package/dist/objects/cardDescriptions.js +101 -104
- package/dist/objects/cardNames.js +101 -104
- package/dist/objects/challengeBosses.js +49 -52
- package/dist/objects/challengeCharacters.js +49 -52
- package/dist/objects/challengeCollectibleTypes.js +160 -163
- package/dist/objects/challengeNames.js +49 -52
- package/dist/objects/challengeTrinketType.js +48 -51
- package/dist/objects/characterDamageMultipliers.js +44 -47
- package/dist/objects/characterNames.js +44 -47
- package/dist/objects/characterSpritePNGFileNames.js +44 -47
- package/dist/objects/characterStartingCollectibleTypes.js +49 -52
- package/dist/objects/characterStartingTrinketTypes.js +44 -47
- package/dist/objects/chestNames.js +15 -18
- package/dist/objects/coinNames.js +11 -14
- package/dist/objects/coinSubTypeToValue.js +11 -14
- package/dist/objects/collectibleDescriptions.js +725 -728
- package/dist/objects/collectibleNames.js +725 -728
- package/dist/objects/colors.js +1 -4
- package/dist/objects/directionNames.js +7 -10
- package/dist/objects/directionToDegrees.js +7 -10
- package/dist/objects/directionToMoveAction.js +7 -10
- package/dist/objects/directionToShootAction.js +7 -10
- package/dist/objects/directionToVector.js +9 -12
- package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
- package/dist/objects/doorSlotToDirection.js +11 -14
- package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
- package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
- package/dist/objects/heartNames.js +16 -19
- package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
- package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
- package/dist/objects/kColors.js +1 -4
- package/dist/objects/keyNames.js +8 -11
- package/dist/objects/languageNames.js +9 -12
- package/dist/objects/oppositeDoorSlots.js +11 -14
- package/dist/objects/pillEffectClasses.js +53 -56
- package/dist/objects/pillEffectNames.js +53 -56
- package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
- package/dist/objects/pillEffectTypes.js +53 -56
- package/dist/objects/playerNamePNGFileNames.js +44 -47
- package/dist/objects/playerPortraitPNGFileNames.js +44 -47
- package/dist/objects/roomShapeBounds.js +23 -26
- package/dist/objects/roomShapeCorners.js +128 -131
- package/dist/objects/roomShapeLayoutSizes.js +23 -26
- package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
- package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
- package/dist/objects/roomShapeToDoorSlots.js +48 -51
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
- package/dist/objects/roomShapeToGridWidth.js +14 -17
- package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
- package/dist/objects/roomShapeVolumes.js +21 -24
- package/dist/objects/roomTypeNames.js +32 -35
- package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
- package/dist/objects/sackNames.js +6 -9
- package/dist/objects/slotNames.js +21 -24
- package/dist/objects/stageIDNames.js +33 -36
- package/dist/objects/stageToMusic.js +69 -72
- package/dist/objects/stageToStageID.js +90 -93
- package/dist/objects/stageTypeSuffixes.js +8 -11
- package/dist/objects/transformationNames.js +16 -19
- package/dist/objects/trinketDescriptions.js +192 -195
- package/dist/objects/trinketNames.js +192 -195
- package/dist/objects/versusScreenBackgroundColors.js +39 -42
- package/dist/objects/versusScreenDirtSpotColors.js +39 -42
- package/dist/patchErrorFunctions.js +4 -7
- package/dist/serialization.js +6 -9
- package/dist/sets/LRoomShapesSet.js +7 -10
- package/dist/sets/bigRoomShapesSet.js +10 -13
- package/dist/sets/bossSets.js +261 -264
- package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
- package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
- package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
- package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
- package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
- package/dist/sets/consoleCommandsSet.js +2 -5
- package/dist/sets/entitiesWithArmorSet.js +44 -47
- package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
- package/dist/sets/itemConfigCardTypesForCards.js +7 -10
- package/dist/sets/lostStyleCharactersSet.js +8 -11
- package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
- package/dist/sets/narrowRoomShapesSet.js +7 -10
- package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
- package/dist/sets/redHeartSubTypesSet.js +6 -9
- package/dist/sets/repentanceBossIDsSet.js +26 -29
- package/dist/sets/sinEntityTypesSet.js +10 -13
- package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
- package/dist/shaderCrashFix.js +4 -7
- package/dist/shouldFire.js +28 -58
- package/dist/types/AddSubtract.js +1 -2
- package/dist/types/AllButFirst.js +1 -2
- package/dist/types/AllButLast.js +1 -2
- package/dist/types/AnyClass.js +1 -2
- package/dist/types/AnyEntity.js +1 -2
- package/dist/types/AnyFunction.js +1 -2
- package/dist/types/AnyGridEntity.js +1 -2
- package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
- package/dist/types/ConversionHeartSubType.js +1 -2
- package/dist/types/Decrement.js +1 -2
- package/dist/types/ERange.js +1 -2
- package/dist/types/EntityID.js +1 -2
- package/dist/types/FunctionTuple.js +1 -2
- package/dist/types/GridEntityID.js +1 -2
- package/dist/types/HasFunction.js +1 -2
- package/dist/types/IRange.js +1 -2
- package/dist/types/Immutable.js +1 -2
- package/dist/types/Increment.js +1 -2
- package/dist/types/LowercaseKeys.js +1 -2
- package/dist/types/NaturalNumbersLessThan.js +1 -2
- package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
- package/dist/types/ObjectValues.js +1 -2
- package/dist/types/PickingUpItem.js +15 -22
- package/dist/types/PickupIndex.js +1 -2
- package/dist/types/PlayerIndex.js +1 -2
- package/dist/types/PossibleStatType.js +1 -2
- package/dist/types/PublicInterface.js +1 -2
- package/dist/types/ReadonlyMap.js +1 -4
- package/dist/types/ReadonlyRecord.js +1 -2
- package/dist/types/ReadonlySet.js +1 -4
- package/dist/types/StartsWithLowercase.js +1 -2
- package/dist/types/StartsWithUppercase.js +1 -2
- package/dist/types/TSTLClass.js +1 -2
- package/dist/types/Tuple.js +1 -2
- package/dist/types/TupleKeys.js +1 -2
- package/dist/types/TupleToIntersection.js +1 -2
- package/dist/types/TupleToUnion.js +1 -2
- package/dist/types/TupleWithLengthBetween.js +1 -2
- package/dist/types/TupleWithMaxLength.js +1 -2
- package/dist/types/UnionToIntersection.js +1 -2
- package/dist/types/UppercaseKeys.js +1 -2
- package/dist/types/WeightedArray.js +1 -2
- package/dist/types/WidenLiteral.js +1 -2
- package/dist/types/Writable.js +1 -2
- package/dist/types/private/CallbackTuple.js +1 -2
- package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
- package/package.json +3 -3
- package/src/interfaces/PlayerHealth.ts +12 -11
package/dist/functions/types.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Consider the following code that uses a number enum:
|
|
4
3
|
*
|
|
@@ -28,36 +27,13 @@
|
|
|
28
27
|
*
|
|
29
28
|
* @module
|
|
30
29
|
*/
|
|
31
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.asCardType = asCardType;
|
|
33
|
-
exports.asCollectibleType = asCollectibleType;
|
|
34
|
-
exports.asFloat = asFloat;
|
|
35
|
-
exports.asInt = asInt;
|
|
36
|
-
exports.asLevelStage = asLevelStage;
|
|
37
|
-
exports.asNPCState = asNPCState;
|
|
38
|
-
exports.asNumber = asNumber;
|
|
39
|
-
exports.asPillColor = asPillColor;
|
|
40
|
-
exports.asPillEffect = asPillEffect;
|
|
41
|
-
exports.asPlayerType = asPlayerType;
|
|
42
|
-
exports.asRoomType = asRoomType;
|
|
43
|
-
exports.asString = asString;
|
|
44
|
-
exports.asTrinketType = asTrinketType;
|
|
45
|
-
exports.isBoolean = isBoolean;
|
|
46
|
-
exports.isFunction = isFunction;
|
|
47
|
-
exports.isInteger = isInteger;
|
|
48
|
-
exports.isNumber = isNumber;
|
|
49
|
-
exports.isPrimitive = isPrimitive;
|
|
50
|
-
exports.isString = isString;
|
|
51
|
-
exports.isTable = isTable;
|
|
52
|
-
exports.isUserdata = isUserdata;
|
|
53
|
-
exports.parseIntSafe = parseIntSafe;
|
|
54
30
|
/**
|
|
55
31
|
* Helper function to safely cast an `int` to a `CardType`. (This is better than using the `as`
|
|
56
32
|
* TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )
|
|
57
33
|
*
|
|
58
34
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
59
35
|
*/
|
|
60
|
-
function asCardType(num) {
|
|
36
|
+
export function asCardType(num) {
|
|
61
37
|
return num;
|
|
62
38
|
}
|
|
63
39
|
/**
|
|
@@ -66,7 +42,7 @@ function asCardType(num) {
|
|
|
66
42
|
*
|
|
67
43
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
68
44
|
*/
|
|
69
|
-
function asCollectibleType(num) {
|
|
45
|
+
export function asCollectibleType(num) {
|
|
70
46
|
return num;
|
|
71
47
|
}
|
|
72
48
|
/**
|
|
@@ -75,7 +51,7 @@ function asCollectibleType(num) {
|
|
|
75
51
|
*
|
|
76
52
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
77
53
|
*/
|
|
78
|
-
function asFloat(num) {
|
|
54
|
+
export function asFloat(num) {
|
|
79
55
|
return num;
|
|
80
56
|
}
|
|
81
57
|
/**
|
|
@@ -84,7 +60,7 @@ function asFloat(num) {
|
|
|
84
60
|
*
|
|
85
61
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
86
62
|
*/
|
|
87
|
-
function asInt(num) {
|
|
63
|
+
export function asInt(num) {
|
|
88
64
|
return num;
|
|
89
65
|
}
|
|
90
66
|
/**
|
|
@@ -93,7 +69,7 @@ function asInt(num) {
|
|
|
93
69
|
*
|
|
94
70
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
95
71
|
*/
|
|
96
|
-
function asLevelStage(num) {
|
|
72
|
+
export function asLevelStage(num) {
|
|
97
73
|
return num;
|
|
98
74
|
}
|
|
99
75
|
/**
|
|
@@ -102,7 +78,7 @@ function asLevelStage(num) {
|
|
|
102
78
|
*
|
|
103
79
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
104
80
|
*/
|
|
105
|
-
function asNPCState(num) {
|
|
81
|
+
export function asNPCState(num) {
|
|
106
82
|
return num;
|
|
107
83
|
}
|
|
108
84
|
/**
|
|
@@ -111,7 +87,7 @@ function asNPCState(num) {
|
|
|
111
87
|
*
|
|
112
88
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
113
89
|
*/
|
|
114
|
-
function asNumber(num) {
|
|
90
|
+
export function asNumber(num) {
|
|
115
91
|
return num;
|
|
116
92
|
}
|
|
117
93
|
/**
|
|
@@ -120,7 +96,7 @@ function asNumber(num) {
|
|
|
120
96
|
*
|
|
121
97
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
122
98
|
*/
|
|
123
|
-
function asPillColor(num) {
|
|
99
|
+
export function asPillColor(num) {
|
|
124
100
|
return num;
|
|
125
101
|
}
|
|
126
102
|
/**
|
|
@@ -129,7 +105,7 @@ function asPillColor(num) {
|
|
|
129
105
|
*
|
|
130
106
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
131
107
|
*/
|
|
132
|
-
function asPillEffect(num) {
|
|
108
|
+
export function asPillEffect(num) {
|
|
133
109
|
return num;
|
|
134
110
|
}
|
|
135
111
|
/**
|
|
@@ -138,7 +114,7 @@ function asPillEffect(num) {
|
|
|
138
114
|
*
|
|
139
115
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
140
116
|
*/
|
|
141
|
-
function asPlayerType(num) {
|
|
117
|
+
export function asPlayerType(num) {
|
|
142
118
|
return num;
|
|
143
119
|
}
|
|
144
120
|
/**
|
|
@@ -147,7 +123,7 @@ function asPlayerType(num) {
|
|
|
147
123
|
*
|
|
148
124
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
149
125
|
*/
|
|
150
|
-
function asRoomType(num) {
|
|
126
|
+
export function asRoomType(num) {
|
|
151
127
|
return num;
|
|
152
128
|
}
|
|
153
129
|
/**
|
|
@@ -156,7 +132,7 @@ function asRoomType(num) {
|
|
|
156
132
|
*
|
|
157
133
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
158
134
|
*/
|
|
159
|
-
function asString(str) {
|
|
135
|
+
export function asString(str) {
|
|
160
136
|
return str;
|
|
161
137
|
}
|
|
162
138
|
/**
|
|
@@ -165,17 +141,17 @@ function asString(str) {
|
|
|
165
141
|
*
|
|
166
142
|
* This is useful to satisfy the "complete/strict-enums" ESLint rule.
|
|
167
143
|
*/
|
|
168
|
-
function asTrinketType(num) {
|
|
144
|
+
export function asTrinketType(num) {
|
|
169
145
|
return num;
|
|
170
146
|
}
|
|
171
|
-
function isBoolean(variable) {
|
|
147
|
+
export function isBoolean(variable) {
|
|
172
148
|
return typeof variable === "boolean";
|
|
173
149
|
}
|
|
174
150
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
175
|
-
function isFunction(variable) {
|
|
151
|
+
export function isFunction(variable) {
|
|
176
152
|
return typeof variable === "function";
|
|
177
153
|
}
|
|
178
|
-
function isInteger(variable) {
|
|
154
|
+
export function isInteger(variable) {
|
|
179
155
|
if (!isNumber(variable)) {
|
|
180
156
|
return false;
|
|
181
157
|
}
|
|
@@ -183,24 +159,24 @@ function isInteger(variable) {
|
|
|
183
159
|
// eslint-disable-next-line unicorn/prefer-number-is-safe-integer
|
|
184
160
|
return variable === Math.floor(variable);
|
|
185
161
|
}
|
|
186
|
-
function isNumber(variable) {
|
|
162
|
+
export function isNumber(variable) {
|
|
187
163
|
return typeof variable === "number";
|
|
188
164
|
}
|
|
189
165
|
/** Helper function to detect if a variable is a boolean, number, or string. */
|
|
190
|
-
function isPrimitive(variable) {
|
|
166
|
+
export function isPrimitive(variable) {
|
|
191
167
|
const variableType = typeof variable;
|
|
192
168
|
return (variableType === "boolean"
|
|
193
169
|
|| variableType === "number"
|
|
194
170
|
|| variableType === "string");
|
|
195
171
|
}
|
|
196
|
-
function isString(variable) {
|
|
172
|
+
export function isString(variable) {
|
|
197
173
|
return typeof variable === "string";
|
|
198
174
|
}
|
|
199
|
-
function isTable(variable) {
|
|
175
|
+
export function isTable(variable) {
|
|
200
176
|
// We cannot use `typeof` here since "table" is not a JavaScript type.
|
|
201
177
|
return type(variable) === "table";
|
|
202
178
|
}
|
|
203
|
-
function isUserdata(variable) {
|
|
179
|
+
export function isUserdata(variable) {
|
|
204
180
|
// We cannot use `typeof` here since "userdata" is not a JavaScript type.
|
|
205
181
|
return type(variable) === "userdata";
|
|
206
182
|
}
|
|
@@ -212,7 +188,7 @@ function isUserdata(variable) {
|
|
|
212
188
|
*
|
|
213
189
|
* This is named `parseIntSafe` in order to match the helper function from `complete-common`.
|
|
214
190
|
*/
|
|
215
|
-
function parseIntSafe(string) {
|
|
191
|
+
export function parseIntSafe(string) {
|
|
216
192
|
if (!isString(string)) {
|
|
217
193
|
return undefined;
|
|
218
194
|
}
|
package/dist/functions/ui.js
CHANGED
|
@@ -1,27 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports.getHUDOffsetVector = getHUDOffsetVector;
|
|
6
|
-
exports.getScreenBottomCenterPos = getScreenBottomCenterPos;
|
|
7
|
-
exports.getScreenBottomLeftPos = getScreenBottomLeftPos;
|
|
8
|
-
exports.getScreenBottomRightPos = getScreenBottomRightPos;
|
|
9
|
-
exports.getScreenBottomY = getScreenBottomY;
|
|
10
|
-
exports.getScreenCenterPos = getScreenCenterPos;
|
|
11
|
-
exports.getScreenRightX = getScreenRightX;
|
|
12
|
-
exports.getScreenTopCenterPos = getScreenTopCenterPos;
|
|
13
|
-
exports.getScreenTopLeftPos = getScreenTopLeftPos;
|
|
14
|
-
exports.getScreenTopRightPos = getScreenTopRightPos;
|
|
15
|
-
exports.getVisibleHearts = getVisibleHearts;
|
|
16
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
17
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
18
|
-
const constants_1 = require("../core/constants");
|
|
19
|
-
const vector_1 = require("./vector");
|
|
1
|
+
import { CollectibleType, LevelCurse } from "isaac-typescript-definitions";
|
|
2
|
+
import { game } from "../core/cachedClasses";
|
|
3
|
+
import { UI_HEART_WIDTH, VectorZero } from "../core/constants";
|
|
4
|
+
import { copyVector } from "./vector";
|
|
20
5
|
/**
|
|
21
6
|
* Returns how many hearts are in the heart UI row. If the player has more than 6 hearts, this
|
|
22
7
|
* function will return 6.
|
|
23
8
|
*/
|
|
24
|
-
function getHeartRowLength(player) {
|
|
9
|
+
export function getHeartRowLength(player) {
|
|
25
10
|
const maxHearts = player.GetMaxHearts();
|
|
26
11
|
const soulHearts = player.GetSoulHearts();
|
|
27
12
|
const boneHearts = player.GetBoneHearts();
|
|
@@ -37,30 +22,30 @@ function getHeartRowLength(player) {
|
|
|
37
22
|
* drawing UI elements to the right of where the player's hearts are. Make sure to use this in
|
|
38
23
|
* combination with the `getHUDOffsetVector` helper function.
|
|
39
24
|
*/
|
|
40
|
-
function getHeartsUIWidth() {
|
|
41
|
-
const level =
|
|
25
|
+
export function getHeartsUIWidth() {
|
|
26
|
+
const level = game.GetLevel();
|
|
42
27
|
const curses = level.GetCurses();
|
|
43
28
|
const player = Isaac.GetPlayer();
|
|
44
29
|
const extraLives = player.GetExtraLives();
|
|
45
30
|
const effects = player.GetEffects();
|
|
46
|
-
const hasHolyMantleEffect = effects.HasCollectibleEffect(
|
|
31
|
+
const hasHolyMantleEffect = effects.HasCollectibleEffect(CollectibleType.HOLY_MANTLE);
|
|
47
32
|
let heartRowLength = getHeartRowLength(player);
|
|
48
33
|
if (hasHolyMantleEffect) {
|
|
49
34
|
heartRowLength++;
|
|
50
35
|
}
|
|
51
|
-
if (curses ===
|
|
36
|
+
if (curses === LevelCurse.UNKNOWN) {
|
|
52
37
|
heartRowLength = 1;
|
|
53
38
|
}
|
|
54
|
-
let width = heartRowLength *
|
|
39
|
+
let width = heartRowLength * UI_HEART_WIDTH;
|
|
55
40
|
if (extraLives > 9) {
|
|
56
41
|
width += 20;
|
|
57
|
-
if (player.HasCollectible(
|
|
42
|
+
if (player.HasCollectible(CollectibleType.GUPPYS_COLLAR)) {
|
|
58
43
|
width += 6;
|
|
59
44
|
}
|
|
60
45
|
}
|
|
61
46
|
else if (extraLives > 0) {
|
|
62
47
|
width += 16;
|
|
63
|
-
if (player.HasCollectible(
|
|
48
|
+
if (player.HasCollectible(CollectibleType.GUPPYS_COLLAR)) {
|
|
64
49
|
width += 4;
|
|
65
50
|
}
|
|
66
51
|
}
|
|
@@ -76,12 +61,12 @@ function getHeartsUIWidth() {
|
|
|
76
61
|
* - If the user does not have a HUD offset configured, this function will return `Vector(0, 0)`.
|
|
77
62
|
* - If the user has a HUD offset of 1.0 configured, this function will return `Vector(20, 12)`.
|
|
78
63
|
*/
|
|
79
|
-
function getHUDOffsetVector() {
|
|
64
|
+
export function getHUDOffsetVector() {
|
|
80
65
|
// Convert e.g. 0.4 to 4.
|
|
81
66
|
const hudOffset = Math.floor(Options.HUDOffset * 10);
|
|
82
67
|
// Expected values are integers between 1 and 10.
|
|
83
68
|
if (hudOffset < 1 || hudOffset > 10) {
|
|
84
|
-
return
|
|
69
|
+
return copyVector(VectorZero);
|
|
85
70
|
}
|
|
86
71
|
const x = hudOffset * 2;
|
|
87
72
|
let y = hudOffset;
|
|
@@ -93,39 +78,39 @@ function getHUDOffsetVector() {
|
|
|
93
78
|
}
|
|
94
79
|
return Vector(x, y);
|
|
95
80
|
}
|
|
96
|
-
function getScreenBottomCenterPos() {
|
|
81
|
+
export function getScreenBottomCenterPos() {
|
|
97
82
|
const bottomRightPos = getScreenBottomRightPos();
|
|
98
83
|
return Vector(bottomRightPos.X / 2, bottomRightPos.Y);
|
|
99
84
|
}
|
|
100
|
-
function getScreenBottomLeftPos() {
|
|
85
|
+
export function getScreenBottomLeftPos() {
|
|
101
86
|
const bottomRightPos = getScreenBottomRightPos();
|
|
102
87
|
return Vector(0, bottomRightPos.Y);
|
|
103
88
|
}
|
|
104
|
-
function getScreenBottomRightPos() {
|
|
89
|
+
export function getScreenBottomRightPos() {
|
|
105
90
|
const screenWidth = Isaac.GetScreenWidth();
|
|
106
91
|
const screenHeight = Isaac.GetScreenHeight();
|
|
107
92
|
return Vector(screenWidth, screenHeight);
|
|
108
93
|
}
|
|
109
|
-
function getScreenBottomY() {
|
|
94
|
+
export function getScreenBottomY() {
|
|
110
95
|
const bottomRightPos = getScreenBottomRightPos();
|
|
111
96
|
return bottomRightPos.Y;
|
|
112
97
|
}
|
|
113
|
-
function getScreenCenterPos() {
|
|
98
|
+
export function getScreenCenterPos() {
|
|
114
99
|
const bottomRightPos = getScreenBottomRightPos();
|
|
115
100
|
return bottomRightPos.div(2);
|
|
116
101
|
}
|
|
117
|
-
function getScreenRightX() {
|
|
102
|
+
export function getScreenRightX() {
|
|
118
103
|
const bottomRightPos = getScreenBottomRightPos();
|
|
119
104
|
return bottomRightPos.X;
|
|
120
105
|
}
|
|
121
|
-
function getScreenTopCenterPos() {
|
|
106
|
+
export function getScreenTopCenterPos() {
|
|
122
107
|
const bottomRightPos = getScreenBottomRightPos();
|
|
123
108
|
return Vector(bottomRightPos.X / 2, 0);
|
|
124
109
|
}
|
|
125
|
-
function getScreenTopLeftPos() {
|
|
126
|
-
return
|
|
110
|
+
export function getScreenTopLeftPos() {
|
|
111
|
+
return copyVector(VectorZero);
|
|
127
112
|
}
|
|
128
|
-
function getScreenTopRightPos() {
|
|
113
|
+
export function getScreenTopRightPos() {
|
|
129
114
|
const bottomRightPos = getScreenBottomRightPos();
|
|
130
115
|
return Vector(bottomRightPos.X, 0);
|
|
131
116
|
}
|
|
@@ -134,7 +119,7 @@ function getScreenTopRightPos() {
|
|
|
134
119
|
*
|
|
135
120
|
* This function is originally from piber20 Helper.
|
|
136
121
|
*/
|
|
137
|
-
function getVisibleHearts(player) {
|
|
122
|
+
export function getVisibleHearts(player) {
|
|
138
123
|
const effectiveMaxHearts = player.GetEffectiveMaxHearts();
|
|
139
124
|
const soulHearts = player.GetSoulHearts();
|
|
140
125
|
const boneHearts = player.GetBoneHearts();
|
package/dist/functions/utils.js
CHANGED
|
@@ -1,28 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports.eRange = eRange;
|
|
6
|
-
exports.getTraversalDescription = getTraversalDescription;
|
|
7
|
-
exports.inRange = inRange;
|
|
8
|
-
exports.iRange = iRange;
|
|
9
|
-
exports.isMultiplayer = isMultiplayer;
|
|
10
|
-
exports.isRepentance = isRepentance;
|
|
11
|
-
exports.isRepentancePlus = isRepentancePlus;
|
|
12
|
-
exports.isRepentogon = isRepentogon;
|
|
13
|
-
exports.repeat = repeat;
|
|
14
|
-
exports.todo = todo;
|
|
15
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
16
|
-
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
17
|
-
const playerIndex_1 = require("./playerIndex");
|
|
18
|
-
const types_1 = require("./types");
|
|
1
|
+
import { game } from "../core/cachedClasses";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
3
|
+
import { getAllPlayers } from "./playerIndex";
|
|
4
|
+
import { isFunction } from "./types";
|
|
19
5
|
/**
|
|
20
6
|
* Helper function to throw an error (using the `error` Lua function) if the provided value is equal
|
|
21
7
|
* to `undefined`.
|
|
22
8
|
*
|
|
23
9
|
* This is useful to have TypeScript narrow a `T | undefined` value to `T` in a concise way.
|
|
24
10
|
*/
|
|
25
|
-
function assertDefined(value, ...[msg]) {
|
|
11
|
+
export function assertDefined(value, ...[msg]) {
|
|
26
12
|
if (value === undefined) {
|
|
27
13
|
error(msg);
|
|
28
14
|
}
|
|
@@ -33,7 +19,7 @@ function assertDefined(value, ...[msg]) {
|
|
|
33
19
|
*
|
|
34
20
|
* This is useful to have TypeScript narrow a `T | null` value to `T` in a concise way.
|
|
35
21
|
*/
|
|
36
|
-
function assertNotNull(value, ...[msg]) {
|
|
22
|
+
export function assertNotNull(value, ...[msg]) {
|
|
37
23
|
if (value === null) {
|
|
38
24
|
error(msg);
|
|
39
25
|
}
|
|
@@ -60,7 +46,7 @@ function assertNotNull(value, ...[msg]) {
|
|
|
60
46
|
* first argument will be the end.
|
|
61
47
|
* @param increment Optional. The increment to use. Default is 1.
|
|
62
48
|
*/
|
|
63
|
-
function eRange(start, end, increment = 1) {
|
|
49
|
+
export function eRange(start, end, increment = 1) {
|
|
64
50
|
if (end === undefined) {
|
|
65
51
|
// eslint-disable-next-line unicorn/no-useless-recursion
|
|
66
52
|
return eRange(0, start, increment);
|
|
@@ -75,7 +61,7 @@ function eRange(start, end, increment = 1) {
|
|
|
75
61
|
* Helper function to log what is happening in functions that recursively move through nested data
|
|
76
62
|
* structures.
|
|
77
63
|
*/
|
|
78
|
-
function getTraversalDescription(key, traversalDescription) {
|
|
64
|
+
export function getTraversalDescription(key, traversalDescription) {
|
|
79
65
|
if (traversalDescription !== "") {
|
|
80
66
|
traversalDescription += " --> ";
|
|
81
67
|
}
|
|
@@ -92,7 +78,7 @@ function getTraversalDescription(key, traversalDescription) {
|
|
|
92
78
|
* @param start The start of the range to check.
|
|
93
79
|
* @param end The end of the range to check.
|
|
94
80
|
*/
|
|
95
|
-
function inRange(num, start, end) {
|
|
81
|
+
export function inRange(num, start, end) {
|
|
96
82
|
return num >= start && num <= end;
|
|
97
83
|
}
|
|
98
84
|
/**
|
|
@@ -116,7 +102,7 @@ function inRange(num, start, end) {
|
|
|
116
102
|
* first argument will be the end.
|
|
117
103
|
* @param increment Optional. The increment to use. Default is 1.
|
|
118
104
|
*/
|
|
119
|
-
function iRange(start, end, increment = 1) {
|
|
105
|
+
export function iRange(start, end, increment = 1) {
|
|
120
106
|
if (end === undefined) {
|
|
121
107
|
// eslint-disable-next-line unicorn/no-useless-recursion
|
|
122
108
|
return iRange(0, start, increment);
|
|
@@ -133,10 +119,10 @@ function iRange(start, end, increment = 1) {
|
|
|
133
119
|
* `ControllerIndex` will not be set properly. As a workaround, you can use it in the
|
|
134
120
|
* `POST_PLAYER_INIT_FIRST` callback (or some other callback like `POST_UPDATE`).
|
|
135
121
|
*/
|
|
136
|
-
function isMultiplayer() {
|
|
137
|
-
const players =
|
|
122
|
+
export function isMultiplayer() {
|
|
123
|
+
const players = getAllPlayers();
|
|
138
124
|
const controllerIndexes = players.map((player) => player.ControllerIndex);
|
|
139
|
-
const controllerIndexesSet = new
|
|
125
|
+
const controllerIndexesSet = new ReadonlySet(controllerIndexes);
|
|
140
126
|
return controllerIndexesSet.size > 1;
|
|
141
127
|
}
|
|
142
128
|
/**
|
|
@@ -147,13 +133,13 @@ function isMultiplayer() {
|
|
|
147
133
|
* Specifically, this function checks for the `Sprite.GetAnimation` method:
|
|
148
134
|
* https://bindingofisaacrebirth.fandom.com/wiki/V1.06.J818#Lua_Changes
|
|
149
135
|
*/
|
|
150
|
-
function isRepentance() {
|
|
136
|
+
export function isRepentance() {
|
|
151
137
|
const metatable = getmetatable(Sprite);
|
|
152
138
|
assertDefined(metatable, "Failed to get the metatable of the Sprite global table.");
|
|
153
139
|
const classTable = metatable.get("__class");
|
|
154
140
|
assertDefined(classTable, 'Failed to get the "__class" key of the Sprite metatable.');
|
|
155
141
|
const getAnimation = classTable.get("GetAnimation");
|
|
156
|
-
return
|
|
142
|
+
return isFunction(getAnimation);
|
|
157
143
|
}
|
|
158
144
|
/**
|
|
159
145
|
* Helper function to check if the player has the Repentance+ DLC installed.
|
|
@@ -164,12 +150,12 @@ function isRepentance() {
|
|
|
164
150
|
* Specifically, this function checks for `Room:DamageGridWithSource` method:
|
|
165
151
|
* https://bindingofisaacrebirth.wiki.gg/wiki/The_Binding_of_Isaac:_Repentance%2B#Modding_Changes
|
|
166
152
|
*/
|
|
167
|
-
function isRepentancePlus() {
|
|
168
|
-
const room =
|
|
153
|
+
export function isRepentancePlus() {
|
|
154
|
+
const room = game.GetRoom();
|
|
169
155
|
const metatable = getmetatable(room);
|
|
170
156
|
assertDefined(metatable, "Failed to get the metatable of the room class.");
|
|
171
157
|
const damageGridWithSource = metatable.get("DamageGridWithSource");
|
|
172
|
-
return
|
|
158
|
+
return isFunction(damageGridWithSource);
|
|
173
159
|
}
|
|
174
160
|
/**
|
|
175
161
|
* Helper function to check if the player is using REPENTOGON, an exe-hack which expands the modding
|
|
@@ -181,13 +167,13 @@ function isRepentancePlus() {
|
|
|
181
167
|
* Specifically, this function checks for the `Sprite.Continue` method:
|
|
182
168
|
* https://repentogon.com/Sprite.html#continue
|
|
183
169
|
*/
|
|
184
|
-
function isRepentogon() {
|
|
170
|
+
export function isRepentogon() {
|
|
185
171
|
const metatable = getmetatable(Sprite);
|
|
186
172
|
assertDefined(metatable, "Failed to get the metatable of the Sprite global table.");
|
|
187
173
|
const classTable = metatable.get("__class");
|
|
188
174
|
assertDefined(classTable, 'Failed to get the "__class" key of the Sprite metatable.');
|
|
189
175
|
const getAnimation = classTable.get("Continue");
|
|
190
|
-
return
|
|
176
|
+
return isFunction(getAnimation);
|
|
191
177
|
}
|
|
192
178
|
/**
|
|
193
179
|
* Helper function to repeat code N times. This is faster to type and cleaner than using a for loop.
|
|
@@ -209,7 +195,7 @@ function isRepentogon() {
|
|
|
209
195
|
* });
|
|
210
196
|
* ```
|
|
211
197
|
*/
|
|
212
|
-
function repeat(num, func) {
|
|
198
|
+
export function repeat(num, func) {
|
|
213
199
|
for (let i = 0; i < num; i++) {
|
|
214
200
|
func(i);
|
|
215
201
|
}
|
|
@@ -230,4 +216,4 @@ function repeat(num, func) {
|
|
|
230
216
|
* @allowEmptyVariadic
|
|
231
217
|
*/
|
|
232
218
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
|
|
233
|
-
function todo(...args) { }
|
|
219
|
+
export function todo(...args) { }
|
package/dist/functions/vector.js
CHANGED
|
@@ -1,28 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.isVector = isVector;
|
|
10
|
-
exports.serializeVector = serializeVector;
|
|
11
|
-
exports.vectorEquals = vectorEquals;
|
|
12
|
-
exports.vectorToDirection = vectorToDirection;
|
|
13
|
-
exports.vectorToString = vectorToString;
|
|
14
|
-
const SerializationBrand_1 = require("../enums/private/SerializationBrand");
|
|
15
|
-
const direction_1 = require("./direction");
|
|
16
|
-
const isaacAPIClass_1 = require("./isaacAPIClass");
|
|
17
|
-
const random_1 = require("./random");
|
|
18
|
-
const rng_1 = require("./rng");
|
|
19
|
-
const table_1 = require("./table");
|
|
20
|
-
const types_1 = require("./types");
|
|
21
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { SerializationBrand } from "../enums/private/SerializationBrand";
|
|
2
|
+
import { angleToDirection } from "./direction";
|
|
3
|
+
import { isIsaacAPIClassOfType, isaacAPIClassEquals } from "./isaacAPIClass";
|
|
4
|
+
import { getRandomFloat } from "./random";
|
|
5
|
+
import { isRNG, newRNG } from "./rng";
|
|
6
|
+
import { copyUserdataValuesToTable, getNumbersFromTable, tableHasKeys, } from "./table";
|
|
7
|
+
import { isTable } from "./types";
|
|
8
|
+
import { assertDefined } from "./utils";
|
|
22
9
|
const OBJECT_NAME = "Vector";
|
|
23
10
|
const KEYS = ["X", "Y"];
|
|
24
11
|
/** Helper function to copy a `Vector` Isaac API class. */
|
|
25
|
-
function copyVector(vector) {
|
|
12
|
+
export function copyVector(vector) {
|
|
26
13
|
if (!isVector(vector)) {
|
|
27
14
|
error(`Failed to copy a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
|
|
28
15
|
}
|
|
@@ -32,13 +19,13 @@ function copyVector(vector) {
|
|
|
32
19
|
* Helper function to convert a `SerializedVector` object to a normal `RNG` object. (This is used by
|
|
33
20
|
* the save data manager when reading data from the "save#.dat" file.)
|
|
34
21
|
*/
|
|
35
|
-
function deserializeVector(vector) {
|
|
36
|
-
if (!
|
|
22
|
+
export function deserializeVector(vector) {
|
|
23
|
+
if (!isTable(vector)) {
|
|
37
24
|
error(`Failed to deserialize a ${OBJECT_NAME} object since the provided object was not a Lua table.`);
|
|
38
25
|
}
|
|
39
|
-
const [x, y] =
|
|
40
|
-
|
|
41
|
-
|
|
26
|
+
const [x, y] = getNumbersFromTable(vector, OBJECT_NAME, ...KEYS);
|
|
27
|
+
assertDefined(x, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: X`);
|
|
28
|
+
assertDefined(y, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Y`);
|
|
42
29
|
return Vector(x, y);
|
|
43
30
|
}
|
|
44
31
|
/**
|
|
@@ -52,7 +39,7 @@ function deserializeVector(vector) {
|
|
|
52
39
|
* @param threshold Optional. The threshold from 0 to consider to be a non-zero vector. Default is
|
|
53
40
|
* 0.01.
|
|
54
41
|
*/
|
|
55
|
-
function doesVectorHaveLength(vector, threshold = 0.01) {
|
|
42
|
+
export function doesVectorHaveLength(vector, threshold = 0.01) {
|
|
56
43
|
return vector.Length() >= threshold;
|
|
57
44
|
}
|
|
58
45
|
/**
|
|
@@ -62,7 +49,7 @@ function doesVectorHaveLength(vector, threshold = 0.01) {
|
|
|
62
49
|
* @param referenceVector The vector to compare against.
|
|
63
50
|
* @param vectors The array of vectors to look through.
|
|
64
51
|
*/
|
|
65
|
-
function getClosestVectorTo(referenceVector, vectors) {
|
|
52
|
+
export function getClosestVectorTo(referenceVector, vectors) {
|
|
66
53
|
let closestVector;
|
|
67
54
|
let closestDistance = Infinity;
|
|
68
55
|
for (const vector of vectors) {
|
|
@@ -88,37 +75,37 @@ function getClosestVectorTo(referenceVector, vectors) {
|
|
|
88
75
|
* `RNG.Next` method will be called. If `undefined` is provided, it will default to
|
|
89
76
|
* a random seed.
|
|
90
77
|
*/
|
|
91
|
-
function getRandomVector(seedOrRNG) {
|
|
92
|
-
const rng =
|
|
93
|
-
const x =
|
|
94
|
-
const y =
|
|
78
|
+
export function getRandomVector(seedOrRNG) {
|
|
79
|
+
const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
|
|
80
|
+
const x = getRandomFloat(-1, 1, rng);
|
|
81
|
+
const y = getRandomFloat(-1, 1, rng);
|
|
95
82
|
return Vector(x, y);
|
|
96
83
|
}
|
|
97
84
|
/**
|
|
98
85
|
* Used to determine is the given table is a serialized `Vector` object created by the `deepCopy`
|
|
99
86
|
* function.
|
|
100
87
|
*/
|
|
101
|
-
function isSerializedVector(object) {
|
|
102
|
-
if (!
|
|
88
|
+
export function isSerializedVector(object) {
|
|
89
|
+
if (!isTable(object)) {
|
|
103
90
|
return false;
|
|
104
91
|
}
|
|
105
|
-
return
|
|
92
|
+
return tableHasKeys(object, ...KEYS) && object.has(SerializationBrand.VECTOR);
|
|
106
93
|
}
|
|
107
94
|
/** Helper function to check if something is an instantiated `Vector` object. */
|
|
108
|
-
function isVector(object) {
|
|
109
|
-
return
|
|
95
|
+
export function isVector(object) {
|
|
96
|
+
return isIsaacAPIClassOfType(object, OBJECT_NAME);
|
|
110
97
|
}
|
|
111
98
|
/**
|
|
112
99
|
* Helper function to convert a `Vector` object to a `SerializedVector` object. (This is used by the
|
|
113
100
|
* save data manager when writing data from the "save#.dat" file.)
|
|
114
101
|
*/
|
|
115
|
-
function serializeVector(vector) {
|
|
102
|
+
export function serializeVector(vector) {
|
|
116
103
|
if (!isVector(vector)) {
|
|
117
104
|
error(`Failed to serialize a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
|
|
118
105
|
}
|
|
119
106
|
const vectorTable = new LuaMap();
|
|
120
|
-
|
|
121
|
-
vectorTable.set(
|
|
107
|
+
copyUserdataValuesToTable(vector, KEYS, vectorTable);
|
|
108
|
+
vectorTable.set(SerializationBrand.VECTOR, "");
|
|
122
109
|
return vectorTable;
|
|
123
110
|
}
|
|
124
111
|
/**
|
|
@@ -127,13 +114,13 @@ function serializeVector(vector) {
|
|
|
127
114
|
* This function is useful because vectors are not directly comparable. In other words, `Vector(1.2)
|
|
128
115
|
* === Vector(1.2)` will be equal to false.
|
|
129
116
|
*/
|
|
130
|
-
function vectorEquals(vector1, vector2) {
|
|
131
|
-
return
|
|
117
|
+
export function vectorEquals(vector1, vector2) {
|
|
118
|
+
return isaacAPIClassEquals(vector1, vector2, KEYS);
|
|
132
119
|
}
|
|
133
120
|
/** Helper function for finding out which way a vector is pointing. */
|
|
134
|
-
function vectorToDirection(vector) {
|
|
121
|
+
export function vectorToDirection(vector) {
|
|
135
122
|
const angleDegrees = vector.GetAngleDegrees();
|
|
136
|
-
return
|
|
123
|
+
return angleToDirection(angleDegrees);
|
|
137
124
|
}
|
|
138
125
|
/**
|
|
139
126
|
* Helper function to convert a vector to a string.
|
|
@@ -142,7 +129,7 @@ function vectorToDirection(vector) {
|
|
|
142
129
|
* @param round Optional. If true, will round the vector values to the nearest integer. Default is
|
|
143
130
|
* false.
|
|
144
131
|
*/
|
|
145
|
-
function vectorToString(vector, round = false) {
|
|
132
|
+
export function vectorToString(vector, round = false) {
|
|
146
133
|
const x = round ? Math.round(vector.X) : vector.X;
|
|
147
134
|
const y = round ? Math.round(vector.Y) : vector.Y;
|
|
148
135
|
return `(${x}, ${y})`;
|