local ____exports = {}
function ____exports.shouldFireAmbush(self, fireArgs, optionalArgs)
    local ambushType = table.unpack(fireArgs, 1, 1)
    local callbackAmbushType = table.unpack(optionalArgs, 1, 1)
    return callbackAmbushType == nil or callbackAmbushType == ambushType
end
function ____exports.shouldFireBomb(self, fireArgs, optionalArgs)
    local bomb = table.unpack(fireArgs, 1, 1)
    local callbackBombVariant, callbackSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackBombVariant == nil or callbackBombVariant == bomb.Variant) and (callbackSubType == nil or callbackSubType == bomb.SubType)
end
function ____exports.shouldFireBoolean(self, fireArgs, optionalArgs)
    local fireArg = table.unpack(fireArgs, 1, 1)
    local optionalArg = table.unpack(optionalArgs, 1, 1)
    return optionalArg == nil or optionalArg == fireArg
end
function ____exports.shouldFireCollectibleType(self, fireArgs, optionalArgs)
    local _player, collectibleType = table.unpack(fireArgs, 1, 2)
    local callbackCollectibleType = table.unpack(optionalArgs, 1, 1)
    return callbackCollectibleType == nil or callbackCollectibleType == collectibleType
end
function ____exports.shouldFireDoor(self, fireArgs, optionalArgs)
    local door = table.unpack(fireArgs, 1, 1)
    local callbackDoorVariant = table.unpack(optionalArgs, 1, 1)
    local doorVariant = door:GetVariant()
    return callbackDoorVariant == nil or callbackDoorVariant == doorVariant
end
function ____exports.shouldFireEffect(self, fireArgs, optionalArgs)
    local effect = table.unpack(fireArgs, 1, 1)
    local callbackEffectVariant, callbackSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackEffectVariant == nil or callbackEffectVariant == effect.Variant) and (callbackSubType == nil or callbackSubType == effect.SubType)
end
function ____exports.shouldFireEntity(self, fireArgs, optionalArgs)
    local entity = table.unpack(fireArgs, 1, 1)
    local callbackEntityType, callbackVariant, callbackSubType = table.unpack(optionalArgs, 1, 3)
    return (callbackEntityType == nil or callbackEntityType == entity.Type) and (callbackVariant == nil or callbackVariant == entity.Variant) and (callbackSubType == nil or callbackSubType == entity.SubType)
end
function ____exports.shouldFireFamiliar(self, fireArgs, optionalArgs)
    local familiar = table.unpack(fireArgs, 1, 1)
    local callbackFamiliarVariant, callbackSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackFamiliarVariant == nil or callbackFamiliarVariant == familiar.Variant) and (callbackSubType == nil or callbackSubType == familiar.SubType)
end
function ____exports.shouldFireGridEntity(self, fireArgs, optionalArgs)
    local gridEntity = table.unpack(fireArgs, 1, 1)
    local callbackGridEntityType, callbackVariant = table.unpack(optionalArgs, 1, 2)
    local gridEntityType = gridEntity:GetType()
    local variant = gridEntity:GetVariant()
    return (callbackGridEntityType == nil or callbackGridEntityType == gridEntityType) and (callbackVariant == nil or callbackVariant == variant)
end
function ____exports.shouldFireGridEntityCustom(self, fireArgs, optionalArgs)
    local _gridEntity, gridEntityTypeCustom = table.unpack(fireArgs, 1, 2)
    local callbackGridEntityTypeCustom = table.unpack(optionalArgs, 1, 1)
    return callbackGridEntityTypeCustom == nil or callbackGridEntityTypeCustom == gridEntityTypeCustom
end
function ____exports.shouldFireItemPickup(self, fireArgs, optionalArgs)
    local _player, pickingUpItem = table.unpack(fireArgs, 1, 2)
    local callbackItemType, callbackSubtype = table.unpack(optionalArgs, 1, 2)
    return (callbackItemType == nil or callbackItemType == pickingUpItem.itemType) and (callbackSubtype == nil or callbackSubtype == pickingUpItem.subType)
end
function ____exports.shouldFireKnife(self, fireArgs, optionalArgs)
    local knife = table.unpack(fireArgs, 1, 1)
    local callbackKnifeVariant, callbackSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackKnifeVariant == nil or callbackKnifeVariant == knife.Variant) and (callbackSubType == nil or callbackSubType == knife.SubType)
end
function ____exports.shouldFireLaser(self, fireArgs, optionalArgs)
    local laser = table.unpack(fireArgs, 1, 1)
    local callbackLaserVariant, callbackSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackLaserVariant == nil or callbackLaserVariant == laser.Variant) and (callbackSubType == nil or callbackSubType == laser.SubType)
end
function ____exports.shouldFireLevel(self, fireArgs, optionalArgs)
    local stage, stageType = table.unpack(fireArgs, 1, 2)
    local callbackStage, callbackStageType = table.unpack(optionalArgs, 1, 2)
    return (callbackStage == nil or callbackStage == stage) and (callbackStageType == nil or callbackStageType == stageType)
end
function ____exports.shouldFireNPC(self, fireArgs, optionalArgs)
    local npc = table.unpack(fireArgs, 1, 1)
    local callbackEntityType, callbackVariant, callbackSubType = table.unpack(optionalArgs, 1, 3)
    return (callbackEntityType == nil or callbackEntityType == npc.Type) and (callbackVariant == nil or callbackVariant == npc.Variant) and (callbackSubType == nil or callbackSubType == npc.SubType)
end
function ____exports.shouldFirePickup(self, fireArgs, optionalArgs)
    local pickup = table.unpack(fireArgs, 1, 1)
    local callbackPickupVariant, callbackPickupSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackPickupVariant == nil or callbackPickupVariant == pickup.Variant) and (callbackPickupSubType == nil or callbackPickupSubType == pickup.SubType)
end
function ____exports.shouldFirePit(self, fireArgs, optionalArgs)
    local pit = table.unpack(fireArgs, 1, 1)
    local callbackPitVariant = table.unpack(optionalArgs, 1, 1)
    local pitVariant = pit:GetVariant()
    return callbackPitVariant == nil or callbackPitVariant == pitVariant
end
function ____exports.shouldFirePlayer(self, fireArgs, optionalArgs)
    local player = table.unpack(fireArgs, 1, 1)
    local callbackPlayerVariant, callbackCharacter = table.unpack(optionalArgs, 1, 2)
    local character = player:GetPlayerType()
    return (callbackPlayerVariant == nil or callbackPlayerVariant == player.Variant) and (callbackCharacter == nil or callbackCharacter == character)
end
function ____exports.shouldFirePoop(self, fireArgs, optionalArgs)
    local poop = table.unpack(fireArgs, 1, 1)
    local callbackPoopGridEntityVariant = table.unpack(optionalArgs, 1, 1)
    local poopGridEntityVariant = poop:GetVariant()
    return callbackPoopGridEntityVariant == nil or callbackPoopGridEntityVariant == poopGridEntityVariant
end
function ____exports.shouldFirePressurePlate(self, fireArgs, optionalArgs)
    local pressurePlate = table.unpack(fireArgs, 1, 1)
    local callbackPressurePlateVariant = table.unpack(optionalArgs, 1, 1)
    local pressurePlateVariant = pressurePlate:GetVariant()
    return callbackPressurePlateVariant == nil or callbackPressurePlateVariant == pressurePlateVariant
end
function ____exports.shouldFireProjectile(self, fireArgs, optionalArgs)
    local projectile = table.unpack(fireArgs, 1, 1)
    local callbackProjectileVariant, callbackSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackProjectileVariant == nil or callbackProjectileVariant == projectile.Variant) and (callbackSubType == nil or callbackSubType == projectile.SubType)
end
function ____exports.shouldFireRock(self, fireArgs, optionalArgs)
    local rock = table.unpack(fireArgs, 1, 1)
    local callbackGridEntity, callbackVariant = table.unpack(optionalArgs, 1, 2)
    local gridEntityType = rock:GetType()
    local variant = rock:GetVariant()
    return (callbackGridEntity == nil or callbackGridEntity == gridEntityType) and (callbackVariant == nil or callbackVariant == variant)
end
function ____exports.shouldFireRoom(self, fireArgs, optionalArgs)
    local roomType = table.unpack(fireArgs, 1, 1)
    local callbackRoomType = table.unpack(optionalArgs, 1, 1)
    return callbackRoomType == nil or callbackRoomType == roomType
end
function ____exports.shouldFireSlot(self, fireArgs, optionalArgs)
    local slot = table.unpack(fireArgs, 1, 1)
    local callbackSlotVariant, callbackSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackSlotVariant == nil or callbackSlotVariant == slot.Variant) and (callbackSubType == nil or callbackSubType == slot.SubType)
end
function ____exports.shouldFireSpikes(self, fireArgs, optionalArgs)
    local spikes = table.unpack(fireArgs, 1, 1)
    local callbackVariant = table.unpack(optionalArgs, 1, 1)
    local variant = spikes:GetVariant()
    return callbackVariant == nil or callbackVariant == variant
end
function ____exports.shouldFireTNT(self, fireArgs, optionalArgs)
    local tnt = table.unpack(fireArgs, 1, 1)
    local callbackVariant = table.unpack(optionalArgs, 1, 1)
    local variant = tnt:GetVariant()
    return callbackVariant == nil or callbackVariant == variant
end
function ____exports.shouldFireTear(self, fireArgs, optionalArgs)
    local tear = table.unpack(fireArgs, 1, 1)
    local callbackTearVariant, callbackSubType = table.unpack(optionalArgs, 1, 2)
    return (callbackTearVariant == nil or callbackTearVariant == tear.Variant) and (callbackSubType == nil or callbackSubType == tear.SubType)
end
function ____exports.shouldFireTrinketType(self, fireArgs, optionalArgs)
    local _player, trinketType = table.unpack(fireArgs, 1, 2)
    local callbackTrinketType = table.unpack(optionalArgs, 1, 1)
    return callbackTrinketType == nil or callbackTrinketType == trinketType
end
return ____exports
