isaac-typescript-definitions
Version:
TypeScript definitions for The Binding of Isaac: Repentance.
1,011 lines (938 loc) • 28.9 kB
text/typescript
export enum ModCallback {
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function postNPCUpdate(npc: EntityNPC): void {}
* ```
*/
POST_NPC_UPDATE = 0,
/**
* You cannot filter this callback.
*
* ```ts
* function postUpdate(): void {}
* ```
*/
POST_UPDATE = 1,
/**
* You cannot filter this callback.
*
* ```ts
* function postRender(): void {}
* ```
*/
POST_RENDER = 2,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `CollectibleType` provided.
*
* ```ts
* function useItem(
* collectibleType: CollectibleType,
* rng: RNG,
* player: EntityPlayer,
* useFlags: BitFlags<UseFlag>,
* activeSlot: int,
* customVarData: int,
* ):
* | boolean
* | { Discharge: boolean; Remove: boolean; ShowAnim: boolean }
* | undefined;
* ```
*/
POST_USE_ITEM = 3,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PlayerType` provided.
*
* ```ts
* function postPEffectUpdate(player: EntityPlayer): void {}
* ```
*
* @deprecated Consider using the `ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED` callback from
* `isaacscript-common` instead, since it will fire in the correct order and prevent
* bugs relating to data structures not being properly initialized.
*/
POST_PEFFECT_UPDATE = 4,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `CardType` provided.
*
* ```ts
* function postUseCard(
* cardType: CardType,
* player: EntityPlayer,
* useFlags: BitFlags<UseFlag>,
* ): void {}
* ```
*/
POST_USE_CARD = 5,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `FamiliarVariant` provided.
*
* ```ts
* function postFamiliarUpdate(familiar: EntityFamiliar): void {}
* ```
*/
POST_FAMILIAR_UPDATE = 6,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `FamiliarVariant` provided.
*
* ```ts
* function postFamiliarInit(familiar: EntityFamiliar): void {}
* ```
*/
POST_FAMILIAR_INIT = 7,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `CacheFlag` provided.
*
* Note that you can only use single `CacheFlag` values as a third argument. (You cannot use a
* combination of two or more `CacheFlag`.)
*
* ```ts
* function evaluateCache(player: EntityPlayer, cacheFlag: CacheFlag): void {}
* ```
*/
EVALUATE_CACHE = 8,
/**
* This will fire at the beginning of a run, upon continuing a saved run, and when a player enters
* a Genesis room.
*
* For most cases of general purpose player initialization, you should use the
* `POST_PLAYER_INIT_FIRST` custom callback instead (in order to exclude the case of a player
* continuing a saved run).
*
* This callback has a special property where most `EntityPlayer` methods (such as e.g.
* `EntityPlayer.AddCollectible`) will silently fail if the player is continuing a saved run.
* (This behavior was introduced in Repentance.) See the docs for more details about which
* specific methods are affected.
*
* The `isChildPlayer` helper function does not work in this callback (because
* `EntityPlayer.Parent` is not initialized yet at this point). If you want to exclude non-real
* players, use the `POST_PLAYER_INIT_FIRST` or the `POST_PLAYER_INIT_LATE` custom callbacks
* instead.
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PlayerVariant` provided.
*
* ```ts
* function postPlayerInit(player: EntityPlayer): void {}
* ```
*/
POST_PLAYER_INIT = 9,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PillEffect` provided.
*
* ```ts
* function postUsePill(
* pillEffect: PillEffect,
* player: EntityPlayer,
* useFlags: BitFlags<UseFlag>,
* ): void {}
* ```
*/
POST_USE_PILL = 10,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function entityTakeDmg(
* entity: Entity,
* amount: float,
* damageFlags: BitFlags<DamageFlag>,
* source: EntityRef,
* countdownFrames: int,
* ): boolean | undefined {}
* ```
*/
ENTITY_TAKE_DMG = 11,
/**
* You cannot filter this callback.
*
* ```ts
* function postCurseEval(curses: BitFlags<LevelCurse>): BitFlags<LevelCurse> | undefined {}
* ```
*/
POST_CURSE_EVAL = 12,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `InputHook` provided.
*
* ```ts
* function inputAction(
* entity: Entity | undefined,
* inputHook: InputHook,
* buttonAction: ButtonAction,
* ): boolean | float | undefined {}
* ```
*/
INPUT_ACTION = 13,
/**
* You cannot filter this callback.
*
* ```ts
* function postGameStarted(isContinued: boolean): void {}
* ```
*
* @deprecated Consider using the `ModCallbackCustom.POST_GAME_STARTED_REORDERED` callback from
* `isaacscript-common` instead, since it will fire in the correct order and prevent
* bugs relating to data structures not being properly initialized.
*/
POST_GAME_STARTED = 15,
/**
* You cannot filter this callback.
*
* ```ts
* function postGameEnd(isGameOver: boolean): void {}
* ```
*/
POST_GAME_END = 16,
/**
* You cannot filter this callback.
*
* ```ts
* function preGameExit(shouldSave: boolean): void {}
* ```
*/
PRE_GAME_EXIT = 17,
/**
* Unlike the `POST_GAME_STARTED` callback, this callback does not fire when resuming a saved run.
*
* You cannot filter this callback.
*
* ```ts
* function postNewLevel(): void {}
* ```
*
* @deprecated Consider using the `ModCallbackCustom.POST_NEW_LEVEL_REORDERED` callback from
* `isaacscript-common` instead, since it will fire in the correct order and prevent
* bugs relating to data structures not being properly initialized.
*/
POST_NEW_LEVEL = 18,
/**
* You cannot filter this callback.
*
* ```ts
* function postNewRoom(): void {}
* ```
*
* @deprecated Consider using the `ModCallbackCustom.POST_NEW_ROOM_REORDERED` callback from
* `isaacscript-common` instead, since it will fire in the correct order and prevent
* bugs relating to data structures not being properly initialized.
*/
POST_NEW_ROOM = 19,
/**
* You cannot filter this callback.
*
* ```ts
* function getCard(
* rng: RNG,
* cardType: CardType,
* includePlayingCards: boolean,
* includeRunes: boolean,
* onlyRunes: boolean,
* ): CardType | undefined {}
* ```
*/
GET_CARD = 20,
/**
* You cannot filter this callback.
*
* ```ts
* function getShaderParams(shaderName: string): Record<string, unknown> {}
* ```
*/
GET_SHADER_PARAMS = 21,
/**
* You cannot filter this callback.
*
* ```ts
* function executeCmd(
* command: string,
* parameters: string,
* player: EntityPlayer,
* ): void {}
* ```
*/
EXECUTE_CMD = 22,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `CollectibleType` provided.
*
* ```ts
* function preUseItem(
* collectibleType: CollectibleType,
* rng: RNG,
* player: EntityPlayer,
* useFlags: BitFlags<UseFlag>,
* activeSlot: ActiveSlot,
* customVarData: int,
* ): boolean | undefined {}
* ```
*/
PRE_USE_ITEM = 23,
/**
* If you want to prevent an entity from spawning, you cannot return an `EntityType` of 0, since
* that will cause the game to crash.
*
* Sometimes, if you return a type other than the original type (e.g. replacing a pickup with an
* effect), the game will crash. Thus, you should replace a pickup with a new pickup, and so on.
*
* You cannot filter this callback.
*
* ```ts
* function preEntitySpawn(
* entityType: EntityType,
* variant: int,
* subType: int,
* position: Vector,
* velocity: Vector,
* spawner: Entity | undefined,
* initSeed: Seed,
* ): [entityType: EntityType, variant: int, subType: int, initSeed: Seed] | undefined {}
* ```
*/
PRE_ENTITY_SPAWN = 24,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `FamiliarVariant` provided.
*
* ```ts
* function postFamiliarRender(
* entityFamiliar: EntityFamiliar,
* renderOffset: Vector,
* ): void {}
* ```
*/
POST_FAMILIAR_RENDER = 25,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `FamiliarVariant` provided.
*
* ```ts
* function preFamiliarCollision(
* familiar: EntityFamiliar,
* collider: Entity,
* low: boolean,
* ): boolean | undefined {}
* ```
*/
PRE_FAMILIAR_COLLISION = 26,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function postNPCInit(npc: EntityNPC): void {}
* ```
*/
POST_NPC_INIT = 27,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function postNPCRender(npc: EntityNPC, renderOffset: Vector): void {}
* ```
*/
POST_NPC_RENDER = 28,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function postNPCDeath(npc: EntityNPC): void {}
* ```
*/
POST_NPC_DEATH = 29,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function preNPCCollision(
* npc: EntityNPC,
* collider: Entity,
* low: boolean,
* ): boolean | undefined {}
* ```
*/
PRE_NPC_COLLISION = 30,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PlayerVariant` provided.
*
* ```ts
* function postPlayerUpdate(player: EntityPlayer): void {}
* ```
*
* @deprecated Consider using the `ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED` callback from
* `isaacscript-common` instead, since it will fire in the correct order and prevent
* bugs relating to data structures not being properly initialized.
*/
POST_PLAYER_UPDATE = 31,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PlayerVariant` provided.
*
* ```ts
* function postPlayerRender(player: EntityPlayer, renderOffset: Vector): void {}
* ```
*
* @deprecated Consider using the `ModCallbackCustom.POST_PLAYER_RENDER_REORDERED` callback from
* `isaacscript-common` instead, since it will fire in the correct order and prevent
* bugs relating to data structures not being properly initialized.
*/
POST_PLAYER_RENDER = 32,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PlayerVariant` provided.
*
* ```ts
* function prePlayerCollision(
* player: EntityPlayer,
* collider: Entity,
* low: boolean,
* ): boolean | undefined {}
* ```
*/
PRE_PLAYER_COLLISION = 33,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PickupVariant` provided.
*
* ```ts
* function postPickupInit(pickup: EntityPickup): void {}
* ```
*/
POST_PICKUP_INIT = 34,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PickupVariant` provided.
*
* ```ts
* function postPickupUpdate(pickup: EntityPickup): void {}
* ```
*/
POST_PICKUP_UPDATE = 35,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PickupVariant` provided.
*
* ```ts
* function postPickupRender(pickup: EntityPickup, renderOffset: Vector): void {}
* ```
*/
POST_PICKUP_RENDER = 36,
/**
* You cannot filter this callback.
*
* ```ts
* function postPickupSelection(
* pickup: EntityPickup,
* variant: PickupVariant,
* subType: int,
* ): [pickupVariant: PickupVariant, subType: int] | undefined {}
* ```
*/
POST_PICKUP_SELECTION = 37,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `PickupVariant` provided.
*
* ```ts
* function prePickupCollision(
* pickup: EntityPickup,
* collider: Entity,
* low: boolean,
* ): boolean | undefined {}
* ```
*/
PRE_PICKUP_COLLISION = 38,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `TearVariant` provided.
*
* ```ts
* function postTearInit(tear: EntityTear): void {}
* ```
*/
POST_TEAR_INIT = 39,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `TearVariant` provided.
*
* ```ts
* function postTearUpdate(tear: EntityTear): void {}
* ```
*/
POST_TEAR_UPDATE = 40,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `TearVariant` provided.
*
* ```ts
* function postTearRender(tear: EntityTear, renderOffset: Vector): void {}
* ```
*/
POST_TEAR_RENDER = 41,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `TearVariant` provided.
*
* ```ts
* function preTearCollision(
* tear: EntityTear,
* collider: Entity,
* low: boolean,
* ): boolean | undefined {}
* ```
*/
PRE_TEAR_COLLISION = 42,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `ProjectileVariant` provided.
*
* ```ts
* function postProjectileInit(projectile: EntityProjectile): void {}
* ```
*/
POST_PROJECTILE_INIT = 43,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `ProjectileVariant` provided.
*
* ```ts
* function postProjectileUpdate(projectile: EntityProjectile): void {}
* ```
*/
POST_PROJECTILE_UPDATE = 44,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `ProjectileVariant` provided.
*
* ```ts
* function postProjectileRender(
* projectile: EntityProjectile,
* renderOffset: Vector,
* ): void {}
* ```
*/
POST_PROJECTILE_RENDER = 45,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `ProjectileVariant` provided.
*
* ```ts
* function preProjectileCollision(
* projectile: EntityProjectile,
* collider: Entity,
* low: boolean,
* ): boolean | undefined {}
* ```
*/
PRE_PROJECTILE_COLLISION = 46,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `LaserVariant` provided.
*
* ```ts
* function postLaserInit(laser: EntityLaser): void {}
* ```
*/
POST_LASER_INIT = 47,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `LaserVariant` provided.
*
* ```ts
* function postLaserUpdate(laser: EntityLaser): void {}
* ```
*/
POST_LASER_UPDATE = 48,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `LaserVariant` provided.
*
* ```ts
* function postLaserRender(laser: EntityLaser, renderOffset: Vector): void {}
* ```
*/
POST_LASER_RENDER = 49,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the sub-type provided. (This is bugged and is NOT the `KnifeVariant` like you would
* expect!)
*
* ```ts
* function postKnifeInit(knife: EntityKnife): void {}
* ```
*/
POST_KNIFE_INIT = 50,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the sub-type provided. (This is bugged and is NOT the `KnifeVariant` like you would
* expect!)
*
* ```ts
* function postKnifeUpdate(knife: EntityKnife): void {}
* ```
*/
POST_KNIFE_UPDATE = 51,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the sub-type provided. (This is bugged and is NOT the `KnifeVariant` like you would
* expect!)
*
* ```ts
* function postKnifeRender(knife: EntityKnife, renderOffset: Vector): void {}
* ```
*/
POST_KNIFE_RENDER = 52,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the sub-type provided. (This is bugged and is NOT the `KnifeVariant` like you would
* expect!)
*
* ```ts
* function preKnifeCollision(
* knife: EntityKnife,
* collider: Entity,
* low: boolean,
* ): boolean | undefined {}
* ```
*/
PRE_KNIFE_COLLISION = 53,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EffectVariant` provided.
*
* ```ts
* function postEffectInit(effect: EntityEffect): void {}
* ```
*/
POST_EFFECT_INIT = 54,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EffectVariant` provided.
*
* ```ts
* function postEffectUpdate(effect: EntityEffect): void {}
* ```
*/
POST_EFFECT_UPDATE = 55,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EffectVariant` provided.
*
* ```ts
* function postEffectRender(effect: EntityEffect, renderOffset: Vector): void {}
* ```
*/
POST_EFFECT_RENDER = 56,
/**
* Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:
*
* - `Position`
* - `SpawnerEntity`
* - `SpawnerType`
* - `SpawnerVariant`
* - `Velocity`
*
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `BombVariant` provided.
*
* ```ts
* function postBombInit(bomb: EntityBomb): void {}
* ```
*/
POST_BOMB_INIT = 57,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `BombVariant` provided.
*
* ```ts
* function postBombUpdate(bomb: EntityBomb): void {}
* ```
*/
POST_BOMB_UPDATE = 58,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `BombVariant` provided.
*
* ```ts
* function postBombRender(bomb: EntityBomb, renderOffset: Vector): void {}
* ```
*/
POST_BOMB_RENDER = 59,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `BombVariant` provided.
*
* ```ts
* function preBombCollision(
* bomb: EntityBomb,
* collider: Entity,
* low: boolean,
* ): boolean | undefined {}
* ```
*/
PRE_BOMB_COLLISION = 60,
/**
* You cannot filter this callback.
*
* ```ts
* function postFireTear(tear: EntityTear): void {}
* ```
*/
POST_FIRE_TEAR = 61,
/**
* You cannot filter this callback.
*
* ```ts
* function preGetCollectible(
* itemPoolType: ItemPoolType,
* decrease: boolean,
* seed: Seed,
* ): CollectibleType | undefined {}
* ```
*/
PRE_GET_COLLECTIBLE = 62,
/**
* You cannot filter this callback.
*
* ```ts
* function postGetCollectible(
* collectibleType: CollectibleType,
* itemPoolType: ItemPoolType,
* decrease: boolean,
* seed: Seed,
* ): CollectibleType | undefined {}
* ```
*/
POST_GET_COLLECTIBLE = 63,
/**
* You cannot filter this callback.
*
* ```ts
* function getPillColor(seed: Seed): PillColor | undefined {}
* ```
*/
GET_PILL_COLOR = 64,
/**
* You cannot filter this callback.
*
* ```ts
* function getPillEffect(
* pillEffect: PillEffect,
* pillColor: PillColor,
* ): PillEffect | undefined {}
* ```
*/
GET_PILL_EFFECT = 65,
/**
* You cannot filter this callback.
*
* ```ts
* function getTrinket(
* trinketType: TrinketType,
* rng: RNG,
* ): TrinketType | undefined {}
* ```
*/
GET_TRINKET = 66,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function postEntityRemove(entity: Entity): void {}
* ```
*/
POST_ENTITY_REMOVE = 67,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function postEntityKill(entity: Entity): void {}
* ```
*/
POST_ENTITY_KILL = 68,
/**
* When registering this callback with the `Mod.AddCallback` method:
* - You can provide an optional third argument that will make the callback only fire if it
* matches the `EntityType` provided.
*
* ```ts
* function preNPCUpdate(entity: Entity): boolean | undefined {}
* ```
*/
PRE_NPC_UPDATE = 69,
/**
* In vanilla, this is `PRE_SPAWN_CLEAN_AWARD`, which is a typo.
*
* You cannot filter this callback.
*
* ```ts
* function preSpawnClearAward(
* rng: RNG,
* spawnPosition: Vector,
* ): boolean | undefined {}
* ```
*/
PRE_SPAWN_CLEAR_AWARD = 70,
/**
* You can use the `isGridEntityXMLType` helper function to convert the
* `entityTypeOrGridEntityXMLType` argument to an `EntityType` or `GridEntityXMLType`, if needed.
*
* You cannot filter this callback.
*
* ```ts
* function preRoomEntitySpawn(
* entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
* variant: int,
* subType: int,
* gridIndex: int,
* initSeed: Seed,
* ): [type: EntityType | GridEntityXMLType, variant: int, subType: int] | undefined {}
* ```
*/
PRE_ROOM_ENTITY_SPAWN = 71,
/**
* You cannot filter this callback.
*
* ```ts
* function preEntityDevolve(entity: Entity): boolean | undefined {}
* ```
*/
PRE_ENTITY_DEVOLVE = 72,
/**
* You cannot filter this callback.
*
* ```ts
* function preModUnload(mod: Mod): void {}
* ```
*/
PRE_MOD_UNLOAD = 73,
}