isaacscript-common 87.9.7 → 87.9.8
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/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.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/dist/functions/input.js
CHANGED
|
@@ -1,84 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
exports.isMoveActionPressedOnAnyInput = isMoveActionPressedOnAnyInput;
|
|
16
|
-
exports.isMoveActionTriggered = isMoveActionTriggered;
|
|
17
|
-
exports.isMoveActionTriggeredOnAnyInput = isMoveActionTriggeredOnAnyInput;
|
|
18
|
-
exports.isShootAction = isShootAction;
|
|
19
|
-
exports.isShootActionPressed = isShootActionPressed;
|
|
20
|
-
exports.isShootActionPressedOnAnyInput = isShootActionPressedOnAnyInput;
|
|
21
|
-
exports.isShootActionTriggered = isShootActionTriggered;
|
|
22
|
-
exports.isShootActionTriggeredOnAnyInput = isShootActionTriggeredOnAnyInput;
|
|
23
|
-
exports.keyboardToString = keyboardToString;
|
|
24
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
25
|
-
const cachedEnumValues_1 = require("../cachedEnumValues");
|
|
26
|
-
const keyboardToStringMap_1 = require("../maps/keyboardToStringMap");
|
|
27
|
-
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
28
|
-
const string_1 = require("./string");
|
|
29
|
-
exports.MODIFIER_KEYS = [
|
|
30
|
-
isaac_typescript_definitions_1.Keyboard.LEFT_SHIFT, // 340
|
|
31
|
-
isaac_typescript_definitions_1.Keyboard.LEFT_CONTROL, // 341
|
|
32
|
-
isaac_typescript_definitions_1.Keyboard.LEFT_ALT, // 342
|
|
33
|
-
isaac_typescript_definitions_1.Keyboard.LEFT_SUPER, // 343
|
|
34
|
-
isaac_typescript_definitions_1.Keyboard.RIGHT_SHIFT, // 344
|
|
35
|
-
isaac_typescript_definitions_1.Keyboard.RIGHT_CONTROL, // 345
|
|
36
|
-
isaac_typescript_definitions_1.Keyboard.RIGHT_ALT, // 346
|
|
37
|
-
isaac_typescript_definitions_1.Keyboard.RIGHT_SUPER, // 347
|
|
1
|
+
import { ButtonAction, Controller, ControllerIndex, Keyboard, } from "isaac-typescript-definitions";
|
|
2
|
+
import { CONTROLLER_INDEX_VALUES } from "../cachedEnumValues";
|
|
3
|
+
import { KEYBOARD_TO_STRING_MAP } from "../maps/keyboardToStringMap";
|
|
4
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
5
|
+
import { trimPrefix } from "./string";
|
|
6
|
+
export const MODIFIER_KEYS = [
|
|
7
|
+
Keyboard.LEFT_SHIFT, // 340
|
|
8
|
+
Keyboard.LEFT_CONTROL, // 341
|
|
9
|
+
Keyboard.LEFT_ALT, // 342
|
|
10
|
+
Keyboard.LEFT_SUPER, // 343
|
|
11
|
+
Keyboard.RIGHT_SHIFT, // 344
|
|
12
|
+
Keyboard.RIGHT_CONTROL, // 345
|
|
13
|
+
Keyboard.RIGHT_ALT, // 346
|
|
14
|
+
Keyboard.RIGHT_SUPER, // 347
|
|
38
15
|
];
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
16
|
+
export const MOVEMENT_BUTTON_ACTIONS = [
|
|
17
|
+
ButtonAction.LEFT, // 0
|
|
18
|
+
ButtonAction.RIGHT, // 1
|
|
19
|
+
ButtonAction.UP, // 2
|
|
20
|
+
ButtonAction.DOWN, // 3
|
|
44
21
|
];
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
22
|
+
export const MOVEMENT_BUTTON_ACTIONS_SET = new ReadonlySet(MOVEMENT_BUTTON_ACTIONS);
|
|
23
|
+
export const SHOOTING_BUTTON_ACTIONS = [
|
|
24
|
+
ButtonAction.SHOOT_LEFT, // 4
|
|
25
|
+
ButtonAction.SHOOT_RIGHT, // 5
|
|
26
|
+
ButtonAction.SHOOT_UP, // 6
|
|
27
|
+
ButtonAction.SHOOT_DOWN, // 7
|
|
51
28
|
];
|
|
52
|
-
|
|
29
|
+
export const SHOOTING_BUTTON_ACTIONS_SET = new ReadonlySet(SHOOTING_BUTTON_ACTIONS);
|
|
53
30
|
/**
|
|
54
31
|
* Helper function to get the enum name for the specified `Controller` value. Note that this will
|
|
55
32
|
* trim off the "BUTTON_" prefix.
|
|
56
33
|
*
|
|
57
34
|
* Returns undefined if the submitted controller value was not valid.
|
|
58
35
|
*/
|
|
59
|
-
function controllerToString(controller) {
|
|
60
|
-
const key =
|
|
36
|
+
export function controllerToString(controller) {
|
|
37
|
+
const key = Controller[controller];
|
|
61
38
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
62
39
|
if (key === undefined) {
|
|
63
40
|
return undefined;
|
|
64
41
|
}
|
|
65
|
-
return
|
|
42
|
+
return trimPrefix(key, "BUTTON_");
|
|
66
43
|
}
|
|
67
44
|
/**
|
|
68
45
|
* Helper function to get the movement actions that the specified `ControllerIndex` is currently
|
|
69
46
|
* pressing down. This returns an array because a player can be holding down more than one movement
|
|
70
47
|
* key at a time.
|
|
71
48
|
*/
|
|
72
|
-
function getMoveButtonActions(controllerIndex) {
|
|
73
|
-
return
|
|
49
|
+
export function getMoveButtonActions(controllerIndex) {
|
|
50
|
+
return MOVEMENT_BUTTON_ACTIONS.filter((buttonAction) => Input.IsActionPressed(buttonAction, controllerIndex));
|
|
74
51
|
}
|
|
75
52
|
/**
|
|
76
53
|
* Helper function to get the shooting actions that the specified `ControllerIndex` is currently
|
|
77
54
|
* pressing down. This returns an array because a player can be holding down more than one shooting
|
|
78
55
|
* key at a time.
|
|
79
56
|
*/
|
|
80
|
-
function getShootButtonActions(controllerIndex) {
|
|
81
|
-
return
|
|
57
|
+
export function getShootButtonActions(controllerIndex) {
|
|
58
|
+
return SHOOTING_BUTTON_ACTIONS.filter((buttonAction) => Input.IsActionPressed(buttonAction, controllerIndex));
|
|
82
59
|
}
|
|
83
60
|
/**
|
|
84
61
|
* Helper function to check if a player is pressing a specific button (i.e. holding it down).
|
|
@@ -86,7 +63,7 @@ function getShootButtonActions(controllerIndex) {
|
|
|
86
63
|
* This is a variadic version of `Input.IsActionPressed`, meaning that you can pass as many buttons
|
|
87
64
|
* as you want to check for. This function will return true if any of the buttons are pressed.
|
|
88
65
|
*/
|
|
89
|
-
function isActionPressed(controllerIndex, ...buttonActions) {
|
|
66
|
+
export function isActionPressed(controllerIndex, ...buttonActions) {
|
|
90
67
|
return buttonActions.some((buttonAction) => Input.IsActionPressed(buttonAction, controllerIndex));
|
|
91
68
|
}
|
|
92
69
|
/**
|
|
@@ -96,8 +73,8 @@ function isActionPressed(controllerIndex, ...buttonActions) {
|
|
|
96
73
|
* This function is variadic, meaning you can pass as many buttons as you want to check for. This
|
|
97
74
|
* function will return true if any of the buttons are pressed.
|
|
98
75
|
*/
|
|
99
|
-
function isActionPressedOnAnyInput(...buttonActions) {
|
|
100
|
-
return
|
|
76
|
+
export function isActionPressedOnAnyInput(...buttonActions) {
|
|
77
|
+
return CONTROLLER_INDEX_VALUES.some((controllerIndex) => isActionPressed(controllerIndex, ...buttonActions));
|
|
101
78
|
}
|
|
102
79
|
/**
|
|
103
80
|
* Helper function to check if a player is triggering a specific button (i.e. pressing and releasing
|
|
@@ -107,7 +84,7 @@ function isActionPressedOnAnyInput(...buttonActions) {
|
|
|
107
84
|
* buttons as you want to check for. This function will return true if any of the buttons are
|
|
108
85
|
* triggered.
|
|
109
86
|
*/
|
|
110
|
-
function isActionTriggered(controllerIndex, ...buttonActions) {
|
|
87
|
+
export function isActionTriggered(controllerIndex, ...buttonActions) {
|
|
111
88
|
return buttonActions.some((buttonAction) => Input.IsActionTriggered(buttonAction, controllerIndex));
|
|
112
89
|
}
|
|
113
90
|
/**
|
|
@@ -117,8 +94,8 @@ function isActionTriggered(controllerIndex, ...buttonActions) {
|
|
|
117
94
|
* This function is variadic, meaning you can pass as many buttons as you want to check for. This
|
|
118
95
|
* function will return true if any of the buttons are pressed.
|
|
119
96
|
*/
|
|
120
|
-
function isActionTriggeredOnAnyInput(...buttonActions) {
|
|
121
|
-
return
|
|
97
|
+
export function isActionTriggeredOnAnyInput(...buttonActions) {
|
|
98
|
+
return CONTROLLER_INDEX_VALUES.some((controllerIndex) => isActionTriggered(controllerIndex, ...buttonActions));
|
|
122
99
|
}
|
|
123
100
|
/**
|
|
124
101
|
* Helper function to see if a specific keyboard key is being held down by the player.
|
|
@@ -126,46 +103,46 @@ function isActionTriggeredOnAnyInput(...buttonActions) {
|
|
|
126
103
|
* This function is variadic, meaning you can pass as many keyboard values as you want to check for.
|
|
127
104
|
* This function will return true if any of the values are pressed.
|
|
128
105
|
*/
|
|
129
|
-
function isKeyboardPressed(...keys) {
|
|
130
|
-
return keys.some((key) => Input.IsButtonPressed(key,
|
|
106
|
+
export function isKeyboardPressed(...keys) {
|
|
107
|
+
return keys.some((key) => Input.IsButtonPressed(key, ControllerIndex.KEYBOARD));
|
|
131
108
|
}
|
|
132
109
|
/**
|
|
133
110
|
* Helper function to check if one or more modifier keys are being pressed down on the keyboard.
|
|
134
111
|
*
|
|
135
112
|
* A modifier key is defined as shift, control, alt, or Windows.
|
|
136
113
|
*/
|
|
137
|
-
function isModifierKeyPressed() {
|
|
138
|
-
return isKeyboardPressed(...
|
|
114
|
+
export function isModifierKeyPressed() {
|
|
115
|
+
return isKeyboardPressed(...MODIFIER_KEYS);
|
|
139
116
|
}
|
|
140
|
-
function isMoveAction(buttonAction) {
|
|
141
|
-
return
|
|
117
|
+
export function isMoveAction(buttonAction) {
|
|
118
|
+
return MOVEMENT_BUTTON_ACTIONS_SET.has(buttonAction);
|
|
142
119
|
}
|
|
143
|
-
function isMoveActionPressed(controllerIndex) {
|
|
144
|
-
return isActionPressed(controllerIndex, ...
|
|
120
|
+
export function isMoveActionPressed(controllerIndex) {
|
|
121
|
+
return isActionPressed(controllerIndex, ...MOVEMENT_BUTTON_ACTIONS);
|
|
145
122
|
}
|
|
146
|
-
function isMoveActionPressedOnAnyInput() {
|
|
147
|
-
return
|
|
123
|
+
export function isMoveActionPressedOnAnyInput() {
|
|
124
|
+
return MOVEMENT_BUTTON_ACTIONS.some((moveAction) => isActionPressedOnAnyInput(moveAction));
|
|
148
125
|
}
|
|
149
|
-
function isMoveActionTriggered(controllerIndex) {
|
|
150
|
-
return isActionTriggered(controllerIndex, ...
|
|
126
|
+
export function isMoveActionTriggered(controllerIndex) {
|
|
127
|
+
return isActionTriggered(controllerIndex, ...MOVEMENT_BUTTON_ACTIONS);
|
|
151
128
|
}
|
|
152
|
-
function isMoveActionTriggeredOnAnyInput() {
|
|
153
|
-
return
|
|
129
|
+
export function isMoveActionTriggeredOnAnyInput() {
|
|
130
|
+
return MOVEMENT_BUTTON_ACTIONS.some((moveAction) => isActionTriggeredOnAnyInput(moveAction));
|
|
154
131
|
}
|
|
155
|
-
function isShootAction(buttonAction) {
|
|
156
|
-
return
|
|
132
|
+
export function isShootAction(buttonAction) {
|
|
133
|
+
return SHOOTING_BUTTON_ACTIONS_SET.has(buttonAction);
|
|
157
134
|
}
|
|
158
|
-
function isShootActionPressed(controllerIndex) {
|
|
159
|
-
return isActionPressed(controllerIndex, ...
|
|
135
|
+
export function isShootActionPressed(controllerIndex) {
|
|
136
|
+
return isActionPressed(controllerIndex, ...SHOOTING_BUTTON_ACTIONS);
|
|
160
137
|
}
|
|
161
|
-
function isShootActionPressedOnAnyInput() {
|
|
162
|
-
return
|
|
138
|
+
export function isShootActionPressedOnAnyInput() {
|
|
139
|
+
return SHOOTING_BUTTON_ACTIONS.some((shootAction) => isActionPressedOnAnyInput(shootAction));
|
|
163
140
|
}
|
|
164
|
-
function isShootActionTriggered(controllerIndex) {
|
|
165
|
-
return isActionTriggered(controllerIndex, ...
|
|
141
|
+
export function isShootActionTriggered(controllerIndex) {
|
|
142
|
+
return isActionTriggered(controllerIndex, ...SHOOTING_BUTTON_ACTIONS);
|
|
166
143
|
}
|
|
167
|
-
function isShootActionTriggeredOnAnyInput() {
|
|
168
|
-
return
|
|
144
|
+
export function isShootActionTriggeredOnAnyInput() {
|
|
145
|
+
return SHOOTING_BUTTON_ACTIONS.some((shootAction) => isActionTriggeredOnAnyInput(shootAction));
|
|
169
146
|
}
|
|
170
147
|
/**
|
|
171
148
|
* Helper function to get the string that would be typed if someone pressed the corresponding key.
|
|
@@ -175,8 +152,8 @@ function isShootActionTriggeredOnAnyInput() {
|
|
|
175
152
|
* return undefined for e.g. `Keyboard.LEFT_SHIFT` (340). If all you want is the corresponding name
|
|
176
153
|
* of the key, then simply use the enum reverse mapping (e.g. `Keyboard[keyboard]`).
|
|
177
154
|
*/
|
|
178
|
-
function keyboardToString(keyboard, uppercase) {
|
|
179
|
-
const tuple =
|
|
155
|
+
export function keyboardToString(keyboard, uppercase) {
|
|
156
|
+
const tuple = KEYBOARD_TO_STRING_MAP.get(keyboard);
|
|
180
157
|
if (tuple === undefined) {
|
|
181
158
|
return undefined;
|
|
182
159
|
}
|
|
@@ -1,30 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getIsaacAPIClassName = getIsaacAPIClassName;
|
|
4
|
-
exports.isaacAPIClassEquals = isaacAPIClassEquals;
|
|
5
|
-
exports.isBomb = isBomb;
|
|
6
|
-
exports.isDoor = isDoor;
|
|
7
|
-
exports.isEffect = isEffect;
|
|
8
|
-
exports.isEntity = isEntity;
|
|
9
|
-
exports.isFamiliar = isFamiliar;
|
|
10
|
-
exports.isGridEntity = isGridEntity;
|
|
11
|
-
exports.isIsaacAPIClass = isIsaacAPIClass;
|
|
12
|
-
exports.isIsaacAPIClassOfType = isIsaacAPIClassOfType;
|
|
13
|
-
exports.isKnife = isKnife;
|
|
14
|
-
exports.isLaser = isLaser;
|
|
15
|
-
exports.isNPC = isNPC;
|
|
16
|
-
exports.isPickup = isPickup;
|
|
17
|
-
exports.isPit = isPit;
|
|
18
|
-
exports.isPlayer = isPlayer;
|
|
19
|
-
exports.isPoop = isPoop;
|
|
20
|
-
exports.isPressurePlate = isPressurePlate;
|
|
21
|
-
exports.isProjectile = isProjectile;
|
|
22
|
-
exports.isRock = isRock;
|
|
23
|
-
exports.isSpikes = isSpikes;
|
|
24
|
-
exports.isTear = isTear;
|
|
25
|
-
exports.isTNT = isTNT;
|
|
26
|
-
const string_1 = require("./string");
|
|
27
|
-
const types_1 = require("./types");
|
|
1
|
+
import { trimPrefix } from "./string";
|
|
2
|
+
import { isString, isUserdata } from "./types";
|
|
28
3
|
/**
|
|
29
4
|
* Helper function to get the name of a class from the Isaac API. This is contained within the
|
|
30
5
|
* "__type" metatable key.
|
|
@@ -38,8 +13,8 @@ const types_1 = require("./types");
|
|
|
38
13
|
* prepended with "const ". This function will always strip this prefix, if it exists. For example,
|
|
39
14
|
* the class name returned for "const Vector" will be "Vector".
|
|
40
15
|
*/
|
|
41
|
-
function getIsaacAPIClassName(object) {
|
|
42
|
-
if (!
|
|
16
|
+
export function getIsaacAPIClassName(object) {
|
|
17
|
+
if (!isUserdata(object)) {
|
|
43
18
|
return undefined;
|
|
44
19
|
}
|
|
45
20
|
const metatable = getmetatable(object);
|
|
@@ -47,45 +22,45 @@ function getIsaacAPIClassName(object) {
|
|
|
47
22
|
return undefined;
|
|
48
23
|
}
|
|
49
24
|
const classType = metatable.get("__type");
|
|
50
|
-
if (!
|
|
25
|
+
if (!isString(classType)) {
|
|
51
26
|
return undefined;
|
|
52
27
|
}
|
|
53
|
-
return
|
|
28
|
+
return trimPrefix(classType, "const ");
|
|
54
29
|
}
|
|
55
30
|
/**
|
|
56
31
|
* Helper function to check if an instantiated Isaac API class is equal to another one of the same
|
|
57
32
|
* type. You must provide the list of keys to check for.
|
|
58
33
|
*/
|
|
59
|
-
function isaacAPIClassEquals(object1, object2, keys) {
|
|
34
|
+
export function isaacAPIClassEquals(object1, object2, keys) {
|
|
60
35
|
const table1 = object1;
|
|
61
36
|
const table2 = object2;
|
|
62
37
|
return keys.every((key) => table1.get(key) === table2.get(key));
|
|
63
38
|
}
|
|
64
39
|
/** Helper function to detect if a variable is of type `EntityBomb`. */
|
|
65
|
-
function isBomb(variable) {
|
|
40
|
+
export function isBomb(variable) {
|
|
66
41
|
return getIsaacAPIClassName(variable) === "EntityBomb";
|
|
67
42
|
}
|
|
68
43
|
/** Helper function to detect if a variable is of type `GridEntityDoor`. */
|
|
69
|
-
function isDoor(variable) {
|
|
44
|
+
export function isDoor(variable) {
|
|
70
45
|
return getIsaacAPIClassName(variable) === "GridEntityDoor";
|
|
71
46
|
}
|
|
72
47
|
/** Helper function to detect if a variable is of type `EntityEffect`. */
|
|
73
|
-
function isEffect(variable) {
|
|
48
|
+
export function isEffect(variable) {
|
|
74
49
|
return getIsaacAPIClassName(variable) === "EntityEffect";
|
|
75
50
|
}
|
|
76
51
|
/**
|
|
77
52
|
* Helper function to detect if a variable is of type `Entity`. This will return false for child
|
|
78
53
|
* classes such as `EntityPlayer` or `EntityTear`.
|
|
79
54
|
*/
|
|
80
|
-
function isEntity(variable) {
|
|
55
|
+
export function isEntity(variable) {
|
|
81
56
|
return getIsaacAPIClassName(variable) === "Entity";
|
|
82
57
|
}
|
|
83
58
|
/** Helper function to detect if a variable is of type `EntityFamiliar`. */
|
|
84
|
-
function isFamiliar(variable) {
|
|
59
|
+
export function isFamiliar(variable) {
|
|
85
60
|
return getIsaacAPIClassName(variable) === "EntityEffect";
|
|
86
61
|
}
|
|
87
62
|
/** Helper function to detect if a variable is of type `GridEntity`. */
|
|
88
|
-
function isGridEntity(variable) {
|
|
63
|
+
export function isGridEntity(variable) {
|
|
89
64
|
return getIsaacAPIClassName(variable) === "GridEntity";
|
|
90
65
|
}
|
|
91
66
|
/**
|
|
@@ -93,64 +68,64 @@ function isGridEntity(variable) {
|
|
|
93
68
|
* from the Isaac API have a type of "userdata" in Lua with a metatable key of "__type" equal to the
|
|
94
69
|
* name of the class.)
|
|
95
70
|
*/
|
|
96
|
-
function isIsaacAPIClass(object) {
|
|
71
|
+
export function isIsaacAPIClass(object) {
|
|
97
72
|
const isaacAPIClassType = getIsaacAPIClassName(object);
|
|
98
73
|
return isaacAPIClassType !== undefined;
|
|
99
74
|
}
|
|
100
|
-
function isIsaacAPIClassOfType(object, classType) {
|
|
75
|
+
export function isIsaacAPIClassOfType(object, classType) {
|
|
101
76
|
const isaacAPIClassType = getIsaacAPIClassName(object);
|
|
102
77
|
return (isaacAPIClassType === classType
|
|
103
78
|
|| isaacAPIClassType === `const ${classType}`);
|
|
104
79
|
}
|
|
105
80
|
/** Helper function to detect if a variable is of type `EntityKnife`. */
|
|
106
|
-
function isKnife(variable) {
|
|
81
|
+
export function isKnife(variable) {
|
|
107
82
|
return getIsaacAPIClassName(variable) === "EntityKnife";
|
|
108
83
|
}
|
|
109
84
|
/** Helper function to detect if a variable is of type `EntityLaser`. */
|
|
110
|
-
function isLaser(variable) {
|
|
85
|
+
export function isLaser(variable) {
|
|
111
86
|
return getIsaacAPIClassName(variable) === "EntityLaser";
|
|
112
87
|
}
|
|
113
88
|
/** Helper function to detect if a variable is of type `EntityNPC`. */
|
|
114
|
-
function isNPC(variable) {
|
|
89
|
+
export function isNPC(variable) {
|
|
115
90
|
return getIsaacAPIClassName(variable) === "EntityNPC";
|
|
116
91
|
}
|
|
117
92
|
/** Helper function to detect if a variable is of type `EntityPickup`. */
|
|
118
|
-
function isPickup(variable) {
|
|
93
|
+
export function isPickup(variable) {
|
|
119
94
|
return getIsaacAPIClassName(variable) === "EntityPickup";
|
|
120
95
|
}
|
|
121
96
|
/** Helper function to detect if a variable is of type `GridEntityPit`. */
|
|
122
|
-
function isPit(variable) {
|
|
97
|
+
export function isPit(variable) {
|
|
123
98
|
return getIsaacAPIClassName(variable) === "GridEntityPit";
|
|
124
99
|
}
|
|
125
100
|
/** Helper function to detect if a variable is of type `EntityPlayer`. */
|
|
126
|
-
function isPlayer(variable) {
|
|
101
|
+
export function isPlayer(variable) {
|
|
127
102
|
return getIsaacAPIClassName(variable) === "EntityPlayer";
|
|
128
103
|
}
|
|
129
104
|
/** Helper function to detect if a variable is of type `GridEntityPoop`. */
|
|
130
|
-
function isPoop(variable) {
|
|
105
|
+
export function isPoop(variable) {
|
|
131
106
|
return getIsaacAPIClassName(variable) === "GridEntityPoop";
|
|
132
107
|
}
|
|
133
108
|
/** Helper function to detect if a variable is of type `GridEntityPressurePlate`. */
|
|
134
|
-
function isPressurePlate(variable) {
|
|
109
|
+
export function isPressurePlate(variable) {
|
|
135
110
|
return getIsaacAPIClassName(variable) === "GridEntityPressurePlate";
|
|
136
111
|
}
|
|
137
112
|
/** Helper function to detect if a variable is of type `EntityProjectile`. */
|
|
138
|
-
function isProjectile(variable) {
|
|
113
|
+
export function isProjectile(variable) {
|
|
139
114
|
return getIsaacAPIClassName(variable) === "EntityProjectile";
|
|
140
115
|
}
|
|
141
116
|
/** Helper function to detect if a variable is of type `GridEntityRock`. */
|
|
142
|
-
function isRock(variable) {
|
|
117
|
+
export function isRock(variable) {
|
|
143
118
|
return getIsaacAPIClassName(variable) === "GridEntityRock";
|
|
144
119
|
}
|
|
145
120
|
/** Helper function to detect if a variable is of type `GridEntitySpikes`. */
|
|
146
|
-
function isSpikes(variable) {
|
|
121
|
+
export function isSpikes(variable) {
|
|
147
122
|
return getIsaacAPIClassName(variable) === "GridEntitySpikes";
|
|
148
123
|
}
|
|
149
124
|
/** Helper function to detect if a variable is of type `EntityTear`. */
|
|
150
|
-
function isTear(variable) {
|
|
125
|
+
export function isTear(variable) {
|
|
151
126
|
return getIsaacAPIClassName(variable) === "EntityTear";
|
|
152
127
|
}
|
|
153
128
|
/** Helper function to detect if a variable is of type `GridEntityTNT`. */
|
|
154
|
-
function isTNT(variable) {
|
|
129
|
+
export function isTNT(variable) {
|
|
155
130
|
return getIsaacAPIClassName(variable) === "GridEntityTNT";
|
|
156
131
|
}
|
|
@@ -1,45 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.isCollectibleTypeInDefaultItemPool = isCollectibleTypeInDefaultItemPool;
|
|
8
|
-
exports.removeCollectibleFromPools = removeCollectibleFromPools;
|
|
9
|
-
exports.removeTrinketFromPools = removeTrinketFromPools;
|
|
10
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
11
|
-
const cachedEnumValues_1 = require("../cachedEnumValues");
|
|
12
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
13
|
-
const itemPoolTypeToItemPoolName_1 = require("../maps/itemPoolTypeToItemPoolName");
|
|
14
|
-
const itemPoolTypeToCollectibleTypesSet_1 = require("../objects/itemPoolTypeToCollectibleTypesSet");
|
|
15
|
-
const array_1 = require("./array");
|
|
1
|
+
import { ItemPoolType } from "isaac-typescript-definitions";
|
|
2
|
+
import { ITEM_POOL_TYPE_VALUES } from "../cachedEnumValues";
|
|
3
|
+
import { game } from "../core/cachedClasses";
|
|
4
|
+
import { ITEM_POOL_TYPE_TO_ITEM_POOL_NAME } from "../maps/itemPoolTypeToItemPoolName";
|
|
5
|
+
import { ITEM_POOL_TYPE_TO_COLLECTIBLE_TYPES_SET } from "../objects/itemPoolTypeToCollectibleTypesSet";
|
|
6
|
+
import { arrayRemove, getRandomArrayElement } from "./array";
|
|
16
7
|
const NORMAL_MODE_ONLY_ITEM_POOL_TYPES = [
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
8
|
+
ItemPoolType.TREASURE, // 0
|
|
9
|
+
ItemPoolType.BOSS, // 2
|
|
10
|
+
ItemPoolType.SHOP, // 1
|
|
11
|
+
ItemPoolType.DEVIL, // 3
|
|
12
|
+
ItemPoolType.ANGEL, // 4
|
|
13
|
+
ItemPoolType.CURSE, // 12
|
|
14
|
+
ItemPoolType.SECRET, // 5
|
|
24
15
|
];
|
|
25
16
|
const GREED_MODE_ONLY_ITEM_POOL_TYPES = [
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
ItemPoolType.GREED_TREASURE, // 16
|
|
18
|
+
ItemPoolType.GREED_BOSS, // 17
|
|
19
|
+
ItemPoolType.GREED_SHOP, // 18
|
|
20
|
+
ItemPoolType.GREED_DEVIL, // 19
|
|
21
|
+
ItemPoolType.GREED_ANGEL, // 20
|
|
22
|
+
ItemPoolType.GREED_CURSE, // 21
|
|
23
|
+
ItemPoolType.GREED_SECRET, // 22
|
|
33
24
|
];
|
|
34
|
-
const FAKE_ITEM_POOL_TYPES = [
|
|
35
|
-
const NORMAL_MODE_ITEM_POOL_TYPES =
|
|
36
|
-
const GREED_MODE_ITEM_POOL_TYPES =
|
|
25
|
+
const FAKE_ITEM_POOL_TYPES = [ItemPoolType.SHELL_GAME];
|
|
26
|
+
const NORMAL_MODE_ITEM_POOL_TYPES = arrayRemove(ITEM_POOL_TYPE_VALUES, ...GREED_MODE_ONLY_ITEM_POOL_TYPES, ...FAKE_ITEM_POOL_TYPES);
|
|
27
|
+
const GREED_MODE_ITEM_POOL_TYPES = arrayRemove(ITEM_POOL_TYPE_VALUES, ...NORMAL_MODE_ONLY_ITEM_POOL_TYPES, ...FAKE_ITEM_POOL_TYPES);
|
|
37
28
|
/**
|
|
38
29
|
* Helper function to get the collectibles that are in a particular item pool at the beginning of a
|
|
39
30
|
* vanilla run.
|
|
40
31
|
*/
|
|
41
|
-
function getDefaultCollectibleTypesInItemPool(itemPoolType) {
|
|
42
|
-
return
|
|
32
|
+
export function getDefaultCollectibleTypesInItemPool(itemPoolType) {
|
|
33
|
+
return ITEM_POOL_TYPE_TO_COLLECTIBLE_TYPES_SET[itemPoolType];
|
|
43
34
|
}
|
|
44
35
|
/**
|
|
45
36
|
* Helper function to get the item pools that a particular collectible starts in at the beginning of
|
|
@@ -48,13 +39,13 @@ function getDefaultCollectibleTypesInItemPool(itemPoolType) {
|
|
|
48
39
|
* This function will automatically account for Greed Mode. In other words, it will not return the
|
|
49
40
|
* "normal" item pools when playing in Greed Mode.
|
|
50
41
|
*/
|
|
51
|
-
function getDefaultItemPoolsForCollectibleType(collectibleType) {
|
|
42
|
+
export function getDefaultItemPoolsForCollectibleType(collectibleType) {
|
|
52
43
|
const collectibleItemPoolTypes = [];
|
|
53
|
-
const itemPoolTypes =
|
|
44
|
+
const itemPoolTypes = game.IsGreedMode()
|
|
54
45
|
? GREED_MODE_ITEM_POOL_TYPES
|
|
55
46
|
: NORMAL_MODE_ITEM_POOL_TYPES;
|
|
56
47
|
for (const itemPoolType of itemPoolTypes) {
|
|
57
|
-
const collectibleTypesSet =
|
|
48
|
+
const collectibleTypesSet = ITEM_POOL_TYPE_TO_COLLECTIBLE_TYPES_SET[itemPoolType];
|
|
58
49
|
if (collectibleTypesSet.has(collectibleType)) {
|
|
59
50
|
collectibleItemPoolTypes.push(itemPoolType);
|
|
60
51
|
}
|
|
@@ -64,8 +55,8 @@ function getDefaultItemPoolsForCollectibleType(collectibleType) {
|
|
|
64
55
|
/**
|
|
65
56
|
* Helper function to get the name for an item pool type as it appears in the "itempools.xml" file.
|
|
66
57
|
*/
|
|
67
|
-
function getItemPoolName(itemPoolType) {
|
|
68
|
-
return
|
|
58
|
+
export function getItemPoolName(itemPoolType) {
|
|
59
|
+
return ITEM_POOL_TYPE_TO_ITEM_POOL_NAME[itemPoolType];
|
|
69
60
|
}
|
|
70
61
|
/**
|
|
71
62
|
* Helper function to get a random item pool. This is not as simple as getting a random value from
|
|
@@ -79,18 +70,18 @@ function getItemPoolName(itemPoolType) {
|
|
|
79
70
|
* `RNG.Next` method will be called. If `undefined` is provided, it will default to
|
|
80
71
|
* a random seed.
|
|
81
72
|
*/
|
|
82
|
-
function getRandomItemPool(seedOrRNG) {
|
|
83
|
-
const itemPoolTypes =
|
|
73
|
+
export function getRandomItemPool(seedOrRNG) {
|
|
74
|
+
const itemPoolTypes = game.IsGreedMode()
|
|
84
75
|
? GREED_MODE_ITEM_POOL_TYPES
|
|
85
76
|
: NORMAL_MODE_ITEM_POOL_TYPES;
|
|
86
|
-
return
|
|
77
|
+
return getRandomArrayElement(itemPoolTypes, seedOrRNG);
|
|
87
78
|
}
|
|
88
79
|
/**
|
|
89
80
|
* Helper function to check if a particular collectibles is in a particular item pool at the
|
|
90
81
|
* beginning of a vanilla run.
|
|
91
82
|
*/
|
|
92
|
-
function isCollectibleTypeInDefaultItemPool(collectibleType, itemPoolType) {
|
|
93
|
-
const collectibleTypesSet =
|
|
83
|
+
export function isCollectibleTypeInDefaultItemPool(collectibleType, itemPoolType) {
|
|
84
|
+
const collectibleTypesSet = ITEM_POOL_TYPE_TO_COLLECTIBLE_TYPES_SET[itemPoolType];
|
|
94
85
|
return collectibleTypesSet.has(collectibleType);
|
|
95
86
|
}
|
|
96
87
|
/**
|
|
@@ -98,8 +89,8 @@ function isCollectibleTypeInDefaultItemPool(collectibleType, itemPoolType) {
|
|
|
98
89
|
*
|
|
99
90
|
* This function is variadic, meaning you can pass as many collectible types as you want to remove.
|
|
100
91
|
*/
|
|
101
|
-
function removeCollectibleFromPools(...collectibleTypes) {
|
|
102
|
-
const itemPool =
|
|
92
|
+
export function removeCollectibleFromPools(...collectibleTypes) {
|
|
93
|
+
const itemPool = game.GetItemPool();
|
|
103
94
|
for (const collectibleType of collectibleTypes) {
|
|
104
95
|
itemPool.RemoveCollectible(collectibleType);
|
|
105
96
|
}
|
|
@@ -109,8 +100,8 @@ function removeCollectibleFromPools(...collectibleTypes) {
|
|
|
109
100
|
*
|
|
110
101
|
* This function is variadic, meaning you can pass as many trinket types as you want to remove.
|
|
111
102
|
*/
|
|
112
|
-
function removeTrinketFromPools(...trinketTypes) {
|
|
113
|
-
const itemPool =
|
|
103
|
+
export function removeTrinketFromPools(...trinketTypes) {
|
|
104
|
+
const itemPool = game.GetItemPool();
|
|
114
105
|
for (const trinketType of trinketTypes) {
|
|
115
106
|
itemPool.RemoveTrinket(trinketType);
|
|
116
107
|
}
|
|
@@ -1,42 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.jsonDecode = jsonDecode;
|
|
37
|
-
exports.jsonEncode = jsonEncode;
|
|
38
|
-
const jsonLua = __importStar(require("../lib/jsonLua"));
|
|
39
|
-
const log_1 = require("./log");
|
|
1
|
+
import * as jsonLua from "../lib/jsonLua";
|
|
2
|
+
import { logError } from "./log";
|
|
40
3
|
/**
|
|
41
4
|
* Converts a JSON string to a Lua table.
|
|
42
5
|
*
|
|
@@ -48,11 +11,11 @@ const log_1 = require("./log");
|
|
|
48
11
|
* Under the hood, this uses a custom JSON parser that was measured to be 11.8 times faster than the
|
|
49
12
|
* vanilla JSON parser.
|
|
50
13
|
*/
|
|
51
|
-
function jsonDecode(jsonString) {
|
|
14
|
+
export function jsonDecode(jsonString) {
|
|
52
15
|
const [ok, luaTableOrErrMsg] = pcall(tryDecode, jsonString);
|
|
53
16
|
if (!ok) {
|
|
54
17
|
// Instead of throwing an error, continue execution of the callback.
|
|
55
|
-
|
|
18
|
+
logError(`Failed to convert the JSON string to a Lua table: ${jsonString}`);
|
|
56
19
|
return undefined;
|
|
57
20
|
}
|
|
58
21
|
return luaTableOrErrMsg;
|
|
@@ -67,7 +30,7 @@ function jsonDecode(jsonString) {
|
|
|
67
30
|
* Under the hood, this uses a custom JSON parser that was measured to be 11.8 times faster than the
|
|
68
31
|
* vanilla JSON parser.
|
|
69
32
|
*/
|
|
70
|
-
function jsonEncode(luaTable) {
|
|
33
|
+
export function jsonEncode(luaTable) {
|
|
71
34
|
const [ok, jsonStringOrErrMsg] = pcall(tryEncode, luaTable);
|
|
72
35
|
if (!ok) {
|
|
73
36
|
error(`Failed to convert the Lua table to JSON: ${jsonStringOrErrMsg}`);
|