isaacscript-common 4.0.3 → 4.0.4
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/package.json +1 -1
- package/cachedClasses.ts +0 -39
- package/callbacks/customRevive.ts +0 -215
- package/callbacks/itemPickup.ts +0 -101
- package/callbacks/postAmbush.ts +0 -73
- package/callbacks/postBombExploded.ts +0 -26
- package/callbacks/postBombInitLate.ts +0 -36
- package/callbacks/postBoneSwing.ts +0 -64
- package/callbacks/postCollectibleInitFirst.ts +0 -40
- package/callbacks/postCursedTeleport.ts +0 -185
- package/callbacks/postCustomDoorEnter.ts +0 -292
- package/callbacks/postDiceRoomActivated.ts +0 -60
- package/callbacks/postDoorRender.ts +0 -26
- package/callbacks/postDoorUpdate.ts +0 -26
- package/callbacks/postEffectInitLate.ts +0 -36
- package/callbacks/postEffectStateChanged.ts +0 -43
- package/callbacks/postEsauJr.ts +0 -109
- package/callbacks/postFamiliarInitLate.ts +0 -36
- package/callbacks/postFamiliarStateChanged.ts +0 -43
- package/callbacks/postFlip.ts +0 -90
- package/callbacks/postGreedModeWave.ts +0 -41
- package/callbacks/postGridEntity.ts +0 -164
- package/callbacks/postGridEntityCollision.ts +0 -69
- package/callbacks/postGridEntityRender.ts +0 -26
- package/callbacks/postHolyMantleRemoved.ts +0 -55
- package/callbacks/postItemDischarged.ts +0 -154
- package/callbacks/postKnifeInitLate.ts +0 -36
- package/callbacks/postLaserInitLate.ts +0 -36
- package/callbacks/postNPCInitLate.ts +0 -36
- package/callbacks/postNPCStateChanged.ts +0 -42
- package/callbacks/postNewRoomEarly.ts +0 -96
- package/callbacks/postPickupCollect.ts +0 -48
- package/callbacks/postPickupInitFirst.ts +0 -70
- package/callbacks/postPickupInitLate.ts +0 -36
- package/callbacks/postPickupStateChanged.ts +0 -43
- package/callbacks/postPitRender.ts +0 -26
- package/callbacks/postPitUpdate.ts +0 -26
- package/callbacks/postPlayerChangeHealth.ts +0 -62
- package/callbacks/postPlayerChangeType.ts +0 -56
- package/callbacks/postPlayerCollectible.ts +0 -113
- package/callbacks/postPlayerFatalDamage.ts +0 -141
- package/callbacks/postPlayerInitLate.ts +0 -37
- package/callbacks/postPlayerReordered.ts +0 -142
- package/callbacks/postPoopRender.ts +0 -26
- package/callbacks/postPoopUpdate.ts +0 -26
- package/callbacks/postPressurePlateRender.ts +0 -26
- package/callbacks/postPressurePlateUpdate.ts +0 -26
- package/callbacks/postProjectileInitLate.ts +0 -36
- package/callbacks/postPurchase.ts +0 -64
- package/callbacks/postRockRender.ts +0 -26
- package/callbacks/postRockUpdate.ts +0 -26
- package/callbacks/postRoomClearChanged.ts +0 -57
- package/callbacks/postSacrifice.ts +0 -64
- package/callbacks/postSlotDestroyed.ts +0 -92
- package/callbacks/postSlotInitUpdate.ts +0 -68
- package/callbacks/postSlotRender.ts +0 -69
- package/callbacks/postSpikesRender.ts +0 -26
- package/callbacks/postSpikesUpdate.ts +0 -26
- package/callbacks/postTNTRender.ts +0 -26
- package/callbacks/postTNTUpdate.ts +0 -26
- package/callbacks/postTearInitLate.ts +0 -36
- package/callbacks/postTearInitVeryLate.ts +0 -41
- package/callbacks/postTransformation.ts +0 -59
- package/callbacks/postTrinketBreak.ts +0 -112
- package/callbacks/preBerserkDeath.ts +0 -49
- package/callbacks/preNewLevel.ts +0 -55
- package/callbacks/reorderedCallbacks.ts +0 -168
- package/callbacks/subscriptions/postAmbushFinished.ts +0 -32
- package/callbacks/subscriptions/postAmbushStarted.ts +0 -32
- package/callbacks/subscriptions/postBombInitLate.ts +0 -32
- package/callbacks/subscriptions/postBoneExploded.ts +0 -32
- package/callbacks/subscriptions/postBoneSwing.ts +0 -24
- package/callbacks/subscriptions/postCollectibleInitFirst.ts +0 -37
- package/callbacks/subscriptions/postCursedTeleport.ts +0 -24
- package/callbacks/subscriptions/postCustomDoorEnter.ts +0 -45
- package/callbacks/subscriptions/postCustomRevive.ts +0 -36
- package/callbacks/subscriptions/postDiceRoomActivated.ts +0 -38
- package/callbacks/subscriptions/postDoorRender.ts +0 -35
- package/callbacks/subscriptions/postDoorUpdate.ts +0 -35
- package/callbacks/subscriptions/postEffectInitLate.ts +0 -32
- package/callbacks/subscriptions/postEffectStateChanged.ts +0 -40
- package/callbacks/subscriptions/postEsauJr.ts +0 -24
- package/callbacks/subscriptions/postFamiliarInitLate.ts +0 -32
- package/callbacks/subscriptions/postFamiliarStateChanged.ts +0 -40
- package/callbacks/subscriptions/postFirstEsauJr.ts +0 -24
- package/callbacks/subscriptions/postFirstFlip.ts +0 -24
- package/callbacks/subscriptions/postFlip.ts +0 -22
- package/callbacks/subscriptions/postGameStartedReordered.ts +0 -24
- package/callbacks/subscriptions/postGreedModeWave.ts +0 -24
- package/callbacks/subscriptions/postGridEntityBroken.ts +0 -51
- package/callbacks/subscriptions/postGridEntityCollision.ts +0 -54
- package/callbacks/subscriptions/postGridEntityInit.ts +0 -51
- package/callbacks/subscriptions/postGridEntityRemove.ts +0 -52
- package/callbacks/subscriptions/postGridEntityRender.ts +0 -51
- package/callbacks/subscriptions/postGridEntityStateChanged.ts +0 -55
- package/callbacks/subscriptions/postGridEntityUpdate.ts +0 -51
- package/callbacks/subscriptions/postHolyMantleRemoved.ts +0 -48
- package/callbacks/subscriptions/postItemDischarged.ts +0 -43
- package/callbacks/subscriptions/postItemPickup.ts +0 -64
- package/callbacks/subscriptions/postKnifeInitLate.ts +0 -32
- package/callbacks/subscriptions/postLaserInitLate.ts +0 -32
- package/callbacks/subscriptions/postNPCInitLate.ts +0 -32
- package/callbacks/subscriptions/postNPCStateChanged.ts +0 -42
- package/callbacks/subscriptions/postNewLevelReordered.ts +0 -22
- package/callbacks/subscriptions/postNewRoomEarly.ts +0 -22
- package/callbacks/subscriptions/postNewRoomReordered.ts +0 -22
- package/callbacks/subscriptions/postPEffectUpdateReordered.ts +0 -40
- package/callbacks/subscriptions/postPickupCollect.ts +0 -35
- package/callbacks/subscriptions/postPickupInitFirst.ts +0 -32
- package/callbacks/subscriptions/postPickupInitLate.ts +0 -32
- package/callbacks/subscriptions/postPickupStateChanged.ts +0 -40
- package/callbacks/subscriptions/postPitRender.ts +0 -35
- package/callbacks/subscriptions/postPitUpdate.ts +0 -35
- package/callbacks/subscriptions/postPlayerChangeHealth.ts +0 -49
- package/callbacks/subscriptions/postPlayerChangeType.ts +0 -40
- package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +0 -38
- package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +0 -38
- package/callbacks/subscriptions/postPlayerFatalDamage.ts +0 -68
- package/callbacks/subscriptions/postPlayerInitLate.ts +0 -40
- package/callbacks/subscriptions/postPlayerInitReordered.ts +0 -40
- package/callbacks/subscriptions/postPlayerRenderReordered.ts +0 -40
- package/callbacks/subscriptions/postPlayerUpdateReordered.ts +0 -40
- package/callbacks/subscriptions/postPoopRender.ts +0 -35
- package/callbacks/subscriptions/postPoopUpdate.ts +0 -35
- package/callbacks/subscriptions/postPressurePlateRender.ts +0 -37
- package/callbacks/subscriptions/postPressurePlateUpdate.ts +0 -37
- package/callbacks/subscriptions/postProjectileInitLate.ts +0 -35
- package/callbacks/subscriptions/postPurchase.ts +0 -31
- package/callbacks/subscriptions/postRockRender.ts +0 -35
- package/callbacks/subscriptions/postRockUpdate.ts +0 -35
- package/callbacks/subscriptions/postRoomClearChanged.ts +0 -30
- package/callbacks/subscriptions/postSacrifice.ts +0 -43
- package/callbacks/subscriptions/postSlotAnimationChanged.ts +0 -40
- package/callbacks/subscriptions/postSlotDestroyed.ts +0 -55
- package/callbacks/subscriptions/postSlotInit.ts +0 -32
- package/callbacks/subscriptions/postSlotRender.ts +0 -32
- package/callbacks/subscriptions/postSlotUpdate.ts +0 -32
- package/callbacks/subscriptions/postSpikesRender.ts +0 -35
- package/callbacks/subscriptions/postSpikesUpdate.ts +0 -35
- package/callbacks/subscriptions/postTNTRender.ts +0 -35
- package/callbacks/subscriptions/postTNTUpdate.ts +0 -35
- package/callbacks/subscriptions/postTearInitLate.ts +0 -32
- package/callbacks/subscriptions/postTearInitVeryLate.ts +0 -32
- package/callbacks/subscriptions/postTransformation.ts +0 -40
- package/callbacks/subscriptions/postTrinketBreak.ts +0 -38
- package/callbacks/subscriptions/preBerserkDeath.ts +0 -42
- package/callbacks/subscriptions/preCustomRevive.ts +0 -46
- package/callbacks/subscriptions/preItemPickup.ts +0 -64
- package/callbacks/subscriptions/preNewLevel.ts +0 -24
- package/classes/DefaultMap.ts +0 -174
- package/classes/ModUpgraded.ts +0 -84
- package/constants.ts +0 -162
- package/constantsFirstLast.ts +0 -217
- package/enums/AmbushType.ts +0 -4
- package/enums/HealthType.ts +0 -16
- package/enums/ModCallbackCustom.ts +0 -1278
- package/enums/PocketItemType.ts +0 -8
- package/enums/SerializationType.ts +0 -5
- package/enums/SlotDestructionType.ts +0 -4
- package/enums/private/CopyableIsaacAPIClassType.ts +0 -7
- package/enums/private/SaveDataKey.ts +0 -14
- package/enums/private/SerializationBrand.ts +0 -42
- package/features/characterHealthConversion.ts +0 -111
- package/features/characterStats.ts +0 -61
- package/features/debugDisplay/debugDisplay.ts +0 -221
- package/features/debugDisplay/exports.ts +0 -368
- package/features/debugDisplay/v.ts +0 -65
- package/features/deployJSONRoom.ts +0 -743
- package/features/disableInputs.ts +0 -193
- package/features/disableSound.ts +0 -77
- package/features/extraConsoleCommands/commandsDisplay.ts +0 -290
- package/features/extraConsoleCommands/commandsSubroutines.ts +0 -139
- package/features/extraConsoleCommands/init.ts +0 -334
- package/features/extraConsoleCommands/listCommands.ts +0 -1299
- package/features/extraConsoleCommands/v.ts +0 -14
- package/features/fadeInRemover.ts +0 -60
- package/features/fastReset.ts +0 -75
- package/features/forgottenSwitch.ts +0 -50
- package/features/getCollectibleItemPoolType.ts +0 -66
- package/features/persistentEntities.ts +0 -183
- package/features/playerInventory.ts +0 -135
- package/features/ponyDetection.ts +0 -74
- package/features/preventCollectibleRotation.ts +0 -115
- package/features/runInNFrames.ts +0 -148
- package/features/saveDataManager/constants.ts +0 -4
- package/features/saveDataManager/exports.ts +0 -229
- package/features/saveDataManager/load.ts +0 -99
- package/features/saveDataManager/main.ts +0 -195
- package/features/saveDataManager/maps.ts +0 -13
- package/features/saveDataManager/merge.ts +0 -194
- package/features/saveDataManager/save.ts +0 -74
- package/features/saveDataManager/serializationBrand.ts +0 -16
- package/features/sirenHelpers.ts +0 -129
- package/features/taintedLazarusPlayers.ts +0 -113
- package/featuresInitialized.ts +0 -20
- package/functions/ambush.ts +0 -47
- package/functions/array.ts +0 -410
- package/functions/benchmark.ts +0 -36
- package/functions/bitwise.ts +0 -24
- package/functions/bombs.ts +0 -12
- package/functions/boss.ts +0 -227
- package/functions/cacheFlag.ts +0 -12
- package/functions/cards.ts +0 -271
- package/functions/challenges.ts +0 -13
- package/functions/character.ts +0 -126
- package/functions/charge.ts +0 -237
- package/functions/chargeBar.ts +0 -67
- package/functions/collectibleCacheFlag.ts +0 -90
- package/functions/collectibleSet.ts +0 -56
- package/functions/collectibleTag.ts +0 -89
- package/functions/collectibles.ts +0 -659
- package/functions/color.ts +0 -128
- package/functions/debug.ts +0 -68
- package/functions/deepCopy.ts +0 -535
- package/functions/deepCopyTests.ts +0 -386
- package/functions/direction.ts +0 -49
- package/functions/doors.ts +0 -347
- package/functions/easing.ts +0 -182
- package/functions/eden.ts +0 -47
- package/functions/effects.ts +0 -20
- package/functions/entity.ts +0 -439
- package/functions/entitySpecific.ts +0 -889
- package/functions/entityTypes.ts +0 -6
- package/functions/enums.ts +0 -146
- package/functions/familiars.ts +0 -106
- package/functions/flag.ts +0 -165
- package/functions/flying.ts +0 -117
- package/functions/globals.ts +0 -242
- package/functions/gridEntity.ts +0 -511
- package/functions/gridEntitySpecific.ts +0 -112
- package/functions/input.ts +0 -139
- package/functions/isaacAPIClass.ts +0 -67
- package/functions/jsonHelpers.ts +0 -45
- package/functions/jsonRoom.ts +0 -100
- package/functions/kColor.ts +0 -129
- package/functions/language.ts +0 -13
- package/functions/level.ts +0 -31
- package/functions/log.ts +0 -720
- package/functions/map.ts +0 -56
- package/functions/math.ts +0 -149
- package/functions/mergeTests.ts +0 -288
- package/functions/npc.ts +0 -148
- package/functions/pickupVariants.ts +0 -60
- package/functions/pickups.ts +0 -499
- package/functions/pills.ts +0 -205
- package/functions/player.ts +0 -1056
- package/functions/playerDataStructures.ts +0 -150
- package/functions/playerHealth.ts +0 -382
- package/functions/playerIndex.ts +0 -195
- package/functions/pocketItems.ts +0 -149
- package/functions/positionVelocity.ts +0 -188
- package/functions/random.ts +0 -77
- package/functions/revive.ts +0 -201
- package/functions/rng.ts +0 -172
- package/functions/roomData.ts +0 -199
- package/functions/roomGrid.ts +0 -109
- package/functions/roomShape.ts +0 -80
- package/functions/rooms.ts +0 -648
- package/functions/run.ts +0 -36
- package/functions/saveFile.ts +0 -128
- package/functions/seeds.ts +0 -19
- package/functions/serialization.ts +0 -91
- package/functions/set.ts +0 -95
- package/functions/sound.ts +0 -9
- package/functions/spawnCollectible.ts +0 -104
- package/functions/sprite.ts +0 -107
- package/functions/stage.ts +0 -125
- package/functions/string.ts +0 -47
- package/functions/table.ts +0 -189
- package/functions/tears.ts +0 -32
- package/functions/transformations.ts +0 -131
- package/functions/trinketCacheFlag.ts +0 -60
- package/functions/trinketGive.ts +0 -157
- package/functions/trinkets.ts +0 -215
- package/functions/tstlClass.ts +0 -157
- package/functions/types.ts +0 -36
- package/functions/ui.ts +0 -138
- package/functions/utils.ts +0 -189
- package/functions/vector.ts +0 -126
- package/index.ts +0 -172
- package/initCustomCallbacks.ts +0 -132
- package/initFeatures.ts +0 -39
- package/interfaces/AddCallbackParameterCustom.ts +0 -188
- package/interfaces/ChargeBarSprites.ts +0 -12
- package/interfaces/JSONDoor.ts +0 -13
- package/interfaces/JSONEntity.ts +0 -16
- package/interfaces/JSONRoom.ts +0 -36
- package/interfaces/JSONRooms.ts +0 -12
- package/interfaces/JSONSpawn.ts +0 -14
- package/interfaces/PlayerHealth.ts +0 -16
- package/interfaces/PocketItemDescription.ts +0 -9
- package/interfaces/SaveData.ts +0 -29
- package/interfaces/TrinketSituation.ts +0 -9
- package/interfaces/private/TSTLClassMetatable.ts +0 -8
- package/maps/PHDPillConversions.ts +0 -21
- package/maps/cardMap.ts +0 -209
- package/maps/characterMap.ts +0 -87
- package/maps/collectibleDescriptionMap.ts +0 -732
- package/maps/collectibleNameMap.ts +0 -731
- package/maps/defaultPlayerStatMap.ts +0 -17
- package/maps/falsePHDPillConversions.ts +0 -35
- package/maps/gridEntityTypeToBrokenStateMap.ts +0 -50
- package/maps/gridEntityXMLMap.ts +0 -176
- package/maps/pillEffectMap.ts +0 -88
- package/maps/roomShapeToTopLeftWallGridIndexMap.ts +0 -18
- package/maps/roomTypeMap.ts +0 -40
- package/maps/trinketDescriptionMap.ts +0 -200
- package/maps/trinketNameMap.ts +0 -198
- package/objects/LRoomShapeToRectangles.ts +0 -44
- package/objects/callbackRegisterFunctions.ts +0 -187
- package/objects/cardDescriptions.ts +0 -105
- package/objects/cardNames.ts +0 -105
- package/objects/cardTypes.ts +0 -104
- package/objects/challengeNames.ts +0 -52
- package/objects/characterNames.ts +0 -48
- package/objects/coinSubTypeToValue.ts +0 -14
- package/objects/colors.ts +0 -16
- package/objects/directionNames.ts +0 -11
- package/objects/directionToDegrees.ts +0 -11
- package/objects/directionToVector.ts +0 -12
- package/objects/doorSlotFlagToDoorSlot.ts +0 -16
- package/objects/doorSlotToDirection.ts +0 -14
- package/objects/isaacAPIClassTypeToBrand.ts +0 -11
- package/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
- package/objects/languageNames.ts +0 -13
- package/objects/oppositeDoorSlots.ts +0 -15
- package/objects/pillEffectClasses.ts +0 -63
- package/objects/pillEffectNames.ts +0 -57
- package/objects/pillEffectTypes.ts +0 -62
- package/objects/roomShapeBounds.ts +0 -71
- package/objects/roomShapeLayoutSizes.ts +0 -45
- package/objects/roomShapeToBottomRightPosition.ts +0 -25
- package/objects/roomShapeToDoorSlots.ts +0 -83
- package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +0 -127
- package/objects/roomShapeToGridWidth.ts +0 -21
- package/objects/roomShapeToTopLeftPosition.ts +0 -26
- package/objects/roomShapeVolumes.ts +0 -38
- package/objects/roomTypeNames.ts +0 -36
- package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
- package/objects/stageTypeToLetter.ts +0 -15
- package/objects/transformationNames.ts +0 -18
- package/patchErrorFunctions.ts +0 -92
- package/sets/LRoomShapesSet.ts +0 -8
- package/sets/bossSets.ts +0 -470
- package/sets/charactersThatStartWithAnActiveItemSet.ts +0 -16
- package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +0 -7
- package/sets/charactersWithFreeDevilDealsSet.ts +0 -4
- package/sets/charactersWithNoRedHeartsSet.ts +0 -17
- package/sets/charactersWithNoSoulHeartsSet.ts +0 -14
- package/sets/chestPickupVariantsSet.ts +0 -16
- package/sets/familiarsThatShootPlayerTearsSet.ts +0 -13
- package/sets/lostStyleCharactersSet.ts +0 -13
- package/sets/mineShaftRoomSubTypesSet.ts +0 -10
- package/sets/redHeartSubTypesSet.ts +0 -7
- package/sets/sinEntityTypesSet.ts +0 -11
- package/sets/singleUseActiveCollectibleTypesSet.ts +0 -13
- package/sets/storyBossesSet.ts +0 -17
- package/types/AnyEntity.ts +0 -12
- package/types/AwaitingTextInput.d.ts +0 -2
- package/types/CollectibleIndex.ts +0 -16
- package/types/PickingUpItem.ts +0 -89
- package/types/PlayerIndex.ts +0 -13
- package/types/private/IsaacAPIClass.ts +0 -3
- package/types/private/SerializedIsaacAPIClass.ts +0 -3
- package/types/private/TSTLClass.ts +0 -3
- package/upgradeMod.ts +0 -55
package/callbacks/postEsauJr.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
// This provides the logic for:
|
|
2
|
-
// - POST_ESAU_JR
|
|
3
|
-
// - POST_FIRST_ESAU_JR
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
CollectibleType,
|
|
7
|
-
ControllerIndex,
|
|
8
|
-
ModCallback,
|
|
9
|
-
UseFlag,
|
|
10
|
-
} from "isaac-typescript-definitions";
|
|
11
|
-
import { game } from "../cachedClasses";
|
|
12
|
-
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
13
|
-
import { getPlayers } from "../functions/playerIndex";
|
|
14
|
-
import {
|
|
15
|
-
postEsauJrFire,
|
|
16
|
-
postEsauJrHasSubscriptions,
|
|
17
|
-
} from "./subscriptions/postEsauJr";
|
|
18
|
-
import {
|
|
19
|
-
postFirstEsauJrFire,
|
|
20
|
-
postFirstEsauJrHasSubscriptions,
|
|
21
|
-
} from "./subscriptions/postFirstEsauJr";
|
|
22
|
-
|
|
23
|
-
const v = {
|
|
24
|
-
run: {
|
|
25
|
-
usedEsauJrFrame: null as int | null,
|
|
26
|
-
usedEsauJrControllerIndex: null as ControllerIndex | null,
|
|
27
|
-
usedEsauJrAtLeastOnce: false,
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/** @internal */
|
|
32
|
-
export function postEsauJrCallbacksInit(mod: Mod): void {
|
|
33
|
-
saveDataManager("postEsauJr", v, hasSubscriptions);
|
|
34
|
-
|
|
35
|
-
mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
|
|
36
|
-
mod.AddCallback(
|
|
37
|
-
ModCallback.POST_USE_ITEM,
|
|
38
|
-
useItemEsauJr,
|
|
39
|
-
CollectibleType.ESAU_JR,
|
|
40
|
-
); // 3
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function hasSubscriptions() {
|
|
44
|
-
return postEsauJrHasSubscriptions() || postFirstEsauJrHasSubscriptions();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// ModCallback.POST_UPDATE (1)
|
|
48
|
-
function postUpdate() {
|
|
49
|
-
if (!hasSubscriptions()) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const gameFrameCount = game.GetFrameCount();
|
|
54
|
-
|
|
55
|
-
// Check to see if it is the frame after the player has used Esau Jr.
|
|
56
|
-
if (
|
|
57
|
-
v.run.usedEsauJrFrame === null ||
|
|
58
|
-
gameFrameCount < v.run.usedEsauJrFrame + 1
|
|
59
|
-
) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
v.run.usedEsauJrFrame = null;
|
|
63
|
-
|
|
64
|
-
// Find the player corresponding to the player who used Esau Jr. a frame ago (via matching the
|
|
65
|
-
// ControllerIndex).
|
|
66
|
-
if (v.run.usedEsauJrControllerIndex === null) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const player = getPlayerWithControllerIndex(v.run.usedEsauJrControllerIndex);
|
|
70
|
-
v.run.usedEsauJrControllerIndex = null;
|
|
71
|
-
if (player === undefined) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if (!v.run.usedEsauJrAtLeastOnce) {
|
|
76
|
-
v.run.usedEsauJrAtLeastOnce = true;
|
|
77
|
-
postFirstEsauJrFire(player);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
postEsauJrFire(player);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function getPlayerWithControllerIndex(controllerIndex: ControllerIndex) {
|
|
84
|
-
const players = getPlayers();
|
|
85
|
-
return players.find((player) => player.ControllerIndex === controllerIndex);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// ModCallback.POST_USE_ITEM (3)
|
|
89
|
-
// CollectibleType.ESAU_JR (703)
|
|
90
|
-
function useItemEsauJr(
|
|
91
|
-
_collectibleType: CollectibleType,
|
|
92
|
-
_rng: RNG,
|
|
93
|
-
player: EntityPlayer,
|
|
94
|
-
_useFlags: BitFlags<UseFlag>,
|
|
95
|
-
_activeSlot: int,
|
|
96
|
-
_customVarData: int,
|
|
97
|
-
): boolean | undefined {
|
|
98
|
-
if (!hasSubscriptions()) {
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const gameFrameCount = game.GetFrameCount();
|
|
103
|
-
|
|
104
|
-
// The player only changes to Esau Jr. on the frame after the item is used.
|
|
105
|
-
v.run.usedEsauJrFrame = gameFrameCount + 1;
|
|
106
|
-
v.run.usedEsauJrControllerIndex = player.ControllerIndex;
|
|
107
|
-
|
|
108
|
-
return undefined;
|
|
109
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
-
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
3
|
-
import {
|
|
4
|
-
postFamiliarInitLateFire,
|
|
5
|
-
postFamiliarInitLateHasSubscriptions,
|
|
6
|
-
} from "./subscriptions/postFamiliarInitLate";
|
|
7
|
-
|
|
8
|
-
const v = {
|
|
9
|
-
run: {
|
|
10
|
-
firedSet: new Set<PtrHash>(),
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
/** @internal */
|
|
15
|
-
export function postFamiliarInitLateInit(mod: Mod): void {
|
|
16
|
-
saveDataManager("postFamiliarInitLate", v, hasSubscriptions);
|
|
17
|
-
|
|
18
|
-
mod.AddCallback(ModCallback.POST_FAMILIAR_UPDATE, postFamiliarUpdate); // 6
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function hasSubscriptions() {
|
|
22
|
-
return postFamiliarInitLateHasSubscriptions();
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// ModCallback.POST_FAMILIAR_UPDATE (6)
|
|
26
|
-
function postFamiliarUpdate(familiar: EntityFamiliar) {
|
|
27
|
-
if (!hasSubscriptions()) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const index = GetPtrHash(familiar);
|
|
32
|
-
if (!v.run.firedSet.has(index)) {
|
|
33
|
-
v.run.firedSet.add(index);
|
|
34
|
-
postFamiliarInitLateFire(familiar);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
-
import { DefaultMap } from "../classes/DefaultMap";
|
|
3
|
-
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
4
|
-
import {
|
|
5
|
-
postFamiliarStateChangedFire,
|
|
6
|
-
postFamiliarStateChangedHasSubscriptions,
|
|
7
|
-
} from "./subscriptions/postFamiliarStateChanged";
|
|
8
|
-
|
|
9
|
-
const v = {
|
|
10
|
-
run: {
|
|
11
|
-
familiarStateMap: new DefaultMap<PtrHash, int, [int]>((state) => state),
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
/** @internal */
|
|
16
|
-
export function postFamiliarStateChangedInit(mod: Mod): void {
|
|
17
|
-
saveDataManager("postFamiliarStateChanged", v, hasSubscriptions);
|
|
18
|
-
|
|
19
|
-
mod.AddCallback(ModCallback.POST_FAMILIAR_UPDATE, postFamiliarUpdate); // 6
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function hasSubscriptions() {
|
|
23
|
-
return postFamiliarStateChangedHasSubscriptions();
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// ModCallback.POST_FAMILIAR_UPDATE (6)
|
|
27
|
-
function postFamiliarUpdate(familiar: EntityFamiliar) {
|
|
28
|
-
if (!hasSubscriptions()) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const ptrHash = GetPtrHash(familiar);
|
|
33
|
-
const previousState = v.run.familiarStateMap.getAndSetDefault(
|
|
34
|
-
ptrHash,
|
|
35
|
-
familiar.State,
|
|
36
|
-
);
|
|
37
|
-
const currentState = familiar.State;
|
|
38
|
-
v.run.familiarStateMap.set(ptrHash, currentState);
|
|
39
|
-
|
|
40
|
-
if (previousState !== currentState) {
|
|
41
|
-
postFamiliarStateChangedFire(familiar, previousState, currentState);
|
|
42
|
-
}
|
|
43
|
-
}
|
package/callbacks/postFlip.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// This provides the logic for:
|
|
2
|
-
// - POST_FLIP
|
|
3
|
-
// - POST_FIRST_FLIP
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
CollectibleType,
|
|
7
|
-
ModCallback,
|
|
8
|
-
PlayerType,
|
|
9
|
-
UseFlag,
|
|
10
|
-
} from "isaac-typescript-definitions";
|
|
11
|
-
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
12
|
-
import { getPlayersOfType, isTaintedLazarus } from "../functions/player";
|
|
13
|
-
import {
|
|
14
|
-
postFirstFlipFire,
|
|
15
|
-
postFirstFlipHasSubscriptions,
|
|
16
|
-
} from "./subscriptions/postFirstFlip";
|
|
17
|
-
import {
|
|
18
|
-
postFlipFire,
|
|
19
|
-
postFlipHasSubscriptions,
|
|
20
|
-
} from "./subscriptions/postFlip";
|
|
21
|
-
|
|
22
|
-
const v = {
|
|
23
|
-
run: {
|
|
24
|
-
usedFlipAtLeastOnce: false,
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/** @internal */
|
|
29
|
-
export function postFlipCallbacksInit(mod: Mod): void {
|
|
30
|
-
saveDataManager("postFlip", v, hasSubscriptions);
|
|
31
|
-
|
|
32
|
-
mod.AddCallback(ModCallback.POST_USE_ITEM, useItemFlip, CollectibleType.FLIP); // 3
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function hasSubscriptions() {
|
|
36
|
-
return postFlipHasSubscriptions() || postFirstFlipHasSubscriptions();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// ModCallback.POST_USE_ITEM (3)
|
|
40
|
-
// CollectibleType.FLIP (711)
|
|
41
|
-
function useItemFlip(
|
|
42
|
-
_collectibleType: CollectibleType,
|
|
43
|
-
_rng: RNG,
|
|
44
|
-
player: EntityPlayer,
|
|
45
|
-
_useFlags: BitFlags<UseFlag>,
|
|
46
|
-
_activeSlot: int,
|
|
47
|
-
_customVarData: int,
|
|
48
|
-
): boolean | undefined {
|
|
49
|
-
if (!hasSubscriptions()) {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (!isTaintedLazarus(player)) {
|
|
54
|
-
return undefined;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// The player passed as part of the callback will be the old Lazarus that used the Flip item. We
|
|
58
|
-
// pass the new Lazarus to the callback subscribers.
|
|
59
|
-
const newLazarus = getNewLazarus(player);
|
|
60
|
-
if (newLazarus === undefined) {
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (!v.run.usedFlipAtLeastOnce) {
|
|
65
|
-
v.run.usedFlipAtLeastOnce = true;
|
|
66
|
-
postFirstFlipFire(newLazarus);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
postFlipFire(newLazarus);
|
|
70
|
-
|
|
71
|
-
return undefined;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
function getNewLazarus(oldLazarus: EntityPlayer) {
|
|
75
|
-
const oldCharacter = oldLazarus.GetPlayerType();
|
|
76
|
-
|
|
77
|
-
let newCharacter: PlayerType;
|
|
78
|
-
if (oldCharacter === PlayerType.LAZARUS_B) {
|
|
79
|
-
newCharacter = PlayerType.LAZARUS_2_B;
|
|
80
|
-
} else if (oldCharacter === PlayerType.LAZARUS_2_B) {
|
|
81
|
-
newCharacter = PlayerType.LAZARUS_B;
|
|
82
|
-
} else {
|
|
83
|
-
error("Failed to determine the character in the postFlip callback.");
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
const playersOfType = getPlayersOfType(newCharacter);
|
|
87
|
-
return playersOfType.find(
|
|
88
|
-
(player) => player.FrameCount === oldLazarus.FrameCount,
|
|
89
|
-
);
|
|
90
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
-
import { game } from "../cachedClasses";
|
|
3
|
-
import { ModUpgraded } from "../classes/ModUpgraded";
|
|
4
|
-
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
5
|
-
import {
|
|
6
|
-
postGreedModeWaveFire,
|
|
7
|
-
postGreedModeWaveHasSubscriptions,
|
|
8
|
-
} from "./subscriptions/postGreedModeWave";
|
|
9
|
-
|
|
10
|
-
const v = {
|
|
11
|
-
run: {
|
|
12
|
-
currentGreedWave: 0,
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/** @internal */
|
|
17
|
-
export function postGreedModeWaveInit(mod: ModUpgraded): void {
|
|
18
|
-
saveDataManager("postModeGreedWave", v, hasSubscriptions);
|
|
19
|
-
|
|
20
|
-
mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function hasSubscriptions() {
|
|
24
|
-
return postGreedModeWaveHasSubscriptions();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// ModCallback.POST_UPDATE (1)
|
|
28
|
-
function postUpdate() {
|
|
29
|
-
if (!hasSubscriptions()) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const level = game.GetLevel();
|
|
34
|
-
const newWave = level.GreedModeWave;
|
|
35
|
-
const oldWave = v.run.currentGreedWave;
|
|
36
|
-
v.run.currentGreedWave = newWave;
|
|
37
|
-
|
|
38
|
-
if (newWave > oldWave) {
|
|
39
|
-
postGreedModeWaveFire(oldWave, newWave);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
// This provides the logic for the following callbacks:
|
|
2
|
-
// - PostGridEntityInit
|
|
3
|
-
// - PostGridEntityUpdate
|
|
4
|
-
// - PostGridEntityRemove
|
|
5
|
-
// - PostGridEntityStateChanged
|
|
6
|
-
// - PostGridEntityBroken
|
|
7
|
-
|
|
8
|
-
import { GridEntityType, ModCallback } from "isaac-typescript-definitions";
|
|
9
|
-
import { ModUpgraded } from "../classes/ModUpgraded";
|
|
10
|
-
import { ModCallbackCustom } from "../enums/ModCallbackCustom";
|
|
11
|
-
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
12
|
-
import {
|
|
13
|
-
getGridEntitiesMap,
|
|
14
|
-
isGridEntityBroken,
|
|
15
|
-
} from "../functions/gridEntity";
|
|
16
|
-
import {
|
|
17
|
-
postGridEntityBrokenFire,
|
|
18
|
-
postGridEntityBrokenHasSubscriptions,
|
|
19
|
-
} from "./subscriptions/postGridEntityBroken";
|
|
20
|
-
import {
|
|
21
|
-
postGridEntityInitFire,
|
|
22
|
-
postGridEntityInitHasSubscriptions,
|
|
23
|
-
} from "./subscriptions/postGridEntityInit";
|
|
24
|
-
import {
|
|
25
|
-
postGridEntityRemoveFire,
|
|
26
|
-
postGridEntityRemoveHasSubscriptions,
|
|
27
|
-
} from "./subscriptions/postGridEntityRemove";
|
|
28
|
-
import {
|
|
29
|
-
postGridEntityStateChangedFire,
|
|
30
|
-
postGridEntityStateChangedHasSubscriptions,
|
|
31
|
-
} from "./subscriptions/postGridEntityStateChanged";
|
|
32
|
-
import {
|
|
33
|
-
postGridEntityUpdateFire,
|
|
34
|
-
postGridEntityUpdateHasSubscriptions,
|
|
35
|
-
} from "./subscriptions/postGridEntityUpdate";
|
|
36
|
-
|
|
37
|
-
type GridEntityTuple = [
|
|
38
|
-
gridEntityType: GridEntityType,
|
|
39
|
-
gridEntityVariant: int,
|
|
40
|
-
state: int,
|
|
41
|
-
];
|
|
42
|
-
|
|
43
|
-
const v = {
|
|
44
|
-
room: {
|
|
45
|
-
/** Indexed by grid index. */
|
|
46
|
-
initializedGridEntities: new Map<int, GridEntityTuple>(),
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/** @internal */
|
|
51
|
-
export function postGridEntityCallbacksInit(mod: ModUpgraded): void {
|
|
52
|
-
saveDataManager("postGridEntity", v, hasSubscriptions);
|
|
53
|
-
|
|
54
|
-
mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
|
|
55
|
-
mod.AddCallbackCustom(
|
|
56
|
-
ModCallbackCustom.POST_NEW_ROOM_REORDERED,
|
|
57
|
-
postNewRoomReordered,
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function hasSubscriptions() {
|
|
62
|
-
return (
|
|
63
|
-
postGridEntityInitHasSubscriptions() ||
|
|
64
|
-
postGridEntityUpdateHasSubscriptions() ||
|
|
65
|
-
postGridEntityRemoveHasSubscriptions() ||
|
|
66
|
-
postGridEntityStateChangedHasSubscriptions() ||
|
|
67
|
-
postGridEntityBrokenHasSubscriptions()
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// ModCallback.POST_UPDATE (1)
|
|
72
|
-
function postUpdate() {
|
|
73
|
-
if (!hasSubscriptions()) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const gridEntitiesMap = getGridEntitiesMap();
|
|
78
|
-
|
|
79
|
-
// We check for removed grid entities first so that grid entities that change type will count as
|
|
80
|
-
// being removed and fire the PostGridEntityRemoved callback.
|
|
81
|
-
checkGridEntitiesRemoved(gridEntitiesMap);
|
|
82
|
-
|
|
83
|
-
for (const [gridIndex, gridEntity] of gridEntitiesMap.entries()) {
|
|
84
|
-
checkGridEntityStateChanged(gridIndex, gridEntity);
|
|
85
|
-
checkNewGridEntity(gridIndex, gridEntity);
|
|
86
|
-
postGridEntityUpdateFire(gridEntity);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function checkGridEntitiesRemoved(gridEntitiesMap: Map<int, GridEntity>) {
|
|
91
|
-
for (const [
|
|
92
|
-
gridIndex,
|
|
93
|
-
gridEntityTuple,
|
|
94
|
-
] of v.room.initializedGridEntities.entries()) {
|
|
95
|
-
const [storedGridEntityType, storedGridEntityVariant] = gridEntityTuple;
|
|
96
|
-
const gridEntity = gridEntitiesMap.get(gridIndex);
|
|
97
|
-
if (
|
|
98
|
-
gridEntity === undefined ||
|
|
99
|
-
gridEntity.GetType() !== storedGridEntityType
|
|
100
|
-
) {
|
|
101
|
-
v.room.initializedGridEntities.delete(gridIndex);
|
|
102
|
-
postGridEntityRemoveFire(
|
|
103
|
-
gridIndex,
|
|
104
|
-
storedGridEntityType,
|
|
105
|
-
storedGridEntityVariant,
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function checkGridEntityStateChanged(gridIndex: int, gridEntity: GridEntity) {
|
|
112
|
-
const gridEntityTuple = v.room.initializedGridEntities.get(gridIndex);
|
|
113
|
-
if (gridEntityTuple === undefined) {
|
|
114
|
-
// This grid entity did not exist a frame ago; we don't want to fire the state changed callback
|
|
115
|
-
// on the first frame that it exists.
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
const [_gridEntityType, _gridEntityVariant, oldState] = gridEntityTuple;
|
|
120
|
-
const newState = gridEntity.State;
|
|
121
|
-
if (oldState !== newState) {
|
|
122
|
-
updateTupleInMap(gridEntity);
|
|
123
|
-
postGridEntityStateChangedFire(gridEntity, oldState, newState);
|
|
124
|
-
|
|
125
|
-
if (isGridEntityBroken(gridEntity)) {
|
|
126
|
-
postGridEntityBrokenFire(gridEntity);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
function checkNewGridEntity(gridIndex: int, gridEntity: GridEntity) {
|
|
132
|
-
const gridEntityType = gridEntity.GetType();
|
|
133
|
-
const gridEntityTuple = v.room.initializedGridEntities.get(gridIndex);
|
|
134
|
-
|
|
135
|
-
if (gridEntityTuple === undefined || gridEntityTuple[0] !== gridEntityType) {
|
|
136
|
-
updateTupleInMap(gridEntity);
|
|
137
|
-
postGridEntityInitFire(gridEntity);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function updateTupleInMap(gridEntity: GridEntity) {
|
|
142
|
-
const gridEntityType = gridEntity.GetType();
|
|
143
|
-
const gridEntityVariant = gridEntity.GetVariant();
|
|
144
|
-
const gridIndex = gridEntity.GetGridIndex();
|
|
145
|
-
const newTuple: GridEntityTuple = [
|
|
146
|
-
gridEntityType,
|
|
147
|
-
gridEntityVariant,
|
|
148
|
-
gridEntity.State,
|
|
149
|
-
];
|
|
150
|
-
v.room.initializedGridEntities.set(gridIndex, newTuple);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// ModCallbackCustom.POST_NEW_ROOM_REORDERED
|
|
154
|
-
function postNewRoomReordered() {
|
|
155
|
-
if (!hasSubscriptions()) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
const gridEntitiesMap = getGridEntitiesMap();
|
|
160
|
-
|
|
161
|
-
for (const [gridIndex, gridEntity] of gridEntitiesMap.entries()) {
|
|
162
|
-
checkNewGridEntity(gridIndex, gridEntity);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { GridCollisionClass, ModCallback } from "isaac-typescript-definitions";
|
|
2
|
-
import { DefaultMap } from "../classes/DefaultMap";
|
|
3
|
-
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
4
|
-
import {
|
|
5
|
-
getCollidingEntitiesWithGridEntity,
|
|
6
|
-
getGridEntities,
|
|
7
|
-
} from "../functions/gridEntity";
|
|
8
|
-
import {
|
|
9
|
-
postGridEntityCollisionFire,
|
|
10
|
-
postGridEntityCollisionHasSubscriptions,
|
|
11
|
-
} from "./subscriptions/postGridEntityCollision";
|
|
12
|
-
|
|
13
|
-
const v = {
|
|
14
|
-
room: {
|
|
15
|
-
/** Indexed by grid entity pointer hash. */
|
|
16
|
-
collidingEntitiesMap: new DefaultMap<PtrHash, Set<PtrHash>>(
|
|
17
|
-
() => new Set(),
|
|
18
|
-
),
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/** @internal */
|
|
23
|
-
export function postGridEntityCollisionInit(mod: Mod): void {
|
|
24
|
-
saveDataManager("postGridEntityCollision", v, hasSubscriptions);
|
|
25
|
-
|
|
26
|
-
mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function hasSubscriptions() {
|
|
30
|
-
return postGridEntityCollisionHasSubscriptions();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// ModCallback.POST_UPDATE (1)
|
|
34
|
-
function postUpdate() {
|
|
35
|
-
if (!hasSubscriptions()) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const gridEntities = getGridEntities();
|
|
40
|
-
const gridEntitiesWithCollision = gridEntities.filter(
|
|
41
|
-
(gridEntity) => gridEntity.CollisionClass !== GridCollisionClass.NONE,
|
|
42
|
-
);
|
|
43
|
-
for (const gridEntity of gridEntitiesWithCollision) {
|
|
44
|
-
const gridEntityPtrHash = GetPtrHash(gridEntity);
|
|
45
|
-
const oldCollidingEntities =
|
|
46
|
-
v.room.collidingEntitiesMap.getAndSetDefault(gridEntityPtrHash);
|
|
47
|
-
|
|
48
|
-
// Check for new colliding entities.
|
|
49
|
-
const collidingEntities = getCollidingEntitiesWithGridEntity(gridEntity);
|
|
50
|
-
for (const entity of collidingEntities) {
|
|
51
|
-
const entityPtrHash = GetPtrHash(entity);
|
|
52
|
-
if (!oldCollidingEntities.has(entityPtrHash)) {
|
|
53
|
-
oldCollidingEntities.add(entityPtrHash);
|
|
54
|
-
postGridEntityCollisionFire(gridEntity, entity);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Remove old colliding entities.
|
|
59
|
-
const collidingEntitiesPtrHashes = collidingEntities.map((entity) =>
|
|
60
|
-
GetPtrHash(entity),
|
|
61
|
-
);
|
|
62
|
-
const collidingEntitiesPtrHashSet = new Set(collidingEntitiesPtrHashes);
|
|
63
|
-
for (const oldCollidingEntityPtrHash of oldCollidingEntities.values()) {
|
|
64
|
-
if (!collidingEntitiesPtrHashSet.has(oldCollidingEntityPtrHash)) {
|
|
65
|
-
oldCollidingEntities.delete(oldCollidingEntityPtrHash);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
-
import { getGridEntities } from "../functions/gridEntity";
|
|
3
|
-
import {
|
|
4
|
-
postGridEntityRenderFire,
|
|
5
|
-
postGridEntityRenderHasSubscriptions,
|
|
6
|
-
} from "./subscriptions/postGridEntityRender";
|
|
7
|
-
|
|
8
|
-
/** @internal */
|
|
9
|
-
export function postGridEntityRenderInit(mod: Mod): void {
|
|
10
|
-
mod.AddCallback(ModCallback.POST_RENDER, postRender); // 2
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function hasSubscriptions() {
|
|
14
|
-
return postGridEntityRenderHasSubscriptions();
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// ModCallback.POST_RENDER (2)
|
|
18
|
-
function postRender() {
|
|
19
|
-
if (!hasSubscriptions()) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
for (const gridEntity of getGridEntities()) {
|
|
24
|
-
postGridEntityRenderFire(gridEntity);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { CollectibleType } from "isaac-typescript-definitions";
|
|
2
|
-
import { DefaultMap } from "../classes/DefaultMap";
|
|
3
|
-
import { ModUpgraded } from "../classes/ModUpgraded";
|
|
4
|
-
import { ModCallbackCustom } from "../enums/ModCallbackCustom";
|
|
5
|
-
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
6
|
-
import {
|
|
7
|
-
defaultMapGetPlayer,
|
|
8
|
-
mapSetPlayer,
|
|
9
|
-
} from "../functions/playerDataStructures";
|
|
10
|
-
import { PlayerIndex } from "../types/PlayerIndex";
|
|
11
|
-
import {
|
|
12
|
-
postHolyMantleRemovedFire,
|
|
13
|
-
postHolyMantleRemovedHasSubscriptions,
|
|
14
|
-
} from "./subscriptions/postHolyMantleRemoved";
|
|
15
|
-
|
|
16
|
-
const v = {
|
|
17
|
-
run: {
|
|
18
|
-
playersHolyMantleMap: new DefaultMap<PlayerIndex, int>(0),
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/** @internal */
|
|
23
|
-
export function postHolyMantleRemovedInit(mod: ModUpgraded): void {
|
|
24
|
-
saveDataManager("postHolyMantleRemoved", v, hasSubscriptions);
|
|
25
|
-
|
|
26
|
-
mod.AddCallbackCustom(
|
|
27
|
-
ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
|
|
28
|
-
postPEffectUpdateReordered,
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function hasSubscriptions() {
|
|
33
|
-
return postHolyMantleRemovedHasSubscriptions();
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED
|
|
37
|
-
function postPEffectUpdateReordered(player: EntityPlayer) {
|
|
38
|
-
if (!hasSubscriptions()) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const effects = player.GetEffects();
|
|
43
|
-
const newNumHolyMantles = effects.GetCollectibleEffectNum(
|
|
44
|
-
CollectibleType.HOLY_MANTLE,
|
|
45
|
-
);
|
|
46
|
-
const oldNumHolyMantles = defaultMapGetPlayer(
|
|
47
|
-
v.run.playersHolyMantleMap,
|
|
48
|
-
player,
|
|
49
|
-
);
|
|
50
|
-
mapSetPlayer(v.run.playersHolyMantleMap, player, newNumHolyMantles);
|
|
51
|
-
|
|
52
|
-
if (newNumHolyMantles < oldNumHolyMantles) {
|
|
53
|
-
postHolyMantleRemovedFire(player, oldNumHolyMantles, newNumHolyMantles);
|
|
54
|
-
}
|
|
55
|
-
}
|