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/color.js
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.isSerializedColor = isSerializedColor;
|
|
9
|
-
exports.serializeColor = serializeColor;
|
|
10
|
-
const SerializationBrand_1 = require("../enums/private/SerializationBrand");
|
|
11
|
-
const isaacAPIClass_1 = require("./isaacAPIClass");
|
|
12
|
-
const random_1 = require("./random");
|
|
13
|
-
const rng_1 = require("./rng");
|
|
14
|
-
const table_1 = require("./table");
|
|
15
|
-
const types_1 = require("./types");
|
|
16
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { SerializationBrand } from "../enums/private/SerializationBrand";
|
|
2
|
+
import { isaacAPIClassEquals, isIsaacAPIClassOfType } from "./isaacAPIClass";
|
|
3
|
+
import { getRandom } from "./random";
|
|
4
|
+
import { isRNG, newRNG } from "./rng";
|
|
5
|
+
import { copyUserdataValuesToTable, getNumbersFromTable, tableHasKeys, } from "./table";
|
|
6
|
+
import { isTable } from "./types";
|
|
7
|
+
import { assertDefined } from "./utils";
|
|
17
8
|
const OBJECT_NAME = "Color";
|
|
18
9
|
const KEYS = ["R", "G", "B", "A", "RO", "GO", "BO"];
|
|
19
|
-
function colorEquals(color1, color2) {
|
|
20
|
-
return
|
|
10
|
+
export function colorEquals(color1, color2) {
|
|
11
|
+
return isaacAPIClassEquals(color1, color2, KEYS);
|
|
21
12
|
}
|
|
22
13
|
/** Helper function to copy a `Color` Isaac API class. */
|
|
23
|
-
function copyColor(color) {
|
|
14
|
+
export function copyColor(color) {
|
|
24
15
|
if (!isColor(color)) {
|
|
25
16
|
error(`Failed to copy a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
|
|
26
17
|
}
|
|
@@ -30,14 +21,14 @@ function copyColor(color) {
|
|
|
30
21
|
* Helper function to convert a `SerializedColor` object to a normal `Color` object. (This is used
|
|
31
22
|
* by the save data manager when reading data from the "save#.dat" file.)
|
|
32
23
|
*/
|
|
33
|
-
function deserializeColor(color) {
|
|
34
|
-
if (!
|
|
24
|
+
export function deserializeColor(color) {
|
|
25
|
+
if (!isTable(color)) {
|
|
35
26
|
error(`Failed to deserialize a ${OBJECT_NAME} object since the provided object was not a Lua table.`);
|
|
36
27
|
}
|
|
37
|
-
const [r, g, b, a, ro, go, bo] =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
const [r, g, b, a, ro, go, bo] = getNumbersFromTable(color, OBJECT_NAME, ...KEYS);
|
|
29
|
+
assertDefined(r, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: R`);
|
|
30
|
+
assertDefined(g, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: G`);
|
|
31
|
+
assertDefined(b, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: B`);
|
|
41
32
|
return Color(r, g, b, a, ro, go, bo);
|
|
42
33
|
}
|
|
43
34
|
/**
|
|
@@ -51,37 +42,37 @@ function deserializeColor(color) {
|
|
|
51
42
|
* a random seed.
|
|
52
43
|
* @param alpha Optional. The alpha value to use. Default is 1.
|
|
53
44
|
*/
|
|
54
|
-
function getRandomColor(seedOrRNG, alpha = 1) {
|
|
55
|
-
const rng =
|
|
56
|
-
const r =
|
|
57
|
-
const g =
|
|
58
|
-
const b =
|
|
45
|
+
export function getRandomColor(seedOrRNG, alpha = 1) {
|
|
46
|
+
const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
|
|
47
|
+
const r = getRandom(rng);
|
|
48
|
+
const g = getRandom(rng);
|
|
49
|
+
const b = getRandom(rng);
|
|
59
50
|
return Color(r, g, b, alpha);
|
|
60
51
|
}
|
|
61
52
|
/** Helper function to check if something is an instantiated `Color` object. */
|
|
62
|
-
function isColor(object) {
|
|
63
|
-
return
|
|
53
|
+
export function isColor(object) {
|
|
54
|
+
return isIsaacAPIClassOfType(object, OBJECT_NAME);
|
|
64
55
|
}
|
|
65
56
|
/**
|
|
66
57
|
* Used to determine is the given table is a serialized `Color` object created by the `deepCopy`
|
|
67
58
|
* function.
|
|
68
59
|
*/
|
|
69
|
-
function isSerializedColor(object) {
|
|
70
|
-
if (!
|
|
60
|
+
export function isSerializedColor(object) {
|
|
61
|
+
if (!isTable(object)) {
|
|
71
62
|
return false;
|
|
72
63
|
}
|
|
73
|
-
return
|
|
64
|
+
return tableHasKeys(object, ...KEYS) && object.has(SerializationBrand.COLOR);
|
|
74
65
|
}
|
|
75
66
|
/**
|
|
76
67
|
* Helper function to convert a `Color` object to a `SerializedColor` object. (This is used by the
|
|
77
68
|
* save data manager when writing data from the "save#.dat" file.)
|
|
78
69
|
*/
|
|
79
|
-
function serializeColor(color) {
|
|
70
|
+
export function serializeColor(color) {
|
|
80
71
|
if (!isColor(color)) {
|
|
81
72
|
error(`Failed to serialize a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
|
|
82
73
|
}
|
|
83
74
|
const colorTable = new LuaMap();
|
|
84
|
-
|
|
85
|
-
colorTable.set(
|
|
75
|
+
copyUserdataValuesToTable(color, KEYS, colorTable);
|
|
76
|
+
colorTable.set(SerializationBrand.COLOR, "");
|
|
86
77
|
return colorTable;
|
|
87
78
|
}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isVanillaConsoleCommand = isVanillaConsoleCommand;
|
|
4
|
-
exports.printEnabled = printEnabled;
|
|
5
|
-
const consoleCommandsSet_1 = require("../sets/consoleCommandsSet");
|
|
1
|
+
import { CONSOLE_COMMANDS_SET } from "../sets/consoleCommandsSet";
|
|
6
2
|
/**
|
|
7
3
|
* Helper function to see if a particular command is a vanilla console command. This is useful
|
|
8
4
|
* because the `EXECUTE_CMD` callback will not fire for any vanilla commands.
|
|
9
5
|
*/
|
|
10
|
-
function isVanillaConsoleCommand(commandName) {
|
|
11
|
-
return
|
|
6
|
+
export function isVanillaConsoleCommand(commandName) {
|
|
7
|
+
return CONSOLE_COMMANDS_SET.has(commandName);
|
|
12
8
|
}
|
|
13
9
|
/** Helper function to print whether something was enabled or disabled to the in-game console. */
|
|
14
|
-
function printEnabled(enabled, description) {
|
|
10
|
+
export function printEnabled(enabled, description) {
|
|
15
11
|
const enabledText = enabled ? "Enabled" : "Disabled";
|
|
16
12
|
print(`${enabledText} ${description}.`);
|
|
17
13
|
}
|
package/dist/functions/curses.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getCurseIDByName = getCurseIDByName;
|
|
4
|
-
exports.hasCurse = hasCurse;
|
|
5
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
6
|
-
const flag_1 = require("./flag");
|
|
1
|
+
import { game } from "../core/cachedClasses";
|
|
2
|
+
import { hasFlag } from "./flag";
|
|
7
3
|
/**
|
|
8
4
|
* Helper function to get the actual bit flag for modded curses.
|
|
9
5
|
*
|
|
@@ -12,7 +8,7 @@ const flag_1 = require("./flag");
|
|
|
12
8
|
* Use this over the `Isaac.GetCurseIdByName` method because that will return an integer instead of
|
|
13
9
|
* a bit flag.
|
|
14
10
|
*/
|
|
15
|
-
function getCurseIDByName(name) {
|
|
11
|
+
export function getCurseIDByName(name) {
|
|
16
12
|
const curseID = Isaac.GetCurseIdByName(name);
|
|
17
13
|
if (curseID === -1) {
|
|
18
14
|
error(`Failed to get the curse ID corresponding to the curse name of "${curseID}". Does this name match what you put in the "content/curses.xml" file?`);
|
|
@@ -29,8 +25,8 @@ function getCurseIDByName(name) {
|
|
|
29
25
|
*
|
|
30
26
|
* Under the hood, this function uses the `Level.GetCurses` method.
|
|
31
27
|
*/
|
|
32
|
-
function hasCurse(...curses) {
|
|
33
|
-
const level =
|
|
28
|
+
export function hasCurse(...curses) {
|
|
29
|
+
const level = game.GetLevel();
|
|
34
30
|
const levelCurses = level.GetCurses();
|
|
35
|
-
return curses.some((curse) =>
|
|
31
|
+
return curses.some((curse) => hasFlag(levelCurses, curse));
|
|
36
32
|
}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getElapsedTimeSince = getElapsedTimeSince;
|
|
4
|
-
exports.getTime = getTime;
|
|
5
|
-
exports.getTraceback = getTraceback;
|
|
6
|
-
exports.isLuaDebugEnabled = isLuaDebugEnabled;
|
|
7
|
-
exports.traceback = traceback;
|
|
8
|
-
const log_1 = require("./log");
|
|
1
|
+
import { log } from "./log";
|
|
9
2
|
/**
|
|
10
3
|
* Helper function to get the amount of elapsed time for benchmarking / profiling purposes.
|
|
11
4
|
*
|
|
@@ -16,7 +9,7 @@ const log_1 = require("./log");
|
|
|
16
9
|
* Default is true. If set to false, the `Isaac.GetTime()` method will
|
|
17
10
|
* always be used.
|
|
18
11
|
*/
|
|
19
|
-
function getElapsedTimeSince(time, useSocketIfAvailable = true) {
|
|
12
|
+
export function getElapsedTimeSince(time, useSocketIfAvailable = true) {
|
|
20
13
|
return getTime(useSocketIfAvailable) - time;
|
|
21
14
|
}
|
|
22
15
|
/**
|
|
@@ -37,7 +30,7 @@ function getElapsedTimeSince(time, useSocketIfAvailable = true) {
|
|
|
37
30
|
* Default is true. If set to false, the `Isaac.GetTime()` method will
|
|
38
31
|
* always be used.
|
|
39
32
|
*/
|
|
40
|
-
function getTime(useSocketIfAvailable = true) {
|
|
33
|
+
export function getTime(useSocketIfAvailable = true) {
|
|
41
34
|
if (useSocketIfAvailable) {
|
|
42
35
|
if (SandboxGetTime !== undefined) {
|
|
43
36
|
return SandboxGetTime();
|
|
@@ -61,7 +54,7 @@ function getTime(useSocketIfAvailable = true) {
|
|
|
61
54
|
* This will only work if the `--luadebug` launch option is enabled. If it isn't, then a error
|
|
62
55
|
* string will be returned.
|
|
63
56
|
*/
|
|
64
|
-
function getTraceback() {
|
|
57
|
+
export function getTraceback() {
|
|
65
58
|
if (SandboxGetTraceback !== undefined) {
|
|
66
59
|
return SandboxGetTraceback();
|
|
67
60
|
}
|
|
@@ -88,7 +81,7 @@ function getTraceback() {
|
|
|
88
81
|
* "--luadebug" flag is really turned on. If checking for this case is needed, check for the
|
|
89
82
|
* presence of the `sandboxGetTraceback` function.
|
|
90
83
|
*/
|
|
91
|
-
function isLuaDebugEnabled() {
|
|
84
|
+
export function isLuaDebugEnabled() {
|
|
92
85
|
// "package" is not always defined like the Lua definitions imply.
|
|
93
86
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
94
87
|
return _G.package !== undefined;
|
|
@@ -100,7 +93,7 @@ function isLuaDebugEnabled() {
|
|
|
100
93
|
* This will only work if the `--luadebug` launch option is enabled. If it isn't, then a error
|
|
101
94
|
* string will be logged.
|
|
102
95
|
*/
|
|
103
|
-
function traceback() {
|
|
96
|
+
export function traceback() {
|
|
104
97
|
const tracebackOutput = getTraceback();
|
|
105
|
-
|
|
98
|
+
log(tracebackOutput);
|
|
106
99
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* If you decide to structure your mod as a set of feature classes, you can use decorators to
|
|
4
3
|
* automatically register callbacks.
|
|
@@ -20,14 +19,9 @@
|
|
|
20
19
|
*
|
|
21
20
|
* @module
|
|
22
21
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
exports.PriorityCallback = PriorityCallback;
|
|
27
|
-
exports.PriorityCallbackCustom = PriorityCallbackCustom;
|
|
28
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
29
|
-
const ModFeature_1 = require("../classes/ModFeature");
|
|
30
|
-
const tstlClass_1 = require("./tstlClass");
|
|
22
|
+
import { CallbackPriority } from "isaac-typescript-definitions";
|
|
23
|
+
import { MOD_FEATURE_CALLBACKS_KEY, MOD_FEATURE_CUSTOM_CALLBACKS_KEY, } from "../classes/ModFeature";
|
|
24
|
+
import { getTSTLClassName } from "./tstlClass";
|
|
31
25
|
/**
|
|
32
26
|
* A decorator function that signifies that the decorated class method should be automatically
|
|
33
27
|
* registered with `Mod.AddCallback`.
|
|
@@ -37,8 +31,8 @@ const tstlClass_1 = require("./tstlClass");
|
|
|
37
31
|
*/
|
|
38
32
|
// We tell TypeDoc to ignore this function because it generates a bunch of spam.
|
|
39
33
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
40
|
-
function Callback(modCallback, ...optionalArgs) {
|
|
41
|
-
return PriorityCallback(modCallback,
|
|
34
|
+
export function Callback(modCallback, ...optionalArgs) {
|
|
35
|
+
return PriorityCallback(modCallback, CallbackPriority.DEFAULT, ...optionalArgs);
|
|
42
36
|
}
|
|
43
37
|
/**
|
|
44
38
|
* A decorator function that signifies that the decorated class method should be automatically
|
|
@@ -49,8 +43,8 @@ function Callback(modCallback, ...optionalArgs) {
|
|
|
49
43
|
*/
|
|
50
44
|
// We tell TypeDoc to ignore this function because it generates a bunch of spam.
|
|
51
45
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
52
|
-
function CallbackCustom(modCallbackCustom, ...optionalArgs) {
|
|
53
|
-
return PriorityCallbackCustom(modCallbackCustom,
|
|
46
|
+
export function CallbackCustom(modCallbackCustom, ...optionalArgs) {
|
|
47
|
+
return PriorityCallbackCustom(modCallbackCustom, CallbackPriority.DEFAULT, ...optionalArgs);
|
|
54
48
|
}
|
|
55
49
|
/**
|
|
56
50
|
* A decorator function that signifies that the decorated class method should be automatically
|
|
@@ -60,7 +54,7 @@ function CallbackCustom(modCallbackCustom, ...optionalArgs) {
|
|
|
60
54
|
* @ignore
|
|
61
55
|
*/
|
|
62
56
|
// We tell TypeDoc to ignore this function because it generates a bunch of spam.
|
|
63
|
-
function PriorityCallback(modCallback, priority, ...optionalArgs) {
|
|
57
|
+
export function PriorityCallback(modCallback, priority, ...optionalArgs) {
|
|
64
58
|
return (target, propertyKey, _descriptor) => {
|
|
65
59
|
// First, prepare the arguments for the `Mod.AddPriorityCallback` method.
|
|
66
60
|
const methodName = propertyKey;
|
|
@@ -72,10 +66,10 @@ function PriorityCallback(modCallback, priority, ...optionalArgs) {
|
|
|
72
66
|
// arguments for later.
|
|
73
67
|
const constructor = target.constructor;
|
|
74
68
|
if (constructor === undefined) {
|
|
75
|
-
const tstlClassName =
|
|
69
|
+
const tstlClassName = getTSTLClassName(target) ?? "Unknown";
|
|
76
70
|
error(`Failed to get the constructor for class "${tstlClassName}". Did you decorate a static method? You can only decorate non-static class methods, because the "Mod" object is not present before the class is instantiated.`);
|
|
77
71
|
}
|
|
78
|
-
const key =
|
|
72
|
+
const key = MOD_FEATURE_CALLBACKS_KEY;
|
|
79
73
|
let callbackTuples = constructor[key];
|
|
80
74
|
if (callbackTuples === undefined) {
|
|
81
75
|
callbackTuples = [];
|
|
@@ -92,7 +86,7 @@ function PriorityCallback(modCallback, priority, ...optionalArgs) {
|
|
|
92
86
|
* @ignore
|
|
93
87
|
*/
|
|
94
88
|
// We tell TypeDoc to ignore this function because it generates a bunch of spam.
|
|
95
|
-
function PriorityCallbackCustom(modCallbackCustom, priority, ...optionalArgs) {
|
|
89
|
+
export function PriorityCallbackCustom(modCallbackCustom, priority, ...optionalArgs) {
|
|
96
90
|
return (target, propertyKey, _descriptor) => {
|
|
97
91
|
// First, prepare the arguments for the `Mod.AddCallbackCustom` method.
|
|
98
92
|
const methodName = propertyKey;
|
|
@@ -104,10 +98,10 @@ function PriorityCallbackCustom(modCallbackCustom, priority, ...optionalArgs) {
|
|
|
104
98
|
// arguments for later.
|
|
105
99
|
const constructor = target.constructor;
|
|
106
100
|
if (constructor === undefined) {
|
|
107
|
-
const tstlClassName =
|
|
101
|
+
const tstlClassName = getTSTLClassName(target) ?? "Unknown";
|
|
108
102
|
error(`Failed to get the constructor for class "${tstlClassName}". Did you decorate a static method? You can only decorate non-static class methods, because the "Mod" object is not present before the class is instantiated.`);
|
|
109
103
|
}
|
|
110
|
-
const key =
|
|
104
|
+
const key = MOD_FEATURE_CUSTOM_CALLBACKS_KEY;
|
|
111
105
|
let callbackTuples = constructor[key];
|
|
112
106
|
if (callbackTuples === undefined) {
|
|
113
107
|
callbackTuples = [];
|