isaac-lua-definitions/isaac-typescript-definitions/typings/Mod.d.ts

372 lines
11 KiB
TypeScript

/**
* The Lua object corresponding to this interface is defined as a local variable in the
* "scripts/main.lua" file.
*/
declare interface Mod {
AddCallback<T extends keyof CallbackParameters>(
modCallbacks: T,
...args: CallbackParameters[T]
): void;
HasData(): boolean;
LoadData(): string;
RemoveCallback(callbackID: ModCallbacks, callback: () => void): void;
RemoveData(): void;
SaveData(data: string): void;
Name: string;
}
/* eslint-disable @typescript-eslint/member-ordering */
interface CallbackParameters {
[ModCallbacks.MC_NPC_UPDATE]: [
callback: (npc: EntityNPC) => void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_POST_UPDATE]: [callback: () => void];
[ModCallbacks.MC_POST_RENDER]: [callback: () => void];
[ModCallbacks.MC_USE_ITEM]: [
callback: (
collectibleType: CollectibleType | int,
rng: RNG,
player: EntityPlayer,
useFlags: int,
activeSlot: int,
customVarData: int,
) =>
| boolean
| { Discharge: boolean; Remove: boolean; ShowAnim: boolean }
| void,
collectibleType?: CollectibleType | int,
];
[ModCallbacks.MC_POST_PEFFECT_UPDATE]: [
callback: (player: EntityPlayer) => void,
playerType?: PlayerType,
];
[ModCallbacks.MC_USE_CARD]: [
callback: (card: Card | int, player: EntityPlayer, useFlags: int) => void,
card?: Card | int,
];
[ModCallbacks.MC_FAMILIAR_UPDATE]: [
callback: (familiar: EntityFamiliar) => void,
familiarVariant?: FamiliarVariant | int,
];
[ModCallbacks.MC_FAMILIAR_INIT]: [
callback: (familiar: EntityFamiliar) => void,
familiarVariant?: FamiliarVariant | int,
];
[ModCallbacks.MC_EVALUATE_CACHE]: [
callback: (player: EntityPlayer, cacheFlag: CacheFlag) => void,
cacheFlag?: CacheFlag,
];
[ModCallbacks.MC_POST_PLAYER_INIT]: [
callback: (player: EntityPlayer) => void,
playerVariant?: PlayerVariant,
];
[ModCallbacks.MC_USE_PILL]: [
callback: (
pillEffect: PillEffect | int,
player: EntityPlayer,
useFlags: int,
) => void,
pillEffect?: PillEffect | int,
];
[ModCallbacks.MC_ENTITY_TAKE_DMG]: [
callback: (
tookDamage: Entity,
damageAmount: float,
damageFlags: DamageFlag,
damageSource: EntityRef,
damageCountdownFrames: int,
) => boolean | void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_POST_CURSE_EVAL]: [callback: (curses: int) => int | void];
[ModCallbacks.MC_INPUT_ACTION]: [
callback: (
entity: Entity | undefined,
inputHook: InputHook,
buttonAction: ButtonAction,
) => boolean | float | void,
inputHook?: InputHook,
];
[ModCallbacks.MC_POST_GAME_STARTED]: [
callback: (isContinued: boolean) => void,
];
[ModCallbacks.MC_POST_GAME_END]: [callback: (isGameOver: boolean) => void];
[ModCallbacks.MC_PRE_GAME_EXIT]: [callback: (shouldSave: boolean) => void];
[ModCallbacks.MC_POST_NEW_LEVEL]: [callback: () => void];
[ModCallbacks.MC_POST_NEW_ROOM]: [callback: () => void];
[ModCallbacks.MC_GET_CARD]: [
callback: (
rng: RNG,
card: Card | int,
includePlayingCards: boolean,
includeRunes: boolean,
onlyRunes: boolean,
) => Card | int | void,
];
[ModCallbacks.MC_GET_SHADER_PARAMS]: [
callback: (shaderName: string) => Record<string, unknown> | void,
];
[ModCallbacks.MC_EXECUTE_CMD]: [
callback: (command: string, parameters: string) => void,
];
[ModCallbacks.MC_PRE_USE_ITEM]: [
callback: (
collectibleType: CollectibleType | int,
rng: RNG,
player: EntityPlayer,
useFlags: int,
activeSlot: int,
customVarData: int,
) => boolean | void,
collectibleType?: CollectibleType | int,
];
[ModCallbacks.MC_PRE_ENTITY_SPAWN]: [
callback: (
entityType: EntityType | int,
variant: int,
subType: int,
position: Vector,
velocity: Vector,
spawner: Entity,
initSeed: int,
) => [EntityType | int, int, int, int] | void,
];
[ModCallbacks.MC_POST_FAMILIAR_RENDER]: [
callback: (entityFamiliar: EntityFamiliar, renderOffset: Vector) => void,
familiarVariant?: FamiliarVariant | int,
];
[ModCallbacks.MC_PRE_FAMILIAR_COLLISION]: [
callback: (
familiar: EntityFamiliar,
collider: Entity,
low: boolean,
) => boolean | void,
familiarVariant?: FamiliarVariant | int,
];
[ModCallbacks.MC_POST_NPC_INIT]: [
callback: (npc: EntityNPC) => void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_POST_NPC_RENDER]: [
callback: (npc: EntityNPC, renderOffset: Vector) => void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_POST_NPC_DEATH]: [
callback: (npc: EntityNPC) => void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_PRE_NPC_COLLISION]: [
callback: (
npc: EntityNPC,
collider: Entity,
low: boolean,
) => boolean | void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_POST_PLAYER_UPDATE]: [
callback: (player: EntityPlayer) => void,
playerVariant?: PlayerVariant,
];
[ModCallbacks.MC_POST_PLAYER_RENDER]: [
callback: (player: EntityPlayer, renderOffset: Vector) => void,
playerVariant?: PlayerVariant,
];
[ModCallbacks.MC_PRE_PLAYER_COLLISION]: [
callback: (
player: EntityPlayer,
collider: Entity,
low: boolean,
) => boolean | void,
playerVariant?: PlayerVariant,
];
[ModCallbacks.MC_POST_PICKUP_INIT]: [
callback: (pickup: EntityPickup) => void,
pickupVariant?: PickupVariant | int,
];
[ModCallbacks.MC_POST_PICKUP_UPDATE]: [
callback: (pickup: EntityPickup) => void,
pickupVariant?: PickupVariant | int,
];
[ModCallbacks.MC_POST_PICKUP_RENDER]: [
callback: (pickup: EntityPickup, renderOffset: Vector) => void,
pickupVariant?: PickupVariant | int,
];
[ModCallbacks.MC_POST_PICKUP_SELECTION]: [
callback: (
pickup: EntityPickup,
variant: PickupVariant | int,
subType: int,
) => [PickupVariant | int, int] | void,
];
[ModCallbacks.MC_PRE_PICKUP_COLLISION]: [
callback: (
pickup: EntityPickup,
collider: Entity,
low: boolean,
) => boolean | void,
pickupVariant?: PickupVariant | int,
];
[ModCallbacks.MC_POST_TEAR_INIT]: [
callback: (tear: EntityTear) => void,
tearVariant?: TearVariant | int,
];
[ModCallbacks.MC_POST_TEAR_UPDATE]: [
callback: (tear: EntityTear) => void,
tearVariant?: TearVariant | int,
];
[ModCallbacks.MC_POST_TEAR_RENDER]: [
callback: (tear: EntityTear, renderOffset: Vector) => void,
tearVariant?: TearVariant | int,
];
[ModCallbacks.MC_PRE_TEAR_COLLISION]: [
callback: (
tear: EntityTear,
collider: Entity,
low: boolean,
) => boolean | void,
tearVariant?: TearVariant | int,
];
[ModCallbacks.MC_POST_PROJECTILE_INIT]: [
callback: (projectile: EntityProjectile) => void,
projectileVariant?: ProjectileVariant | int,
];
[ModCallbacks.MC_POST_PROJECTILE_UPDATE]: [
callback: (projectile: EntityProjectile) => void,
projectileVariant?: ProjectileVariant | int,
];
[ModCallbacks.MC_POST_PROJECTILE_RENDER]: [
callback: (projectile: EntityProjectile, renderOffset: Vector) => void,
projectileVariant?: ProjectileVariant | int,
];
[ModCallbacks.MC_PRE_PROJECTILE_COLLISION]: [
callback: (
projectile: EntityProjectile,
collider: Entity,
low: boolean,
) => boolean | void,
projectileVariant?: ProjectileVariant | int,
];
[ModCallbacks.MC_POST_LASER_INIT]: [
callback: (laser: EntityLaser) => void,
laserVariant?: LaserVariant | int,
];
[ModCallbacks.MC_POST_LASER_UPDATE]: [
callback: (laser: EntityLaser) => void,
laserVariant?: LaserVariant | int,
];
[ModCallbacks.MC_POST_LASER_RENDER]: [
callback: (laser: EntityLaser, renderOffset: Vector) => void,
laserVariant?: LaserVariant | int,
];
[ModCallbacks.MC_POST_KNIFE_INIT]: [
callback: (knife: EntityKnife) => void,
knifeSubType?: int,
];
[ModCallbacks.MC_POST_KNIFE_UPDATE]: [
callback: (knife: EntityKnife) => void,
knifeSubType?: int,
];
[ModCallbacks.MC_POST_KNIFE_RENDER]: [
callback: (knife: EntityKnife, renderOffset: Vector) => void,
knifeSubType?: int,
];
[ModCallbacks.MC_PRE_KNIFE_COLLISION]: [
callback: (
knife: EntityKnife,
collider: Entity,
low: boolean,
) => boolean | void,
knifeSubType?: int,
];
[ModCallbacks.MC_POST_EFFECT_INIT]: [
callback: (effect: EntityEffect) => void,
effectVariant?: EffectVariant | int,
];
[ModCallbacks.MC_POST_EFFECT_UPDATE]: [
callback: (effect: EntityEffect) => void,
effectVariant?: EffectVariant | int,
];
[ModCallbacks.MC_POST_EFFECT_RENDER]: [
callback: (effect: EntityEffect, renderOffset: Vector) => void,
effectVariant?: EffectVariant | int,
];
[ModCallbacks.MC_POST_BOMB_INIT]: [
callback: (bomb: EntityBomb) => void,
bombVariant?: BombVariant | int,
];
[ModCallbacks.MC_POST_BOMB_UPDATE]: [
callback: (bomb: EntityBomb) => void,
bombVariant?: BombVariant | int,
];
[ModCallbacks.MC_POST_BOMB_RENDER]: [
callback: (bomb: EntityBomb, renderOffset: Vector) => void,
bombVariant?: BombVariant | int,
];
[ModCallbacks.MC_PRE_BOMB_COLLISION]: [
callback: (
bomb: EntityBomb,
collider: Entity,
low: boolean,
) => boolean | void,
bombVariant?: BombVariant | int,
];
[ModCallbacks.MC_POST_FIRE_TEAR]: [callback: (tear: EntityTear) => void];
[ModCallbacks.MC_PRE_GET_COLLECTIBLE]: [
callback: (
itemPoolType: ItemPoolType,
decrease: boolean,
seed: int,
) => CollectibleType | int | void,
];
[ModCallbacks.MC_POST_GET_COLLECTIBLE]: [
callback: (
collectibleType: CollectibleType | int,
itemPoolType: ItemPoolType,
decrease: boolean,
seed: int,
) => CollectibleType | int | void,
];
[ModCallbacks.MC_GET_PILL_COLOR]: [
callback: (seed: int) => PillColor | int | void,
];
[ModCallbacks.MC_GET_PILL_EFFECT]: [
callback: (
pillEffect: PillEffect | int,
pillColor: PillColor | int,
) => PillEffect | int | void,
];
[ModCallbacks.MC_GET_TRINKET]: [
callback: (
trinketType: TrinketType | int,
rng: RNG,
) => TrinketType | int | void,
];
[ModCallbacks.MC_POST_ENTITY_REMOVE]: [
callback: (entity: Entity) => void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_POST_ENTITY_KILL]: [
callback: (entity: Entity) => void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_PRE_NPC_UPDATE]: [
callback: (npc: EntityNPC) => boolean | void,
entityType?: EntityType | int,
];
[ModCallbacks.MC_PRE_SPAWN_CLEAN_AWARD]: [
callback: (rng: RNG, spawnPosition: Vector) => boolean | void,
];
[ModCallbacks.MC_PRE_ROOM_ENTITY_SPAWN]: [
callback: (
entityType: EntityType | int,
variant: int,
subType: int,
gridIndex: int,
seed: int,
) => [EntityType | int, int, int] | void,
];
}
/* eslint-enable @typescript-eslint/member-ordering */