private void OnAfterInteract(EntityUid uid, SharpComponent component, AfterInteractEvent args)
    {
        if (!args.CanReach)
        {
            return;
        }

        if (args.Target is null || !TryComp <SharedButcherableComponent>(args.Target, out var butcher))
        {
            return;
        }

        if (butcher.Type != ButcheringType.Knife)
        {
            return;
        }

        if (TryComp <MobStateComponent>(args.Target, out var mobState) && !mobState.IsDead())
        {
            return;
        }

        if (!component.Butchering.Add(args.Target.Value))
        {
            return;
        }

        var doAfter =
            new DoAfterEventArgs(args.User, component.ButcherDelayModifier * butcher.ButcherDelay, default, args.Target)
    private void OnAfterInteract(EntityUid uid, SharpComponent component, AfterInteractEvent args)
    {
        if (args.Target is null || !args.CanReach)
        {
            return;
        }

        TryStartButcherDoafter(uid, args.Target.Value, args.User);
    }