isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
58 lines (51 loc) • 1.63 kB
text/typescript
import type {
EntityType,
GridEntityXMLType,
} from "isaac-typescript-definitions";
import { ModCallback } from "isaac-typescript-definitions";
import type { ModCallbackCustom } from "../../enums/ModCallbackCustom";
import type { FireArgs, OptionalArgs } from "../private/CustomCallback";
import { CustomCallback } from "../private/CustomCallback";
type T = ModCallbackCustom.PRE_ROOM_ENTITY_SPAWN_FILTER;
export class PreRoomEntitySpawnFilter extends CustomCallback<T> {
constructor() {
super();
this.callbacksUsed = [
// 71
[ModCallback.PRE_ROOM_ENTITY_SPAWN, this.preRoomEntitySpawn],
];
}
protected override shouldFire = (
fireArgs: FireArgs<T>,
optionalArgs: OptionalArgs<T>,
): boolean => {
const [entityTypeOrGridEntityXMLType, variant, subType] = fireArgs;
const [
callbackEntityTypeOrGridEntityXMLType,
callbackVariant,
callbackSubType,
] = optionalArgs;
return (
(callbackEntityTypeOrGridEntityXMLType === undefined
|| callbackEntityTypeOrGridEntityXMLType
=== entityTypeOrGridEntityXMLType)
&& (callbackVariant === undefined || callbackVariant === variant)
&& (callbackSubType === undefined || callbackSubType === subType)
);
};
// ModCallback.PRE_ROOM_ENTITY_SPAWN (71)
private readonly preRoomEntitySpawn = (
entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
variant: int,
subType: int,
gridIndex: int,
initSeed: Seed,
) =>
this.fire(
entityTypeOrGridEntityXMLType,
variant,
subType,
gridIndex,
initSeed,
);
}