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
|
@@ -1,49 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports.getFamiliars = getFamiliars;
|
|
6
|
-
exports.getKnives = getKnives;
|
|
7
|
-
exports.getLasers = getLasers;
|
|
8
|
-
exports.getNPCs = getNPCs;
|
|
9
|
-
exports.getPickups = getPickups;
|
|
10
|
-
exports.getProjectiles = getProjectiles;
|
|
11
|
-
exports.getSlots = getSlots;
|
|
12
|
-
exports.getTears = getTears;
|
|
13
|
-
exports.removeAllBombs = removeAllBombs;
|
|
14
|
-
exports.removeAllEffects = removeAllEffects;
|
|
15
|
-
exports.removeAllFamiliars = removeAllFamiliars;
|
|
16
|
-
exports.removeAllKnives = removeAllKnives;
|
|
17
|
-
exports.removeAllLasers = removeAllLasers;
|
|
18
|
-
exports.removeAllNPCs = removeAllNPCs;
|
|
19
|
-
exports.removeAllPickups = removeAllPickups;
|
|
20
|
-
exports.removeAllProjectiles = removeAllProjectiles;
|
|
21
|
-
exports.removeAllSlots = removeAllSlots;
|
|
22
|
-
exports.removeAllTears = removeAllTears;
|
|
23
|
-
exports.spawnBomb = spawnBomb;
|
|
24
|
-
exports.spawnBombWithSeed = spawnBombWithSeed;
|
|
25
|
-
exports.spawnEffect = spawnEffect;
|
|
26
|
-
exports.spawnEffectWithSeed = spawnEffectWithSeed;
|
|
27
|
-
exports.spawnFamiliar = spawnFamiliar;
|
|
28
|
-
exports.spawnFamiliarWithSeed = spawnFamiliarWithSeed;
|
|
29
|
-
exports.spawnKnife = spawnKnife;
|
|
30
|
-
exports.spawnKnifeWithSeed = spawnKnifeWithSeed;
|
|
31
|
-
exports.spawnLaser = spawnLaser;
|
|
32
|
-
exports.spawnLaserWithSeed = spawnLaserWithSeed;
|
|
33
|
-
exports.spawnNPC = spawnNPC;
|
|
34
|
-
exports.spawnNPCWithSeed = spawnNPCWithSeed;
|
|
35
|
-
exports.spawnPickup = spawnPickup;
|
|
36
|
-
exports.spawnPickupWithSeed = spawnPickupWithSeed;
|
|
37
|
-
exports.spawnProjectile = spawnProjectile;
|
|
38
|
-
exports.spawnProjectileWithSeed = spawnProjectileWithSeed;
|
|
39
|
-
exports.spawnSlot = spawnSlot;
|
|
40
|
-
exports.spawnSlotWithSeed = spawnSlotWithSeed;
|
|
41
|
-
exports.spawnTear = spawnTear;
|
|
42
|
-
exports.spawnTearWithSeed = spawnTearWithSeed;
|
|
43
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
44
|
-
const constants_1 = require("../core/constants");
|
|
45
|
-
const entities_1 = require("./entities");
|
|
46
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { EntityType } from "isaac-typescript-definitions";
|
|
2
|
+
import { VectorZero } from "../core/constants";
|
|
3
|
+
import { getEntities, removeEntities, spawn } from "./entities";
|
|
4
|
+
import { assertDefined } from "./utils";
|
|
47
5
|
/**
|
|
48
6
|
* Helper function to get all of the bombs in the room. (Specifically, this refers to the
|
|
49
7
|
* `EntityBomb` class, not bomb pickups.)
|
|
@@ -62,8 +20,8 @@ const utils_1 = require("./utils");
|
|
|
62
20
|
* @param subType Optional. If specified, will only get the bombs that match the sub-type. Default
|
|
63
21
|
* is -1, which matches every sub-type.
|
|
64
22
|
*/
|
|
65
|
-
function getBombs(bombVariant = -1, subType = -1) {
|
|
66
|
-
const entities =
|
|
23
|
+
export function getBombs(bombVariant = -1, subType = -1) {
|
|
24
|
+
const entities = getEntities(EntityType.BOMB, bombVariant, subType);
|
|
67
25
|
const bombs = [];
|
|
68
26
|
for (const entity of entities) {
|
|
69
27
|
const bomb = entity.ToBomb();
|
|
@@ -90,8 +48,8 @@ function getBombs(bombVariant = -1, subType = -1) {
|
|
|
90
48
|
* @param subType Optional. If specified, will only get the effects that match the sub-type. Default
|
|
91
49
|
* is -1, which matches every sub-type.
|
|
92
50
|
*/
|
|
93
|
-
function getEffects(effectVariant = -1, subType = -1) {
|
|
94
|
-
const entities =
|
|
51
|
+
export function getEffects(effectVariant = -1, subType = -1) {
|
|
52
|
+
const entities = getEntities(EntityType.EFFECT, effectVariant, subType);
|
|
95
53
|
const effects = [];
|
|
96
54
|
for (const entity of entities) {
|
|
97
55
|
const effect = entity.ToEffect();
|
|
@@ -118,8 +76,8 @@ function getEffects(effectVariant = -1, subType = -1) {
|
|
|
118
76
|
* @param subType Optional. If specified, will only get the familiars that match the sub-type.
|
|
119
77
|
* Default is -1, which matches every sub-type.
|
|
120
78
|
*/
|
|
121
|
-
function getFamiliars(familiarVariant = -1, subType = -1) {
|
|
122
|
-
const entities =
|
|
79
|
+
export function getFamiliars(familiarVariant = -1, subType = -1) {
|
|
80
|
+
const entities = getEntities(EntityType.FAMILIAR, familiarVariant, subType);
|
|
123
81
|
const familiars = [];
|
|
124
82
|
for (const entity of entities) {
|
|
125
83
|
const familiar = entity.ToFamiliar();
|
|
@@ -146,8 +104,8 @@ function getFamiliars(familiarVariant = -1, subType = -1) {
|
|
|
146
104
|
* @param subType Optional. If specified, will only get the knives that match the sub-type. Default
|
|
147
105
|
* is -1, which matches every sub-type.
|
|
148
106
|
*/
|
|
149
|
-
function getKnives(knifeVariant = -1, subType = -1) {
|
|
150
|
-
const entities =
|
|
107
|
+
export function getKnives(knifeVariant = -1, subType = -1) {
|
|
108
|
+
const entities = getEntities(EntityType.KNIFE, knifeVariant, subType);
|
|
151
109
|
const knives = [];
|
|
152
110
|
for (const entity of entities) {
|
|
153
111
|
const knife = entity.ToKnife();
|
|
@@ -174,8 +132,8 @@ function getKnives(knifeVariant = -1, subType = -1) {
|
|
|
174
132
|
* @param subType Optional. If specified, will only get the lasers that match the sub-type. Default
|
|
175
133
|
* is -1, which matches every sub-type.
|
|
176
134
|
*/
|
|
177
|
-
function getLasers(laserVariant = -1, subType = -1) {
|
|
178
|
-
const entities =
|
|
135
|
+
export function getLasers(laserVariant = -1, subType = -1) {
|
|
136
|
+
const entities = getEntities(EntityType.LASER, laserVariant, subType);
|
|
179
137
|
const lasers = [];
|
|
180
138
|
for (const entity of entities) {
|
|
181
139
|
const laser = entity.ToLaser();
|
|
@@ -198,8 +156,8 @@ function getLasers(laserVariant = -1, subType = -1) {
|
|
|
198
156
|
* returned. Default is false. Will only be taken into account if the
|
|
199
157
|
* `entityType` is specified.
|
|
200
158
|
*/
|
|
201
|
-
function getNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
|
|
202
|
-
const entities =
|
|
159
|
+
export function getNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
|
|
160
|
+
const entities = getEntities(entityType, variant, subType, ignoreFriendly);
|
|
203
161
|
const npcs = [];
|
|
204
162
|
for (const entity of entities) {
|
|
205
163
|
const npc = entity.ToNPC();
|
|
@@ -226,8 +184,8 @@ function getNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = f
|
|
|
226
184
|
* @param subType Optional. If specified, will only get the pickups that match the sub-type. Default
|
|
227
185
|
* is -1, which matches every sub-type.
|
|
228
186
|
*/
|
|
229
|
-
function getPickups(pickupVariant = -1, subType = -1) {
|
|
230
|
-
const entities =
|
|
187
|
+
export function getPickups(pickupVariant = -1, subType = -1) {
|
|
188
|
+
const entities = getEntities(EntityType.PICKUP, pickupVariant, subType);
|
|
231
189
|
const pickups = [];
|
|
232
190
|
for (const entity of entities) {
|
|
233
191
|
const pickup = entity.ToPickup();
|
|
@@ -254,8 +212,8 @@ function getPickups(pickupVariant = -1, subType = -1) {
|
|
|
254
212
|
* @param subType Optional. If specified, will only get the projectiles that match the sub-type.
|
|
255
213
|
* Default is -1, which matches every sub-type.
|
|
256
214
|
*/
|
|
257
|
-
function getProjectiles(projectileVariant = -1, subType = -1) {
|
|
258
|
-
const entities =
|
|
215
|
+
export function getProjectiles(projectileVariant = -1, subType = -1) {
|
|
216
|
+
const entities = getEntities(EntityType.PROJECTILE, projectileVariant, subType);
|
|
259
217
|
const projectiles = [];
|
|
260
218
|
for (const entity of entities) {
|
|
261
219
|
const projectile = entity.ToProjectile();
|
|
@@ -282,8 +240,8 @@ function getProjectiles(projectileVariant = -1, subType = -1) {
|
|
|
282
240
|
* @param subType Optional. If specified, will only get the slots that match the sub-type. Default
|
|
283
241
|
* is -1, which matches every sub-type.
|
|
284
242
|
*/
|
|
285
|
-
function getSlots(slotVariant = -1, subType = -1) {
|
|
286
|
-
const slots =
|
|
243
|
+
export function getSlots(slotVariant = -1, subType = -1) {
|
|
244
|
+
const slots = getEntities(EntityType.SLOT, slotVariant, subType);
|
|
287
245
|
return slots;
|
|
288
246
|
}
|
|
289
247
|
/**
|
|
@@ -303,8 +261,8 @@ function getSlots(slotVariant = -1, subType = -1) {
|
|
|
303
261
|
* @param subType Optional. If specified, will only get the tears that match the sub-type. Default
|
|
304
262
|
* is -1, which matches every sub-type.
|
|
305
263
|
*/
|
|
306
|
-
function getTears(tearVariant = -1, subType = -1) {
|
|
307
|
-
const entities =
|
|
264
|
+
export function getTears(tearVariant = -1, subType = -1) {
|
|
265
|
+
const entities = getEntities(EntityType.TEAR, tearVariant, subType);
|
|
308
266
|
const tears = [];
|
|
309
267
|
for (const entity of entities) {
|
|
310
268
|
const tear = entity.ToTear();
|
|
@@ -325,9 +283,9 @@ function getTears(tearVariant = -1, subType = -1) {
|
|
|
325
283
|
* @param cap Optional. If specified, will only remove the given amount of bombs.
|
|
326
284
|
* @returns An array of the bombs that were removed.
|
|
327
285
|
*/
|
|
328
|
-
function removeAllBombs(bombVariant = -1, subType = -1, cap) {
|
|
286
|
+
export function removeAllBombs(bombVariant = -1, subType = -1, cap) {
|
|
329
287
|
const bombs = getBombs(bombVariant, subType);
|
|
330
|
-
return
|
|
288
|
+
return removeEntities(bombs, cap);
|
|
331
289
|
}
|
|
332
290
|
/**
|
|
333
291
|
* Helper function to remove all of the effects in the room.
|
|
@@ -339,9 +297,9 @@ function removeAllBombs(bombVariant = -1, subType = -1, cap) {
|
|
|
339
297
|
* @param cap Optional. If specified, will only remove the given amount of effects.
|
|
340
298
|
* @returns An array of the effects that were removed.
|
|
341
299
|
*/
|
|
342
|
-
function removeAllEffects(effectVariant = -1, subType = -1, cap) {
|
|
300
|
+
export function removeAllEffects(effectVariant = -1, subType = -1, cap) {
|
|
343
301
|
const effects = getEffects(effectVariant, subType);
|
|
344
|
-
return
|
|
302
|
+
return removeEntities(effects, cap);
|
|
345
303
|
}
|
|
346
304
|
/**
|
|
347
305
|
* Helper function to remove all of the familiars in the room.
|
|
@@ -353,9 +311,9 @@ function removeAllEffects(effectVariant = -1, subType = -1, cap) {
|
|
|
353
311
|
* @param cap Optional. If specified, will only remove the given amount of familiars.
|
|
354
312
|
* @returns An array of the familiars that were removed.
|
|
355
313
|
*/
|
|
356
|
-
function removeAllFamiliars(familiarVariant = -1, subType = -1, cap) {
|
|
314
|
+
export function removeAllFamiliars(familiarVariant = -1, subType = -1, cap) {
|
|
357
315
|
const familiars = getFamiliars(familiarVariant, subType);
|
|
358
|
-
return
|
|
316
|
+
return removeEntities(familiars, cap);
|
|
359
317
|
}
|
|
360
318
|
/**
|
|
361
319
|
* Helper function to remove all of the knives in the room.
|
|
@@ -367,9 +325,9 @@ function removeAllFamiliars(familiarVariant = -1, subType = -1, cap) {
|
|
|
367
325
|
* @param cap Optional. If specified, will only remove the given amount of knives.
|
|
368
326
|
* @returns An array of the knives that were removed.
|
|
369
327
|
*/
|
|
370
|
-
function removeAllKnives(knifeVariant = -1, subType = -1, cap) {
|
|
328
|
+
export function removeAllKnives(knifeVariant = -1, subType = -1, cap) {
|
|
371
329
|
const knives = getKnives(knifeVariant, subType);
|
|
372
|
-
return
|
|
330
|
+
return removeEntities(knives, cap);
|
|
373
331
|
}
|
|
374
332
|
/**
|
|
375
333
|
* Helper function to remove all of the lasers in the room.
|
|
@@ -381,9 +339,9 @@ function removeAllKnives(knifeVariant = -1, subType = -1, cap) {
|
|
|
381
339
|
* @param cap Optional. If specified, will only remove the given amount of lasers.
|
|
382
340
|
* @returns An array of the lasers that were removed.
|
|
383
341
|
*/
|
|
384
|
-
function removeAllLasers(laserVariant = -1, subType = -1, cap) {
|
|
342
|
+
export function removeAllLasers(laserVariant = -1, subType = -1, cap) {
|
|
385
343
|
const lasers = getLasers(laserVariant, subType);
|
|
386
|
-
return
|
|
344
|
+
return removeEntities(lasers, cap);
|
|
387
345
|
}
|
|
388
346
|
/**
|
|
389
347
|
* Helper function to remove all of the NPCs in the room.
|
|
@@ -397,9 +355,9 @@ function removeAllLasers(laserVariant = -1, subType = -1, cap) {
|
|
|
397
355
|
* @param cap Optional. If specified, will only remove the given amount of NPCs.
|
|
398
356
|
* @returns An array of the NPCs that were removed.
|
|
399
357
|
*/
|
|
400
|
-
function removeAllNPCs(entityType = -1, variant = -1, subType = -1, cap) {
|
|
358
|
+
export function removeAllNPCs(entityType = -1, variant = -1, subType = -1, cap) {
|
|
401
359
|
const npcs = getNPCs(entityType, variant, subType);
|
|
402
|
-
return
|
|
360
|
+
return removeEntities(npcs, cap);
|
|
403
361
|
}
|
|
404
362
|
/**
|
|
405
363
|
* Helper function to remove all of the pickups in the room.
|
|
@@ -411,9 +369,9 @@ function removeAllNPCs(entityType = -1, variant = -1, subType = -1, cap) {
|
|
|
411
369
|
* @param cap Optional. If specified, will only remove the given amount of pickups.
|
|
412
370
|
* @returns An array of the pickups that were removed.
|
|
413
371
|
*/
|
|
414
|
-
function removeAllPickups(pickupVariant = -1, subType = -1, cap) {
|
|
372
|
+
export function removeAllPickups(pickupVariant = -1, subType = -1, cap) {
|
|
415
373
|
const pickups = getPickups(pickupVariant, subType);
|
|
416
|
-
return
|
|
374
|
+
return removeEntities(pickups, cap);
|
|
417
375
|
}
|
|
418
376
|
/**
|
|
419
377
|
* Helper function to remove all of the projectiles in the room.
|
|
@@ -425,9 +383,9 @@ function removeAllPickups(pickupVariant = -1, subType = -1, cap) {
|
|
|
425
383
|
* @param cap Optional. If specified, will only remove the given amount of projectiles.
|
|
426
384
|
* @returns An array of the projectiles that were removed.
|
|
427
385
|
*/
|
|
428
|
-
function removeAllProjectiles(projectileVariant = -1, subType = -1, cap) {
|
|
386
|
+
export function removeAllProjectiles(projectileVariant = -1, subType = -1, cap) {
|
|
429
387
|
const projectiles = getProjectiles(projectileVariant, subType);
|
|
430
|
-
return
|
|
388
|
+
return removeEntities(projectiles, cap);
|
|
431
389
|
}
|
|
432
390
|
/**
|
|
433
391
|
* Helper function to remove all of the slots in the room.
|
|
@@ -439,9 +397,9 @@ function removeAllProjectiles(projectileVariant = -1, subType = -1, cap) {
|
|
|
439
397
|
* @param cap Optional. If specified, will only remove the given amount of slots.
|
|
440
398
|
* @returns An array of the slots that were removed.
|
|
441
399
|
*/
|
|
442
|
-
function removeAllSlots(slotVariant = -1, subType = -1, cap) {
|
|
400
|
+
export function removeAllSlots(slotVariant = -1, subType = -1, cap) {
|
|
443
401
|
const slots = getSlots(slotVariant, subType);
|
|
444
|
-
return
|
|
402
|
+
return removeEntities(slots, cap);
|
|
445
403
|
}
|
|
446
404
|
/**
|
|
447
405
|
* Helper function to remove all of the tears in the room.
|
|
@@ -453,30 +411,30 @@ function removeAllSlots(slotVariant = -1, subType = -1, cap) {
|
|
|
453
411
|
* @param cap Optional. If specified, will only remove the given amount of tears.
|
|
454
412
|
* @returns An array of the tears that were removed.
|
|
455
413
|
*/
|
|
456
|
-
function removeAllTears(tearVariant = -1, subType = -1, cap) {
|
|
414
|
+
export function removeAllTears(tearVariant = -1, subType = -1, cap) {
|
|
457
415
|
const tears = getTears(tearVariant, subType);
|
|
458
|
-
return
|
|
416
|
+
return removeEntities(tears, cap);
|
|
459
417
|
}
|
|
460
418
|
/** Helper function to spawn a `EntityType.BOMB` (4). */
|
|
461
|
-
function spawnBomb(bombVariant, subType, positionOrGridIndex, velocity =
|
|
462
|
-
const entity =
|
|
419
|
+
export function spawnBomb(bombVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
420
|
+
const entity = spawn(EntityType.BOMB, bombVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
463
421
|
const bomb = entity.ToBomb();
|
|
464
|
-
|
|
422
|
+
assertDefined(bomb, "Failed to spawn a bomb.");
|
|
465
423
|
return bomb;
|
|
466
424
|
}
|
|
467
425
|
/** Helper function to spawn a `EntityType.BOMB` (4) with a specific seed. */
|
|
468
|
-
function spawnBombWithSeed(bombVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
426
|
+
export function spawnBombWithSeed(bombVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
469
427
|
return spawnBomb(bombVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
470
428
|
}
|
|
471
429
|
/** Helper function to spawn a `EntityType.EFFECT` (1000). */
|
|
472
|
-
function spawnEffect(effectVariant, subType, positionOrGridIndex, velocity =
|
|
473
|
-
const entity =
|
|
430
|
+
export function spawnEffect(effectVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
431
|
+
const entity = spawn(EntityType.EFFECT, effectVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
474
432
|
const effect = entity.ToEffect();
|
|
475
|
-
|
|
433
|
+
assertDefined(effect, "Failed to spawn an effect.");
|
|
476
434
|
return effect;
|
|
477
435
|
}
|
|
478
436
|
/** Helper function to spawn a `EntityType.EFFECT` (1000) with a specific seed. */
|
|
479
|
-
function spawnEffectWithSeed(effectVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
437
|
+
export function spawnEffectWithSeed(effectVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
480
438
|
return spawnEffect(effectVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
481
439
|
}
|
|
482
440
|
/**
|
|
@@ -485,36 +443,36 @@ function spawnEffectWithSeed(effectVariant, subType, positionOrGridIndex, seedOr
|
|
|
485
443
|
* If you are trying to implement a custom familiar, you probably want to use the
|
|
486
444
|
* `checkFamiliarFromCollectibles` helper function instead.
|
|
487
445
|
*/
|
|
488
|
-
function spawnFamiliar(familiarVariant, subType, positionOrGridIndex, velocity =
|
|
489
|
-
const entity =
|
|
446
|
+
export function spawnFamiliar(familiarVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
447
|
+
const entity = spawn(EntityType.FAMILIAR, familiarVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
490
448
|
const familiar = entity.ToFamiliar();
|
|
491
|
-
|
|
449
|
+
assertDefined(familiar, "Failed to spawn a familiar.");
|
|
492
450
|
return familiar;
|
|
493
451
|
}
|
|
494
452
|
/** Helper function to spawn a `EntityType.FAMILIAR` (3) with a specific seed. */
|
|
495
|
-
function spawnFamiliarWithSeed(familiarVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
453
|
+
export function spawnFamiliarWithSeed(familiarVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
496
454
|
return spawnFamiliar(familiarVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
497
455
|
}
|
|
498
456
|
/** Helper function to spawn a `EntityType.KNIFE` (8). */
|
|
499
|
-
function spawnKnife(knifeVariant, subType, positionOrGridIndex, velocity =
|
|
500
|
-
const entity =
|
|
457
|
+
export function spawnKnife(knifeVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
458
|
+
const entity = spawn(EntityType.KNIFE, knifeVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
501
459
|
const knife = entity.ToKnife();
|
|
502
|
-
|
|
460
|
+
assertDefined(knife, "Failed to spawn a knife.");
|
|
503
461
|
return knife;
|
|
504
462
|
}
|
|
505
463
|
/** Helper function to spawn a `EntityType.KNIFE` (8) with a specific seed. */
|
|
506
|
-
function spawnKnifeWithSeed(knifeVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
464
|
+
export function spawnKnifeWithSeed(knifeVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
507
465
|
return spawnKnife(knifeVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
508
466
|
}
|
|
509
467
|
/** Helper function to spawn a `EntityType.LASER` (7). */
|
|
510
|
-
function spawnLaser(laserVariant, subType, positionOrGridIndex, velocity =
|
|
511
|
-
const entity =
|
|
468
|
+
export function spawnLaser(laserVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
469
|
+
const entity = spawn(EntityType.LASER, laserVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
512
470
|
const laser = entity.ToLaser();
|
|
513
|
-
|
|
471
|
+
assertDefined(laser, "Failed to spawn a laser.");
|
|
514
472
|
return laser;
|
|
515
473
|
}
|
|
516
474
|
/** Helper function to spawn a `EntityType.LASER` (7) with a specific seed. */
|
|
517
|
-
function spawnLaserWithSeed(laserVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
475
|
+
export function spawnLaserWithSeed(laserVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
518
476
|
return spawnLaser(laserVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
519
477
|
}
|
|
520
478
|
/**
|
|
@@ -523,10 +481,10 @@ function spawnLaserWithSeed(laserVariant, subType, positionOrGridIndex, seedOrRN
|
|
|
523
481
|
* Note that if you pass a non-NPC `EntityType` to this function, it will cause a run-time error,
|
|
524
482
|
* since the `Entity.ToNPC` method will return undefined.
|
|
525
483
|
*/
|
|
526
|
-
function spawnNPC(entityType, variant, subType, positionOrGridIndex, velocity =
|
|
527
|
-
const entity =
|
|
484
|
+
export function spawnNPC(entityType, variant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
485
|
+
const entity = spawn(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
528
486
|
const npc = entity.ToNPC();
|
|
529
|
-
|
|
487
|
+
assertDefined(npc, "Failed to spawn an NPC.");
|
|
530
488
|
return npc;
|
|
531
489
|
}
|
|
532
490
|
/**
|
|
@@ -535,47 +493,47 @@ function spawnNPC(entityType, variant, subType, positionOrGridIndex, velocity =
|
|
|
535
493
|
* Note that if you pass a non-NPC `EntityType` to this function, it will cause a run-time error,
|
|
536
494
|
* since the `Entity.ToNPC` method will return undefined.
|
|
537
495
|
*/
|
|
538
|
-
function spawnNPCWithSeed(entityType, variant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
496
|
+
export function spawnNPCWithSeed(entityType, variant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
539
497
|
return spawnNPC(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
540
498
|
}
|
|
541
499
|
/** Helper function to spawn a `EntityType.PICKUP` (5). */
|
|
542
|
-
function spawnPickup(pickupVariant, subType, positionOrGridIndex, velocity =
|
|
543
|
-
const entity =
|
|
500
|
+
export function spawnPickup(pickupVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
501
|
+
const entity = spawn(EntityType.PICKUP, pickupVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
544
502
|
const pickup = entity.ToPickup();
|
|
545
|
-
|
|
503
|
+
assertDefined(pickup, "Failed to spawn a pickup.");
|
|
546
504
|
return pickup;
|
|
547
505
|
}
|
|
548
506
|
/** Helper function to spawn a `EntityType.PICKUP` (5) with a specific seed. */
|
|
549
|
-
function spawnPickupWithSeed(pickupVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
507
|
+
export function spawnPickupWithSeed(pickupVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
550
508
|
return spawnPickup(pickupVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
551
509
|
}
|
|
552
510
|
/** Helper function to spawn a `EntityType.PROJECTILE` (9). */
|
|
553
|
-
function spawnProjectile(projectileVariant, subType, positionOrGridIndex, velocity =
|
|
554
|
-
const entity =
|
|
511
|
+
export function spawnProjectile(projectileVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
512
|
+
const entity = spawn(EntityType.PROJECTILE, projectileVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
555
513
|
const projectile = entity.ToProjectile();
|
|
556
|
-
|
|
514
|
+
assertDefined(projectile, "Failed to spawn a projectile.");
|
|
557
515
|
return projectile;
|
|
558
516
|
}
|
|
559
517
|
/** Helper function to spawn a `EntityType.PROJECTILE` (9) with a specific seed. */
|
|
560
|
-
function spawnProjectileWithSeed(projectileVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
518
|
+
export function spawnProjectileWithSeed(projectileVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
561
519
|
return spawnProjectile(projectileVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
562
520
|
}
|
|
563
521
|
/** Helper function to spawn a `EntityType.SLOT` (6). */
|
|
564
|
-
function spawnSlot(slotVariant, subType, positionOrGridIndex, velocity =
|
|
565
|
-
return
|
|
522
|
+
export function spawnSlot(slotVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
523
|
+
return spawn(EntityType.SLOT, slotVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
566
524
|
}
|
|
567
525
|
/** Helper function to spawn a `EntityType.SLOT` (6) with a specific seed. */
|
|
568
|
-
function spawnSlotWithSeed(slotVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
526
|
+
export function spawnSlotWithSeed(slotVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
569
527
|
return spawnSlot(slotVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
570
528
|
}
|
|
571
529
|
/** Helper function to spawn a `EntityType.TEAR` (2). */
|
|
572
|
-
function spawnTear(tearVariant, subType, positionOrGridIndex, velocity =
|
|
573
|
-
const entity =
|
|
530
|
+
export function spawnTear(tearVariant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG) {
|
|
531
|
+
const entity = spawn(EntityType.TEAR, tearVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
574
532
|
const tear = entity.ToTear();
|
|
575
|
-
|
|
533
|
+
assertDefined(tear, "Failed to spawn a tear.");
|
|
576
534
|
return tear;
|
|
577
535
|
}
|
|
578
536
|
/** Helper function to spawn a `EntityType.EntityType` (2) with a specific seed. */
|
|
579
|
-
function spawnTearWithSeed(tearVariant, subType, positionOrGridIndex, seedOrRNG, velocity =
|
|
537
|
+
export function spawnTearWithSeed(tearVariant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner) {
|
|
580
538
|
return spawnTear(tearVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
|
|
581
539
|
}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSlot = isSlot;
|
|
4
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
1
|
+
import { EntityType } from "isaac-typescript-definitions";
|
|
5
2
|
/** For `EntityType.SLOT` (6). */
|
|
6
|
-
function isSlot(entity) {
|
|
7
|
-
return entity.Type ===
|
|
3
|
+
export function isSlot(entity) {
|
|
4
|
+
return entity.Type === EntityType.SLOT;
|
|
8
5
|
}
|
package/dist/functions/enums.js
CHANGED
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.getEnumNames = getEnumNames;
|
|
7
|
-
exports.getEnumValues = getEnumValues;
|
|
8
|
-
exports.getHighestEnumValue = getHighestEnumValue;
|
|
9
|
-
exports.getLowestEnumValue = getLowestEnumValue;
|
|
10
|
-
exports.getRandomEnumValue = getRandomEnumValue;
|
|
11
|
-
exports.interfaceSatisfiesEnum = interfaceSatisfiesEnum;
|
|
12
|
-
exports.isEnumValue = isEnumValue;
|
|
13
|
-
exports.validateCustomEnum = validateCustomEnum;
|
|
14
|
-
exports.validateEnumContiguous = validateEnumContiguous;
|
|
15
|
-
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
16
|
-
const array_1 = require("./array");
|
|
17
|
-
const sort_1 = require("./sort");
|
|
18
|
-
const types_1 = require("./types");
|
|
19
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
|
+
import { getRandomArrayElement } from "./array";
|
|
3
|
+
import { sortNormal } from "./sort";
|
|
4
|
+
import { isNumber, isString } from "./types";
|
|
5
|
+
import { assertDefined, iRange } from "./utils";
|
|
20
6
|
/**
|
|
21
7
|
* TypeScriptToLua will transpile TypeScript number enums to Lua tables that have a double mapping.
|
|
22
8
|
* Thus, when you iterate over them, you will get both the names of the enums and the values of the
|
|
@@ -35,7 +21,7 @@ const utils_1 = require("./utils");
|
|
|
35
21
|
* For a more in depth explanation, see:
|
|
36
22
|
* https://isaacscript.github.io/main/gotchas#iterating-over-enums
|
|
37
23
|
*/
|
|
38
|
-
function getEnumEntries(transpiledEnum) {
|
|
24
|
+
export function getEnumEntries(transpiledEnum) {
|
|
39
25
|
const entries = Object.entries(transpiledEnum);
|
|
40
26
|
const numberEntries = entries.filter(([_key, value]) => typeof value === "number");
|
|
41
27
|
// If there are no number values, then this must be a string enum, and no filtration is required.
|
|
@@ -62,12 +48,12 @@ function getEnumEntries(transpiledEnum) {
|
|
|
62
48
|
* For a more in depth explanation, see:
|
|
63
49
|
* https://isaacscript.github.io/main/gotchas#iterating-over-enums
|
|
64
50
|
*/
|
|
65
|
-
function getEnumKeys(transpiledEnum) {
|
|
51
|
+
export function getEnumKeys(transpiledEnum) {
|
|
66
52
|
const enumEntries = getEnumEntries(transpiledEnum);
|
|
67
53
|
return enumEntries.map(([key, _value]) => key);
|
|
68
54
|
}
|
|
69
55
|
/** Helper function to get the amount of entries inside of an enum. */
|
|
70
|
-
function getEnumLength(transpiledEnum) {
|
|
56
|
+
export function getEnumLength(transpiledEnum) {
|
|
71
57
|
const enumEntries = getEnumEntries(transpiledEnum);
|
|
72
58
|
return enumEntries.length;
|
|
73
59
|
}
|
|
@@ -88,10 +74,10 @@ function getEnumLength(transpiledEnum) {
|
|
|
88
74
|
* For a more in depth explanation, see:
|
|
89
75
|
* https://isaacscript.github.io/main/gotchas#iterating-over-enums
|
|
90
76
|
*/
|
|
91
|
-
function getEnumNames(transpiledEnum) {
|
|
77
|
+
export function getEnumNames(transpiledEnum) {
|
|
92
78
|
const enumNames = [];
|
|
93
79
|
for (const [key, _value] of pairs(transpiledEnum)) {
|
|
94
|
-
if (
|
|
80
|
+
if (isString(key)) {
|
|
95
81
|
enumNames.push(key);
|
|
96
82
|
}
|
|
97
83
|
}
|
|
@@ -116,7 +102,7 @@ function getEnumNames(transpiledEnum) {
|
|
|
116
102
|
* For a more in depth explanation, see:
|
|
117
103
|
* https://isaacscript.github.io/main/gotchas#iterating-over-enums
|
|
118
104
|
*/
|
|
119
|
-
function getEnumValues(transpiledEnum) {
|
|
105
|
+
export function getEnumValues(transpiledEnum) {
|
|
120
106
|
const enumEntries = getEnumEntries(transpiledEnum);
|
|
121
107
|
return enumEntries.map(([_key, value]) => value);
|
|
122
108
|
}
|
|
@@ -128,11 +114,11 @@ function getEnumValues(transpiledEnum) {
|
|
|
128
114
|
*
|
|
129
115
|
* Throws an error if the provided enum is empty.
|
|
130
116
|
*/
|
|
131
|
-
function getHighestEnumValue(transpiledEnum) {
|
|
117
|
+
export function getHighestEnumValue(transpiledEnum) {
|
|
132
118
|
const enumValues = getEnumValues(transpiledEnum);
|
|
133
|
-
const sortedValues = enumValues.toSorted(
|
|
119
|
+
const sortedValues = enumValues.toSorted(sortNormal);
|
|
134
120
|
const lastElement = sortedValues.at(-1);
|
|
135
|
-
|
|
121
|
+
assertDefined(lastElement, "Failed to get the highest value from an enum since the enum was empty.");
|
|
136
122
|
return lastElement;
|
|
137
123
|
}
|
|
138
124
|
/**
|
|
@@ -143,11 +129,11 @@ function getHighestEnumValue(transpiledEnum) {
|
|
|
143
129
|
*
|
|
144
130
|
* Throws an error if the provided enum is empty.
|
|
145
131
|
*/
|
|
146
|
-
function getLowestEnumValue(transpiledEnum) {
|
|
132
|
+
export function getLowestEnumValue(transpiledEnum) {
|
|
147
133
|
const enumValues = getEnumValues(transpiledEnum);
|
|
148
|
-
const sortedValues = enumValues.toSorted(
|
|
134
|
+
const sortedValues = enumValues.toSorted(sortNormal);
|
|
149
135
|
const firstElement = sortedValues[0];
|
|
150
|
-
|
|
136
|
+
assertDefined(firstElement, "Failed to get the lowest value from an enum since the enum was empty.");
|
|
151
137
|
return firstElement;
|
|
152
138
|
}
|
|
153
139
|
/**
|
|
@@ -161,9 +147,9 @@ function getLowestEnumValue(transpiledEnum) {
|
|
|
161
147
|
* a random seed.
|
|
162
148
|
* @param exceptions Optional. An array of elements to skip over if selected.
|
|
163
149
|
*/
|
|
164
|
-
function getRandomEnumValue(transpiledEnum, seedOrRNG, exceptions = []) {
|
|
150
|
+
export function getRandomEnumValue(transpiledEnum, seedOrRNG, exceptions = []) {
|
|
165
151
|
const enumValues = getEnumValues(transpiledEnum);
|
|
166
|
-
return
|
|
152
|
+
return getRandomArrayElement(enumValues, seedOrRNG, exceptions);
|
|
167
153
|
}
|
|
168
154
|
/**
|
|
169
155
|
* Helper function to validate that an interface contains all of the keys of an enum. You must
|
|
@@ -192,9 +178,9 @@ function getRandomEnumValue(transpiledEnum, seedOrRNG, exceptions = []) {
|
|
|
192
178
|
* run-time). If you are generating an object that will contain all of the keys of an enum, use the
|
|
193
179
|
* `satisfies` operator with the `Record` type instead.
|
|
194
180
|
*/
|
|
195
|
-
function interfaceSatisfiesEnum() { } // eslint-disable-line @typescript-eslint/no-empty-function
|
|
181
|
+
export function interfaceSatisfiesEnum() { } // eslint-disable-line @typescript-eslint/no-empty-function
|
|
196
182
|
/** Helper function to validate that a particular value exists inside of an enum. */
|
|
197
|
-
function isEnumValue(value, transpiledEnum) {
|
|
183
|
+
export function isEnumValue(value, transpiledEnum) {
|
|
198
184
|
const enumValues = getEnumValues(transpiledEnum);
|
|
199
185
|
return enumValues.includes(value);
|
|
200
186
|
}
|
|
@@ -213,7 +199,7 @@ function isEnumValue(value, transpiledEnum) {
|
|
|
213
199
|
* validateCustomEnum("EntityTypeCustom", EntityTypeCustom);
|
|
214
200
|
* ```
|
|
215
201
|
*/
|
|
216
|
-
function validateCustomEnum(transpiledEnumName, transpiledEnum) {
|
|
202
|
+
export function validateCustomEnum(transpiledEnumName, transpiledEnum) {
|
|
217
203
|
for (const [key, value] of getEnumEntries(transpiledEnum)) {
|
|
218
204
|
if (value === -1) {
|
|
219
205
|
error(`Failed to find the custom enum value: ${transpiledEnumName}.${key}`);
|
|
@@ -225,15 +211,15 @@ function validateCustomEnum(transpiledEnumName, transpiledEnum) {
|
|
|
225
211
|
*
|
|
226
212
|
* This is useful to automate checking large enums for typos.
|
|
227
213
|
*/
|
|
228
|
-
function validateEnumContiguous(transpiledEnumName, transpiledEnum) {
|
|
214
|
+
export function validateEnumContiguous(transpiledEnumName, transpiledEnum) {
|
|
229
215
|
const values = getEnumValues(transpiledEnum);
|
|
230
216
|
const lastValue = values.at(-1);
|
|
231
|
-
|
|
232
|
-
if (!
|
|
217
|
+
assertDefined(lastValue, "Failed to validate that an enum was contiguous, since the last value was undefined.");
|
|
218
|
+
if (!isNumber(lastValue)) {
|
|
233
219
|
error("Failed to validate that an enum was contiguous, since the last value was not a number.");
|
|
234
220
|
}
|
|
235
|
-
const valuesSet = new
|
|
236
|
-
for (const value of
|
|
221
|
+
const valuesSet = new ReadonlySet(values);
|
|
222
|
+
for (const value of iRange(lastValue)) {
|
|
237
223
|
if (!valuesSet.has(value)) {
|
|
238
224
|
error(`Failed to find a custom enum value of ${value} for: ${transpiledEnumName}`);
|
|
239
225
|
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Helper functions that have to do with external programs.
|
|
4
3
|
*
|
|
5
4
|
* @module
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
exports.rebirthItemTrackerRemoveCollectible = rebirthItemTrackerRemoveCollectible;
|
|
9
|
-
exports.rebirthItemTrackerWriteToFile = rebirthItemTrackerWriteToFile;
|
|
10
|
-
const collectibles_1 = require("./collectibles");
|
|
6
|
+
import { getCollectibleName } from "./collectibles";
|
|
11
7
|
const REBIRTH_ITEM_TRACKER_REMOVE_COLLECTIBLE_COMMAND = "REBIRTH_ITEM_TRACKER_REMOVE_COLLECTIBLE";
|
|
12
8
|
const REBIRTH_ITEM_TRACKER_WRITE_TO_FILE_COMMAND = "REBIRTH_ITEM_TRACKER_WRITE_TO_FILE";
|
|
13
9
|
/**
|
|
@@ -33,11 +29,11 @@ const REBIRTH_ITEM_TRACKER_WRITE_TO_FILE_COMMAND = "REBIRTH_ITEM_TRACKER_WRITE_T
|
|
|
33
29
|
*
|
|
34
30
|
* @see https://github.com/Rchardon/RebirthItemTracker
|
|
35
31
|
*/
|
|
36
|
-
function rebirthItemTrackerRemoveCollectible(...collectibleTypes) {
|
|
32
|
+
export function rebirthItemTrackerRemoveCollectible(...collectibleTypes) {
|
|
37
33
|
for (const collectibleType of collectibleTypes) {
|
|
38
34
|
// This cannot use the "log" function since the prefix will prevent the Rebirth Item Tracker
|
|
39
35
|
// from recognizing the message.
|
|
40
|
-
const collectibleName =
|
|
36
|
+
const collectibleName = getCollectibleName(collectibleType);
|
|
41
37
|
Isaac.DebugString(`${REBIRTH_ITEM_TRACKER_REMOVE_COLLECTIBLE_COMMAND} Removing collectible ${collectibleType} (${collectibleName}) on player 0 (Player)`);
|
|
42
38
|
}
|
|
43
39
|
}
|
|
@@ -51,7 +47,7 @@ function rebirthItemTrackerRemoveCollectible(...collectibleTypes) {
|
|
|
51
47
|
*
|
|
52
48
|
* @see https://github.com/Rchardon/RebirthItemTracker
|
|
53
49
|
*/
|
|
54
|
-
function rebirthItemTrackerWriteToFile(msg) {
|
|
50
|
+
export function rebirthItemTrackerWriteToFile(msg) {
|
|
55
51
|
// This cannot use the "log" function since the prefix will prevent the Rebirth Item Tracker from
|
|
56
52
|
// recognizing the message.
|
|
57
53
|
Isaac.DebugString(`${REBIRTH_ITEM_TRACKER_WRITE_TO_FILE_COMMAND} ${msg}`);
|