Example #1
0
    protected bool?CheckDragDropOn(DragDropEvent eventArgs)
    {
        var canDragDropOnEvent = new CanDragDropOnEvent(eventArgs.User, eventArgs.Dragged, eventArgs.Target);

        RaiseLocalEvent(eventArgs.Target, canDragDropOnEvent, false);

        return(canDragDropOnEvent.Handled ? canDragDropOnEvent.CanDrop : null);
    }
    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;
    }
Example #3
0
        private void OnCanDragDropOn(EntityUid uid, SharedDisposalUnitComponent component, CanDragDropOnEvent args)
        {
            if (args.Handled)
            {
                return;
            }

            args.CanDrop = CanInsert(component, args.Dragged);
            args.Handled = true;
        }
 protected virtual void OnCanDragDropOn(EntityUid uid, SharedClimbableComponent component, CanDragDropOnEvent args)
 {
     args.CanDrop = HasComp <SharedClimbingComponent>(args.Dragged);
 }