protected override void OnCanDragDropOn(EntityUid uid, SharedClimbableComponent component, CanDragDropOnEvent args)
    {
        base.OnCanDragDropOn(uid, component, args);

        if (!args.CanDrop)
        {
            return;
        }

        var user    = args.User;
        var target  = args.Target;
        var dragged = args.Dragged;

        bool Ignored(EntityUid entity) => entity == target || entity == user || entity == dragged;

        args.CanDrop = _interactionSystem.InRangeUnobstructed(user, target, component.Range, predicate: Ignored) &&
                       _interactionSystem.InRangeUnobstructed(user, dragged, component.Range, predicate: Ignored);
        args.Handled = true;
    }
 protected virtual void OnCanDragDropOn(EntityUid uid, SharedClimbableComponent component, CanDragDropOnEvent args)
 {
     args.CanDrop = HasComp <SharedClimbingComponent>(args.Dragged);
 }