isaacscript-common 2.3.0 → 2.3.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/cachedClasses.d.ts +37 -0
- package/cachedClasses.lua +6 -0
- package/callbacks/customRevive.d.ts +1 -0
- package/callbacks/customRevive.lua +145 -0
- package/callbacks/itemPickup.d.ts +1 -0
- package/callbacks/itemPickup.lua +64 -0
- package/callbacks/postBombInitLate.d.ts +1 -0
- package/callbacks/postBombInitLate.lua +31 -0
- package/callbacks/postBoneSwing.d.ts +1 -0
- package/callbacks/postBoneSwing.lua +48 -0
- package/callbacks/postCollectibleInitFirst.d.ts +1 -0
- package/callbacks/postCollectibleInitFirst.lua +32 -0
- package/callbacks/postCursedTeleport.d.ts +1 -0
- package/callbacks/postCursedTeleport.lua +119 -0
- package/callbacks/postCustomDoorEnter.d.ts +50 -0
- package/callbacks/postCustomDoorEnter.lua +203 -0
- package/callbacks/postDoorRender.d.ts +1 -0
- package/callbacks/postDoorRender.lua +24 -0
- package/callbacks/postDoorUpdate.d.ts +1 -0
- package/callbacks/postDoorUpdate.lua +24 -0
- package/callbacks/postEffectInitLate.d.ts +1 -0
- package/callbacks/postEffectInitLate.lua +31 -0
- package/callbacks/postEffectStateChanged.d.ts +1 -0
- package/callbacks/postEffectStateChanged.lua +37 -0
- package/callbacks/postEsauJr.d.ts +1 -0
- package/callbacks/postEsauJr.lua +67 -0
- package/callbacks/postFamiliarInitLate.d.ts +1 -0
- package/callbacks/postFamiliarInitLate.lua +31 -0
- package/callbacks/postFamiliarStateChanged.d.ts +1 -0
- package/callbacks/postFamiliarStateChanged.lua +37 -0
- package/callbacks/postFlip.d.ts +1 -0
- package/callbacks/postFlip.lua +61 -0
- package/callbacks/postGreedModeWave.d.ts +1 -0
- package/callbacks/postGreedModeWave.lua +32 -0
- package/callbacks/postGridEntity.d.ts +1 -0
- package/callbacks/postGridEntity.lua +105 -0
- package/callbacks/postGridEntityCollision.d.ts +1 -0
- package/callbacks/postGridEntityCollision.lua +65 -0
- package/callbacks/postGridEntityRender.d.ts +1 -0
- package/callbacks/postGridEntityRender.lua +24 -0
- package/callbacks/postHolyMantleRemoved.d.ts +1 -0
- package/callbacks/postHolyMantleRemoved.lua +39 -0
- package/callbacks/postItemDischarged.d.ts +2 -0
- package/callbacks/postItemDischarged.lua +104 -0
- package/callbacks/postKnifeInitLate.d.ts +1 -0
- package/callbacks/postKnifeInitLate.lua +31 -0
- package/callbacks/postLaserInitLate.d.ts +1 -0
- package/callbacks/postLaserInitLate.lua +31 -0
- package/callbacks/postNPCInitLate.d.ts +1 -0
- package/callbacks/postNPCInitLate.lua +31 -0
- package/callbacks/postNPCStateChanged.d.ts +1 -0
- package/callbacks/postNPCStateChanged.lua +37 -0
- package/callbacks/postNewRoomEarly.d.ts +1 -0
- package/callbacks/postNewRoomEarly.lua +65 -0
- package/callbacks/postPickupCollect.d.ts +1 -0
- package/callbacks/postPickupCollect.lua +39 -0
- package/callbacks/postPickupInitLate.d.ts +1 -0
- package/callbacks/postPickupInitLate.lua +31 -0
- package/callbacks/postPickupStateChanged.d.ts +1 -0
- package/callbacks/postPickupStateChanged.lua +37 -0
- package/callbacks/postPitRender.d.ts +1 -0
- package/callbacks/postPitRender.lua +24 -0
- package/callbacks/postPitUpdate.d.ts +1 -0
- package/callbacks/postPitUpdate.lua +24 -0
- package/callbacks/postPlayerChangeHealth.d.ts +1 -0
- package/callbacks/postPlayerChangeHealth.lua +50 -0
- package/callbacks/postPlayerChangeType.d.ts +1 -0
- package/callbacks/postPlayerChangeType.lua +39 -0
- package/callbacks/postPlayerFatalDamage.d.ts +1 -0
- package/callbacks/postPlayerFatalDamage.lua +71 -0
- package/callbacks/postPlayerInitLate.d.ts +1 -0
- package/callbacks/postPlayerInitLate.lua +33 -0
- package/callbacks/postPlayerReordered.d.ts +1 -0
- package/callbacks/postPlayerReordered.lua +112 -0
- package/callbacks/postPoopRender.d.ts +1 -0
- package/callbacks/postPoopRender.lua +24 -0
- package/callbacks/postPoopUpdate.d.ts +1 -0
- package/callbacks/postPoopUpdate.lua +24 -0
- package/callbacks/postPressurePlateRender.d.ts +1 -0
- package/callbacks/postPressurePlateRender.lua +24 -0
- package/callbacks/postPressurePlateUpdate.d.ts +1 -0
- package/callbacks/postPressurePlateUpdate.lua +24 -0
- package/callbacks/postProjectileInitLate.d.ts +1 -0
- package/callbacks/postProjectileInitLate.lua +31 -0
- package/callbacks/postPurchase.d.ts +1 -0
- package/callbacks/postPurchase.lua +49 -0
- package/callbacks/postRockRender.d.ts +1 -0
- package/callbacks/postRockRender.lua +24 -0
- package/callbacks/postRockUpdate.d.ts +1 -0
- package/callbacks/postRockUpdate.lua +24 -0
- package/callbacks/postRoomClearChanged.d.ts +1 -0
- package/callbacks/postRoomClearChanged.lua +40 -0
- package/callbacks/postSacrifice.d.ts +1 -0
- package/callbacks/postSacrifice.lua +42 -0
- package/callbacks/postSlotInitUpdate.d.ts +1 -0
- package/callbacks/postSlotInitUpdate.lua +51 -0
- package/callbacks/postSlotRender.d.ts +1 -0
- package/callbacks/postSlotRender.lua +74 -0
- package/callbacks/postSpikesRender.d.ts +1 -0
- package/callbacks/postSpikesRender.lua +24 -0
- package/callbacks/postSpikesUpdate.d.ts +1 -0
- package/callbacks/postSpikesUpdate.lua +24 -0
- package/callbacks/postTNTRender.d.ts +1 -0
- package/callbacks/postTNTRender.lua +24 -0
- package/callbacks/postTNTUpdate.d.ts +1 -0
- package/callbacks/postTNTUpdate.lua +24 -0
- package/callbacks/postTearInitLate.d.ts +1 -0
- package/callbacks/postTearInitLate.lua +31 -0
- package/callbacks/postTearInitVeryLate.d.ts +1 -0
- package/callbacks/postTearInitVeryLate.lua +34 -0
- package/callbacks/postTransformation.d.ts +1 -0
- package/callbacks/postTransformation.lua +46 -0
- package/callbacks/postTrinketBreak.d.ts +1 -0
- package/callbacks/postTrinketBreak.lua +70 -0
- package/callbacks/preBerserkDeath.d.ts +1 -0
- package/callbacks/preBerserkDeath.lua +36 -0
- package/callbacks/preNewLevel.d.ts +1 -0
- package/callbacks/preNewLevel.lua +43 -0
- package/callbacks/reorderedCallbacks.d.ts +20 -0
- package/callbacks/reorderedCallbacks.lua +92 -0
- package/callbacks/subscriptions/postBombInitLate.d.ts +5 -0
- package/callbacks/subscriptions/postBombInitLate.lua +23 -0
- package/callbacks/subscriptions/postBoneSwing.d.ts +4 -0
- package/callbacks/subscriptions/postBoneSwing.lua +16 -0
- package/callbacks/subscriptions/postCollectibleInitFirst.d.ts +5 -0
- package/callbacks/subscriptions/postCollectibleInitFirst.lua +23 -0
- package/callbacks/subscriptions/postCursedTeleport.d.ts +4 -0
- package/callbacks/subscriptions/postCursedTeleport.lua +16 -0
- package/callbacks/subscriptions/postCustomDoorEnter.d.ts +5 -0
- package/callbacks/subscriptions/postCustomDoorEnter.lua +29 -0
- package/callbacks/subscriptions/postCustomRevive.d.ts +5 -0
- package/callbacks/subscriptions/postCustomRevive.lua +23 -0
- package/callbacks/subscriptions/postDoorRender.d.ts +5 -0
- package/callbacks/subscriptions/postDoorRender.lua +24 -0
- package/callbacks/subscriptions/postDoorUpdate.d.ts +5 -0
- package/callbacks/subscriptions/postDoorUpdate.lua +24 -0
- package/callbacks/subscriptions/postEffectInitLate.d.ts +5 -0
- package/callbacks/subscriptions/postEffectInitLate.lua +23 -0
- package/callbacks/subscriptions/postEffectStateChanged.d.ts +5 -0
- package/callbacks/subscriptions/postEffectStateChanged.lua +23 -0
- package/callbacks/subscriptions/postEsauJr.d.ts +4 -0
- package/callbacks/subscriptions/postEsauJr.lua +16 -0
- package/callbacks/subscriptions/postFamiliarInitLate.d.ts +5 -0
- package/callbacks/subscriptions/postFamiliarInitLate.lua +23 -0
- package/callbacks/subscriptions/postFamiliarStateChanged.d.ts +5 -0
- package/callbacks/subscriptions/postFamiliarStateChanged.lua +23 -0
- package/callbacks/subscriptions/postFirstEsauJr.d.ts +4 -0
- package/callbacks/subscriptions/postFirstEsauJr.lua +16 -0
- package/callbacks/subscriptions/postFirstFlip.d.ts +4 -0
- package/callbacks/subscriptions/postFirstFlip.lua +16 -0
- package/callbacks/subscriptions/postFlip.d.ts +4 -0
- package/callbacks/subscriptions/postFlip.lua +16 -0
- package/callbacks/subscriptions/postGameStartedReordered.d.ts +3 -0
- package/callbacks/subscriptions/postGameStartedReordered.lua +16 -0
- package/callbacks/subscriptions/postGreedModeWave.d.ts +4 -0
- package/callbacks/subscriptions/postGreedModeWave.lua +16 -0
- package/callbacks/subscriptions/postGridEntityBroken.d.ts +6 -0
- package/callbacks/subscriptions/postGridEntityBroken.lua +29 -0
- package/callbacks/subscriptions/postGridEntityCollision.d.ts +6 -0
- package/callbacks/subscriptions/postGridEntityCollision.lua +29 -0
- package/callbacks/subscriptions/postGridEntityInit.d.ts +6 -0
- package/callbacks/subscriptions/postGridEntityInit.lua +29 -0
- package/callbacks/subscriptions/postGridEntityRemove.d.ts +6 -0
- package/callbacks/subscriptions/postGridEntityRemove.lua +27 -0
- package/callbacks/subscriptions/postGridEntityRender.d.ts +6 -0
- package/callbacks/subscriptions/postGridEntityRender.lua +29 -0
- package/callbacks/subscriptions/postGridEntityStateChanged.d.ts +6 -0
- package/callbacks/subscriptions/postGridEntityStateChanged.lua +29 -0
- package/callbacks/subscriptions/postGridEntityUpdate.d.ts +6 -0
- package/callbacks/subscriptions/postGridEntityUpdate.lua +29 -0
- package/callbacks/subscriptions/postHolyMantleRemoved.d.ts +6 -0
- package/callbacks/subscriptions/postHolyMantleRemoved.lua +28 -0
- package/callbacks/subscriptions/postItemDischarged.d.ts +5 -0
- package/callbacks/subscriptions/postItemDischarged.lua +23 -0
- package/callbacks/subscriptions/postItemPickup.d.ts +11 -0
- package/callbacks/subscriptions/postItemPickup.lua +27 -0
- package/callbacks/subscriptions/postKnifeInitLate.d.ts +5 -0
- package/callbacks/subscriptions/postKnifeInitLate.lua +23 -0
- package/callbacks/subscriptions/postLaserInitLate.d.ts +5 -0
- package/callbacks/subscriptions/postLaserInitLate.lua +23 -0
- package/callbacks/subscriptions/postNPCInitLate.d.ts +5 -0
- package/callbacks/subscriptions/postNPCInitLate.lua +23 -0
- package/callbacks/subscriptions/postNPCStateChanged.d.ts +6 -0
- package/callbacks/subscriptions/postNPCStateChanged.lua +27 -0
- package/callbacks/subscriptions/postNewLevelReordered.d.ts +1 -0
- package/callbacks/subscriptions/postNewLevelReordered.lua +16 -0
- package/callbacks/subscriptions/postNewRoomEarly.d.ts +1 -0
- package/callbacks/subscriptions/postNewRoomEarly.lua +16 -0
- package/callbacks/subscriptions/postNewRoomReordered.d.ts +1 -0
- package/callbacks/subscriptions/postNewRoomReordered.lua +16 -0
- package/callbacks/subscriptions/postPEffectUpdateReordered.d.ts +6 -0
- package/callbacks/subscriptions/postPEffectUpdateReordered.lua +28 -0
- package/callbacks/subscriptions/postPickupCollect.d.ts +4 -0
- package/callbacks/subscriptions/postPickupCollect.lua +23 -0
- package/callbacks/subscriptions/postPickupInitLate.d.ts +3 -0
- package/callbacks/subscriptions/postPickupInitLate.lua +23 -0
- package/callbacks/subscriptions/postPickupStateChanged.d.ts +5 -0
- package/callbacks/subscriptions/postPickupStateChanged.lua +23 -0
- package/callbacks/subscriptions/postPitRender.d.ts +5 -0
- package/callbacks/subscriptions/postPitRender.lua +24 -0
- package/callbacks/subscriptions/postPitUpdate.d.ts +5 -0
- package/callbacks/subscriptions/postPitUpdate.lua +24 -0
- package/callbacks/subscriptions/postPlayerChangeHealth.d.ts +7 -0
- package/callbacks/subscriptions/postPlayerChangeHealth.lua +28 -0
- package/callbacks/subscriptions/postPlayerChangeType.d.ts +5 -0
- package/callbacks/subscriptions/postPlayerChangeType.lua +23 -0
- package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +6 -0
- package/callbacks/subscriptions/postPlayerFatalDamage.lua +39 -0
- package/callbacks/subscriptions/postPlayerInitLate.d.ts +6 -0
- package/callbacks/subscriptions/postPlayerInitLate.lua +28 -0
- package/callbacks/subscriptions/postPlayerInitReordered.d.ts +6 -0
- package/callbacks/subscriptions/postPlayerInitReordered.lua +28 -0
- package/callbacks/subscriptions/postPlayerRenderReordered.d.ts +6 -0
- package/callbacks/subscriptions/postPlayerRenderReordered.lua +28 -0
- package/callbacks/subscriptions/postPlayerUpdateReordered.d.ts +6 -0
- package/callbacks/subscriptions/postPlayerUpdateReordered.lua +28 -0
- package/callbacks/subscriptions/postPoopRender.d.ts +5 -0
- package/callbacks/subscriptions/postPoopRender.lua +24 -0
- package/callbacks/subscriptions/postPoopUpdate.d.ts +5 -0
- package/callbacks/subscriptions/postPoopUpdate.lua +24 -0
- package/callbacks/subscriptions/postPressurePlateRender.d.ts +5 -0
- package/callbacks/subscriptions/postPressurePlateRender.lua +24 -0
- package/callbacks/subscriptions/postPressurePlateUpdate.d.ts +5 -0
- package/callbacks/subscriptions/postPressurePlateUpdate.lua +24 -0
- package/callbacks/subscriptions/postProjectileInitLate.d.ts +5 -0
- package/callbacks/subscriptions/postProjectileInitLate.lua +23 -0
- package/callbacks/subscriptions/postPurchase.d.ts +6 -0
- package/callbacks/subscriptions/postPurchase.lua +16 -0
- package/callbacks/subscriptions/postRockRender.d.ts +5 -0
- package/callbacks/subscriptions/postRockRender.lua +24 -0
- package/callbacks/subscriptions/postRockUpdate.d.ts +5 -0
- package/callbacks/subscriptions/postRockUpdate.lua +24 -0
- package/callbacks/subscriptions/postRoomClearChanged.d.ts +3 -0
- package/callbacks/subscriptions/postRoomClearChanged.lua +16 -0
- package/callbacks/subscriptions/postSacrifice.d.ts +6 -0
- package/callbacks/subscriptions/postSacrifice.lua +28 -0
- package/callbacks/subscriptions/postSlotAnimationChanged.d.ts +5 -0
- package/callbacks/subscriptions/postSlotAnimationChanged.lua +23 -0
- package/callbacks/subscriptions/postSlotDestroyed.d.ts +5 -0
- package/callbacks/subscriptions/postSlotDestroyed.lua +23 -0
- package/callbacks/subscriptions/postSlotInit.d.ts +5 -0
- package/callbacks/subscriptions/postSlotInit.lua +23 -0
- package/callbacks/subscriptions/postSlotRender.d.ts +5 -0
- package/callbacks/subscriptions/postSlotRender.lua +23 -0
- package/callbacks/subscriptions/postSlotUpdate.d.ts +5 -0
- package/callbacks/subscriptions/postSlotUpdate.lua +23 -0
- package/callbacks/subscriptions/postSpikesRender.d.ts +5 -0
- package/callbacks/subscriptions/postSpikesRender.lua +24 -0
- package/callbacks/subscriptions/postSpikesUpdate.d.ts +5 -0
- package/callbacks/subscriptions/postSpikesUpdate.lua +24 -0
- package/callbacks/subscriptions/postTNTRender.d.ts +5 -0
- package/callbacks/subscriptions/postTNTRender.lua +24 -0
- package/callbacks/subscriptions/postTNTUpdate.d.ts +5 -0
- package/callbacks/subscriptions/postTNTUpdate.lua +24 -0
- package/callbacks/subscriptions/postTearInitLate.d.ts +5 -0
- package/callbacks/subscriptions/postTearInitLate.lua +23 -0
- package/callbacks/subscriptions/postTearInitVeryLate.d.ts +5 -0
- package/callbacks/subscriptions/postTearInitVeryLate.lua +23 -0
- package/callbacks/subscriptions/postTransformation.d.ts +5 -0
- package/callbacks/subscriptions/postTransformation.lua +23 -0
- package/callbacks/subscriptions/postTrinketBreak.d.ts +5 -0
- package/callbacks/subscriptions/postTrinketBreak.lua +23 -0
- package/callbacks/subscriptions/preBerserkDeath.d.ts +6 -0
- package/callbacks/subscriptions/preBerserkDeath.lua +29 -0
- package/callbacks/subscriptions/preCustomRevive.d.ts +6 -0
- package/callbacks/subscriptions/preCustomRevive.lua +32 -0
- package/callbacks/subscriptions/preItemPickup.d.ts +11 -0
- package/callbacks/subscriptions/preItemPickup.lua +27 -0
- package/callbacks/subscriptions/preNewLevel.d.ts +4 -0
- package/callbacks/subscriptions/preNewLevel.lua +16 -0
- package/classes/DefaultMap.d.ts +79 -0
- package/classes/DefaultMap.lua +84 -0
- package/classes/ModUpgraded.d.ts +23 -0
- package/classes/ModUpgraded.lua +38 -0
- package/constants.d.ts +104 -0
- package/constants.lua +45 -0
- package/constantsFirstLast.d.ts +130 -0
- package/constantsFirstLast.lua +50 -0
- package/enums/HealthType.d.ts +16 -0
- package/enums/HealthType.lua +21 -0
- package/enums/ModCallbackCustom.d.ts +860 -0
- package/enums/ModCallbackCustom.lua +153 -0
- package/enums/PocketItemType.d.ts +8 -0
- package/enums/PocketItemType.lua +15 -0
- package/enums/SerializationType.d.ts +5 -0
- package/enums/SerializationType.lua +9 -0
- package/enums/private/CopyableIsaacAPIClassType.d.ts +7 -0
- package/enums/private/CopyableIsaacAPIClassType.lua +7 -0
- package/enums/private/SaveDataKey.d.ts +7 -0
- package/enums/private/SaveDataKey.lua +11 -0
- package/enums/private/SerializationBrand.d.ts +37 -0
- package/enums/private/SerializationBrand.lua +12 -0
- package/features/characterHealthConversion.d.ts +9 -0
- package/features/characterHealthConversion.lua +85 -0
- package/features/characterStats.d.ts +19 -0
- package/features/characterStats.lua +37 -0
- package/features/debugDisplay/debugDisplay.d.ts +2 -0
- package/features/debugDisplay/debugDisplay.lua +181 -0
- package/features/debugDisplay/exports.d.ts +199 -0
- package/features/debugDisplay/exports.lua +133 -0
- package/features/debugDisplay/v.d.ts +44 -0
- package/features/debugDisplay/v.lua +54 -0
- package/features/deployJSONRoom.d.ts +65 -0
- package/features/deployJSONRoom.lua +463 -0
- package/features/disableInputs.d.ts +62 -0
- package/features/disableInputs.lua +89 -0
- package/features/disableSound.d.ts +18 -0
- package/features/disableSound.lua +48 -0
- package/features/extraConsoleCommands/commandsDisplay.d.ts +162 -0
- package/features/extraConsoleCommands/commandsDisplay.lua +129 -0
- package/features/extraConsoleCommands/commandsSubroutines.d.ts +9 -0
- package/features/extraConsoleCommands/commandsSubroutines.lua +129 -0
- package/features/extraConsoleCommands/init.d.ts +26 -0
- package/features/extraConsoleCommands/init.lua +249 -0
- package/features/extraConsoleCommands/listCommands.d.ts +349 -0
- package/features/extraConsoleCommands/listCommands.lua +922 -0
- package/features/extraConsoleCommands/v.d.ts +13 -0
- package/features/extraConsoleCommands/v.lua +10 -0
- package/features/fadeInRemover.d.ts +14 -0
- package/features/fadeInRemover.lua +45 -0
- package/features/fastReset.d.ts +14 -0
- package/features/fastReset.lua +49 -0
- package/features/forgottenSwitch.d.ts +5 -0
- package/features/forgottenSwitch.lua +28 -0
- package/features/getCollectibleItemPoolType.d.ts +7 -0
- package/features/getCollectibleItemPoolType.lua +43 -0
- package/features/playerInventory.d.ts +23 -0
- package/features/playerInventory.lua +129 -0
- package/features/ponyDetection.d.ts +6 -0
- package/features/ponyDetection.lua +49 -0
- package/features/preventCollectibleRotation.d.ts +11 -0
- package/features/preventCollectibleRotation.lua +58 -0
- package/features/runInNFrames.d.ts +61 -0
- package/features/runInNFrames.lua +78 -0
- package/features/saveDataManager/constants.d.ts +3 -0
- package/features/saveDataManager/constants.lua +4 -0
- package/features/saveDataManager/exports.d.ts +131 -0
- package/features/saveDataManager/exports.lua +66 -0
- package/features/saveDataManager/load.d.ts +4 -0
- package/features/saveDataManager/load.lua +66 -0
- package/features/saveDataManager/main.d.ts +3 -0
- package/features/saveDataManager/main.lua +119 -0
- package/features/saveDataManager/maps.d.ts +10 -0
- package/features/saveDataManager/maps.lua +8 -0
- package/features/saveDataManager/merge.d.ts +24 -0
- package/features/saveDataManager/merge.lua +124 -0
- package/features/saveDataManager/save.d.ts +4 -0
- package/features/saveDataManager/save.lua +44 -0
- package/features/saveDataManager/serializationBrand.d.ts +1 -0
- package/features/saveDataManager/serializationBrand.lua +17 -0
- package/features/sirenHelpers.d.ts +18 -0
- package/features/sirenHelpers.lua +69 -0
- package/features/taintedLazarusPlayers.d.ts +13 -0
- package/features/taintedLazarusPlayers.lua +74 -0
- package/featuresInitialized.d.ts +1 -0
- package/featuresInitialized.lua +14 -0
- package/functions/array.d.ts +141 -0
- package/functions/array.lua +269 -0
- package/functions/benchmark.d.ts +10 -0
- package/functions/benchmark.lua +32 -0
- package/functions/bitwise.d.ts +4 -0
- package/functions/bitwise.lua +21 -0
- package/functions/boss.d.ts +56 -0
- package/functions/boss.lua +183 -0
- package/functions/cacheFlag.d.ts +8 -0
- package/functions/cacheFlag.lua +7 -0
- package/functions/cards.d.ts +95 -0
- package/functions/cards.lua +174 -0
- package/functions/challenges.d.ts +3 -0
- package/functions/challenges.lua +9 -0
- package/functions/character.d.ts +48 -0
- package/functions/character.lua +73 -0
- package/functions/charge.d.ts +54 -0
- package/functions/charge.lua +123 -0
- package/functions/chargeBar.d.ts +12 -0
- package/functions/chargeBar.lua +43 -0
- package/functions/collectibleCacheFlag.d.ts +23 -0
- package/functions/collectibleCacheFlag.lua +65 -0
- package/functions/collectibleSet.d.ts +9 -0
- package/functions/collectibleSet.lua +51 -0
- package/functions/collectibleTag.d.ts +16 -0
- package/functions/collectibleTag.lua +74 -0
- package/functions/collectibles.d.ts +211 -0
- package/functions/collectibles.lua +281 -0
- package/functions/color.d.ts +45 -0
- package/functions/color.lua +122 -0
- package/functions/debug.d.ts +27 -0
- package/functions/debug.lua +31 -0
- package/functions/deepCopy.d.ts +29 -0
- package/functions/deepCopy.lua +357 -0
- package/functions/deepCopyTests.d.ts +1 -0
- package/functions/deepCopyTests.lua +316 -0
- package/functions/direction.d.ts +4 -0
- package/functions/direction.lua +17 -0
- package/functions/doors.d.ts +117 -0
- package/functions/doors.lua +231 -0
- package/functions/easing.d.ts +30 -0
- package/functions/easing.lua +115 -0
- package/functions/eden.d.ts +3 -0
- package/functions/eden.lua +47 -0
- package/functions/entity.d.ts +131 -0
- package/functions/entity.lua +233 -0
- package/functions/entitySpecific.d.ts +264 -0
- package/functions/entitySpecific.lua +650 -0
- package/functions/entityTypes.d.ts +3 -0
- package/functions/entityTypes.lua +7 -0
- package/functions/enums.d.ts +80 -0
- package/functions/enums.lua +85 -0
- package/functions/familiars.d.ts +60 -0
- package/functions/familiars.lua +33 -0
- package/functions/flag.d.ts +99 -0
- package/functions/flag.lua +47 -0
- package/functions/flying.d.ts +19 -0
- package/functions/flying.lua +67 -0
- package/functions/globals.d.ts +14 -0
- package/functions/globals.lua +230 -0
- package/functions/gridEntity.d.ts +155 -0
- package/functions/gridEntity.lua +263 -0
- package/functions/gridEntitySpecific.d.ts +18 -0
- package/functions/gridEntitySpecific.lua +88 -0
- package/functions/input.d.ts +32 -0
- package/functions/input.lua +106 -0
- package/functions/isaacAPIClass.d.ts +23 -0
- package/functions/isaacAPIClass.lua +35 -0
- package/functions/jsonHelpers.d.ts +18 -0
- package/functions/jsonHelpers.lua +26 -0
- package/functions/jsonRoom.d.ts +12 -0
- package/functions/jsonRoom.lua +86 -0
- package/functions/kColor.d.ts +31 -0
- package/functions/kColor.lua +101 -0
- package/functions/language.d.ts +8 -0
- package/functions/language.lua +8 -0
- package/functions/level.d.ts +1 -0
- package/functions/level.lua +29 -0
- package/functions/log.d.ts +78 -0
- package/functions/log.lua +519 -0
- package/functions/map.d.ts +22 -0
- package/functions/map.lua +43 -0
- package/functions/math.d.ts +50 -0
- package/functions/math.lua +92 -0
- package/functions/mergeTests.d.ts +1 -0
- package/functions/mergeTests.lua +182 -0
- package/functions/npc.d.ts +40 -0
- package/functions/npc.lua +104 -0
- package/functions/pickupVariants.d.ts +23 -0
- package/functions/pickupVariants.lua +37 -0
- package/functions/pickups.d.ts +132 -0
- package/functions/pickups.lua +407 -0
- package/functions/pills.d.ts +69 -0
- package/functions/pills.lua +83 -0
- package/functions/player.d.ts +296 -0
- package/functions/player.lua +611 -0
- package/functions/playerDataStructures.d.ts +92 -0
- package/functions/playerDataStructures.lua +38 -0
- package/functions/playerHealth.d.ts +22 -0
- package/functions/playerHealth.lua +286 -0
- package/functions/playerIndex.d.ts +68 -0
- package/functions/playerIndex.lua +127 -0
- package/functions/pocketItems.d.ts +33 -0
- package/functions/pocketItems.lua +86 -0
- package/functions/positionVelocity.d.ts +64 -0
- package/functions/positionVelocity.lua +108 -0
- package/functions/random.d.ts +42 -0
- package/functions/random.lua +38 -0
- package/functions/revive.d.ts +31 -0
- package/functions/revive.lua +102 -0
- package/functions/rng.d.ts +53 -0
- package/functions/rng.lua +129 -0
- package/functions/roomData.d.ts +108 -0
- package/functions/roomData.lua +92 -0
- package/functions/roomGrid.d.ts +40 -0
- package/functions/roomGrid.lua +59 -0
- package/functions/roomShape.d.ts +43 -0
- package/functions/roomShape.lua +45 -0
- package/functions/rooms.d.ts +194 -0
- package/functions/rooms.lua +382 -0
- package/functions/run.d.ts +12 -0
- package/functions/run.lua +28 -0
- package/functions/seeds.d.ts +9 -0
- package/functions/seeds.lua +15 -0
- package/functions/serialization.d.ts +11 -0
- package/functions/serialization.lua +65 -0
- package/functions/set.d.ts +39 -0
- package/functions/set.lua +61 -0
- package/functions/sound.d.ts +1 -0
- package/functions/sound.lua +13 -0
- package/functions/spawnCollectible.d.ts +31 -0
- package/functions/spawnCollectible.lua +70 -0
- package/functions/sprite.d.ts +36 -0
- package/functions/sprite.lua +64 -0
- package/functions/stage.d.ts +35 -0
- package/functions/stage.lua +70 -0
- package/functions/string.d.ts +13 -0
- package/functions/string.lua +36 -0
- package/functions/table.d.ts +36 -0
- package/functions/table.lua +79 -0
- package/functions/tears.d.ts +22 -0
- package/functions/tears.lua +14 -0
- package/functions/transformations.d.ts +30 -0
- package/functions/transformations.lua +96 -0
- package/functions/trinketCacheFlag.d.ts +10 -0
- package/functions/trinketCacheFlag.lua +50 -0
- package/functions/trinketGive.d.ts +38 -0
- package/functions/trinketGive.lua +90 -0
- package/functions/trinkets.d.ts +73 -0
- package/functions/trinkets.lua +115 -0
- package/functions/tstlClass.d.ts +20 -0
- package/functions/tstlClass.lua +56 -0
- package/functions/ui.d.ts +34 -0
- package/functions/ui.lua +95 -0
- package/functions/utils.d.ts +112 -0
- package/functions/utils.lua +94 -0
- package/functions/vector.d.ts +32 -0
- package/functions/vector.lua +118 -0
- package/index.d.ts +128 -0
- package/index.lua +900 -0
- package/initCustomCallbacks.d.ts +2 -0
- package/initCustomCallbacks.lua +178 -0
- package/initFeatures.d.ts +3 -0
- package/initFeatures.lua +51 -0
- package/interfaces/AddCallbackParameterCustom.d.ts +153 -0
- package/interfaces/AddCallbackParameterCustom.lua +4 -0
- package/interfaces/ChargeBarSprites.d.ts +13 -0
- package/interfaces/ChargeBarSprites.lua +2 -0
- package/interfaces/JSONDoor.d.ts +11 -0
- package/interfaces/JSONDoor.lua +2 -0
- package/interfaces/JSONEntity.d.ts +13 -0
- package/interfaces/JSONEntity.lua +2 -0
- package/interfaces/JSONRoom.d.ts +26 -0
- package/interfaces/JSONRoom.lua +2 -0
- package/interfaces/JSONRooms.d.ts +11 -0
- package/interfaces/JSONRooms.lua +2 -0
- package/interfaces/JSONSpawn.d.ts +11 -0
- package/interfaces/JSONSpawn.lua +2 -0
- package/interfaces/PlayerHealth.d.ts +15 -0
- package/interfaces/PlayerHealth.lua +2 -0
- package/interfaces/PocketItemDescription.d.ts +8 -0
- package/interfaces/PocketItemDescription.lua +2 -0
- package/interfaces/SaveData.d.ts +29 -0
- package/interfaces/SaveData.lua +2 -0
- package/interfaces/TrinketSituation.d.ts +8 -0
- package/interfaces/TrinketSituation.lua +2 -0
- package/interfaces/private/TSTLClassMetatable.d.ts +10 -0
- package/interfaces/private/TSTLClassMetatable.lua +2 -0
- package/lualib_bundle.lua +2488 -0
- package/maps/cardMap.d.ts +3 -0
- package/maps/cardMap.lua +211 -0
- package/maps/characterMap.d.ts +3 -0
- package/maps/characterMap.lua +89 -0
- package/maps/collectibleDescriptionMap.d.ts +3 -0
- package/maps/collectibleDescriptionMap.lua +728 -0
- package/maps/collectibleNameMap.d.ts +3 -0
- package/maps/collectibleNameMap.lua +728 -0
- package/maps/defaultPlayerStatMap.d.ts +3 -0
- package/maps/defaultPlayerStatMap.lua +24 -0
- package/maps/gridEntityTypeToBrokenStateMap.d.ts +2 -0
- package/maps/gridEntityTypeToBrokenStateMap.lua +26 -0
- package/maps/gridEntityXMLMap.d.ts +9 -0
- package/maps/gridEntityXMLMap.lua +51 -0
- package/maps/pillEffectMap.d.ts +3 -0
- package/maps/pillEffectMap.lua +89 -0
- package/maps/roomShapeToTopLeftWallGridIndexMap.d.ts +7 -0
- package/maps/roomShapeToTopLeftWallGridIndexMap.lua +15 -0
- package/maps/roomTypeMap.d.ts +3 -0
- package/maps/roomTypeMap.lua +44 -0
- package/maps/trinketDescriptionMap.d.ts +3 -0
- package/maps/trinketDescriptionMap.lua +196 -0
- package/maps/trinketNameMap.d.ts +3 -0
- package/maps/trinketNameMap.lua +196 -0
- package/objects/LRoomShapeToRectangles.d.ts +13 -0
- package/objects/LRoomShapeToRectangles.lua +33 -0
- package/objects/callbackRegisterFunctions.d.ts +5 -0
- package/objects/callbackRegisterFunctions.lua +231 -0
- package/objects/cardDescriptions.d.ts +5 -0
- package/objects/cardDescriptions.lua +105 -0
- package/objects/cardNames.d.ts +5 -0
- package/objects/cardNames.lua +105 -0
- package/objects/cardTypes.d.ts +5 -0
- package/objects/cardTypes.lua +106 -0
- package/objects/challengeNames.d.ts +5 -0
- package/objects/challengeNames.lua +53 -0
- package/objects/characterNames.d.ts +5 -0
- package/objects/characterNames.lua +49 -0
- package/objects/coinSubTypeToValue.d.ts +5 -0
- package/objects/coinSubTypeToValue.lua +15 -0
- package/objects/colors.d.ts +17 -0
- package/objects/colors.lua +12 -0
- package/objects/directionNames.d.ts +4 -0
- package/objects/directionNames.lua +11 -0
- package/objects/directionToDegrees.d.ts +4 -0
- package/objects/directionToDegrees.lua +11 -0
- package/objects/directionToVector.d.ts +4 -0
- package/objects/directionToVector.lua +13 -0
- package/objects/doorSlotFlagToDoorSlot.d.ts +5 -0
- package/objects/doorSlotFlagToDoorSlot.lua +16 -0
- package/objects/doorSlotToDirection.d.ts +4 -0
- package/objects/doorSlotToDirection.lua +16 -0
- package/objects/isaacAPIClassTypeToBrand.d.ts +5 -0
- package/objects/isaacAPIClassTypeToBrand.lua +7 -0
- package/objects/isaacAPIClassTypeToCopyFunction.d.ts +5 -0
- package/objects/isaacAPIClassTypeToCopyFunction.lua +13 -0
- package/objects/languageNames.d.ts +4 -0
- package/objects/languageNames.lua +13 -0
- package/objects/pillEffectClasses.d.ts +5 -0
- package/objects/pillEffectClasses.lua +59 -0
- package/objects/pillEffectNames.d.ts +5 -0
- package/objects/pillEffectNames.lua +57 -0
- package/objects/pillEffectTypes.d.ts +5 -0
- package/objects/pillEffectTypes.lua +58 -0
- package/objects/roomShapeBounds.d.ts +8 -0
- package/objects/roomShapeBounds.lua +24 -0
- package/objects/roomShapeLayoutSizes.d.ts +10 -0
- package/objects/roomShapeLayoutSizes.lua +25 -0
- package/objects/roomShapeToBottomRightPosition.d.ts +8 -0
- package/objects/roomShapeToBottomRightPosition.lua +20 -0
- package/objects/roomShapeToDoorSlots.d.ts +4 -0
- package/objects/roomShapeToDoorSlots.lua +46 -0
- package/objects/roomShapeToDoorSlotsToGridIndexDelta.d.ts +8 -0
- package/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +87 -0
- package/objects/roomShapeToGridWidth.d.ts +4 -0
- package/objects/roomShapeToGridWidth.lua +20 -0
- package/objects/roomShapeToTopLeftPosition.d.ts +8 -0
- package/objects/roomShapeToTopLeftPosition.lua +22 -0
- package/objects/roomShapeVolumes.d.ts +13 -0
- package/objects/roomShapeVolumes.lua +27 -0
- package/objects/roomTypeNames.d.ts +5 -0
- package/objects/roomTypeNames.lua +37 -0
- package/objects/serializedIsaacAPIClassTypeToIdentityFunction.d.ts +4 -0
- package/objects/serializedIsaacAPIClassTypeToIdentityFunction.lua +13 -0
- package/objects/stageTypeToLetter.d.ts +4 -0
- package/objects/stageTypeToLetter.lua +12 -0
- package/objects/transformationNames.d.ts +5 -0
- package/objects/transformationNames.lua +21 -0
- package/package.json +2 -3
- package/patchErrorFunctions.d.ts +1 -0
- package/patchErrorFunctions.lua +50 -0
- package/sets/LRoomShapesSet.d.ts +2 -0
- package/sets/LRoomShapesSet.lua +8 -0
- package/sets/bossSets.d.ts +4 -0
- package/sets/bossSets.lua +531 -0
- package/sets/charactersThatStartWithAnActiveItemSet.d.ts +2 -0
- package/sets/charactersThatStartWithAnActiveItemSet.lua +20 -0
- package/sets/charactersWithBlackHeartFromEternalHeartSet.d.ts +2 -0
- package/sets/charactersWithBlackHeartFromEternalHeartSet.lua +8 -0
- package/sets/charactersWithFreeDevilDealsSet.d.ts +2 -0
- package/sets/charactersWithFreeDevilDealsSet.lua +8 -0
- package/sets/charactersWithNoRedHeartsSet.d.ts +6 -0
- package/sets/charactersWithNoRedHeartsSet.lua +17 -0
- package/sets/charactersWithNoSoulHeartsSet.d.ts +6 -0
- package/sets/charactersWithNoSoulHeartsSet.lua +14 -0
- package/sets/chestPickupVariantsSet.d.ts +2 -0
- package/sets/chestPickupVariantsSet.lua +21 -0
- package/sets/familiarsThatShootPlayerTearsSet.d.ts +2 -0
- package/sets/familiarsThatShootPlayerTearsSet.lua +17 -0
- package/sets/lostStyleCharactersSet.d.ts +6 -0
- package/sets/lostStyleCharactersSet.lua +14 -0
- package/sets/mineShaftRoomSubTypesSet.d.ts +2 -0
- package/sets/mineShaftRoomSubTypesSet.lua +14 -0
- package/sets/redHeartSubTypesSet.d.ts +2 -0
- package/sets/redHeartSubTypesSet.lua +8 -0
- package/sets/sinEntityTypesSet.d.ts +2 -0
- package/sets/sinEntityTypesSet.lua +16 -0
- package/sets/singleUseActiveCollectibleTypesSet.d.ts +2 -0
- package/sets/singleUseActiveCollectibleTypesSet.lua +17 -0
- package/sets/storyBossesSet.d.ts +2 -0
- package/sets/storyBossesSet.lua +22 -0
- package/types/AnyEntity.d.ts +2 -0
- package/types/AnyEntity.lua +2 -0
- package/types/CollectibleIndex.d.ts +16 -0
- package/types/CollectibleIndex.lua +2 -0
- package/types/PickingUpItem.d.ts +34 -0
- package/types/PickingUpItem.lua +27 -0
- package/types/PlayerIndex.d.ts +16 -0
- package/types/PlayerIndex.lua +2 -0
- package/types/private/IsaacAPIClass.d.ts +4 -0
- package/types/private/IsaacAPIClass.lua +2 -0
- package/types/private/SerializedIsaacAPIClass.d.ts +4 -0
- package/types/private/SerializedIsaacAPIClass.lua +2 -0
- package/types/private/TSTLClass.d.ts +4 -0
- package/types/private/TSTLClass.lua +2 -0
- package/upgradeMod.d.ts +23 -0
- package/upgradeMod.lua +33 -0
- package/.eslintrc.js +0 -70
- package/build.sh +0 -27
- package/docs.sh +0 -21
- package/lint.sh +0 -34
- package/project.json +0 -37
- package/release.sh +0 -16
- package/scripts/.eslintrc.js +0 -21
- package/scripts/docsEntryPointLint.ts +0 -135
- package/scripts/tsconfig.json +0 -5
- package/src/cachedClasses.ts +0 -39
- package/src/callbacks/customRevive.ts +0 -206
- package/src/callbacks/itemPickup.ts +0 -101
- package/src/callbacks/postBombInitLate.ts +0 -36
- package/src/callbacks/postBoneSwing.ts +0 -64
- package/src/callbacks/postCollectibleInitFirst.ts +0 -39
- package/src/callbacks/postCursedTeleport.ts +0 -183
- package/src/callbacks/postCustomDoorEnter.ts +0 -297
- package/src/callbacks/postDoorRender.ts +0 -26
- package/src/callbacks/postDoorUpdate.ts +0 -26
- package/src/callbacks/postEffectInitLate.ts +0 -36
- package/src/callbacks/postEffectStateChanged.ts +0 -43
- package/src/callbacks/postEsauJr.ts +0 -107
- package/src/callbacks/postFamiliarInitLate.ts +0 -36
- package/src/callbacks/postFamiliarStateChanged.ts +0 -43
- package/src/callbacks/postFlip.ts +0 -88
- package/src/callbacks/postGreedModeWave.ts +0 -41
- package/src/callbacks/postGridEntity.ts +0 -159
- package/src/callbacks/postGridEntityCollision.ts +0 -69
- package/src/callbacks/postGridEntityRender.ts +0 -26
- package/src/callbacks/postHolyMantleRemoved.ts +0 -55
- package/src/callbacks/postItemDischarged.ts +0 -149
- package/src/callbacks/postKnifeInitLate.ts +0 -36
- package/src/callbacks/postLaserInitLate.ts +0 -36
- package/src/callbacks/postNPCInitLate.ts +0 -36
- package/src/callbacks/postNPCStateChanged.ts +0 -42
- package/src/callbacks/postNewRoomEarly.ts +0 -90
- package/src/callbacks/postPickupCollect.ts +0 -48
- package/src/callbacks/postPickupInitLate.ts +0 -36
- package/src/callbacks/postPickupStateChanged.ts +0 -43
- package/src/callbacks/postPitRender.ts +0 -26
- package/src/callbacks/postPitUpdate.ts +0 -26
- package/src/callbacks/postPlayerChangeHealth.ts +0 -62
- package/src/callbacks/postPlayerChangeType.ts +0 -56
- package/src/callbacks/postPlayerFatalDamage.ts +0 -98
- package/src/callbacks/postPlayerInitLate.ts +0 -37
- package/src/callbacks/postPlayerReordered.ts +0 -142
- package/src/callbacks/postPoopRender.ts +0 -26
- package/src/callbacks/postPoopUpdate.ts +0 -26
- package/src/callbacks/postPressurePlateRender.ts +0 -26
- package/src/callbacks/postPressurePlateUpdate.ts +0 -26
- package/src/callbacks/postProjectileInitLate.ts +0 -36
- package/src/callbacks/postPurchase.ts +0 -64
- package/src/callbacks/postRockRender.ts +0 -26
- package/src/callbacks/postRockUpdate.ts +0 -26
- package/src/callbacks/postRoomClearChanged.ts +0 -52
- package/src/callbacks/postSacrifice.ts +0 -62
- package/src/callbacks/postSlotInitUpdate.ts +0 -63
- package/src/callbacks/postSlotRender.ts +0 -96
- package/src/callbacks/postSpikesRender.ts +0 -26
- package/src/callbacks/postSpikesUpdate.ts +0 -26
- package/src/callbacks/postTNTRender.ts +0 -26
- package/src/callbacks/postTNTUpdate.ts +0 -26
- package/src/callbacks/postTearInitLate.ts +0 -36
- package/src/callbacks/postTearInitVeryLate.ts +0 -41
- package/src/callbacks/postTransformation.ts +0 -59
- package/src/callbacks/postTrinketBreak.ts +0 -110
- package/src/callbacks/preBerserkDeath.ts +0 -49
- package/src/callbacks/preNewLevel.ts +0 -55
- package/src/callbacks/reorderedCallbacks.ts +0 -166
- package/src/callbacks/subscriptions/postBombInitLate.ts +0 -32
- package/src/callbacks/subscriptions/postBoneSwing.ts +0 -24
- package/src/callbacks/subscriptions/postCollectibleInitFirst.ts +0 -37
- package/src/callbacks/subscriptions/postCursedTeleport.ts +0 -24
- package/src/callbacks/subscriptions/postCustomDoorEnter.ts +0 -45
- package/src/callbacks/subscriptions/postCustomRevive.ts +0 -36
- package/src/callbacks/subscriptions/postDoorRender.ts +0 -35
- package/src/callbacks/subscriptions/postDoorUpdate.ts +0 -35
- package/src/callbacks/subscriptions/postEffectInitLate.ts +0 -32
- package/src/callbacks/subscriptions/postEffectStateChanged.ts +0 -40
- package/src/callbacks/subscriptions/postEsauJr.ts +0 -24
- package/src/callbacks/subscriptions/postFamiliarInitLate.ts +0 -32
- package/src/callbacks/subscriptions/postFamiliarStateChanged.ts +0 -40
- package/src/callbacks/subscriptions/postFirstEsauJr.ts +0 -24
- package/src/callbacks/subscriptions/postFirstFlip.ts +0 -24
- package/src/callbacks/subscriptions/postFlip.ts +0 -22
- package/src/callbacks/subscriptions/postGameStartedReordered.ts +0 -24
- package/src/callbacks/subscriptions/postGreedModeWave.ts +0 -24
- package/src/callbacks/subscriptions/postGridEntityBroken.ts +0 -51
- package/src/callbacks/subscriptions/postGridEntityCollision.ts +0 -54
- package/src/callbacks/subscriptions/postGridEntityInit.ts +0 -51
- package/src/callbacks/subscriptions/postGridEntityRemove.ts +0 -52
- package/src/callbacks/subscriptions/postGridEntityRender.ts +0 -51
- package/src/callbacks/subscriptions/postGridEntityStateChanged.ts +0 -55
- package/src/callbacks/subscriptions/postGridEntityUpdate.ts +0 -51
- package/src/callbacks/subscriptions/postHolyMantleRemoved.ts +0 -48
- package/src/callbacks/subscriptions/postItemDischarged.ts +0 -43
- package/src/callbacks/subscriptions/postItemPickup.ts +0 -64
- package/src/callbacks/subscriptions/postKnifeInitLate.ts +0 -32
- package/src/callbacks/subscriptions/postLaserInitLate.ts +0 -32
- package/src/callbacks/subscriptions/postNPCInitLate.ts +0 -32
- package/src/callbacks/subscriptions/postNPCStateChanged.ts +0 -42
- package/src/callbacks/subscriptions/postNewLevelReordered.ts +0 -22
- package/src/callbacks/subscriptions/postNewRoomEarly.ts +0 -22
- package/src/callbacks/subscriptions/postNewRoomReordered.ts +0 -22
- package/src/callbacks/subscriptions/postPEffectUpdateReordered.ts +0 -40
- package/src/callbacks/subscriptions/postPickupCollect.ts +0 -34
- package/src/callbacks/subscriptions/postPickupInitLate.ts +0 -31
- package/src/callbacks/subscriptions/postPickupStateChanged.ts +0 -35
- package/src/callbacks/subscriptions/postPitRender.ts +0 -35
- package/src/callbacks/subscriptions/postPitUpdate.ts +0 -35
- package/src/callbacks/subscriptions/postPlayerChangeHealth.ts +0 -45
- package/src/callbacks/subscriptions/postPlayerChangeType.ts +0 -40
- package/src/callbacks/subscriptions/postPlayerFatalDamage.ts +0 -67
- package/src/callbacks/subscriptions/postPlayerInitLate.ts +0 -40
- package/src/callbacks/subscriptions/postPlayerInitReordered.ts +0 -40
- package/src/callbacks/subscriptions/postPlayerRenderReordered.ts +0 -40
- package/src/callbacks/subscriptions/postPlayerUpdateReordered.ts +0 -40
- package/src/callbacks/subscriptions/postPoopRender.ts +0 -35
- package/src/callbacks/subscriptions/postPoopUpdate.ts +0 -35
- package/src/callbacks/subscriptions/postPressurePlateRender.ts +0 -37
- package/src/callbacks/subscriptions/postPressurePlateUpdate.ts +0 -37
- package/src/callbacks/subscriptions/postProjectileInitLate.ts +0 -35
- package/src/callbacks/subscriptions/postPurchase.ts +0 -31
- package/src/callbacks/subscriptions/postRockRender.ts +0 -35
- package/src/callbacks/subscriptions/postRockUpdate.ts +0 -35
- package/src/callbacks/subscriptions/postRoomClearChanged.ts +0 -24
- package/src/callbacks/subscriptions/postSacrifice.ts +0 -43
- package/src/callbacks/subscriptions/postSlotAnimationChanged.ts +0 -40
- package/src/callbacks/subscriptions/postSlotDestroyed.ts +0 -32
- package/src/callbacks/subscriptions/postSlotInit.ts +0 -32
- package/src/callbacks/subscriptions/postSlotRender.ts +0 -32
- package/src/callbacks/subscriptions/postSlotUpdate.ts +0 -32
- package/src/callbacks/subscriptions/postSpikesRender.ts +0 -35
- package/src/callbacks/subscriptions/postSpikesUpdate.ts +0 -35
- package/src/callbacks/subscriptions/postTNTRender.ts +0 -35
- package/src/callbacks/subscriptions/postTNTUpdate.ts +0 -35
- package/src/callbacks/subscriptions/postTearInitLate.ts +0 -32
- package/src/callbacks/subscriptions/postTearInitVeryLate.ts +0 -32
- package/src/callbacks/subscriptions/postTransformation.ts +0 -40
- package/src/callbacks/subscriptions/postTrinketBreak.ts +0 -38
- package/src/callbacks/subscriptions/preBerserkDeath.ts +0 -42
- package/src/callbacks/subscriptions/preCustomRevive.ts +0 -45
- package/src/callbacks/subscriptions/preItemPickup.ts +0 -64
- package/src/callbacks/subscriptions/preNewLevel.ts +0 -24
- package/src/classes/DefaultMap.ts +0 -220
- package/src/classes/ModUpgraded.ts +0 -83
- package/src/constants.ts +0 -140
- package/src/constantsFirstLast.ts +0 -212
- package/src/enums/HealthType.ts +0 -16
- package/src/enums/ModCallbackCustom.ts +0 -943
- package/src/enums/PocketItemType.ts +0 -8
- package/src/enums/SerializationType.ts +0 -5
- package/src/enums/private/CopyableIsaacAPIClassType.ts +0 -7
- package/src/enums/private/SaveDataKey.ts +0 -14
- package/src/enums/private/SerializationBrand.ts +0 -42
- package/src/features/characterHealthConversion.ts +0 -116
- package/src/features/characterStats.ts +0 -61
- package/src/features/debugDisplay/debugDisplay.ts +0 -221
- package/src/features/debugDisplay/exports.ts +0 -368
- package/src/features/debugDisplay/v.ts +0 -65
- package/src/features/deployJSONRoom.ts +0 -672
- package/src/features/disableInputs.ts +0 -193
- package/src/features/disableSound.ts +0 -77
- package/src/features/extraConsoleCommands/commandsDisplay.ts +0 -290
- package/src/features/extraConsoleCommands/commandsSubroutines.ts +0 -139
- package/src/features/extraConsoleCommands/init.ts +0 -334
- package/src/features/extraConsoleCommands/listCommands.ts +0 -1298
- package/src/features/extraConsoleCommands/v.ts +0 -14
- package/src/features/fadeInRemover.ts +0 -60
- package/src/features/fastReset.ts +0 -75
- package/src/features/forgottenSwitch.ts +0 -50
- package/src/features/getCollectibleItemPoolType.ts +0 -66
- package/src/features/playerInventory.ts +0 -187
- package/src/features/ponyDetection.ts +0 -74
- package/src/features/preventCollectibleRotation.ts +0 -113
- package/src/features/runInNFrames.ts +0 -148
- package/src/features/saveDataManager/constants.ts +0 -4
- package/src/features/saveDataManager/exports.ts +0 -230
- package/src/features/saveDataManager/load.ts +0 -90
- package/src/features/saveDataManager/main.ts +0 -187
- package/src/features/saveDataManager/maps.ts +0 -13
- package/src/features/saveDataManager/merge.ts +0 -182
- package/src/features/saveDataManager/save.ts +0 -66
- package/src/features/saveDataManager/serializationBrand.ts +0 -15
- package/src/features/sirenHelpers.ts +0 -129
- package/src/features/taintedLazarusPlayers.ts +0 -113
- package/src/featuresInitialized.ts +0 -20
- package/src/functions/array.ts +0 -412
- package/src/functions/benchmark.ts +0 -36
- package/src/functions/bitwise.ts +0 -24
- package/src/functions/boss.ts +0 -227
- package/src/functions/cacheFlag.ts +0 -12
- package/src/functions/cards.ts +0 -267
- package/src/functions/challenges.ts +0 -11
- package/src/functions/character.ts +0 -124
- package/src/functions/charge.ts +0 -237
- package/src/functions/chargeBar.ts +0 -67
- package/src/functions/collectibleCacheFlag.ts +0 -90
- package/src/functions/collectibleSet.ts +0 -57
- package/src/functions/collectibleTag.ts +0 -89
- package/src/functions/collectibles.ts +0 -610
- package/src/functions/color.ts +0 -149
- package/src/functions/debug.ts +0 -65
- package/src/functions/deepCopy.ts +0 -508
- package/src/functions/deepCopyTests.ts +0 -390
- package/src/functions/direction.ts +0 -16
- package/src/functions/doors.ts +0 -343
- package/src/functions/easing.ts +0 -182
- package/src/functions/eden.ts +0 -47
- package/src/functions/entity.ts +0 -352
- package/src/functions/entitySpecific.ts +0 -889
- package/src/functions/entityTypes.ts +0 -6
- package/src/functions/enums.ts +0 -145
- package/src/functions/familiars.ts +0 -106
- package/src/functions/flag.ts +0 -165
- package/src/functions/flying.ts +0 -117
- package/src/functions/globals.ts +0 -249
- package/src/functions/gridEntity.ts +0 -511
- package/src/functions/gridEntitySpecific.ts +0 -112
- package/src/functions/input.ts +0 -139
- package/src/functions/isaacAPIClass.ts +0 -65
- package/src/functions/jsonHelpers.ts +0 -45
- package/src/functions/jsonRoom.ts +0 -100
- package/src/functions/kColor.ts +0 -130
- package/src/functions/language.ts +0 -13
- package/src/functions/level.ts +0 -31
- package/src/functions/log.ts +0 -660
- package/src/functions/map.ts +0 -56
- package/src/functions/math.ts +0 -149
- package/src/functions/mergeTests.ts +0 -288
- package/src/functions/npc.ts +0 -148
- package/src/functions/pickupVariants.ts +0 -60
- package/src/functions/pickups.ts +0 -449
- package/src/functions/pills.ts +0 -182
- package/src/functions/player.ts +0 -975
- package/src/functions/playerDataStructures.ts +0 -150
- package/src/functions/playerHealth.ts +0 -318
- package/src/functions/playerIndex.ts +0 -195
- package/src/functions/pocketItems.ts +0 -149
- package/src/functions/positionVelocity.ts +0 -188
- package/src/functions/random.ts +0 -77
- package/src/functions/revive.ts +0 -201
- package/src/functions/rng.ts +0 -177
- package/src/functions/roomData.ts +0 -199
- package/src/functions/roomGrid.ts +0 -109
- package/src/functions/roomShape.ts +0 -80
- package/src/functions/rooms.ts +0 -667
- package/src/functions/run.ts +0 -36
- package/src/functions/seeds.ts +0 -19
- package/src/functions/serialization.ts +0 -97
- package/src/functions/set.ts +0 -95
- package/src/functions/sound.ts +0 -9
- package/src/functions/spawnCollectible.ts +0 -104
- package/src/functions/sprite.ts +0 -107
- package/src/functions/stage.ts +0 -125
- package/src/functions/string.ts +0 -47
- package/src/functions/table.ts +0 -139
- package/src/functions/tears.ts +0 -32
- package/src/functions/transformations.ts +0 -137
- package/src/functions/trinketCacheFlag.ts +0 -60
- package/src/functions/trinketGive.ts +0 -157
- package/src/functions/trinkets.ts +0 -215
- package/src/functions/tstlClass.ts +0 -91
- package/src/functions/ui.ts +0 -138
- package/src/functions/utils.ts +0 -200
- package/src/functions/vector.ts +0 -145
- package/src/index.ts +0 -162
- package/src/initCustomCallbacks.ts +0 -120
- package/src/initFeatures.ts +0 -37
- package/src/interfaces/AddCallbackParameterCustom.ts +0 -174
- package/src/interfaces/ChargeBarSprites.ts +0 -12
- package/src/interfaces/JSONDoor.ts +0 -13
- package/src/interfaces/JSONEntity.ts +0 -16
- package/src/interfaces/JSONRoom.ts +0 -36
- package/src/interfaces/JSONRooms.ts +0 -12
- package/src/interfaces/JSONSpawn.ts +0 -14
- package/src/interfaces/PlayerHealth.ts +0 -16
- package/src/interfaces/PocketItemDescription.ts +0 -9
- package/src/interfaces/SaveData.ts +0 -29
- package/src/interfaces/TrinketSituation.ts +0 -9
- package/src/interfaces/private/TSTLClassMetatable.ts +0 -8
- package/src/maps/cardMap.ts +0 -209
- package/src/maps/characterMap.ts +0 -87
- package/src/maps/collectibleDescriptionMap.ts +0 -732
- package/src/maps/collectibleNameMap.ts +0 -731
- package/src/maps/defaultPlayerStatMap.ts +0 -17
- package/src/maps/gridEntityTypeToBrokenStateMap.ts +0 -50
- package/src/maps/gridEntityXMLMap.ts +0 -176
- package/src/maps/pillEffectMap.ts +0 -88
- package/src/maps/roomShapeToTopLeftWallGridIndexMap.ts +0 -18
- package/src/maps/roomTypeMap.ts +0 -40
- package/src/maps/trinketDescriptionMap.ts +0 -200
- package/src/maps/trinketNameMap.ts +0 -198
- package/src/objects/LRoomShapeToRectangles.ts +0 -44
- package/src/objects/callbackRegisterFunctions.ts +0 -171
- package/src/objects/cardDescriptions.ts +0 -105
- package/src/objects/cardNames.ts +0 -105
- package/src/objects/cardTypes.ts +0 -104
- package/src/objects/challengeNames.ts +0 -52
- package/src/objects/characterNames.ts +0 -48
- package/src/objects/coinSubTypeToValue.ts +0 -14
- package/src/objects/colors.ts +0 -16
- package/src/objects/directionNames.ts +0 -11
- package/src/objects/directionToDegrees.ts +0 -11
- package/src/objects/directionToVector.ts +0 -12
- package/src/objects/doorSlotFlagToDoorSlot.ts +0 -16
- package/src/objects/doorSlotToDirection.ts +0 -14
- package/src/objects/isaacAPIClassTypeToBrand.ts +0 -11
- package/src/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
- package/src/objects/languageNames.ts +0 -13
- package/src/objects/pillEffectClasses.ts +0 -63
- package/src/objects/pillEffectNames.ts +0 -57
- package/src/objects/pillEffectTypes.ts +0 -62
- package/src/objects/roomShapeBounds.ts +0 -71
- package/src/objects/roomShapeLayoutSizes.ts +0 -45
- package/src/objects/roomShapeToBottomRightPosition.ts +0 -25
- package/src/objects/roomShapeToDoorSlots.ts +0 -83
- package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +0 -127
- package/src/objects/roomShapeToGridWidth.ts +0 -21
- package/src/objects/roomShapeToTopLeftPosition.ts +0 -26
- package/src/objects/roomShapeVolumes.ts +0 -38
- package/src/objects/roomTypeNames.ts +0 -36
- package/src/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
- package/src/objects/stageTypeToLetter.ts +0 -15
- package/src/objects/transformationNames.ts +0 -20
- package/src/patchErrorFunctions.ts +0 -92
- package/src/sets/LRoomShapesSet.ts +0 -8
- package/src/sets/bossSets.ts +0 -470
- package/src/sets/charactersThatStartWithAnActiveItemSet.ts +0 -16
- package/src/sets/charactersWithBlackHeartFromEternalHeartSet.ts +0 -7
- package/src/sets/charactersWithFreeDevilDealsSet.ts +0 -4
- package/src/sets/charactersWithNoRedHeartsSet.ts +0 -17
- package/src/sets/charactersWithNoSoulHeartsSet.ts +0 -14
- package/src/sets/chestPickupVariantsSet.ts +0 -16
- package/src/sets/familiarsThatShootPlayerTearsSet.ts +0 -13
- package/src/sets/lostStyleCharactersSet.ts +0 -13
- package/src/sets/mineShaftRoomSubTypesSet.ts +0 -10
- package/src/sets/redHeartSubTypesSet.ts +0 -7
- package/src/sets/sinEntityTypesSet.ts +0 -11
- package/src/sets/singleUseActiveCollectibleTypesSet.ts +0 -13
- package/src/sets/storyBossesSet.ts +0 -17
- package/src/types/AnyEntity.ts +0 -12
- package/src/types/AwaitingTextInput.d.ts +0 -2
- package/src/types/CollectibleIndex.ts +0 -14
- package/src/types/PickingUpItem.ts +0 -89
- package/src/types/PlayerIndex.ts +0 -13
- package/src/types/private/IsaacAPIClass.ts +0 -3
- package/src/types/private/SerializedIsaacAPIClass.ts +0 -3
- package/src/types/private/TSTLClass.ts +0 -3
- package/src/upgradeMod.ts +0 -55
- package/tsconfig.json +0 -42
- package/typedoc.json +0 -158
- package/website-root.md +0 -11
|
@@ -1,508 +0,0 @@
|
|
|
1
|
-
import { DefaultMap } from "../classes/DefaultMap";
|
|
2
|
-
import { CopyableIsaacAPIClassType } from "../enums/private/CopyableIsaacAPIClassType";
|
|
3
|
-
import { SerializationBrand } from "../enums/private/SerializationBrand";
|
|
4
|
-
import { SerializationType } from "../enums/SerializationType";
|
|
5
|
-
import { SAVE_DATA_MANAGER_DEBUG } from "../features/saveDataManager/constants";
|
|
6
|
-
import { isSerializationBrand } from "../features/saveDataManager/serializationBrand";
|
|
7
|
-
import { TSTLClass } from "../types/private/TSTLClass";
|
|
8
|
-
import { isArray } from "./array";
|
|
9
|
-
import { getEnumValues } from "./enums";
|
|
10
|
-
import { getIsaacAPIClassType } from "./isaacAPIClass";
|
|
11
|
-
import { log } from "./log";
|
|
12
|
-
import {
|
|
13
|
-
copyIsaacAPIClass,
|
|
14
|
-
deserializeIsaacAPIClass,
|
|
15
|
-
isSerializedIsaacAPIClass,
|
|
16
|
-
} from "./serialization";
|
|
17
|
-
import { isUserDefinedTSTLClass, newTSTLClass } from "./tstlClass";
|
|
18
|
-
import { ensureAllCases, getTraversalDescription } from "./utils";
|
|
19
|
-
|
|
20
|
-
const COPYABLE_ISAAC_API_CLASS_TYPES_SET = new Set<string>(
|
|
21
|
-
getEnumValues(CopyableIsaacAPIClassType),
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* `deepCopy` is a semi-generic deep cloner. It will recursively copy all of the values so that none
|
|
26
|
-
* of the nested references remain.
|
|
27
|
-
*
|
|
28
|
-
* It supports the following object types:
|
|
29
|
-
*
|
|
30
|
-
* - Primitives (i.e. strings, numbers, and booleans)
|
|
31
|
-
* - `LuaTable` / basic TSTL objects
|
|
32
|
-
* - TSTL `Map`
|
|
33
|
-
* - TSTL `Set`
|
|
34
|
-
* - TSTL classes
|
|
35
|
-
* - `DefaultMap`
|
|
36
|
-
* - Isaac `Color` objects
|
|
37
|
-
* - Isaac `KColor` objects
|
|
38
|
-
* - Isaac `RNG` objects
|
|
39
|
-
* - Isaac `Vector` objects
|
|
40
|
-
*
|
|
41
|
-
* It does not support:
|
|
42
|
-
* - objects with values of `null` (since that transpiles to `nil`)
|
|
43
|
-
* - other Isaac API objects such as `EntityPtr` (that have a type of "userdata")
|
|
44
|
-
*
|
|
45
|
-
* @param value The primitive or object to copy.
|
|
46
|
-
* @param serializationType Has 3 possible values. Can leave objects as-is, or can serialize objects
|
|
47
|
-
* to Lua tables, or can deserialize Lua tables to objects. Default is
|
|
48
|
-
* `SerializationType.NONE`.
|
|
49
|
-
* @param traversalDescription Used to track the current key that we are operating on.
|
|
50
|
-
*/
|
|
51
|
-
export function deepCopy(
|
|
52
|
-
value: unknown,
|
|
53
|
-
serializationType = SerializationType.NONE,
|
|
54
|
-
traversalDescription = "",
|
|
55
|
-
): unknown {
|
|
56
|
-
if (SAVE_DATA_MANAGER_DEBUG) {
|
|
57
|
-
let logString = `deepCopy is operating on: ${traversalDescription}`;
|
|
58
|
-
if (serializationType === SerializationType.SERIALIZE) {
|
|
59
|
-
logString += " (serializing)";
|
|
60
|
-
} else if (serializationType === SerializationType.DESERIALIZE) {
|
|
61
|
-
logString += " (deserializing)";
|
|
62
|
-
}
|
|
63
|
-
logString += `: ${value}`;
|
|
64
|
-
log(logString);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const valueType = type(value);
|
|
68
|
-
switch (valueType) {
|
|
69
|
-
// First, handling the trivial case of primitives.
|
|
70
|
-
case "nil":
|
|
71
|
-
case "boolean":
|
|
72
|
-
case "number":
|
|
73
|
-
case "string": {
|
|
74
|
-
return value;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// Second, handle values that cannot be serialized.
|
|
78
|
-
case "function":
|
|
79
|
-
case "thread": {
|
|
80
|
-
if (serializationType === SerializationType.SERIALIZE) {
|
|
81
|
-
error(
|
|
82
|
-
`The deep copy function does not support serialization of "${traversalDescription}", since it is type: ${valueType}`,
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// We cannot copy this, so simply return the reference.
|
|
87
|
-
return value;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
case "table": {
|
|
91
|
-
const valueTable = value as LuaTable<AnyNotNil, unknown>;
|
|
92
|
-
return deepCopyTable(valueTable, serializationType, traversalDescription);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
case "userdata": {
|
|
96
|
-
return deepCopyUserdata(value, serializationType, traversalDescription);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
default: {
|
|
100
|
-
return ensureAllCases(valueType);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function deepCopyTable(
|
|
106
|
-
table: LuaTable<AnyNotNil, unknown>,
|
|
107
|
-
serializationType: SerializationType,
|
|
108
|
-
traversalDescription: string,
|
|
109
|
-
) {
|
|
110
|
-
// First, handle the cases of TSTL classes or serialized TSTL classes.
|
|
111
|
-
if (
|
|
112
|
-
table instanceof DefaultMap ||
|
|
113
|
-
table.has(SerializationBrand.DEFAULT_MAP)
|
|
114
|
-
) {
|
|
115
|
-
return deepCopyDefaultMap(table, serializationType, traversalDescription);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (table instanceof Map || table.has(SerializationBrand.MAP)) {
|
|
119
|
-
return deepCopyMap(table, serializationType, traversalDescription);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (table instanceof Set || table.has(SerializationBrand.SET)) {
|
|
123
|
-
return deepCopySet(table, serializationType, traversalDescription);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (table instanceof WeakMap) {
|
|
127
|
-
error(
|
|
128
|
-
`The deep copy function does not support copying the "WeakMap" class for: ${traversalDescription}`,
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (table instanceof WeakSet) {
|
|
133
|
-
error(
|
|
134
|
-
`The deep copy function does not support copying the "WeakSet" class for: ${traversalDescription}`,
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
if (isUserDefinedTSTLClass(table)) {
|
|
139
|
-
return deepCopyTSTLClass(table, serializationType, traversalDescription);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// This is not a TSTL class. If it has a metatable, abort.
|
|
143
|
-
checkMetatable(table, traversalDescription);
|
|
144
|
-
|
|
145
|
-
// Handle the special case of serialized Isaac API classes.
|
|
146
|
-
if (
|
|
147
|
-
isSerializedIsaacAPIClass(table) &&
|
|
148
|
-
serializationType === SerializationType.DESERIALIZE
|
|
149
|
-
) {
|
|
150
|
-
return deserializeIsaacAPIClass(table);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// Handle the special case of an array.
|
|
154
|
-
if (isArray(table)) {
|
|
155
|
-
return deepCopyArray(table, serializationType, traversalDescription);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// Base case: copy a normal Lua table
|
|
159
|
-
return deepCopyNormalLuaTable(table, serializationType, traversalDescription);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
function deepCopyDefaultMap(
|
|
163
|
-
defaultMap: DefaultMap<AnyNotNil, unknown> | LuaTable<AnyNotNil, unknown>,
|
|
164
|
-
serializationType: SerializationType,
|
|
165
|
-
traversalDescription: string,
|
|
166
|
-
) {
|
|
167
|
-
const constructorArg =
|
|
168
|
-
defaultMap instanceof DefaultMap
|
|
169
|
-
? defaultMap.getConstructorArg()
|
|
170
|
-
: undefined;
|
|
171
|
-
|
|
172
|
-
let newDefaultMap:
|
|
173
|
-
| DefaultMap<AnyNotNil, unknown>
|
|
174
|
-
| LuaTable<AnyNotNil, unknown>;
|
|
175
|
-
switch (serializationType) {
|
|
176
|
-
case SerializationType.NONE: {
|
|
177
|
-
newDefaultMap = new DefaultMap(constructorArg);
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
case SerializationType.SERIALIZE: {
|
|
182
|
-
// The DefaultMap can be instantiated with a factory function. If this is the case, then we
|
|
183
|
-
// cannot serialize it, so we serialize it as a normal `Map` instead. We do not throw a
|
|
184
|
-
// runtime error because the merge function does not need to instantiate the DefaultMap class
|
|
185
|
-
// in most circumstances.
|
|
186
|
-
if (
|
|
187
|
-
typeof constructorArg !== "boolean" &&
|
|
188
|
-
typeof constructorArg !== "number" &&
|
|
189
|
-
typeof constructorArg !== "string"
|
|
190
|
-
) {
|
|
191
|
-
return deepCopyMap(defaultMap, serializationType, traversalDescription);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Since we are serializing, the new object will be a Lua table.
|
|
195
|
-
newDefaultMap = new LuaTable<AnyNotNil, unknown>();
|
|
196
|
-
newDefaultMap.set(SerializationBrand.DEFAULT_MAP, "");
|
|
197
|
-
newDefaultMap.set(SerializationBrand.DEFAULT_MAP_VALUE, constructorArg);
|
|
198
|
-
|
|
199
|
-
break;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
case SerializationType.DESERIALIZE: {
|
|
203
|
-
if (defaultMap instanceof DefaultMap) {
|
|
204
|
-
error(
|
|
205
|
-
`The deep copy function failed to deserialize a default map of "${traversalDescription}", since it was not a Lua table.`,
|
|
206
|
-
);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
const defaultMapValue = defaultMap.get(
|
|
210
|
-
SerializationBrand.DEFAULT_MAP_VALUE,
|
|
211
|
-
);
|
|
212
|
-
if (defaultMapValue === undefined) {
|
|
213
|
-
error(
|
|
214
|
-
`The deep copy function failed to deserialize a default map of "${traversalDescription}", since there was no serialization brand of: ${SerializationBrand.DEFAULT_MAP_VALUE}`,
|
|
215
|
-
);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
newDefaultMap = new DefaultMap(defaultMapValue);
|
|
219
|
-
|
|
220
|
-
break;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
default: {
|
|
224
|
-
return ensureAllCases(serializationType);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
const { entries, convertedNumberKeysToStrings } = getCopiedEntries(
|
|
229
|
-
defaultMap,
|
|
230
|
-
serializationType,
|
|
231
|
-
traversalDescription,
|
|
232
|
-
);
|
|
233
|
-
|
|
234
|
-
if (convertedNumberKeysToStrings) {
|
|
235
|
-
// Differentiating between the two types looks superfluous but is necessary for TSTL to produce
|
|
236
|
-
// the proper set method call.
|
|
237
|
-
if (newDefaultMap instanceof DefaultMap) {
|
|
238
|
-
newDefaultMap.set(SerializationBrand.OBJECT_WITH_NUMBER_KEYS, "");
|
|
239
|
-
} else {
|
|
240
|
-
newDefaultMap.set(SerializationBrand.OBJECT_WITH_NUMBER_KEYS, "");
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
for (const [key, value] of entries) {
|
|
245
|
-
// Differentiating between the two types looks superfluous but is necessary for TSTL to produce
|
|
246
|
-
// the proper set method call.
|
|
247
|
-
if (newDefaultMap instanceof DefaultMap) {
|
|
248
|
-
newDefaultMap.set(key, value);
|
|
249
|
-
} else {
|
|
250
|
-
newDefaultMap.set(key, value);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
return newDefaultMap;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
function deepCopyMap(
|
|
258
|
-
map: Map<AnyNotNil, unknown> | LuaTable<AnyNotNil, unknown>,
|
|
259
|
-
serializationType: SerializationType,
|
|
260
|
-
traversalDescription: string,
|
|
261
|
-
) {
|
|
262
|
-
let newMap: Map<AnyNotNil, unknown> | LuaTable<AnyNotNil, unknown>;
|
|
263
|
-
if (serializationType === SerializationType.SERIALIZE) {
|
|
264
|
-
// Since we are serializing, the new object will be a Lua table.
|
|
265
|
-
newMap = new LuaTable<AnyNotNil, unknown>();
|
|
266
|
-
newMap.set(SerializationBrand.MAP, "");
|
|
267
|
-
} else {
|
|
268
|
-
newMap = new Map();
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
const { entries, convertedNumberKeysToStrings } = getCopiedEntries(
|
|
272
|
-
map,
|
|
273
|
-
serializationType,
|
|
274
|
-
traversalDescription,
|
|
275
|
-
);
|
|
276
|
-
|
|
277
|
-
if (convertedNumberKeysToStrings) {
|
|
278
|
-
// Differentiating between the two types looks superfluous but is necessary for TSTL to produce
|
|
279
|
-
// the proper set method call.
|
|
280
|
-
if (newMap instanceof Map) {
|
|
281
|
-
newMap.set(SerializationBrand.OBJECT_WITH_NUMBER_KEYS, "");
|
|
282
|
-
} else {
|
|
283
|
-
newMap.set(SerializationBrand.OBJECT_WITH_NUMBER_KEYS, "");
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
for (const [key, value] of entries) {
|
|
288
|
-
// Differentiating between the two types looks superfluous but is necessary for TSTL to produce
|
|
289
|
-
// the proper set method call.
|
|
290
|
-
if (newMap instanceof Map) {
|
|
291
|
-
newMap.set(key, value);
|
|
292
|
-
} else {
|
|
293
|
-
newMap.set(key, value);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
return newMap;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
function deepCopySet(
|
|
301
|
-
set: Set<AnyNotNil> | LuaTable<AnyNotNil, unknown>,
|
|
302
|
-
serializationType: SerializationType,
|
|
303
|
-
traversalDescription: string,
|
|
304
|
-
) {
|
|
305
|
-
let newSet: Set<AnyNotNil> | LuaTable<AnyNotNil, string>;
|
|
306
|
-
if (serializationType === SerializationType.SERIALIZE) {
|
|
307
|
-
// For serialization purposes, we represent a `Set` as a table with keys that match the
|
|
308
|
-
// keys/values in the Set and values of an empty string.
|
|
309
|
-
newSet = new LuaTable<AnyNotNil, string>();
|
|
310
|
-
newSet.set(SerializationBrand.SET, "");
|
|
311
|
-
} else {
|
|
312
|
-
newSet = new Set();
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
const { entries, convertedNumberKeysToStrings } = getCopiedEntries(
|
|
316
|
-
set,
|
|
317
|
-
serializationType,
|
|
318
|
-
traversalDescription,
|
|
319
|
-
);
|
|
320
|
-
|
|
321
|
-
if (convertedNumberKeysToStrings) {
|
|
322
|
-
// Differentiating between the two types looks superfluous but is necessary for TSTL to produce
|
|
323
|
-
// the proper set method call.
|
|
324
|
-
if (newSet instanceof Set) {
|
|
325
|
-
// We should never be serializing an object of type Set.
|
|
326
|
-
error(
|
|
327
|
-
"The deep copy function cannot convert number keys to strings for a Set.",
|
|
328
|
-
);
|
|
329
|
-
} else {
|
|
330
|
-
newSet.set(SerializationBrand.OBJECT_WITH_NUMBER_KEYS, "");
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
for (const [key] of entries) {
|
|
335
|
-
if (newSet instanceof Set) {
|
|
336
|
-
newSet.add(key);
|
|
337
|
-
} else {
|
|
338
|
-
newSet.set(key, "");
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
return newSet;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
function deepCopyTSTLClass(
|
|
346
|
-
tstlClass: TSTLClass,
|
|
347
|
-
serializationType: SerializationType,
|
|
348
|
-
traversalDescription: string,
|
|
349
|
-
) {
|
|
350
|
-
let newClass: TSTLClass | LuaTable<AnyNotNil, unknown>;
|
|
351
|
-
if (serializationType === SerializationType.SERIALIZE) {
|
|
352
|
-
// Since we are serializing, the new object will be a Lua table.
|
|
353
|
-
newClass = new LuaTable<AnyNotNil, unknown>();
|
|
354
|
-
// (We do not brand it with the class type because we will not have the associated class
|
|
355
|
-
// constructor during deserialization, so knowing what type of class it is is pointless.)
|
|
356
|
-
} else {
|
|
357
|
-
newClass = newTSTLClass(tstlClass);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
const { entries, convertedNumberKeysToStrings } = getCopiedEntries(
|
|
361
|
-
tstlClass,
|
|
362
|
-
serializationType,
|
|
363
|
-
traversalDescription,
|
|
364
|
-
);
|
|
365
|
-
|
|
366
|
-
if (convertedNumberKeysToStrings) {
|
|
367
|
-
newClass.set(SerializationBrand.OBJECT_WITH_NUMBER_KEYS, "");
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
for (const [key, value] of entries) {
|
|
371
|
-
newClass.set(key, value);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
return newClass;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
function deepCopyArray(
|
|
378
|
-
array: unknown[],
|
|
379
|
-
serializationType: SerializationType,
|
|
380
|
-
traversalDescription: string,
|
|
381
|
-
) {
|
|
382
|
-
const newArray: unknown[] = [];
|
|
383
|
-
|
|
384
|
-
for (const value of array) {
|
|
385
|
-
const newValue = deepCopy(value, serializationType, traversalDescription);
|
|
386
|
-
newArray.push(newValue);
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
return newArray;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
function deepCopyNormalLuaTable(
|
|
393
|
-
table: LuaTable<AnyNotNil, unknown>,
|
|
394
|
-
serializationType: SerializationType,
|
|
395
|
-
traversalDescription: string,
|
|
396
|
-
) {
|
|
397
|
-
const newTable = new LuaTable<AnyNotNil, unknown>();
|
|
398
|
-
const { entries, convertedNumberKeysToStrings } = getCopiedEntries(
|
|
399
|
-
table,
|
|
400
|
-
serializationType,
|
|
401
|
-
traversalDescription,
|
|
402
|
-
);
|
|
403
|
-
|
|
404
|
-
if (convertedNumberKeysToStrings) {
|
|
405
|
-
newTable.set(SerializationBrand.OBJECT_WITH_NUMBER_KEYS, "");
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
for (const [key, value] of entries) {
|
|
409
|
-
newTable.set(key, value);
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
return newTable;
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
/**
|
|
416
|
-
* Recursively clones the object's entries, automatically converting number keys to strings, if
|
|
417
|
-
* necessary.
|
|
418
|
-
*/
|
|
419
|
-
function getCopiedEntries(
|
|
420
|
-
object: unknown,
|
|
421
|
-
serializationType: SerializationType,
|
|
422
|
-
traversalDescription: string,
|
|
423
|
-
): {
|
|
424
|
-
entries: Array<[key: AnyNotNil, value: unknown]>;
|
|
425
|
-
convertedNumberKeysToStrings: boolean;
|
|
426
|
-
} {
|
|
427
|
-
// First, shallow copy the entries. We cannot use "pairs" to iterate over a Map or Set. We cannot
|
|
428
|
-
// use "[...pairs(object)]", as it results in a run-time error.
|
|
429
|
-
const entries: Array<[key: AnyNotNil, value: unknown]> = [];
|
|
430
|
-
if (object instanceof Map || object instanceof Set) {
|
|
431
|
-
// eslint-disable-next-line isaacscript/no-object-any
|
|
432
|
-
for (const [key, value] of object.entries()) {
|
|
433
|
-
entries.push([key, value]);
|
|
434
|
-
}
|
|
435
|
-
} else {
|
|
436
|
-
for (const [key, value] of pairs(object)) {
|
|
437
|
-
entries.push([key, value]);
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
const hasNumberKeys = entries.some(([key]) => typeof key === "number");
|
|
442
|
-
const convertNumberKeysToStrings =
|
|
443
|
-
serializationType === SerializationType.SERIALIZE && hasNumberKeys;
|
|
444
|
-
|
|
445
|
-
// Second, deep copy the entries.
|
|
446
|
-
const copiedEntries: Array<[key: AnyNotNil, value: unknown]> = [];
|
|
447
|
-
for (const [key, value] of entries) {
|
|
448
|
-
// When deserializing, we do not need to copy the serialization brands that are used to denote
|
|
449
|
-
// the object type.
|
|
450
|
-
if (isSerializationBrand(key)) {
|
|
451
|
-
continue;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
traversalDescription = getTraversalDescription(key, traversalDescription);
|
|
455
|
-
const newValue = deepCopy(value, serializationType, traversalDescription);
|
|
456
|
-
|
|
457
|
-
const keyToUse = convertNumberKeysToStrings ? tostring(key) : key;
|
|
458
|
-
copiedEntries.push([keyToUse, newValue]);
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
return {
|
|
462
|
-
entries: copiedEntries,
|
|
463
|
-
convertedNumberKeysToStrings: convertNumberKeysToStrings,
|
|
464
|
-
};
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
/**
|
|
468
|
-
* Lua tables can have metatables, which make writing a generic deep cloner impossible. The deep
|
|
469
|
-
* copy function will refuse to copy a table type that has a metatable, outside of specifically
|
|
470
|
-
* supported TSTL objects.
|
|
471
|
-
*/
|
|
472
|
-
function checkMetatable(table: LuaTable, traversalDescription: string) {
|
|
473
|
-
const metatable = getmetatable(table);
|
|
474
|
-
if (metatable === undefined) {
|
|
475
|
-
return;
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
const tableDescription =
|
|
479
|
-
traversalDescription === ""
|
|
480
|
-
? "the table to copy"
|
|
481
|
-
: `"${traversalDescription}"`;
|
|
482
|
-
|
|
483
|
-
error(
|
|
484
|
-
`The deepCopy function detected that "${tableDescription}" has a metatable. Copying tables with metatables is not supported, unless they are explicitly handled by the save data manager. (e.g. TypeScriptToLua Maps, TypeScriptToLua Sets, etc.)`,
|
|
485
|
-
);
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
/** Isaac API classes are of type "userdata". End-user code cannot create userdata. */
|
|
489
|
-
function deepCopyUserdata(
|
|
490
|
-
value: unknown,
|
|
491
|
-
serializationType: SerializationType,
|
|
492
|
-
traversalDescription: string,
|
|
493
|
-
) {
|
|
494
|
-
const classType = getIsaacAPIClassType(value);
|
|
495
|
-
if (classType === undefined) {
|
|
496
|
-
error(
|
|
497
|
-
`The deep copy function was not able to derive the Isaac API class type for: ${traversalDescription}`,
|
|
498
|
-
);
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
if (!COPYABLE_ISAAC_API_CLASS_TYPES_SET.has(classType)) {
|
|
502
|
-
error(
|
|
503
|
-
`The deep copy function does not support copying "${traversalDescription}", since it is an Isaac API class of type: ${classType}`,
|
|
504
|
-
);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
return copyIsaacAPIClass(value, serializationType);
|
|
508
|
-
}
|