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; }
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); }