* DoAfters * Compact Clone() * Fix mice and cuffables * Try generalize attempt events * moves climbabledoafter event to shared, fixes issue with climbable target * Fix merge (cuffing) * Make all events netserializable * handful of doafter events moved * moves the rest of the events to their respective shared folders * Changes all mentions of server doafter to shared * stop stripping cancellation * fix merge errors * draw paused doafters * handle unpausing * missing netserializable ref * removes break on stun reference * removes cuffing state reference * Fix tools * Fix door prying. * Fix construction * Fix dumping * Fix wielding assert * fix rev * Fix test * more test fixes --------- Co-authored-by: keronshb <keronshb@live.com>
35 lines
982 B
C#
35 lines
982 B
C#
using Content.Shared.DoAfter;
|
|
using Content.Shared.DragDrop;
|
|
using Content.Shared.Movement.Events;
|
|
using Robust.Shared.Serialization;
|
|
|
|
namespace Content.Shared.Climbing;
|
|
|
|
public abstract class SharedClimbSystem : EntitySystem
|
|
{
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
SubscribeLocalEvent<ClimbingComponent, UpdateCanMoveEvent>(HandleMoveAttempt);
|
|
}
|
|
|
|
private static void HandleMoveAttempt(EntityUid uid, ClimbingComponent component, UpdateCanMoveEvent args)
|
|
{
|
|
if (component.LifeStage > ComponentLifeStage.Running)
|
|
return;
|
|
|
|
if (component.OwnerIsTransitioning)
|
|
args.Cancel();
|
|
}
|
|
|
|
protected virtual void OnCanDragDropOn(EntityUid uid, ClimbableComponent component, ref CanDropTargetEvent args)
|
|
{
|
|
args.CanDrop = HasComp<ClimbingComponent>(args.Dragged);
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
protected sealed class ClimbDoAfterEvent : SimpleDoAfterEvent
|
|
{
|
|
}
|
|
}
|