isaacscript-common 87.4.0 → 87.5.1
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/README.md +1 -1
- package/dist/callbackClasses.d.ts +6 -6
- package/dist/callbackClasses.d.ts.map +1 -1
- package/dist/callbackClasses.js +14 -14
- package/dist/callbackClasses.lua +159 -300
- package/dist/callbacks.js +18 -9
- package/dist/classes/DefaultMap.d.ts +5 -1
- package/dist/classes/DefaultMap.d.ts.map +1 -1
- package/dist/classes/ModFeature.js +3 -3
- package/dist/classes/ModUpgraded.d.ts.map +1 -1
- package/dist/classes/ModUpgraded.js +2 -4
- package/dist/classes/callbacks/InputActionFilter.d.ts +2 -2
- package/dist/classes/callbacks/InputActionFilter.d.ts.map +1 -1
- package/dist/classes/callbacks/InputActionPlayer.d.ts +2 -2
- package/dist/classes/callbacks/InputActionPlayer.d.ts.map +1 -1
- package/dist/classes/callbacks/PostCollectibleEmpty.d.ts +2 -2
- package/dist/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -1
- package/dist/classes/callbacks/PostCollectibleEmpty.js +1 -3
- package/dist/classes/callbacks/PostCustomRevive.d.ts +2 -4
- package/dist/classes/callbacks/PostCustomRevive.d.ts.map +1 -1
- package/dist/classes/callbacks/PostDiceRoomActivated.d.ts +2 -3
- package/dist/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -1
- package/dist/classes/callbacks/PostGridEntityCollision.d.ts +2 -4
- package/dist/classes/callbacks/PostGridEntityCollision.d.ts.map +1 -1
- package/dist/classes/callbacks/PostGridEntityCustomCollision.d.ts +2 -4
- package/dist/classes/callbacks/PostGridEntityCustomCollision.d.ts.map +1 -1
- package/dist/classes/callbacks/PostGridEntityCustomRemove.d.ts +2 -3
- package/dist/classes/callbacks/PostGridEntityCustomRemove.d.ts.map +1 -1
- package/dist/classes/callbacks/PostGridEntityRemove.d.ts +2 -2
- package/dist/classes/callbacks/PostGridEntityRemove.d.ts.map +1 -1
- package/dist/classes/callbacks/PostItemDischarge.d.ts +2 -2
- package/dist/classes/callbacks/PostItemDischarge.d.ts.map +1 -1
- package/dist/classes/callbacks/PostItemDischarge.js +3 -6
- package/dist/classes/callbacks/PostKeyboardChanged.d.ts +2 -1
- package/dist/classes/callbacks/PostKeyboardChanged.d.ts.map +1 -1
- package/dist/classes/callbacks/PostNewRoomEarly.js +1 -1
- package/dist/classes/callbacks/PostPickupSelectionFilter.d.ts +2 -2
- package/dist/classes/callbacks/PostPickupSelectionFilter.d.ts.map +1 -1
- package/dist/classes/callbacks/PostPlayerChangeType.js +1 -1
- package/dist/classes/callbacks/PostPurchase.d.ts +2 -4
- package/dist/classes/callbacks/PostPurchase.d.ts.map +1 -1
- package/dist/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -1
- package/dist/classes/callbacks/PostTransformation.d.ts +2 -2
- package/dist/classes/callbacks/PostTransformation.d.ts.map +1 -1
- package/dist/classes/callbacks/PostTransformation.js +1 -3
- package/dist/classes/callbacks/PostTrinketBreak.d.ts.map +1 -1
- package/dist/classes/callbacks/PostTrinketBreak.js +1 -3
- package/dist/classes/callbacks/PreEntitySpawnFilter.d.ts +2 -2
- package/dist/classes/callbacks/PreEntitySpawnFilter.d.ts.map +1 -1
- package/dist/classes/callbacks/PreNewLevel.d.ts.map +1 -1
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.d.ts +2 -2
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/CustomGridEntities.d.ts +1 -1
- package/dist/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +4 -6
- package/dist/classes/features/callbackLogic/ItemPickupDetection.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +6 -2
- package/dist/classes/features/callbackLogic/ItemPickupDetection.lua +6 -1
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts +0 -1
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +4 -4
- package/dist/classes/features/other/CustomPickups.d.ts.map +1 -1
- package/dist/classes/features/other/CustomPickups.js +1 -0
- package/dist/classes/features/other/CustomStages.js +19 -9
- package/dist/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
- package/dist/classes/features/other/CustomTrapdoors.js +23 -17
- package/dist/classes/features/other/CustomTrapdoors.lua +14 -7
- package/dist/classes/features/other/DebugDisplay.d.ts +0 -18
- package/dist/classes/features/other/DebugDisplay.d.ts.map +1 -1
- package/dist/classes/features/other/DeployJSONRoom.d.ts +0 -2
- package/dist/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
- package/dist/classes/features/other/DeployJSONRoom.js +2 -0
- package/dist/classes/features/other/EdenStartingStatsHealth.d.ts +1 -1
- package/dist/classes/features/other/EdenStartingStatsHealth.d.ts.map +1 -1
- package/dist/classes/features/other/ExtraConsoleCommands.d.ts +14 -10
- package/dist/classes/features/other/ExtraConsoleCommands.d.ts.map +1 -1
- package/dist/classes/features/other/ExtraConsoleCommands.js +31 -17
- package/dist/classes/features/other/ExtraConsoleCommands.lua +2 -1
- package/dist/classes/features/other/FlyingDetection.d.ts +0 -1
- package/dist/classes/features/other/FlyingDetection.d.ts.map +1 -1
- package/dist/classes/features/other/ForgottenSwitch.d.ts +0 -1
- package/dist/classes/features/other/ForgottenSwitch.d.ts.map +1 -1
- package/dist/classes/features/other/ModdedElementDetection.js +4 -4
- package/dist/classes/features/other/ModdedElementSets.d.ts +2 -2
- package/dist/classes/features/other/ModdedElementSets.d.ts.map +1 -1
- package/dist/classes/features/other/ModdedElementSets.js +1 -1
- package/dist/classes/features/other/PickupIndexCreation.d.ts +0 -1
- package/dist/classes/features/other/PickupIndexCreation.d.ts.map +1 -1
- package/dist/classes/features/other/PickupIndexCreation.js +2 -3
- package/dist/classes/features/other/PickupIndexCreation.lua +10 -10
- package/dist/classes/features/other/PonyDetection.d.ts +0 -1
- package/dist/classes/features/other/PonyDetection.d.ts.map +1 -1
- package/dist/classes/features/other/PreventChildEntities.d.ts +0 -1
- package/dist/classes/features/other/PreventChildEntities.d.ts.map +1 -1
- package/dist/classes/features/other/RoomClearFrame.d.ts +0 -1
- package/dist/classes/features/other/RoomClearFrame.d.ts.map +1 -1
- package/dist/classes/features/other/RoomHistory.d.ts +0 -1
- package/dist/classes/features/other/RoomHistory.d.ts.map +1 -1
- package/dist/classes/features/other/RunInNFrames.js +2 -2
- package/dist/classes/features/other/SaveDataManager.js +1 -1
- package/dist/classes/features/other/SpawnRockAltRewards.d.ts +0 -4
- package/dist/classes/features/other/SpawnRockAltRewards.d.ts.map +1 -1
- package/dist/classes/features/other/TaintedLazarusPlayers.d.ts +0 -1
- package/dist/classes/features/other/TaintedLazarusPlayers.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/backdrop.js +2 -3
- package/dist/classes/features/other/customStages/constants.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/gridEntities.d.ts +0 -1
- package/dist/classes/features/other/customStages/gridEntities.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/gridEntities.js +5 -6
- package/dist/classes/features/other/customStages/shadows.js +1 -2
- package/dist/classes/features/other/customStages/streakText.js +3 -4
- package/dist/classes/features/other/customStages/utils.d.ts +0 -2
- package/dist/classes/features/other/customStages/utils.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/utils.js +2 -3
- package/dist/classes/features/other/customStages/v.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/versusScreen.js +2 -3
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/utils.d.ts +0 -2
- package/dist/classes/features/other/debugDisplay/utils.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/utils.js +2 -3
- package/dist/classes/features/other/extraConsoleCommands/commands.js +147 -150
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +8 -9
- package/dist/classes/features/other/saveDataManager/constants.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.d.ts +0 -1
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +2 -3
- package/dist/classes/features/other/saveDataManager/loadFromDisk.d.ts +0 -2
- package/dist/classes/features/other/saveDataManager/loadFromDisk.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +5 -2
- package/dist/classes/features/other/saveDataManager/loadFromDisk.lua +3 -0
- package/dist/classes/features/other/saveDataManager/restoreDefaults.d.ts +0 -1
- package/dist/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +3 -4
- package/dist/classes/features/other/saveDataManager/saveToDisk.d.ts +0 -2
- package/dist/classes/features/other/saveDataManager/saveToDisk.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +1 -2
- package/dist/classes/private/CustomCallback.d.ts.map +1 -1
- package/dist/core/cachedClasses.d.ts +0 -5
- package/dist/core/cachedClasses.d.ts.map +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/constantsVanilla.js +4 -4
- package/dist/core/upgradeMod.d.ts +0 -2
- package/dist/core/upgradeMod.d.ts.map +1 -1
- package/dist/core/upgradeMod.js +1 -2
- package/dist/decorators.js +2 -2
- package/dist/enums/ModCallbackCustom.d.ts +5 -4
- package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
- package/dist/enums/ModCallbackCustom.js +5 -4
- package/dist/enums/private/GridEntityTypeCustom.d.ts.map +1 -1
- package/dist/features.js +1 -2
- package/dist/functions/ambush.js +1 -2
- package/dist/functions/array.d.ts +5 -8
- package/dist/functions/array.d.ts.map +1 -1
- package/dist/functions/array.js +55 -55
- package/dist/functions/array.lua +2 -2
- package/dist/functions/arrayLua.d.ts +1 -1
- package/dist/functions/arrayLua.d.ts.map +1 -1
- package/dist/functions/arrayLua.js +7 -8
- package/dist/functions/benchmark.d.ts +0 -1
- package/dist/functions/benchmark.d.ts.map +1 -1
- package/dist/functions/benchmark.js +1 -2
- package/dist/functions/bitSet128.d.ts +0 -1
- package/dist/functions/bitSet128.d.ts.map +1 -1
- package/dist/functions/bitSet128.js +5 -6
- package/dist/functions/bitwise.d.ts +0 -4
- package/dist/functions/bitwise.d.ts.map +1 -1
- package/dist/functions/bitwise.js +7 -8
- package/dist/functions/bitwise.lua +3 -3
- package/dist/functions/bombs.d.ts +0 -1
- package/dist/functions/bombs.d.ts.map +1 -1
- package/dist/functions/bombs.js +1 -2
- package/dist/functions/bosses.d.ts.map +1 -1
- package/dist/functions/bosses.js +17 -17
- package/dist/functions/cards.js +16 -17
- package/dist/functions/challenges.js +9 -10
- package/dist/functions/characters.js +17 -18
- package/dist/functions/charge.d.ts.map +1 -1
- package/dist/functions/charge.js +10 -11
- package/dist/functions/charge.lua +1 -1
- package/dist/functions/chargeBar.d.ts +0 -2
- package/dist/functions/chargeBar.d.ts.map +1 -1
- package/dist/functions/chargeBar.js +2 -3
- package/dist/functions/collectibleTag.js +2 -3
- package/dist/functions/collectibles.js +37 -38
- package/dist/functions/color.d.ts +0 -1
- package/dist/functions/color.d.ts.map +1 -1
- package/dist/functions/color.js +7 -8
- package/dist/functions/console.js +2 -3
- package/dist/functions/curses.js +2 -3
- package/dist/functions/debugFunctions.d.ts +0 -1
- package/dist/functions/debugFunctions.d.ts.map +1 -1
- package/dist/functions/debugFunctions.js +5 -6
- package/dist/functions/decorators.d.ts +4 -4
- package/dist/functions/decorators.d.ts.map +1 -1
- package/dist/functions/decorators.js +4 -5
- package/dist/functions/deepCopy.d.ts +0 -1
- package/dist/functions/deepCopy.d.ts.map +1 -1
- package/dist/functions/deepCopy.js +1 -4
- package/dist/functions/deepCopy.lua +0 -2
- package/dist/functions/deepCopyTests.js +5 -6
- package/dist/functions/dimensions.js +2 -3
- package/dist/functions/direction.js +6 -7
- package/dist/functions/doors.d.ts.map +1 -1
- package/dist/functions/doors.js +53 -49
- package/dist/functions/easing.js +30 -31
- package/dist/functions/effects.d.ts +0 -2
- package/dist/functions/effects.d.ts.map +1 -1
- package/dist/functions/effects.js +2 -2
- package/dist/functions/emptyRoom.js +2 -3
- package/dist/functions/entities.d.ts +3 -4
- package/dist/functions/entities.d.ts.map +1 -1
- package/dist/functions/entities.js +32 -33
- package/dist/functions/entities.lua +4 -11
- package/dist/functions/entitiesSpecific.js +40 -41
- package/dist/functions/entityTypes.d.ts +0 -1
- package/dist/functions/entityTypes.d.ts.map +1 -1
- package/dist/functions/entityTypes.js +1 -2
- package/dist/functions/enums.d.ts +1 -6
- package/dist/functions/enums.d.ts.map +1 -1
- package/dist/functions/enums.js +12 -13
- package/dist/functions/external.js +2 -3
- package/dist/functions/familiars.js +6 -7
- package/dist/functions/flag.d.ts +1 -1
- package/dist/functions/flag.d.ts.map +1 -1
- package/dist/functions/flag.js +7 -8
- package/dist/functions/frames.d.ts +0 -1
- package/dist/functions/frames.d.ts.map +1 -1
- package/dist/functions/frames.js +18 -19
- package/dist/functions/globals.d.ts +0 -1
- package/dist/functions/globals.d.ts.map +1 -1
- package/dist/functions/globals.js +23 -15
- package/dist/functions/gridEntities.d.ts.map +1 -1
- package/dist/functions/gridEntities.js +51 -39
- package/dist/functions/gridEntities.lua +9 -5
- package/dist/functions/gridEntitiesSpecific.js +38 -39
- package/dist/functions/gridIndex.js +1 -2
- package/dist/functions/hash.js +1 -2
- package/dist/functions/hex.d.ts +0 -2
- package/dist/functions/hex.d.ts.map +1 -1
- package/dist/functions/hex.js +2 -3
- package/dist/functions/input.js +21 -21
- package/dist/functions/isaacAPIClass.d.ts +0 -20
- package/dist/functions/isaacAPIClass.d.ts.map +1 -1
- package/dist/functions/isaacAPIClass.js +23 -24
- package/dist/functions/itemPool.js +7 -8
- package/dist/functions/jsonHelpers.d.ts +4 -5
- package/dist/functions/jsonHelpers.d.ts.map +1 -1
- package/dist/functions/jsonHelpers.js +23 -14
- package/dist/functions/jsonHelpers.lua +4 -4
- package/dist/functions/jsonRoom.js +5 -6
- package/dist/functions/kColor.d.ts +0 -1
- package/dist/functions/kColor.d.ts.map +1 -1
- package/dist/functions/kColor.js +7 -8
- package/dist/functions/language.js +1 -2
- package/dist/functions/level.js +4 -5
- package/dist/functions/levelGrid.d.ts.map +1 -1
- package/dist/functions/levelGrid.js +27 -32
- package/dist/functions/log.js +4 -5
- package/dist/functions/logEntities.d.ts.map +1 -1
- package/dist/functions/logEntities.js +11 -9
- package/dist/functions/logMisc.d.ts +1 -2
- package/dist/functions/logMisc.d.ts.map +1 -1
- package/dist/functions/logMisc.js +35 -48
- package/dist/functions/logMisc.lua +3 -3
- package/dist/functions/map.d.ts +0 -2
- package/dist/functions/map.d.ts.map +1 -1
- package/dist/functions/map.js +12 -13
- package/dist/functions/math.js +13 -14
- package/dist/functions/merge.d.ts +0 -1
- package/dist/functions/merge.d.ts.map +1 -1
- package/dist/functions/merge.js +2 -3
- package/dist/functions/mergeTests.js +1 -2
- package/dist/functions/minimap.d.ts.map +1 -1
- package/dist/functions/minimap.js +12 -17
- package/dist/functions/modFeatures.js +1 -2
- package/dist/functions/newArray.d.ts +0 -1
- package/dist/functions/newArray.d.ts.map +1 -1
- package/dist/functions/newArray.js +2 -3
- package/dist/functions/nextStage.d.ts.map +1 -1
- package/dist/functions/nextStage.js +6 -3
- package/dist/functions/npcDataStructures.d.ts +0 -2
- package/dist/functions/npcDataStructures.d.ts.map +1 -1
- package/dist/functions/npcDataStructures.js +14 -15
- package/dist/functions/npcs.d.ts.map +1 -1
- package/dist/functions/npcs.js +9 -7
- package/dist/functions/pickupVariants.d.ts +0 -1
- package/dist/functions/pickupVariants.d.ts.map +1 -1
- package/dist/functions/pickupVariants.js +11 -12
- package/dist/functions/pickups.js +14 -15
- package/dist/functions/pickupsSpecific.js +40 -41
- package/dist/functions/pills.js +18 -19
- package/dist/functions/playerCenter.d.ts +0 -1
- package/dist/functions/playerCenter.d.ts.map +1 -1
- package/dist/functions/playerCenter.js +1 -2
- package/dist/functions/playerCollectibles.d.ts.map +1 -1
- package/dist/functions/playerCollectibles.js +19 -22
- package/dist/functions/playerCollectibles.lua +9 -9
- package/dist/functions/playerDataStructures.d.ts +0 -1
- package/dist/functions/playerDataStructures.d.ts.map +1 -1
- package/dist/functions/playerDataStructures.js +14 -15
- package/dist/functions/playerEffects.js +5 -6
- package/dist/functions/playerHealth.d.ts +0 -2
- package/dist/functions/playerHealth.d.ts.map +1 -1
- package/dist/functions/playerHealth.js +20 -21
- package/dist/functions/playerHealth.lua +26 -26
- package/dist/functions/playerIndex.d.ts +0 -3
- package/dist/functions/playerIndex.d.ts.map +1 -1
- package/dist/functions/playerIndex.js +9 -10
- package/dist/functions/playerTrinkets.js +10 -11
- package/dist/functions/players.d.ts +2 -0
- package/dist/functions/players.d.ts.map +1 -1
- package/dist/functions/players.js +39 -38
- package/dist/functions/players.lua +2 -0
- package/dist/functions/pocketItems.js +8 -9
- package/dist/functions/positionVelocity.d.ts +0 -4
- package/dist/functions/positionVelocity.d.ts.map +1 -1
- package/dist/functions/positionVelocity.js +11 -20
- package/dist/functions/positionVelocity.lua +4 -4
- package/dist/functions/pressurePlate.js +1 -2
- package/dist/functions/projectiles.js +2 -3
- package/dist/functions/random.d.ts +0 -3
- package/dist/functions/random.d.ts.map +1 -1
- package/dist/functions/random.js +3 -4
- package/dist/functions/readOnly.d.ts +0 -4
- package/dist/functions/readOnly.d.ts.map +1 -1
- package/dist/functions/readOnly.js +3 -4
- package/dist/functions/render.d.ts +0 -3
- package/dist/functions/render.d.ts.map +1 -1
- package/dist/functions/render.js +3 -4
- package/dist/functions/revive.d.ts +0 -3
- package/dist/functions/revive.d.ts.map +1 -1
- package/dist/functions/revive.js +5 -6
- package/dist/functions/rng.d.ts +0 -1
- package/dist/functions/rng.d.ts.map +1 -1
- package/dist/functions/rng.js +15 -15
- package/dist/functions/rockAlt.d.ts +0 -1
- package/dist/functions/rockAlt.d.ts.map +1 -1
- package/dist/functions/rockAlt.js +2 -3
- package/dist/functions/roomData.d.ts.map +1 -1
- package/dist/functions/roomData.js +15 -18
- package/dist/functions/roomGrid.js +6 -7
- package/dist/functions/roomShape.js +14 -15
- package/dist/functions/roomShapeWalls.js +2 -3
- package/dist/functions/roomTransition.js +2 -3
- package/dist/functions/rooms.d.ts.map +1 -1
- package/dist/functions/rooms.js +77 -64
- package/dist/functions/rooms.lua +2 -2
- package/dist/functions/run.js +8 -9
- package/dist/functions/seeds.d.ts +0 -1
- package/dist/functions/seeds.d.ts.map +1 -1
- package/dist/functions/seeds.js +2 -3
- package/dist/functions/serialization.js +5 -6
- package/dist/functions/set.d.ts +0 -2
- package/dist/functions/set.d.ts.map +1 -1
- package/dist/functions/set.js +22 -23
- package/dist/functions/slots.js +2 -3
- package/dist/functions/sort.d.ts.map +1 -1
- package/dist/functions/sort.js +6 -7
- package/dist/functions/sound.d.ts.map +1 -1
- package/dist/functions/sound.js +4 -9
- package/dist/functions/spawnCollectible.d.ts.map +1 -1
- package/dist/functions/spawnCollectible.js +4 -7
- package/dist/functions/sprites.d.ts +0 -3
- package/dist/functions/sprites.d.ts.map +1 -1
- package/dist/functions/sprites.js +6 -7
- package/dist/functions/stage.d.ts.map +1 -1
- package/dist/functions/stage.js +44 -53
- package/dist/functions/stage.lua +5 -5
- package/dist/functions/stats.js +4 -5
- package/dist/functions/storyBosses.js +2 -3
- package/dist/functions/string.d.ts +0 -1
- package/dist/functions/string.d.ts.map +1 -1
- package/dist/functions/string.js +12 -13
- package/dist/functions/table.d.ts +0 -1
- package/dist/functions/table.d.ts.map +1 -1
- package/dist/functions/table.js +8 -9
- package/dist/functions/tears.js +6 -7
- package/dist/functions/transformations.js +5 -6
- package/dist/functions/trinketGive.js +5 -6
- package/dist/functions/trinkets.d.ts.map +1 -1
- package/dist/functions/trinkets.js +14 -17
- package/dist/functions/tstlClass.d.ts +2 -3
- package/dist/functions/tstlClass.d.ts.map +1 -1
- package/dist/functions/tstlClass.js +9 -10
- package/dist/functions/tstlClass.lua +2 -2
- package/dist/functions/types.d.ts +15 -17
- package/dist/functions/types.d.ts.map +1 -1
- package/dist/functions/types.js +38 -39
- package/dist/functions/types.lua +14 -14
- package/dist/functions/ui.d.ts +0 -3
- package/dist/functions/ui.d.ts.map +1 -1
- package/dist/functions/ui.js +13 -14
- package/dist/functions/utils.d.ts +0 -1
- package/dist/functions/utils.d.ts.map +1 -1
- package/dist/functions/utils.js +11 -12
- package/dist/functions/vector.d.ts +0 -1
- package/dist/functions/vector.d.ts.map +1 -1
- package/dist/functions/vector.js +11 -12
- package/dist/functions/versusScreen.js +4 -5
- package/dist/functions/weighted.d.ts +0 -3
- package/dist/functions/weighted.d.ts.map +1 -1
- package/dist/functions/weighted.js +2 -3
- package/dist/index.d.ts +58 -58
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -58
- package/dist/index.lua +443 -11
- package/dist/index.rollup.d.ts +86 -69
- package/dist/indexLua.d.ts +58 -58
- package/dist/indexLua.d.ts.map +1 -1
- package/dist/indexLua.js +4 -58
- package/dist/indexLua.lua +443 -11
- package/dist/interfaces/ChargeBarSprites.d.ts +0 -2
- package/dist/interfaces/ChargeBarSprites.d.ts.map +1 -1
- package/dist/interfaces/Corner.d.ts +0 -2
- package/dist/interfaces/Corner.d.ts.map +1 -1
- package/dist/interfaces/SaveData.d.ts +0 -1
- package/dist/interfaces/SaveData.d.ts.map +1 -1
- package/dist/interfaces/TSTLClassMetatable.d.ts +0 -4
- package/dist/interfaces/TSTLClassMetatable.d.ts.map +1 -1
- package/dist/interfaces/private/AddCallbackParametersCustom.d.ts +5 -3
- package/dist/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -1
- package/dist/interfaces/private/ModUpgradedInterface.d.ts +0 -1
- package/dist/interfaces/private/ModUpgradedInterface.d.ts.map +1 -1
- package/dist/isaacscript-common.lua +1561 -1186
- package/dist/lib/jsonLua.js +2 -2
- package/dist/lualib_bundle.lua +107 -38
- package/dist/objects/LRoomShapeToRectangles.js +1 -1
- package/dist/objects/colors.d.ts +0 -1
- package/dist/objects/colors.d.ts.map +1 -1
- package/dist/objects/directionToVector.d.ts +0 -1
- package/dist/objects/directionToVector.d.ts.map +1 -1
- package/dist/objects/doorSlotFlagToDoorSlot.d.ts +9 -2
- package/dist/objects/doorSlotFlagToDoorSlot.d.ts.map +1 -1
- package/dist/objects/doorSlotToDoorSlotFlag.d.ts +0 -1
- package/dist/objects/doorSlotToDoorSlotFlag.d.ts.map +1 -1
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +17 -7
- package/dist/objects/kColors.d.ts +0 -1
- package/dist/objects/kColors.d.ts.map +1 -1
- package/dist/objects/roomShapeToBottomRightPosition.d.ts +0 -1
- package/dist/objects/roomShapeToBottomRightPosition.d.ts.map +1 -1
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +1 -1
- package/dist/objects/roomShapeToTopLeftPosition.d.ts +0 -1
- package/dist/objects/roomShapeToTopLeftPosition.d.ts.map +1 -1
- package/dist/objects/versusScreenBackgroundColors.d.ts +0 -1
- package/dist/objects/versusScreenBackgroundColors.d.ts.map +1 -1
- package/dist/objects/versusScreenDirtSpotColors.d.ts +0 -1
- package/dist/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
- package/dist/patchErrorFunctions.js +1 -2
- package/dist/serialization.js +1 -2
- package/dist/shaderCrashFix.d.ts +0 -1
- package/dist/shaderCrashFix.d.ts.map +1 -1
- package/dist/shaderCrashFix.js +1 -2
- package/dist/shouldFire.d.ts.map +1 -1
- package/dist/shouldFire.js +30 -30
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types/AddSubtract.d.ts +10 -2
- package/dist/types/AddSubtract.d.ts.map +1 -1
- package/dist/types/AnyEntity.d.ts +0 -11
- package/dist/types/AnyEntity.d.ts.map +1 -1
- package/dist/types/AnyGridEntity.d.ts +0 -8
- package/dist/types/AnyGridEntity.d.ts.map +1 -1
- package/dist/types/PickingUpItem.js +5 -6
- package/dist/types/PickupIndex.d.ts +0 -1
- package/dist/types/PickupIndex.d.ts.map +1 -1
- package/dist/types/PlayerIndex.d.ts +0 -1
- package/dist/types/PlayerIndex.d.ts.map +1 -1
- package/dist/types/ReadonlyMap.d.ts.map +1 -1
- package/dist/types/ReadonlySet.d.ts.map +1 -1
- package/dist/types/TSTLClass.d.ts +0 -1
- package/dist/types/TSTLClass.d.ts.map +1 -1
- package/dist/types/TupleWithLengthBetween.js +2 -2
- package/dist/types/TupleWithMaxLength.js +2 -2
- package/dist/types/WeightedArray.d.ts +0 -1
- package/dist/types/WeightedArray.d.ts.map +1 -1
- package/package.json +9 -2
- package/src/callbackClasses.ts +6 -6
- package/src/classes/DefaultMap.ts +5 -2
- package/src/classes/ModFeature.ts +3 -3
- package/src/classes/ModUpgraded.ts +2 -4
- package/src/classes/callbacks/PostCollectibleEmpty.ts +1 -3
- package/src/classes/callbacks/PostItemDischarge.ts +3 -6
- package/src/classes/callbacks/PostNPCStateChanged.ts +1 -1
- package/src/classes/callbacks/PostNewRoomEarly.ts +1 -1
- package/src/classes/callbacks/PostPlayerChangeType.ts +1 -1
- package/src/classes/callbacks/PostTransformation.ts +1 -3
- package/src/classes/callbacks/PostTrinketBreak.ts +1 -3
- package/src/classes/features/callbackLogic/CustomGridEntities.ts +1 -1
- package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +4 -6
- package/src/classes/features/callbackLogic/ItemPickupDetection.ts +6 -2
- package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +4 -4
- package/src/classes/features/other/CustomPickups.ts +1 -0
- package/src/classes/features/other/CustomStages.ts +2 -2
- package/src/classes/features/other/CustomTrapdoors.ts +23 -18
- package/src/classes/features/other/DeployJSONRoom.ts +2 -0
- package/src/classes/features/other/EdenStartingStatsHealth.ts +3 -1
- package/src/classes/features/other/ExtraConsoleCommands.ts +14 -10
- package/src/classes/features/other/ModdedElementDetection.ts +4 -4
- package/src/classes/features/other/ModdedElementSets.ts +3 -3
- package/src/classes/features/other/PickupIndexCreation.ts +2 -3
- package/src/classes/features/other/RunInNFrames.ts +2 -2
- package/src/classes/features/other/SaveDataManager.ts +1 -1
- package/src/classes/features/other/customStages/backdrop.ts +1 -1
- package/src/classes/features/other/extraConsoleCommands/commands.ts +7 -7
- package/src/classes/features/other/saveDataManager/loadFromDisk.ts +5 -0
- package/src/core/constants.ts +1 -1
- package/src/core/constantsVanilla.ts +4 -4
- package/src/enums/ModCallbackCustom.ts +5 -4
- package/src/functions/array.ts +33 -29
- package/src/functions/arrayLua.ts +1 -1
- package/src/functions/bosses.ts +2 -1
- package/src/functions/charge.ts +1 -2
- package/src/functions/decorators.ts +6 -9
- package/src/functions/deepCopy.ts +0 -4
- package/src/functions/deepCopyTests.ts +4 -4
- package/src/functions/doors.ts +5 -0
- package/src/functions/entities.ts +7 -14
- package/src/functions/enums.ts +4 -4
- package/src/functions/flag.ts +1 -1
- package/src/functions/globals.ts +2 -3
- package/src/functions/gridEntities.ts +19 -1
- package/src/functions/jsonHelpers.ts +7 -5
- package/src/functions/levelGrid.ts +3 -6
- package/src/functions/logEntities.ts +3 -0
- package/src/functions/logMisc.ts +9 -20
- package/src/functions/map.ts +4 -4
- package/src/functions/merge.ts +1 -1
- package/src/functions/minimap.ts +2 -6
- package/src/functions/newArray.ts +1 -1
- package/src/functions/nextStage.ts +4 -0
- package/src/functions/npcDataStructures.ts +5 -5
- package/src/functions/npcs.ts +3 -0
- package/src/functions/playerCollectibles.ts +1 -3
- package/src/functions/playerDataStructures.ts +5 -5
- package/src/functions/players.ts +2 -0
- package/src/functions/positionVelocity.ts +4 -12
- package/src/functions/rng.ts +4 -3
- package/src/functions/roomData.ts +1 -3
- package/src/functions/rooms.ts +16 -1
- package/src/functions/set.ts +8 -8
- package/src/functions/sort.ts +2 -2
- package/src/functions/sound.ts +2 -7
- package/src/functions/spawnCollectible.ts +1 -3
- package/src/functions/stage.ts +4 -14
- package/src/functions/trinkets.ts +1 -3
- package/src/functions/tstlClass.ts +2 -2
- package/src/functions/types.ts +16 -16
- package/src/index.ts +58 -58
- package/src/interfaces/SaveData.ts +2 -1
- package/src/interfaces/private/AddCallbackParametersCustom.ts +8 -3
- package/src/lib/jsonLua.js +2 -2
- package/src/objects/LRoomShapeToRectangles.ts +1 -1
- package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +1 -1
- package/src/shouldFire.ts +2 -1
- package/src/types/AddSubtract.ts +10 -2
- package/src/types/HasFunction.ts +1 -1
- package/src/types/Immutable.ts +1 -1
- package/src/types/TupleWithLengthBetween.ts +2 -2
- package/src/types/TupleWithMaxLength.ts +2 -2
package/src/functions/array.ts
CHANGED
|
@@ -35,7 +35,7 @@ export function arrayEquals<T>(
|
|
|
35
35
|
* matching element. If you want to remove all of the elements, use the `arrayRemoveAll` function
|
|
36
36
|
* instead.
|
|
37
37
|
*/
|
|
38
|
-
// eslint-disable-next-line
|
|
38
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
39
39
|
export function arrayRemove<T>(
|
|
40
40
|
originalArray: readonly T[],
|
|
41
41
|
...elementsToRemove: readonly T[]
|
|
@@ -63,7 +63,7 @@ export function arrayRemove<T>(
|
|
|
63
63
|
* element. If you want to only remove the first matching element, use the `arrayRemove` function
|
|
64
64
|
* instead.
|
|
65
65
|
*/
|
|
66
|
-
// eslint-disable-next-line
|
|
66
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
67
67
|
export function arrayRemoveAll<T>(
|
|
68
68
|
originalArray: readonly T[],
|
|
69
69
|
...elementsToRemove: readonly T[]
|
|
@@ -86,11 +86,12 @@ export function arrayRemoveAll<T>(
|
|
|
86
86
|
* @returns True if one or more elements were removed, false otherwise.
|
|
87
87
|
*/
|
|
88
88
|
export function arrayRemoveAllInPlace<T>(
|
|
89
|
-
// eslint-disable-next-line
|
|
89
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
90
90
|
array: T[],
|
|
91
91
|
...elementsToRemove: readonly T[]
|
|
92
92
|
): boolean {
|
|
93
93
|
let removedOneOrMoreElements = false;
|
|
94
|
+
|
|
94
95
|
for (const element of elementsToRemove) {
|
|
95
96
|
let index: number;
|
|
96
97
|
do {
|
|
@@ -117,9 +118,9 @@ export function arrayRemoveAllInPlace<T>(
|
|
|
117
118
|
*
|
|
118
119
|
* @returns The removed elements. This will be an empty array if no elements were removed.
|
|
119
120
|
*/
|
|
120
|
-
// eslint-disable-next-line
|
|
121
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
121
122
|
export function arrayRemoveInPlace<T>(
|
|
122
|
-
// eslint-disable-next-line
|
|
123
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
123
124
|
array: T[],
|
|
124
125
|
...elementsToRemove: readonly T[]
|
|
125
126
|
): T[] {
|
|
@@ -127,7 +128,7 @@ export function arrayRemoveInPlace<T>(
|
|
|
127
128
|
|
|
128
129
|
for (const element of elementsToRemove) {
|
|
129
130
|
const index = array.indexOf(element);
|
|
130
|
-
if (index
|
|
131
|
+
if (index !== -1) {
|
|
131
132
|
const removedElement = array.splice(index, 1);
|
|
132
133
|
removedElements.push(...removedElement);
|
|
133
134
|
}
|
|
@@ -143,7 +144,7 @@ export function arrayRemoveInPlace<T>(
|
|
|
143
144
|
*
|
|
144
145
|
* This function is variadic, meaning that you can specify N arguments to remove N elements.
|
|
145
146
|
*/
|
|
146
|
-
// eslint-disable-next-line
|
|
147
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
147
148
|
export function arrayRemoveIndex<T>(
|
|
148
149
|
originalArray: readonly T[],
|
|
149
150
|
...indexesToRemove: readonly int[]
|
|
@@ -168,9 +169,9 @@ export function arrayRemoveIndex<T>(
|
|
|
168
169
|
*
|
|
169
170
|
* @returns The removed elements. This will be an empty array if no elements were removed.
|
|
170
171
|
*/
|
|
171
|
-
// eslint-disable-next-line
|
|
172
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
172
173
|
export function arrayRemoveIndexInPlace<T>(
|
|
173
|
-
// eslint-disable-next-line
|
|
174
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
174
175
|
array: T[],
|
|
175
176
|
...indexesToRemove: readonly int[]
|
|
176
177
|
): T[] {
|
|
@@ -212,7 +213,7 @@ export function arrayToString(array: readonly unknown[]): string {
|
|
|
212
213
|
* This function is variadic, meaning that you can specify N arguments to combine N arrays. Note
|
|
213
214
|
* that this will only perform a shallow copy of the array elements.
|
|
214
215
|
*/
|
|
215
|
-
// eslint-disable-next-line
|
|
216
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
216
217
|
export function combineArrays<T>(...arrays: ReadonlyArray<readonly T[]>): T[] {
|
|
217
218
|
const elements: T[] = [];
|
|
218
219
|
for (const array of arrays) {
|
|
@@ -231,7 +232,7 @@ export function combineArrays<T>(...arrays: ReadonlyArray<readonly T[]>): T[] {
|
|
|
231
232
|
* @param numElements Optional. If specified, will only copy the first N elements. By default, the
|
|
232
233
|
* entire array will be copied.
|
|
233
234
|
*/
|
|
234
|
-
// eslint-disable-next-line
|
|
235
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
235
236
|
export function copyArray<T>(oldArray: readonly T[], numElements?: int): T[] {
|
|
236
237
|
// Using the spread operator was benchmarked to be faster than manually creating an array using
|
|
237
238
|
// the below algorithm.
|
|
@@ -249,9 +250,9 @@ export function copyArray<T>(oldArray: readonly T[], numElements?: int): T[] {
|
|
|
249
250
|
}
|
|
250
251
|
|
|
251
252
|
/** Helper function to remove all of the elements in an array in-place. */
|
|
252
|
-
// eslint-disable-next-line
|
|
253
|
-
export function emptyArray
|
|
254
|
-
array.splice(0
|
|
253
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
254
|
+
export function emptyArray(array: unknown[]): void {
|
|
255
|
+
array.splice(0);
|
|
255
256
|
}
|
|
256
257
|
|
|
257
258
|
/**
|
|
@@ -265,7 +266,7 @@ export function emptyArray<T>(array: T[]): void {
|
|
|
265
266
|
* This is named `filterMap` after the Rust function:
|
|
266
267
|
* https://doc.rust-lang.org/std/iter/struct.FilterMap.html
|
|
267
268
|
*/
|
|
268
|
-
// eslint-disable-next-line
|
|
269
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
269
270
|
export function filterMap<OldT, NewT>(
|
|
270
271
|
array: readonly OldT[],
|
|
271
272
|
func: (element: OldT) => NewT | undefined,
|
|
@@ -340,6 +341,7 @@ function addCombinations<T>(
|
|
|
340
341
|
n: number,
|
|
341
342
|
src: readonly T[],
|
|
342
343
|
got: readonly T[],
|
|
344
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
343
345
|
all: Array<readonly T[]>,
|
|
344
346
|
) {
|
|
345
347
|
if (n === 0) {
|
|
@@ -385,7 +387,7 @@ export function getArrayDuplicateElements<T extends number | string>(
|
|
|
385
387
|
* due to implementation details of TypeScriptToLua, this results in an array of 1 through N
|
|
386
388
|
* (instead of an array of 0 through N -1).
|
|
387
389
|
*/
|
|
388
|
-
export function getArrayIndexes
|
|
390
|
+
export function getArrayIndexes(array: readonly unknown[]): readonly int[] {
|
|
389
391
|
return eRange(array.length);
|
|
390
392
|
}
|
|
391
393
|
|
|
@@ -482,7 +484,7 @@ export function getRandomArrayElement<T>(
|
|
|
482
484
|
* @param exceptions Optional. An array of elements to skip over if selected.
|
|
483
485
|
*/
|
|
484
486
|
export function getRandomArrayElementAndRemove<T>(
|
|
485
|
-
// eslint-disable-next-line
|
|
487
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
486
488
|
array: T[],
|
|
487
489
|
seedOrRNG: Seed | RNG | undefined,
|
|
488
490
|
exceptions: readonly T[] = [],
|
|
@@ -509,8 +511,8 @@ export function getRandomArrayElementAndRemove<T>(
|
|
|
509
511
|
* @param exceptions Optional. An array of indexes that will be skipped over when getting the random
|
|
510
512
|
* index. Default is an empty array.
|
|
511
513
|
*/
|
|
512
|
-
export function getRandomArrayIndex
|
|
513
|
-
array: readonly
|
|
514
|
+
export function getRandomArrayIndex(
|
|
515
|
+
array: readonly unknown[],
|
|
514
516
|
seedOrRNG: Seed | RNG | undefined,
|
|
515
517
|
exceptions: readonly int[] = [],
|
|
516
518
|
): int {
|
|
@@ -596,9 +598,7 @@ export function isArray(
|
|
|
596
598
|
export function isArrayContiguous(array: readonly int[]): boolean {
|
|
597
599
|
let lastValue: int | undefined;
|
|
598
600
|
for (const element of array) {
|
|
599
|
-
|
|
600
|
-
lastValue = element - 1;
|
|
601
|
-
}
|
|
601
|
+
lastValue ??= element - 1;
|
|
602
602
|
|
|
603
603
|
if (element !== lastValue - 1) {
|
|
604
604
|
return false;
|
|
@@ -627,7 +627,7 @@ export function isArrayInArray<T>(
|
|
|
627
627
|
}
|
|
628
628
|
|
|
629
629
|
/** Helper function to set every element in an array to a specific value. */
|
|
630
|
-
// eslint-disable-next-line
|
|
630
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
631
631
|
export function setAllArrayElements<T>(array: T[], value: T): void {
|
|
632
632
|
for (let i = 0; i < array.length; i++) {
|
|
633
633
|
array[i] = value;
|
|
@@ -647,7 +647,7 @@ export function setAllArrayElements<T>(array: T[], value: T): void {
|
|
|
647
647
|
* `RNG.Next` method will be called. If `undefined` is provided, it will default to
|
|
648
648
|
* a random seed.
|
|
649
649
|
*/
|
|
650
|
-
// eslint-disable-next-line
|
|
650
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
651
651
|
export function shuffleArray<T>(
|
|
652
652
|
originalArray: readonly T[],
|
|
653
653
|
seedOrRNG: Seed | RNG | undefined,
|
|
@@ -671,9 +671,9 @@ export function shuffleArray<T>(
|
|
|
671
671
|
* `RNG.Next` method will be called. If `undefined` is provided, it will default to
|
|
672
672
|
* a random seed.
|
|
673
673
|
*/
|
|
674
|
-
export function shuffleArrayInPlace
|
|
675
|
-
// eslint-disable-next-line
|
|
676
|
-
array:
|
|
674
|
+
export function shuffleArrayInPlace(
|
|
675
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
676
|
+
array: unknown[],
|
|
677
677
|
seedOrRNG: Seed | RNG | undefined,
|
|
678
678
|
): void {
|
|
679
679
|
let currentIndex = array.length;
|
|
@@ -696,8 +696,12 @@ export function sumArray(array: readonly number[]): number {
|
|
|
696
696
|
/**
|
|
697
697
|
* Helper function to swap two different array elements. (The elements will be swapped in-place.)
|
|
698
698
|
*/
|
|
699
|
-
|
|
700
|
-
|
|
699
|
+
export function swapArrayElements(
|
|
700
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
701
|
+
array: unknown[],
|
|
702
|
+
i: number,
|
|
703
|
+
j: number,
|
|
704
|
+
): void {
|
|
701
705
|
const value1 = array[i]!; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
702
706
|
const value2 = array[j]!; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
703
707
|
|
|
@@ -66,7 +66,7 @@ export function forEach<T>(
|
|
|
66
66
|
*
|
|
67
67
|
* Internally, this just calls `Array.join`.
|
|
68
68
|
*/
|
|
69
|
-
export function join
|
|
69
|
+
export function join(array: readonly unknown[], separator: string): string {
|
|
70
70
|
return array.join(separator);
|
|
71
71
|
}
|
|
72
72
|
|
package/src/functions/bosses.ts
CHANGED
|
@@ -109,7 +109,7 @@ export function getBossID(): BossID | undefined {
|
|
|
109
109
|
|
|
110
110
|
const room = game.GetRoom();
|
|
111
111
|
|
|
112
|
-
// eslint-disable-next-line
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
113
113
|
const bossID = room.GetBossID();
|
|
114
114
|
if (bossID === 0) {
|
|
115
115
|
return undefined;
|
|
@@ -235,6 +235,7 @@ function getNumBossSegments(
|
|
|
235
235
|
|
|
236
236
|
// 69
|
|
237
237
|
case EntityType.LOKI: {
|
|
238
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
238
239
|
return variant === LokiVariant.LOKII ? 2 : 1;
|
|
239
240
|
}
|
|
240
241
|
|
package/src/functions/charge.ts
CHANGED
|
@@ -45,8 +45,7 @@ export function addCharge(
|
|
|
45
45
|
// add too many charges, it will grant orange "battery" charges, even if the player does not have
|
|
46
46
|
// The Battery.)
|
|
47
47
|
const chargesAwayFromMax = getChargesAwayFromMax(player, activeSlot);
|
|
48
|
-
const chargesToAdd =
|
|
49
|
-
numCharges > chargesAwayFromMax ? chargesAwayFromMax : numCharges;
|
|
48
|
+
const chargesToAdd = Math.min(numCharges, chargesAwayFromMax);
|
|
50
49
|
|
|
51
50
|
// The AAA Battery trinket might grant an additional charge.
|
|
52
51
|
const modifiedChargesToAdd = getChargesToAddWithAAAModifier(
|
|
@@ -85,13 +85,13 @@ export function PriorityCallback<T extends ModCallback>(
|
|
|
85
85
|
priority: CallbackPriority | int,
|
|
86
86
|
...optionalArgs: AllButFirst<AddCallbackParameters[T]>
|
|
87
87
|
) {
|
|
88
|
-
return <
|
|
89
|
-
target:
|
|
88
|
+
return <Fn extends AddCallbackParameters[T][0]>(
|
|
89
|
+
target: ModFeature,
|
|
90
90
|
propertyKey: string,
|
|
91
91
|
_descriptor: TypedPropertyDescriptor<Fn>,
|
|
92
92
|
): void => {
|
|
93
93
|
// First, prepare the arguments for the `Mod.AddPriorityCallback` method.
|
|
94
|
-
const methodName = propertyKey as keyof
|
|
94
|
+
const methodName = propertyKey as keyof ModFeature;
|
|
95
95
|
const method = target[methodName] as AddCallbackParameters[T][0];
|
|
96
96
|
const callbackTuple = [modCallback, priority, method, optionalArgs];
|
|
97
97
|
|
|
@@ -133,16 +133,13 @@ export function PriorityCallbackCustom<T extends ModCallbackCustom>(
|
|
|
133
133
|
priority: CallbackPriority | int,
|
|
134
134
|
...optionalArgs: AllButFirst<AddCallbackParametersCustom[T]>
|
|
135
135
|
) {
|
|
136
|
-
return <
|
|
137
|
-
|
|
138
|
-
Fn extends AddCallbackParametersCustom[T][0],
|
|
139
|
-
>(
|
|
140
|
-
target: Class,
|
|
136
|
+
return <Fn extends AddCallbackParametersCustom[T][0]>(
|
|
137
|
+
target: ModFeature,
|
|
141
138
|
propertyKey: string,
|
|
142
139
|
_descriptor: TypedPropertyDescriptor<Fn>,
|
|
143
140
|
): void => {
|
|
144
141
|
// First, prepare the arguments for the `Mod.AddCallbackCustom` method.
|
|
145
|
-
const methodName = propertyKey as keyof
|
|
142
|
+
const methodName = propertyKey as keyof ModFeature;
|
|
146
143
|
const method = target[methodName] as AddCallbackParametersCustom[T][0];
|
|
147
144
|
const callbackTuple = [modCallbackCustom, priority, method, optionalArgs];
|
|
148
145
|
|
|
@@ -203,21 +203,21 @@ function copiedObjectHasNoReferencesForArray() {
|
|
|
203
203
|
error("The copied object does not have an equal array.");
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
oldObject.abc[0]
|
|
206
|
+
oldObject.abc[0]!++; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
207
207
|
if (arrayEquals(oldObject.abc, newObject.abc)) {
|
|
208
208
|
error(
|
|
209
209
|
"The copied object has an equal array after a modification to the old array.",
|
|
210
210
|
);
|
|
211
211
|
}
|
|
212
|
-
oldObject.abc[0]
|
|
212
|
+
oldObject.abc[0]!--; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
213
213
|
|
|
214
|
-
newObject.abc[0]
|
|
214
|
+
newObject.abc[0]!++; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
215
215
|
if (arrayEquals(oldObject.abc, newObject.abc)) {
|
|
216
216
|
error(
|
|
217
217
|
"The copied object has an equal array after a modification to the new array.",
|
|
218
218
|
);
|
|
219
219
|
}
|
|
220
|
-
newObject.abc[0]
|
|
220
|
+
newObject.abc[0]!--; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
function copiedObjectHasChildObject() {
|
package/src/functions/doors.ts
CHANGED
|
@@ -377,6 +377,7 @@ export function isAngelRoomDoor(door: GridEntityDoor): boolean {
|
|
|
377
377
|
* Room.)
|
|
378
378
|
*/
|
|
379
379
|
export function isBlueWombDoor(door: GridEntityDoor): boolean {
|
|
380
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
380
381
|
return door.TargetRoomIndex === GridRoom.BLUE_WOMB;
|
|
381
382
|
}
|
|
382
383
|
|
|
@@ -385,6 +386,7 @@ export function isBlueWombDoor(door: GridEntityDoor): boolean {
|
|
|
385
386
|
* vanilla, the door will only appear in the Boss Room of the sixth floor.)
|
|
386
387
|
*/
|
|
387
388
|
export function isBossRushDoor(door: GridEntityDoor): boolean {
|
|
389
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
388
390
|
return door.TargetRoomIndex === GridRoom.BOSS_RUSH;
|
|
389
391
|
}
|
|
390
392
|
|
|
@@ -493,6 +495,7 @@ export function isHiddenSecretRoomDoor(door: GridEntityDoor): boolean {
|
|
|
493
495
|
* (In vanilla, the door will only appear in the starting room of The Chest / Dark Room.)
|
|
494
496
|
*/
|
|
495
497
|
export function isMegaSatanDoor(door: GridEntityDoor): boolean {
|
|
498
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
496
499
|
return door.TargetRoomIndex === GridRoom.MEGA_SATAN;
|
|
497
500
|
}
|
|
498
501
|
|
|
@@ -501,6 +504,7 @@ export function isMegaSatanDoor(door: GridEntityDoor): boolean {
|
|
|
501
504
|
* you to the Repentance floor.
|
|
502
505
|
*/
|
|
503
506
|
export function isRepentanceDoor(door: GridEntityDoor): boolean {
|
|
507
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
504
508
|
return door.TargetRoomIndex === GridRoom.SECRET_EXIT;
|
|
505
509
|
}
|
|
506
510
|
|
|
@@ -525,6 +529,7 @@ export function isSecretRoomDoor(door: GridEntityDoor): boolean {
|
|
|
525
529
|
* contains the portal to The Void. (In vanilla, the door will only appear in the Hush Boss Room.)
|
|
526
530
|
*/
|
|
527
531
|
export function isVoidDoor(door: GridEntityDoor): boolean {
|
|
532
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
528
533
|
return door.TargetRoomIndex === GridRoom.VOID;
|
|
529
534
|
}
|
|
530
535
|
|
|
@@ -425,6 +425,7 @@ export function isActiveEnemy(entity: Entity): boolean {
|
|
|
425
425
|
|
|
426
426
|
// 912
|
|
427
427
|
case EntityType.MOTHER: {
|
|
428
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
428
429
|
if (entity.Variant === MotherVariant.MOTHER_1) {
|
|
429
430
|
const npc = entity.ToNPC();
|
|
430
431
|
if (npc !== undefined && npc.State === NPCState.SPECIAL) {
|
|
@@ -441,7 +442,7 @@ export function isActiveEnemy(entity: Entity): boolean {
|
|
|
441
442
|
}
|
|
442
443
|
}
|
|
443
444
|
|
|
444
|
-
// eslint-disable-next-line
|
|
445
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
445
446
|
return entity.IsActiveEnemy(false);
|
|
446
447
|
}
|
|
447
448
|
|
|
@@ -640,8 +641,8 @@ export function setEntityRandomColor(entity: Entity): void {
|
|
|
640
641
|
}
|
|
641
642
|
|
|
642
643
|
/**
|
|
643
|
-
* Helper function to spawn an entity.
|
|
644
|
-
*
|
|
644
|
+
* Helper function to spawn an entity. Always use this instead of the `Isaac.Spawn` method, since
|
|
645
|
+
* using that method can crash the game.
|
|
645
646
|
*
|
|
646
647
|
* Also see the `spawnWithSeed` helper function.
|
|
647
648
|
*
|
|
@@ -653,7 +654,7 @@ export function setEntityRandomColor(entity: Entity): void {
|
|
|
653
654
|
* @param spawner Optional. The entity that will be the `SpawnerEntity`. Default is undefined.
|
|
654
655
|
* @param seedOrRNG Optional. The seed or RNG object to use to generate the `InitSeed` of the
|
|
655
656
|
* entity. Default is undefined, which will make the entity spawn with a random
|
|
656
|
-
* seed
|
|
657
|
+
* seed.
|
|
657
658
|
*/
|
|
658
659
|
export function spawn(
|
|
659
660
|
entityType: EntityType,
|
|
@@ -666,6 +667,7 @@ export function spawn(
|
|
|
666
667
|
): Entity {
|
|
667
668
|
const room = game.GetRoom();
|
|
668
669
|
|
|
670
|
+
// We do an explicit check to prevent run-time errors in Lua environments.
|
|
669
671
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
670
672
|
if (positionOrGridIndex === undefined) {
|
|
671
673
|
const entityID = getEntityIDFromConstituents(entityType, variant, subType);
|
|
@@ -678,16 +680,7 @@ export function spawn(
|
|
|
678
680
|
? positionOrGridIndex
|
|
679
681
|
: room.GetGridPosition(positionOrGridIndex);
|
|
680
682
|
|
|
681
|
-
|
|
682
|
-
return Isaac.Spawn(
|
|
683
|
-
entityType,
|
|
684
|
-
variant,
|
|
685
|
-
subType,
|
|
686
|
-
position,
|
|
687
|
-
velocity,
|
|
688
|
-
spawner,
|
|
689
|
-
);
|
|
690
|
-
}
|
|
683
|
+
seedOrRNG ??= newRNG();
|
|
691
684
|
|
|
692
685
|
const seed = isRNG(seedOrRNG) ? seedOrRNG.Next() : seedOrRNG;
|
|
693
686
|
return game.Spawn(
|
package/src/functions/enums.ts
CHANGED
|
@@ -230,7 +230,7 @@ export function getRandomEnumValue<T extends TranspiledEnum>(
|
|
|
230
230
|
* `satisfies` operator with the `Record` type instead.
|
|
231
231
|
*/
|
|
232
232
|
export function interfaceSatisfiesEnum<
|
|
233
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
233
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters
|
|
234
234
|
T extends Record<Enum, unknown>,
|
|
235
235
|
Enum extends string | number,
|
|
236
236
|
>(): void {} // eslint-disable-line @typescript-eslint/no-empty-function
|
|
@@ -277,9 +277,9 @@ export function validateCustomEnum(
|
|
|
277
277
|
*
|
|
278
278
|
* This is useful to automate checking large enums for typos.
|
|
279
279
|
*/
|
|
280
|
-
export function validateEnumContiguous
|
|
280
|
+
export function validateEnumContiguous(
|
|
281
281
|
transpiledEnumName: string,
|
|
282
|
-
transpiledEnum:
|
|
282
|
+
transpiledEnum: TranspiledEnum,
|
|
283
283
|
): void {
|
|
284
284
|
const values = getEnumValues(transpiledEnum);
|
|
285
285
|
const lastValue = values.at(-1);
|
|
@@ -296,7 +296,7 @@ export function validateEnumContiguous<T extends TranspiledEnum>(
|
|
|
296
296
|
|
|
297
297
|
const valuesSet = new ReadonlySet(values);
|
|
298
298
|
for (const value of iRange(lastValue)) {
|
|
299
|
-
if (!valuesSet.has(value
|
|
299
|
+
if (!valuesSet.has(value)) {
|
|
300
300
|
error(
|
|
301
301
|
`Failed to find a custom enum value of ${value} for: ${transpiledEnumName}`,
|
|
302
302
|
);
|
package/src/functions/flag.ts
CHANGED
|
@@ -115,7 +115,7 @@ export function hasFlag<T extends BitFlag | BitFlag128>(
|
|
|
115
115
|
* (This is equivalent to checking if the flag is equal to 0, but this is not possible without
|
|
116
116
|
* casting the flag to a number.)
|
|
117
117
|
*/
|
|
118
|
-
export function isEmptyFlag
|
|
118
|
+
export function isEmptyFlag(flag: BitFlag | BitFlag128): boolean {
|
|
119
119
|
return flag === 0;
|
|
120
120
|
}
|
|
121
121
|
|
package/src/functions/globals.ts
CHANGED
|
@@ -220,8 +220,7 @@ export function getNewGlobals(): ReadonlyArray<[AnyNotNil, unknown]> {
|
|
|
220
220
|
const newGlobals: Array<[AnyNotNil, unknown]> = [];
|
|
221
221
|
for (const [key, value] of pairs(_G)) {
|
|
222
222
|
if (!defaultGlobals.has(key)) {
|
|
223
|
-
|
|
224
|
-
const keyValueTuple: [AnyNotNil, unknown] = [key, value as any];
|
|
223
|
+
const keyValueTuple: [AnyNotNil, unknown] = [key, value];
|
|
225
224
|
newGlobals.push(keyValueTuple);
|
|
226
225
|
}
|
|
227
226
|
}
|
|
@@ -256,7 +255,7 @@ export function setLogFunctionsGlobal(): void {
|
|
|
256
255
|
const globals = _G as Record<string, unknown>;
|
|
257
256
|
|
|
258
257
|
for (const exports of [logExports, logMiscExports, logEntitiesExports]) {
|
|
259
|
-
// eslint-disable-next-line
|
|
258
|
+
// eslint-disable-next-line complete/no-object-any
|
|
260
259
|
for (const [logFuncName, logFunc] of Object.entries(exports)) {
|
|
261
260
|
globals[logFuncName] = logFunc;
|
|
262
261
|
}
|
|
@@ -816,7 +816,7 @@ export function isGridEntityBroken(gridEntity: GridEntity): boolean {
|
|
|
816
816
|
* the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
|
|
817
817
|
*/
|
|
818
818
|
export function isGridEntityXMLType(num: number): num is GridEntityXMLType {
|
|
819
|
-
return GRID_ENTITY_XML_TYPES_SET.has(num); // eslint-disable-line
|
|
819
|
+
return GRID_ENTITY_XML_TYPES_SET.has(num); // eslint-disable-line complete/strict-enums
|
|
820
820
|
}
|
|
821
821
|
|
|
822
822
|
/**
|
|
@@ -861,6 +861,7 @@ export function isPostBossVoidPortal(gridEntity: GridEntity): boolean {
|
|
|
861
861
|
|
|
862
862
|
return (
|
|
863
863
|
saveState.Type === GridEntityType.TRAPDOOR &&
|
|
864
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
864
865
|
saveState.Variant === TrapdoorVariant.VOID_PORTAL &&
|
|
865
866
|
saveState.VarData === 1
|
|
866
867
|
);
|
|
@@ -1042,6 +1043,7 @@ export function removeGridEntity(
|
|
|
1042
1043
|
// corresponding effect.
|
|
1043
1044
|
if (gridEntityType === GridEntityType.STATUE) {
|
|
1044
1045
|
const effectVariant =
|
|
1046
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1045
1047
|
variant === StatueVariant.DEVIL
|
|
1046
1048
|
? EffectVariant.DEVIL
|
|
1047
1049
|
: EffectVariant.ANGEL;
|
|
@@ -1147,15 +1149,19 @@ export function spawnGiantPoop(topLeftGridIndex: int): boolean {
|
|
|
1147
1149
|
return (
|
|
1148
1150
|
topLeft !== undefined &&
|
|
1149
1151
|
topLeft.GetType() === GridEntityType.POOP &&
|
|
1152
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1150
1153
|
topLeft.GetVariant() === PoopGridEntityVariant.GIANT_TOP_LEFT &&
|
|
1151
1154
|
topRight !== undefined &&
|
|
1152
1155
|
topRight.GetType() === GridEntityType.POOP &&
|
|
1156
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1153
1157
|
topRight.GetVariant() === PoopGridEntityVariant.GIANT_TOP_RIGHT &&
|
|
1154
1158
|
bottomLeft !== undefined &&
|
|
1155
1159
|
bottomLeft.GetType() === GridEntityType.POOP &&
|
|
1160
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1156
1161
|
bottomLeft.GetVariant() === PoopGridEntityVariant.GIANT_BOTTOM_LEFT &&
|
|
1157
1162
|
bottomRight !== undefined &&
|
|
1158
1163
|
bottomRight.GetType() === GridEntityType.POOP &&
|
|
1164
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1159
1165
|
bottomRight.GetVariant() === PoopGridEntityVariant.GIANT_BOTTOM_RIGHT
|
|
1160
1166
|
);
|
|
1161
1167
|
}
|
|
@@ -1219,6 +1225,18 @@ export function spawnGridEntityWithVariant(
|
|
|
1219
1225
|
): GridEntity | undefined {
|
|
1220
1226
|
const room = game.GetRoom();
|
|
1221
1227
|
|
|
1228
|
+
// We do an explicit check to prevent run-time errors in Lua environments.
|
|
1229
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
1230
|
+
if (gridIndexOrPosition === undefined) {
|
|
1231
|
+
const gridEntityID = getGridEntityIDFromConstituents(
|
|
1232
|
+
gridEntityType,
|
|
1233
|
+
variant,
|
|
1234
|
+
);
|
|
1235
|
+
error(
|
|
1236
|
+
`Failed to spawn grid entity ${gridEntityID} since an undefined position was passed to the "spawnGridEntityWithVariant" function.`,
|
|
1237
|
+
);
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1222
1240
|
const existingGridEntity = isVector(gridIndexOrPosition)
|
|
1223
1241
|
? room.GetGridEntityFromPos(gridIndexOrPosition)
|
|
1224
1242
|
: room.GetGridEntity(gridIndexOrPosition);
|
|
@@ -13,19 +13,21 @@ function tryEncode(this: void, luaTable: unknown) {
|
|
|
13
13
|
* Converts a JSON string to a Lua table.
|
|
14
14
|
*
|
|
15
15
|
* In most cases, this function will be used for reading data from a "save#.dat" file. If decoding
|
|
16
|
-
* fails, it will return
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* fails, it will return undefined instead of throwing an error. (This allows execution to continue
|
|
17
|
+
* in cases where users have no current save data or have manually removed their existing save
|
|
18
|
+
* data.)
|
|
19
19
|
*
|
|
20
20
|
* Under the hood, this uses a custom JSON parser that was measured to be 11.8 times faster than the
|
|
21
21
|
* vanilla JSON parser.
|
|
22
22
|
*/
|
|
23
|
-
export function jsonDecode(
|
|
23
|
+
export function jsonDecode(
|
|
24
|
+
jsonString: string,
|
|
25
|
+
): LuaMap<AnyNotNil, unknown> | undefined {
|
|
24
26
|
const [ok, luaTableOrErrMsg] = pcall(tryDecode, jsonString);
|
|
25
27
|
if (!ok) {
|
|
26
28
|
// Instead of throwing an error, continue execution of the callback.
|
|
27
29
|
logError(`Failed to convert the JSON string to a Lua table: ${jsonString}`);
|
|
28
|
-
return
|
|
30
|
+
return undefined;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
return luaTableOrErrMsg;
|
|
@@ -531,9 +531,7 @@ export function isRedKeyRoom(roomGridIndex: int): boolean {
|
|
|
531
531
|
* @param roomGridIndex Optional. Default is the current room index.
|
|
532
532
|
*/
|
|
533
533
|
export function isRoomInsideGrid(roomGridIndex?: int): boolean {
|
|
534
|
-
|
|
535
|
-
roomGridIndex = getRoomGridIndex();
|
|
536
|
-
}
|
|
534
|
+
roomGridIndex ??= getRoomGridIndex();
|
|
537
535
|
|
|
538
536
|
return roomGridIndex >= 0 && roomGridIndex <= MAX_LEVEL_GRID_INDEX;
|
|
539
537
|
}
|
|
@@ -567,9 +565,8 @@ export function newRoom(
|
|
|
567
565
|
): int | undefined {
|
|
568
566
|
const level = game.GetLevel();
|
|
569
567
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
}
|
|
568
|
+
seedOrRNG ??= level.GetDungeonPlacementSeed();
|
|
569
|
+
|
|
573
570
|
const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
|
|
574
571
|
|
|
575
572
|
const newRoomCandidate = getNewRoomCandidate(rng, ensureDeadEnd);
|
|
@@ -222,8 +222,11 @@ function getEntityLogLine(this: void, entity: Entity, num?: int): string {
|
|
|
222
222
|
msg += ` - Position: (${entity.Position.X}, ${entity.Position.Y})\n`;
|
|
223
223
|
msg += ` - Velocity: (${entity.Velocity.X}, ${entity.Velocity.Y})\n`;
|
|
224
224
|
msg += ` - HP: ${entity.HitPoints} / ${entity.MaxHitPoints}\n`;
|
|
225
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
225
226
|
msg += ` - Parent: ${entity.Parent}\n`;
|
|
227
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
226
228
|
msg += ` - Child: ${entity.Child}\n`;
|
|
229
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
227
230
|
msg += ` - SpawnerEntity: ${entity.SpawnerEntity}\n`;
|
|
228
231
|
msg += ` - SpawnerType / SpawnerVariant: ${entity.SpawnerType}.${entity.SpawnerVariant}\n`;
|
|
229
232
|
msg += ` - FrameCount: ${entity.FrameCount}\n`;
|