"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InputActionFilter = void 0;
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
const CustomCallback_1 = require("../private/CustomCallback");
class InputActionFilter extends CustomCallback_1.CustomCallback {
    constructor() {
        super();
        this.callbacksUsed = [
            // 13
            [isaac_typescript_definitions_1.ModCallback.INPUT_ACTION, this.inputAction],
        ];
    }
    shouldFire = (fireArgs, optionalArgs) => {
        const [_entity, inputHook, buttonAction] = fireArgs;
        const [callbackInputHook, callbackButtonAction] = optionalArgs;
        return ((callbackInputHook === undefined || callbackInputHook === inputHook) &&
            (callbackButtonAction === undefined ||
                callbackButtonAction === buttonAction));
    };
    // ModCallback.INPUT_ACTION (13)
    inputAction = (entity, inputHook, buttonAction) => this.fire(entity, inputHook, buttonAction);
}
exports.InputActionFilter = InputActionFilter;
