"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PreRoomEntitySpawnFilter = void 0;
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
const CustomCallback_1 = require("../private/CustomCallback");
class PreRoomEntitySpawnFilter extends CustomCallback_1.CustomCallback {
    constructor() {
        super();
        this.callbacksUsed = [
            // 71
            [isaac_typescript_definitions_1.ModCallback.PRE_ROOM_ENTITY_SPAWN, this.preRoomEntitySpawn],
        ];
    }
    shouldFire = (fireArgs, optionalArgs) => {
        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)
    preRoomEntitySpawn = (entityTypeOrGridEntityXMLType, variant, subType, gridIndex, initSeed) => this.fire(entityTypeOrGridEntityXMLType, variant, subType, gridIndex, initSeed);
}
exports.PreRoomEntitySpawnFilter = PreRoomEntitySpawnFilter;
