2022-02-17 15:40:03 +13:00
|
|
|
using Content.Shared.Climbing;
|
2021-06-09 22:19:39 +02:00
|
|
|
using Content.Shared.DragDrop;
|
2022-02-17 15:40:03 +13:00
|
|
|
using Content.Shared.Interaction;
|
2021-06-09 22:19:39 +02:00
|
|
|
using Content.Shared.Interaction.Helpers;
|
2020-09-13 14:23:52 +02:00
|
|
|
using Robust.Shared.GameObjects;
|
2020-08-19 18:13:22 -04:00
|
|
|
|
2021-06-09 22:19:39 +02:00
|
|
|
namespace Content.Client.Movement.Components
|
2020-08-19 18:13:22 -04:00
|
|
|
{
|
|
|
|
|
[RegisterComponent]
|
|
|
|
|
[ComponentReference(typeof(IClimbable))]
|
2022-02-16 00:23:23 -07:00
|
|
|
public sealed class ClimbableComponent : SharedClimbableComponent
|
2020-08-19 18:13:22 -04:00
|
|
|
{
|
2021-05-22 21:06:40 -07:00
|
|
|
public override bool CanDragDropOn(DragDropEvent eventArgs)
|
2021-01-11 22:14:01 +11:00
|
|
|
{
|
|
|
|
|
if (!base.CanDragDropOn(eventArgs))
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
var user = eventArgs.User;
|
|
|
|
|
var target = eventArgs.Target;
|
|
|
|
|
var dragged = eventArgs.Dragged;
|
2021-12-05 18:09:01 +01:00
|
|
|
bool Ignored(EntityUid entity) => entity == target || entity == user || entity == dragged;
|
2021-01-11 22:14:01 +11:00
|
|
|
|
2022-02-17 15:40:03 +13:00
|
|
|
var sys = EntitySystem.Get<SharedInteractionSystem>();
|
|
|
|
|
|
|
|
|
|
return sys.InRangeUnobstructed(user, target, Range, predicate: Ignored)
|
|
|
|
|
&& sys.InRangeUnobstructed(user, dragged, Range, predicate: Ignored);
|
2021-01-11 22:14:01 +11:00
|
|
|
}
|
|
|
|
|
|
2021-05-22 21:06:40 -07:00
|
|
|
public override bool DragDropOn(DragDropEvent eventArgs)
|
2021-01-11 22:14:01 +11:00
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2020-08-19 18:13:22 -04:00
|
|
|
}
|
|
|
|
|
}
|