isaacscript-common 14.1.3 → 14.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +919 -141
- package/dist/isaacscript-common.lua +4752 -1790
- package/dist/src/callbacks.d.ts +102 -20
- package/dist/src/callbacks.d.ts.map +1 -1
- package/dist/src/callbacks.lua +124 -1
- package/dist/src/classes/ModFeature.d.ts.map +1 -1
- package/dist/src/classes/ModFeature.lua +22 -1
- package/dist/src/classes/ModUpgraded.d.ts +10 -5
- package/dist/src/classes/ModUpgraded.d.ts.map +1 -1
- package/dist/src/classes/ModUpgraded.lua +30 -11
- package/dist/src/classes/callbacks/PostCustomRevive.d.ts +5 -2
- package/dist/src/classes/callbacks/PostCustomRevive.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostCustomRevive.lua +12 -4
- package/dist/src/classes/callbacks/PostGridEntityBroken.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityCollision.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityCustomBroken.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityCustomCollision.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityCustomInit.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityCustomRemove.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityCustomRender.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomRender.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityInit.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityRemove.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityRender.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityRender.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityStateChanged.lua +1 -1
- package/dist/src/classes/callbacks/PostGridEntityUpdate.lua +1 -1
- package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts +1 -1
- package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +3 -4
- package/dist/src/classes/callbacks/PostItemDischarge.d.ts +43 -0
- package/dist/src/classes/callbacks/PostItemDischarge.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostItemDischarge.lua +113 -0
- package/dist/src/classes/callbacks/PostItemPickup.d.ts +6 -0
- package/dist/src/classes/callbacks/PostItemPickup.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostItemPickup.lua +17 -0
- package/dist/src/classes/callbacks/PostLaserInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostLaserInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostLaserInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostNPCInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostNPCInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostNPCInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostNPCStateChanged.d.ts +14 -0
- package/dist/src/classes/callbacks/PostNPCStateChanged.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostNPCStateChanged.lua +33 -0
- package/dist/src/classes/callbacks/PostPickupCollect.d.ts +12 -0
- package/dist/src/classes/callbacks/PostPickupCollect.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPickupCollect.lua +35 -0
- package/dist/src/classes/callbacks/PostPickupInitFirst.d.ts +12 -0
- package/dist/src/classes/callbacks/PostPickupInitFirst.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPickupInitFirst.lua +32 -0
- package/dist/src/classes/callbacks/PostPickupInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostPickupInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPickupInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostPickupStateChanged.d.ts +13 -0
- package/dist/src/classes/callbacks/PostPickupStateChanged.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPickupStateChanged.lua +33 -0
- package/dist/src/classes/callbacks/PostPitUpdate.d.ts +7 -0
- package/dist/src/classes/callbacks/PostPitUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPitUpdate.lua +24 -0
- package/dist/src/classes/callbacks/PostPlayerChangeHealth.d.ts +15 -0
- package/dist/src/classes/callbacks/PostPlayerChangeHealth.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerChangeHealth.lua +52 -0
- package/dist/src/classes/callbacks/PostPlayerChangeStat.d.ts +16 -0
- package/dist/src/classes/callbacks/PostPlayerChangeStat.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerChangeStat.lua +94 -0
- package/dist/src/classes/callbacks/PostPlayerChangeType.d.ts +15 -0
- package/dist/src/classes/callbacks/PostPlayerChangeType.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerChangeType.lua +37 -0
- package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.d.ts +6 -0
- package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerCollectibleAdded.lua +17 -0
- package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.d.ts +6 -0
- package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerCollectibleRemoved.lua +17 -0
- package/dist/src/classes/callbacks/PostPlayerInitFirst.d.ts +8 -0
- package/dist/src/classes/callbacks/PostPlayerInitFirst.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerInitFirst.lua +39 -0
- package/dist/src/classes/callbacks/PostPlayerInitLate.d.ts +13 -0
- package/dist/src/classes/callbacks/PostPlayerInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerInitLate.lua +29 -0
- package/dist/src/classes/callbacks/PostPoopRender.d.ts +7 -0
- package/dist/src/classes/callbacks/PostPoopRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPoopRender.lua +24 -0
- package/dist/src/classes/callbacks/PostPoopUpdate.d.ts +7 -0
- package/dist/src/classes/callbacks/PostPoopUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPoopUpdate.lua +24 -0
- package/dist/src/classes/callbacks/PostPressurePlateRender.d.ts +7 -0
- package/dist/src/classes/callbacks/PostPressurePlateRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPressurePlateRender.lua +24 -0
- package/dist/src/classes/callbacks/PostPressurePlateUpdate.d.ts +7 -0
- package/dist/src/classes/callbacks/PostPressurePlateUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPressurePlateUpdate.lua +24 -0
- package/dist/src/classes/callbacks/PostProjectileInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostProjectileInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostProjectileInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostPurchase.d.ts +18 -0
- package/dist/src/classes/callbacks/PostPurchase.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPurchase.lua +56 -0
- package/dist/src/classes/callbacks/PostRockRender.d.ts +7 -0
- package/dist/src/classes/callbacks/PostRockRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostRockRender.lua +24 -0
- package/dist/src/classes/callbacks/PostRockUpdate.d.ts +7 -0
- package/dist/src/classes/callbacks/PostRockUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostRockUpdate.lua +24 -0
- package/dist/src/classes/callbacks/PostSacrifice.d.ts +15 -0
- package/dist/src/classes/callbacks/PostSacrifice.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSacrifice.lua +52 -0
- package/dist/src/classes/callbacks/PostSlotAnimationChanged.d.ts +6 -0
- package/dist/src/classes/callbacks/PostSlotAnimationChanged.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSlotAnimationChanged.lua +17 -0
- package/dist/src/classes/callbacks/PostSlotCollision.d.ts +7 -0
- package/dist/src/classes/callbacks/PostSlotCollision.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSlotCollision.lua +25 -0
- package/dist/src/classes/callbacks/PostSlotDestroyed.d.ts +14 -0
- package/dist/src/classes/callbacks/PostSlotDestroyed.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSlotDestroyed.lua +65 -0
- package/dist/src/classes/callbacks/PostSlotInit.d.ts +6 -0
- package/dist/src/classes/callbacks/PostSlotInit.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSlotInit.lua +17 -0
- package/dist/src/classes/callbacks/PostSlotRender.d.ts +6 -0
- package/dist/src/classes/callbacks/PostSlotRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSlotRender.lua +17 -0
- package/dist/src/classes/callbacks/PostSlotUpdate.d.ts +6 -0
- package/dist/src/classes/callbacks/PostSlotUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSlotUpdate.lua +17 -0
- package/dist/src/classes/callbacks/PostSpikesUpdate.d.ts +7 -0
- package/dist/src/classes/callbacks/PostSpikesUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSpikesUpdate.lua +24 -0
- package/dist/src/classes/callbacks/PostTNTRender.d.ts +7 -0
- package/dist/src/classes/callbacks/PostTNTRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostTNTRender.lua +24 -0
- package/dist/src/classes/callbacks/PostTNTUpdate.d.ts +7 -0
- package/dist/src/classes/callbacks/PostTNTUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostTNTUpdate.lua +24 -0
- package/dist/src/classes/callbacks/PostTearInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostTearInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostTearInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostTearInitVeryLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostTearInitVeryLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostTearInitVeryLate.lua +30 -0
- package/dist/src/classes/callbacks/PostTransformation.d.ts +18 -0
- package/dist/src/classes/callbacks/PostTransformation.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostTransformation.lua +53 -0
- package/dist/src/classes/callbacks/PreBerserkDeath.d.ts +1 -1
- package/dist/src/classes/callbacks/PreBerserkDeath.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PreBerserkDeath.lua +3 -4
- package/dist/src/classes/callbacks/PreItemPickup.d.ts +6 -0
- package/dist/src/classes/callbacks/PreItemPickup.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PreItemPickup.lua +17 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackCollectibleType.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.d.ts +11 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackItemPickup.lua +22 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackLaser.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackLaser.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackLaser.lua +19 -0
- package/dist/src/classes/callbacks/validation/{CustomCallbackRevive.d.ts → CustomCallbackNPC.d.ts} +4 -4
- package/dist/src/classes/callbacks/validation/CustomCallbackNPC.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackNPC.lua +22 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPickup.d.ts +12 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPickup.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPickup.lua +22 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts +5 -2
- package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts.map +1 -1
- package/dist/src/classes/callbacks/validation/CustomCallbackPoop.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPoop.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPoop.lua +20 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPressurePlate.lua +20 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackProjectile.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackRock.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackRock.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackRock.lua +20 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackSlot.d.ts +12 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackSlot.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackSlot.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.lua +4 -4
- package/dist/src/classes/callbacks/validation/CustomCallbackTNT.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackTNT.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackTNT.lua +20 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackTear.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackTear.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackTear.lua +19 -0
- package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts +1 -1
- package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/CustomGridEntities.lua +27 -30
- package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts +2 -2
- package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/CustomRevive.lua +6 -6
- package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.lua +3 -18
- package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.d.ts +12 -0
- package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.lua +33 -0
- package/dist/src/classes/features/callbackLogic/{GridEntityDetection.d.ts → GridEntityUpdateDetection.d.ts} +3 -3
- package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/{GridEntityDetection.lua → GridEntityUpdateDetection.lua} +11 -14
- package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts +20 -0
- package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/ItemPickupDetection.lua +60 -0
- package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts +47 -0
- package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.lua +154 -0
- package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts +18 -0
- package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/SlotRenderDetection.lua +51 -0
- package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts +17 -0
- package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.lua +45 -0
- package/dist/src/classes/features/other/RunInNFrames.d.ts.map +1 -1
- package/dist/src/classes/features/other/RunInNFrames.lua +9 -0
- package/dist/src/classes/features/other/SaveDataManager.d.ts +215 -0
- package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -0
- package/dist/src/classes/features/other/SaveDataManager.lua +190 -0
- package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.d.ts +6 -0
- package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.d.ts.map +1 -0
- package/dist/src/classes/features/other/saveDataManager/glowingHourGlass.lua +98 -0
- package/dist/src/classes/features/other/saveDataManager/loadFromDisk.d.ts +6 -0
- package/dist/src/classes/features/other/saveDataManager/loadFromDisk.d.ts.map +1 -0
- package/dist/src/classes/features/other/saveDataManager/loadFromDisk.lua +81 -0
- package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts +7 -0
- package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -0
- package/dist/src/classes/features/other/saveDataManager/restoreDefaults.lua +69 -0
- package/dist/src/classes/features/other/saveDataManager/saveToDisk.d.ts +5 -0
- package/dist/src/classes/features/other/saveDataManager/saveToDisk.d.ts.map +1 -0
- package/dist/src/classes/features/other/saveDataManager/saveToDisk.lua +46 -0
- package/dist/src/classes/private/CustomCallback.d.ts +2 -3
- package/dist/src/classes/private/CustomCallback.d.ts.map +1 -1
- package/dist/src/classes/private/CustomCallback.lua +2 -5
- package/dist/src/classes/private/Feature.d.ts +1 -0
- package/dist/src/classes/private/Feature.d.ts.map +1 -1
- package/dist/src/classes/private/Feature.lua +1 -0
- package/dist/src/core/upgradeMod.d.ts.map +1 -1
- package/dist/src/decorators.d.ts +1 -1
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.lua +6 -8
- package/dist/src/enums/ISCFeature.d.ts +15 -9
- package/dist/src/enums/ISCFeature.d.ts.map +1 -1
- package/dist/src/enums/ISCFeature.lua +30 -9
- package/dist/src/enums/ModCallbackCustom.d.ts +34 -20
- package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
- package/dist/src/enums/ModCallbackCustom2.d.ts +61 -20
- package/dist/src/enums/ModCallbackCustom2.d.ts.map +1 -1
- package/dist/src/enums/ModCallbackCustom2.lua +102 -20
- package/dist/src/enums/{private/SerializationBrand.d.ts → SerializationBrand.d.ts} +6 -1
- package/dist/src/enums/SerializationBrand.d.ts.map +1 -0
- package/dist/src/enums/{private/SerializationBrand.lua → SerializationBrand.lua} +1 -0
- package/dist/src/features/customItemPool.d.ts +52 -0
- package/dist/src/features/customItemPool.d.ts.map +1 -0
- package/dist/src/features/customItemPool.lua +111 -0
- package/dist/src/features/deployJSONRoom.d.ts +6 -4
- package/dist/src/features/deployJSONRoom.d.ts.map +1 -1
- package/dist/src/features/deployJSONRoom.lua +6 -4
- package/dist/src/features/fadeInRemover.d.ts.map +1 -1
- package/dist/src/features/fadeInRemover.lua +4 -16
- package/dist/src/features/saveDataManager/exports.d.ts +14 -4
- package/dist/src/features/saveDataManager/exports.d.ts.map +1 -1
- package/dist/src/features/saveDataManager/exports.lua +38 -0
- package/dist/src/features/saveDataManager/load.d.ts +2 -1
- package/dist/src/features/saveDataManager/load.d.ts.map +1 -1
- package/dist/src/features/saveDataManager/load.lua +10 -4
- package/dist/src/features/saveDataManager/main.d.ts.map +1 -1
- package/dist/src/features/saveDataManager/main.lua +12 -5
- package/dist/src/features/saveDataManager/maps.d.ts +14 -0
- package/dist/src/features/saveDataManager/maps.d.ts.map +1 -1
- package/dist/src/features/saveDataManager/maps.lua +7 -0
- package/dist/src/features.d.ts +31 -12
- package/dist/src/features.d.ts.map +1 -1
- package/dist/src/features.lua +24 -6
- package/dist/src/functions/array.d.ts.map +1 -1
- package/dist/src/functions/array.lua +4 -5
- package/dist/src/functions/bitSet128.d.ts +2 -2
- package/dist/src/functions/bitSet128.lua +3 -3
- package/dist/src/functions/color.d.ts +2 -2
- package/dist/src/functions/color.lua +3 -3
- package/dist/src/functions/decorators.d.ts +21 -0
- package/dist/src/functions/decorators.d.ts.map +1 -1
- package/dist/src/functions/deepCopy.d.ts +11 -4
- package/dist/src/functions/deepCopy.d.ts.map +1 -1
- package/dist/src/functions/deepCopy.lua +84 -32
- package/dist/src/functions/deepCopyTests.lua +1 -1
- package/dist/src/functions/initArray.d.ts +4 -4
- package/dist/src/functions/initArray.d.ts.map +1 -1
- package/dist/src/functions/initArray.lua +6 -12
- package/dist/src/functions/jsonRoom.d.ts +11 -0
- package/dist/src/functions/jsonRoom.d.ts.map +1 -1
- package/dist/src/functions/jsonRoom.lua +11 -0
- package/dist/src/functions/kColor.d.ts +2 -2
- package/dist/src/functions/kColor.lua +3 -3
- package/dist/src/functions/merge.d.ts +40 -0
- package/dist/src/functions/merge.d.ts.map +1 -0
- package/dist/src/{features/saveDataManager → functions}/merge.lua +84 -37
- package/dist/src/functions/mergeTests.d.ts +1 -2
- package/dist/src/functions/mergeTests.d.ts.map +1 -1
- package/dist/src/functions/mergeTests.lua +3 -4
- package/dist/src/functions/rng.d.ts +2 -2
- package/dist/src/functions/rng.lua +3 -3
- package/dist/src/functions/serialization.d.ts.map +1 -1
- package/dist/src/functions/serialization.lua +22 -0
- package/dist/src/functions/tstlClass.d.ts +0 -10
- package/dist/src/functions/tstlClass.d.ts.map +1 -1
- package/dist/src/functions/tstlClass.lua +2 -42
- package/dist/src/functions/vector.d.ts +2 -2
- package/dist/src/functions/vector.lua +3 -3
- package/dist/src/functions/weighted.d.ts +12 -1
- package/dist/src/functions/weighted.d.ts.map +1 -1
- package/dist/src/functions/weighted.lua +27 -10
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.lua +24 -0
- package/dist/src/interfaces/SaveData.d.ts +3 -7
- package/dist/src/interfaces/SaveData.d.ts.map +1 -1
- package/dist/src/interfaces/SaveData.lua +0 -11
- package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts +195 -2
- package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts.map +1 -1
- package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts +1 -1
- package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts.map +1 -1
- package/dist/src/objects/isaacAPIClassTypeToBrand.lua +1 -1
- package/dist/src/types/AnyClass.d.ts +2 -0
- package/dist/src/types/AnyClass.d.ts.map +1 -0
- package/dist/src/types/AnyClass.lua +2 -0
- package/dist/src/types/AnyFunction.d.ts +6 -0
- package/dist/src/types/AnyFunction.d.ts.map +1 -0
- package/dist/src/types/AnyFunction.lua +2 -0
- package/dist/src/types/FunctionTuple.d.ts +2 -4
- package/dist/src/types/FunctionTuple.d.ts.map +1 -1
- package/dist/src/types/HasFunction.d.ts +5 -0
- package/dist/src/types/HasFunction.d.ts.map +1 -0
- package/dist/src/types/HasFunction.lua +2 -0
- package/package.json +1 -1
- package/src/callbacks.ts +88 -5
- package/src/classes/ModFeature.ts +31 -1
- package/src/classes/ModUpgraded.ts +49 -21
- package/src/classes/callbacks/PostCustomRevive.ts +22 -2
- package/src/classes/callbacks/PostGridEntityBroken.ts +1 -1
- package/src/classes/callbacks/PostGridEntityCollision.ts +1 -1
- package/src/classes/callbacks/PostGridEntityCustomBroken.ts +1 -1
- package/src/classes/callbacks/PostGridEntityCustomCollision.ts +1 -1
- package/src/classes/callbacks/PostGridEntityCustomInit.ts +1 -1
- package/src/classes/callbacks/PostGridEntityCustomRemove.ts +1 -1
- package/src/classes/callbacks/PostGridEntityCustomRender.ts +11 -0
- package/src/classes/callbacks/PostGridEntityCustomStateChanged.ts +1 -1
- package/src/classes/callbacks/PostGridEntityCustomUpdate.ts +1 -1
- package/src/classes/callbacks/PostGridEntityInit.ts +1 -1
- package/src/classes/callbacks/PostGridEntityRemove.ts +1 -1
- package/src/classes/callbacks/PostGridEntityRender.ts +11 -0
- package/src/classes/callbacks/PostGridEntityStateChanged.ts +1 -1
- package/src/classes/callbacks/PostGridEntityUpdate.ts +1 -1
- package/src/classes/callbacks/PostHolyMantleRemoved.ts +5 -8
- package/src/classes/callbacks/PostItemDischarge.ts +181 -0
- package/src/classes/callbacks/PostItemPickup.ts +11 -0
- package/src/classes/callbacks/PostLaserInitLate.ts +28 -0
- package/src/classes/callbacks/PostNPCInitLate.ts +28 -0
- package/src/classes/callbacks/PostNPCStateChanged.ts +37 -0
- package/src/classes/callbacks/PostPickupCollect.ts +37 -0
- package/src/classes/callbacks/PostPickupInitFirst.ts +34 -0
- package/src/classes/callbacks/PostPickupInitLate.ts +28 -0
- package/src/classes/callbacks/PostPickupStateChanged.ts +35 -0
- package/src/classes/callbacks/PostPitUpdate.ts +21 -0
- package/src/classes/callbacks/PostPlayerChangeHealth.ts +57 -0
- package/src/classes/callbacks/PostPlayerChangeStat.ts +102 -0
- package/src/classes/callbacks/PostPlayerChangeType.ts +44 -0
- package/src/classes/callbacks/PostPlayerCollectibleAdded.ts +11 -0
- package/src/classes/callbacks/PostPlayerCollectibleRemoved.ts +11 -0
- package/src/classes/callbacks/PostPlayerInitFirst.ts +44 -0
- package/src/classes/callbacks/PostPlayerInitLate.ts +32 -0
- package/src/classes/callbacks/PostPoopRender.ts +21 -0
- package/src/classes/callbacks/PostPoopUpdate.ts +21 -0
- package/src/classes/callbacks/PostPressurePlateRender.ts +21 -0
- package/src/classes/callbacks/PostPressurePlateUpdate.ts +21 -0
- package/src/classes/callbacks/PostProjectileInitLate.ts +28 -0
- package/src/classes/callbacks/PostPurchase.ts +87 -0
- package/src/classes/callbacks/PostRockRender.ts +21 -0
- package/src/classes/callbacks/PostRockUpdate.ts +21 -0
- package/src/classes/callbacks/PostSacrifice.ts +89 -0
- package/src/classes/callbacks/PostSlotAnimationChanged.ts +11 -0
- package/src/classes/callbacks/PostSlotCollision.ts +26 -0
- package/src/classes/callbacks/PostSlotDestroyed.ts +79 -0
- package/src/classes/callbacks/PostSlotInit.ts +11 -0
- package/src/classes/callbacks/PostSlotRender.ts +11 -0
- package/src/classes/callbacks/PostSlotUpdate.ts +11 -0
- package/src/classes/callbacks/PostSpikesUpdate.ts +21 -0
- package/src/classes/callbacks/PostTNTRender.ts +21 -0
- package/src/classes/callbacks/PostTNTUpdate.ts +21 -0
- package/src/classes/callbacks/PostTearInitLate.ts +28 -0
- package/src/classes/callbacks/PostTearInitVeryLate.ts +33 -0
- package/src/classes/callbacks/PostTransformation.ts +71 -0
- package/src/classes/callbacks/PreBerserkDeath.ts +5 -8
- package/src/classes/callbacks/PreItemPickup.ts +11 -0
- package/src/classes/callbacks/validation/CustomCallbackCollectibleType.ts +32 -0
- package/src/classes/callbacks/validation/CustomCallbackItemPickup.ts +48 -0
- package/src/classes/callbacks/validation/CustomCallbackLaser.ts +27 -0
- package/src/classes/callbacks/validation/CustomCallbackNPC.ts +34 -0
- package/src/classes/callbacks/validation/CustomCallbackPickup.ts +41 -0
- package/src/classes/callbacks/validation/CustomCallbackPlayer.ts +25 -2
- package/src/classes/callbacks/validation/CustomCallbackPoop.ts +28 -0
- package/src/classes/callbacks/validation/CustomCallbackPressurePlate.ts +31 -0
- package/src/classes/callbacks/validation/CustomCallbackProjectile.ts +28 -0
- package/src/classes/callbacks/validation/CustomCallbackRock.ts +30 -0
- package/src/classes/callbacks/validation/CustomCallbackSlot.ts +37 -0
- package/src/classes/callbacks/validation/CustomCallbackSpikes.ts +4 -4
- package/src/classes/callbacks/validation/CustomCallbackTNT.ts +28 -0
- package/src/classes/callbacks/validation/CustomCallbackTear.ts +27 -0
- package/src/classes/features/callbackLogic/CustomGridEntities.ts +32 -36
- package/src/classes/features/callbackLogic/CustomRevive.ts +14 -21
- package/src/classes/features/callbackLogic/EsauJrDetection.ts +0 -4
- package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +7 -9
- package/src/classes/features/callbackLogic/GridEntityCollisionDetection.ts +0 -4
- package/src/classes/features/callbackLogic/GridEntityRenderDetection.ts +42 -0
- package/src/classes/features/callbackLogic/{GridEntityDetection.ts → GridEntityUpdateDetection.ts} +4 -20
- package/src/classes/features/callbackLogic/ItemPickupDetection.ts +91 -0
- package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +245 -0
- package/src/classes/features/callbackLogic/SlotRenderDetection.ts +64 -0
- package/src/classes/features/callbackLogic/SlotUpdateDetection.ts +57 -0
- package/src/classes/features/other/RunInNFrames.ts +7 -0
- package/src/classes/features/other/SaveDataManager.ts +492 -0
- package/src/classes/features/other/saveDataManager/glowingHourGlass.ts +138 -0
- package/src/classes/features/other/saveDataManager/loadFromDisk.ts +99 -0
- package/src/classes/features/other/saveDataManager/restoreDefaults.ts +116 -0
- package/src/classes/features/other/saveDataManager/saveToDisk.ts +70 -0
- package/src/classes/private/CustomCallback.ts +2 -6
- package/src/classes/private/Feature.ts +1 -0
- package/src/core/upgradeMod.ts +2 -4
- package/src/decorators.ts +17 -19
- package/src/enums/ISCFeature.ts +44 -39
- package/src/enums/ModCallbackCustom.ts +34 -20
- package/src/enums/ModCallbackCustom2.ts +53 -5
- package/src/enums/{private/SerializationBrand.ts → SerializationBrand.ts} +8 -2
- package/src/features/customItemPool.ts +133 -0
- package/src/features/deployJSONRoom.ts +6 -4
- package/src/features/fadeInRemover.ts +4 -22
- package/src/features/saveDataManager/exports.ts +62 -3
- package/src/features/saveDataManager/load.ts +4 -1
- package/src/features/saveDataManager/main.ts +5 -3
- package/src/features/saveDataManager/maps.ts +16 -0
- package/src/features.ts +39 -4
- package/src/functions/array.ts +8 -9
- package/src/functions/bitSet128.ts +3 -3
- package/src/functions/color.ts +3 -3
- package/src/functions/decorators.ts +22 -0
- package/src/functions/deepCopy.ts +83 -17
- package/src/functions/deepCopyTests.ts +1 -1
- package/src/functions/initArray.ts +6 -11
- package/src/functions/jsonRoom.ts +11 -0
- package/src/functions/kColor.ts +3 -3
- package/src/{features/saveDataManager → functions}/merge.ts +79 -45
- package/src/functions/mergeTests.ts +2 -3
- package/src/functions/rng.ts +3 -3
- package/src/functions/serialization.ts +25 -1
- package/src/functions/table.ts +1 -1
- package/src/functions/tstlClass.ts +3 -57
- package/src/functions/vector.ts +3 -3
- package/src/functions/weighted.ts +28 -11
- package/src/index.ts +5 -0
- package/src/interfaces/SaveData.ts +3 -34
- package/src/interfaces/private/AddCallbackParametersCustom2.ts +298 -7
- package/src/objects/isaacAPIClassTypeToBrand.ts +1 -1
- package/src/types/AnyClass.ts +1 -0
- package/src/types/AnyFunction.ts +5 -0
- package/src/types/FunctionTuple.ts +3 -4
- package/src/types/HasFunction.ts +7 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackRevive.d.ts.map +0 -1
- package/dist/src/classes/callbacks/validation/CustomCallbackRevive.lua +0 -19
- package/dist/src/classes/features/callbackLogic/GridEntityDetection.d.ts.map +0 -1
- package/dist/src/enums/private/SerializationBrand.d.ts.map +0 -1
- package/dist/src/features/saveDataManager/merge.d.ts +0 -26
- package/dist/src/features/saveDataManager/merge.d.ts.map +0 -1
- package/dist/src/features/saveDataManager/serializationBrands.d.ts +0 -2
- package/dist/src/features/saveDataManager/serializationBrands.d.ts.map +0 -1
- package/dist/src/features/saveDataManager/serializationBrands.lua +0 -19
- package/dist/src/indexLua.d.ts +0 -199
- package/dist/src/indexLua.d.ts.map +0 -1
- package/dist/src/indexLua.lua +0 -1354
- package/src/classes/callbacks/validation/CustomCallbackRevive.ts +0 -27
- package/src/features/saveDataManager/serializationBrands.ts +0 -16
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getPlayers, isChildPlayer } from "../../functions/playerIndex";
|
|
4
|
+
import { inGenesisRoom } from "../../functions/rooms";
|
|
5
|
+
import { CustomCallbackPlayer } from "./validation/CustomCallbackPlayer";
|
|
6
|
+
|
|
7
|
+
export class PostPlayerInitFirst extends CustomCallbackPlayer<ModCallbackCustom2.POST_PLAYER_INIT_FIRST> {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
|
|
11
|
+
this.callbacksUsed = [
|
|
12
|
+
[ModCallback.POST_NEW_ROOM, [this.postNewRoom]], // 19
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
this.customCallbacksUsed = [
|
|
16
|
+
[ModCallbackCustom2.POST_PLAYER_INIT_LATE, [this.postPlayerInitLate]],
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// ModCallbackCustom.POST_NEW_ROOM_REORDERED
|
|
21
|
+
private postNewRoom = () => {
|
|
22
|
+
// When a player uses the Genesis collectible, they will lose all of their collectibles,
|
|
23
|
+
// trinkets, pocket items, and stats, so they will need to be re-initialized like they would be
|
|
24
|
+
// at the beginning of a run. However, in this case, the `POST_PLAYER_INIT_FIRST` callback will
|
|
25
|
+
// not fire, because that only fires once per run. Thus, we explicitly handle this special case.
|
|
26
|
+
if (!inGenesisRoom()) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
for (const player of getPlayers()) {
|
|
31
|
+
this.fire(player);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// ModCallbackCustom.POST_PLAYER_INIT_LATE
|
|
36
|
+
private postPlayerInitLate = (player: EntityPlayer) => {
|
|
37
|
+
// We want to exclude non-real players like the Strawman keeper.
|
|
38
|
+
if (!isChildPlayer(player)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
this.fire(player);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import {
|
|
4
|
+
setAddPlayer,
|
|
5
|
+
setHasPlayer,
|
|
6
|
+
} from "../../functions/playerDataStructures";
|
|
7
|
+
import { PlayerIndex } from "../../types/PlayerIndex";
|
|
8
|
+
import { CustomCallbackPlayer } from "./validation/CustomCallbackPlayer";
|
|
9
|
+
|
|
10
|
+
export class PostPlayerInitLate extends CustomCallbackPlayer<ModCallbackCustom2.POST_PLAYER_INIT_LATE> {
|
|
11
|
+
public override v = {
|
|
12
|
+
run: {
|
|
13
|
+
playersFiredSet: new Set<PlayerIndex>(),
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
|
|
20
|
+
this.callbacksUsed = [
|
|
21
|
+
[ModCallback.POST_PEFFECT_UPDATE, [this.postPEffectUpdate]], // 4
|
|
22
|
+
];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// ModCallback.POST_PEFFECT_UPDATE
|
|
26
|
+
private postPEffectUpdate = (player: EntityPlayer) => {
|
|
27
|
+
if (!setHasPlayer(this.v.run.playersFiredSet, player)) {
|
|
28
|
+
setAddPlayer(this.v.run.playersFiredSet, player);
|
|
29
|
+
this.fire(player);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getPoops } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackPoop } from "./validation/CustomCallbackPoop";
|
|
5
|
+
|
|
6
|
+
export class PostPoopRender extends CustomCallbackPoop<ModCallbackCustom2.POST_POOP_RENDER> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_RENDER, [this.postRender]], // 2
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_RENDER (2)
|
|
16
|
+
private postRender = (): void => {
|
|
17
|
+
for (const poop of getPoops()) {
|
|
18
|
+
this.fire(poop);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getPoops } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackPoop } from "./validation/CustomCallbackPoop";
|
|
5
|
+
|
|
6
|
+
export class PostPoopUpdate extends CustomCallbackPoop<ModCallbackCustom2.POST_POOP_UPDATE> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_UPDATE, [this.postUpdate]], // 1
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_UPDATE (1)
|
|
16
|
+
private postUpdate = (): void => {
|
|
17
|
+
for (const poop of getPoops()) {
|
|
18
|
+
this.fire(poop);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getPressurePlates } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackPressurePlate } from "./validation/CustomCallbackPressurePlate";
|
|
5
|
+
|
|
6
|
+
export class PostPressurePlateRender extends CustomCallbackPressurePlate<ModCallbackCustom2.POST_PRESSURE_PLATE_RENDER> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_RENDER, [this.postRender]], // 2
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_RENDER (2)
|
|
16
|
+
private postRender = (): void => {
|
|
17
|
+
for (const pressurePlate of getPressurePlates()) {
|
|
18
|
+
this.fire(pressurePlate);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getPressurePlates } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackPressurePlate } from "./validation/CustomCallbackPressurePlate";
|
|
5
|
+
|
|
6
|
+
export class PostPressurePlateUpdate extends CustomCallbackPressurePlate<ModCallbackCustom2.POST_PRESSURE_PLATE_UPDATE> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_UPDATE, [this.postUpdate]], // 1
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_UPDATE (1)
|
|
16
|
+
private postUpdate = (): void => {
|
|
17
|
+
for (const pressurePlate of getPressurePlates()) {
|
|
18
|
+
this.fire(pressurePlate);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { CustomCallbackProjectile } from "./validation/CustomCallbackProjectile";
|
|
4
|
+
|
|
5
|
+
export class PostProjectileInitLate extends CustomCallbackProjectile<ModCallbackCustom2.POST_PROJECTILE_INIT_LATE> {
|
|
6
|
+
public override v = {
|
|
7
|
+
room: {
|
|
8
|
+
firedSet: new Set<PtrHash>(),
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
|
|
15
|
+
this.callbacksUsed = [
|
|
16
|
+
[ModCallback.POST_PROJECTILE_UPDATE, [this.postProjectileUpdate]], // 44
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// ModCallback.POST_PROJECTILE_UPDATE (44)
|
|
21
|
+
private postProjectileUpdate = (projectile: EntityProjectile): void => {
|
|
22
|
+
const ptrHash = GetPtrHash(projectile);
|
|
23
|
+
if (!this.v.room.firedSet.has(ptrHash)) {
|
|
24
|
+
this.v.room.firedSet.add(ptrHash);
|
|
25
|
+
this.fire(projectile);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getPickups } from "../../functions/entitiesSpecific";
|
|
4
|
+
import {
|
|
5
|
+
defaultMapGetPlayer,
|
|
6
|
+
mapSetPlayer,
|
|
7
|
+
} from "../../functions/playerDataStructures";
|
|
8
|
+
import { PlayerIndex } from "../../types/PlayerIndex";
|
|
9
|
+
import { DefaultMap } from "../DefaultMap";
|
|
10
|
+
import {
|
|
11
|
+
CustomCallback,
|
|
12
|
+
FireArgs,
|
|
13
|
+
OptionalArgs,
|
|
14
|
+
} from "../private/CustomCallback";
|
|
15
|
+
|
|
16
|
+
type T = ModCallbackCustom2.POST_PURCHASE;
|
|
17
|
+
|
|
18
|
+
export class PostPurchase extends CustomCallback<T> {
|
|
19
|
+
public override v = {
|
|
20
|
+
room: {
|
|
21
|
+
playersHoldingItemOnLastFrameMap: new DefaultMap<PlayerIndex, boolean>(
|
|
22
|
+
false,
|
|
23
|
+
),
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
|
|
30
|
+
this.callbacksUsed = [
|
|
31
|
+
[ModCallback.POST_PEFFECT_UPDATE, [this.postPEffectUpdate]], // 4
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// eslint-disable-next-line class-methods-use-this
|
|
36
|
+
protected override shouldFire(
|
|
37
|
+
fireArgs: FireArgs<T>,
|
|
38
|
+
optionalArgs: OptionalArgs<T>,
|
|
39
|
+
): boolean {
|
|
40
|
+
const [_player, pickup] = fireArgs;
|
|
41
|
+
const [callbackPickupVariant, callbackPickupSubType] = optionalArgs;
|
|
42
|
+
|
|
43
|
+
if (
|
|
44
|
+
callbackPickupVariant !== undefined &&
|
|
45
|
+
callbackPickupVariant !== pickup.Variant
|
|
46
|
+
) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (
|
|
51
|
+
callbackPickupSubType !== undefined &&
|
|
52
|
+
callbackPickupSubType !== pickup.SubType
|
|
53
|
+
) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ModCallback.POST_PEFFECT_UPDATE (4)
|
|
61
|
+
private postPEffectUpdate = (player: EntityPlayer) => {
|
|
62
|
+
const isHoldingItem = player.IsHoldingItem();
|
|
63
|
+
const wasHoldingItemOnLastFrame = defaultMapGetPlayer(
|
|
64
|
+
this.v.room.playersHoldingItemOnLastFrameMap,
|
|
65
|
+
player,
|
|
66
|
+
);
|
|
67
|
+
mapSetPlayer(
|
|
68
|
+
this.v.room.playersHoldingItemOnLastFrameMap,
|
|
69
|
+
player,
|
|
70
|
+
isHoldingItem,
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
if (!wasHoldingItemOnLastFrame && isHoldingItem) {
|
|
74
|
+
this.playerPickedUpNewItem(player);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
private playerPickedUpNewItem(player: EntityPlayer) {
|
|
79
|
+
const pickups = getPickups();
|
|
80
|
+
const disappearingPickup = pickups.find(
|
|
81
|
+
(pickup) => !pickup.Exists() && pickup.Price !== 0,
|
|
82
|
+
);
|
|
83
|
+
if (disappearingPickup !== undefined) {
|
|
84
|
+
this.fire(player, disappearingPickup);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getRocks } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackRock } from "./validation/CustomCallbackRock";
|
|
5
|
+
|
|
6
|
+
export class PostRockRender extends CustomCallbackRock<ModCallbackCustom2.POST_ROCK_RENDER> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_RENDER, [this.postRender]], // 2
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_RENDER (2)
|
|
16
|
+
private postRender = (): void => {
|
|
17
|
+
for (const rock of getRocks()) {
|
|
18
|
+
this.fire(rock);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getRocks } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackRock } from "./validation/CustomCallbackRock";
|
|
5
|
+
|
|
6
|
+
export class PostRockUpdate extends CustomCallbackRock<ModCallbackCustom2.POST_ROCK_UPDATE> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_UPDATE, [this.postUpdate]], // 1
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_UPDATE (1)
|
|
16
|
+
private postUpdate = (): void => {
|
|
17
|
+
for (const rock of getRocks()) {
|
|
18
|
+
this.fire(rock);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DamageFlag,
|
|
3
|
+
EntityType,
|
|
4
|
+
ModCallback,
|
|
5
|
+
RoomType,
|
|
6
|
+
} from "isaac-typescript-definitions";
|
|
7
|
+
import { game } from "../../core/cachedClasses";
|
|
8
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
9
|
+
import { hasFlag } from "../../functions/flag";
|
|
10
|
+
import {
|
|
11
|
+
CustomCallback,
|
|
12
|
+
FireArgs,
|
|
13
|
+
OptionalArgs,
|
|
14
|
+
} from "../private/CustomCallback";
|
|
15
|
+
|
|
16
|
+
type T = ModCallbackCustom2.POST_SACRIFICE;
|
|
17
|
+
|
|
18
|
+
// We don't extend from `CustomCallbackPlayer` since there is a function type overlap with
|
|
19
|
+
// `ModCallbackCustom2.POST_CUSTOM_REVIVE`. (Even though that callback does not extend from
|
|
20
|
+
// `CustomCallbackPlayer`, including this callback's signature in the list of function signatures
|
|
21
|
+
// will cause it to match.)
|
|
22
|
+
export class PostSacrifice extends CustomCallback<T> {
|
|
23
|
+
public override v = {
|
|
24
|
+
level: {
|
|
25
|
+
numSacrifices: 0,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
constructor() {
|
|
30
|
+
super();
|
|
31
|
+
|
|
32
|
+
this.callbacksUsed = [
|
|
33
|
+
[
|
|
34
|
+
ModCallback.ENTITY_TAKE_DMG,
|
|
35
|
+
[this.entityTakeDmgPlayer, EntityType.PLAYER],
|
|
36
|
+
], // 11
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// eslint-disable-next-line class-methods-use-this
|
|
41
|
+
protected override shouldFire(
|
|
42
|
+
fireArgs: FireArgs<T>,
|
|
43
|
+
optionalArgs: OptionalArgs<T>,
|
|
44
|
+
): boolean {
|
|
45
|
+
const [player] = fireArgs;
|
|
46
|
+
const [callbackPlayerVariant, callbackCharacter] = optionalArgs;
|
|
47
|
+
|
|
48
|
+
if (
|
|
49
|
+
callbackPlayerVariant !== undefined &&
|
|
50
|
+
callbackPlayerVariant !== player.Variant
|
|
51
|
+
) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const character = player.GetPlayerType();
|
|
56
|
+
|
|
57
|
+
if (callbackCharacter !== undefined && callbackCharacter !== character) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// ModCallback.ENTITY_TAKE_DMG (11)
|
|
65
|
+
// EntityType.PLAYER (1)
|
|
66
|
+
private entityTakeDmgPlayer = (
|
|
67
|
+
entity: Entity,
|
|
68
|
+
_amount: float,
|
|
69
|
+
damageFlags: BitFlags<DamageFlag>,
|
|
70
|
+
_source: EntityRef,
|
|
71
|
+
_countdownFrames: int,
|
|
72
|
+
): boolean | undefined => {
|
|
73
|
+
const player = entity.ToPlayer();
|
|
74
|
+
if (player === undefined) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const room = game.GetRoom();
|
|
79
|
+
const roomType = room.GetType();
|
|
80
|
+
const isSpikeDamage = hasFlag(damageFlags, DamageFlag.SPIKES);
|
|
81
|
+
|
|
82
|
+
if (roomType === RoomType.SACRIFICE && isSpikeDamage) {
|
|
83
|
+
this.v.level.numSacrifices++;
|
|
84
|
+
this.fire(player, this.v.level.numSacrifices);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return undefined;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ISCFeature } from "../../enums/ISCFeature";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { CustomCallbackSlot } from "./validation/CustomCallbackSlot";
|
|
4
|
+
|
|
5
|
+
export class PostSlotAnimationChanged extends CustomCallbackSlot<ModCallbackCustom2.POST_SLOT_ANIMATION_CHANGED> {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
|
|
9
|
+
this.featuresUsed = [ISCFeature.SLOT_RENDER_DETECTION];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { isSlot } from "../../functions/entityTypes";
|
|
4
|
+
import { CustomCallbackSlot } from "./validation/CustomCallbackSlot";
|
|
5
|
+
|
|
6
|
+
export class PostSlotCollision extends CustomCallbackSlot<ModCallbackCustom2.POST_SLOT_COLLISION> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.PRE_PLAYER_COLLISION, [this.prePlayerCollision]], // 33
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.PRE_PLAYER_COLLISION (33)
|
|
16
|
+
private prePlayerCollision = (
|
|
17
|
+
player: EntityPlayer,
|
|
18
|
+
collider: Entity,
|
|
19
|
+
): boolean | undefined => {
|
|
20
|
+
if (isSlot(collider)) {
|
|
21
|
+
this.fire(collider, player);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return undefined;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EntityGridCollisionClass,
|
|
3
|
+
EntityType,
|
|
4
|
+
ModCallback,
|
|
5
|
+
} from "isaac-typescript-definitions";
|
|
6
|
+
import { game } from "../../core/cachedClasses";
|
|
7
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
8
|
+
import { SlotDestructionType } from "../../enums/SlotDestructionType";
|
|
9
|
+
import { CustomCallbackSlot } from "./validation/CustomCallbackSlot";
|
|
10
|
+
|
|
11
|
+
const PRIZE_GAME_FRAME_DELAY_UNTIL_REMOVAL = 3;
|
|
12
|
+
|
|
13
|
+
export class PostSlotDestroyed extends CustomCallbackSlot<ModCallbackCustom2.POST_SLOT_DESTROYED> {
|
|
14
|
+
public override v = {
|
|
15
|
+
room: {
|
|
16
|
+
brokenSlots: new Set<PtrHash>(),
|
|
17
|
+
slotPrizeAnimationGameFrame: new Map<PtrHash, int>(),
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
|
|
24
|
+
this.callbacksUsed = [
|
|
25
|
+
[
|
|
26
|
+
ModCallback.POST_ENTITY_REMOVE,
|
|
27
|
+
[this.postEntityRemoveSlot, EntityType.SLOT],
|
|
28
|
+
],
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
this.customCallbacksUsed = [
|
|
32
|
+
[
|
|
33
|
+
ModCallbackCustom2.POST_SLOT_ANIMATION_CHANGED,
|
|
34
|
+
[this.postSlotAnimationChanged],
|
|
35
|
+
],
|
|
36
|
+
];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ModCallback.POST_ENTITY_REMOVE (67)
|
|
40
|
+
// EntityType.SLOT (6)
|
|
41
|
+
private postEntityRemoveSlot = (entity: Entity) => {
|
|
42
|
+
const slot = entity as EntitySlot;
|
|
43
|
+
const ptrHash = GetPtrHash(slot);
|
|
44
|
+
const gameFrameCount = game.GetFrameCount();
|
|
45
|
+
|
|
46
|
+
const prizeFrame = this.v.room.slotPrizeAnimationGameFrame.get(ptrHash);
|
|
47
|
+
if (prizeFrame === undefined) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (prizeFrame + PRIZE_GAME_FRAME_DELAY_UNTIL_REMOVAL === gameFrameCount) {
|
|
52
|
+
this.fire(slot, SlotDestructionType.COLLECTIBLE_PAYOUT);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED
|
|
57
|
+
private postSlotAnimationChanged = (slot: EntitySlot) => {
|
|
58
|
+
const ptrHash = GetPtrHash(slot);
|
|
59
|
+
const gameFrameCount = game.GetFrameCount();
|
|
60
|
+
|
|
61
|
+
const alreadyBroken = this.v.room.brokenSlots.has(ptrHash);
|
|
62
|
+
if (alreadyBroken) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (slot.GridCollisionClass === EntityGridCollisionClass.GROUND) {
|
|
67
|
+
this.v.room.brokenSlots.add(ptrHash);
|
|
68
|
+
this.fire(slot, SlotDestructionType.NORMAL);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const sprite = slot.GetSprite();
|
|
72
|
+
const animation = sprite.GetAnimation();
|
|
73
|
+
if (animation === "Prize") {
|
|
74
|
+
this.v.room.slotPrizeAnimationGameFrame.set(ptrHash, gameFrameCount);
|
|
75
|
+
} else {
|
|
76
|
+
this.v.room.slotPrizeAnimationGameFrame.delete(ptrHash);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ISCFeature } from "../../enums/ISCFeature";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { CustomCallbackSlot } from "./validation/CustomCallbackSlot";
|
|
4
|
+
|
|
5
|
+
export class PostSlotInit extends CustomCallbackSlot<ModCallbackCustom2.POST_SLOT_INIT> {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
|
|
9
|
+
this.featuresUsed = [ISCFeature.SLOT_UPDATE_DETECTION];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ISCFeature } from "../../enums/ISCFeature";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { CustomCallbackSlot } from "./validation/CustomCallbackSlot";
|
|
4
|
+
|
|
5
|
+
export class PostSlotRender extends CustomCallbackSlot<ModCallbackCustom2.POST_SLOT_RENDER> {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
|
|
9
|
+
this.featuresUsed = [ISCFeature.SLOT_RENDER_DETECTION];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ISCFeature } from "../../enums/ISCFeature";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { CustomCallbackSlot } from "./validation/CustomCallbackSlot";
|
|
4
|
+
|
|
5
|
+
export class PostSlotUpdate extends CustomCallbackSlot<ModCallbackCustom2.POST_SLOT_UPDATE> {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
|
|
9
|
+
this.featuresUsed = [ISCFeature.SLOT_UPDATE_DETECTION];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getSpikes } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackSpikes } from "./validation/CustomCallbackSpikes";
|
|
5
|
+
|
|
6
|
+
export class PostSpikesUpdate extends CustomCallbackSpikes<ModCallbackCustom2.POST_SPIKES_RENDER> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_UPDATE, [this.postUpdate]], // 1
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_UPDATE (1)
|
|
16
|
+
private postUpdate = (): void => {
|
|
17
|
+
for (const spikes of getSpikes()) {
|
|
18
|
+
this.fire(spikes);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getTNT } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackTNT } from "./validation/CustomCallbackTNT";
|
|
5
|
+
|
|
6
|
+
export class PostTNTRender extends CustomCallbackTNT<ModCallbackCustom2.POST_TNT_RENDER> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_RENDER, [this.postRender]], // 2
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_RENDER (2)
|
|
16
|
+
private postRender = (): void => {
|
|
17
|
+
for (const tnt of getTNT()) {
|
|
18
|
+
this.fire(tnt);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { getTNT } from "../../functions/gridEntitiesSpecific";
|
|
4
|
+
import { CustomCallbackTNT } from "./validation/CustomCallbackTNT";
|
|
5
|
+
|
|
6
|
+
export class PostTNTUpdate extends CustomCallbackTNT<ModCallbackCustom2.POST_TNT_UPDATE> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
[ModCallback.POST_UPDATE, [this.postUpdate]], // 1
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ModCallback.POST_UPDATE (1)
|
|
16
|
+
private postUpdate = (): void => {
|
|
17
|
+
for (const tnt of getTNT()) {
|
|
18
|
+
this.fire(tnt);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom2 } from "../../enums/ModCallbackCustom2";
|
|
3
|
+
import { CustomCallbackTear } from "./validation/CustomCallbackTear";
|
|
4
|
+
|
|
5
|
+
export class PostTearInitLate extends CustomCallbackTear<ModCallbackCustom2.POST_TEAR_INIT_LATE> {
|
|
6
|
+
public override v = {
|
|
7
|
+
room: {
|
|
8
|
+
firedSet: new Set<PtrHash>(),
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
|
|
15
|
+
this.callbacksUsed = [
|
|
16
|
+
[ModCallback.POST_TEAR_UPDATE, [this.postTearUpdate]], // 40
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// ModCallback.POST_TEAR_UPDATE (40)
|
|
21
|
+
private postTearUpdate = (tear: EntityTear): void => {
|
|
22
|
+
const ptrHash = GetPtrHash(tear);
|
|
23
|
+
if (!this.v.room.firedSet.has(ptrHash)) {
|
|
24
|
+
this.v.room.firedSet.add(ptrHash);
|
|
25
|
+
this.fire(tear);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|